:root{font-family:ui-rounded,"SF Pro Rounded","Trebuchet MS",Arial,"PingFang SC","Microsoft YaHei",sans-serif;color:#285b58;background:#f5f5e9;font-synthesis:none;--teal:#119c97;--ink:#285b58;--paper:#fffdf1;--line:#dfd9bc;--shadow:#b9ac7d;--board-size:min(calc(100dvh - 330px),49vw,610px)}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #dd9f34;outline-offset:3px}h1,h2,h3,p{margin-top:0}p{line-height:1.65}h1,h2,h3{text-wrap:balance}.icon{width:23px;height:23px;flex-shrink:0;vertical-align:middle}.avatar{width:52px;height:52px;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border:2px solid #d4c49a;border-bottom-width:5px;border-radius:14px;padding:10px 18px;font-size:15px;font-weight:800;transition:transform .12s,filter .12s;line-height:1.25;text-decoration:none}.button:hover{filter:brightness(1.035);transform:translateY(-1px)}.button:active{transform:translateY(2px)}.primary{background:linear-gradient(#36c4ad,#07958d);color:#fffdf0;border-color:#158e83;border-bottom-color:#077269;box-shadow:inset 0 2px #a0eed1;text-shadow:0 1px #08796c}.secondary{background:linear-gradient(#fff6d5,#f0dfae);color:#6f6948;border-bottom-color:#b9a16d;box-shadow:inset 0 2px #fffef0}.quiet{background:#faf8e9;border:1px solid #e0ddc8;border-bottom:3px solid #d2ceb4;color:#577268;font-size:13px;padding:8px 12px;min-height:40px}.quiet.active{background:#e0f5e9;border-color:#5fbb9e;color:#158679}.wide{width:100%}.icon-button{display:inline-flex;justify-content:center;align-items:center;width:43px;height:43px;border:1.5px solid #d5dcc3;border-bottom:3px solid #c5cdb1;background:#fbfbed;color:#64816c;border-radius:13px;flex-shrink:0}.icon-button:hover,.icon-button.active{background:#e3f3df;color:#118d80}.app-header{height:76px;display:flex;align-items:center;gap:35px;padding:12px max(26px,calc((100vw - 1440px)/2));background:#fffff4ed;border-bottom:1px solid #d9dfca;position:relative;z-index:5}.brand{border:0;background:none;display:flex;align-items:center;gap:12px;padding:0;color:#28685c;text-align:left;white-space:nowrap}.brand>.icon{color:#fff1c5;background:linear-gradient(140deg,#35baa5,#168888);border:3px solid #b3dac0;border-radius:16px;width:49px;height:49px;padding:8px;box-shadow:0 3px #c7ceb1}.brand span{font-size:20px;line-height:1.05;font-weight:900}.brand small{display:block;font-size:9px;letter-spacing:3px;color:#a3ad82;margin-top:7px}.header-nav{display:flex;gap:26px;margin-right:auto}.header-nav a{display:flex;gap:8px;align-items:center;text-decoration:none;font-size:14px;font-weight:800;color:#6c8066}.header-tools{display:flex;align-items:center;gap:9px;margin-left:auto}.header-tools select{border:0;background:none;color:#66765d;font-size:14px;font-weight:800;padding:9px 4px;max-width:76px;min-height:42px}.connection{display:flex;align-items:center;gap:6px;color:#668b74;font-size:11px;margin-right:7px}.connection .icon{width:17px;height:17px}.disconnected{color:#b88435}.lobby{max-width:1440px;padding:32px 26px 15px;margin:0 auto}.welcome-grid{display:grid;grid-template-columns:270px minmax(0,1fr);gap:24px}.card{background:var(--paper);border:2px solid var(--line);border-bottom:5px solid #c9bc95;border-radius:25px;box-shadow:0 8px 22px #3e664909}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:#969b71;margin-bottom:10px}.profile-card{padding:25px 24px;display:flex;flex-direction:column;align-items:center;text-align:center}.bureau-badge{position:relative;margin:0 auto 18px}.bureau-badge>.avatar{height:89px;width:89px;filter:drop-shadow(0 4px #ddd3ab)}.badge-star{position:absolute;right:-9px;bottom:-2px;background:#f1c455;border:3px solid #fff5d0;border-radius:50%;padding:6px;color:#a76b26;transform:rotate(12deg)}.badge-star .icon{width:19px;height:19px}#name-form{width:100%;text-align:left}#name-form label{font-size:12px;color:#7d8a6e;display:block;margin-bottom:6px}.input-row{display:flex;gap:7px}input,select{min-width:0;border:1.5px solid #d8d7b8;border-radius:11px;background:#fffef6;color:#416756;padding:10px 12px;font-size:15px;min-height:44px}input{width:100%}.profile-stats{display:grid;grid-template-columns:1fr 1fr;gap:17px;width:100%;padding:24px 0 18px;border-bottom:1px solid #e4e4cd}.profile-stats strong{font-size:29px;display:block;color:#179d8e}.profile-stats small{font-size:14px;color:#a6af91}.profile-stats span{font-size:11px;color:#7d8a6d}.profile-note{font-size:12px;color:#7a8a6d;margin:18px 0}.mini-progress{height:7px;background:#e9e8cc;border-radius:10px;width:100%;overflow:hidden}.mini-progress span{height:100%;background:#50baa0;display:block;border-radius:10px}.hero{position:relative;overflow:hidden;min-height:410px;padding:35px;display:flex;align-items:center;isolation:isolate;background:#fff9e6}.hero>img{position:absolute;right:0;top:0;width:66%;height:100%;object-fit:cover;z-index:-2;object-position:56% 48%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#fff9e6 34%,#fff9e6f2 40%,#fff9e69e 53%,transparent 71%);z-index:-1}.hero-copy{width:54%;max-width:475px}.hero h1{font-size:clamp(30px,3vw,46px);line-height:1.08;letter-spacing:-1.3px;color:#276c61;margin-bottom:17px}.hero-copy>p:not(.eyebrow){font-size:15px;color:#637a64;line-height:1.7;margin-bottom:17px}.hero-copy>small{display:block;font-size:11px;color:#939676;margin-top:13px}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.tags span{padding:6px 9px;border:1px solid #dbdfc3;border-radius:8px;background:#fcfbedc9;color:#6d8667;font-size:11px;display:flex;gap:5px;align-items:center}.tags .icon{width:16px;height:16px;color:#5aa48b}.play-actions{display:flex;flex-wrap:wrap;gap:10px}.play-actions .button{padding:11px 14px;font-size:14px}.hero-seal{position:absolute;bottom:27px;right:20px;background:#fff3ce;border:3px solid #fffbdc;padding:12px;border-radius:16px;box-shadow:0 4px #b2a06e;transform:rotate(-4deg);max-width:190px;display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800;color:#7a7946}.hero-seal>.icon{width:31px;height:31px;color:#229b8d}.how-strip{margin:26px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:20px 30px;background:#fcfdee;border:1px solid #dce3c9;border-radius:19px}.how-strip>div{display:flex;align-items:center;gap:13px}.how-strip>div>.icon{width:33px;height:33px;color:#67ad94}.how-strip p{margin:0;display:flex;flex-direction:column;font-size:12px;color:#94a080}.how-strip b{font-size:14px;color:#5c7a60}.room-list{padding:26px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.section-title h2{font-size:27px;margin:0;color:#4c795f}.section-title .eyebrow{margin-bottom:4px}.pill{display:inline-flex;gap:6px;align-items:center;padding:7px 11px;border:1px solid #d8e1c5;border-radius:10px;background:#f5f7e5;font-size:12px;font-weight:800;color:#6c8c69;white-space:nowrap}.pill .icon{width:18px;height:18px}.join-form{display:flex;gap:9px;max-width:450px;margin-bottom:18px}.join-form input{text-transform:uppercase;letter-spacing:2px}.join-form input::placeholder{text-transform:none;letter-spacing:0}.empty{padding:18px;border:1.5px dashed #d3dfbd;border-radius:16px;text-align:center;background:#f8faed;color:#829872}.empty>.icon{width:32px;height:32px;color:#a6bc94;margin-bottom:7px}.empty h3{font-size:17px;margin-bottom:6px}.empty p{font-size:13px;margin:0}.room-row{display:flex;align-items:center;gap:15px;border:1px solid #dce4c8;background:#fcfef2;border-radius:15px;padding:10px;margin-bottom:8px}.room-row>img{width:80px;height:57px;border-radius:9px;object-fit:cover}.room-row>div{display:flex;flex-direction:column;gap:6px;flex:1}.room-row small{color:#879778;font-size:12px}.editorial{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:40px 8px 20px}.editorial h2{font-size:23px;color:#587c61}.editorial p{font-size:14px;line-height:1.85;color:#708169}footer{text-align:center;border-top:1px solid #e0e4ce;padding:22px;color:#9ca78a;font-size:12px}.in-room{height:100dvh;overflow:hidden}.in-room #app{height:100%;display:flex;flex-direction:column}.in-room .app-header{height:66px;flex-shrink:0}.in-room .brand>.icon{height:43px;width:43px}.in-room .brand span{font-size:18px}.game-room{flex:1;min-height:0;padding:0 25px 18px;display:flex;flex-direction:column;user-select:none;-webkit-user-select:none;background:radial-gradient(ellipse at top right,#dcedd7,transparent 65%)}.room-toolbar{height:62px;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-shrink:0}.room-toolbar>div{display:flex;gap:12px;align-items:center;min-width:0}.room-toolbar h1{font-size:19px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.difficulty-tag{font-size:11px;color:#8e9b7c;white-space:nowrap}.room-tools .button{min-height:36px;padding:6px 11px;font-size:12px}.clock{font-size:15px;display:flex;gap:7px;align-items:center;color:#7c8a6c;font-variant-numeric:tabular-nums}.clock .icon{width:19px;height:19px}.room-layout{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.85fr);gap:22px;max-width:1490px;width:100%;margin:auto}.board-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;padding:17px 22px 12px;position:relative;background:linear-gradient(135deg,#fffff9,#fff7df)}.board-heading{width:var(--board-size);max-width:100%;display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.board-heading>div{display:flex;flex-direction:column}.board-heading .eyebrow{margin-bottom:2px;font-size:9px;letter-spacing:1.2px}.board-heading strong{font-size:20px;color:#4a8271;font-variant-numeric:tabular-nums}.board-heading strong small{font-size:13px;color:#9ea98c}.milestone-label{text-align:right;font-size:11px;gap:3px;color:#8e9c75}.milestone-label b{color:#79936c}.milestone-label span{color:#2a9b89;font-size:12px}.milestone-label .icon{width:16px;height:16px}.milestone-bar{position:relative;height:6px;width:var(--board-size);max-width:100%;background:#e3e8cd;border-radius:10px;margin-bottom:20px}.milestone-bar>span{display:block;height:100%;background:linear-gradient(90deg,#7bd3a9,#16a598);border-radius:10px;transition:width .4s}.milestone-bar>i{position:absolute;top:50%;transform:translate(-60%,-50%);display:flex;align-items:center;justify-content:center;border:2px solid #e1dec2;background:#fdf9e8;border-radius:50%;width:24px;height:24px;color:#b4b18c}.milestone-bar>i.done{background:#46b79b;color:#fff9da;border-color:#9cd6ad}.milestone-bar .icon{width:13px;height:13px}.board-wrap{width:var(--board-size);height:var(--board-size);flex-shrink:0;max-width:100%;padding:7px;border-radius:17px;background:linear-gradient(145deg,#e0c38a,#b59b65);box-shadow:0 5px 0 #ad9260,0 9px 13px #70764a19}.sudoku-grid{height:100%;width:100%;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));border:2px solid #789988;background:#7e9d8a;border-radius:10px;overflow:hidden;contain:layout}.cell{position:relative;display:flex;align-items:center;justify-content:center;padding:0;min-width:0;min-height:0;border:0;border-right:1px solid #d5dfc9;border-bottom:1px solid #d5dfc9;border-radius:0;background:#fffef5;color:#344e44;font-size:clamp(20px,2.8vw,34px);font-weight:800;line-height:1;touch-action:manipulation;font-variant-numeric:tabular-nums;transition:background .13s,color .13s}.cell.box-right{border-right:3px solid #759b89}.cell.box-bottom{border-bottom:3px solid #759b89}.cell:nth-child(9n){border-right:0}.cell:nth-last-child(-n+9){border-bottom:0}.cell.given{color:#405b4b;background:#f6f7eb}.cell.answer{color:var(--owner,#168f8e)}.cell.related{background:#edf4e2}.cell.matching{background:#cfeadd}.cell.selected{background:#ffe8a3;box-shadow:inset 0 0 0 3px #e2ac44;color:#67552c;z-index:1}.cell:focus-visible{outline-offset:-4px}.cell.pending{color:#a18b4f;background:#fff1cc}.cell.pending:after{content:'';position:absolute;bottom:5px;width:14px;border-bottom:2px dotted #bf9c45}.cell.wrong{animation:wrong-cell .5s;background:#ffe2cf;color:#a64534}.cell-author{position:absolute;bottom:3px;right:4px;font-size:9px;line-height:1;color:var(--owner,#168f8e);border:1px solid currentColor;border-radius:3px;width:11px;height:11px;display:grid;place-items:center;background:#ffffffb0}.cell-notes{position:absolute;inset:3px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);color:#8a9b7b;font-size:clamp(8px,1vw,12px);font-weight:600}.cell-notes i{font-style:normal;display:grid;place-items:center}.sudoku-controls{margin-top:17px;width:var(--board-size);max-width:100%}.tool-row{display:flex;justify-content:center;gap:10px;margin-bottom:10px}.tool-row .button{flex:1;max-width:170px}.tool-row .icon{width:19px;height:19px}.number-pad{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px}.number-button{display:grid;place-items:center;height:48px;padding:0;background:linear-gradient(#fff6d9,#efdfa9);border:1.5px solid #d6c292;border-bottom:4px solid #b59d6b;border-radius:11px;color:#647855;font-size:24px;font-weight:800;box-shadow:inset 0 2px #fffaf0}.number-button:active{transform:translateY(2px);background:#d9f0dd}.move-status{text-align:center;font-size:11px;color:#8a9a77;line-height:1.2;margin-top:8px;min-height:15px}.deduction-button{width:100%;margin-top:8px;min-height:36px;font-size:13px;padding:6px}.case-sidebar{min-height:0;display:flex;flex-direction:column;gap:14px}.scene-card{height:34%;min-height:130px;max-height:290px;position:relative;border:4px solid #fff8de;border-bottom:6px solid #c1b88a;border-radius:23px;overflow:hidden;background:#c7d9ad;box-shadow:0 5px 14px #4d765919}.scene-card>img{height:100%;width:100%;object-fit:cover;object-position:center 48%}.scene-location{position:absolute;left:14px;top:13px;padding:7px 11px;background:#fff8dce8;color:#607b57;border:1.5px solid #fffdec;border-radius:10px;font-size:12px;font-weight:800;display:flex;gap:7px;align-items:center}.scene-location .icon{width:16px;height:16px}.scene-clues{position:absolute;right:13px;bottom:12px;display:flex;gap:7px}.scene-clue{height:39px;width:39px;display:grid;place-items:center;border:2px solid #fff5d5;border-bottom:4px solid #af9965;border-radius:11px;background:#edddb1;color:#a18c58;box-shadow:0 4px 8px #3b593329}.scene-clue.found{background:#25aa91;color:#fff6cb;border-bottom-color:#167c65}.scene-clue .icon{width:20px;height:20px}.dossier{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;border-radius:22px}.dossier-tabs{display:flex;gap:4px;flex-shrink:0;padding:8px;border-bottom:1px solid #e2e5ca;background:#fbfbed}.dossier-tabs button{flex:1;padding:9px 6px;min-height:43px;border:0;background:none;border-radius:12px;color:#8c9b74;font-size:13px;font-weight:800;display:flex;gap:6px;align-items:center;justify-content:center}.dossier-tabs .icon{width:18px;height:18px}.dossier-tabs .active{color:#288c79;background:#e4f0dc;box-shadow:inset 0 -2px #bbd9b7}.dossier-body{overflow:auto;overscroll-behavior:contain;min-height:0;padding:17px;scrollbar-width:thin;scrollbar-color:#c4cfa9 transparent}.case-summary{font-size:13px;line-height:1.7;color:#7b8869;padding:0 2px 12px;border-bottom:1px dashed #d5ddc0;margin-bottom:15px}.clue{display:flex;gap:12px;background:#f3f6e4;border:1px solid #e1e6cd;border-radius:14px;padding:14px;margin-bottom:11px}.clue.unlocked{background:#fff8de;border-color:#e9d5a0;animation:clue-in .3s}.clue-icon{height:33px;width:33px;display:grid;place-items:center;border:1px solid #e1d7b1;border-radius:10px;background:#faf5dc;color:#b29e6b;flex-shrink:0}.unlocked .clue-icon{background:#edc568;border-color:#d3ac54;color:#886b35}.clue-icon .icon{height:19px;width:19px}.clue h3{font-size:14px;margin:0 0 6px;color:#688363}.clue.unlocked h3{color:#8f743c}.clue p{font-size:13px;color:#8c9b78;margin:0;line-height:1.7}.clue.unlocked p{color:#7d775b}.sealed{opacity:.8}.testimony{padding:13px;background:#f6f7e9;border:1px solid #e2e4ce;border-radius:14px;margin-bottom:12px}.suspect-heading{display:flex;gap:10px;align-items:center;margin-bottom:12px}.suspect-heading .avatar{width:42px;height:42px}.suspect-heading h3{font-size:15px;margin:0 0 3px}.suspect-heading small{color:#98a283;font-size:11px}.testimony p{font-size:13px;line-height:1.75;color:#748366;margin:0}.followup{margin-top:12px;padding:10px;border-radius:10px;background:#e8f1db;display:flex;gap:8px}.followup .icon{width:17px;height:17px;color:#70a184}.crew{display:flex;flex-direction:column;gap:9px}.member{display:flex;gap:11px;align-items:center;padding:10px;border:1px solid #e1e5cb;border-left:4px solid var(--player);border-radius:14px;background:#f8faed}.member>.avatar{height:42px;width:42px}.member>div{flex:1;min-width:0}.member b{display:block;font-size:13px;overflow-wrap:anywhere;color:#5f795d}.member b small{font-size:10px;font-weight:500;color:#91a07c}.member span{font-size:10px;color:#8c9b78;display:flex;align-items:center;gap:4px;margin-top:4px}.member span i{font-size:9px;font-style:normal;width:14px;height:14px;background:var(--player);color:#fff;display:inline-grid;place-items:center;border-radius:4px}.member>.icon{height:18px;width:18px;color:#d0ad53}.member.away{opacity:.65}.team-note{font-size:12px;color:#8b9b76;margin-top:20px}.room-code-display{text-align:center;padding:17px;border:1px dashed #d2dcb9;border-radius:14px}.room-code-display span{display:block;color:#8e9e7b;font-size:11px}.room-code-display strong{display:block;font-size:26px;letter-spacing:5px;color:#679571;margin-top:6px}.drawer-title,.mobile-dossier{display:none}.waiting-overlay{position:absolute;inset:0;z-index:2;background:#fffceeeb;backdrop-filter:blur(7px);display:grid;place-items:center;border-radius:22px;padding:30px;text-align:center}.waiting-overlay>div{max-width:400px}.waiting-overlay>div>.icon{width:60px;height:60px;color:#5ca88f;margin-bottom:18px}.waiting-overlay h2{font-size:30px}.waiting-overlay p{font-size:14px;color:#849071}.waiting-code{display:block;font-size:37px;letter-spacing:6px;color:#2e9e8d;margin:15px 0}.waiting-crew{display:flex;justify-content:center;margin:25px 0;gap:8px}.waiting-crew .avatar{height:45px;width:45px}dialog{border:2px solid #e2d4aa;border-bottom:6px solid #b9a775;border-radius:25px;background:#fffbed;color:#466c59;padding:0;width:min(610px,calc(100vw - 28px));max-height:calc(100dvh - 32px);box-shadow:0 20px 80px #244e4140;overflow:auto;scrollbar-width:thin}dialog::backdrop{background:#264b4f88;backdrop-filter:blur(5px)}#modal-content{padding:30px;position:relative}#modal-content h2{font-size:28px;line-height:1.12;margin-bottom:17px;color:#3b7967}#modal-content h3{font-size:17px;color:#6d855f}#modal-content p{font-size:14px;color:#7b886d;line-height:1.75}#modal-content .modal-close{position:absolute;right:11px;top:11px;z-index:2;background:#fffbedeb;border-radius:50%;height:36px;width:36px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:23px}.modal-art{height:210px;margin:-30px -30px 24px;overflow:hidden;border-bottom:4px solid #dfd6b7}.modal-art img{width:100%;height:100%;object-fit:cover;object-position:center 45%}.brief-tip{display:flex;align-items:flex-start;gap:12px;padding:15px;background:#edf3de;border-radius:14px;margin:20px 0}.brief-tip>.icon{color:#8da977;width:26px;height:26px}.brief-tip p{margin:0;font-size:12px!important}.modal-symbol{height:70px;width:70px;border-radius:22px;background:#e9c878;color:#94743e;display:grid;place-items:center;margin-bottom:20px;box-shadow:0 5px #c1a05c}.modal-symbol .icon{height:38px;width:38px}.hint-number{font-size:65px;color:#209c88;font-weight:800;text-align:center;margin:20px 0}.case-chooser .eyebrow{padding-right:30px}.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.case-option{position:relative;overflow:hidden;border:2px solid #e3dec0;border-bottom:4px solid #d0c49b;border-radius:15px;background:#fffdf0;color:#5f7c60;padding:0;text-align:left}.case-option>img{width:100%;height:95px;object-fit:cover;display:block}.case-option-copy{padding:11px;display:flex;flex-direction:column;gap:6px}.case-option-copy small{font-size:10px;color:#97a080}.case-option-copy b{font-size:13px;line-height:1.3}.case-option-copy>span{font-size:10px;line-height:1.5;color:#8a9578}.case-option>.icon{position:absolute;right:8px;top:8px;border-radius:50%;padding:5px;background:#fffae6dc;width:29px;height:29px;color:#65927a}.case-option.chosen{border-color:#49b49a;box-shadow:0 0 0 2px #bce5ce}.case-option.locked{opacity:.62;filter:saturate(.6)}.difficulty-row{display:flex;align-items:center;justify-content:space-between;margin-top:23px;gap:15px;font-weight:800;font-size:14px}.difficulty-row select{min-width:165px;background:#f9f9e9}.difficulty-note{font-size:12px!important;margin:9px 0 15px}.checkbox{font-size:12px;display:flex;align-items:center;gap:8px;color:#849372}.checkbox input{width:19px;min-height:19px;accent-color:#219c88}.theory-clues{display:grid;gap:8px;margin-bottom:20px}.theory-clues details{border:1px solid #dfdfbd;border-radius:12px;background:#f6f6e3;padding:11px}.theory-clues summary{font-size:13px;cursor:pointer;color:#788458;font-weight:800}.theory-clues .icon{width:17px;height:17px;margin-right:6px}.theory-clues p{font-size:12px!important;margin:11px 0 0}.theory-dialog>label{display:block;font-size:13px;margin:15px 0 6px;font-weight:800}.theory-dialog>select{width:100%;font-size:13px;min-height:46px}.vote-status{display:flex;flex-wrap:wrap;gap:8px;margin-top:19px}.vote-status span{background:#edf4de;border-radius:7px;padding:5px 8px;font-size:11px;display:flex;align-items:center;gap:5px;color:var(--player)}.vote-status .icon{width:16px;height:16px}.result-dialog h2{text-align:center;font-size:38px!important}.result-dialog>.eyebrow,.result-dialog>h3{text-align:center}.victory-badge{display:grid;place-items:center;height:105px;width:105px;margin:5px auto 25px;background:radial-gradient(#ffeeb8,#edbf52);border:5px solid #fff1c1;border-radius:35px;box-shadow:0 6px #d0ad60;transform:rotate(-5deg)}.victory-badge .icon{height:64px;width:64px;color:#9f772b}.result-time{display:flex;align-items:center;justify-content:center;gap:9px;margin:20px 0 23px;padding:12px;background:#e9f1db;border-radius:12px;color:#6b8c5d;font-size:17px;font-weight:800}.result-time span{margin-left:20px;color:#1c9b83}.result-dialog .member b{text-align:left}.loading-card{text-align:center;max-width:600px;margin:15vh auto;padding:20px}.loading-card>.icon{width:65px;height:65px;color:#349c89}.loading-card h1{font-size:27px;margin-top:20px}.loading-card img{max-width:100%;border-radius:20px}#boot-error{position:fixed;z-index:10;top:120px;left:50%;transform:translateX(-50%);background:#fff8df;padding:30px;border:2px solid #debd7c;border-radius:20px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:50;max-width:min(540px,calc(100vw - 30px));background:#285e57;color:#fff7dd;padding:14px 22px;border:2px solid #73b298;border-radius:15px;box-shadow:0 5px 20px #35574630;font-size:14px;line-height:1.5;transition:opacity .18s,transform .18s;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}
@keyframes wrong-cell{20%,60%{transform:translateX(-3px)}40%,80%{transform:translateX(3px)}}@keyframes clue-in{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(min-width:1600px){:root{--board-size:min(calc(100dvh - 330px),45vw,660px)}.hero{min-height:440px}.room-layout{grid-template-columns:minmax(0,1.35fr) minmax(390px,.8fr)}}
@media(max-width:1080px){.app-header{gap:20px;padding:12px 22px}.welcome-grid{grid-template-columns:230px minmax(0,1fr);gap:17px}.hero{padding:24px;min-height:410px}.hero-copy{width:65%}.hero:after{background:linear-gradient(90deg,#fff9e6 35%,#fff9e6dd 47%,#fff9e660 68%,transparent 90%)}.hero-seal{display:none}.hero h1{font-size:34px}.profile-card{padding:24px 18px}.room-layout{gap:14px;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr)}.board-card{padding:17px 13px 12px}.room-toolbar h1{font-size:16px}.difficulty-tag{display:none}.tool-row{gap:5px}.tool-row .button{font-size:12px;padding:8px}.connection span{display:none}.game-room{padding:0 15px 14px}.number-pad{gap:4px}.number-button{font-size:22px}}
@media(max-width:740px){:root{--board-size:min(calc(100vw - 48px),calc(100dvh - 292px),500px)}.app-header{height:67px;padding:10px 15px;gap:10px}.brand span{font-size:17px}.brand>.icon{width:43px;height:43px}.header-nav,.music-button{display:none}.header-tools{gap:5px}.header-tools .icon-button{width:37px;height:38px;border-radius:11px}.header-tools .icon{width:19px;height:19px}.header-tools select{max-width:58px;padding:6px 0;font-size:12px}.connection{margin-right:0}.connection .icon{height:15px;width:15px}.lobby{padding:18px 14px 12px}.welcome-grid{grid-template-columns:1fr;gap:16px}.profile-card{display:none}.hero{min-height:430px;padding:26px}.hero-copy{width:80%;max-width:370px}.hero>img{width:100%;object-position:center}.hero:after{background:linear-gradient(90deg,#fff9e6fa 5%,#fff9e6ed 29%,#fff9e6b8 61%,#fff9e625 100%)}.hero h1{font-size:36px}.hero-copy>p:not(.eyebrow){font-size:14px}.hero-copy .eyebrow{font-size:9px}.hero-copy .play-actions{flex-direction:column;align-items:flex-start}.hero .button{min-height:45px;font-size:14px}.how-strip{gap:8px;padding:15px 13px;margin:17px 0}.how-strip>div{gap:7px}.how-strip>div>.icon{width:24px;height:24px}.how-strip b{font-size:11px}.how-strip span{font-size:9px}.room-list{padding:19px 16px}.section-title h2{font-size:24px}.join-form .button{padding:9px 13px;font-size:13px}.editorial{grid-template-columns:1fr;gap:20px;padding:29px 6px 10px}.editorial h2{font-size:21px}.editorial p{font-size:13px}.room-row>img{width:56px;height:48px}.room-row b{font-size:12px}.room-row .button{padding:8px;font-size:11px;min-height:40px}.in-room .app-header{height:56px;padding:7px 12px}.in-room .brand>.icon{height:36px;width:36px;padding:6px;border-radius:12px}.in-room .brand span{font-size:14px}.in-room .brand small{font-size:7px;letter-spacing:2px;margin-top:5px}.in-room .header-tools .icon-button{width:32px;height:34px;border-radius:9px}.in-room .header-tools .icon{width:17px;height:17px}.in-room .connection{display:none}.room-toolbar{height:49px;gap:5px}.room-toolbar>div{gap:6px}.room-toolbar h1{font-size:13px;max-width:180px}.room-toolbar .pill{font-size:9px;padding:5px 6px}.room-tools .button{font-size:10px;padding:5px;min-height:31px;gap:3px}.room-tools .button .icon{width:14px;height:14px}.clock{font-size:12px;gap:3px}.clock .icon{height:15px;width:15px}.game-room{padding:0 12px 61px}.room-layout{display:flex;justify-content:center}.board-card{width:100%;max-width:570px;border-radius:18px;justify-content:center;padding:12px 11px 8px}.board-heading{margin-bottom:9px}.board-heading strong{font-size:17px}.board-heading .eyebrow{font-size:8px}.milestone-label{font-size:9px}.milestone-label span{font-size:10px}.milestone-bar{margin-bottom:16px}.milestone-bar>i{height:20px;width:20px}.milestone-bar .icon{height:11px;width:11px}.board-wrap{padding:5px;border-radius:13px;box-shadow:0 4px #ad9260}.sudoku-grid{border-radius:8px;border-width:1px}.cell{font-size:clamp(17px,5.8vw,30px)}.cell.box-right{border-right-width:2px}.cell.box-bottom{border-bottom-width:2px}.cell.selected{box-shadow:inset 0 0 0 2px #dcaa43}.cell-notes{font-size:clamp(7px,2.1vw,11px);inset:2px}.cell-author{font-size:7px;right:2px;bottom:2px;width:9px;height:9px}.sudoku-controls{margin-top:13px}.tool-row{gap:6px;margin-bottom:8px}.tool-row .button{min-height:35px;font-size:11px;padding:6px}.tool-row .icon{height:16px;width:16px}.number-button{height:40px;border-radius:8px;font-size:21px}.number-pad{gap:4px}.move-status{font-size:10px;margin-top:7px;min-height:13px}.mobile-dossier{display:flex;position:absolute;bottom:10px;left:50%;transform:translateX(-50%);height:40px;min-height:40px;font-size:12px;padding:6px 20px;z-index:6;white-space:nowrap}.mobile-dossier:hover,.mobile-dossier:active{transform:translateX(-50%)}.mobile-dossier .icon{width:19px;height:19px}.mobile-dossier b{font-size:11px;border-radius:5px;background:#dace9f;padding:3px 6px}.case-sidebar{display:none}.case-sidebar.drawer-open{display:flex;position:fixed;z-index:8;inset:66px 12px 62px;background:#f7fae9;border-radius:20px;box-shadow:0 8px 60px #285b5866;border:3px solid #fff8df;gap:8px}.drawer-open .scene-card{height:29%;min-height:100px;border:0;border-radius:15px 15px 0 0}.drawer-open .dossier{border:0;border-radius:0 0 15px 15px}.drawer-title{display:flex;justify-content:space-between;align-items:center;padding:7px 10px 4px;color:#6d8c61;font-size:14px}.drawer-title .icon-button{height:32px;width:32px}.dossier-tabs{padding:5px}.dossier-tabs button{font-size:12px}.dossier-body{padding:12px}.deduction-button{min-height:32px;font-size:11px;margin-top:4px}.deduction-button .icon{height:17px;width:17px}.waiting-overlay{padding:20px}.waiting-overlay h2{font-size:25px}.waiting-overlay p{font-size:12px}.waiting-code{font-size:30px}.waiting-overlay>div>.icon{height:45px;width:45px;margin-bottom:12px}.waiting-crew{margin:15px 0}dialog{max-height:calc(100dvh - 22px);width:calc(100vw - 22px);border-radius:20px}#modal-content{padding:23px 18px}#modal-content h2{font-size:25px;padding-right:16px}#modal-content p{font-size:13px}.modal-art{margin:-23px -18px 20px;height:175px}.case-grid{gap:9px}.case-option>img{height:77px}.case-option-copy{padding:9px;gap:4px}.case-option-copy b{font-size:12px}.case-option-copy>span{font-size:9px}.case-option-copy small{font-size:9px}.modal-actions{gap:8px}.modal-actions>.button{font-size:12px;flex:1;padding:10px 8px}.theory-dialog>select{font-size:12px}.result-dialog h2{font-size:31px!important}.victory-badge{height:86px;width:86px;margin-bottom:20px}.victory-badge .icon{height:48px;width:48px}.result-dialog .member span{font-size:9px}.result-dialog .member>.avatar{height:35px;width:35px}#toast{bottom:66px;font-size:12px;padding:11px 16px}}
@media(max-width:370px){:root{--board-size:min(calc(100vw - 46px),calc(100dvh - 286px))}.brand{gap:7px}.header-tools{gap:3px}.in-room .brand span{font-size:12px}.in-room .brand>.icon{width:32px;height:32px}.in-room .header-tools .icon-button{width:29px}.in-room .header-tools select{max-width:48px}.room-toolbar h1{max-width:122px;font-size:12px}.room-toolbar .pill{font-size:8px;padding:5px}.clock .icon{display:none}.tool-row .button{font-size:10px;gap:4px}.number-pad{gap:3px}.number-button{height:36px;font-size:19px}.board-heading{margin-bottom:7px}.hero{padding:23px;min-height:420px}.hero-copy{width:91%}.hero h1{font-size:32px}.how-strip{gap:5px;padding:13px 9px}.how-strip>div>.icon{display:none}}
@media(max-height:560px) and (min-width:741px){:root{--board-size:calc(100dvh - 190px)}.in-room .app-header{height:46px;padding:4px 18px}.in-room .brand>.icon{width:34px;height:34px}.in-room .brand span{font-size:14px}.room-toolbar{height:39px}.game-room{padding-bottom:9px}.room-layout{grid-template-columns:minmax(0,1.4fr) minmax(255px,.8fr)}.board-card{padding:10px;display:grid;grid-template-columns:var(--board-size) minmax(85px,130px);grid-template-rows:20px 9px var(--board-size);gap:4px 15px;align-content:center;justify-content:center}.board-heading{grid-column:1;grid-row:1;align-items:center;margin:0}.board-heading>div:first-child{flex-direction:row;gap:7px;align-items:center}.board-heading .eyebrow{font-size:7px;margin:0}.board-heading strong{font-size:12px}.board-heading strong small{font-size:9px}.milestone-label b{display:none}.milestone-label span{font-size:9px}.milestone-bar{grid-column:1;grid-row:2;margin:0;height:4px}.milestone-bar>i{height:13px;width:13px}.milestone-bar .icon{height:8px;width:8px}.board-wrap{grid-column:1;grid-row:3;padding:4px;border-radius:10px}.sudoku-controls{width:auto;grid-column:2;grid-row:1/4;margin:0;align-self:center}.tool-row{flex-wrap:wrap;gap:5px;margin-bottom:8px}.tool-row .button{min-height:30px;font-size:10px;flex:1 1 100%;padding:4px}.tool-row .icon{height:14px;width:14px}.number-pad{grid-template-columns:repeat(3,1fr);gap:4px}.number-button{height:32px;font-size:18px;border-radius:7px}.move-status{font-size:9px}.cell{font-size:19px}.cell-author{font-size:7px;bottom:1px;right:1px;width:9px;height:9px}.cell-notes{font-size:7px;inset:1px}.case-sidebar{gap:8px}.scene-card{height:30%;min-height:70px;border-radius:16px}.scene-location{font-size:9px;top:6px;left:6px;padding:4px}.scene-clues{right:6px;bottom:6px;gap:4px}.scene-clue{height:24px;width:24px;padding:2px;border-radius:7px}.scene-clue .icon{height:14px;width:14px}.dossier-tabs{padding:3px}.dossier-tabs button{min-height:30px;font-size:10px;gap:4px;padding:5px}.dossier-tabs .icon{height:14px;width:14px}.dossier-body{padding:10px}.case-summary,.clue p,.testimony p{font-size:11px}.clue{padding:9px;gap:7px}.clue h3{font-size:12px}.clue-icon{width:25px;height:25px}.deduction-button{font-size:10px;min-height:33px;padding:5px}.deduction-button .icon{display:none}}
/* Reserve space for the entire control strip, not just the grid. In a flex
   column a too-large board would push its heading above the card. */
@media(min-width:741px) and (min-height:561px){:root{--board-size:min(calc(100dvh - 395px),49vw,610px)}.board-heading,.milestone-bar,.sudoku-controls{flex-shrink:0}}
@media(min-width:1600px) and (min-height:561px){:root{--board-size:min(calc(100dvh - 395px),45vw,660px)}}
.board-card:has(.deduction-button) .tool-row,.board-card:has(.deduction-button) .number-pad{display:none}
@media(max-width:740px){:root{--board-size:min(calc(100vw - 48px),calc(100dvh - 330px),500px)}.board-heading,.milestone-bar,.sudoku-controls{flex-shrink:0}.board-heading .eyebrow{display:none}.board-heading>div:first-child{flex-direction:row;align-items:center}.board-heading{margin-bottom:8px}.move-status{display:none}.profile-card{display:grid;grid-template-columns:49px minmax(0,1fr);gap:12px;padding:12px 15px;text-align:left;border-radius:18px}.bureau-badge{margin:0}.bureau-badge>.avatar{height:48px;width:48px}.profile-card .eyebrow,.profile-stats,.profile-note,.mini-progress,.badge-star{display:none}.profile-card #name-form label{font-size:10px;margin-bottom:3px}.profile-card input{min-height:37px;padding:7px 10px;font-size:13px}.profile-card .icon-button{height:37px;width:37px}.profile-card .icon{height:18px;width:18px}}
.vote-status>span{flex-wrap:wrap;flex-basis:100%;padding:8px 10px}.vote-status>span>b{font-weight:800}.vote-status>span>small{display:block;flex-basis:100%;padding-left:21px;line-height:1.5;color:#7c8b67;font-size:11px}.member span{flex-wrap:wrap;line-height:1.4}
@media(max-width:740px) and (min-height:740px){.tool-row .button{min-height:44px}.number-button{height:46px}}
dialog.case-selection{overflow:hidden;max-height:calc(100dvh - 32px)}
#modal-content.case-chooser{height:min(780px,calc(100dvh - 40px));padding:0;display:flex;flex-direction:column;overflow:hidden}
.chooser-heading{flex-shrink:0;padding:28px 30px 15px;background:#fffbed;border-bottom:1px solid #e5dfc3}
#modal-content .chooser-heading h2{margin:0;padding-right:24px}
.chooser-heading .eyebrow{margin-bottom:9px}
.chooser-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c4cfa9 transparent;padding:18px 30px 20px}
.chooser-scroll .case-grid{align-items:stretch}
.chooser-scroll .case-option{flex-shrink:0}
.case-chooser .chooser-actions{flex-shrink:0;margin:0;padding:16px 30px 20px;background:#fff8e4;border-top:1px solid #ded7b8;box-shadow:0 -5px 16px #63734f0a;position:relative;z-index:1}
@media(max-width:740px){dialog.case-selection{max-height:calc(100dvh - 22px)}#modal-content.case-chooser{height:calc(100dvh - 30px)}.chooser-heading{padding:24px 18px 13px}.chooser-scroll{padding:14px 18px 16px}.case-chooser .chooser-actions{padding:12px 18px 15px;gap:8px}.chooser-actions .button{min-height:46px;text-align:center}.chooser-scroll .difficulty-row{align-items:flex-start;flex-direction:column;gap:7px}.chooser-scroll .difficulty-row select{width:100%;min-width:0}.chooser-scroll .difficulty-note{margin-bottom:10px}}
@media(max-height:480px){.chooser-heading{padding-top:15px;padding-bottom:10px}.chooser-heading .eyebrow{margin-bottom:5px;font-size:9px}#modal-content .chooser-heading h2{font-size:22px}.case-chooser .chooser-actions{padding-top:10px;padding-bottom:10px}.chooser-actions .button{min-height:42px}}
.welcome-grid{grid-template-columns:minmax(0,1fr)}
.hero-copy{max-width:560px;width:49%}.hero h1{max-width:17ch}.hero>img{width:64%}
.profile-menu{position:relative;flex-shrink:0}.profile-menu>summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;border:1px solid #d9dfc2;border-bottom:3px solid #c5cdb1;background:#f8faeb;border-radius:13px;padding:4px 10px 4px 4px;min-height:43px;color:#4a765e;font-size:13px;font-weight:800}
.profile-menu>summary::-webkit-details-marker{display:none}.profile-menu>summary .avatar{width:32px;height:32px}.profile-menu>summary>span{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-menu[open]>summary{background:#e1f1de}
.profile-pane{position:absolute;right:0;top:calc(100% + 10px);width:min(290px,calc(100vw - 24px));z-index:15;padding:20px;text-align:left;box-shadow:0 12px 35px #36574533}.profile-pane .profile-stats{display:grid;margin-top:2px}.profile-pane .profile-stats span{display:block;margin-top:4px}.profile-current-name{display:block;font-size:17px;overflow-wrap:anywhere}.profile-account-link{font-size:12px;margin-top:15px}.ig-account-link{display:none!important}
.case-chooser .chooser-actions{display:flex;align-items:flex-end;gap:14px}.chooser-settings{flex:0 1 165px;min-width:0;text-align:left}.chooser-settings .difficulty-row{margin:0;display:flex;flex-direction:column;align-items:stretch;gap:6px;font-size:11px}.chooser-settings .difficulty-row select{width:100%;min-width:0;min-height:46px;font-size:14px}.chooser-buttons{display:flex;justify-content:flex-end;gap:10px;flex:1;min-width:0}.chooser-buttons>.button{min-height:46px}
@media(max-width:1080px){.hero-copy{width:60%}.header-tools{gap:6px}.profile-menu>summary>span{max-width:90px}}
@media(max-width:740px){.hero-copy{width:85%}.hero>img{width:100%}.profile-menu>summary{min-height:36px;padding:2px;border-radius:11px}.profile-menu>summary>.avatar{width:29px;height:29px}.profile-menu>summary>span{display:none}.profile-pane{padding:17px}.profile-pane .profile-stats{display:grid}.in-room .profile-menu>summary{min-height:32px}.in-room .profile-menu>summary>.avatar{height:25px;width:25px}.case-chooser .chooser-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.chooser-settings{width:100%}.chooser-settings .difficulty-row{flex-direction:row;align-items:center;gap:8px}.chooser-settings .difficulty-row label{flex:1;font-size:12px}.chooser-settings .difficulty-row select{width:62%;min-height:39px;font-size:13px}.chooser-buttons{width:100%;gap:8px}.chooser-buttons>.button{flex:1;min-height:46px;font-size:12px;padding:9px 8px}.header-tools .connection{display:none}}
@media(max-width:370px){.in-room .header-tools{gap:2px}.in-room .header-tools select{max-width:44px}.in-room .header-tools>.icon-button{width:26px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
