@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap";:root{color:#19372f;font-synthesis:none;text-rendering:optimizelegibility;--paper:#f2f0e9;--paper-bright:#fbfaf5;--forest:#112a23;--forest-soft:#1c3b30;--forest-mid:#275044;--leaf:#486e58;--gold:#d8b76d;--gold-bright:#edce87;--ink:#19372f;--muted:#728078;--line:#d9ddd4;--red:#a85348;--green:#497957;--mono:"DM Mono", Consolas, monospace;--serif:"Playfair Display", Georgia, serif;background:#f2f0e9;font-family:DM Sans,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--paper);min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}a{color:inherit;text-decoration:none}.page-shell,.admin-shell{flex-direction:column;width:min(1220px,100% - 64px);min-height:100vh;margin:0 auto;display:flex}.topbar{border-bottom:1px solid #d8ddd5;justify-content:space-between;align-items:center;min-height:82px;display:flex}.brand{color:var(--forest);letter-spacing:-.055em;align-items:center;gap:10px;font-size:19px;font-weight:700;display:inline-flex}.brand-mark{width:31px;height:31px;color:var(--gold-bright);font-family:var(--serif);border:1px solid #78907e;border-radius:50%;place-items:center;font-size:19px;font-weight:500;display:grid}.brand-dot{color:#b18a46}.host-link{color:#405d50;letter-spacing:.025em;font-size:12px;font-weight:600}.host-link span{color:#9b7439;margin-left:6px}.hero-grid{flex:1;grid-template-columns:1.14fr .86fr;align-items:center;gap:92px;padding:72px 5.5% 56px;display:grid}.hero-copy{align-self:center;padding-bottom:10px}.eyebrow,.section-label,.card-topline,.login-kicker{font-family:var(--mono);letter-spacing:.14em;font-size:10px;font-weight:500}.eyebrow{color:#64806d;align-items:center;gap:9px;display:flex}.eyebrow-dot{background:#9cba8c;border-radius:50%;width:7px;height:7px;display:inline-block;box-shadow:0 0 0 3px #82a47829}h1,h2,p{margin-top:0}.hero-copy h1,.admin-content h1,.game-heading-row h1,.login-content h1{color:var(--forest);font-family:var(--serif);letter-spacing:-.055em;margin:22px 0 20px;font-size:clamp(52px,6vw,76px);font-weight:500;line-height:.99}h1 em,h2 em{color:#ae8847;font-weight:500}.hero-intro{color:#64736b;max-width:390px;font-size:16px;line-height:1.75}.feature-line{color:#78857d;align-items:center;gap:10px;margin-top:39px;font-size:12px;display:flex}.feature-line strong{color:#35594a;font-size:12px}.feature-line i{border-top:1px solid #b5beb3;width:20px;margin:0 2px;display:inline-block}.feature-icon{color:#b18a46;font-size:19px}.join-card{background:#fbfaf5;border:1px solid #d9ddd4;border-radius:4px;padding:32px 34px 26px;position:relative;box-shadow:0 18px 55px #22362b0b}.join-card:before,.surface:before{pointer-events:none;content:"";opacity:.24;background-image:radial-gradient(#647566 .4px,#0000 .5px);background-size:5px 5px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(130deg,#000,#0000 70%);mask-image:linear-gradient(130deg,#000,#0000 70%)}.card-topline{color:#87918a;justify-content:space-between;font-size:9px;display:flex}.card-index{color:#b4b9af}.join-card h2{color:var(--forest);font-family:var(--serif);letter-spacing:-.035em;margin:23px 0 7px;font-size:30px;font-weight:500}.join-card>p{color:#7a847d;margin-bottom:27px;font-size:12px}.join-form{z-index:1;flex-direction:column;gap:10px;display:flex;position:relative}.join-form label,.admin-login-form label{color:#73827a;font-family:var(--mono);letter-spacing:.12em;margin-top:8px;font-size:9px}.join-form input:not([type=checkbox]),.admin-login-form input{width:100%;height:48px;color:var(--forest);background:#fffefa;border:1px solid #d7dcd3;border-radius:3px;outline:none;padding:0 14px;font-size:13px}.join-form input:focus,.admin-login-form input:focus{border-color:#8ca18d;box-shadow:0 0 0 3px #7b977e1f}.join-form .code-input{font-family:var(--mono);letter-spacing:.29em;text-transform:uppercase;font-size:18px}.button{letter-spacing:.01em;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:14px;min-height:44px;padding:0 20px;font-size:12px;font-weight:700;transition:background .18s,border-color .18s,transform .18s;display:inline-flex}.button:not(:disabled):hover{transform:translateY(-1px)}.button span{font-size:17px;line-height:1}.button-primary{color:#fbf9ed;background:#234b3b;border-color:#234b3b}.button-primary:not(:disabled):hover{background:#2d604b}.button-wide{width:100%}.join-form .button{margin-top:8px}.private-note{color:#859087;align-items:center;gap:8px;margin-top:23px;font-size:10px;display:flex}.private-note span{color:#a78348;font-size:14px}.landing-footer,.admin-footer{color:#91988f;min-height:52px;font-family:var(--mono);letter-spacing:.075em;border-top:1px solid #d8ddd5;justify-content:space-between;align-items:center;margin-top:auto;font-size:9px;display:flex}.landing-footer span:last-child,.admin-footer span:last-child{letter-spacing:0;font-family:DM Sans,sans-serif;font-size:10px}.landing-footer b,.admin-footer b{color:#b59152;margin-left:6px}.found-room{color:#4f6857;background:#f5f5ed;border:1px solid #dfe3da;align-items:center;gap:9px;margin:0 0 4px;padding:11px 12px;font-size:11px;display:flex}.found-room b{color:#89958a;font-family:var(--mono);margin-left:auto;font-size:9px;font-weight:400}.resume-player-list{z-index:1;gap:8px;display:grid;position:relative}.resume-player-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:190px;display:grid;overflow-y:auto}.resume-player{color:#385645;text-align:left;background:#f6f7f0;border:1px solid #d9dfd6;border-radius:3px;justify-content:space-between;align-items:center;gap:6px;min-width:0;min-height:42px;padding:0 9px;display:flex}.resume-player:hover:not(:disabled){background:#edf1e8;border-color:#91a68f}.resume-player:disabled{opacity:.56}.resume-player span{text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;overflow:hidden}.resume-player small{color:#8a968b;font-family:var(--mono);flex:none;font-size:8px}.resume-player small.presence-online{color:#4f8058}.resume-player small.presence-offline{color:#8a8f87}.join-divider{color:#849086;border-top:1px solid #e0e4dc;margin-top:4px;padding-top:12px;font-size:10px}.found-dot,.pulse-dot{background:#99b683;border-radius:50%;flex:none;width:7px;height:7px;display:inline-block;box-shadow:0 0 0 3px #91b07d24}.text-button{color:#7e8b80;background:0 0;border:0;padding:4px;font-size:11px}.text-button:hover{color:var(--forest)}.join-form .text-button{align-self:center}.alert{color:#9b4e40;background:#fbf0e9;border:1px solid #e0c4b8;border-radius:3px;padding:10px 12px;font-size:11px;line-height:1.5}.alert:empty{display:none}.muted-box{color:#7d877f;border:1px solid #dfe3da;padding:13px;font-size:11px}.catalog-section{border-top:1px solid #d8ddd5;grid-template-columns:.72fr 1.28fr;align-items:center;gap:42px;padding:22px 5.5% 37px;display:grid}.catalog-heading .section-label{color:#7f8e81}.catalog-heading h2{color:#29483a;font-family:var(--serif);margin:10px 0 0;font-size:22px;font-weight:500;line-height:1.24}.catalog-heading h2 em{color:#aa874a}.catalog-cards{grid-template-columns:1fr 1fr;gap:10px;display:grid}.catalog-card{align-items:center;gap:11px;min-height:69px;padding:11px 13px;display:flex}.catalog-card-live{background:#faf9f2bf;border:1px solid #d4dacd;transition:border .18s,transform .18s}.catalog-card-live:hover{border-color:#9eaf99;transform:translateY(-2px)}.catalog-seal,.catalog-plus{color:#9a8047;width:31px;height:31px;font-family:var(--serif);border:1px solid #c5b27b;border-radius:50%;flex:none;place-items:center;font-size:17px;display:grid}.catalog-plus{color:#9da89d;border-style:dashed;border-color:#c5cdc2;font-family:DM Sans,sans-serif;font-size:16px}.catalog-card-copy{flex-direction:column;gap:5px;min-width:0;display:flex}.catalog-card-copy b{color:#45604e;font-family:var(--mono);letter-spacing:.045em;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:500;overflow:hidden}.catalog-card-copy small{color:#879287;font-family:var(--mono);letter-spacing:.035em;font-size:7px}.catalog-arrow{color:#a58b50;margin-left:auto;font-size:15px}.catalog-card-next{background:#f5f5ed6b;border:1px dashed #d4dad0}.catalog-card-next .catalog-card-copy b{color:#849084}.catalog-card-next .catalog-card-copy small{color:#a1aaa0}.seat-map{width:100%;height:334px;margin:15px auto 0;position:relative;overflow:hidden}.map-table{color:#738478;text-align:center;background:#e1e4d73b;border:1px solid #7f947d57;border-radius:48%/22%;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:20% 22%}.table-rune{color:#b4975d;font-family:var(--serif);font-size:24px}.map-table strong{color:#536a5c;font-family:var(--serif);font-size:16px;font-weight:500}.table-caption{color:#929a90;max-width:180px;font-size:9px;line-height:1.5}.seat{z-index:1;color:#819087;text-align:left;background:#fcfbf6f5;border:1px solid #d7ddd3;border-radius:3px;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;width:min(122px,15%);min-width:70px;height:54px;padding:6px 8px;display:flex;position:absolute;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 3px 9px #1b312609}.seat:disabled{opacity:1}.seat-clickable:not(:disabled){cursor:pointer;transition:border .16s,background .16s,box-shadow .16s}.seat-clickable:not(:disabled):hover{border-color:#9eb092;box-shadow:0 4px 13px #1b31261a}.seat-number{color:#a0a89f;font-family:var(--mono);letter-spacing:.05em;font-size:8px}.seat-player-name{align-items:center;gap:4px;width:100%;min-width:0;display:flex}.seat-name{color:#738078;text-overflow:ellipsis;white-space:nowrap;flex:auto;width:auto;min-width:0;font-size:10px;font-weight:600;overflow:hidden}.seat-leader-marker{color:#d8b963;flex:none;font-size:11px;line-height:1}.seat-selected{background:#e5ecdf;border-color:#8da488}.seat-selected .seat-name{color:#42634d}.seat-open{background:#f8f9f3bd;border-style:dashed}.seat-taken{background:#27503f;border-color:#476e56}.seat-taken .seat-number{color:#b7c7b2}.seat-taken .seat-name{color:#f4f4e9}.seat-picked{border:2px solid #ba9958;box-shadow:0 0 0 3px #d2b57330}.seat-presence{background:#aed092;border-radius:50%;width:5px;height:5px;position:absolute;top:7px;right:7px}.seat-presence.seat-online{background:#aed092;box-shadow:0 0 0 3px #aed09224}.seat-presence.seat-offline{box-shadow:none;background:#819087}.vote-marker{font-family:var(--mono);letter-spacing:.01em;border-radius:2px;padding:1px 3px;font-size:6px;line-height:1.2;position:absolute;top:3px;right:4px}.vote-marker-yes{color:#e2f0d8;background:#56815a}.vote-marker-no{color:#fae3d8;background:#a8584b}.admin-top-actions{align-items:center;gap:19px;display:flex}.host-tag{color:#65806b;font-family:var(--mono);letter-spacing:.1em;align-items:center;gap:7px;font-size:9px;display:inline-flex}.host-tag i{background:#8bae7e;border-radius:50%;width:6px;height:6px}.admin-content{flex:1;width:min(100%,1110px);margin:0 auto;padding:55px 0 45px}.admin-content h1{margin:16px 0 10px;font-size:clamp(47px,5.2vw,64px)}.admin-lead{color:#77827a;max-width:540px;margin-bottom:31px;font-size:13px;line-height:1.65}.setup-grid{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:25px;display:grid}.surface{background:#f9f8f1;border:1px solid #dbe0d7;border-radius:4px;position:relative;overflow:hidden;box-shadow:0 9px 28px #22362b09}.surface>*{z-index:1;position:relative}.setup-surface{padding:24px 24px 18px}.section-label{color:#859187;justify-content:space-between;align-items:center;gap:12px;font-size:9px;line-height:1.4;display:flex}.section-label span{color:#9da69a;text-align:right;font-size:8px}.setup-surface .seat-map{height:325px;margin-top:4px}.setup-bottom{color:#879188;border-top:1px solid #e3e5dc;justify-content:space-between;align-items:center;gap:16px;padding-top:14px;font-size:10px;display:flex}.setup-bottom .button{min-width:175px}.setup-aside{background:#e9ece3;border:1px solid #d9ddd4;flex-direction:column;padding:25px 25px 20px;display:flex;position:relative}.aside-number{color:#b5a071;font-family:var(--serif);font-size:30px}.setup-aside h2{color:#294a3b;max-width:230px;font-family:var(--serif);margin:20px 0 10px;font-size:25px;font-weight:500;line-height:1.15}.setup-aside p{color:#718076;font-size:11px;line-height:1.75}.aside-rule{border-top:1px solid #cdd5c8;margin:auto 0 20px}.supported-game{align-items:center;gap:9px;margin-top:13px;display:flex}.mini-emblem{color:#987b44;border:1px solid #bdab7d;border-radius:50%;place-items:center;width:29px;height:29px;display:grid}.supported-game b{color:#435d4c;font-size:10px;display:block}.supported-game small{color:#89938a;margin-top:3px;font-size:9px;display:block}.ready-pill{color:#648267;font-family:var(--mono);letter-spacing:.08em;border:1px solid #b6c4b0;margin-left:auto;padding:4px 6px;font-size:7px}.saved-rooms{border-top:1px solid #d8ddd5;margin-top:27px;padding-top:16px}.saved-room-list{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.saved-room{text-align:left;background:#f8f7f0;border:1px solid #d8ded5;align-items:center;gap:10px;min-width:0;padding:9px;display:flex}.saved-room:not(:disabled):hover{border-color:#9baf98}.saved-room .code-badge{gap:2px}.saved-room .code-badge span{color:#816d42;background:#f3efdd;border-color:#d3c394;min-width:14px;height:20px;font-size:8px}.saved-room-info{flex-direction:column;gap:4px;min-width:0;display:flex}.saved-room-info b{color:#45604e;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.saved-room-info small{color:#879287;font-size:8px}.saved-room-arrow{color:#a58b50;margin-left:auto}.admin-content>.alert{margin-top:14px}.admin-login-page{color:#f4f2e9;background:var(--forest);place-items:center;min-height:100vh;padding:46px 22px;display:grid;position:relative;overflow:hidden}.login-content{z-index:1;width:min(100%,390px);position:relative}.brand-light{color:#e5e9dd}.brand-light .brand-mark{color:var(--gold-bright);border-color:#667e6c}.login-kicker{color:#a6b59e;margin-top:76px;font-size:9px}.login-content h1{color:#f0efe5;margin:19px 0 12px;font-size:59px}.login-content h1 em{color:var(--gold-bright)}.login-content>p{color:#b2beb1;margin-bottom:27px;font-size:12px}.admin-login-form{flex-direction:column;gap:11px;display:flex}.admin-login-form label{color:#a7b5a5}.admin-login-form input{color:#f2f0e7;background:#1a3a2e;border-color:#53695b;height:49px}.admin-login-form input::placeholder{color:#87998a}.button-paper{color:#263c2d;background:var(--gold-bright);border-color:#dec47e}.button-paper:not(:disabled):hover{background:#f3d997}.login-back{color:#a9b6a8;margin-top:25px;font-size:10px;display:inline-block}.login-back:hover{color:#f5f3e9}.login-footer{color:#aab5a7;font-family:var(--mono);letter-spacing:.1em;font-size:8px;position:absolute;bottom:25px;right:34px}.login-footer span{color:var(--gold);margin:0 7px}.login-orbit{border:1px solid #bcb1821f;border-radius:50%;width:440px;height:440px;position:absolute}.orbit-one{top:-255px;right:-150px}.orbit-two{width:370px;height:370px;top:-220px;right:-115px}.back-button{color:#76847a;background:0 0;border:0;margin-bottom:22px;padding:0;font-size:11px}.game-picker-content{padding-top:39px}.game-choice{background:#faf9f2;border:1px solid #d6ddd2;grid-template-columns:150px minmax(0,1fr) 180px;align-items:center;gap:25px;padding:19px;display:grid;box-shadow:0 8px 26px #20382b0b}.game-choice-art{color:#dec37e;min-height:157px;font-family:var(--mono);letter-spacing:.18em;background:#1c3c30;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:9px;display:flex}.game-choice-seal{width:53px;height:53px;font-family:var(--serif);border:1px solid #ac9562;border-radius:50%;place-items:center;font-size:25px;display:grid}.game-choice-info h2{color:#27483a;font-family:var(--serif);margin:11px 0 7px;font-size:24px;font-weight:500}.game-choice-info p{color:#78837a;max-width:430px;margin:0;font-size:11px;line-height:1.6}.game-choice-tags{gap:7px;display:flex}.game-choice-tags span{color:#859187;font-family:var(--mono);letter-spacing:.08em;font-size:8px}.game-choice-tags span+span:before{content:"·";color:#c4b58e;margin-right:7px}.role-settings-toggle{color:#957645;margin-top:15px;font-size:10px}.game-choice-action{flex-direction:column;align-items:stretch;gap:9px;display:flex}.game-choice-action span{color:#89948b;text-align:center;font-size:9px}.role-settings{background:#e9ece4;border:1px solid #dce0d8;grid-template-columns:.82fr 1.18fr;gap:28px;margin-top:22px;padding:20px 21px;display:grid}.role-settings p{color:#77837a;max-width:250px;margin:9px 0 0;font-size:10px;line-height:1.65}.role-options{grid-template-columns:1fr 1fr;gap:9px 18px;display:grid}.role-option{cursor:pointer;align-items:flex-start;gap:9px;display:flex}.role-option input{opacity:0;pointer-events:none;position:absolute}.custom-check{color:#0000;background:#f8f8f1;border:1px solid #b4c0b1;flex:none;place-items:center;width:16px;height:16px;font-size:11px;display:grid}.role-option input:checked+.custom-check{color:#fff;background:#426650;border-color:#426650}.role-option b{color:#415c4b;font-size:10px;display:block}.role-option small{color:#849087;margin-top:3px;font-size:8px;line-height:1.4;display:block}.game-shell{color:#edf0e5;background:var(--forest);min-height:100vh}.game-topbar{border-bottom:1px solid #e1e5d421;align-items:center;gap:24px;min-height:72px;padding:0 max(28px,50vw - 630px);display:flex}.game-topbar .brand{flex:none}.game-top-meta{color:#9eae9e;font-family:var(--mono);letter-spacing:.1em;align-items:center;gap:12px;font-size:9px;display:flex}.top-separator{color:#5f7968}.your-seat{color:#d5c088}.top-actions{align-items:center;gap:14px;margin-left:auto;display:flex}.role-shortcut,.leave-button{color:#dce3d6;background:#e9ead60a;border:1px solid #d3dac738;border-radius:3px;min-height:33px;padding:0 12px;font-size:10px}.role-shortcut{color:#ead89c;border-color:#dbc07e6b;align-items:center;gap:7px;display:inline-flex}.role-shortcut span{font-size:13px}.stop-game-button{color:#f0b9a8;background:#9744351f;border:1px solid #d58b786b;border-radius:3px;min-height:33px;padding:0 12px;font-size:10px}.stop-game-button:not(:disabled):hover{background:#97443538;border-color:#e69d8ab8}.stop-game-button:disabled{opacity:.55}.leave-button{color:#9dab9d;background:0 0;border-color:#0000}.game-content{width:min(1260px,100% - 56px);margin:0 auto;padding:44px 0 26px}.game-heading-row{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.eyebrow-light{color:#93a98f}.game-heading-row h1{color:#f3f2e8;margin:14px 0 0;font-size:clamp(39px,4.5vw,55px)}.game-heading-row h1 em{color:#e2c87f}.phase-pill{color:#bdc9b8;white-space:nowrap;background:#ebecdb09;border:1px solid #c5d0b82b;align-items:center;gap:10px;margin-bottom:3px;padding:10px 13px;font-size:10px;display:inline-flex}.player-layout,.action-layout,.admin-lobby-grid{grid-template-columns:minmax(0,1.42fr) minmax(265px,.58fr);align-items:stretch;gap:19px;display:grid}.panel-wide{padding:19px 20px 15px}.panel-wide .section-label,.admin-table-surface .section-label{color:#8f9e8d}.panel-wide .section-label span,.admin-table-surface .section-label span{color:#879a87}.panel-wide .seat-map{height:360px}.waiting-panel{color:#e8eadf;background:#1a3a2f;border-color:#cdd9c32e;flex-direction:column;align-items:flex-start;min-height:100%;padding:24px 23px;display:flex}.waiting-panel .section-label{color:#a1b29e}.waiting-glyph{color:#dfc57f;width:45px;height:45px;font-family:var(--serif);border:1px solid #dcc37e85;border-radius:50%;place-items:center;margin-bottom:19px;font-size:26px;display:grid}.waiting-panel h2,.action-card h2,.result-panel h2{color:#f1f0e6;font-family:var(--serif);letter-spacing:-.02em;margin:17px 0 8px;font-size:27px;font-weight:500}.waiting-panel>p,.action-card>p,.result-panel>p{color:#adbaac;margin:0 0 17px;font-size:11px;line-height:1.65}.code-badge{align-items:center;gap:5px;display:flex}.code-badge span{color:#f0dc9d;min-width:29px;height:37px;font-family:var(--mono);background:#ecdca10e;border:1px solid #e6d39959;border-radius:2px;place-items:center;font-size:14px;display:grid}.waiting-panel .code-badge{margin:6px 0 18px}.waiting-status{color:#a9b8a8;align-items:center;gap:9px;font-size:10px;display:flex}.waiting-panel .waiting-status{margin-top:auto}.waiting-status .pulse-dot{width:6px;height:6px}.admin-waiting-panel .button{margin-top:20px}.admin-waiting-panel .alert{margin-top:12px}.game-footnote{color:#7e9482;font-family:var(--mono);letter-spacing:.09em;justify-content:space-between;margin-top:16px;font-size:8px;display:flex}.game-footnote b{color:#d3bb79;margin-left:5px}.private-reveal{text-align:center;color:#edf0e6;background:#19392f;border-color:#ccd8c333;width:min(620px,100%);margin:24px auto;padding:32px}.role-sigil{color:#dfc57e;width:52px;height:52px;font-family:var(--serif);border:1px solid #dbbe777a;border-radius:50%;place-items:center;margin:0 auto 19px;font-size:25px;display:grid}.private-reveal h2{color:#f4f2e7;font-family:var(--serif);margin:16px 0 8px;font-size:29px;font-weight:500}.private-reveal>p{color:#acb9aa;margin-bottom:18px;font-size:11px;line-height:1.6}.private-reveal .role-card{text-align:left;margin:16px auto}.private-reveal>.button{min-width:200px}.private-reveal>.text-button{color:#a9b7a7;margin:8px auto 0;display:block}.action-card,.status-card,.admin-table-surface,.board-side-panel{color:#ebeee4;background:#19392f;border-color:#cfdac42b;padding:22px}.action-card h2{font-size:29px}.action-card>p{max-width:525px}.section-label{color:#a4b39f}.section-label span{color:#839985}.action-layout .seat-map{height:320px;margin-top:18px}.action-layout .map-table,.admin-table-surface .map-table{background:#cad9bd09;border-color:#b6c9a94d}.action-layout .map-table strong,.admin-table-surface .map-table strong{color:#b3c0ae}.action-layout .table-caption,.admin-table-surface .table-caption{color:#819683}.action-layout .seat{color:#adbaaa;background:#213f33;border-color:#506b5c}.action-layout .seat-number{color:#839887}.action-layout .seat-name{color:#c3d0c0}.action-layout .seat-taken,.action-layout .seat-selected{background:#385744;border-color:#78966d}.action-layout .seat-taken .seat-name{color:#e9eee1}.action-layout .seat-picked{border-color:#d1b46f}.player-picks{grid-template-columns:1fr 1fr;gap:7px;margin:19px 0 16px;display:grid}.player-pick{color:#d7e0d1;text-align:left;background:#e0e9d609;border:1px solid #bfcfb82e;border-radius:3px;align-items:center;gap:10px;min-height:46px;padding:0 11px;font-size:10px;display:flex}.player-pick:hover,.player-pick-active{background:#829d6c2b;border-color:#99ac82}.pick-seat{color:#aab99d;font-family:var(--mono);font-size:8px}.pick-check{color:#dcc783;margin-left:auto;font-size:16px}.button-approve{color:#e8eee2;background:#335841;border-color:#6d9873}.button-approve:not(:disabled):hover{background:#406d4e}.button-reject{color:#f0ded6;background:#633e38;border-color:#a96b5e}.button-reject:not(:disabled):hover{background:#74483f}.button-approve span,.button-reject span{font-size:15px}.vote-actions{gap:9px;margin:19px 0 14px;display:flex}.vote-actions .button{flex:1}.team-roster{flex-wrap:wrap;gap:7px;margin:18px 0;display:flex}.roster-chip{color:#dce4d6;background:#e0e9d609;border:1px solid #bfcfb830;align-items:center;gap:8px;min-height:30px;padding:0 9px;font-size:9px;display:inline-flex}.roster-chip b{color:#d1bb7c;font-family:var(--mono);font-size:8px;font-weight:400}.waiting-panel-inline{background:#e3ebda09;border:1px solid #c4d5b929;align-items:flex-start;gap:11px;padding:13px;display:flex}.waiting-line-icon{color:#d3bd7a;font-size:20px;line-height:1}.waiting-panel-inline strong,.waiting-panel-inline span:last-child{display:block}.waiting-panel-inline strong{color:#e7ecdf;margin-bottom:4px;font-size:10px}.waiting-panel-inline div>span{color:#9fae9f;font-size:9px;line-height:1.5}.waiting-compact{margin:16px 0}.waiting-status{margin-top:14px}.quest-track{grid-template-columns:repeat(5,1fr);gap:5px;margin:15px 0 17px;display:grid}.quest-outcome{background:#4c754e1f;border:1px solid #b8ccab3d;align-items:center;gap:11px;margin:0 0 18px;padding:12px 15px;display:flex}.quest-outcome-success{background:#4e825129;border-color:#a4ca9757}.quest-outcome-failed{background:#91433626;border-color:#e09c8652}.quest-outcome-symbol{color:#a8ce9f;border:1px solid;border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font-size:14px;display:grid}.quest-outcome-failed .quest-outcome-symbol{color:#e4a08a}.quest-outcome>span:last-child{gap:3px;display:grid}.quest-outcome small{color:#9bac98;font-family:var(--mono);letter-spacing:.1em;font-size:8px}.quest-outcome strong{color:#e8eee1;font-size:12px;font-weight:600}.quest-node{color:#829684;background:#e6eedd06;border:1px solid #c7d4be24;flex-direction:column;align-items:center;gap:5px;min-width:0;padding:8px 2px 7px;display:flex}.quest-number{color:#829684;font-family:var(--mono);font-size:8px}.quest-symbol{color:#879a87;font-size:16px;line-height:1}.quest-caption{color:#829485;font-size:7px}.quest-current{background:#d3bc7712;border-color:#d4be7f78}.quest-current .quest-number,.quest-current .quest-symbol,.quest-current .quest-caption{color:#e0c984}.quest-success .quest-symbol,.quest-success .quest-caption{color:#9ac695}.quest-fail .quest-symbol,.quest-fail .quest-caption{color:#df9c86}.rule-note{color:#93a392;margin:0;font-size:9px}.role-card{color:#304337;background:#f1edda;border:1px solid #c8b77e;padding:24px;position:relative;box-shadow:0 10px 28px #0000001f}.role-card-top{color:#8e845f;font-family:var(--mono);letter-spacing:.13em;justify-content:space-between;font-size:8px;display:flex}.role-card-top span:last-child{font-size:14px}.role-emblem{color:#8b7340;width:42px;height:42px;font-family:var(--serif);border:1px solid #b6a774;border-radius:50%;place-items:center;margin-top:23px;font-size:23px;display:grid}.role-card h2{color:#2a4334;font-family:var(--serif);margin:12px 0 7px;font-size:27px;font-weight:500}.role-card>p{color:#58695b;margin-bottom:15px;font-size:10px;line-height:1.65}.role-evil{background:#f2e8dc;border-color:#bb8671}.role-evil .role-emblem{color:#a85c48;border-color:#bc8e7b}.role-evil .role-card-top{color:#a16d5e}.role-evil h2{color:#573c34}.knowledge-box{background:#ffffff52;border:1px solid #536c5233;padding:12px}.knowledge-box .section-label,.knowledge-box .section-label span{color:#758673}.knowledge-box>p{color:#596b5d;margin:8px 0 0;font-size:9px;line-height:1.55}.known-list{gap:5px;margin-top:8px;display:grid}.known-list span{color:#43594a;border-top:1px solid #576f5326;justify-content:space-between;gap:8px;padding-top:6px;font-size:9px;display:flex}.known-list b{color:#81907e;font-family:var(--mono);font-size:7px;font-weight:400}.role-card-foot{color:#879080;margin-top:13px;font-size:8px}.result-panel{text-align:center;background:#19392f;border-color:#ccdac02e;width:min(670px,100%);margin:18px auto;padding:33px}.result-seal{color:#e4ce8a;width:58px;height:58px;font-family:var(--serif);border:1px solid #d0bc78;border-radius:50%;place-items:center;margin:0 auto 19px;font-size:27px;display:grid}.result-panel h2{margin:14px 0 8px;font-size:31px}.result-panel>p{max-width:440px;margin:0 auto 15px}.result-panel .quest-track{max-width:390px;margin:22px auto}.result-panel .button{margin-top:8px}.merlin-reveal{color:#e4ce8a!important}.button-quiet{color:#dfe6d9;background:#e4ebdb0a;border-color:#dce4d53d}.button-quiet:not(:disabled):hover{background:#e4ebdb1a}.modal-scrim{z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#06130fcf;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.role-modal{background:#19392f;border:1px solid #d2c28a66;width:min(460px,100%);max-height:92vh;padding:24px;position:relative;overflow-y:auto;box-shadow:0 24px 90px #00000061}.role-modal>.section-label{margin:0 30px 15px 0}.role-modal .role-card{margin-bottom:14px}.modal-close{z-index:2;color:#d8e0d4;background:0 0;border:1px solid #d8e1d13b;border-radius:50%;width:30px;height:30px;font-size:20px;line-height:1;position:absolute;top:17px;right:17px}.room-code-row{background:#e9eedf09;border:1px solid #d2ddc724;align-items:center;gap:22px;margin-bottom:18px;padding:17px 20px;display:flex}.room-code-row>div:first-child{margin-right:auto}.room-code-row p{color:#a3b0a1;margin:5px 0 0;font-size:10px}.copy-code{color:#cbd6c7;background:0 0;border:1px solid #d7e0d038;padding:8px 10px;font-size:9px}.copy-code:hover{border-color:#a8bc9b}.admin-lobby-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr)}.admin-lobby-grid .seat-map{height:345px}.seat-legend{color:#92a292;gap:19px;font-size:9px;display:flex}.seat-legend span{align-items:center;gap:7px;display:inline-flex}.seat-legend i{border-radius:50%;width:7px;height:7px;display:inline-block}.legend-filled{background:#92bb85}.legend-open{border:1px dashed #a9bc9f}.legend-team{background:#d5bc76;border-radius:1px!important}.admin-game-content{padding-top:38px}.host-tools{align-items:center;gap:10px;margin-bottom:4px;display:flex}.button-dark-outline{color:#c7d3c3;background:0 0;border-color:#d4e0cd38;min-height:35px;font-size:9px}.button-dark-outline:not(:disabled):hover{border-color:#d4e0cd80}.admin-board-grid{grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);align-items:stretch;gap:18px;display:grid}.admin-table-surface .seat-map{height:400px}.admin-table-surface .seat{background:#213f33;border-color:#516e5d}.admin-table-surface .seat-number{color:#859889}.admin-table-surface .seat-name{color:#c5d2c0}.admin-table-surface .seat-taken{background:#2e5540;border-color:#5d8064}.admin-table-surface .seat-taken .seat-name{color:#f0f0e5}.admin-table-surface .seat-selected{background:#574d31;border-color:#cfb573;box-shadow:0 0 0 3px #cfb5731a}.admin-table-surface .seat-selected .seat-name{color:#f2e4ad}.admin-table-surface .seat-legend{border-top:1px solid #c2d2b821;padding-top:13px}.board-side-panel h2{color:#f0efe4;font-family:var(--serif);margin:14px 0 6px;font-size:22px;font-weight:500}.board-side-panel>p{color:#a3b1a1;margin:0 0 13px;font-size:10px;line-height:1.6}.board-separator{border-top:1px solid #c6d3be24;margin:17px 0}.progress-track{background:#d0ddc51f;height:4px;margin-top:13px;overflow:hidden}.progress-track i{background:#dfc47b;height:100%;transition:width .2s;display:block}.progress-caption{color:#8fa28f;margin-top:6px;font-size:8px;display:block}.warning-note{color:#e0c68d;background:#d2a56a0f;border:1px solid #cd9f6640;padding:9px 10px;font-size:9px;line-height:1.5}.public-vote-list{grid-template-columns:1fr 1fr;gap:5px;margin-top:12px;display:grid}.public-vote-list>span{color:#d4ded0;border:1px solid #c7d5bd21;justify-content:space-between;align-items:center;gap:7px;padding:7px 8px;font-size:8px;display:flex}.public-vote-list i{font-family:var(--mono);font-size:7px;font-style:normal}.vote-yes{color:#a6ca99}.vote-no{color:#dda18c}.vote-result{background:#ddc6840e;border:1px solid #d2c18440;margin-top:14px;padding:11px}.vote-result-head{color:#e2d49e;justify-content:space-between;align-items:center;gap:10px;font-size:9px;display:flex}.vote-result-head span{color:#a7b49f;font-size:8px}.vote-result-compact{margin-top:12px}.vote-result-compact .public-vote-list{grid-template-columns:1fr 1fr}.host-footnote{color:#7f9584;border-top:1px solid #c6d3be1f;margin-top:16px;padding-top:12px;font-size:8px;line-height:1.5}.admin-final-roster{text-align:left;grid-template-columns:1fr 1fr;gap:5px;margin:13px 0;display:grid}.admin-final-roster span{color:#d3ded0;border:1px solid #c4d4bb24;justify-content:space-between;gap:8px;padding:7px;font-size:9px;display:flex}.admin-final-roster small{color:#90a28e}.admin-footer{color:#738a77;border-color:#e1e5d41f;width:min(1260px,100% - 56px);min-height:48px;margin:0 auto}.admin-footer span:last-child{color:#869b89}@media (width<=960px){.hero-grid{gap:42px;padding-left:1%;padding-right:1%}.setup-grid{grid-template-columns:minmax(0,1fr);gap:15px}.game-choice{grid-template-columns:125px minmax(0,1fr) 150px;gap:16px}.admin-board-grid{grid-template-columns:minmax(0,1fr) minmax(285px,.75fr)}}@media (width<=740px){.page-shell,.admin-shell{width:min(100% - 36px,560px)}.topbar{min-height:68px}.brand{font-size:17px}.hero-grid{grid-template-columns:1fr;gap:35px;padding:47px 0 38px}.hero-copy h1{margin-top:17px;font-size:58px}.hero-intro{max-width:400px;font-size:14px}.feature-line{margin-top:24px}.catalog-section{grid-template-columns:1fr;gap:15px;padding:23px 0 29px}.catalog-heading h2 br{display:none}.catalog-cards{grid-template-columns:1fr;gap:7px}.join-card{padding:25px 23px 21px}.join-card h2{margin-top:18px}.landing-footer,.admin-footer{gap:10px;font-size:7px}.landing-footer span:last-child,.admin-footer span:last-child{font-size:8px}.seat-map{height:290px;margin-top:8px}.map-table{inset:22%}.seat{width:min(96px,19%);min-width:59px;height:47px;padding:5px 6px}.seat-name,.table-caption{font-size:8px}.admin-content{padding:39px 0 32px}.admin-content h1{font-size:49px}.setup-grid,.saved-room-list{grid-template-columns:1fr}.setup-surface{padding:18px 13px 13px}.setup-surface .seat-map{height:293px}.setup-aside{display:none}.setup-bottom{flex-direction:column;align-items:flex-start}.setup-bottom .button{width:100%}.login-content{max-width:360px}.login-kicker{margin-top:62px}.login-content h1{font-size:53px}.game-picker-content{padding-top:30px}.game-choice{grid-template-columns:86px minmax(0,1fr);gap:14px;padding:12px}.game-choice-art{grid-row:span 2;min-height:113px;font-size:7px}.game-choice-seal{width:40px;height:40px;font-size:20px}.game-choice-info h2{font-size:19px}.game-choice-info p{font-size:9px}.game-choice-tags span{font-size:7px}.game-choice-action{grid-column:2}.game-choice-action .button{min-height:38px}.role-settings{grid-template-columns:1fr;gap:14px;padding:15px}.role-settings p{max-width:none}.role-options{gap:12px 10px}.game-topbar{gap:11px;min-height:62px;padding:0 17px}.game-topbar .brand{gap:6px;font-size:14px}.game-topbar .brand-mark{width:26px;height:26px;font-size:15px}.game-top-meta{text-overflow:ellipsis;white-space:nowrap;gap:7px;max-width:34vw;font-size:7px;overflow:hidden}.top-actions{gap:5px}.role-shortcut,.leave-button,.stop-game-button{min-height:30px;padding:0 8px;font-size:8px}.game-content{width:calc(100% - 30px);padding:29px 0 19px}.game-heading-row{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:17px}.game-heading-row h1{font-size:40px}.phase-pill{margin:0;padding:8px 10px;font-size:8px}.player-layout,.action-layout,.admin-lobby-grid,.admin-board-grid{grid-template-columns:1fr;gap:12px}.panel-wide{padding:16px 12px 12px}.panel-wide .seat-map{height:308px}.waiting-panel{min-height:250px;padding:21px}.action-card,.status-card{padding:18px 15px}.action-layout .seat-map{height:285px}.player-picks{grid-template-columns:1fr}.private-reveal{padding:22px 15px}.private-reveal .role-card{padding:18px}.result-panel{padding:26px 17px}.room-code-row{grid-template-columns:1fr auto;gap:11px;padding:13px;display:grid}.room-code-row>div:first-child{grid-column:1/-1}.room-code-row .code-badge{grid-column:1}.room-code-row .code-badge span{min-width:25px;height:33px;font-size:12px}.copy-code{grid-area:2/2}.admin-lobby-grid .seat-map{height:300px}.admin-game-content{padding-top:26px}.admin-table-surface,.board-side-panel{padding:17px 14px}.admin-table-surface .seat-map{height:320px}.admin-board-grid{grid-template-columns:1fr}.admin-footer{width:calc(100% - 30px)}}@media (width<=390px){.page-shell,.admin-shell{width:calc(100% - 26px)}.seat{width:19%;min-width:54px}.seat-map{height:270px}.map-table{inset:22%}.game-content{width:calc(100% - 22px)}.game-topbar{padding:0 11px}.game-top-meta{font-size:6px}.role-shortcut{padding:0 6px}.game-heading-row h1{font-size:35px}.public-vote-list{grid-template-columns:1fr}}@media (width<=740px){.hero-copy h1{font-size:clamp(43px,14vw,58px);line-height:1.02}.feature-line{flex-wrap:wrap;line-height:1.5}.feature-line i{flex:0 0 20px}.join-form input:not([type=checkbox]),.admin-login-form input{font-size:16px}.admin-login-page{min-height:100svh;overflow:hidden auto}.login-kicker{margin-top:clamp(28px,8vw,62px)}.login-content h1{font-size:clamp(44px,12vw,53px)}.phase-pill{white-space:normal;max-width:100%;line-height:1.45}.game-heading-row>div:first-child{min-width:0;max-width:100%}.game-heading-row h1{overflow-wrap:anywhere}.seat-legend{flex-wrap:wrap;gap:9px 14px}.team-roster{min-width:0}.roster-chip{overflow-wrap:anywhere;max-width:100%}.vote-result-head{flex-wrap:wrap}.vote-result-head span{margin-left:auto}.game-footnote{flex-wrap:wrap;gap:7px 14px;line-height:1.5}.role-modal{overscroll-behavior:contain;max-height:92dvh}}@media (width<=480px){.landing-footer,.admin-footer{letter-spacing:.04em;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;min-height:0;padding:12px 0;font-size:8px}.landing-footer span:last-child,.admin-footer span:last-child{font-size:10px}.admin-login-page{padding:32px 18px}.login-footer{right:18px;bottom:max(14px, env(safe-area-inset-bottom));text-align:center;left:18px}.game-topbar{grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;min-height:0;padding:11px 13px;display:grid}.game-topbar .brand{grid-area:1/1;min-width:0}.game-top-meta{white-space:normal;overflow-wrap:anywhere;flex-wrap:wrap;grid-area:2/1/auto/-1;max-width:100%;line-height:1.5;overflow:visible}.game-top-meta span{min-width:0}.top-actions{flex-wrap:wrap;grid-area:1/2;justify-content:flex-end;gap:5px;margin-left:0}.role-shortcut,.leave-button,.stop-game-button{white-space:nowrap;min-height:40px;padding:0 8px;font-size:9px}.room-code-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;min-width:0;padding:12px}.room-code-row>div:first-child{min-width:0}.room-code-row .code-badge{gap:4px;min-width:0}.room-code-row .code-badge span{min-width:clamp(18px,6.4vw,22px);padding:0 2px}.copy-code{min-height:40px}.catalog-card{min-width:0}.catalog-card-copy small{white-space:normal;line-height:1.4}.vote-actions{gap:7px}.vote-actions .button{min-width:0;padding:0 10px}.modal-scrim{padding:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom))}}@media (width<=359px){.game-topbar{padding-left:10px;padding-right:10px}.game-topbar .brand{gap:5px;font-size:13px}.game-topbar .brand-mark{width:23px;height:23px;font-size:14px}.role-shortcut,.leave-button,.stop-game-button{min-height:40px;padding:0 6px}.game-top-meta{font-size:7px}.role-modal{padding:19px 12px}}@media (height<=560px) and (orientation:landscape){.admin-login-page{align-content:start;place-items:start center;padding-top:18px;padding-bottom:18px}.login-kicker{margin-top:10px}.login-content h1{margin:12px 0}.login-content>p{margin-bottom:14px}.login-footer{text-align:center;width:100%;margin-top:22px;position:static}}
