:root{color-scheme:light;--forest:#103d36;--forest-2:#155045;--felt:#155b4b;--ink:#18352e;--muted:#70827c;--paper:#f8f6ef;--ivory:#fffdf7;--line:#dfe7df;--red:#bc4c3e;--gold:#d5b575;--shadow:0 18px 50px rgba(12,48,40,.12);font-family:"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.44}button:focus-visible,input:focus-visible{outline:3px solid #e2a352;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,.brand-mark,.wordmark{font-family:"Songti SC","Noto Serif CJK SC",Georgia,serif}#app{min-height:100vh}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.19em;color:var(--red)}.button{min-height:44px;border:0;border-radius:11px;padding:0 20px;font-weight:700;display:inline-flex;justify-content:center;align-items:center;gap:15px;transition:transform .18s,background .18s,box-shadow .18s}.button:not(:disabled):hover{transform:translateY(-2px)}.button.primary{background:var(--red);color:#fff;box-shadow:0 7px 0 rgba(91,35,29,.12)}.button.primary:not(:disabled):hover{background:#a94337}.button.ghost{background:#edf2eb;color:var(--ink)}.button.outline{background:transparent;border:1px solid #b3c8bd;color:var(--forest)}.button.full{width:100%;margin-top:18px}.button.big{min-height:56px;font-size:15px}.button.text-button{background:transparent;color:var(--forest);padding:0;box-shadow:none;justify-content:flex-start}.toast{position:fixed;bottom:24px;left:50%;z-index:50;transform:translate(-50%,18px);background:#173d35;color:#fff;padding:12px 19px;border-radius:10px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:all .25s}.toast.show{opacity:1;transform:translate(-50%,0)}
.home{position:relative;isolation:isolate;min-height:100vh;background:#103d36;color:#fff;overflow:hidden;display:flex;flex-direction:column;padding:0 clamp(22px,5vw,82px)}.home:before{content:"";position:absolute;z-index:-1;inset:-10% -20%;background:radial-gradient(circle at 78% 53%,#2e6858 0,transparent 35%),radial-gradient(circle at 13% 88%,#1a5145 0,transparent 42%)}.home-grain{position:absolute;inset:0;pointer-events:none;opacity:.12;background-image:radial-gradient(#fff 0.6px,transparent 0.6px);background-size:6px 6px}.home-top{height:95px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.17)}.brand-mark{font-size:29px;font-weight:bold;letter-spacing:.04em}.brand-mark span{color:#d7b777}.home-top .eyebrow{color:#b3c9bc;font-size:9px}.home-hero{flex:1;min-height:610px;display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,.95fr);align-items:center;max-width:1460px;width:100%;margin:auto;gap:3vw}.hero-copy{position:relative;z-index:2;padding:70px 0}.hero-kicker{display:flex;align-items:center;gap:10px;color:#e9cf91;font-size:12px;letter-spacing:.12em;font-weight:700}.pulse-dot{display:inline-block;width:8px;height:8px;flex:0 0 8px;background:#d7a264;border-radius:50%;box-shadow:0 0 0 4px rgba(215,162,100,.17)}.pulse-dot.quiet{background:#a8bbb1;box-shadow:none}.hero-copy h1{font-size:clamp(62px,7vw,112px);line-height:1.14;letter-spacing:-.06em;margin:27px 0 24px;font-weight:700}.hero-copy h1 em{color:#e9c980;font-style:normal}.hero-copy>p{max-width:470px;color:#c4d4cc;font-size:17px;line-height:1.9}.home-form{margin-top:35px;display:flex;align-items:flex-start;flex-direction:column;gap:12px}.home-form label{font-size:12px;color:#e8d7ab}.home-form input{width:min(100%,340px);height:48px;border:1px solid #80a296;background:rgba(255,255,255,.1);border-radius:10px;color:#fff;padding:0 15px;outline:none}.home-form input:focus{border-color:#e6c78e}.home-form .primary{margin-top:5px;min-width:240px}.home-form .text-button{color:#f3dfad}.home-note{display:flex;flex-wrap:wrap;gap:20px;margin-top:36px;color:#a7c1b3;font-size:11px}.hero-art{position:relative;width:100%;aspect-ratio:1;max-width:630px;margin:auto}.art-orbit{position:absolute;border:1px solid rgba(232,206,147,.19);border-radius:50%;inset:4%}.orbit-two{inset:16%;transform:rotate(24deg)}.art-card{position:absolute;width:42%;height:60%;left:34%;top:18%;border-radius:17px;box-shadow:0 24px 70px rgba(0,0,0,.32)}.art-back{background:repeating-linear-gradient(45deg,#be6c54 0 4px,#a34e40 4px 8px);transform:translate(-44px,17px) rotate(-18deg);border:12px solid #f2e7ce}.art-front{background:linear-gradient(125deg,#fffdf4,#eae4d7);transform:rotate(11deg);color:#be493d;border:8px solid #f9f2df;outline:1px solid rgba(18,51,39,.18)}.art-corner,.art-bottom{position:absolute;font-family:Georgia,serif;left:10%;top:6%;font-size:clamp(24px,4vw,45px);font-weight:bold;line-height:1}.art-bottom{left:auto;top:auto;right:10%;bottom:6%;transform:rotate(180deg)}.art-heart{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(100px,14vw,230px);line-height:1}.art-spark{position:absolute;color:#efcf87;font-size:32px}.spark-one{top:11%;left:25%}.spark-two{bottom:21%;right:8%;font-size:21px}.art-note{position:absolute;left:2%;bottom:15%;transform:rotate(-10deg);background:#e0bd78;color:#173c32;border-radius:7px;padding:16px 25px;font-family:"Songti SC",serif;font-size:20px;font-weight:bold;box-shadow:0 14px 28px rgba(0,0,0,.16)}.home-footer{height:66px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.17);font-size:11px;letter-spacing:.1em;color:#9ab9a8}
.game-shell{min-height:100vh}.game-header{height:68px;background:var(--forest);color:#fff;display:flex;align-items:center;gap:22px;padding:0 clamp(16px,2.8vw,40px)}.wordmark{border:0;background:none;color:#fff;font-size:25px;font-weight:bold;white-space:nowrap;padding:0}.wordmark span{font-family:Arial,sans-serif;font-size:12px;font-weight:500;letter-spacing:.07em;color:#c2d5c9;margin-left:10px}.game-meta{display:flex;gap:8px;margin-left:auto}.meta-pill{font-size:12px;padding:8px 11px;border:1px solid #4d7567;border-radius:99px;color:#d6e3d9}.meta-pill strong{color:#f1d08e}.header-link{border:0;background:none;color:#bdd4c9;font-size:12px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,370px);gap:20px;max-width:1600px;margin:auto;padding:20px clamp(14px,2vw,32px)}.table-column{min-width:0}.scoreboard{height:72px;display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,45px);background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:14px;box-shadow:0 5px 20px rgba(10,52,42,.04)}.team-score{display:flex;align-items:center;gap:17px}.team-score span{font-size:12px;color:#52776a;font-weight:700}.team-score strong{font-family:Georgia,serif;font-size:31px;color:var(--forest)}.team-score.opponents strong{color:var(--red)}.score-divider{font-size:10px;color:#93a79c;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:0 22px}.felt{height:clamp(310px,33vw,440px);position:relative;overflow:hidden;border:8px solid #24483b;border-radius:20px;background:radial-gradient(ellipse at 50% 40%,#1b6c58,#155242 72%,#0e4339);box-shadow:inset 0 0 0 2px rgba(255,255,255,.12),inset 0 20px 70px rgba(2,35,29,.18),0 20px 42px rgba(8,54,44,.12)}.felt-ring{position:absolute;inset:10% 16%;border:1px solid rgba(243,220,167,.14);border-radius:50%}.player{position:absolute;display:flex;align-items:center;gap:8px;z-index:2;color:#fff}.player.top{top:15px;left:50%;transform:translateX(-50%)}.player.left{left:15px;top:43%}.player.right{right:15px;top:43%}.avatar,.self-avatar{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#b8d5c2;color:#143a31;font-size:12px;font-weight:bold}.player.rival .avatar{background:#f1c5b3;color:#8a3a30}.player-info{display:flex;flex-direction:column;gap:3px;white-space:nowrap}.player-info strong{font-size:12px}.player-info span{font-size:10px;color:#add0c0}.turn-indicator{width:7px;height:7px;background:#efca76;border-radius:50%;box-shadow:0 0 0 4px rgba(239,202,118,.21)}.table-center{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);text-align:center;min-width:210px;max-width:70%;color:#fff}.center-eyebrow{font-size:10px;letter-spacing:.16em;color:#abd3ba;text-transform:uppercase;margin-bottom:9px}.played-type{font-family:"Songti SC",serif;font-size:24px;margin-bottom:11px}.played-cards{display:flex;justify-content:center;flex-wrap:wrap;gap:3px}.mini-card{min-width:31px;height:46px;background:var(--ivory);border-radius:5px;display:grid;place-items:center;color:#18372e;font-size:11px;font-weight:800;box-shadow:0 3px 7px rgba(0,0,0,.16)}.mini-card.red{color:var(--red)}.played-by{margin-top:10px;font-size:10px;color:#c3dfce}.table-idle{font-family:"Songti SC",serif;color:#d4e3d3;font-size:17px;white-space:nowrap}.self-badge{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;background:rgba(5,45,36,.5);padding:6px 12px 6px 6px;border-radius:99px;color:#fff;font-size:12px;white-space:nowrap}.self-avatar{width:27px;height:27px;flex-basis:27px;background:#eac982}.self-badge small{font-size:10px;color:#b8d4c3}
.hand-area{background:#fff;border:1px solid var(--line);border-radius:16px;margin-top:14px;padding:20px 24px 24px;box-shadow:0 6px 22px rgba(13,55,43,.04)}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}.section-heading h2{font-size:22px;margin:4px 0 0}.section-heading h2 span{font:700 12px Arial,sans-serif;color:#9cad9f;vertical-align:middle;margin-left:5px}.subtle-action{background:none;border:0;color:#457569;font-size:12px;padding:9px}.hand-row{display:flex;align-items:flex-end;min-height:81px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#bbd0bd transparent;padding:8px 2px 3px}.hand-row+.hand-row{margin-top:5px}.card{position:relative;flex:0 0 51px;height:71px;border:1px solid #d8dfd7;border-radius:7px;background:#fffefa;color:#18352f;box-shadow:1px 2px 3px rgba(20,60,40,.11);margin-left:-8px;text-align:left;padding:7px 6px;transition:transform .16s,box-shadow .16s;touch-action:manipulation}.card:first-child{margin-left:0}.card.red{color:#c1453c}.card.selected{transform:translateY(-8px);border-color:#d9a15c;box-shadow:0 6px 10px rgba(109,63,28,.23);z-index:3}.card:hover{z-index:2}.card-rank{display:block;font-family:Georgia,serif;font-size:19px;font-weight:bold;line-height:1}.card-suit{display:block;font-size:19px;line-height:1.15}.card-index{position:absolute;right:4px;bottom:4px;font-size:8px;color:#b3beb4}.wild-mark{position:absolute;right:4px;top:5px;background:#daba77;border-radius:3px;color:#493b1b;font-size:8px;padding:2px}.hand-hint{min-height:31px;padding-top:9px;color:#6b8274;font-size:12px}.action-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:14px}.turn-status{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;color:#345a49}.action-buttons{display:flex;gap:8px}
.side-panel{background:#fff;border:1px solid var(--line);border-radius:16px;min-width:0;box-shadow:0 8px 28px rgba(13,55,43,.05);overflow:hidden;align-self:start;position:sticky;top:15px;max-height:calc(100vh - 103px);display:flex;flex-direction:column}.panel-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);padding:6px 8px 0}.panel-tab{height:46px;border:0;background:transparent;color:#83988a;font-size:12px;font-weight:700;white-space:nowrap}.panel-tab.active{color:var(--forest);border-bottom:2px solid var(--red)}.panel-content{overflow:auto;padding:23px 22px 27px;scrollbar-width:thin}.panel-intro h2{font-size:24px;margin:7px 0 8px}.panel-intro p{color:#7f9386;font-size:12px;line-height:1.75}.highlights{margin:24px 0;border-top:1px solid var(--line);padding-top:16px}.highlights>strong{font-size:12px}.highlights>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}.highlight-chip{border-radius:6px;background:#f5f3e9;color:#796344;font-size:10px;padding:7px 8px;line-height:1.4}.plan-choices{display:grid;gap:8px;margin-top:18px}.plan-choice{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;min-height:64px;padding:9px 10px;display:flex;align-items:center;gap:12px;text-align:left;color:var(--ink)}.plan-choice.active{border-color:#79a58c;background:#f3f8f2}.plan-choice>span:nth-child(2){display:flex;flex-direction:column;gap:3px;flex:1}.plan-choice strong{font-size:12px}.plan-choice small{color:#8ba093;font-size:10px;line-height:1.4}.plan-count{font-size:10px;color:#bcbfa9}.plan-arrow{color:var(--red)}.plan-detail{margin-top:21px}.detail-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:11px;gap:10px}.detail-head strong{font-size:13px}.detail-head span{font-size:10px;color:#94a69a}.plan-groups{max-height:300px;overflow:auto}.plan-groups>div{display:grid;grid-template-columns:24px 55px 1fr;gap:7px;border-bottom:1px solid #eff1ed;padding:10px 0;font-size:11px;align-items:start}.plan-groups span{color:#b0bcae}.plan-groups strong{color:#567463}.plan-groups em{font-style:normal;text-align:right;line-height:1.5}.panel-footnote{font-size:10px;line-height:1.6;color:#96a99c;margin:23px 0 0}.advice-list{display:grid;gap:11px;margin-top:25px}.advice-card{width:100%;text-align:left;border:1px solid #d6e6d6;border-radius:11px;background:#f7faf5;padding:15px;display:flex;flex-direction:column;gap:7px;color:var(--ink)}.advice-card:hover{border-color:#78ab8b}.advice-number{font-size:10px;color:var(--red);font-weight:800;letter-spacing:.1em}.advice-card strong{font-size:14px;line-height:1.5}.advice-card>span:not(.advice-number){font-size:11px;color:#698174;line-height:1.6}.advice-card small{color:#4c7964;font-size:10px;margin-top:4px}.empty-note{margin:30px 0;padding:35px 20px;background:#f6f8f4;border-radius:12px;text-align:center}.empty-note>span{display:block;font-size:43px;color:#a9bdb0}.empty-note strong{font-size:13px}.empty-note p{font-size:11px;color:#93a599;line-height:1.7;margin:7px 0 0}.history-list{list-style:none;margin:22px 0 0;padding:0}.history-list li{display:flex;align-items:start;gap:10px;padding:11px 0;border-bottom:1px solid #eef1ec}.history-number{font-size:10px;color:#aebdad;padding-top:2px}.history-list li div{flex:1;min-width:0}.history-list strong{display:block;font-size:11px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.history-list small{display:block;font-size:10px;color:#a0b09f;margin-top:4px}.history-list button{white-space:nowrap;background:none;border:0;color:var(--red);font-size:10px}.review-box{background:#f9f5ea;border:1px solid #e4d7b8;border-radius:11px;padding:14px;margin:16px 0}.review-box p{font-size:11px;line-height:1.65;margin:9px 0}.review-box small{font-size:10px;color:#98896d;line-height:1.5}.small-close{border:0;background:none;font-size:19px;color:#687966}
@media(max-width:1050px){.game-layout{grid-template-columns:1fr}.side-panel{position:static;max-height:none}.panel-content{max-height:500px}.felt{height:390px}}@media(max-width:700px){.home{padding:0 22px}.home-top{height:70px}.home-top .eyebrow{display:none}.home-hero{display:flex;min-height:auto;flex-direction:column-reverse;gap:0}.hero-art{height:280px;max-width:340px;flex:0 0 280px;margin:23px auto -30px}.art-card{width:36%;height:65%;left:35%;top:14%}.art-heart{font-size:110px}.art-corner,.art-bottom{font-size:24px}.art-note{font-size:13px;padding:8px 12px;bottom:8%}.hero-copy{padding:15px 0 40px;width:100%}.hero-copy h1{font-size:clamp(54px,13vw,76px);margin:18px 0}.hero-copy>p{font-size:14px}.home-form{margin-top:23px}.home-form input,.home-form .primary{width:100%}.home-note{gap:8px 14px;margin-top:24px}.home-footer{height:55px;font-size:9px}.game-header{height:58px;padding:0 14px;gap:8px}.wordmark{font-size:20px}.wordmark span{font-size:10px;margin-left:5px}.meta-pill{font-size:10px;padding:6px 7px}.header-link{display:none}.game-layout{padding:10px;gap:10px}.scoreboard{height:59px;margin-bottom:9px;gap:8px}.team-score{gap:6px}.team-score span{font-size:10px}.team-score strong{font-size:24px}.score-divider{font-size:8px;padding:0 7px}.felt{height:315px;border-width:6px;border-radius:15px}.felt-ring{inset:17% 10%}.player.top{top:11px}.player.left{left:8px;top:45%}.player.right{right:8px;top:45%}.player{gap:4px}.player-info strong{font-size:10px}.player-info span{font-size:8px}.avatar{width:27px;height:27px;flex-basis:27px;font-size:10px}.table-center{top:46%;max-width:60%;min-width:145px}.played-type{font-size:18px}.mini-card{min-width:25px;height:37px;font-size:9px}.table-idle{font-size:12px}.self-badge{bottom:6px}.hand-area{margin-top:9px;padding:14px 13px}.section-heading h2{font-size:19px}.hand-row{min-height:73px}.card{height:66px;flex-basis:45px;margin-left:-7px}.card-rank{font-size:17px}.card-suit{font-size:17px}.action-bar{flex-direction:column;align-items:stretch}.action-buttons{justify-content:flex-end;flex-wrap:wrap}.action-buttons .button{padding:0 13px;font-size:12px}.turn-status{min-height:25px}.side-panel{border-radius:13px}.panel-content{padding:20px 17px}.panel-tab{font-size:11px}.panel-content{max-height:600px}}
@media(max-width:370px){.wordmark span{display:none}.player-info span{display:none}.score-divider span{display:none}.score-divider{height:27px}.action-buttons .button{padding:0 9px}}

/* A bot's move is a short, readable event rather than an instant table replacement. */
.home-form .model-info{max-width:340px;margin:2px 0;color:#bbd1c3;font-size:11px;line-height:1.65}
.player.recent .avatar{outline:2px solid #f1d58d;outline-offset:3px}
.player.cue-fresh .avatar{animation:actor-signal 430ms cubic-bezier(.25,1,.5,1) both}
.action-cue{display:inline-flex;align-items:center;gap:7px;max-width:100%;margin:0 auto 11px;padding:7px 12px;border:1px solid #e2c789;border-radius:99px;background:#fbf6e8;color:#235344;font-size:12px;font-weight:800;white-space:nowrap;box-shadow:0 6px 16px rgba(0,37,28,.13)}
.action-cue.cue-fresh{animation:cue-arrive 380ms cubic-bezier(.22,1,.36,1) both}
.cue-symbol{color:#b86f35;font-size:13px}
.turn-status{min-height:35px;padding:7px 10px;margin-left:-10px;border:1px solid transparent;border-radius:9px}
.turn-status.bot-action{background:#fbf3df;border-color:#ead7a7;color:#345342}
.turn-status.bot-action.cue-fresh{animation:status-arrive 360ms cubic-bezier(.22,1,.36,1) both}
.status-spark{font-size:14px;color:#bc713d}
.played-cards.cards-arriving.from-left{--enter-x:-34px;--enter-y:0px}
.played-cards.cards-arriving.from-right{--enter-x:34px;--enter-y:0px}
.played-cards.cards-arriving.from-top{--enter-x:0px;--enter-y:-30px}
.played-cards.cards-arriving.from-bottom{--enter-x:0px;--enter-y:24px}
.played-cards.cards-arriving .mini-card{animation:card-land 440ms cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i) * 42ms)}
@keyframes actor-signal{0%{transform:scale(1)}35%{transform:scale(1.14)}100%{transform:scale(1)}}
@keyframes cue-arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes status-arrive{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes card-land{from{opacity:0;transform:translate(var(--enter-x),var(--enter-y)) scale(.94)}to{opacity:1;transform:translate(0,0) scale(1)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
.declaration-choices{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:2px 0 13px;font-size:12px;color:#60786b}
.declaration-choice{border:1px solid #b8ccbd;border-radius:99px;background:#f7faf5;color:#265342;padding:7px 11px;font-size:12px;cursor:pointer}
.declaration-choice.active{background:#245744;border-color:#245744;color:#fff}
.declaration-choice:disabled{opacity:.42;cursor:not-allowed}
.model-assist,.model-retro{margin-top:19px;padding:16px;border:1px solid #bdcdbd;border-radius:12px;background:#f2f7f1;color:#244739}
.model-assist>strong,.model-retro>strong{font-size:13px}
.model-assist p,.model-retro p{font-size:11px;line-height:1.65;margin:8px 0 0;color:#557063}
.model-assist-head{display:flex;justify-content:space-between;gap:10px;align-items:center}
.model-assist-head strong{font-size:13px}
.model-assist-head span{font-size:10px;color:#6c8976}
.model-choices{display:grid;gap:7px;margin-top:12px}
.model-choice{width:100%;min-height:70px;padding:11px 12px;display:flex;flex-direction:column;gap:5px;text-align:left;border:1px solid #c9dac8;border-radius:9px;background:#fff;color:#193e30}
.model-choice:hover{border-color:#75a483;background:#fbfdf9}
.model-choice>span,.model-review-choices span{font-size:10px;color:#8c6c42;font-weight:700}
.model-choice strong,.model-review-choices strong{font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.model-choice small{font-size:10px;color:#709080}
.model-choice .model-choice-reason{font-size:11px;line-height:1.55;color:#486856;font-weight:500}
.model-assist .model-explanation-note{margin-top:9px;color:#557063}
.model-assist .model-caveat{margin-top:12px;color:#6f8376}
.advice-list h3{font-size:12px;color:#456451;margin:12px 0 2px}
.model-review-choices{display:grid;gap:7px;margin:10px 0}
.model-review-choices>div{display:flex;flex-direction:column;gap:3px;padding:8px 10px;background:#fff;border:1px solid #dce8d9;border-radius:7px}
.model-retro small{display:block;font-size:10px;line-height:1.5;color:#738b7b}
.round-ledger{margin-top:14px;padding:15px 18px 10px;border:1px solid var(--line);border-radius:15px;background:#fffdf8;box-shadow:0 5px 18px rgba(13,55,43,.04)}
.round-ledger-head,.round-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.round-ledger-head h2{font-size:19px;margin:3px 0 0}
.round-count{font-size:11px;color:#658070;white-space:nowrap}
.round-empty{margin:12px 0 7px;font-size:11px;color:#799183}
.round-block{padding:11px 0 4px;border-top:1px solid #e8ede5}
.round-current{margin-top:11px}
.round-block-head strong{font-size:12px;color:#214b3b}
.round-block-head span{font-size:10px;color:#738d7c}
.round-action-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.round-action{display:grid;grid-template-columns:25px 54px minmax(0,1fr);align-items:start;gap:5px;padding:6px 7px;border-radius:7px;background:#f5f8f3;font-size:11px;line-height:1.5}
.round-action.rival{background:#fbf5f0}
.round-order{font-size:9px;color:#9eafa0;font-weight:700}
.round-actor{font-weight:800;color:#285944;white-space:nowrap}
.round-action.rival .round-actor{color:#a64a3e}
.round-action-detail{min-width:0;display:flex;flex-wrap:wrap;column-gap:6px;align-items:baseline}
.round-action-detail strong{font-size:11px;white-space:nowrap}
.round-action-detail em{font-style:normal;color:#7c8c7e}
.round-card-text{overflow-wrap:anywhere;color:#425b4e;letter-spacing:.01em}
.round-archive-toggle{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding:7px 0;border:0;border-top:1px solid #e8ede5;background:none;color:#285944;font-size:11px;font-weight:800;text-align:left}
.round-archive{border-top:1px solid #e8ede5}
.round-archive .round-block:first-child{border-top:0}
.hand-grid{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:8px 2px;min-width:0}
.hand-grid .card{width:100%;min-width:0;max-width:58px;height:72px;margin:0;padding:6px 5px;flex:none;justify-self:center}
@media(max-width:1200px){.hand-grid{grid-template-columns:repeat(9,minmax(0,1fr))}}
@media(max-width:700px){.round-ledger{margin-top:9px;padding:12px 13px 6px}.round-ledger-head h2{font-size:17px}.round-action{grid-template-columns:22px 44px minmax(0,1fr);gap:4px;padding:5px 6px}.hand-grid{gap:7px 2px}.hand-grid .card{height:64px;min-height:64px;padding:5px 4px}.hand-grid .card-rank,.hand-grid .card-suit{font-size:16px}.hand-grid .card.selected{transform:translateY(-5px)}}
@media(max-width:500px){.hand-grid{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(max-width:370px){.game-layout{padding:8px}.hand-area{padding:12px 9px}.hand-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px 2px}.hand-grid .card{height:60px;min-height:60px}.round-ledger{padding:11px 10px 5px}}

/* Model preparation is a genuine gate: the table appears only after inference works. */
.boot{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;padding:0 clamp(22px,5vw,82px);background:radial-gradient(circle at 78% 75%,#205749 0,transparent 34%),#103d36;color:#f8f6ef}
.boot-top{height:95px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.17)}
.boot-top>span{font-size:11px;letter-spacing:.12em;color:#c6d9cb}
.boot-content{flex:1;width:min(100%,1050px);margin:auto;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(35px,8vw,110px)}
.boot-cards{position:relative;width:min(100%,310px);aspect-ratio:1.05;margin:auto}
.boot-cards span{position:absolute;inset:12% 20%;display:flex;align-items:center;justify-content:center;border:2px solid #f4e9d1;border-radius:15px;background:#fffdf7;box-shadow:0 18px 30px rgba(0,24,19,.16)}
.boot-cards span:first-child{transform:rotate(-15deg) translate(-18px,8px);opacity:.54}
.boot-cards span:nth-child(2){transform:rotate(9deg) translate(15px,-5px);opacity:.77}
.boot-cards span:last-child{font-family:Georgia,serif;font-size:clamp(75px,11vw,130px);color:var(--red);transform:rotate(-3deg)}
.boot-eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;color:#e9cf91}
.boot-copy h1{margin:18px 0 25px;font-size:clamp(48px,7vw,88px);line-height:1.12;letter-spacing:-.04em}
.boot-copy h1 em{font-style:normal;color:#e4c88e}
.boot-status{min-height:27px;margin:0 0 16px;font-size:16px;font-weight:700;color:#f6f0df}
.boot-meter{width:min(100%,430px);height:9px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.18)}
.boot-meter span{display:block;height:100%;border-radius:99px;background:#e4c88e;transition:width .16s ease-out}
.boot-meter span.indeterminate{animation:boot-indeterminate 1.5s ease-in-out infinite}
.boot-detail{max-width:430px;margin:13px 0 0;font-size:12px;line-height:1.7;color:#bfd3c5}
.boot-error{max-width:430px;margin:0 0 17px;font-size:13px;line-height:1.65;color:#ffddc6}
.boot-footer{padding:24px 0 28px;border-top:1px solid rgba(255,255,255,.17);font-size:11px;color:#b8cdbf}
@keyframes boot-indeterminate{0%{transform:translateX(-100%)}50%{transform:translateX(550%)}100%{transform:translateX(1100%)}}
@media(max-width:700px){.boot-top{height:70px}.boot-content{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:16px;padding:26px 0}.boot-cards{width:170px;margin:0 auto}.boot-cards span:last-child{font-size:75px}.boot-copy h1{font-size:clamp(48px,13vw,68px);margin:12px 0 20px}.boot-status{font-size:14px}.boot-footer{font-size:10px;padding:18px 0 22px}}
