:root {
  --paper: #f5f0e4;
  --paper-2: #fffaf0;
  --ink: #142f27;
  --green: #356a42;
  --green-2: #4f8b4d;
  --green-pale: #dce6cf;
  --yellow: #d9b65c;
  --yellow-pale: #efe1a6;
  --red: #9b493e;
  --line: #c8c4b7;
  --muted: #6d7168;
  --shadow: 5px 5px 0 rgba(20, 47, 39, .14);
  --pixel: "Courier New", "Microsoft YaHei", monospace;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; min-width: 320px; }
button, select, input { font: inherit; }
button { color: inherit; }
button:not(:disabled) { transition-property:transform,box-shadow,filter,background-color,border-color,color;transition-duration:.11s;transition-timing-function:ease-out;transform-origin:center; }
button:not(:disabled):active,
button:not(:disabled).is-pressing { transform:translate(2px,2px) scale(.975) !important;box-shadow:inset 2px 2px 0 rgba(8,30,24,.18),1px 1px 0 rgba(8,30,24,.18) !important;filter:brightness(.94);transition-duration:.035s; }
button:disabled { filter:saturate(.65); }
@media (prefers-reduced-motion:reduce) { button { transition:none!important; } }
.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; }
.paper-noise { position: fixed; inset: 0; pointer-events: none; opacity: .22; z-index: 20; background-image: repeating-linear-gradient(0deg, transparent 0 3px, rgba(20,47,39,.018) 3px 4px), repeating-linear-gradient(90deg, transparent 0 5px, rgba(20,47,39,.014) 5px 6px); mix-blend-mode: multiply; }

