@charset "UTF-8";

:root{color-scheme:dark;--ink:#092e35;--ink-deep:#061f28;--paper:#faf2df;--paper-dark:#eddfc1;--gold:#e7bd74;--gold-deep:#bd8844;--teal:#a2d9cb;--text:#f5eddc;--muted:#abc3c2;--line:rgba(218,233,225,.14);--error:#efb0a0;--font:"Avenir Next","Segoe UI",Arial,sans-serif;--serif:Georgia,"Times New Roman",serif;--shadow:0 24px 80px rgba(0,0,0,.22);--radius:24px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;min-width:320px;background:var(--ink-deep);color:var(--text);font:16px/1.5 var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
body:before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 8% 0%,#184d4b80,transparent 52%),radial-gradient(ellipse at 95% 85%,#143c4680,transparent 48%)}
button,input,select{font:inherit}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;touch-action:manipulation}
button:disabled{cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d4b170;outline-offset:4px}
button{border:0}
a{color:inherit}
img,svg{max-width:100%}
svg{display:block}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:30;top:10px;left:12px;transform:translateY(-180%);padding:12px 20px;color:var(--ink);background:var(--paper);border-radius:12px}.skip-link:focus{transform:none}
.icon{display:inline-block;width:22px;height:22px;flex:none;vertical-align:middle;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}
.site-header{width:min(1480px,100%);height:94px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 48px;margin:0 auto}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;text-decoration:none;border:0;background:none;padding:0;color:var(--paper);text-align:left}
.brand-symbol{width:45px;height:45px;color:var(--gold)}
.brand-text{font-size:17px;line-height:1.25;font-weight:750;letter-spacing:.015em}
.brand-text small{display:block;font-size:10px;letter-spacing:.2em;color:var(--muted);font-weight:500;text-transform:uppercase;margin-top:4px}
.header-actions{display:flex;align-items:center;gap:9px}
.header-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border-radius:12px;background:none;color:var(--muted);font-size:13px;font-weight:650}
.header-link:hover{background:#ffffff0a;color:var(--paper)}
.icon-button{width:44px;height:44px;padding:11px;border-radius:50%;background:#ffffff06;color:var(--muted);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;flex:none}
.icon-button:hover{background:#ffffff12;color:var(--paper)}
.eyebrow{display:flex;align-items:center;gap:9px;margin:0 0 19px;font-size:10px;font-weight:800;letter-spacing:.21em;text-transform:uppercase;color:var(--gold)}
.eyebrow:before{content:"";width:22px;height:1px;background:currentColor;opacity:.7}
h1,h2,h3,p{margin-top:0}
.page-shell{width:min(1360px,100%);padding:26px 48px 52px;margin:0 auto}
.entrance{min-height:calc(100svh - 94px);position:relative;overflow:hidden;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:38px;width:min(1440px,100%);padding:22px 76px 92px;margin:0 auto}
.entrance-copy{position:relative;z-index:1;padding-bottom:38px;max-width:600px}
.entrance h1{font:normal clamp(54px,5.8vw,90px)/.98 var(--serif);letter-spacing:-.055em;margin:0 0 26px;color:var(--paper)}
.entrance h1 span{display:block;color:var(--gold);font-style:italic}
.entrance-intro{font-size:17px;line-height:1.75;max-width:388px;color:#bed1cd;margin:0 0 28px}
.adventure-meta{display:flex;gap:19px;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.adventure-meta li{display:flex;align-items:center;gap:7px;font-size:12px;color:#d0d9cd}.adventure-meta .icon{width:17px;height:17px;color:var(--gold)}
.entrance-visual{position:absolute;z-index:0;pointer-events:none;width:620px;height:620px;bottom:-322px;left:-95px;opacity:.64;transform:rotate(-13deg);filter:saturate(.8)}
.entrance-visual .board-svg{border-radius:50%;border:1px solid #a4c6bd33;box-shadow:0 0 0 20px #91b3a804,0 0 0 21px #bdd1b617}
.auth-card,.setup-card{background:var(--paper);color:var(--ink);border-radius:var(--radius);padding:34px;position:relative;z-index:1;box-shadow:var(--shadow)}
.auth-card{width:100%;max-width:420px;margin:0 0 0 auto}
.card-seal{width:58px;height:58px;border-radius:18px;background:#e9ddbc;display:flex;align-items:center;justify-content:center;color:#866332;margin-bottom:22px;box-shadow:inset 0 1px #ffffffaa}
.card-seal .icon{width:27px;height:27px;stroke-width:1.5}
.auth-card h2,.setup-card h2{font:normal 31px/1.15 var(--serif);letter-spacing:-.035em;margin-bottom:12px}
.auth-card .card-description,.setup-card .card-description{font-size:14px;line-height:1.7;color:#66766b;margin-bottom:27px}
.form-label{display:block;font-size:11px;letter-spacing:.08em;font-weight:800;text-transform:uppercase;color:#657468;margin-bottom:9px}
.field-group{margin-bottom:20px}
.input-wrap{position:relative}
.text-input{display:block;width:100%;min-height:54px;padding:14px 16px;border:1px solid #d6cdb6;border-radius:12px;background:#fffaf0;color:var(--ink);font-size:16px;outline:none;transition:border-color .2s,box-shadow .2s;box-shadow:inset 0 1px 2px #123a3103}
.text-input::placeholder{color:#9b9d8d}
.text-input:focus{border-color:#55958a;box-shadow:0 0 0 3px #82baa823}
.password-input{padding-right:53px}
.input-action{position:absolute;right:6px;top:5px;width:44px;height:44px;border:0;background:none;color:#859182;display:grid;place-items:center}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:49px;padding:13px 22px;border-radius:12px;font-size:14px;font-weight:750;line-height:1.35;text-decoration:none;transition:transform .15s,background .2s,box-shadow .2s}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn:active:not(:disabled){transform:translateY(1px)}
.btn:disabled{opacity:.45;transform:none}
.btn-primary{background:var(--gold);color:#253b31;box-shadow:0 4px 0 #96733c}.btn-primary:hover:not(:disabled){background:#f0cd91}
.btn-dark{background:var(--ink);color:var(--paper);box-shadow:0 4px 0 #031e25}.btn-dark:hover:not(:disabled){background:#17474b}
.btn-secondary{background:#ffffff08;border:1px solid #d1e1d625;color:var(--paper)}.btn-secondary:hover:not(:disabled){background:#ffffff10}
.btn-light{background:#f1e7ce;color:var(--ink);border:1px solid #dcd1b5}
.btn-quiet{background:none;color:var(--muted);min-height:44px;padding:10px 12px;font-size:12px;font-weight:650}
.btn-block{width:100%}
.btn-small{padding:9px 13px;min-height:44px;font-size:12px}
.auth-note{font-size:11px;line-height:1.6;color:#8a9381;text-align:center;margin:22px 0 0;display:flex;gap:6px;align-items:center;justify-content:center}.auth-note .icon{width:13px;height:13px}
.form-error{font-size:13px;line-height:1.55;padding:12px 14px;border-radius:10px;background:#c54b3020;color:#9a3e28;margin:15px 0}
.form-error:empty{display:none}
.page-intro{margin:10px 0 31px;display:flex;align-items:end;justify-content:space-between;gap:30px}
.page-intro .eyebrow{margin-bottom:11px}
.page-intro h1{font:normal 45px/1.13 var(--serif);letter-spacing:-.04em;margin-bottom:10px}
.page-intro p{font-size:14px;color:var(--muted);margin:0;max-width:620px;line-height:1.7}
.setup-layout{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr);gap:28px}
.setup-card{padding:29px}
.setup-card .card-description{margin-bottom:23px}
.section-label{display:flex;align-items:center;gap:9px;margin:24px 0 11px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#637269}
.section-number{width:21px;height:21px;display:grid;place-items:center;border:1px solid #bac1a7;border-radius:50%;font-size:10px;letter-spacing:0;font-weight:600}
.name-picker,.grade-picker{display:flex;gap:8px}
.name-option{flex:1;min-height:46px;padding:9px 8px;border:1px solid #d7ccb0;border-radius:10px;color:#6a786b;background:#fff8e8;font-size:14px;font-weight:700}
.name-option.selected{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.name-option:disabled{opacity:.35}
.avatar-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.avatar-option{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:end;min-height:141px;border-radius:16px;border:1px solid #dfd4b8;background:#eee3c8;color:#74816b;padding:9px 6px 11px;overflow:hidden}
.avatar-option:before{content:"";position:absolute;inset:21px 15px 36px;background:#dbc49a55;border-radius:50%}
.avatar-option:nth-child(2):before{background:#8fb4a04a}.avatar-option:nth-child(3):before{background:#ccb3af55}
.avatar-option.selected{border:2px solid #396e65;background:#f6edd8;padding:8px 5px 10px;box-shadow:0 0 0 3px #3976680d}
.avatar-option.selected:after{content:"✓";position:absolute;top:8px;right:8px;width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:#376c63;color:white;font-size:11px}
.avatar-option:disabled{opacity:.35;filter:grayscale(1)}
.avatar-option .avatar{width:92px;height:102px}
.avatar-caption{font-size:10px;font-weight:650;position:relative;z-index:1}
.avatar{position:relative;display:inline-block;flex:none;width:68px;height:78px;vertical-align:middle}
.avatar>img,.avatar>.avatar-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.avatar>img{opacity:0;z-index:1;transition:opacity .3s}.avatar.is-loaded>img{opacity:1}.avatar.is-loaded>.avatar-fallback{opacity:0}
.avatar--1{--portrait-color:#bd8053}.avatar--2{--portrait-color:#629b94}.avatar--3{--portrait-color:#b47f7e}
.chooser-note{font-size:11px;color:#929a86;margin:9px 0 0;line-height:1.6}
.grade-picker{align-items:center;justify-content:space-between;padding:12px 0 0;gap:18px}
.grade-picker>span{font-size:12px;color:#6c7e70}
.segmented{display:flex;gap:3px;border-radius:10px;background:#e9dec2;padding:4px;flex:none}
.segment{font-size:12px;min-height:36px;padding:7px 15px;border-radius:7px;background:none;color:#7d856f;font-weight:650}
.segment.selected{background:#fff7e6;color:var(--ink);box-shadow:0 2px 7px #263b2110}
.subject-picker{display:flex;gap:7px;flex-wrap:wrap}
.subject-option{display:flex;align-items:center;justify-content:center;gap:6px;min-height:41px;padding:9px 10px;border:1px solid #d9ceb0;background:#fff8e6;border-radius:10px;color:#8c947c;font-size:11px;font-weight:700}
.subject-option .icon{width:15px;height:15px}.subject-option.selected{background:#dfe9d5;color:#376354;border-color:#bbcdb0}
.setup-submit{margin-top:24px}
.setup-side{display:flex;flex-direction:column;gap:24px}
.join-card{padding:27px;background:#133e43;border:1px solid #8ba89926;border-radius:var(--radius)}
.join-card .eyebrow{color:#abc7b4;margin-bottom:12px}
.join-card h2{font:normal 29px/1.2 var(--serif);letter-spacing:-.025em;margin:0 0 9px}
.join-card p{font-size:13px;line-height:1.7;color:var(--muted);margin-bottom:20px}
.join-form-row{display:flex;gap:9px}
.code-input{font-weight:800;letter-spacing:.17em;text-transform:uppercase;font-family:var(--font);min-width:0}
.join-card .text-input{background:#092f36;border-color:#8aa69950;color:var(--paper);font-size:16px}
.join-card .form-label{color:#a5c0b6}
.join-card .btn{flex:none;padding:13px 15px}
.story-card{position:relative;min-height:280px;overflow:hidden;border-radius:var(--radius);background:#123b40;padding:27px;flex:1}
.story-card .story-scene{position:absolute;inset:auto -35px -197px auto;width:470px;opacity:.8;transform:rotate(-15deg)}
.story-card h3{position:relative;font:normal 25px/1.2 var(--serif);max-width:200px;letter-spacing:-.025em;margin-bottom:12px}
.story-card p{position:relative;color:#b0c7be;font-size:12px;line-height:1.65;max-width:178px}
.story-stars{position:absolute;top:38px;right:30px;font-size:24px;color:var(--gold);letter-spacing:9px}
.lobby-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:27px}
.lobby-card{border-radius:var(--radius);background:#10383e;border:1px solid var(--line);padding:27px}
.lobby-card h2{font:normal 28px/1.2 var(--serif);letter-spacing:-.025em;margin-bottom:9px}
.lobby-note{color:var(--muted);font-size:12px;line-height:1.7;margin-bottom:20px}
.players-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.players-title h2{margin:0}.count-badge{background:#203f40;color:#c3d1bf;border:1px solid #8aa69633;padding:5px 10px;border-radius:20px;font-size:11px}
.lobby-player{display:flex;align-items:center;gap:14px;border:1px solid #cad9c41f;border-radius:17px;padding:10px 16px 10px 9px;background:#1b4447;margin-bottom:12px;min-height:94px}
.lobby-player .avatar{width:69px;height:77px}.player-identity{min-width:0;flex:1}
.player-identity h3{font-size:16px;font-weight:750;margin:0 0 4px;display:flex;align-items:center;gap:7px}.player-identity p{font-size:11px;color:var(--muted);margin:0}
.you-badge{font-size:9px;text-transform:uppercase;letter-spacing:.05em;padding:2px 5px;border-radius:4px;background:#ffffff0b;color:#c5d5c5;font-weight:650}
.ready-status{display:flex;gap:6px;align-items:center;color:var(--teal);font-size:10px;font-weight:700;text-align:right}
.ready-status:before{content:"";width:5px;height:5px;flex:none;border-radius:50%;background:currentColor}.ready-status.away{color:#a4b3a2}
.empty-seat{display:flex;align-items:center;justify-content:center;gap:10px;min-height:91px;border:1px dashed #bdd3c52e;border-radius:17px;color:#8fa99e;font-size:12px;margin-bottom:12px;background:#051c220c}
.empty-seat .icon{width:21px;height:21px}
.lobby-bottom{border-top:1px solid #acc6b923;margin-top:24px;padding-top:21px;display:flex;flex-direction:column;gap:13px}.lobby-bottom p{font-size:11px;color:var(--muted);text-align:center;margin:0}
.lobby-aside{display:flex;flex-direction:column;gap:22px}
.invitation-card{background:var(--paper);color:var(--ink);border-radius:var(--radius);padding:27px;box-shadow:var(--shadow)}
.invitation-card .eyebrow{color:#8c764d;margin-bottom:13px}
.invitation-card h2{font:normal 27px/1.2 var(--serif);letter-spacing:-.02em;margin:0 0 10px}
.invitation-card p{font-size:12px;line-height:1.65;color:#788473;margin-bottom:19px}
.room-code{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#eee3c9;border:1px dashed #baaf8d;border-radius:13px;padding:10px 9px 10px 16px;margin-bottom:15px}
.room-code strong{font-size:29px;letter-spacing:.14em;font-weight:700;white-space:nowrap;line-height:1.3;font-variant-numeric:tabular-nums}
.room-code .icon-button{border:none;background:#e4d7b9;color:#6d795f;width:38px;height:42px;border-radius:9px}
.room-rules{padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff03}
.room-rules h3{font-size:12px;font-weight:750;margin-bottom:17px;color:#d8dfcc}.rule-row{display:flex;align-items:start;gap:12px;margin:14px 0;color:#b9cac0;font-size:12px;line-height:1.6}.rule-row .icon{width:19px;height:19px;color:var(--gold);margin-top:2px}
.subject-tags{display:flex;flex-wrap:wrap;gap:6px}.subject-tag{font-size:9px;letter-spacing:.05em;text-transform:uppercase;border:1px solid #c1d5b92b;border-radius:7px;padding:5px 7px;color:#a9c4b5}
.game-shell{width:min(1480px,100%);padding:11px 38px 38px;margin:0 auto}
.game-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 20px;padding:0 4px}
.room-indicator{display:flex;align-items:center;gap:8px;font-size:11px;color:#b3c8bf}.room-indicator .live-dot{width:6px;height:6px;border-radius:50%;background:#a7d6af;box-shadow:0 0 9px #91d5b44d}.room-indicator strong{color:#e7ddc2;letter-spacing:.08em;font-weight:650}
.game-topline .chapter-title{font:normal 21px/1.25 var(--serif);letter-spacing:-.015em;margin:0}.game-topline .chapter-title small{font:600 10px var(--font);letter-spacing:.08em;color:#99b4a8;margin-left:10px}
.players-strip{display:grid;grid-template-columns:repeat(var(--player-count,3),minmax(0,1fr));gap:11px;margin-bottom:19px}
.players-strip.two-players{grid-template-columns:repeat(2,minmax(0,1fr))}.players-strip.three-players{grid-template-columns:repeat(3,minmax(0,1fr))}
.player-chip{position:relative;display:flex;align-items:center;gap:10px;min-width:0;min-height:86px;border:1px solid #a9c4b923;border-radius:17px;padding:7px 16px 7px 9px;background:#10373e;transition:border-color .3s,background .3s}
.player-chip.is-turn{border-color:#dabc766b;background:#254842;box-shadow:inset 0 0 0 1px #c6ad6a1a}
.player-chip.is-turn:after{content:"";position:absolute;left:23px;right:23px;bottom:-1px;height:2px;background:var(--gold);border-radius:2px;box-shadow:0 0 12px #e7bd7444}
.player-chip .avatar{width:59px;height:68px}.player-chip-name{font-size:15px;font-weight:700;margin-bottom:3px;display:flex;align-items:center;gap:6px}.player-chip-meta{font-size:10px;color:#a8c0b3;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.player-chip-meta .icon{width:12px;height:12px;color:var(--gold)}
.player-chip-score{margin-left:auto;text-align:right;flex:none}.player-chip-score strong{font-size:20px;font-weight:600;line-height:1;letter-spacing:-.045em;color:#e1dbc6}.player-chip-score small{display:block;font-size:9px;color:#8caa9d;margin-top:4px}.player-chip.is-turn .player-chip-score strong{color:var(--gold)}
.turn-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.game-stage{display:grid;grid-template-columns:minmax(0,1.52fr) minmax(310px,.8fr);align-items:start;gap:22px}
.board-panel{min-width:0;border-radius:22px;overflow:hidden;position:relative;background:#224e50;border:1px solid #aac3af31;box-shadow:var(--shadow)}
.board-panel:after{content:"";position:absolute;pointer-events:none;inset:7px;border:1px solid #c5d5b129;border-radius:15px}
.board-top-label{position:absolute;z-index:2;top:22px;left:24px;color:#f3e6c5;display:flex;align-items:center;gap:8px;font-size:10px;font-weight:750;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 2px 7px #061f28}.board-top-label .icon{width:18px;height:18px;color:#e6c07f}
.board-legend{position:absolute;z-index:2;bottom:20px;right:22px;font-size:9px;color:#dbe2c7;display:flex;align-items:center;gap:12px;text-shadow:0 1px 5px #092e35}.legend-item{display:flex;align-items:center;gap:5px}.legend-dot{width:6px;height:6px;border-radius:50%;background:#efd18f}.legend-dot.event{background:#9edbd0}
.board-svg{display:block;width:100%;height:auto;aspect-ratio:1 / 1.05}
.route-shadow{fill:none;stroke:#122f2f;stroke-width:48;stroke-linecap:round;stroke-linejoin:round;opacity:.34}
.route-line{fill:none;stroke:#d4c9a6;stroke-width:3;stroke-dasharray:5 8;stroke-linecap:round;stroke-linejoin:round;opacity:.66}
.board-cell .cell-disc{fill:#ebe4c9;stroke:#fff8df;stroke-width:1.1;filter:drop-shadow(0 3px 0 #12373188)}
.board-cell .cell-number{fill:#4a695e;font:bold 11px var(--font);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.board-cell.event-cell .cell-disc{fill:#71b0a7;stroke:#b9e0c8}.board-cell.event-cell .cell-number{fill:#063d3b}
.board-cell.landmark-cell .cell-disc{fill:#d1ad70;stroke:#f3d49d}.board-cell.landmark-cell .cell-number{fill:#374c35}
.board-cell.start-cell .cell-disc,.board-cell.finish-cell .cell-disc{fill:#e9c57e;stroke:#fae4ad;stroke-width:2}.board-cell.start-cell .cell-number,.board-cell.finish-cell .cell-number{font-size:9px;fill:#3c573e}
.board-token{transition:transform .65s cubic-bezier(.2,.75,.25,1);pointer-events:none}.board-token .token-shadow{fill:#031b2370;filter:blur(1px)}
.board-token .token-base{stroke:#fff1cd;stroke-width:1.3}.board-token.token--1 .token-base{fill:#d48f61}.board-token.token--2 .token-base{fill:#61b6b0}.board-token.token--3 .token-base{fill:#d996ac}
.board-token .token-name{fill:#fff7df;font:bold 9px var(--font);text-anchor:middle;paint-order:stroke;stroke:#0b3434;stroke-width:3px;stroke-linejoin:round}
.board-token.is-turn .token-base{stroke:#ffe6a2;stroke-width:3;filter:drop-shadow(0 0 5px #ffdda6)}
.board-token .token-arrow{fill:#f5d692;filter:drop-shadow(0 1px 3px #0b2e31)}
.board-token.has-image .token-fallback{opacity:0}
.landmark-label{fill:#e7e4c4;font:italic 12px var(--serif);text-anchor:middle;paint-order:stroke;stroke:#295d57;stroke-width:4;stroke-linejoin:round;letter-spacing:.1px}
.river-label{fill:#a2d0cb88;font:italic 23px var(--serif);letter-spacing:10px}
.turn-panel{display:flex;flex-direction:column;gap:16px;min-width:0}
.turn-card{background:var(--paper);color:var(--ink);border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
.turn-card-header{display:flex;align-items:center;justify-content:space-between;padding:18px 23px 0;gap:10px}
.turn-card-header .eyebrow{color:#968354;font-size:9px;letter-spacing:.17em;margin:0}.turn-card-header .eyebrow:before{width:15px}
.turn-count{font-size:10px;color:#93967d;white-space:nowrap}
.turn-card-body{padding:23px}
.turn-heading{font:normal 29px/1.15 var(--serif);letter-spacing:-.035em;margin-bottom:11px}
.turn-copy{color:#788570;font-size:12px;line-height:1.75;margin-bottom:0}
.turn-player-label{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;color:#476e5e;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}
.turn-player-label .turn-dot{background:#649180}
.dice-stage{height:157px;display:flex;align-items:center;justify-content:center;perspective:700px;position:relative;margin:8px 0 13px}
.dice-stage:before{content:"";position:absolute;width:155px;height:155px;border:1px solid #d5c799;border-radius:50%;opacity:.45}.dice-stage:after{content:"";position:absolute;width:124px;height:124px;border:1px solid #d5c799;border-radius:50%;opacity:.55}
.dice{position:relative;z-index:1;width:89px;height:89px;background:#fffcf2;border-radius:19px;border:1px solid #fff;box-shadow:inset -6px -7px 0 #e1d3af,0 11px 0 #c8b68b,0 20px 20px #75623226;transform:rotate(-13deg);display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);padding:16px;gap:6px;transition:transform .3s}
.dice .pip{width:12px;height:12px;justify-self:center;align-self:center;border-radius:50%;background:#17493f;box-shadow:inset 0 2px 2px #092e3544}.dice .pip.empty{opacity:0}
.dice.is-rolling{animation:roll-dice .72s ease-in-out infinite}.dice-decoration{position:absolute;z-index:2;color:#b7a679;font:20px var(--serif)}.dice-decoration.one{left:calc(50% - 110px);top:36px}.dice-decoration.two{left:calc(50% + 78px);bottom:24px;font-size:14px}
.roll-btn{min-height:56px;font-size:15px}.roll-btn .icon{width:21px;height:21px}.roll-hint{font-size:10px;color:#929b80;line-height:1.6;text-align:center;margin:15px 0 0}
.waiting-message{padding:15px 12px;background:#e9e2cb;border-radius:12px;color:#73846d;font-size:12px;line-height:1.65;text-align:center;margin-top:14px}.waiting-message .waiting-dots{display:block;letter-spacing:6px;font-size:15px;color:#83a28b;margin-top:5px}
.question-subject{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}.subject-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:8px;background:#e0e8d0;color:#50715a;font-size:10px;font-weight:750}.subject-pill .icon{width:14px;height:14px}.question-die{color:#8e936e;display:flex;align-items:center;gap:5px;font-size:10px}.question-die .icon{width:16px;height:16px}
.question-topic{margin:0 0 8px;font-size:10px;color:#96987d;line-height:1.5}
.question-text{font-size:21px;line-height:1.48;letter-spacing:-.025em;font-weight:650;margin:0 0 22px;overflow-wrap:anywhere;white-space:pre-line}
.answer-list{display:flex;flex-direction:column;gap:9px;margin:0;padding:0;list-style:none}
.answer-option{width:100%;display:flex;align-items:center;gap:12px;min-height:54px;border:1px solid #dacfaf;border-radius:12px;padding:12px;text-align:left;background:#fff9e9;color:#395a48;font-size:14px;line-height:1.55;font-weight:600;white-space:normal;overflow-wrap:anywhere}
.answer-option:hover:not(:disabled){border-color:#799776;background:#edf1db}.answer-option:disabled{cursor:default}.answer-option .option-letter{flex:none;display:grid;place-items:center;width:25px;height:25px;border:1px solid #d7d0b4;border-radius:7px;font-size:10px;font-weight:650;color:#98967b}.answer-option.is-submitting{border-color:#649082;background:#e4ebd6}.answer-option.is-submitting .option-letter{background:#577b64;color:white;border-color:#577b64}
.spectator-note{font-size:11px;line-height:1.65;background:#eee5cb;color:#7c876f;border-radius:10px;padding:11px 13px;margin:0 0 18px}.question-footer{display:flex;align-items:center;gap:6px;margin:17px 0 0;color:#909880;font-size:10px}.question-footer .icon{width:13px;height:13px}
.feedback-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#d8e6cb;color:#5b8253;margin-bottom:16px}.feedback-icon .icon{width:25px;height:25px}.feedback-icon.incorrect{background:#ede0bc;color:#9b8146}
.feedback-answer{font-size:13px;color:#697c61;line-height:1.6;margin:0 0 10px;overflow-wrap:anywhere}.feedback-answer strong{font-weight:750;color:#335e49}.feedback-explanation{font-size:13px;line-height:1.8;color:#6c7c64;margin-bottom:18px;white-space:pre-line;overflow-wrap:anywhere}
.movement-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;background:#e7e7ce;border-radius:12px;margin-bottom:20px;font-size:11px;color:#66805f}.movement-summary strong{font-size:21px;color:#3e6b4b;font-weight:750;white-space:nowrap}
.event-note{border:1px solid #cabe9366;background:#eadeba66;border-radius:13px;padding:14px;margin:17px 0}.event-note h4{font-size:12px;color:#7e7044;display:flex;gap:7px;align-items:center;margin:0 0 6px}.event-note h4 .icon{width:15px;height:15px}.event-note p{font-size:11px;line-height:1.7;color:#8a815e;margin:0}
.field-note{border:1px solid #9ebdae24;border-radius:17px;padding:17px 19px;background:#0c3036}.field-note h3{font-size:10px;letter-spacing:.11em;text-transform:uppercase;font-weight:750;color:#a5bba4;margin:0 0 9px;display:flex;align-items:center;gap:6px}.field-note h3 .icon{width:14px;height:14px;color:var(--gold)}.field-note p{font-size:11px;line-height:1.75;color:#a2bbb0;margin:0}
.history-card{padding:17px 19px;border:1px solid #afc6b623;border-radius:17px;background:#082a30}.history-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.history-heading h3{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#94b09e;margin:0;font-weight:700}.history-heading .icon{width:15px;height:15px;color:#6c9687}.history-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}.history-list li{font-size:11px;line-height:1.65;color:#a6beb1;padding-left:13px;position:relative;overflow-wrap:anywhere}.history-list li:before{content:"";width:4px;height:4px;border-radius:50%;background:#709785;position:absolute;left:0;top:8px}.history-list li:first-child{color:#d1d8c1}.history-list li:first-child:before{background:var(--gold)}
.victory-banner{margin-bottom:22px;background:var(--paper);color:var(--ink);border-radius:22px;display:flex;align-items:center;gap:20px;padding:25px 29px;border:1px solid #e5ca8b;position:relative;overflow:hidden}.victory-banner:after{content:"✦";position:absolute;right:190px;top:-40px;font-size:150px;line-height:1;color:#e4c6862e;pointer-events:none}.victory-banner .avatar{width:77px;height:98px}.victory-banner h1{font:normal 33px/1.2 var(--serif);letter-spacing:-.03em;margin:0 0 8px}.victory-banner p{font-size:12px;line-height:1.7;color:#7d8668;margin:0;max-width:560px}.victory-banner .btn{margin-left:auto;flex:none}.victory-crown{color:#ae843d;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;margin-bottom:6px;display:flex;align-items:center;gap:6px}.victory-crown .icon{width:15px;height:15px}
.score-list{display:flex;flex-direction:column;gap:13px;margin:21px 0}.score-row{display:flex;align-items:center;gap:9px;border-bottom:1px solid #cbbd951f;padding-bottom:11px}.score-place{font-size:11px;color:#9c9675;width:20px}.score-row strong{font-size:13px;color:#506b51}.score-row span:last-child{margin-left:auto;font-size:11px;color:#85916f}
.empty-state{max-width:500px;padding:60px 24px;text-align:center;margin:0 auto}.empty-state h1{font:normal 35px var(--serif);margin:20px 0 12px}.empty-state p{color:var(--muted);font-size:14px;line-height:1.7}.empty-state>.icon{width:40px;height:40px;color:var(--gold)}
.loading-screen{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:100svh;padding:30px;text-align:center}.loading-screen h1{font:normal 36px var(--serif);letter-spacing:-.04em;margin:16px 0}.loading-screen p{font-size:13px;color:var(--muted)}.loading-compass{font-size:60px;color:var(--gold);animation:compass-turn 5s ease-in-out infinite}.loading-inline{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin 1s linear infinite}
.connection-banner{position:fixed;top:9px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:9px;padding:11px 17px;border:1px solid #dac694;border-radius:12px;background:#f0e4c3;color:#695a32;font-size:12px;box-shadow:0 8px 25px #0003;max-width:calc(100% - 24px);width:max-content}.connection-banner button{background:none;color:inherit;text-decoration:underline;text-underline-offset:3px;padding:0;font-size:inherit;font-weight:700}
.toast{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:80;max-width:calc(100% - 30px);padding:13px 20px;border-radius:13px;background:#f6ecd3;color:#264b3e;font-size:13px;line-height:1.6;text-align:center;box-shadow:0 9px 35px #0005;animation:toast-in .2s ease-out;width:max-content;border:1px solid #d9c78f}
.modal{width:calc(100% - 28px);max-width:510px;max-height:calc(100dvh - 40px);border:1px solid #e2d1aa;border-radius:22px;padding:27px;background:var(--paper);color:var(--ink);box-shadow:0 35px 100px #0006;overscroll-behavior:contain}.modal::backdrop{background:#031c24c9;backdrop-filter:blur(5px)}
.modal-heading{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:19px}.modal-heading h2{font:normal 29px/1.15 var(--serif);letter-spacing:-.03em;margin:4px 0 0}.modal .icon-button{background:#e8ddc2;color:#7a886d;border:none;width:39px;height:39px;padding:9px}
.modal p{color:#728069;font-size:13px;line-height:1.8}.modal .rule-row{color:#6d7e66;font-size:13px}.modal .rule-row .icon{color:#aa854b}.modal .btn-secondary{color:#617758;border-color:#c8c9ab;background:#eee4cd}.modal-actions{display:flex;justify-content:end;gap:8px;margin-top:23px}.modal-actions .btn{flex:1}.modal .section-label:first-child{margin-top:0}.modal .form-error{margin-bottom:0}.modal .avatar-option{min-height:130px}
.rule-number{flex:none;display:grid;place-items:center;width:24px;height:24px;border:1px solid #d0c4a1;border-radius:50%;font-size:11px;color:#9c8352;margin-top:2px}.rules-footnote{padding:12px 15px;border-radius:12px;background:#eae3c9;font-size:11px!important;margin:22px 0 0!important;color:#7c8266!important}
.menu-actions{display:flex;flex-direction:column;gap:10px}
.clipboard-helper{position:fixed;top:-1000px;left:-1000px;width:1px;height:1px;opacity:0}
.final-recap{padding:15px;background:#eee5cb;border-radius:12px;margin:18px 0}.final-recap h3{font-size:10px;letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;gap:7px;color:#7c815d;margin:0 0 12px}.final-recap h3 .icon{width:14px;height:14px}.final-recap p{font-size:12px;line-height:1.8;color:#768368;overflow-wrap:anywhere;margin:0 0 9px}.final-recap p:last-child{margin-bottom:0}.final-recap strong{color:#3e6349}
.host-controls{border-top:1px solid #d9d0b6;margin-top:20px;padding-top:15px}.host-controls p{font-size:10px;line-height:1.7;color:#8b9076;margin:0 0 11px}
.host-takeover{padding:17px;border:1px solid #d4bd7955;border-radius:16px;background:#284d43}.host-takeover p{font-size:11px;line-height:1.75;margin:0 0 12px;color:#cad6b7}.lobby-bottom .host-takeover p{text-align:left;color:#cad6b7}
.board-zoom{position:absolute;z-index:3;right:19px;top:16px;width:44px;height:44px;background:#153f3dbb;color:#e2d7b4;border:1px solid #d3dab43b;backdrop-filter:blur(4px)}.board-zoom .icon{width:19px;height:19px}.board-cell .cell-number{font-size:24px}.board-cell.start-cell .cell-number{font-size:11px}.board-cell.finish-cell .cell-number{font-size:22px}.landmark-label{font-size:16px}.board-token .token-name{font-size:15px}
.map-modal{max-width:1000px;background:#103b3e;color:var(--paper);border-color:#9eba9e55}.map-modal .modal-heading{margin-bottom:8px}.map-modal .icon-button{background:#214d49;color:#d8d9b8}.map-modal .zoom-instruction{color:#a1bdad;font-size:11px;margin-bottom:16px}.map-zoom-scroll{width:100%;height:min(70dvh,760px);overflow:auto;border-radius:14px;overscroll-behavior:contain;border:1px solid #b7c2a338;background:#315e53;touch-action:pan-x pan-y}.map-zoom-scroll>.board-svg{width:900px;height:945px;max-width:none;max-height:none}
.offline-mark{color:#d5b176}.noscript{padding:30px;color:#e9d49c;text-align:center}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes compass-turn{0%,100%{transform:rotate(0deg)}50%{transform:rotate(90deg)}}
@keyframes roll-dice{0%{transform:rotate(-13deg) translateY(0)}25%{transform:rotate(30deg) translateY(-14px)}55%{transform:rotate(-25deg) translateY(-6px)}80%{transform:rotate(18deg) translateY(-12px)}100%{transform:rotate(-13deg) translateY(0)}}
@keyframes toast-in{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}
@media(min-width:1500px){.entrance{padding-top:65px;padding-bottom:150px}.board-panel{max-height:calc(100vh - 256px);min-height:640px}.board-svg{height:100%;max-height:calc(100vh - 256px);object-fit:cover}.board-panel>.board-svg{aspect-ratio:1/1.05}.game-stage{grid-template-columns:minmax(0,1.8fr) minmax(350px,.85fr)}}
@media(max-width:1100px){.site-header{padding:18px 30px;height:84px}.entrance{padding:22px 38px 72px;gap:26px;min-height:calc(100svh - 84px)}.entrance h1{font-size:67px}.entrance-intro{font-size:15px}.adventure-meta{gap:12px}.adventure-meta li{font-size:10px}.auth-card{padding:28px}.page-shell{padding:20px 30px 42px}.game-shell{padding:9px 24px 30px}.game-stage{grid-template-columns:minmax(0,1.15fr) minmax(290px,.8fr);gap:17px}.turn-card-body{padding:20px}.turn-card-header{padding:17px 20px 0}.board-top-label{top:18px;left:19px;font-size:8px}.board-legend{bottom:16px;right:16px;font-size:8px}.setup-layout,.lobby-layout{gap:20px}.player-chip{padding-right:12px;gap:5px}.player-chip .avatar{width:52px;height:62px}.player-chip-name{font-size:14px}.question-text{font-size:19px}.victory-banner{padding:21px;gap:13px}.victory-banner h1{font-size:28px}}
@media(max-width:850px){.game-stage{grid-template-columns:minmax(0,1fr) minmax(280px,.82fr);gap:14px}.player-chip .avatar{width:46px;height:58px}.player-chip-score strong{font-size:17px}.player-chip-score small{font-size:8px}.player-chip-meta{font-size:9px}.player-chip{min-height:75px;padding:6px 10px 6px 4px}.players-strip{gap:8px;margin-bottom:15px}.player-chip-name{font-size:13px}.player-chip .you-badge{display:none}.player-chip.is-turn:after{left:12px;right:12px}.turn-heading{font-size:25px}.dice-stage{height:140px}.turn-card-body{padding:18px}.turn-card-header{padding:16px 18px 0}.field-note,.history-card{padding:15px}.setup-layout{grid-template-columns:minmax(0,1.15fr) minmax(270px,.85fr)}.setup-card{padding:23px}.join-card,.story-card{padding:22px}.subject-option{padding:8px;font-size:10px}.lobby-layout{grid-template-columns:minmax(0,1.1fr) minmax(270px,.8fr)}.lobby-card,.invitation-card{padding:22px}.lobby-player{padding-right:10px;gap:9px}.lobby-player .avatar{width:53px;height:65px}.ready-status{font-size:9px}.game-topline .chapter-title{font-size:18px}.game-topline .chapter-title small{display:none}.room-code strong{font-size:25px}.entrance h1{font-size:57px}.entrance{padding:25px 28px 70px;gap:23px}.auth-card{padding:25px}.auth-card h2{font-size:28px}.entrance-intro{font-size:14px}.entrance-copy{padding-bottom:0}.adventure-meta{max-width:290px}.entrance .eyebrow{font-size:9px;letter-spacing:.15em}}
@media(max-width:700px){.site-header{height:75px;padding:15px 19px;gap:12px}.brand-symbol{width:37px;height:37px}.brand{gap:9px}.brand-text{font-size:14px}.brand-text small{font-size:8px;letter-spacing:.17em;margin-top:3px}.header-link{padding:8px;min-height:42px;font-size:11px;gap:5px}.header-link .icon{width:18px;height:18px}.header-actions{gap:5px}.icon-button{width:40px;height:40px;padding:9px}.header-actions .desktop-only{display:none}.entrance{display:flex;flex-direction:column;padding:27px 23px 53px;gap:30px;min-height:calc(100svh - 75px);overflow:visible}.entrance-copy{width:100%;max-width:440px}.entrance h1{font-size:66px;line-height:1;margin-bottom:19px}.entrance .eyebrow{font-size:9px;letter-spacing:.15em;margin-bottom:17px}.entrance-intro{font-size:14px;line-height:1.75;max-width:340px;margin-bottom:20px}.adventure-meta{max-width:none;gap:17px}.adventure-meta li{font-size:10px}.auth-card{max-width:440px;padding:25px;margin:0 auto}.card-seal{width:48px;height:48px;border-radius:14px;margin-bottom:17px}.card-seal .icon{width:24px;height:24px}.auth-card h2{font-size:29px}.auth-card .card-description{font-size:13px;margin-bottom:21px}.entrance-visual{position:fixed;left:auto;right:-315px;bottom:50px;width:690px;height:690px;opacity:.15;z-index:-1}.entrance .adventure-meta .icon{width:15px;height:15px}.page-shell{padding:15px 20px 35px}.page-intro{margin:9px 0 24px;display:block}.page-intro .eyebrow{font-size:9px;margin-bottom:12px}.page-intro h1{font-size:37px;margin-bottom:11px}.page-intro p{font-size:12px;line-height:1.75}.setup-layout,.lobby-layout{grid-template-columns:1fr;gap:20px}.setup-card{padding:24px}.setup-side{gap:20px}.story-card{min-height:230px}.story-card .story-scene{width:480px;right:-45px;bottom:-225px}.story-card h3{max-width:230px}.story-card p{max-width:240px}.join-card{padding:24px}.subject-option{flex:1;font-size:10px;padding:9px 7px}.section-label{margin-top:22px}.avatar-option{min-height:146px}.avatar-option .avatar{width:95px;height:108px}.grade-picker{padding-top:15px}.setup-submit{margin-top:22px}.lobby-aside{gap:20px}.lobby-card,.invitation-card{padding:23px}.lobby-player .avatar{width:65px;height:76px}.lobby-player{gap:12px;padding:8px 14px 8px 9px}.player-identity h3{font-size:16px}.ready-status{font-size:10px}.room-code strong{font-size:31px}.room-rules{padding:21px 23px}.game-shell{padding:3px 14px 25px}.game-topline{margin-bottom:13px;padding:0 3px}.game-topline .chapter-title{font-size:17px}.room-indicator{font-size:9px;gap:5px}.room-indicator .btn-quiet{font-size:10px;min-height:33px;padding:6px}.room-indicator .btn-quiet .icon{width:14px;height:14px}.players-strip{gap:7px;margin-bottom:13px}.player-chip{gap:1px;min-height:86px;align-items:end;padding:8px 6px 9px 4px;overflow:hidden}.player-chip .avatar{width:39px;height:58px;margin-right:2px;flex:none}.player-chip-name{font-size:11px;gap:4px;line-height:1.2;margin-bottom:5px}.player-chip-meta{font-size:8px;line-height:1.5;gap:4px;white-space:nowrap}.player-chip-meta .icon{width:10px;height:10px}.player-chip-score{position:absolute;right:8px;top:8px;line-height:1}.player-chip-score strong{font-size:13px;color:#9fb8a4}.player-chip-score small{display:inline;font-size:7px;margin-left:2px}.player-chip-score small:before{content:"/"}.player-chip .turn-dot{width:4px;height:4px}.game-stage{display:flex;flex-direction:column;gap:15px}.board-panel{width:100%;border-radius:19px}.board-panel:after{inset:6px;border-radius:13px}.board-svg{width:100%;max-height:60svh;aspect-ratio:1 / 1.05}.board-top-label{top:17px;left:17px;font-size:8px;letter-spacing:.12em}.board-top-label .icon{width:15px;height:15px}.board-legend{bottom:15px;right:17px;font-size:8px}.turn-panel{width:100%;gap:13px}.turn-card{border-radius:19px}.turn-card-header{padding:17px 21px 0}.turn-card-body{padding:20px 21px}.turn-card-header .eyebrow{font-size:9px}.turn-card-header .turn-count{font-size:9px}.turn-heading{font-size:29px}.turn-copy{font-size:12px;line-height:1.7}.roll-layout{display:grid;grid-template-columns:1fr 100px;gap:4px 15px;align-items:center}.roll-layout .roll-text{grid-column:1;grid-row:1}.roll-layout .dice-stage{grid-column:2;grid-row:1;height:110px;margin:0}.dice-stage:before{width:109px;height:109px}.dice-stage:after{width:88px;height:88px}.dice{width:65px;height:65px;border-radius:15px;padding:11px;gap:4px;box-shadow:inset -4px -5px 0 #e1d3af,0 8px 0 #c8b68b,0 12px 15px #75623226}.dice .pip{width:9px;height:9px}.dice-decoration.one{left:calc(50% - 53px);top:0;font-size:13px}.dice-decoration.two{left:calc(50% + 45px);bottom:0;font-size:10px}.roll-layout .roll-actions{grid-column:1/-1;grid-row:2;margin-top:16px}.turn-player-label{font-size:9px;margin-bottom:9px}.roll-hint{font-size:9px;margin-top:13px}.roll-btn{min-height:51px;font-size:14px}.field-note{padding:16px 19px}.history-card{padding:16px 19px}.phase-question .turn-panel,.phase-feedback .turn-panel{order:-1}.phase-question .field-note,.phase-question .history-card,.phase-feedback .field-note,.phase-feedback .history-card{display:none}.phase-question .board-svg,.phase-feedback .board-svg{max-height:50svh}.question-text{font-size:21px;line-height:1.5;margin-bottom:19px}.answer-option{min-height:56px;font-size:14px;padding:13px}.question-footer{font-size:10px}.feedback-explanation{font-size:13px;line-height:1.85}.feedback-icon{width:43px;height:43px;border-radius:13px;margin-bottom:13px}.feedback-answer{font-size:13px}.movement-summary{padding:12px 14px}.victory-banner{padding:22px 19px;display:grid;grid-template-columns:64px 1fr;gap:14px;margin-bottom:16px}.victory-banner .avatar{width:64px;height:90px}.victory-banner h1{font-size:28px;line-height:1.15}.victory-banner p{font-size:11px}.victory-banner .btn{grid-column:1/-1;width:100%;margin:0}.victory-crown{font-size:8px;letter-spacing:.1em}.victory-banner:after{right:-8px;top:-33px}.two-players .player-chip{min-height:77px;align-items:center;padding:6px 9px 6px 7px;gap:5px}.two-players .player-chip .avatar{width:45px;height:61px}.two-players .player-chip-name{font-size:13px}.two-players .player-chip-score{position:static;margin-left:auto}.two-players .player-chip-score strong{font-size:17px}.two-players .player-chip-score small{display:block;font-size:8px;margin-top:4px;margin-left:0}.two-players .player-chip-score small:before{content:""}.two-players .player-chip-meta{font-size:9px}.modal{padding:23px;max-height:calc(100dvh - 26px)}.modal-heading{margin-bottom:19px}.modal-heading h2{font-size:27px}.modal .avatar-option .avatar{width:83px;height:95px}.modal .avatar-option{min-height:126px}.modal .section-label{font-size:10px}.modal .subject-option{font-size:9px}.modal-actions{margin-top:22px}.modal-actions .btn{padding:12px 13px;font-size:12px}.toast{font-size:12px;bottom:max(15px,env(safe-area-inset-bottom));padding:12px 16px}.connection-banner{font-size:11px;padding:10px 12px;gap:7px}}
@media(max-width:380px){.site-header{padding:14px 15px}.brand-text{font-size:13px}.brand-symbol{width:33px;height:33px}.brand-text small{font-size:7px}.header-link{font-size:10px;padding:8px 5px}.header-link .icon{width:16px;height:16px}.header-actions{gap:3px}.header-actions .icon-button{width:36px;height:36px;padding:9px}.entrance{padding:20px 19px 40px;gap:26px}.entrance h1{font-size:57px}.entrance-intro{font-size:13px}.adventure-meta{gap:12px}.adventure-meta li{font-size:9px}.auth-card{padding:23px}.page-shell{padding:12px 15px 30px}.setup-card,.join-card{padding:21px}.avatar-option .avatar{width:85px;height:98px}.avatar-option{min-height:138px}.subject-option{font-size:9px;gap:4px;padding:8px 6px}.subject-option .icon{width:13px;height:13px}.grade-picker>span{font-size:11px}.segment{font-size:11px;padding:7px 12px}.game-shell{padding-left:11px;padding-right:11px}.players-strip{gap:5px}.player-chip{padding-left:2px;padding-right:3px}.player-chip .avatar{width:34px;height:54px}.player-chip-name{font-size:10px}.player-chip-meta{font-size:7px;gap:3px}.player-chip-score{right:6px;top:7px}.player-chip-score strong{font-size:12px}.player-chip-score small{font-size:7px}.game-topline .chapter-title{font-size:16px}.room-indicator{font-size:8px}.game-topline{gap:6px}.roll-layout{grid-template-columns:1fr 87px;gap:4px 8px}.turn-heading{font-size:26px}.turn-card-body{padding:19px}.turn-card-header{padding-left:19px;padding-right:19px}.turn-copy{font-size:11px}.question-text{font-size:19px}.answer-option{font-size:13px;padding:12px;gap:9px}.turn-card-header .eyebrow{font-size:8px;letter-spacing:.14em}.roll-hint{font-size:9px}.board-top-label{font-size:7px}.board-legend{font-size:7px;gap:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.board-token{transition:none!important}}
.subject-option,.segment{min-height:44px}
.room-code .icon-button,.modal .icon-button{width:44px;height:44px}
@media(max-width:700px){.site-header{gap:8px}.header-link{width:44px;height:44px;min-height:44px;padding:12px;justify-content:center}.header-link span{display:none}.header-actions .icon-button{width:44px;height:44px;padding:11px}.room-indicator .btn-quiet{width:44px;height:44px;min-height:44px;padding:12px}.brand{min-height:44px}}

/* The signed Android package is available before and after sign-in. */
a.btn { text-decoration: none; }
.apk-download { margin-top: 16px; }
