:root{--linen:#f7eedf;--table:#eadcc2;--paper:#fff9ed;--forest:#2f4d3c;--ink:#302a23;--muted:#675541;--rust:#a13f2b;--edge:#806d55;--pale:#d7cbb4;--green:#2e6143;font-family:'Trebuchet MS',Arial,sans-serif;color:var(--ink);background:var(--table);font-size:16px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 0%,#faf3e6 0%,transparent 55%),linear-gradient(110deg,#eadac0,#f3e8d1 52%,#e9d7b9);min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;border:1px solid var(--edge);padding:9px 16px;background:var(--paper);border-radius:7px;font-weight:700;transition:transform .16s,background .16s,box-shadow .16s}button:hover{background:#eee2cc}button:active{transform:translateY(2px)}button:disabled{cursor:default;opacity:.5}button.primary{background:var(--rust);color:#fff9ef;border-color:var(--rust)}button.primary:hover{background:#863522}button.confirm{background:var(--green);color:white;border-color:var(--green)}button.secondary{background:var(--forest);color:var(--paper);border-color:var(--forest)}button.text-button{border:0;background:transparent;text-decoration:underline;font-size:.87rem;font-weight:400}input,select,textarea{border:1px solid var(--edge);background:#fffdf7;border-radius:5px;min-height:46px;padding:10px 12px;max-width:100%}input:focus,textarea:focus{background:white}input::placeholder,textarea::placeholder{color:var(--muted)}:focus-visible{outline:3px solid var(--rust);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;color:var(--forest)}h1{font-weight:700}h2{font-size:clamp(1.35rem,2vw,1.85rem)}h3{font-size:1.25rem}p{line-height:1.5}a{color:var(--forest)}img{display:block;max-width:100%}[hidden]{display:none!important}.skip-link{position:fixed;top:-80px;z-index:100;padding:15px;background:white}.skip-link:focus{top:4px}.topbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 22px;padding:14px clamp(16px,3vw,46px);border-bottom:1px dashed #a38b6b}.brand{font-family:Georgia,serif;font-size:2.3rem;line-height:1;font-weight:700;color:var(--forest);border:0;background:transparent;padding:2px 0;position:relative}.brand-thread{display:block;width:52px;height:7px;border-bottom:2px dashed var(--rust);position:absolute;bottom:-7px;right:0}.brand:hover{background:transparent}#connection{font-size:.86rem;color:var(--muted);margin-right:auto}.tools{display:flex;gap:7px;align-items:center}.tools>button{background:transparent;border-color:transparent;font-size:.87rem;padding:7px 10px}.tools>button:hover{border-color:var(--edge)}.tools .flag{width:46px;height:44px;padding:9px 6px;border-radius:5px}.flag img{width:32px;height:23px;object-fit:cover}.flag[aria-pressed=true]{border:2px solid var(--forest);background:var(--paper)}main{max-width:1700px;margin:auto;padding:24px clamp(16px,2.5vw,40px) 50px}.loading{text-align:center;margin:10vh auto}.entry-scene{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,420px);align-items:center;gap:clamp(30px,5vw,90px);max-width:1260px;min-height:650px;margin:0 auto 32px}.welcome{padding:18px 0}.welcome-line{font-size:.95rem;color:var(--muted);margin-bottom:14px}.welcome h1{font-size:clamp(5rem,10vw,9rem);line-height:.98;letter-spacing:-.07em;margin:0 0 26px;position:relative;display:inline-block}.title-stitch{display:block;position:absolute;left:8px;right:0;bottom:-12px;height:15px;border-bottom:4px dashed var(--rust);transform:rotate(-3deg)}.welcome h2{font-size:clamp(1.7rem,2.8vw,2.5rem);line-height:1.14;margin-bottom:12px;max-width:640px}.intro{font-size:1.15rem;color:var(--muted);margin-bottom:24px}.entry-portraits{display:flex;align-items:flex-end;gap:0;padding:15px 12px 10px;max-width:620px}.entry-portraits figure{margin:0 -8px;width:26%;border:7px solid var(--paper);border-bottom-width:21px;border-radius:7px;box-shadow:3px 10px 16px #4b382827;transform:rotate(-7deg)}.entry-portraits figure:nth-child(2){transform:rotate(5deg) translateY(-12px)}.entry-portraits figure:nth-child(3){transform:rotate(-3deg) translateY(5px)}.entry-portraits figure:nth-child(4){transform:rotate(9deg) translateY(-6px)}.entry-portraits img{aspect-ratio:1;object-fit:cover;border-radius:2px}.entry-footnote{font-family:Georgia,serif;font-style:italic;color:var(--muted);margin:23px 0 0;max-width:580px}.entry-paper{background:var(--paper);padding:34px 32px 24px;box-shadow:4px 12px 30px #573e2926;border-radius:4px;position:relative;border:1px solid #c9b899;transform:rotate(1deg)}.entry-paper:after{content:'';position:absolute;inset:9px;pointer-events:none;border:1px dashed #bca789;border-radius:3px}.entry-paper h2{font-size:1.9rem;margin:8px 0 26px}.paper-clip{width:32px;height:62px;border:5px solid #998367;border-radius:15px;position:absolute;top:-27px;right:38px;transform:rotate(13deg);background:transparent}.paper-clip:after{content:'';position:absolute;inset:7px;border:2px solid #7a684f;border-radius:8px}form label{display:block;font-size:.88rem;font-weight:700;margin:14px 0 7px}#nickname,#practice-count{width:100%}.entry-actions{display:grid;gap:9px;margin:16px 0 23px}.entry-actions button{width:100%}.join-row{display:flex;gap:8px}.join-row input{min-width:0;width:100%;text-transform:uppercase;letter-spacing:.12em}.join-row button{flex-shrink:0;font-size:.9rem;padding:9px 12px}.form-error{color:#8e2a1e;font-weight:700;margin:12px 0 0;font-size:.9rem}.paper-note{font-size:.87rem;color:var(--muted);margin:21px 0 0}.resume{margin-top:13px;width:100%}.cast-strip{max-width:1260px;margin:20px auto}.cast-strip h2{margin-bottom:8px}.cast-strip>p{color:var(--muted);font-size:.95rem}.cast-preview{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:15px}.pupil-card{border:1px solid #aa9576;border-radius:7px;padding:5px;background:var(--paper);min-width:0;position:relative;box-shadow:1px 4px 5px #4b382819;display:flex;flex-direction:column;text-align:center;touch-action:pan-y;font-weight:400}.pupil-card:hover{transform:translateY(-4px);background:#fffdf7;box-shadow:1px 8px 12px #4b382827}.portrait{display:block;position:relative;border-radius:4px;overflow:hidden;width:100%;background:#d9c5a6;aspect-ratio:1}.portrait img{width:100%;height:100%;object-fit:cover}.letter{position:absolute;left:5px;top:5px;font-family:Georgia,serif;font-size:1.5rem;font-weight:700;background:var(--paper);color:var(--forest);border-radius:3px;padding:0 5px;box-shadow:0 1px 4px #0003;line-height:1.15}.pupil-name{font-family:Georgia,serif;font-weight:700;padding:7px 2px 3px;font-size:clamp(.75rem,1.1vw,1rem);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.pupil-state{font-size:.7rem;line-height:1.2;padding:2px 1px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.pupil-card.selected{border:3px solid var(--green);padding:3px;transform:translateY(-5px)}.pupil-card.selected:after{content:'✓';position:absolute;right:7px;top:7px;background:var(--green);color:white;border-radius:50%;width:24px;height:24px;font-size:19px}.lobby-scene{max-width:1250px;margin:35px auto}.lobby-intro h1{font-size:clamp(2.3rem,5vw,4rem);max-width:650px}.lobby-intro>p{max-width:600px;color:var(--muted)}.invitation{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.invitation strong{font-family:Georgia,serif;font-size:2.4rem;letter-spacing:.05em}.invite-url{max-width:600px;width:100%;margin:12px 0 24px;font-size:.85rem}.seat-ring{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;margin:35px 0}.lobby-seat img{aspect-ratio:1;object-fit:cover;border:7px solid var(--paper);border-radius:7px;box-shadow:2px 8px 10px #432a2025}.lobby-seat h2{margin:16px 0 5px}.lobby-seat p{font-size:.9rem;color:var(--muted)}.empty-seat{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:210px;border:2px dashed #a69071;border-radius:8px;color:var(--muted)}.chair{width:55px;height:55px;border:7px solid #a48b69;border-bottom-width:15px;border-radius:9px;position:relative}.chair:before,.chair:after{content:'';position:absolute;bottom:-30px;width:7px;height:30px;background:#a48b69}.chair:before{left:-7px}.chair:after{right:-7px}.empty-seat p{margin:40px 0 0;font-size:.85rem}.lobby-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.lobby-actions p{margin:0;color:var(--muted);font-size:.9rem}
.table-top{display:flex;align-items:center;gap:20px;margin-bottom:18px}.table-top h1{font-size:1.65rem;margin:0}.rounds{display:flex;gap:7px;margin-left:auto}.round-token{display:grid;place-items:center;width:35px;height:35px;border:1px dashed var(--edge);border-radius:50%;font-family:Georgia,serif;font-size:1.2rem}.round-token.current{background:var(--forest);color:var(--paper);border-color:var(--forest)}.round-token.past{background:#d7c9af}.table-top>button{font-size:.8rem;padding:7px 10px}.classmates{display:flex;gap:14px;margin-bottom:16px;flex-wrap:wrap}.classmate{display:flex;gap:10px;align-items:center;flex:1;min-width:180px;border-bottom:2px dashed #a79172;padding:5px 0 13px;position:relative}.classmate.active{border-color:var(--rust)}.classmate.active:before{content:'';position:absolute;bottom:-5px;left:8px;width:8px;height:8px;border-radius:50%;background:var(--rust)}.classmate img{width:47px;height:47px;object-fit:cover;border-radius:50%;border:2px solid var(--paper)}.classmate h3{font-family:inherit;font-size:.95rem;margin:0 0 3px;color:var(--ink)}.classmate p{font-size:.73rem;color:var(--muted);margin:0}.revealed-letters{display:flex;gap:3px;margin-left:auto;flex-wrap:wrap;max-width:115px}.revealed-letters span{border:1px solid var(--edge);border-radius:3px;font-family:Georgia,serif;font-weight:bold;padding:3px 5px;background:var(--paper)}.turn-banner{display:flex;align-items:center;gap:15px;flex-wrap:wrap;border-bottom:1px solid #af9b7b;margin-bottom:20px;padding:0 0 16px}.turn-banner h2{font-size:1.4rem;margin:0}.turn-banner p{font-size:.9rem;color:var(--muted);margin:0}.turn-banner .active-name{color:var(--rust)}.game-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px}.clue-book{align-self:start;background:var(--paper);padding:20px 18px 16px;border-radius:3px;border:1px solid #bca88a;box-shadow:2px 5px 12px #5537201a;max-height:calc(100dvh - 180px);overflow:auto;scrollbar-width:thin;position:sticky;top:20px}.clue-book h2{font-size:1.45rem;margin-bottom:5px}.clue-book>p{font-size:.82rem;color:var(--muted);margin-bottom:16px}.clue-entry{padding:13px 0;border-top:1px dashed #c0ad91;display:block}.clue-entry .clue-meta{font-size:.75rem;line-height:1.4;color:var(--muted);display:block}.word-display{display:flex;align-items:center;gap:5px;margin-top:7px}.word-display span{font-family:Georgia,serif;font-weight:bold;flex:1;text-align:center;border-bottom:2px solid var(--forest);font-size:1.15rem}.word-display b{display:grid;place-items:center;background:var(--forest);color:var(--paper);width:31px;height:31px;border-radius:50%;font-size:1.1rem;margin-left:3px}.clue-word-button{border:0;background:transparent;padding:0;width:100%;min-height:44px;font-weight:400;text-align:left}.clue-word-button:hover{background:#f0e4ce}.clue-event{font-size:.82rem;padding:12px 0;border-top:1px dashed #c0ad91;color:var(--muted)}.board-column{min-width:0}.table-tabs{display:flex;align-items:center;gap:6px;border-bottom:1px dashed var(--edge);padding-bottom:8px;margin-bottom:16px}.table-tabs button{font-size:.88rem;background:transparent;border-color:transparent;padding:8px 12px}.table-tabs button[aria-selected=true]{background:var(--forest);color:var(--paper);border-color:var(--forest)}.table-tabs .mobile-clues{display:none}.roll-heading{display:flex;align-items:end;gap:14px;margin-bottom:14px}.roll-heading h2{font-size:1.4rem;margin:0}.roll-heading p{font-size:.8rem;color:var(--muted);margin:0 auto 0 0}.roll-heading button{font-size:.76rem;padding:7px 10px}.roll-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:12px}.roll-grid .pupil-name{font-size:clamp(.7rem,.85vw,.95rem)}.roll-grid .pupil-card.known{background:#e9dfcc}.roll-grid .pupil-card.known .portrait{filter:saturate(.7)}.pupil-card.word-letter{outline:3px solid var(--rust);outline-offset:2px}.theory-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin-top:20px;padding:17px 0;border-top:2px dashed #b6a080;border-bottom:1px dashed #b6a080}.theory-head h3{margin:0 0 5px;font-size:1.2rem}.theory-head p{font-size:.82rem;color:var(--muted);margin:0}.theory-slots{display:flex;gap:9px;align-items:center}.theory-slot{width:78px;min-height:90px;background:#e7d7bb;border:2px dashed #9b805c;border-radius:6px;display:flex;align-items:center;justify-content:center;position:relative}.theory-slot>span{font-family:Georgia,serif;font-size:2rem;color:#715f49}.theory-slot .pupil-card{width:100%}.theory-slot .pupil-card .pupil-name{font-size:.74rem}.theory-slot .pupil-state{display:none}.theory-slot.drop-legal{border:3px solid var(--green);background:#d9e5d4}.theory-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.theory-controls button{font-size:.85rem}.preview-action{display:flex;gap:8px;align-items:center;padding:9px 13px;background:#edf2e7;border:1px solid var(--green);border-radius:6px}.preview-action span{font-size:.86rem}.own-class{margin-top:20px;display:flex;gap:18px;align-items:center}.own-class h3{font-size:1.15rem;margin-bottom:5px}.own-class>div:first-child{flex-shrink:0;width:125px}.own-class p{font-size:.78rem;margin:0;color:var(--muted)}.own-hand{display:flex;gap:9px;flex:1;flex-wrap:wrap}.own-hand .pupil-card{width:90px}.own-hand .pupil-name{font-size:.77rem}.own-hand .pupil-state{display:none}.playground-row{display:flex;gap:9px;align-items:center;margin-top:20px}.playground-row h3{font-size:1rem;margin:0 12px 0 0}.playground-row .pupil-card{width:62px}.playground-row .pupil-name{font-size:.65rem}.playground-row .pupil-state{display:none}.card-back{display:grid;place-items:center;width:60px;height:76px;border:3px solid #e6d5b6;outline:1px solid var(--edge);border-radius:5px;background:var(--forest);color:var(--paper);font-size:2rem;font-family:Georgia,serif}
.action-paper{background:var(--paper);border:1px solid #b69d79;border-radius:5px;padding:16px 20px;margin-bottom:20px;position:relative}.action-paper h3{margin:0 0 5px}.action-paper p{font-size:.85rem;margin-bottom:10px;color:var(--muted)}.question-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.question-form label{font-size:.79rem;margin:0 0 5px}.question-form .word-input{width:175px;font-family:Georgia,serif;font-size:1.7rem;letter-spacing:.15em;text-transform:uppercase;padding:8px 10px}.question-form select{max-width:190px}.word-field{flex:0 0 auto}.word-count{font-size:.8rem;color:var(--muted);min-height:19px;margin-top:6px}.suggest-word{font-size:.8rem!important;padding:7px 10px;align-self:end}.after-question{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pending-word{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.pending-word strong{font-family:Georgia,serif;font-size:1.8rem;letter-spacing:.1em}.waiting{display:flex;gap:10px;align-items:center}.waiting p{margin:0}.ready-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.ready-list span{font-size:.8rem;background:#e7dcc6;padding:6px 9px;border-radius:4px}.ready-list .ready{background:#dce7d7;color:var(--forest)}.notebook-intro{font-size:.85rem;color:var(--muted);margin-bottom:14px}.notebook-table{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid #a68e6e}.notebook-table th,.notebook-table td{border:1px solid #c0ae94;padding:5px;text-align:center}.notebook-table th{font-size:.78rem;padding:9px 5px;background:#e5d8c0}.notebook-table .student-row{display:flex;gap:8px;align-items:center;padding:3px;text-align:left}.student-row img{width:38px;height:38px;border-radius:3px}.student-row span{font-size:.78rem}.student-row b{font-family:Georgia,serif;font-size:1.2rem}.note-mark{min-width:44px;min-height:44px;padding:4px;font-size:1.2rem;border:1px solid #907d65;border-radius:3px}.note-mark[data-value="1"]{background:#ead1c8;color:#8e2a1e}.note-mark[data-value="2"]{background:#f5e1ad;color:#6b480b}.note-mark[data-value="3"]{background:#dce7d7;color:var(--forest)}.notes-area{margin-top:16px}.notes-area label{display:block;margin-bottom:7px;font-size:.85rem;font-weight:700}.notes-area textarea{width:100%;height:110px;resize:vertical}.notes-area p{font-size:.78rem;color:var(--muted);margin:7px 0}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;margin:12px 0}.final-classes{display:grid;gap:15px}.final-class{border-bottom:1px dashed var(--edge);padding:10px 0 17px}.final-class h3{font-size:1.2rem;margin:0 0 7px}.letter-choices{display:flex;gap:6px;flex-wrap:wrap}.letter-choice{padding:4px 9px;min-width:44px;min-height:44px;font-family:Georgia,serif;font-size:1.1rem}.letter-choice.selected{background:var(--forest);color:var(--paper)}.final-class .count-label{font-size:.8rem;color:var(--muted);margin-top:7px}.private-peek{padding:12px 0;border-top:1px dashed var(--edge);margin-top:18px}.private-peek h3{font-size:1rem}.peek-list{display:flex;gap:6px;flex-wrap:wrap}.peek-list button{font-size:.78rem;padding:5px 8px}.guess-history{display:flex;gap:15px;flex-wrap:wrap;margin-top:15px}.guess-history p{font-size:.78rem;color:var(--muted);margin:0}.guess-history b{font-family:Georgia,serif;letter-spacing:.15em;color:var(--forest)}
dialog{width:min(680px,calc(100% - 26px));max-height:90dvh;border:1px solid var(--edge);border-radius:9px;background:var(--paper);color:var(--ink);padding:27px;box-shadow:5px 16px 50px #30201540}dialog::backdrop{background:#24190fc7}dialog h2{font-size:1.8rem}dialog p,dialog li{line-height:1.55;font-size:.94rem}.modal-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:20px}.inspection{display:grid;grid-template-columns:240px minmax(0,1fr);gap:25px}.inspection img{width:100%;border:8px solid white;border-radius:8px;box-shadow:2px 5px 13px #50352230}.inspection h2{margin:0 0 10px}.inspection p{font-size:.85rem;color:var(--muted)}.inspection button{margin:5px 0;width:100%;font-size:.9rem}.inspection .inspect-letter{font-family:Georgia,serif;font-size:3.5rem;font-weight:700;line-height:1;color:var(--forest);margin-bottom:10px}.settings-grid{display:grid;gap:16px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:15px}.setting-row input[type=range]{width:180px;padding:0;accent-color:var(--forest)}.setting-row label{font-size:.9rem}.setting-row input[type=checkbox]{width:25px;height:25px;min-height:25px;accent-color:var(--forest)}.reveal-choices{display:flex;gap:9px;flex-wrap:wrap}.reveal-choices .pupil-card{width:95px}.reveal-choices .pupil-state{display:none}.reveal-target{width:100%;margin-top:14px}.peek-modal{text-align:center}.peek-modal .pupil-card{width:230px;margin:20px auto;pointer-events:none}.peek-modal .pupil-name{font-size:1.35rem}.peek-modal>p{font-size:.9rem;color:var(--muted)}#toast{position:fixed;bottom:max(25px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:var(--forest);color:var(--paper);padding:14px 22px;border-radius:7px;z-index:30;box-shadow:0 5px 20px #0003;max-width:calc(100% - 32px);width:max-content;font-size:.94rem;transition:opacity .2s,transform .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}#drag-follower{display:none;position:fixed;pointer-events:none;z-index:80;opacity:1;width:110px;transform:rotate(3deg);filter:drop-shadow(2px 9px 8px #33251955)}#drag-follower.active{display:block}.dragging .pupil-card{touch-action:none}.score-scene{max-width:1180px;margin:10px auto}.score-heading{text-align:center;margin-bottom:26px}.score-heading h1{font-size:clamp(2.4rem,5vw,4rem);margin:12px 0}.score-heading p{color:var(--muted)}.missing-three{display:flex;gap:22px;justify-content:center;margin:20px auto 30px}.missing-three .pupil-card{width:190px;cursor:default;transition:transform .5s}.missing-three .pupil-name{font-size:1.25rem}.missing-three .pupil-state{display:none}.face-down .portrait img,.face-down .pupil-name,.face-down .letter{visibility:hidden}.face-down{background:var(--forest);border:8px solid #ddceb3;position:relative}.face-down:before{content:'?';position:absolute;inset:0;display:grid;place-items:center;font-family:Georgia,serif;font-size:5rem;color:var(--paper)}.face-down .portrait{background:transparent}.score-narration{text-align:center;min-height:55px;color:var(--forest);font-family:Georgia,serif;font-size:1.3rem}.rankings{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:20px;margin:20px auto}.result-player{background:var(--paper);border:1px solid #ab9473;border-radius:5px;padding:18px;text-align:center;position:relative}.result-player.winner{border:3px solid var(--forest);padding:16px}.result-player h2{font-size:1.25rem;margin:0 0 10px}.score-total{font-family:Georgia,serif;font-weight:700;font-size:3rem;color:var(--forest);line-height:1.1;transition:color .3s}.score-detail{display:flex;gap:6px;justify-content:center;margin:15px 0 0;font-size:.8rem;flex-wrap:wrap}.score-detail span{background:#e8dcc5;padding:5px 7px;border-radius:3px}.winner-label{font-family:Georgia,serif;color:var(--rust);font-size:1.15rem;margin:12px 0 0}.score-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:25px 0}.result-hands{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.result-hands .pupil-card{width:74px}.result-hands .pupil-name{font-size:.65rem}.result-hands .pupil-state{display:none}.reveal-count{font-size:.8rem;color:var(--muted);margin-top:10px}.tie-note{text-align:center;font-size:.85rem;color:var(--muted)}.action-paper.arrival{animation:paper-arrive .45s ease-out}.in-game .roll-grid{animation:roll-arrive .6s ease-out}.entry-portraits{animation:roll-arrive .6s ease-out}@keyframes paper-arrive{from{transform:translateY(-10px);opacity:.3}to{transform:none;opacity:1}}@keyframes roll-arrive{from{opacity:.3;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(min-width:1500px){.game-layout{grid-template-columns:290px minmax(0,1fr)}.roll-grid{gap:16px}.roll-grid .pupil-name{font-size:.95rem}.own-hand .pupil-card{width:105px}}
@media(max-width:1180px){.game-layout{grid-template-columns:220px minmax(0,1fr);gap:20px}.roll-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.classmate{min-width:145px}.classmate img{width:40px;height:40px}.own-class>div:first-child{width:95px}.own-hand .pupil-card{width:75px}.entry-scene{gap:35px;grid-template-columns:minmax(0,1fr) 365px;min-height:580px}.entry-paper{padding:30px 25px 22px}.cast-preview{gap:10px}}
@media(max-width:850px){.entry-scene{grid-template-columns:1fr;max-width:560px;gap:30px;min-height:0}.welcome{padding-top:10px}.welcome h1{font-size:6.5rem}.entry-paper{transform:none;padding:25px 28px}.entry-portraits{max-width:500px}.cast-preview{grid-template-columns:repeat(4,minmax(0,1fr))}.seat-ring{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.game-layout{display:block}.clue-book.desktop-clues{display:none}.table-tabs .mobile-clues{display:block}.clue-book{position:static;max-height:none;width:100%;margin:0 0 15px}.roll-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.roll-grid .pupil-name{font-size:.8rem}.classmates{gap:10px}.classmate{min-width:125px;padding:4px 0 10px}.classmate p{font-size:.69rem}.revealed-letters{max-width:65px}.revealed-letters span{font-size:.72rem;padding:2px 4px}.topbar{gap:8px 14px;padding:12px 18px}.tools{gap:3px}.tools>button{font-size:.8rem;padding:7px}.brand{font-size:2rem}#connection{font-size:.76rem}.own-hand .pupil-card{width:85px}.table-top{gap:10px}.table-top h1{font-size:1.4rem}.rounds{gap:4px}.round-token{width:29px;height:29px;font-size:1rem}.classmate.active{border-width:3px}.notebook-table th{font-size:.73rem}.missing-three .pupil-card{width:155px}.score-detail span{font-size:.75rem}}
@media(max-width:570px){main{padding:20px 14px 35px}.topbar{padding:11px 14px;gap:10px}.tools{width:100%;justify-content:space-between;gap:3px}.tools>button{font-size:.78rem}.tools .flag{width:46px}.welcome h1{font-size:5.6rem;margin-bottom:25px}.welcome h2{font-size:1.75rem}.welcome-line{font-size:.8rem}.intro{font-size:1rem;margin-bottom:14px}.entry-portraits{padding:13px 10px 9px}.entry-portraits figure{border-width:5px;border-bottom-width:15px}.entry-footnote{font-size:.88rem;margin-top:16px}.entry-paper{padding:26px 24px 22px}.entry-paper h2{font-size:1.6rem;margin-bottom:18px}.paper-note{font-size:.8rem}.cast-strip{margin-top:35px}.cast-strip h2{font-size:1.45rem}.cast-strip>p{font-size:.85rem}.cast-preview{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.pupil-name{font-size:.8rem}.lobby-scene{margin:12px auto}.seat-ring{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:25px 0}.lobby-intro h1{font-size:2.3rem}.lobby-intro p{font-size:.88rem}.empty-seat{min-height:170px}.lobby-seat h2{font-size:1.3rem}.table-top{flex-wrap:wrap;margin-bottom:15px}.table-top h1{font-size:1.28rem}.round-token{width:26px;height:26px;font-size:.9rem}.table-top>button{min-height:44px}.classmates{gap:10px;margin-bottom:17px}.classmate{flex-basis:calc(50% - 10px);min-width:0}.classmate img{width:36px;height:36px}.classmate h3{font-size:.82rem}.classmate p{font-size:.68rem}.turn-banner{gap:5px;padding-bottom:13px;margin-bottom:14px}.turn-banner h2{font-size:1.22rem;width:100%}.turn-banner p{font-size:.78rem}.table-tabs{gap:4px;margin-bottom:12px}.table-tabs button{font-size:.8rem;padding:8px 9px}.roll-heading{flex-wrap:wrap;gap:8px}.roll-heading h2{font-size:1.15rem}.roll-heading p{font-size:.72rem}.roll-heading button{margin-left:auto;font-size:.72rem}.roll-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.roll-grid .pupil-card{padding:3px}.roll-grid .pupil-name{font-size:.65rem;padding-top:5px}.letter{font-size:1.2rem;left:3px;top:3px;padding:0 3px}.pupil-state{font-size:.58rem}.pupil-card.selected{padding:1px}.pupil-card.selected:after{width:19px;height:19px;right:4px;top:4px;font-size:15px}.theory-line{gap:10px;margin-top:15px;padding:14px 0}.theory-head h3{font-size:1.05rem}.theory-head p{font-size:.73rem}.theory-slot{width:61px;min-height:74px}.theory-slot .pupil-name{font-size:.6rem}.theory-slots{gap:6px}.theory-controls button{font-size:.77rem;padding:8px 10px}.preview-action{width:100%;justify-content:space-between}.own-class{display:block;margin-top:20px}.own-class>div:first-child{width:auto;display:flex;align-items:center;gap:10px;margin-bottom:9px}.own-class h3{margin:0;font-size:1rem}.own-class p{font-size:.72rem}.own-hand{gap:8px}.own-hand .pupil-card{width:calc((100% - 32px)/5);max-width:77px}.own-hand .pupil-name{font-size:.62rem}.playground-row h3{font-size:.9rem}.playground-row .pupil-card{width:56px}.action-paper{padding:14px;margin-bottom:15px}.action-paper h3{font-size:1.13rem}.action-paper p{font-size:.78rem}.question-form{gap:8px}.question-form .word-input{width:150px;font-size:1.45rem}.question-form select{max-width:155px;font-size:.9rem}.question-form>button{font-size:.8rem;padding:9px 11px}.word-count{font-size:.7rem}.notebook-table th,.notebook-table td{padding:3px}.notebook-table .student-row{gap:4px;flex-wrap:wrap;justify-content:center}.student-row img{width:31px;height:31px}.student-row span{display:none}.student-row b{font-size:1.1rem}.note-mark{padding:4px;min-width:44px}.notebook-table th{font-size:.65rem;overflow-wrap:anywhere}.notes-area textarea{height:100px}.inspection{grid-template-columns:1fr;gap:18px}.inspection>img{width:210px;margin:auto}.inspection .inspect-letter{display:none}.inspection h2{text-align:center;font-size:1.5rem}dialog{padding:22px}.setting-row input[type=range]{width:140px}.missing-three{gap:10px}.missing-three .pupil-card{width:calc((100% - 20px)/3)}.missing-three .pupil-name{font-size:.82rem}.face-down:before{font-size:3rem}.score-heading h1{font-size:2.2rem}.score-narration{font-size:1.06rem;min-height:65px}.rankings{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.result-player{padding:13px 9px}.result-player.winner{padding:11px 7px}.score-total{font-size:2.4rem}.result-player h2{font-size:1.08rem}.winner-label{font-size:.94rem}.score-detail{margin-top:10px}.score-actions button{font-size:.82rem;padding:8px 10px}.join-row button{font-size:.8rem;padding:8px 10px}.entry-actions button{font-size:.95rem}}
@media(max-width:360px){.roll-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.theory-line{display:flex;flex-direction:column;align-items:flex-start}.theory-slot{width:75px}.notebook-table th{font-size:.6rem}.note-mark{min-width:42px}.round-token{width:23px;height:23px}.question-form select{max-width:140px}.question-form .word-input{width:140px}}
.gallery-controls{display:flex;gap:10px;margin:20px 0}.extra-class{margin:12px 0 25px}.style-options{display:grid;grid-template-columns:1fr 1fr;gap:18px}.style-options button{padding:8px;display:flex;flex-direction:column;align-items:center;gap:12px}.style-options img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px}.style-options strong{font-family:Georgia,serif;font-size:1.2rem}.style-options small{font-size:.78rem;line-height:1.4}.style-options button[aria-pressed=true]{border:3px solid var(--forest);padding:6px}.result-breakdown{border-bottom:1px dashed var(--edge);padding-bottom:15px;margin-bottom:20px}.result-breakdown h3{margin-bottom:10px}.result-breakdown p{margin-bottom:7px;font-size:.85rem}.latest-answer{font-family:Georgia,serif;letter-spacing:.2em;margin-top:10px;font-size:1.6rem}.latest-answer b{background:var(--forest);color:white;padding:3px 9px;border-radius:50%;letter-spacing:0}.in-game .roll-grid{animation:none}.deal-arrival .roll-grid{animation:roll-arrive .6s ease-out}.missing-three .pupil-card:disabled,.note-mark:disabled{opacity:1}.board-column>.theory-line{margin:0 0 0;border-top:0;padding:5px 0 12px}.board-column>.theory-controls{margin:9px 0 12px}.board-column>.guess-history{margin:0 0 14px}.calm *, .calm *:before,.calm *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.calm .pupil-card:hover{transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.pupil-card:hover{transform:none}}
@media(max-width:360px){.notebook-table th,.notebook-table td{padding:1px}.note-mark{min-width:44px}.student-row img{display:none}}
.pupil-card{border-color:var(--edge)}.pupil-card:disabled{opacity:1;cursor:default}.theory-slot{border-color:var(--edge)}.setting-row input[type=checkbox]{width:44px;height:44px;min-height:44px}dialog a{display:inline-flex;min-height:44px;align-items:center}@media(max-width:430px){.tools{flex-wrap:wrap}.tools .flag{flex-shrink:0}}
.entry-portraits figure{animation:toy-breathe 9s ease-in-out infinite}.entry-portraits figure:nth-child(2n){animation-delay:-4s}.roll-grid .pupil-card:not(.selected){animation:toy-breathe 12s ease-in-out infinite}.roll-grid .pupil-card:nth-child(3n){animation-delay:-4s}.roll-grid .pupil-card:nth-child(3n+1){animation-delay:-8s}.roll-grid .pupil-card:hover,.roll-grid .pupil-card:focus-visible,.dragging .pupil-card{animation-play-state:paused}.dragging .pupil-card{translate:none;rotate:none}@keyframes toy-breathe{0%,100%{translate:0 0;rotate:-.15deg}50%{translate:0 -1.5px;rotate:.15deg}}
.theory-slot.draft-slot{outline:3px dashed var(--green);outline-offset:2px}.theory-slot.draft-slot .pupil-card{box-shadow:none}
.theory-dock{position:sticky;top:8px;z-index:6;background:#f3e8d1;padding:8px 9px 5px;margin:0 -9px 16px;border-bottom:1px dashed var(--edge)}.theory-dock .theory-line{margin:0;border-top:0;padding:0 0 10px}.theory-dock .theory-controls{margin:8px 0 0}.theory-dock .guess-history{margin:10px 0 2px}.drag-handle{display:none}.roll-grid .drag-handle{display:flex;position:absolute;right:0;top:0;width:44px;height:44px;justify-content:flex-end;align-items:flex-start;padding:4px;touch-action:none}.drag-handle i{display:block;background-color:var(--paper);border-radius:3px;width:16px;height:19px;background-image:radial-gradient(circle at 5px 5px,var(--forest) 1.5px,transparent 1.6px),radial-gradient(circle at 11px 5px,var(--forest) 1.5px,transparent 1.6px),radial-gradient(circle at 5px 10px,var(--forest) 1.5px,transparent 1.6px),radial-gradient(circle at 11px 10px,var(--forest) 1.5px,transparent 1.6px),radial-gradient(circle at 5px 15px,var(--forest) 1.5px,transparent 1.6px),radial-gradient(circle at 11px 15px,var(--forest) 1.5px,transparent 1.6px)}
.entry-avatar{display:flex;align-items:center;gap:12px;margin:14px 0}.entry-avatar>img{width:64px;height:64px;object-fit:cover;border:2px solid var(--edge);border-radius:5px;flex:none}.entry-avatar>div{min-width:0;font-size:.85rem}.entry-avatar>div>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.entry-avatar button{font-size:.76rem;padding:7px 8px}.avatar-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px}.avatar-choice{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:5px}.avatar-choice img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:3px}.avatar-choice span{font-family:Georgia,serif;font-size:.9rem;overflow-wrap:anywhere}.avatar-choice[aria-pressed=true]{border:3px solid var(--forest);padding:3px}