.site-header { height: 86px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(24px, 4.5vw, 72px); border-bottom: 1px solid var(--line); position: relative; z-index: 10; }
.brand { border: 0; background: transparent; padding: 0; display: flex; align-items: center; gap: 13px; cursor: pointer; text-align: left; }
.brand strong { display: block; font: 900 21px/1 var(--pixel); letter-spacing: 1px; }
.brand small { display: block; margin-top: 5px; font: 700 7px/1 var(--pixel); letter-spacing: 3px; }
.brand-cubes { position: relative; width: 35px; height: 30px; transform: rotate(20deg); }
.brand-cubes i { position: absolute; display: block; width: 21px; height: 21px; background: #e5c96f; border: 2px solid var(--ink); box-shadow: inset -4px -4px 0 rgba(20,47,39,.13); }
.brand-cubes i:last-child { background: #6c9c5c; left: 14px; top: 4px; }
.top-nav { display: flex; gap: 24px; }
.top-nav button { border: 0; background: transparent; font-weight: 700; cursor: pointer; padding: 9px 4px; }
.top-nav button:hover { color: var(--green-2); }
.top-nav span { font-family: var(--pixel); margin-right: 5px; }

main { min-height: calc(100vh - 175px); }
.landing { max-width: 1440px; min-height: 720px; margin: 0 auto; padding: 70px clamp(30px, 6vw, 100px) 55px; display: grid; grid-template-columns: minmax(0,1.03fr) minmax(460px,.9fr); column-gap:clamp(42px,5vw,78px); align-items: center; overflow: hidden; }
.hero-copy { position: relative; z-index: 2; max-width: 680px; }
.eyebrow { font: 800 12px/1 var(--pixel); letter-spacing: 2.5px; color: var(--green); text-transform: uppercase; }
.eyebrow span { width: 28px; height: 6px; display: inline-block; margin-right: 11px; border-block: 2px solid var(--green-2); }
h1 { font-size: clamp(52px, 6.2vw, 94px); line-height: .92; letter-spacing: -5px; margin: 26px 0 17px; font-weight: 950; }
h1 em { color: var(--green-2); font-style: normal; white-space: nowrap; }
.stitch { width: 355px; max-width: 75%; height: 7px; background: repeating-linear-gradient(90deg, #c9ad66 0 16px, transparent 16px 22px); margin-bottom: 17px; }
.hero-lead { color: var(--muted); font-size: 17px; line-height: 1.9; max-width: 615px; }
.mode-buttons { display: grid; grid-template-columns: 1.15fr .85fr; gap: 14px; margin-top: 30px; }
.mode-buttons>button,.mode-card>button { width:100%;min-height: 78px; border-radius: 2px; padding: 0 18px; display: flex; align-items: center; text-align: left; cursor: pointer; box-shadow: var(--shadow); transition: transform .15s, box-shadow .15s; }
.mode-buttons>button:hover,.mode-card>button:hover { transform: translate(-2px,-2px); box-shadow: 7px 7px 0 rgba(20,47,39,.14); }
.mode-card { min-width:0;display:grid;grid-template-rows:auto auto;align-self:start; }.difficulty-picker { display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-top:0;background:rgba(255,252,244,.75);box-shadow:var(--shadow); }.difficulty-picker button { min-height:34px;border:0;border-right:1px solid var(--line);background:transparent;padding:6px 4px;font-size:10px;font-weight:900;cursor:pointer; }.difficulty-picker button:last-child { border-right:0; }.difficulty-picker button.active { background:var(--green);color:#fff; }.difficulty-picker button:hover { background:var(--green-pale);color:var(--ink); }.difficulty-picker button.active:hover { background:var(--green-2);color:#fff; }
.mode-primary { background: #316841; border: 1px solid #316841; color: white; }
.mode-secondary { background: rgba(255,250,240,.55); border: 1px solid var(--line); }
.mode-icon { width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px; }
.mode-icon img { width:34px;height:34px;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 3px 2px rgba(0,0,0,.22)); }
.mode-buttons strong { display: block; font-size: 15px; }
.mode-buttons small { display: block; margin-top: 5px; opacity: .78; font-size: 10px; }
.mode-buttons b { margin-left: auto; font-size: 25px; }
.mini-stats { display: flex; margin: 36px 0 26px; }
.mini-stats div { min-width: 125px; padding-right: 25px; margin-right: 25px; border-right: 1px solid var(--line); }
.mini-stats div:last-child { border: 0; }
.mini-stats strong, .mini-stats span { display: block; }
.mini-stats strong { font: 500 28px/1.2 Georgia, serif; }
.mini-stats span { color: var(--muted); font-size: 10px; margin-top: 5px; }
.game-counts { display:grid;grid-template-columns:repeat(4,1fr);gap:7px; }.game-counts button { border:1px solid var(--line);background:rgba(255,253,246,.55);padding:10px 7px;text-align:left;cursor:pointer;color:var(--ink); }.game-counts button:hover { border-color:var(--green);background:#eee2b8; }.game-counts button strong,.game-counts button span { display:block; }.game-counts button strong { font:700 19px Georgia,serif; }.game-counts button span { font-size:9px; }
.surrender-button { border:2px solid #6f2925;background:#a8443d;color:#fff;padding:12px 20px;font-size:12px;font-weight:950;cursor:pointer;box-shadow:4px 4px 0 rgba(75,25,22,.2);white-space:nowrap; }.surrender-button:hover { background:#c05249;transform:translate(-1px,-1px); }.surrender-button:disabled { opacity:.45;cursor:default;transform:none; }
.again-button { margin-left:auto;border:2px solid #09271e;background:var(--green);color:#fff;padding:14px 24px;font-size:14px;font-weight:950;cursor:pointer;box-shadow:7px 7px 0 #d4b75f; }.again-button:hover { background:var(--green-2);transform:translate(-2px,-2px); }.again-button+.surrender-button { margin-left:8px; }.again-button:not([hidden]) { position:fixed;z-index:45;right:clamp(22px,4vw,64px);bottom:clamp(22px,4vw,50px);min-width:190px;min-height:58px; }.again-button:not([hidden])::after { content:"  →"; }
.source-note { border: 1px solid var(--line); border-left: 4px solid var(--yellow); background: rgba(255,255,255,.38); padding: 15px 18px; display: grid; grid-template-columns: 50px 1fr auto; gap: 14px; align-items: center; max-width: 640px; }
.source-mark { background: var(--ink); color: var(--yellow); display: grid; place-items: center; width: 48px; height: 48px; font: 900 24px var(--pixel); }
.source-note small { font: 800 8px var(--pixel); letter-spacing: 1.5px; }
.source-note strong { display: block; font-size: 13px; margin-top: 3px; }
.source-note p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.source-note a { color: var(--green); font-size: 11px; font-weight: 800; text-decoration: none; white-space: nowrap; }

.hero-art { position: relative; height: 610px; min-width: 520px; }
.sun-disc { position: absolute; width: 470px; height: 470px; border-radius: 50%; background: #ecdda3; opacity: .72; left: 50%; top: 50%; transform: translate(-45%,-43%); }
.sun-disc::after { content:""; position:absolute; inset:42px; border: 2px dashed rgba(53,106,66,.12); border-radius:50%; }
.mystery-block { width: 228px; height: 228px; position: absolute; left: 50%; top: 50%; transform: translate(-42%,-52%); background: #17342b; border: 12px solid #0c211b; box-shadow: inset 0 0 0 4px #2e4b3d, inset 0 0 0 13px #112b23, 16px 18px 0 rgba(20,47,39,.13); display: grid; place-items: center; z-index: 2; }
.mystery-block::before { content:""; position:absolute; width: 85px; height: 110px; background:#17342b; border: 9px solid #0c211b; top: 205px; left: 62px; box-shadow: 0 12px 0 rgba(20,47,39,.12); }
.mystery-block::after { content:""; position:absolute; width: 205px; height: 55px; background: linear-gradient(90deg,#17342b 0 34%,#10271f 34% 66%,#17342b 66%); border: 9px solid #0c211b; top: 295px; left: 2px; }
.mystery-block span { color: #e9dfa9; font: 700 76px Georgia,serif; text-shadow: 4px 4px 0 #5f6a47; }
.block-shadow { width: 300px; height: 40px; background: rgba(20,47,39,.15); filter: blur(14px); border-radius:50%; position:absolute; top:525px; left:50%; transform:translateX(-37%); }
.pixel { width: 17px; height: 17px; background: #6f9c56; border: 3px solid #294d33; box-shadow: 3px 3px 0 rgba(20,47,39,.12); position:absolute; transform:rotate(9deg); }
.pixel-a { left: 15%; top: 22%; width: 26px; height: 32px; }.pixel-b { right: 5%; top: 24%; }.pixel-c { right: 0; bottom: 12%; width:22px;height:25px; }
.clue-card { position: absolute; background: rgba(255,252,244,.92); border: 1px solid #c9c7bb; box-shadow: 5px 6px 0 rgba(20,47,39,.11); padding: 13px 18px; width: 190px; z-index: 4; transform: rotate(3deg); }
.clue-card small,.clue-card strong,.clue-card span { display:block; }.clue-card small { font: 700 9px var(--pixel); }.clue-card strong { font-size:18px; margin:5px 0;color:var(--green); }.clue-card span { font-size:9px;color:var(--muted); }
.clue-one { right:-2%; top:19%; }.clue-two { left:2%; bottom:7%; transform:rotate(-3deg); width:220px; }

/* 原创主题主视觉：可交互方块状态实验台 */
.state-lab { width:100%;height:580px;min-width:0;border:2px solid var(--ink);background:#122b24;box-shadow:10px 10px 0 #d4b75f;overflow:hidden;color:#f7f0dc;isolation:isolate; }
.lab-grid { position:absolute;inset:46px 0 124px;background-image:linear-gradient(rgba(111,165,125,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(111,165,125,.09) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 85%,transparent); }
.lab-header { height:46px;border-bottom:1px solid #456357;display:flex;align-items:center;padding:0 16px;gap:12px;font:700 10px var(--pixel);letter-spacing:1px; }.lab-header b { color:#b8c9b9;font-weight:400;font-size:8px;letter-spacing:0;margin-left:auto; }.lab-header>i { width:8px;height:8px;border-radius:50%;background:#a6d36e;box-shadow:0 0 12px #a6d36e; }
.cube-stage { position:absolute;inset:64px 0 160px;display:grid;place-items:center;perspective:900px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;overscroll-behavior:contain; }.cube-stage.is-dragging { cursor:grabbing; }
.cube-stage *, .state-cube, .state-cube * { user-select:none;-webkit-user-select:none;-webkit-user-drag:none;pointer-events:none; }
.state-cube { width:190px;height:190px;position:relative;transform-style:preserve-3d;transform:rotateX(-19deg) rotateY(32deg);transition:transform .35s cubic-bezier(.2,.8,.2,1);z-index:2; }.state-cube .face { position:absolute;inset:0;border:7px solid #071712;background-color:#356a42;background-image:linear-gradient(135deg,rgba(255,255,255,.08) 25%,transparent 25%),linear-gradient(315deg,rgba(0,0,0,.12) 25%,transparent 25%);background-size:42px 42px;box-shadow:inset 0 0 0 5px rgba(191,215,158,.11);backface-visibility:hidden; }.state-cube .front { transform:translateZ(95px); }.state-cube .back { transform:rotateY(180deg) translateZ(95px); }.state-cube .right { transform:rotateY(90deg) translateZ(95px);filter:brightness(.72); }.state-cube .left { transform:rotateY(-90deg) translateZ(95px);filter:brightness(.85); }.state-cube .top { transform:rotateX(90deg) translateZ(95px);filter:brightness(1.2); }.state-cube .bottom { transform:rotateX(-90deg) translateZ(95px);filter:brightness(.55); }.state-cube>span { position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%) translateZ(97px);font:900 72px Georgia;color:#eadb96;text-shadow:4px 4px 0 #17392c; }
.state-cube.is-waterlogged .face { background-color:#286d77;background-image:radial-gradient(circle at 30% 25%,rgba(190,239,238,.35) 0 5px,transparent 6px),linear-gradient(135deg,rgba(255,255,255,.08) 25%,transparent 25%); }.state-cube.is-powered .face { border-color:#b74232;box-shadow:inset 0 0 0 5px rgba(255,170,83,.2),0 0 24px rgba(217,76,54,.35); }
.scan-ring { position:absolute;width:340px;height:340px;border:1px dashed #6a8f7c;border-radius:50%;animation:scanSpin 15s linear infinite; }.scan-ring::before,.scan-ring::after { content:"";position:absolute;width:9px;height:9px;background:#e1c361;border:2px solid #122b24; }.scan-ring::before { left:12px;top:73px; }.scan-ring::after { right:17px;bottom:61px; }
@keyframes scanSpin { to { transform:rotate(360deg); } }
.state-readout { position:absolute;left:20px;right:20px;bottom:112px;border:1px solid #36594a;box-shadow:inset 3px 0 0 #e1c361;background:#0a2019;padding:10px 14px;overflow:hidden; }.state-readout small { display:block;color:#80a28e;font:700 8px var(--pixel);letter-spacing:1px;margin-bottom:5px; }.state-readout code { display:block;overflow:hidden;text-overflow:ellipsis;font:700 11px/1.4 "Microsoft YaHei",sans-serif;color:#f0dc86;white-space:nowrap; }
.lab-controls { position:absolute;left:0;right:0;bottom:34px;height:72px;display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid #456357; }.lab-controls button { border:0;border-right:1px solid #456357;background:#17382e;color:white;cursor:pointer;text-align:left;padding:10px 14px;transition:.15s; }.lab-controls button:last-child { border-right:0; }.lab-controls button:hover { background:#255442; }.lab-controls small { display:block;color:#a8c5b4;font:700 9px "Microsoft YaHei",sans-serif; }.lab-controls small i { margin-left:3px;color:#668b78;font:normal 7px var(--pixel); }.lab-controls strong { display:block;margin-top:6px;font:800 13px var(--pixel);color:#eadb96; }
.lab-hint { position:absolute;bottom:9px;left:0;right:0;text-align:center;margin:0;color:#719181;font:700 8px var(--pixel);letter-spacing:1px; }
.state-builder { position:absolute;z-index:5;left:20px;right:20px;bottom:34px;background:#0c251e;border:1px solid #577269;padding:9px 11px; }.state-builder label>span { display:block;color:#b8cec5;font-size:8px;font-weight:800;margin-bottom:4px; }.state-builder input { width:100%;box-sizing:border-box;border:1px solid #678178;background:#f8f3e7;color:#102a22;padding:8px 10px;font-size:10px;font-weight:800; }.lab-block-results { position:absolute;left:11px;right:11px;bottom:100%;max-height:180px;overflow:auto;background:#f8f3e7;border:1px solid #173b31;box-shadow:0 -8px 20px rgba(0,0,0,.25); }.lab-block-results:empty { display:none; }.lab-block-results button { width:100%;display:flex;align-items:center;gap:8px;border:0;border-bottom:1px solid #d8d0bc;background:transparent;padding:7px;text-align:left;cursor:pointer; }.lab-block-results button:hover { background:#e3d7ad; }.lab-block-results img { width:32px;height:32px;object-fit:contain; }.lab-block-results strong,.lab-block-results small { display:block; }.lab-block-results small { color:#6c756e;font-size:8px;margin-top:2px; }.state-builder .lab-controls { display:grid;grid-template-columns:repeat(4,1fr);position:static;height:auto;margin-top:7px;border:0; }.state-builder .lab-controls button { min-height:40px;padding:5px;border:1px solid #46685d;background:#14392f;color:#fff; }.state-builder .lab-controls button small,.state-builder .lab-controls button strong { display:block; }.state-builder .lab-controls button small { color:#b8cec5;font-size:7px; }.state-builder .lab-controls button strong { margin-top:3px;color:#f3d15d;font-size:9px; }.state-lab .state-readout { bottom:175px; }.state-lab .cube-stage { bottom:210px; }
.catalog-view .attribute-candidates { max-height:360px;overflow:auto; }.catalog-game-status { display:flex;justify-content:space-between;align-items:center;border:2px solid var(--ink);background:#eee5c8;padding:17px 20px;margin-bottom:14px; }.catalog-game-status.won { background:#cee6c8; }.catalog-history { display:grid;gap:10px; }.catalog-result.correct { background:#cee6c8;border-color:#2c7447; }.catalog-result.wrong { background:#f0dfba; }
.answer-reveal { border:2px solid var(--ink);background:#efe2bd;padding:22px;margin-top:16px;box-shadow:6px 6px 0 rgba(20,47,39,.14); }.answer-reveal small,.answer-reveal strong,.answer-reveal code { display:block; }.answer-reveal small { color:#886d32;font:800 9px var(--pixel);letter-spacing:1px; }.answer-reveal strong { margin:8px 0;font-size:22px; }.answer-reveal code { color:var(--green);font-size:11px;line-height:1.7;white-space:normal;word-break:break-word; }.answer-reveal img { width:72px;height:72px;object-fit:contain;float:left;margin-right:15px; }
.qa-learning-card { margin-top:18px;border:2px solid var(--green);background:var(--green-pale);padding:18px;box-shadow:5px 5px 0 rgba(20,47,39,.14); }.qa-learning-card small,.qa-learning-card code { display:block; }.qa-learning-card small { color:var(--green);font:900 9px var(--pixel);letter-spacing:1px; }.qa-learning-card h3 { margin:8px 0;font-size:22px; }.qa-learning-card p { color:var(--muted);font-size:11px;line-height:1.7; }.qa-learning-card code { white-space:normal;color:var(--green);font-size:10px;line-height:1.6; }
.ranking-tabs { display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:20px 0 14px; }.ranking-tabs button { border:1px solid var(--line);background:#f6f0e2;padding:9px 6px;cursor:pointer; }.ranking-tabs button b,.ranking-tabs button span { display:block; }.ranking-tabs button b { color:var(--green);font:900 14px var(--pixel); }.ranking-tabs button span { margin-top:3px;font-size:9px;font-weight:800; }.ranking-tabs button.active { background:var(--green);color:#fff; }.ranking-tabs button.active b { color:#f0d276; }.server-rank-card { max-height:460px;overflow:auto; }.rank-loading { display:block!important;color:var(--muted);text-align:center; }

.game-view { max-width: 1440px; margin: 0 auto; padding: 32px clamp(24px,4.5vw,70px) 60px; }
.game-topline { display:flex; align-items:center; gap:15px; }
.surrender-zone { display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 20px;padding:16px 18px;border:2px solid #9b493e;background:#f1ddd6;box-shadow:5px 5px 0 rgba(86,37,32,.12); }.surrender-zone>div { display:grid;gap:4px; }.surrender-zone strong { color:#5d2723;font-size:14px; }.surrender-zone small { color:#765049;font-size:10px;line-height:1.5; }.surrender-zone.compact { margin:18px 0 4px; }.room-surrender-zone { margin-top:18px;margin-bottom:0; }
.back-button { border:0;background:transparent;padding:7px 0;cursor:pointer;font-size:12px;font-weight:800;color:var(--muted); }
.round-tag { margin-left:auto;background:var(--green-pale);border:1px solid #a8bd9d;padding:7px 12px;font:800 10px var(--pixel);letter-spacing:1px; }
.question-counter { border-left:1px solid var(--line);padding-left:15px;font:700 12px var(--pixel); }
.game-heading { display:flex; align-items:flex-end; justify-content:space-between; padding:28px 0 30px; }
.game-heading h2 { font-size:clamp(38px,4vw,62px);line-height:1;margin:12px 0 10px;letter-spacing:-3px; }.game-heading>div>p:last-child { margin:0;color:var(--muted); }
.guess-cta { background:var(--ink);color:white;border:0;padding:17px 20px;cursor:pointer;font-weight:800;box-shadow:4px 4px 0 #d3b966; }.guess-cta b { margin-left:25px; }
.game-layout { display:grid;grid-template-columns:minmax(0,1.7fr) minmax(310px,.7fr);gap:22px;align-items:start; }
.question-panel,.notebook { border:1px solid var(--line);background:rgba(255,255,255,.33); }
.panel-heading,.notebook-top { padding:22px 24px 18px;display:flex;align-items:center;border-bottom:1px solid var(--line); }
.panel-heading small,.notebook-top small { display:block;font:800 8px var(--pixel);letter-spacing:2px;color:var(--green); }.panel-heading h3,.notebook-top h3 { margin:5px 0 0;font-size:21px; }.panel-heading>span,.notebook-top>span { margin-left:auto;font:800 10px var(--pixel);background:var(--yellow-pale);padding:7px 9px; }
.category-tabs { display:flex;gap:0;padding:0 14px;border-bottom:1px solid var(--line);overflow-x:auto; }
.category-tabs button { border:0;border-bottom:3px solid transparent;background:transparent;padding:14px 13px 11px;cursor:pointer;font-size:12px;font-weight:800;white-space:nowrap; }
.category-tabs button.active { color:var(--green);border-color:var(--green); }
.question-grid { padding:17px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.question-card { border:1px solid #cbc8ba;background:rgba(255,252,245,.72);min-height:74px;padding:13px 42px 13px 15px;text-align:left;position:relative;cursor:pointer;transition:.15s; }
.question-card:hover:not(:disabled) { border-color:var(--green);transform:translateY(-2px);box-shadow:3px 3px 0 rgba(53,106,66,.17); }
.question-card::after { content:"+";position:absolute;right:14px;top:50%;transform:translateY(-50%);font:700 21px var(--pixel);color:var(--green); }
.question-card strong { display:block;font-size:13px;line-height:1.45; }.question-card small { display:block;color:var(--muted);font-size:9px;margin-top:6px; }
.question-card:disabled { opacity:.45;cursor:default;background:#e4e0d5; }.question-card:disabled::after { content:"✓"; }
.notebook { position:sticky;top:20px;min-height:500px;background:#ece2bd;box-shadow:var(--shadow); }
.notebook-top { position:relative;background:#e6d49a;border-bottom:2px solid rgba(20,47,39,.2); }.notebook-top::after { content:"";position:absolute;bottom:-6px;left:0;right:0;border-top:5px dotted rgba(20,47,39,.25); }
.empty-notes { min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:#77735f; }.empty-notes>span { width:60px;height:60px;display:grid;place-items:center;border:2px dashed #9d956e;border-radius:50%;font:700 32px Georgia; }.empty-notes strong { margin:14px 0 4px; }.empty-notes p { font-size:11px;line-height:1.7;max-width:210px;margin:0; }
.answer-list { list-style:none;margin:0;padding:18px;max-height:450px;overflow:auto;counter-reset:notes; }.answer-list li { counter-increment:notes;border-bottom:1px dashed rgba(20,47,39,.22);padding:11px 4px 12px 35px;position:relative; }.answer-list li::before { content:counter(notes,decimal-leading-zero);position:absolute;left:0;top:13px;font:800 10px var(--pixel); }.answer-list p { margin:0;font-size:11px;color:#646454;line-height:1.45; }.answer-list strong { display:block;margin-top:5px;font-size:14px; }.answer-list .yes { color:var(--green); }.answer-list .no { color:var(--red); }.answer-list .depends { color:#8b6b19; }
.notebook-guess { display:flex;justify-content:space-between;width:calc(100% - 36px);margin:0 18px 18px;box-shadow:none; }

/* 游戏主流程：每轮只出现一个输入框，沿对话时间线推进 */
.inference-layout { display:grid;grid-template-columns:280px minmax(0,940px);gap:22px;align-items:start;justify-content:center; }
.conversation { width:100%;min-width:0;border:1px solid var(--line);background:rgba(255,255,255,.36);box-shadow:var(--shadow); }
.clue-sidebar { position:sticky;top:20px;border:1px solid var(--line);background:#efe5bf;box-shadow:var(--shadow);min-height:420px;max-height:calc(100vh - 40px);display:flex;flex-direction:column; }
.clue-sidebar-head { padding:17px 18px;border-bottom:1px solid #bdb38c;background:#e4d49c;position:relative; }.clue-sidebar-head small { display:block;color:var(--green);font:800 8px var(--pixel);letter-spacing:1px; }.clue-sidebar-head h3 { margin:4px 0 0;font-size:18px; }.clue-sidebar-head>span { position:absolute;right:16px;top:21px;width:28px;height:28px;display:grid;place-items:center;background:var(--ink);color:white;font:800 11px var(--pixel); }
.clue-empty { margin:auto;padding:35px 25px;text-align:center;color:#77725d; }.clue-empty>span { display:grid;place-items:center;width:46px;height:46px;border:1px dashed #928a69;border-radius:50%;margin:0 auto 10px;font-size:22px; }.clue-empty p { margin:0;font-size:10px;line-height:1.7; }
.clue-list { list-style:none;margin:0;padding:12px;overflow-y:auto;counter-reset:clues; }.clue-item { counter-increment:clues;width:100%;border:1px solid #c2b998;border-left:4px solid var(--yellow);background:rgba(255,252,239,.72);margin-bottom:8px;padding:10px 9px 10px 34px;position:relative;text-align:left;cursor:pointer;transition:.15s; }.clue-item::before { content:counter(clues,decimal-leading-zero);position:absolute;left:8px;top:11px;font:800 9px var(--pixel);color:#8a846c; }.clue-item:hover { transform:translateX(2px);border-color:#817b64; }.clue-item.yes { border-left-color:var(--green); }.clue-item.no { border-left-color:var(--red); }.clue-item.unknown { border-left-color:var(--yellow); }.clue-item strong { display:block;font-size:11px;line-height:1.55; }.clue-item small { display:block;margin-top:4px;font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.clue-legend { margin-top:auto;border-top:1px solid #c2b998;padding:11px 13px;display:flex;gap:12px;color:var(--muted);font-size:8px; }.clue-legend span { display:flex;align-items:center;gap:4px; }.clue-legend i { width:7px;height:7px;background:var(--yellow); }.clue-legend i.yes { background:var(--green); }.clue-legend i.no { background:var(--red); }
.message.clue-flash .message-body p { animation:clueFlash .8s ease; } @keyframes clueFlash { 0%,100%{box-shadow:3px 3px 0 rgba(20,47,39,.08)} 45%{box-shadow:0 0 0 5px rgba(217,182,92,.45)} }
.conversation-bar { padding:18px 24px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:rgba(255,250,240,.56); }.conversation-bar small { display:block;font:800 8px var(--pixel);letter-spacing:2px;color:var(--green); }.conversation-bar h3 { margin:4px 0 0;font-size:18px; }.conversation-bar>span { margin-left:auto;font:800 10px var(--pixel);background:var(--yellow-pale);padding:7px 9px; }
.dialogue-stream { min-height:270px;max-height:520px;overflow-y:auto;padding:30px 34px 20px;display:flex;flex-direction:column;gap:22px;scroll-behavior:smooth; }
.message { display:flex;gap:13px;max-width:79%;animation:messageIn .25s ease-out; }.message.player-message { align-self:flex-end;flex-direction:row-reverse; }.speaker { flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;border:2px solid var(--ink);font:900 13px var(--pixel);box-shadow:3px 3px 0 rgba(20,47,39,.14); }.host-avatar { background:var(--green);color:white; }.player-avatar { background:var(--yellow-pale); }
.message-body small { display:block;margin:0 0 5px;color:var(--muted);font:800 8px var(--pixel);letter-spacing:1px; }.player-message .message-body small { text-align:right; }.message-body p { margin:0;padding:13px 15px;background:#fffaf0;border:1px solid var(--line);font-size:13px;line-height:1.65;box-shadow:3px 3px 0 rgba(20,47,39,.08); }.player-message .message-body p { background:#e2d49f;border-color:#b8a66b; }.host-message.answer-yes .message-body p { border-left:4px solid var(--green); }.host-message.answer-no .message-body p { border-left:4px solid var(--red); }.host-message.answer-unknown .message-body p { border-left:4px solid var(--yellow); }
@keyframes messageIn { from { opacity:0;transform:translateY(8px); } to { opacity:1;transform:none; } }
.turn-area { border-top:1px solid var(--line);padding:20px 24px 17px;background:#eee5c8; }.turn-label { margin:0 0 10px;font-size:11px;font-weight:800; }.turn-label span { color:var(--green);font-family:var(--pixel); }.question-form { display:grid;grid-template-columns:1fr auto;border:2px solid var(--ink);background:white;box-shadow:4px 4px 0 rgba(20,47,39,.13); }.question-form textarea { resize:none;border:0;outline:0;padding:14px 15px;min-height:65px;color:var(--ink);background:transparent;line-height:1.5;font:inherit; }.question-form button { border:0;background:var(--ink);color:white;margin:6px;padding:0 18px;cursor:pointer;font-weight:800;white-space:nowrap; }.question-form button span { margin-left:13px; }.question-form button:disabled { opacity:.45;cursor:default; }
.prompt-row { display:flex;align-items:center;gap:12px;margin-top:14px; }.prompt-row>span { flex:0 0 auto;color:var(--muted);font-size:10px; }.prompt-suggestions { display:flex;gap:7px;overflow-x:auto;padding:2px; }.prompt-suggestions button { border:1px solid #aaa58f;background:rgba(255,250,240,.65);padding:7px 10px;cursor:pointer;font-size:10px;white-space:nowrap; }.prompt-suggestions button:hover { border-color:var(--green);color:var(--green); }.input-note { margin:10px 0 0;color:var(--muted);font-size:9px; }.question-limit-reached { border-top:1px solid var(--line);padding:25px;text-align:center;background:#e8d99e; }.question-limit-reached strong { font-size:18px; }.question-limit-reached p { color:var(--muted);font-size:11px; }.question-limit-reached button { background:var(--ink);color:white;border:0;padding:12px 20px;cursor:pointer;font-weight:800; }

footer { min-height:89px;border-top:1px solid var(--line);padding:22px clamp(24px,4.5vw,72px);display:flex;justify-content:space-between;gap:20px;align-items:center;color:var(--muted);font-size:10px; }
footer a { color:var(--green);font-weight:800; }

.dialog-backdrop { position:fixed;z-index:30;inset:0;background:rgba(13,30,24,.72);display:grid;place-items:center;padding:20px; }
.dialog-backdrop[hidden] { display:none; }
.dialog { width:min(620px,100%);max-height:90vh;overflow:auto;background:var(--paper-2);border:2px solid var(--ink);box-shadow:10px 10px 0 rgba(0,0,0,.25);padding:30px;position:relative; }
.dialog.wide { width:min(760px,100%); }.dialog-close { position:absolute;right:13px;top:10px;border:0;background:transparent;font:26px var(--pixel);cursor:pointer; }
.dialog.record-dialog { width:min(900px,100%); }
.dialog-label { color:var(--green);font:800 9px var(--pixel);letter-spacing:2px; }.dialog h2 { font-size:30px;margin:8px 0 11px; }.dialog-intro { color:var(--muted);font-size:13px;line-height:1.7; }
.rule-list { display:grid;gap:10px;margin-top:20px; }.rule-item { border:1px solid var(--line);padding:14px;display:grid;grid-template-columns:35px 1fr;gap:12px; }.rule-item>b { font:800 20px var(--pixel);color:var(--green); }.rule-item strong { font-size:13px; }.rule-item p { margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.6; }
.record-summary { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:22px 0 28px; }
.record-summary article { min-height:92px;display:grid;place-content:center;text-align:center;border:1px solid rgba(85,82,67,.16);background:#eee7d7;box-shadow:3px 3px 0 rgba(20,47,39,.08); }
.record-summary strong { color:var(--ink);font:900 25px/1 var(--pixel); }
.record-summary span { margin-top:9px;color:var(--muted);font-size:11px;font-weight:800; }
.record-chart { border-top:1px solid var(--line);padding-top:18px; }
.record-chart>header { display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:16px; }
.record-chart>header small { color:var(--green);font:900 8px var(--pixel);letter-spacing:1.5px; }
.record-chart h3 { margin:5px 0 0;font-size:18px; }
.record-chart>header>span { color:var(--muted);font-size:10px;font-weight:800;white-space:nowrap; }
.record-chart ol { display:grid;gap:8px;margin:0;padding:0;list-style:none; }
.record-bar-row { display:grid;grid-template-columns:28px minmax(88px,132px) minmax(120px,1fr) 36px;align-items:center;gap:10px;min-height:24px; }
.record-bar-row>b { display:grid;place-items:center;width:27px;height:24px;background:var(--green);color:#fff;font:900 10px var(--pixel); }
.record-bar-label { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:800; }
.record-bar-track { height:22px;overflow:hidden;background:#ded6c5;border-left:4px solid rgba(47,105,65,.28);box-shadow:inset 0 0 0 1px rgba(74,77,67,.08); }
.record-bar-track i { display:block;width:var(--bar-value);height:100%;background:linear-gradient(90deg,#2f6941,#79a061);transform-origin:left;animation:record-bar-grow .48s ease-out both;animation-delay:calc(var(--bar-order) * 22ms); }
.record-bar-row:nth-child(4n+2) .record-bar-track i { background:linear-gradient(90deg,#3d6f73,#79a9a8); }
.record-bar-row:nth-child(4n+3) .record-bar-track i { background:linear-gradient(90deg,#9b7533,#d4ae5c); }
.record-bar-row:nth-child(4n) .record-bar-track i { background:linear-gradient(90deg,#65547d,#9a81ad); }
.record-bar-row>strong { text-align:right;font:900 12px var(--pixel); }
@keyframes record-bar-grow { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media (prefers-reduced-motion:reduce) { .record-bar-track i { animation:none; } }
.rank-grid { display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px; }.rank-card { border:1px solid var(--line);background:#f8f3e7; }.rank-card header { padding:15px;background:#e8dfc8;display:grid;grid-template-columns:44px 1fr;column-gap:10px;align-items:center; }.rank-card header b { grid-row:span 2;background:var(--green);color:#fff;padding:10px 7px;font:800 16px var(--pixel);text-align:center; }.rank-card header strong { font-size:14px; }.rank-card header small { color:var(--muted);font-size:10px; }.rank-card ol { list-style:none;padding:0;margin:0; }.rank-card li { display:grid;grid-template-columns:52px minmax(0,1fr) max-content;gap:12px;align-items:center;min-height:48px;padding:10px 14px;border-top:1px solid var(--line);font-size:11px; }.rank-card li>b { display:block;color:var(--green);font:800 11px var(--pixel);white-space:nowrap; }.rank-card li>strong { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.rank-card li span { color:var(--muted);font-size:10px;text-align:right;white-space:nowrap; }.versus-tabs { display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink);margin:22px 0 25px; }.versus-tabs button { padding:15px;border:0;background:#eee7d7;font-size:16px;font-weight:800;cursor:pointer; }.versus-tabs button.active { background:var(--green);color:#fff; }.field-label { display:block;font-size:12px;font-weight:800;margin:12px 0 7px; }.dialog-input { width:100%;box-sizing:border-box;padding:13px;border:1px solid var(--ink);background:#fffdf6;font-size:15px; }.versus-options { display:grid;gap:10px;margin:18px 0; }.versus-options label { display:grid;grid-template-columns:22px 1fr;padding:14px;border:1px solid var(--line);font-weight:800; }.versus-options small { grid-column:2;color:var(--muted);font-size:10px;margin-top:5px;font-weight:400; }.versus-fields { display:grid;grid-template-columns:1fr 1fr;gap:14px; }.versus-fields label { font-size:12px;font-weight:800; }.versus-fields input { margin-top:7px; }.dialog-primary { margin-top:22px;width:100%;padding:15px;border:0;background:var(--green);color:#fff;font-size:16px;font-weight:800;cursor:pointer;box-shadow:5px 5px 0 #a4b784; }.versus-status { min-height:20px;color:var(--green);font-size:12px;line-height:1.6;margin-top:14px; }
.multiplayer-fields { margin-top:18px; }.multiplayer-fields .dialog-input { margin-top:7px; }.room-form-note { margin:13px 0 0;color:var(--muted);font-size:11px;line-height:1.6; }.dialog-primary:disabled { opacity:.6;cursor:wait; }
.settings-row { display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:15px 0; }.toggle { width:48px;height:25px;border:1px solid var(--ink);background:#d9d5c8;position:relative;cursor:pointer; }.toggle::after { content:"";position:absolute;width:17px;height:17px;left:3px;top:3px;background:var(--ink);transition:.2s; }.toggle.on { background:var(--green-pale); }.toggle.on::after { left:26px;background:var(--green); }
.guess-form { display:grid;gap:17px;margin-top:21px; }.field label { display:block;font-size:11px;font-weight:800;margin-bottom:7px; }.field select { width:100%;padding:12px;border:1px solid var(--line);background:white;color:var(--ink); }.state-fields { display:grid;grid-template-columns:repeat(2,1fr);gap:12px; }.answer-preview { background:#ece3c5;border-left:4px solid var(--yellow);padding:12px 14px;font:700 11px/1.7 var(--pixel);word-break:break-all; }.submit-guess { border:0;background:var(--green);color:white;padding:15px;cursor:pointer;font-weight:900; }.guess-help { color:var(--muted);font-size:10px;text-align:center;margin:0; }
.result-mark { width:72px;height:72px;display:grid;place-items:center;background:var(--green);color:white;font:900 35px var(--pixel);box-shadow:5px 5px 0 var(--yellow); }.result-mark.lose { background:var(--red); }.result-answer { margin:20px 0;background:#e9e1c7;padding:15px;border-left:4px solid var(--green); }.result-answer small,.result-answer strong,.result-answer code { display:block; }.result-answer strong { margin:5px 0;font-size:19px; }.result-answer code { font-size:10px;white-space:normal;word-break:break-all;color:var(--muted); }.result-actions { display:flex;gap:10px;margin-top:18px; }.result-actions button,.result-actions a { flex:1;text-align:center;text-decoration:none;border:1px solid var(--ink);padding:12px;font-weight:800;font-size:12px;background:transparent;color:var(--ink);cursor:pointer; }.result-actions .primary { background:var(--ink);color:white; }
.result-answer details { margin-top:12px;border-top:1px dashed rgba(20,47,39,.25);padding-top:9px; }.result-answer summary { cursor:pointer;color:var(--muted);font-size:10px; }.result-answer details code { margin-top:8px; }
.toast { position:fixed;z-index:50;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--ink);color:white;padding:12px 18px;font-size:12px;opacity:0;pointer-events:none;transition:.2s; }.toast.show { opacity:1;transform:translate(-50%,0); }

body.high-contrast { --paper:#fff;--paper-2:#fff;--ink:#071710;--green:#1d612f;--line:#827f75; }.high-contrast .paper-noise { display:none; }
body.compact .question-card { min-height:58px;padding-block:9px; }.compact .question-grid { gap:6px; }
body.compact .dialogue-stream { gap:12px;padding-block:18px; }.compact .message-body p { padding-block:9px; }

/* 显示主题：候选列表始终保持清晰，暗色模式覆盖所有主要游戏表面。 */
.lab-block-results button,.lab-block-results button * { color:#101820 !important; }
.lab-block-results strong { font-size:10px;font-weight:900; }
.lab-block-results button:hover strong { color:#101820; }
.lab-block-results small { color:#4b5563 !important; }
.attribute-candidate img,.catalog-feedback-table th img { object-fit:contain;object-position:center;image-rendering:auto;background:transparent; }

body.dark-mode {
  --paper:#0d1815;--paper-2:#13221e;--ink:#edf4ef;--green:#79bd83;--green-2:#91cf8e;
  --green-pale:#243c31;--yellow:#e0bf63;--yellow-pale:#4a4125;--red:#e18478;
  --line:#3c5149;--muted:#aebdb6;--shadow:5px 5px 0 rgba(0,0,0,.34);
  background:#0d1815;color:var(--ink);
}
.dark-mode .paper-noise { opacity:.13;mix-blend-mode:screen; }
.dark-mode .mode-secondary,.dark-mode .game-counts button,.dark-mode .source-note,.dark-mode .question-panel,.dark-mode .conversation,.dark-mode .clue-sidebar,.dark-mode .attribute-search { background:rgba(24,42,36,.88); }
.dark-mode .game-counts button:hover,.dark-mode .prompt-suggestions button:hover { background:#29483b; }
.dark-mode .surrender-button { color:#fff;border-color:#e18c84;background:#9f413b; }
.dark-mode .surrender-button:hover { background:#bc524a; }
.dark-mode .surrender-zone { background:#412622;border-color:#b96259; }.dark-mode .surrender-zone strong { color:#ffd9d4; }.dark-mode .surrender-zone small { color:#e7bdb7; }
.dark-mode .again-button { color:#fff;background:#4f8b5d;border-color:#76aa7f; }
.dark-mode .dialog { background:#14231f;color:var(--ink);border-color:#61756d;box-shadow:10px 10px 0 rgba(0,0,0,.46); }
.dark-mode .record-summary article { background:#1a2e27;border-color:#41574f;box-shadow:3px 3px 0 rgba(0,0,0,.25); }
.dark-mode .record-bar-track { background:#2b3d36;border-left-color:#628870;box-shadow:inset 0 0 0 1px rgba(227,239,232,.08); }
.dark-mode .dialog-input,.dark-mode .attribute-search-row input,.dark-mode .question-form textarea,.dark-mode .field select { background:#0e1a17;color:#edf4ef;border-color:#667a72; }
.dark-mode .rule-item,.dark-mode .rank-card,.dark-mode .ranking-tabs button,.dark-mode .versus-tabs button,.dark-mode .craft-loading { background:#192c26; }
.dark-mode .rank-card header,.dark-mode .attribute-table thead { background:#253a33; }
.dark-mode .attribute-candidates { background:#13231f;border-color:#40554d;box-shadow:0 12px 28px rgba(0,0,0,.38); }
.dark-mode .attribute-candidate { border-color:#40554d; }
.dark-mode .attribute-candidate strong { color:#f1f6f3; }
.dark-mode .attribute-candidate small { color:#b1c0ba; }
.dark-mode .attribute-candidate em { color:#d6e1dc; }
.dark-mode .attribute-candidate:hover { background:#25473d; }
.dark-mode .attribute-candidate img { background:#e9eee9; }
.dark-mode .attribute-selected { background:#514725;color:#fff3ca; }
.dark-mode .attribute-selected span,.dark-mode .attribute-selected strong { color:#fff3ca; }
.dark-mode .attribute-table-wrap { background:#14231f; }
.dark-mode .attribute-table th,.dark-mode .attribute-table td,.dark-mode .attribute-table tbody th,.dark-mode .attribute-table thead th { color:#edf4ef; }
.dark-mode .attribute-table td.exact { color:#163b25; }.dark-mode .attribute-table td.partial { color:#54420c; }.dark-mode .attribute-table td.higher { color:#173f58; }.dark-mode .attribute-table td.lower { color:#442d5e; }
.dark-mode .attribute-legend { color:#e8f0ec; }
.dark-mode .catalog-game-status,.dark-mode .catalog-result,.dark-mode .answer-reveal,.dark-mode .result-answer { background:#332f21; }
.dark-mode .catalog-game-status.won,.dark-mode .catalog-result.correct { background:#25452f; }
.dark-mode .catalog-result.wrong { background:#4b3824; }
.dark-mode .notebook,.dark-mode .notebook-top { color:#13231f; }
.dark-mode .message-body p { background:#1a3029;color:#edf4ef; }
.dark-mode .player-message .message-body p { background:#33462d; }
.dark-mode .turn-area { background:#13231f; }
.dark-mode .clue-item { background:#182b25; }
.dark-mode .toggle { background:#263a34;border-color:#9caea7; }.dark-mode .toggle::after { background:#dce8e2; }.dark-mode .toggle.on { background:#416d4e; }.dark-mode .toggle.on::after { background:#f3d46e; }
.dark-mode .craft-board,.dark-mode .craft-item,.dark-mode .craft-actions button { background:#192a25; }
.dark-mode .craft-rule { color:#cddbd4; }.dark-mode .craft-rule a { color:#8fd19b; }
.dark-mode .craft-discovered span { background:#26352f;color:#bbc8c2; }
.dark-mode .history-summary { background:#14251f;color:#c9d6d0; }.dark-mode .history-summary strong { color:#f0f5f2; }.dark-mode .history-summary button { background:#1b3129;color:#fff;border-color:#8da098; }.dark-mode .history-drawer { background:#10221b;border-color:#dbe6e1; }.dark-mode .history-drawer-content { background:#0c1b16; }
.dark-mode .catalog-feedback-wrap { background:#14231f;border-color:#40554d; }
.dark-mode .catalog-feedback-table th,.dark-mode .catalog-feedback-table td { border-color:#14231f; }
.dark-mode .catalog-feedback-table thead th { background:#253a33;color:#edf4ef; }
.dark-mode .catalog-feedback-table tbody th { background:#192d26;color:#edf4ef; }
.dark-mode .catalog-feedback-table tbody th small { color:#b1c0ba; }
.dark-mode .catalog-feedback-table td.exact { background:#4f8658;color:#fff; }.dark-mode .catalog-feedback-table td.partial { background:#e4a32c;color:#182018; }
.dark-mode .catalog-feedback-table td.miss { background:#75817e;color:#fff; }.dark-mode .catalog-feedback-table td.higher { background:#bcdff2;color:#173f58; }.dark-mode .catalog-feedback-table td.lower { background:#d8c8ec;color:#442d5e; }
.dark-mode .attribute-candidates .attribute-candidate,.dark-mode .attribute-candidates .attribute-candidate * { color:#f1f6f3 !important; }
.dark-mode .attribute-candidates .attribute-candidate small,.dark-mode .attribute-candidates .attribute-candidate em { color:#d4dfda !important; }
.dark-mode footer { border-color:var(--line); }
.dark-mode .room-main-card,.dark-mode .room-side-card,.dark-mode .room-battle,.dark-mode .room-code-card { background:#14251f; }
.dark-mode .room-player { background:#1a2f28; }
.dark-mode .room-ready-button { border-color:var(--ink);color:var(--ink); }
.dark-mode.high-contrast { --paper:#050806;--paper-2:#0b100d;--ink:#fff;--line:#87958f;--muted:#d4ddd8; }
.state-cube { width:230px;height:230px;display:grid;place-items:center;transform-style:preserve-3d;transition:transform .18s ease; }
.state-cube #labModelCanvas,.state-cube #labModelImage { width:100%;height:100%;object-fit:contain;image-rendering:auto;filter:drop-shadow(10px 14px 5px rgba(0,0,0,.42));user-select:none;-webkit-user-drag:none; }
.state-cube #labModelCanvas { position:absolute;inset:0; }
.water-volume { --water-size:154px;--water-half:77px;position:absolute;z-index:4;left:50%;top:50%;width:var(--water-size);height:var(--water-size);opacity:0;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateX(var(--water-rx,-19deg)) rotateY(var(--water-ry,32deg));pointer-events:none;transition:opacity .2s; }.state-cube.is-waterlogged .water-volume { opacity:.68; }.water-volume i { position:absolute;inset:0;border:1px solid rgba(170,228,255,.5);background:linear-gradient(150deg,rgba(50,147,224,.35),rgba(16,82,185,.5));box-shadow:inset 0 0 22px rgba(117,207,255,.25);backface-visibility:visible;transform-style:preserve-3d; }.water-volume .front { transform:translateZ(var(--water-half)); }.water-volume .back { transform:rotateY(180deg) translateZ(var(--water-half)); }.water-volume .right { transform:rotateY(90deg) translateZ(var(--water-half)); }.water-volume .left { transform:rotateY(-90deg) translateZ(var(--water-half)); }.water-volume .top { transform:rotateX(90deg) translateZ(var(--water-half));background:linear-gradient(135deg,rgba(92,186,241,.56),rgba(29,100,202,.45)); }.water-volume .bottom { transform:rotateX(-90deg) translateZ(var(--water-half)); }
.state-cube>span { display:none; }.state-cube>span:only-child { display:block; }
.state-cube.is-powered #labModelImage,.state-cube.is-powered #labModelCanvas { filter:drop-shadow(0 0 13px rgba(235,83,48,.72)) drop-shadow(10px 14px 5px rgba(0,0,0,.42)); }
.state-cube.is-waterlogged #labModelImage,.state-cube.is-waterlogged #labModelCanvas { filter:drop-shadow(10px 14px 5px rgba(0,0,0,.42)); }
.dark-mode .difficulty-picker { background:#14251f; }
@media (max-width:650px) { .again-button:not([hidden]) { left:18px;right:18px;bottom:18px;width:auto; }.water-volume { --water-size:140px;--water-half:70px; } }
.all-game-rules .rule-item { grid-template-columns:54px 1fr;align-items:center;min-height:64px; }
.all-game-rules .rule-item>b { width:50px;height:50px;display:grid;place-items:center;overflow:visible; }
.all-game-rules .rule-item>b img { width:44px;height:44px;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 3px 2px rgba(0,0,0,.22)); }
.clue-game-view { max-width:1250px;margin:0 auto;padding:32px clamp(20px,4.5vw,70px) 70px; }
.clue-game-layout { display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px;margin-top:28px;align-items:start; }
.clue-game-card,.clue-history-card { border:1px solid var(--line);background:rgba(255,255,255,.38);padding:24px; }
.clue-game-card h2 { font-size:clamp(32px,5vw,54px);margin:12px 0 9px; }.clue-game-card>p:not(.eyebrow) { color:var(--muted);line-height:1.7; }
.mosaic-stage { position:relative;margin:20px 0;border:2px solid var(--ink);background:#091914;padding:12px;box-shadow:var(--shadow); }
.mosaic-stage canvas { display:block;width:100%;height:360px;object-fit:contain;background:radial-gradient(circle,#28483b,#0c1c17);image-rendering:pixelated; }
.mosaic-level { position:absolute;right:20px;bottom:20px;background:rgba(5,18,14,.84);color:#f2d36d;padding:8px 10px;font-size:10px;font-weight:900; }
.mosaic-stage.duo-mosaic { background:#07130f; }.mosaic-stage.duo-mosaic canvas { background:radial-gradient(circle at 35% 40%,#1c332b,#07130f 68%); }
.structured-clues { display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0; }.structured-clues article { position:relative;border:1px solid var(--line);border-left:4px solid var(--green);background:var(--paper-2);padding:16px; }.structured-clues small,.structured-clues strong { display:block; }.structured-clues small { color:var(--muted);font-size:9px;font-weight:900;letter-spacing:1px; }.structured-clues strong { margin-top:7px;font-size:14px;line-height:1.5; }.structured-clues i { position:absolute;right:12px;top:12px;width:24px;height:24px;border:2px solid var(--ink);border-radius:50%; }
.clue-guess-form { display:flex;gap:9px;margin-top:17px; }.clue-guess-form input { flex:1;min-width:0;border:1px solid var(--ink);background:var(--paper-2);color:var(--ink);padding:13px 14px;font-size:14px;font-weight:800; }.clue-guess-form button { border:0;background:var(--green);color:#fff;padding:0 18px;font-weight:900;cursor:pointer; }
.clue-candidates { display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;max-height:190px;overflow:auto; }.clue-candidates button { display:grid;grid-template-columns:auto 1fr;column-gap:7px;text-align:left;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);padding:8px 10px;cursor:pointer; }.clue-candidates button:hover { border-color:var(--green);background:var(--green-pale); }.clue-candidates strong,.clue-candidates small { display:block; }.clue-candidates small { grid-column:2;color:var(--muted);font-size:8px; }.clue-candidates i { grid-row:1 / span 2;width:18px;height:18px;border-radius:50%;border:1px solid var(--ink);align-self:center; }
.clue-feedback { min-height:24px!important;color:var(--green)!important;font-weight:900; }.clue-history-card { position:sticky;top:20px; }.clue-history-card small { color:var(--green);font:800 9px var(--pixel);letter-spacing:1px; }.clue-history-card h3 { margin:7px 0 16px; }.clue-history-card ol { list-style:none;margin:0;padding:0;display:grid;gap:8px; }.clue-history-card li { display:flex;gap:9px;padding:10px;border:1px solid var(--line);background:var(--paper-2);font-size:11px;font-weight:800; }.clue-history-card li.correct { background:#cde6c8;color:#16492a; }.clue-history-card li.wrong b { color:var(--red); }
.clue-candidates.awaiting-search { display:block;max-height:none;overflow:visible; }.clue-search-hint { margin:0;border:1px dashed var(--line);background:var(--paper-2);padding:12px 14px;color:var(--muted);font-size:10px;font-weight:800;line-height:1.6; }
.dark-mode .clue-game-card,.dark-mode .clue-history-card { background:#14251f; }.dark-mode .structured-clues article,.dark-mode .clue-candidates button,.dark-mode .clue-history-card li { background:#192d26; }
@media (max-width:800px) { .clue-game-layout { grid-template-columns:1fr; }.clue-history-card { position:static; }.structured-clues { grid-template-columns:1fr; }.mosaic-stage canvas { height:260px; } }
.effect-challenge { grid-column:1 / -1;min-width:0; }
.clue-game-view.feedback-mode .clue-game-layout { grid-template-columns:1fr; }.clue-game-view.feedback-mode .clue-history-card { display:none; }.clue-game-view.feedback-mode .clue-game-card { display:flex;flex-direction:column; }.clue-game-view.feedback-mode .structured-clues,.clue-game-view.feedback-mode .effect-challenge { display:contents; }.clue-game-view.feedback-mode .effect-challenge>header { order:1; }.clue-game-view.feedback-mode .clue-guess-form { order:2;margin:0;padding:18px;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;background:rgba(247,249,252,.75); }.clue-game-view.feedback-mode .clue-candidates { order:3;margin:0 0 20px;padding:0 18px 16px;max-height:160px;border:1px solid var(--line);border-top:0;border-radius:0 0 18px 18px;background:rgba(247,249,252,.75); }.clue-game-view.feedback-mode .clue-feedback { order:4; }.clue-game-view.feedback-mode .effect-feedback-wrap { order:5; }.clue-game-view.feedback-mode .attribute-legend { order:6; }.dark-mode .clue-game-view.feedback-mode .clue-guess-form,.dark-mode .clue-game-view.feedback-mode .clue-candidates { background:#14251f; }
.clue-candidates img { grid-row:1 / span 2;width:22px;height:22px;border-radius:5px;border:1px solid var(--ink);align-self:center;object-fit:contain;image-rendering:pixelated; }
.effect-challenge>header { display:flex;justify-content:space-between;gap:15px;align-items:center;border:1px solid var(--line);border-radius:20px;background:rgba(247,249,252,.75);padding:20px;margin-bottom:22px; }
.effect-challenge h3 { margin:0 0 6px;font-size:22px; }.effect-challenge p { margin:0;color:var(--muted);font-size:11px; }.effect-challenge>header>span { border:1px solid #b8ded6;border-radius:18px;background:#e0f6ef;padding:8px 13px;font-size:11px;font-weight:900;white-space:nowrap; }
.effect-feedback-wrap { overflow:auto;border:1px solid var(--line);border-radius:22px;background:rgba(247,249,252,.8);padding-top:20px; }
.feedback-board-heading { display:flex;justify-content:space-between;align-items:end;gap:20px;padding:0 20px; }.feedback-board-heading>small { color:#506585;font:800 9px var(--pixel);letter-spacing:2.5px;text-transform:uppercase; }
.effect-feedback-table { width:100%;min-width:920px;border-collapse:collapse;margin-top:16px;table-layout:auto; }.effect-feedback-table th,.effect-feedback-table td { padding:14px 11px;border-top:1px solid var(--line);text-align:center;font-size:11px;font-weight:900;vertical-align:middle; }.effect-feedback-table thead th { color:#58677b;white-space:nowrap; }.effect-feedback-table tbody th { min-width:172px;text-align:left; }.effect-feedback-table tbody th i,.effect-feedback-table tbody th img { width:38px;height:38px;border-radius:8px;border:1px solid rgba(0,0,0,.15);float:left;margin-right:9px;object-fit:contain;image-rendering:pixelated; }.effect-feedback-table tbody th strong,.effect-feedback-table tbody th small,.effect-feedback-table tbody th em { display:block; }.effect-feedback-table tbody th small { color:var(--muted);margin-top:3px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:105px; }.effect-feedback-table tbody th em { width:max-content;margin-top:5px;border:1px solid var(--line);border-radius:10px;padding:2px 7px;color:var(--muted);font-size:9px;font-style:normal;font-weight:500; }.effect-feedback-table td span,.effect-feedback-table td small { display:block; }.effect-feedback-table td span { min-width:48px;line-height:1.6; }.effect-feedback-table td small { margin-top:4px;font-size:8px;font-weight:600;opacity:.8; }
.effect-feedback-table td.exact { background:#cfe7c8;color:#1f693b; }.effect-feedback-table td.partial { background:#f1dda0;color:#72570e; }.effect-feedback-table td.higher { background:#cce3f5;color:#24658d; }.effect-feedback-table td.lower { background:#ddcff0;color:#6f4c91; }
.clue-answer-reveal { overflow:hidden; }.clue-answer-reveal img { image-rendering:pixelated; }
.dark-mode .effect-challenge>header,.dark-mode .effect-feedback-wrap { background:#14251f; }.dark-mode .effect-challenge>header>span { background:#254c42;color:#d8f1e8; }.dark-mode .effect-feedback-table th,.dark-mode .effect-feedback-table td { border-color:#40554d; }.dark-mode .effect-feedback-table thead th { color:#d7e2de; }
.craft-item img,.craft-slot img,.craft-result img { width:42px;height:42px;object-fit:contain;image-rendering:pixelated; }.craft-item img { width:46px;height:46px; }.craft-loading { text-align:center;border:1px solid var(--line);padding:35px;background:#f8f3e7;font-weight:800; }.craft-slot span,.craft-result span { display:block;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.catalog-result>img { width:48px;height:48px;object-fit:contain;image-rendering:pixelated;grid-row:1 / span 3; }
.craft-load-error { border:2px solid #7d352e;background:#f5dfd8;padding:30px;text-align:center; }.craft-load-error strong { color:#111;font-size:19px; }.craft-load-error p { color:#5c322e;font-weight:700; }.craft-load-error button { border:0;background:var(--ink);color:#fff;padding:11px 18px;font-weight:900;cursor:pointer; }
.attribute-view,.catalog-view { max-width:1250px;margin:0 auto;padding:32px clamp(20px,4.5vw,70px) 70px; }.attribute-heading { max-width:760px;margin:32px 0 24px; }.attribute-heading h2 { font-size:clamp(30px,5vw,52px);margin:10px 0; }.attribute-heading p:not(.eyebrow) { color:var(--muted);line-height:1.8; }.attribute-search { border:1px solid var(--line);background:rgba(255,255,255,.4);padding:22px;margin-bottom:15px; }.attribute-search label { display:block;font-size:12px;font-weight:800;margin-bottom:8px; }.attribute-search-row { display:flex;gap:10px; }.attribute-search-row input { flex:1;border:1px solid var(--ink);background:#fffdf7;padding:14px;font-size:15px; }.attribute-search-row button { background:var(--green);color:#fff;border:0;padding:0 23px;font-weight:800; }.attribute-candidates { display:flex;flex-wrap:wrap;gap:8px;margin-top:13px; }.attribute-candidate { text-align:left;border:1px solid #b8b29d;background:#faf4e7;padding:10px 13px;cursor:pointer; }.attribute-candidate:hover { border-color:var(--green);transform:translateY(-1px); }.attribute-candidate strong,.attribute-candidate small { display:block; }.attribute-candidate small { color:var(--muted);font-size:10px;margin-top:4px; }.attribute-selected { display:flex;align-items:center;gap:13px;border-left:4px solid var(--yellow);background:#eee2b8;padding:14px 17px;margin:15px 0; }.attribute-selected span { color:var(--muted);font-size:11px; }.attribute-selected strong { flex:1;font-size:15px; }.attribute-selected button { border:0;background:var(--ink);color:#fff;padding:11px 15px;font-weight:800;cursor:pointer; }.attribute-table-wrap { overflow:auto;border:1px solid var(--line);background:#fffdf7; }.attribute-table { width:100%;min-width:960px;border-collapse:collapse;font-size:11px; }.attribute-table th,.attribute-table td { border-bottom:1px solid var(--line);padding:12px 10px;text-align:center;white-space:nowrap; }.attribute-table thead { background:#e8dfc8; }.attribute-table tbody th { text-align:left; }.attribute-table tbody th small { display:block;color:var(--muted);font-size:9px;font-weight:400;margin-top:3px; }.attribute-table td.exact { background:#cfe7c8;color:#1f693b;font-weight:800; }.attribute-table td.partial { background:#f1dda0;color:#8e6e1a;font-weight:800; }.attribute-table td.higher { background:#cce3f5;color:#24658d;font-weight:800; }.attribute-table td.lower { background:#ddcff0;color:#6f4c91;font-weight:800; }.attribute-legend { color:var(--muted);font-size:11px;line-height:2.1; }.feedback { display:inline-block;width:11px;height:11px;margin:0 4px 0 12px;vertical-align:-1px;border:1px solid rgba(0,0,0,.12); }.feedback.exact { background:#cfe7c8; }.feedback.partial { background:#f1dda0; }.feedback.higher { background:#cce3f5; }.feedback.lower { background:#ddcff0; }.catalog-result { border:1px solid var(--line);background:#eee2b8;padding:17px;display:grid;grid-template-columns:auto 1fr auto;gap:8px 13px;align-items:center; }.catalog-result span,.catalog-result small,.catalog-result p { color:var(--muted);font-size:11px; }.catalog-result strong { font-size:20px; }.catalog-result p { grid-column:1 / -1;margin:5px 0 0; }.craft-board { border:1px solid var(--line);background:#f8f3e7;padding:30px;display:flex;align-items:center;gap:28px;flex-wrap:wrap; }.craft-grid { display:grid;grid-template-columns:repeat(3,72px);gap:8px; }.craft-slot,.craft-result { width:72px;height:72px;border:2px solid var(--ink);background:#e8dfc8;display:grid;place-items:center;font-size:28px;color:var(--green);box-shadow:4px 4px 0 rgba(20,47,39,.12); }.craft-result { background:#e1c361;color:var(--ink); }.craft-arrow { font-size:30px;color:var(--green); }.craft-board p { flex-basis:100%;color:var(--muted);font-size:12px;line-height:1.7; }
.attribute-candidates { position:relative;display:grid;grid-template-columns:1fr;gap:0;background:#f7fafc;border:1px solid #d9e0e7;box-shadow:0 12px 28px rgba(20,47,39,.1); }.attribute-candidate { display:flex;align-items:center;gap:12px;border:0;border-bottom:1px solid #d9e0e7;background:transparent;padding:12px 16px; }.attribute-candidate:last-child { border-bottom:0; }.attribute-candidate img { width:42px;height:42px;object-fit:contain;background:#fff;border-radius:8px; }.attribute-candidate span { display:block; }.attribute-candidate strong { color:#101820;font-size:14px;font-weight:900; }.attribute-candidate small,.attribute-candidate em { color:#64748b;font-size:11px;font-style:normal; }.attribute-candidate em { display:block;margin-top:3px;color:#263746; }.attribute-candidate:hover { background:#dff5f1;transform:none; }.attribute-selected { color:#111;background:#f2e5b2; }.attribute-selected span,.attribute-selected strong { color:#111; }.attribute-table th,.attribute-table td,.attribute-table tbody th,.attribute-table thead th { color:#111;font-weight:900;font-size:12px; }.attribute-legend { color:#111;font-weight:800;font-size:12px; }
.attribute-candidates .attribute-candidate,.attribute-candidates .attribute-candidate * { color:#101820; }
.attribute-candidates .attribute-candidate small { color:#4b5563; }
.attribute-candidates .attribute-candidate em { color:#263746; }
.catalog-feedback-wrap { overflow:auto;border:1px solid var(--line);background:#fffdf7; }
.catalog-feedback-table { width:100%;min-width:1180px;border-collapse:separate;border-spacing:0;font-size:11px; }
.catalog-feedback-table th,.catalog-feedback-table td { min-width:120px;padding:10px;border-right:8px solid #fffdf7;border-bottom:8px solid #fffdf7;text-align:center;font-weight:900;color:#111; }
.catalog-feedback-table thead th { background:#e8dfc8;height:50px; }
.catalog-feedback-table tbody th { min-width:180px;text-align:left;background:#f4eddd; }
.catalog-feedback-table tbody th img { width:44px;height:44px;object-fit:contain;float:left;margin-right:9px;image-rendering:auto; }
.catalog-feedback-table tbody th strong,.catalog-feedback-table tbody th small { display:block; }
.catalog-feedback-table tbody th small { margin-top:4px;color:#5d665f;font-weight:500; }
.catalog-feedback-table td.exact { background:#4f8658;color:#fff; }.catalog-feedback-table td.partial { background:#e4a32c;color:#182018; }
.catalog-feedback-table td.miss { background:#75817e;color:#fff; }.catalog-feedback-table td.higher { background:#bcdff2;color:#173f58; }.catalog-feedback-table td.lower { background:#d8c8ec;color:#442d5e; }
.feedback.miss { background:#75817e; }
.dark-mode .attribute-candidates .attribute-candidate,.dark-mode .attribute-candidates .attribute-candidate * { color:#f1f6f3 !important; }
.dark-mode .attribute-candidates .attribute-candidate small,.dark-mode .attribute-candidates .attribute-candidate em { color:#d4dfda !important; }
.craft-challenge { max-width:1100px;margin:0 auto; }.craft-progress { border:2px solid var(--ink);background:#152b24;color:#fff;padding:13px 18px;display:flex;justify-content:space-between;align-items:center; }.craft-progress strong { font-size:17px; }.craft-progress span { color:#f0d276; }.craft-progress small { color:#d9e4db; }
.craft-targets { margin:14px auto 0; padding:12px; border:2px solid var(--ink); background:rgba(255,255,255,.64); }.craft-targets>header { display:flex; align-items:baseline; gap:10px; margin-bottom:10px; color:var(--ink); }.craft-targets>header strong { font-size:16px; }.craft-targets>header small { color:var(--muted); font-weight:700; }.craft-targets>header b { margin-left:auto; color:#1f693b; }.craft-target-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(108px,1fr)); gap:8px; max-height:230px; overflow:auto; }.craft-target-card { min-height:91px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:7px 5px; border:1px dashed #a9a08f; background:#eee7d8; color:#27231e; text-align:center; }.craft-target-card i { width:48px; height:48px; display:grid; place-items:center; }.craft-target-card img { width:44px!important; height:44px!important; object-fit:contain; image-rendering:auto; pointer-events:none; user-select:none; -webkit-user-drag:none; }.craft-target-card strong { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }.craft-target-card small { font-size:9px; font-weight:800; }.craft-target-card.found { border-style:solid; border-color:#27633e; background:#cee6c8; color:#164c2d; }
.craft-workbench { position:relative;width:min(100%,900px);aspect-ratio:1508/898;margin:14px auto 0;background:url("assets/crafting_grid.png") center/100% 100% no-repeat;image-rendering:pixelated;filter:drop-shadow(8px 9px 0 rgba(20,47,39,.18)); }
.craft-gui-title { display:none; }
.craft-gui-body { position:absolute;inset:0; }
.craft-grid { position:absolute;left:7.75%;top:22.5%;width:39.85%;height:65.6%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:1.85% 1.75%; }
.craft-slot,.craft-result { border:0;background:transparent;display:grid;place-items:center;cursor:pointer;padding:5%;text-align:center;min-width:0;min-height:0;position:relative;box-shadow:none; }
.craft-slot { width:100%;height:100%; }.craft-slot.filled,.craft-result.ready { background:rgba(226,194,106,.13);box-shadow:none; }
.craft-slot b,.craft-result b,.craft-item b { font:900 24px var(--pixel); }.craft-slot span,.craft-result span { position:absolute;left:4px;right:4px;bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111;background:rgba(235,235,235,.88);font-size:8px;font-weight:900; }
.craft-arrow { display:none; }.craft-result { position:absolute;left:72.65%;top:34.7%;width:20.9%;height:35.6%; }.craft-result.ready { outline:0; }
.craft-pool { width:min(100%,560px);height:250px;display:grid;grid-template-columns:repeat(6,70px);grid-template-rows:repeat(3,78px);justify-content:center;align-content:center;margin:12px auto 18px;filter:drop-shadow(0 6px 4px rgba(18,29,24,.16)); }.craft-item { width:126px;height:108px;min-height:0;clip-path:polygon(25% 2%,75% 2%,100% 50%,75% 98%,25% 98%,0 50%);border:0;background:#f3eee1;cursor:grab;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative;isolation:isolate;transition:transform .14s,filter .14s; }.craft-item::before { content:"";position:absolute;inset:0;z-index:-1;background:#4e4638;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%); }.craft-item::after { content:"";position:absolute;inset:4px;z-index:-1;background:#f3eee1;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%); }.craft-item:nth-child(1){grid-column:2 / span 2;grid-row:1}.craft-item:nth-child(2){grid-column:4 / span 2;grid-row:1}.craft-item:nth-child(3){grid-column:1 / span 2;grid-row:2}.craft-item:nth-child(4){grid-column:3 / span 2;grid-row:2}.craft-item:nth-child(5){grid-column:5 / span 2;grid-row:2}.craft-item:nth-child(6){grid-column:2 / span 2;grid-row:3}.craft-item:nth-child(7){grid-column:4 / span 2;grid-row:3}.craft-item:hover { transform:translateY(-4px);filter:brightness(1.03); }.craft-item.selected { background:#efd16e;transform:translateY(-5px); }.craft-item.selected::after { background:#efd16e; }.craft-item span { max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111;font-size:10px;font-weight:900; }.craft-actions { display:flex;justify-content:center;gap:9px;flex-wrap:wrap; }.craft-discovered { margin:14px auto 0;max-height:170px;overflow:auto;display:flex;gap:7px;justify-content:center;flex-wrap:wrap;padding:8px;border:1px solid var(--line);background:rgba(255,255,255,.35); }.craft-discovered span { border:1px dashed #999;background:#ddd5c5;color:#777;padding:7px 10px;font-size:10px;font-weight:800; }.craft-discovered span.found { border-style:solid;border-color:#27633e;background:#cee6c8;color:#164c2d; }

@media (max-width: 1000px) {
  .landing { grid-template-columns:1fr; padding-top:45px; }.hero-copy { max-width:none; }.hero-art { height:490px;margin-top:10px;min-width:0; }.mystery-block { transform:translate(-50%,-52%) scale(.8); }.sun-disc { width:410px;height:410px;transform:translate(-50%,-45%); }.block-shadow { left:50%;transform:translateX(-50%);top:430px; }.clue-one { right:7%; }.clue-two { left:7%;bottom:6%; }.game-layout { grid-template-columns:1fr; }.notebook { position:static;min-height:0; }.empty-notes { min-height:180px; }.answer-list { max-height:none; }
}
@media (max-width: 650px) {
  .craft-workbench { width:100%; }
  .craft-pool { grid-template-columns:repeat(6,48px); grid-template-rows:repeat(3,64px); height:205px; }
  .craft-item { width:92px; height:80px; }
  .site-header { height:72px;padding-inline:18px; }.top-nav { gap:8px; }.top-nav button { font-size:0; }.top-nav span { font-size:17px;margin:0; }.landing { padding:35px 20px 40px; }.eyebrow { font-size:9px; }.hero-lead { font-size:14px; }.mode-buttons { grid-template-columns:1fr; }.mini-stats div { min-width:0;flex:1;margin-right:13px;padding-right:13px; }.source-note { grid-template-columns:44px 1fr; }.source-note a { grid-column:2; }.hero-art { height:420px; }.sun-disc { width:330px;height:330px; }.mystery-block { transform:translate(-50%,-52%) scale(.65); }.block-shadow { top:365px;width:230px; }.clue-card { transform:scale(.82) rotate(3deg); }.clue-one { right:-7%;top:14%; }.clue-two { left:-6%;bottom:0;transform:scale(.82) rotate(-3deg); }.game-view { padding-inline:16px; }.game-heading { align-items:flex-start;gap:15px; }.guess-cta { font-size:0;padding:14px; }.guess-cta span,.guess-cta b { font-size:18px;margin:0; }.question-grid { grid-template-columns:1fr; }.state-fields { grid-template-columns:1fr; }.panel-heading,.notebook-top { padding-inline:16px; }.dialog { padding:25px 18px; }.record-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }.record-bar-row { grid-template-columns:25px minmax(72px,95px) minmax(80px,1fr) 28px;gap:7px; }.record-bar-row>b { width:25px; }.record-bar-label { font-size:10px; }.result-actions { flex-direction:column; } footer { flex-direction:column;align-items:flex-start; }
}
@media (max-width:650px) { .surrender-zone { align-items:stretch;flex-direction:column; }.surrender-zone .surrender-button,.room-surrender-zone .room-surrender-button { width:100%;min-height:48px; }.effect-challenge>header { align-items:flex-start;flex-direction:column; }.effect-feedback-wrap { margin-inline:-10px;border-radius:14px; }.feedback-board-heading { align-items:flex-start;flex-direction:column;gap:8px; }.effect-feedback-table th,.effect-feedback-table td { padding:11px 9px; } }

/* 猜方块：按属性逐格反馈。 */
.attribute-table { min-width:1120px!important;border-collapse:separate!important;border-spacing:0 10px!important;background:#f7f9fc; }
.attribute-table thead { background:transparent!important; }
.attribute-table th,.attribute-table td { min-width:105px;border:0!important;padding:8px 6px!important;background:transparent;color:#111;vertical-align:middle; }
.attribute-table thead th { border-bottom:1px solid #dfe5ec!important;color:#52627a;font-size:11px;letter-spacing:.03em; }
.attribute-table thead th:first-child { min-width:210px;text-align:left;padding-left:16px!important; }
.attribute-table tbody th { min-width:210px;border-radius:16px;background:#fff!important;text-align:left;box-shadow:inset 0 0 0 1px #dfe5ec; }
.attribute-table tbody th img { display:block;float:left;width:54px;height:54px;margin:0 10px 0 0;border-radius:11px;object-fit:contain;background:#f4f7fb; }
.attribute-table tbody th span,.attribute-table tbody th strong,.attribute-table tbody th small,.attribute-table tbody th em { display:block;min-width:0; }
.attribute-table tbody th strong { overflow:hidden;text-overflow:ellipsis;font-size:14px;white-space:nowrap; }
.attribute-table tbody th small { overflow:hidden;max-width:115px;text-overflow:ellipsis;white-space:nowrap; }
.attribute-table tbody th em { width:max-content;margin-top:6px;padding:2px 8px;border:1px solid #dfe5ec;border-radius:10px;color:#52627a;font-size:9px;font-style:normal;font-weight:600; }
.attribute-table tbody td { padding:0 6px!important;background:transparent!important; }
.attribute-table tbody td>span { display:flex;min-height:50px;padding:8px 9px;border:1px solid #dfe5ec;border-radius:17px;align-items:center;justify-content:center;white-space:normal;line-height:1.55;font-size:12px;font-weight:900; }
.attribute-table tbody td>small { display:block;margin:-17px 9px 8px;position:relative;font-size:8px;font-weight:700; }
.attribute-table tbody td.exact>span { background:#cfe7c8;color:#174f2c;border-color:#aad1a5; }
.attribute-table tbody td.partial>span { background:#f1dda0;color:#72570e;border-color:#ddc36e; }
.attribute-table tbody td.miss>span { background:#d8dddc;color:#26332e;border-color:#b7c0bd; }
.feedback.miss { background:#d8dddc; }
.attribute-table tbody td.higher>span { padding-bottom:25px;background:#cce3f5;color:#24658d;border-color:#9ec7e4; }
.attribute-table tbody td.lower>span { padding-bottom:25px;background:#ddcff0;color:#6f4c91;border-color:#bea8dc; }
.dark-mode .attribute-table { background:#101d19; }.dark-mode .attribute-table thead th { color:#d8e2de;border-color:#40554d!important; }.dark-mode .attribute-table tbody th { background:#192d26!important;color:#f1f6f3;box-shadow:inset 0 0 0 1px #40554d; }.dark-mode .attribute-table tbody th small,.dark-mode .attribute-table tbody th em { color:#c1cec8;border-color:#40554d; }

@media (max-width:1000px) { .state-lab { min-width:0;height:540px;margin-top:35px; }.cube-stage { inset-block:56px 150px; }.state-cube { transform:rotateX(-19deg) rotateY(32deg) scale(.84); } }
@media (max-width:1100px) { .inference-layout { grid-template-columns:1fr; }.clue-sidebar { position:static;min-height:0;max-height:none; }.clue-list { display:flex;gap:8px;overflow-x:auto;padding-bottom:13px; }.clue-item { flex:0 0 235px;margin-bottom:0; }.clue-empty { padding:18px; }.clue-empty>span { display:none; }.clue-legend { margin-top:0; } }
@media (max-width:650px) { .state-lab { height:480px; }.state-cube { transform:rotateX(-19deg) rotateY(32deg) scale(.66); }.scan-ring { width:280px;height:280px; }.cube-stage { inset-block:50px 150px; }.lab-controls button { padding-inline:8px; }.dialogue-stream { padding:22px 14px;min-height:250px; }.message { max-width:94%; }.speaker { flex-basis:32px;width:32px;height:32px; }.message-body p { font-size:12px;padding:11px; }.turn-area { padding:16px 12px; }.question-form { grid-template-columns:1fr; }.question-form button { min-height:42px; }.prompt-row { align-items:flex-start;flex-direction:column; }.prompt-suggestions { width:100%;display:grid;grid-template-columns:1fr;overflow:visible; }.prompt-suggestions button { width:100%;white-space:normal;text-align:left;line-height:1.5;padding:10px 12px; } }
@media (max-width:650px) { .rank-grid,.versus-fields { grid-template-columns:1fr; } }
@media (max-width:520px) { .rank-card li { grid-template-columns:44px minmax(0,1fr);gap:5px 9px; }.rank-card li span { grid-column:2;text-align:left; } }
.craft-rule { margin:18px auto 0;text-align:center;color:#263d34;font-size:12px;font-weight:800;line-height:1.7; }
.craft-rule a { color:#1f693b;text-decoration:underline;text-underline-offset:2px; }
.craft-item img,.craft-slot img,.craft-result img { image-rendering:auto;filter:drop-shadow(0 5px 3px rgba(18,29,24,.2));pointer-events:none;user-select:none;-webkit-user-drag:none; }
.craft-item img { width:54px;height:54px; }
.craft-slot img { width:50px;height:50px; }
.craft-result img { width:68px;height:68px; }
.craft-slot img,.craft-result img { filter:none; }
@media (max-width:650px) { .craft-workbench { width:calc(100% + 20px);margin-left:-10px; }.craft-slot span,.craft-result span { display:none; }.craft-pool { width:270px;height:285px;grid-template-columns:repeat(6,45px);grid-template-rows:repeat(4,69px); }.craft-item { width:90px;height:80px; }.craft-item img { width:43px;height:43px; }.craft-item span { max-width:65px;font-size:8px; }.craft-progress { align-items:flex-start;flex-direction:column;gap:4px; } }
.craft-item,.craft-item *,.craft-slot,.craft-slot *,.craft-result,.craft-result * { user-select:none; -webkit-user-select:none; -webkit-user-drag:none; }
.craft-item { touch-action:none; }
.craft-discovered span.surrender-reveal { border:2px solid #a8443d !important; background:#f2b7a8 !important; color:#5d211d !important; box-shadow:0 0 0 3px rgba(168,68,61,.18),0 4px 0 rgba(93,33,29,.18); font-weight:950; }
.craft-target-card.surrender-reveal { border:2px solid #a8443d !important; background:#f2b7a8 !important; color:#5d211d !important; box-shadow:0 0 0 3px rgba(168,68,61,.18),0 4px 0 rgba(93,33,29,.18); font-weight:950; }

/* 全局比例优化：以内容流布局为主，历史记录按需进入抽屉。 */
.history-summary { display:flex;align-items:center;gap:12px;min-height:42px;padding:8px 12px;border:1px solid var(--line);background:rgba(255,253,246,.78);color:var(--muted);font-size:10px; }
.history-summary strong { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:10px; }
.history-summary button { margin-left:auto;border:1px solid var(--ink);background:var(--paper-2);color:var(--ink);padding:8px 11px;cursor:pointer;font-size:10px;font-weight:900;white-space:nowrap; }
.history-summary button:active { transform:translateY(2px);box-shadow:inset 0 2px 0 rgba(0,0,0,.16); }
.catalog-view>.history-summary,.attribute-view>.history-summary { margin-bottom:10px; }
.craft-mode>.attribute-heading,.craft-mode>.surrender-zone { display:none; }
.craft-mode .craft-compact-controls { display:block; }.craft-mode .craft-compact-controls[hidden] { display:none; }.craft-mode .craft-compact-controls .surrender-zone { display:flex;margin:12px 0; }
.clue-game-view.feedback-mode .clue-history-card { display:block;padding:0;border:0;background:transparent; }
.clue-game-view.feedback-mode .clue-history-card>small,.clue-game-view.feedback-mode .clue-history-card>h3,.clue-game-view.feedback-mode .clue-history-card>ol { display:none; }
.conversation-history-summary { margin:0 18px 12px; }
.candidate-toggle{border:1px solid var(--ink);background:var(--paper-2);color:var(--ink);font-weight:900;padding:8px 12px;cursor:pointer}.candidate-toggle:active{transform:translateY(2px);box-shadow:inset 0 2px 0 rgba(0,0,0,.16)}
.candidate-panel{margin:0 18px 12px;border:1px solid var(--ink);background:var(--paper-2);padding:12px}.candidate-panel header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.candidate-panel header button,.candidate-panel>button{border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-weight:800;padding:6px 10px}.candidate-panel #candidateList{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;max-height:220px;overflow:auto}.candidate-panel #candidateList span{border:1px solid var(--line);padding:7px 9px;font-weight:700;color:var(--ink)}
.clarification-row{margin-top:10px;padding:10px;border-left:4px solid var(--gold);background:var(--paper-2);color:var(--ink)}.clarification-row>div{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.clarification-row button{border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-weight:800;padding:8px 10px;cursor:pointer}.clarification-row button:active{transform:translateY(2px)}
.history-drawer-backdrop { position:fixed;inset:0;z-index:80;background:rgba(9,25,19,.52);backdrop-filter:blur(2px); }
.history-drawer-backdrop[hidden] { display:none; }
.history-drawer { position:fixed;z-index:81;inset:0 0 0 auto;width:min(460px,94vw);display:flex;flex-direction:column;background:var(--paper-2);border-left:2px solid var(--ink);box-shadow:-12px 0 30px rgba(0,0,0,.2);transform:translateX(105%);transition:transform .24s ease; }
.history-drawer.open { transform:none; }
.history-drawer>header { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 22px;border-bottom:1px solid var(--line);background:var(--green);color:#fff; }
.history-drawer>header small { font:900 9px var(--pixel);letter-spacing:1px;color:#c8e1cb; }.history-drawer>header h2 { margin:5px 0 0;font-size:22px; }.history-drawer>header button { border:0;background:transparent;color:#fff;font-size:30px;line-height:1;cursor:pointer; }
.history-drawer-content { flex:1;overflow:auto;padding:18px;background:var(--paper); }.history-drawer-content>* { max-width:none!important;max-height:none!important;position:static!important; }
.history-drawer-content .dialogue-stream { min-height:0;max-height:none;border:0;background:transparent;padding:0; }.history-drawer-content .clue-list,.history-drawer-content .answer-list { max-height:none;overflow:visible; }
.history-drawer-content .history-copy { display:grid;gap:12px; }.history-drawer-content .history-copy h3 { margin:0;color:var(--green); }
.craft-play-area { display:grid;grid-template-columns:minmax(440px,1.15fr) minmax(300px,.85fr);gap:18px;align-items:center;margin-top:14px; }
.craft-play-area .craft-workbench { width:100%;margin:0; }.craft-side { min-width:0;display:flex;flex-direction:column;align-items:center; }.craft-side .craft-rule { margin:0 0 8px; }.craft-side .craft-pool { margin:0 auto 14px; }
.craft-challenge>.craft-targets { margin-top:12px; }.craft-target-grid { max-height:190px;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:6px; }.craft-target-card { min-height:78px;padding:5px 4px; }.craft-target-card i { width:40px;height:40px; }.craft-target-card img { width:36px!important;height:36px!important; }.craft-target-card strong { font-size:10px; }.craft-target-card small { font-size:8px; }

@media (min-width:901px) and (max-height:820px) {
  .catalog-view,.attribute-view,.clue-game-view,.game-view { padding-top:18px;padding-bottom:30px; }
  .game-heading { padding-block:16px 18px; }.attribute-heading { margin:17px 0 14px; }.attribute-heading h2 { font-size:clamp(26px,4vw,42px); }
  .surrender-zone { margin-bottom:12px;padding:10px 14px; }.surrender-zone.compact { margin:10px 0 2px; }
  .inference-layout { gap:14px; }.clue-sidebar { max-height:calc(100dvh - 120px);min-height:320px; }.dialogue-stream { min-height:180px;max-height:calc(100dvh - 430px);padding-block:18px;gap:14px; }
  .clue-game-card,.clue-history-card { padding:16px; }.mosaic-stage canvas { height:clamp(250px,calc(100dvh - 410px),330px); }
  .craft-play-area { grid-template-columns:minmax(360px,470px) minmax(300px,1fr);justify-content:center;gap:12px; }.craft-target-grid { max-height:88px; }.craft-workbench { min-height:0; }.craft-side .craft-pool { transform:scale(.78);transform-origin:top center;margin-bottom:-48px; }.craft-actions { margin-top:-8px; }
}
@media (min-width:901px) and (min-height:821px) { .dialogue-stream { max-height:430px; }.craft-target-grid { max-height:190px; } }
@media (max-width:900px) { .craft-play-area { grid-template-columns:1fr; }.craft-side .craft-pool { margin-inline:auto; }.history-drawer { width:min(520px,96vw); } }
@media (max-width:650px) {
  .history-summary { align-items:flex-start;flex-wrap:wrap;gap:6px; }.history-summary strong { order:3;flex-basis:100%; }.history-summary button { margin-left:auto; }
  .history-drawer { inset:auto 0 0;width:100%;height:min(78dvh,620px);border-left:0;border-top:2px solid var(--ink);transform:translateY(105%); }.history-drawer.open { transform:none; }
  .craft-play-area { gap:8px; }.craft-play-area .craft-workbench { width:calc(100% + 20px);margin-left:-10px;min-height:0; }.craft-side .craft-pool { transform:none;margin-bottom:14px; }.craft-target-grid { max-height:170px;grid-template-columns:repeat(4,minmax(0,1fr)); }.craft-target-card { min-height:72px; }.craft-target-card i { width:34px;height:34px; }.craft-target-card img { width:30px!important;height:30px!important; }.craft-target-card strong { font-size:9px; }
  .mosaic-stage canvas { height:clamp(260px,calc(100dvh - 460px),340px); }
}

/* 主区只保留最近反馈；抽屉通过 .history-drawer-content 恢复完整记录。 */
.catalog-board .catalog-feedback-table tbody tr:not(:first-child),
.attribute-table tbody tr:not(:first-child),
.effect-feedback-table tbody tr:not(:first-child),
.clue-history-card ol li:not(:first-child),
.room-clues-card ol li:not(:first-child) { display:none; }
.history-drawer-content .catalog-feedback-table tbody tr,
.history-drawer-content .attribute-table tbody tr,
.history-drawer-content .effect-feedback-table tbody tr,
.history-drawer-content .clue-history-card ol li,
.history-drawer-content .room-clues-card ol li { display:revert; }
.conversation>.dialogue-stream>.message:not(:nth-last-child(-n+2)),
.room-battle>.room-dialogue>.room-message:not(:nth-last-child(-n+2)) { display:none; }
.history-drawer-content .dialogue-stream>.message,
.history-drawer-content .room-dialogue>.room-message { display:flex; }
.history-drawer-content .room-dialogue>.room-message { display:grid; }
.craft-actions button { min-height:42px;padding:10px 16px; }
