:root {
  --ink:#47352d;
  --ink-soft:#6e594c;
  --cream:#f7eddc;
  --paper:#fff7e9;
  --paper-2:#ead8b8;
  --wood:#74513b;
  --wood-dark:#4d3428;
  --sage:#6f8290;
  --sage-dark:#475f70;
  --blue:#6e7fa0;
  --rose:#c78770;
  --gold:#d7aa62;
  --shadow:0 18px 50px rgba(42,26,18,.28);
  --font-scale:1;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:"Noto Serif SC","Songti SC","Microsoft YaHei",serif;color:var(--ink);background:#2c2521}
body{font-size:calc(18px * var(--font-scale));overflow-x:hidden}
button,input,select{font:inherit}
button{color:inherit}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffe39a;outline-offset:3px}
.is-hidden{display:none!important}

/* Cover */
.cover-screen{position:relative;min-height:100vh;display:grid;grid-template-columns:minmax(420px,44%) 1fr;background:url('assets/cover-bg.webp') center/cover fixed;overflow:hidden}
.cover-screen:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(40,28,21,.1),rgba(40,28,21,.35));pointer-events:none}
.cover-paper{position:absolute;left:4vw;top:4vh;bottom:4vh;width:min(540px,42vw);background:linear-gradient(145deg,rgba(255,247,229,.95),rgba(232,214,180,.93));border:2px solid rgba(106,75,49,.45);border-radius:36px 56px 42px 28px;box-shadow:var(--shadow);transform:rotate(-.3deg);z-index:1}
.cover-paper:before{content:"";position:absolute;inset:12px;border:1px dashed rgba(105,75,50,.35);border-radius:28px 48px 34px 22px}
.cover-menu-panel{z-index:2;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7vh 6vw 5vh}
.cover-title-wrap{text-align:center;margin-bottom:2.6vh}
.moon-mark{font-size:3rem;color:var(--gold);line-height:.8;text-shadow:0 3px 0 #fff5d2}
.cover-title-wrap h1{font-size:clamp(2.2rem,4.4vw,4rem);margin:.15em 0 .1em;letter-spacing:.08em;color:#5a3525;text-shadow:0 2px 0 #fff9e9}
.cover-title-wrap p{margin:0;color:#7b6757;letter-spacing:.28em;font-size:clamp(.85rem,1.2vw,1.05rem)}
.main-menu{display:flex;flex-direction:column;gap:12px;width:min(360px,82%)}
.wood-btn{position:relative;min-height:54px;border:2px solid #76523b;border-radius:14px;background:linear-gradient(#f8edd8,#e9d1a8);box-shadow:0 5px 0 #6b4935,0 9px 18px rgba(59,38,26,.18);cursor:pointer;font-weight:700;letter-spacing:.12em;transition:.2s transform,.2s filter}
.wood-btn:before,.wood-btn:after{content:"▦";position:absolute;top:50%;transform:translateY(-50%);font-size:.78rem;color:#9c8068}.wood-btn:before{left:16px}.wood-btn:after{right:16px}
.wood-btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.03)}
.wood-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 #6b4935}
.wood-btn.primary{background:linear-gradient(#fff1ca,#e3bf78)}
.wood-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:0 3px 0 #76665a}
.menu-note{font-size:.76rem;color:#87776b;margin:16px 0 0}
.cover-footer{margin-top:3vh;font-size:.78rem;letter-spacing:.12em;color:#8a7562;text-align:center}
.cover-art-panel{position:relative;z-index:1;overflow:hidden;min-height:100vh}
.cover-art-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.92) brightness(.94)}
.cover-art-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#eadabd 0 14%,rgba(234,218,189,.72) 24%,rgba(234,218,189,.18) 38%,transparent 48%);z-index:1}
.rain-layer{position:absolute;inset:-20%;z-index:2;pointer-events:none;background-image:repeating-linear-gradient(105deg,transparent 0 34px,rgba(220,238,245,.25) 35px,transparent 37px);animation:rainSlide 4.6s linear infinite;opacity:.46}
@keyframes rainSlide{to{transform:translate(-80px,120px)}}

/* Game shell */
.game-screen{min-height:100vh;background:#2e2824 url('assets/cover-bg.webp') center/cover fixed;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden}
.game-header{display:flex;align-items:center;gap:10px;padding:10px 16px;background:rgba(67,49,39,.94);color:#fff5df;border-bottom:1px solid rgba(255,230,190,.25);box-shadow:0 6px 18px rgba(0,0,0,.22);z-index:20}
.icon-btn{border:1px solid rgba(255,238,205,.32);background:rgba(255,255,255,.08);color:#fff5df;border-radius:10px;min-width:42px;height:42px;cursor:pointer;transition:.2s}
.icon-btn:hover{background:rgba(255,255,255,.16)}
.text-btn{padding:0 13px;white-space:nowrap}
.chapter-heading{display:flex;flex-direction:column;line-height:1.15;min-width:220px}
.chapter-heading span{font-size:.7rem;color:#d8c4a8;letter-spacing:.15em}.chapter-heading strong{font-size:1.05rem}
.header-progress{margin-left:auto;display:flex;gap:14px;align-items:center;font-size:.74rem;color:#e6d5bd}
.save-indicator{padding:5px 9px;border-radius:99px;background:rgba(124,151,112,.28)}
.game-layout{display:grid;grid-template-columns:minmax(0,68%) minmax(340px,32%);min-height:0;height:calc(100vh - 170px);padding:14px;gap:14px}
.scene-panel{position:relative;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);border:2px solid rgba(244,220,180,.5);background:#342a24;min-height:420px}
.scene-bg{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.8) brightness(.68);transition:filter 1s ease,transform 1s ease}
.scene-panel:hover .scene-bg{transform:scale(1.01)}
.scene-tint{position:absolute;inset:0;background:linear-gradient(180deg,rgba(57,74,87,.18),rgba(84,57,36,.16));pointer-events:none;transition:.8s}
.scene-lights i{position:absolute;width:130px;height:130px;border-radius:50%;background:rgba(255,215,135,.16);filter:blur(18px);animation:breathe 3s ease-in-out infinite}
.scene-lights i:nth-child(1){left:8%;top:6%}.scene-lights i:nth-child(2){right:15%;top:12%;animation-delay:.7s}.scene-lights i:nth-child(3){right:27%;bottom:12%;animation-delay:1.4s}
@keyframes breathe{50%{transform:scale(1.18);opacity:.65}}
.guest-card{position:absolute;left:24px;bottom:24px;display:flex;align-items:center;gap:12px;padding:10px 16px 10px 10px;background:rgba(255,247,230,.9);border:1px solid rgba(107,78,56,.4);border-radius:18px;box-shadow:0 8px 20px rgba(0,0,0,.18);backdrop-filter:blur(5px)}
.guest-card img{width:78px;height:78px;object-fit:cover;border-radius:50%;background:#f2e7d5}.guest-card div{display:flex;flex-direction:column}.guest-card small{font-size:.68rem;color:#8b7868}.guest-card strong{font-size:1.06rem}
.environment-note{position:absolute;right:18px;top:18px;max-width:320px;background:rgba(42,35,31,.68);color:#fff0d9;padding:9px 13px;border-radius:12px;font-size:.73rem;backdrop-filter:blur(5px)}
.memory-hotspot{position:absolute;right:8%;bottom:18%;border:none;background:rgba(255,245,204,.88);border-radius:50%;width:86px;height:86px;box-shadow:0 0 0 8px rgba(255,220,140,.16),0 8px 24px rgba(0,0,0,.25);cursor:pointer;animation:floaty 2.6s ease-in-out infinite;display:flex;flex-direction:column;align-items:center;justify-content:center}
.memory-hotspot span{font-size:1.2rem;color:#b38232}.memory-hotspot b{font-size:.58rem}.memory-hotspot.collected{opacity:.45;animation:none}
@keyframes floaty{50%{transform:translateY(-8px)}}
.task-panel{background:linear-gradient(165deg,rgba(255,248,235,.98),rgba(231,214,183,.98));border-radius:18px;padding:18px;box-shadow:var(--shadow);overflow:auto;border:2px solid rgba(103,74,51,.4);min-height:0}
.task-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px dashed rgba(102,74,54,.35);padding-bottom:12px}
.task-top small{font-size:.66rem;color:#927d6c;letter-spacing:.12em}.task-top h2{margin:.15em 0 0;font-size:1.22rem}
.hint-main-btn{border:none;background:linear-gradient(#dce7d3,#b7caa9);border-radius:12px;padding:10px 13px;cursor:pointer;font-weight:700;box-shadow:0 4px 0 #7d9671;font-size:.78rem;white-space:nowrap}
.objective-desc{font-size:.82rem;line-height:1.75;color:#66564b;margin:12px 0}
.puzzle-root{min-height:280px}
.task-actions{display:flex;gap:10px;margin-top:16px}
.action-btn{flex:1;border-radius:12px;padding:11px 14px;cursor:pointer;border:1px solid rgba(86,62,45,.35);font-weight:700}.action-btn.primary{color:white;background:linear-gradient(135deg,#718a68,#536d53);box-shadow:0 4px 0 #425642}.action-btn.secondary{background:#eee3d1}
.chapter-meter{margin-top:18px;font-size:.68rem;color:#78685c}.chapter-meter>div:first-child{display:flex;justify-content:space-between}.meter{height:8px;background:#ccb994;border-radius:99px;overflow:hidden;margin-top:6px}.meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,#879b78,#d4ad5e);transition:.5s}
.dialogue-panel{min-height:104px;background:rgba(54,41,34,.96);color:#fff1d9;border-top:1px solid rgba(255,225,180,.25);display:grid;grid-template-columns:76px 1fr auto;gap:14px;align-items:center;padding:10px 18px;z-index:10}
.dialogue-panel img{width:70px;height:70px;border-radius:50%;object-fit:cover;background:#efe2cf}.dialogue-speaker{font-weight:800;color:#ffe3a3;font-size:.82rem}.dialogue-copy p{margin:.2em 0 0;line-height:1.72;font-size:.88rem}.dialogue-next{border:none;background:#e7c77e;color:#4f392a;border-radius:12px;padding:12px 18px;cursor:pointer;font-weight:800}

/* puzzle components */
.puzzle-card{background:rgba(255,255,255,.48);border:1px solid rgba(112,83,60,.25);border-radius:16px;padding:14px;margin-top:10px}
.puzzle-caption{font-size:.74rem;color:#7d6a5a;margin:0 0 10px;line-height:1.6}
.sequence-row,.option-grid{display:flex;flex-wrap:wrap;gap:10px}
.sequence-btn,.choice-chip,.ingredient-card,.evidence-card,.fold-btn,.rhythm-btn{border:2px solid rgba(108,80,58,.28);background:#fff8e8;border-radius:14px;padding:12px 14px;cursor:pointer;transition:.2s;min-height:48px}
.sequence-btn:hover,.choice-chip:hover,.ingredient-card:hover,.evidence-card:hover,.fold-btn:hover,.rhythm-btn:hover{transform:translateY(-2px);border-color:#9b815e}
.sequence-btn.selected,.choice-chip.selected,.ingredient-card.selected{background:#dce7d4;border-color:#6e8a66}
.sequence-btn.correct{background:#cee2c5;border-color:#56764f}.sequence-btn.wrong{animation:shake .3s;background:#efd0c8}
@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.progress-dots{display:flex;gap:7px;margin-top:12px}.progress-dots i{width:13px;height:13px;border-radius:50%;background:#cbbba6}.progress-dots i.done{background:#6e8c63}
.piece-bank,.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.paper-piece,.paper-slot{position:relative;min-height:92px;border:2px dashed #b19775;border-radius:12px;background:#f5e4c6;cursor:pointer;overflow:hidden}.paper-piece.selected{box-shadow:0 0 0 4px rgba(114,142,105,.3);border-style:solid}.paper-piece .art,.paper-slot .art{position:absolute;inset:8px;border-radius:7px;background:linear-gradient(135deg,#eab27e 0 48%,#f6dec1 49% 100%);transform:rotate(var(--rot,0deg));transition:.2s}.paper-piece .mark,.paper-slot .mark{position:absolute;left:10px;top:8px;font-size:.7rem;font-weight:700}.paper-piece button{position:absolute;right:6px;bottom:6px;border:0;border-radius:8px;background:#775845;color:white;cursor:pointer}.paper-slot{background:rgba(255,255,255,.36)}
.fold-visual{height:140px;border-radius:14px;background:linear-gradient(135deg,#f9edcd,#e3c897);border:1px solid #aa8b65;display:grid;place-items:center;position:relative;overflow:hidden}.fold-paper{width:200px;height:112px;background:#fff7df;border:1px solid #9d8260;box-shadow:0 8px 16px rgba(74,50,32,.15);transition:.4s;display:grid;place-items:center;color:#866d55}.fold-paper.fold-v{transform:scaleX(.5)}.fold-paper.fold-h{transform:scaleX(.5) scaleY(.5)}.fold-paper.opened{transform:none;background:#fffbe9}.fold-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.rain-cups{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.rain-cup{height:100px;border-radius:10px 10px 30px 30px;background:linear-gradient(#e9f0f1,#b7c8ce);border:2px solid #728894;position:relative}.rain-cup:before{content:"";position:absolute;left:50%;top:-20px;width:7px;height:22px;border-radius:50%;background:#91b8c6;animation:drop 1.3s infinite}.rain-cup.long:before{animation-duration:2.5s;height:36px}.rain-cup:nth-child(2):before{animation-delay:.35s}.rain-cup:nth-child(3):before{animation-delay:.7s}.rain-cup:nth-child(4):before{animation-delay:1s}@keyframes drop{to{transform:translateY(95px);opacity:.2}}
.rhythm-controls{display:flex;gap:10px}.rhythm-btn{flex:1}.rhythm-readout{margin-top:10px;min-height:30px;padding:7px;border-radius:9px;background:#e9ddc8;text-align:center;font-size:.78rem}
.slider-row{display:grid;grid-template-columns:120px 1fr 54px;gap:10px;align-items:center;margin:12px 0}.slider-row label{font-size:.74rem}.slider-row input{width:100%}.wave-box{height:90px;background:#314249;border-radius:12px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.wave-line{width:92%;height:40px;background:repeating-linear-gradient(90deg,transparent 0 6px,#db8d7e 7px 9px,transparent 10px 14px);filter:blur(.3px);transition:.3s}.wave-box.good .wave-line{background:repeating-linear-gradient(90deg,transparent 0 6px,#9fd59b 7px 9px,transparent 10px 14px);height:24px}
.timeline-list{display:flex;flex-direction:column;gap:8px}.timeline-item{display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:center;padding:10px;border-radius:12px;background:#fff8e9;border:1px solid #c7ad88}.timeline-item button{border:0;background:#e4d4b8;border-radius:8px;cursor:pointer}
.attribute-bars{display:grid;gap:7px;margin:10px 0}.attribute-bar{display:grid;grid-template-columns:50px 1fr 32px;gap:8px;align-items:center;font-size:.7rem}.attribute-bar i{height:9px;background:#d8c8ae;border-radius:99px;overflow:hidden}.attribute-bar i b{display:block;height:100%;width:0;background:#7f9a74;transition:.3s}.ingredient-card{display:flex;flex-direction:column;gap:4px;min-width:120px}.ingredient-card b{font-size:.8rem}.ingredient-card small{font-size:.6rem;color:#79695b}
.assignment-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.assignment-column{background:#f8edd8;border-radius:14px;padding:10px;border:1px solid #c8ad85}.assignment-column h4{margin:0 0 8px;text-align:center}.task-token{padding:9px;border:1px solid #b79d7a;border-radius:9px;background:#fff9ea;margin:6px 0;cursor:pointer;font-size:.72rem}.task-token.assigned{background:#dce8d5}
.evidence-list{display:grid;gap:9px}.evidence-row{display:grid;grid-template-columns:1fr 150px;gap:10px;align-items:center;padding:10px;border-radius:12px;background:#fff8e9;border:1px solid #c9ad84}.evidence-visual{display:flex;gap:8px;align-items:center}.seal{width:34px;height:34px;border-radius:50%;background:#9a5547;border:4px double #f0c7b6}.edge{width:58px;height:8px;background:repeating-linear-gradient(90deg,#92775d 0 5px,transparent 5px 9px)}.watermark{font-size:.62rem;color:#9e8b78}.evidence-row select{width:100%;padding:8px;border-radius:9px;border:1px solid #a98d69;background:#fff}
.photo-stage{height:260px;border-radius:14px;background:#53606a;position:relative;overflow:hidden}.photo-layer{position:absolute;inset:28px;background-size:cover;border:2px solid rgba(255,255,255,.7);mix-blend-mode:screen}.photo-base{background:linear-gradient(90deg,transparent 49%,#ead09d 50% 52%,transparent 53%),linear-gradient(0deg,transparent 49%,#ead09d 50% 52%,transparent 53%);opacity:.75}.photo-overlay{background:radial-gradient(circle at 30% 55%,#f0c3b2 0 9%,transparent 10%),linear-gradient(90deg,transparent 61%,#cfdbea 62% 65%,transparent 66%);transform:translateX(0);opacity:.4}.photo-guides{display:grid;gap:8px;margin-top:10px}
.moon-coasters{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.coaster{aspect-ratio:1;border-radius:50%;border:2px solid #9d7f57;background:#f7dfa4;display:grid;place-items:center;cursor:pointer;font-size:1.4rem;box-shadow:inset 0 0 0 7px rgba(255,255,255,.32)}
.tea-materials{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tea-card{padding:12px 8px;border:2px solid #c6aa80;background:#fff8e9;border-radius:13px;text-align:center;cursor:pointer}.tea-card.selected{background:#dce8d4;border-color:#68865f}.tea-card span{display:block;font-size:1.4rem}.tea-card b{font-size:.7rem}
.reveal-card{background:linear-gradient(145deg,#fff8e7,#e8d8b8);border:1px solid #b89a73;border-radius:16px;padding:16px;line-height:1.8}.reveal-card h3{margin:0 0 8px}.reveal-card blockquote{margin:10px 0;padding:10px 14px;border-left:4px solid #b68855;background:rgba(255,255,255,.45);font-size:.8rem}.chapter-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chapter-choice{border:2px solid #b49a77;background:#fff7e6;border-radius:15px;padding:14px;text-align:left;cursor:pointer}.chapter-choice:hover{border-color:#72876a;transform:translateY(-2px)}.chapter-choice b{display:block;margin-bottom:6px}.chapter-choice small{font-size:.68rem;color:#756457;line-height:1.55}

/* modals */
.modal-backdrop{position:fixed;inset:0;background:rgba(25,18,15,.68);backdrop-filter:blur(5px);z-index:9000;display:flex;align-items:center;justify-content:center;padding:24px}
.modal-card{position:relative;width:min(820px,94vw);max-height:90vh;overflow:auto;background:linear-gradient(145deg,#fff8e8,#e9d9ba);border:2px solid #8f6b4d;border-radius:22px;box-shadow:0 25px 70px rgba(0,0,0,.4)}
.modal-close{position:sticky;float:right;top:10px;right:10px;z-index:2;border:0;background:#604737;color:white;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.2rem}.modal-content{padding:28px}.modal-content h2{margin-top:0}.modal-content p,.modal-content li{line-height:1.8}.modal-content img.gallery{width:100%;border-radius:14px;border:1px solid #b99b73}.setting-row{display:grid;grid-template-columns:180px 1fr;gap:14px;align-items:center;padding:12px 0;border-bottom:1px dashed rgba(104,75,53,.25)}.setting-row select,.setting-row input[type=range]{width:100%;padding:8px}.toggle{display:flex;align-items:center;gap:8px}.hint-levels{display:grid;gap:10px}.hint-level{border:1px solid #baa17e;border-radius:14px;padding:12px;background:#fff9eb}.hint-level.locked{opacity:.45}.hint-level h4{margin:0 0 6px}.hint-level button{margin-top:8px;border:0;border-radius:9px;padding:8px 12px;background:#718a68;color:white;cursor:pointer}.hint-log{max-height:55vh;overflow:auto}.journal-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.journal-tabs button{border:1px solid #a98d69;background:#fff7e7;border-radius:99px;padding:8px 12px;cursor:pointer}.journal-entry{padding:12px;border-bottom:1px dashed #c4aa84}.journal-entry h4{margin:0 0 5px}.journal-entry p{font-size:.78rem;margin:0}.ending-art{width:100%;border-radius:16px;border:2px solid #8e6c4f}.ending-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.ending-actions button{padding:10px 14px;border:0;border-radius:10px;background:#6c8463;color:white;cursor:pointer}.credits{font-size:.78rem;color:#716154}

/* accessibility / variants */
body.high-contrast{--ink:#211711;--cream:#fff;--paper:#fff;--paper-2:#d8c18c}
body.high-contrast .task-panel,body.high-contrast .modal-card{background:#fff;border-color:#211711}
body.reduced-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
body.drag-assist .action-btn.secondary{outline:2px dashed #6e865f}

@media(max-width:1100px){
  .game-layout{grid-template-columns:minmax(0,60%) minmax(360px,40%)}
  .text-btn{font-size:.65rem;padding:0 9px}.chapter-heading{min-width:160px}
}
@media(max-width:900px){
  .cover-screen{grid-template-columns:1fr}.cover-art-panel{position:absolute;inset:0}.cover-art-panel:after{content:"";position:absolute;inset:0;background:rgba(42,30,23,.43)}.cover-paper{width:min(560px,92vw);left:50%;transform:translateX(-50%);top:4vh;bottom:4vh}.cover-menu-panel{padding:6vh 8vw}.cover-title-wrap h1{font-size:clamp(2.1rem,9vw,3.3rem)}
  .game-screen{overflow:auto}.game-header{position:sticky;top:0}.game-layout{height:auto;grid-template-columns:1fr;grid-template-rows:minmax(420px,55vh) auto}.task-panel{max-height:none}.dialogue-panel{position:sticky;bottom:0}.header-progress{display:none}.chapter-heading{min-width:0;flex:1}.text-btn{display:none}
}
@media(max-width:620px){
  body{font-size:calc(16px * var(--font-scale))}.game-header{padding:8px}.chapter-heading strong{font-size:.86rem}.chapter-heading span{font-size:.58rem}.game-layout{padding:8px;gap:8px;grid-template-rows:390px auto}.scene-panel{min-height:390px}.guest-card{left:12px;bottom:12px}.guest-card img{width:58px;height:58px}.environment-note{max-width:190px}.memory-hotspot{width:68px;height:68px}.dialogue-panel{grid-template-columns:52px 1fr;gap:9px;padding:8px}.dialogue-panel img{width:48px;height:48px}.dialogue-next{grid-column:2;justify-self:end;padding:8px 12px}.chapter-choice-grid{grid-template-columns:1fr}.slider-row{grid-template-columns:92px 1fr 44px}.assignment-grid{grid-template-columns:1fr}.evidence-row{grid-template-columns:1fr}.tea-materials{grid-template-columns:repeat(2,1fr)}.setting-row{grid-template-columns:1fr}.modal-content{padding:20px 16px}.cover-footer{display:none}
}
/* Mask the tiny remnant of the concept-title crop inside gameplay and keep hotspots above it. */
.scene-panel:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(34,27,23,.76) 0,rgba(34,27,23,.35) 8%,transparent 22%)}
.guest-card,.environment-note,.memory-hotspot{z-index:3}
.scene-tint,.scene-lights{z-index:0}

/* 暮光照相馆主题覆盖 */
.cover-paper{background:linear-gradient(145deg,rgba(241,224,192,.96),rgba(190,152,107,.91));border-color:rgba(65,47,38,.72)}
.cover-title-wrap h1{font-size:clamp(2rem,4vw,3.5rem);letter-spacing:.04em;color:#3d2c28}.cover-title-wrap p{color:#5f5365}
.cover-art-panel:before{background:linear-gradient(90deg,#d7b98c 0 10%,rgba(164,125,90,.55) 24%,transparent 48%)}
.rain-layer{background-image:repeating-linear-gradient(100deg,transparent 0 54px,rgba(244,203,124,.12) 55px,transparent 58px);animation:lightDust 8s linear infinite}
@keyframes lightDust{to{transform:translate(70px,-35px)}}
.game-header{background:rgba(38,34,42,.95)}
.task-panel{background:linear-gradient(165deg,rgba(248,235,209,.98),rgba(204,180,145,.98))}
.scene-bg{filter:saturate(.86) brightness(.72)}
.scene-panel:after{background:linear-gradient(90deg,rgba(27,25,33,.35),transparent 34%,rgba(87,50,34,.12))}
.scene-lights i{background:rgba(255,187,92,.20);filter:blur(22px)}
.focus-preview{height:190px;border-radius:14px;background:url('assets/puzzles/exposure-preview.webp') center/cover;position:relative;overflow:hidden;box-shadow:inset 0 0 55px rgba(10,14,24,.6)}
.focus-object{position:absolute;padding:6px 10px;border-radius:99px;background:rgba(249,229,190,.88);font-size:.65rem;box-shadow:0 5px 15px rgba(0,0,0,.25)}
.focus-object.far{left:10%;top:20%;filter:blur(1.8px)}.focus-object.mid{left:44%;top:48%;filter:blur(.8px)}.focus-object.near{right:8%;bottom:13%}
.film-piece,.film-slot{background:#2a221e!important;border-color:#c18b42!important}.film-piece .art,.film-slot .art{background:linear-gradient(90deg,transparent 0 8%,#d8a75e 9% 12%,transparent 13% 87%,#d8a75e 88% 91%,transparent 92%),linear-gradient(135deg,#433326,#120f0e);box-shadow:inset 0 0 0 7px #1f1815}
.lightbox-grid{background:#e9d9a8;padding:10px;border-radius:14px;box-shadow:inset 0 0 25px rgba(255,245,190,.8)}
.edge-photo{height:180px;border-radius:12px;background:linear-gradient(115deg,#2b2524,#6a5543);display:grid;place-items:center;color:#e7cf9f;border:8px solid #342925;position:relative;overflow:hidden}.edge-photo:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 20px,rgba(255,255,255,.05) 21px 22px)}.edge-photo.side-lit{box-shadow:inset -70px 0 80px rgba(245,180,92,.35)}.edge-photo.magnified{transform:scale(1.015)}.edge-photo.restored{background:linear-gradient(115deg,#4c3b30,#b48253);color:#fff0c9;font-weight:800}
.contact-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#211b18;padding:16px;border-radius:12px}.contact-strip i{height:100px;background:linear-gradient(#c17845,#282321 65%);border:6px solid #171313;box-shadow:inset 0 0 0 3px #d9aa62}.contact-strip i.long{background:linear-gradient(#e0a65e,#2b2625 45%)}
.exposure-preview{height:220px;border-radius:14px;background-image:linear-gradient(rgba(10,12,22,calc((100 - var(--ex))/120)),rgba(10,12,22,calc((100 - var(--sh))/140))),url('assets/puzzles/exposure-preview.webp');background-size:cover;background-position:center;filter:contrast(calc(.55 + var(--ct)/100));transition:.2s}.exposure-preview.good{box-shadow:0 0 0 4px rgba(132,177,140,.65),0 0 28px rgba(240,187,94,.42)}
.film-reel{width:42px;height:32px;border-radius:5px;background:repeating-linear-gradient(90deg,#211914 0 5px,#d79e53 6px 8px,#211914 9px 14px);border:2px solid #4b382e}
.real-photo .photo-base{background:url('assets/puzzles/overlay-base.webp') center/cover;opacity:.78;mix-blend-mode:normal}.real-photo .photo-overlay{background:url('assets/puzzles/overlay-top.webp') center/cover;mix-blend-mode:screen}.confirm-hand{position:absolute;right:18%;bottom:18%;padding:8px;border-radius:50%;background:rgba(145,57,47,.72);color:#f8d8c6;font-size:.58rem;opacity:0;transition:.3s}.real-photo.good .confirm-hand{opacity:1}
.light-nodes .coaster{border-radius:18px;background:#293447;color:#f1d091;display:flex;flex-direction:column}.light-nodes .coaster small{font-size:.55rem;color:#f4e0bc}.light-path-line{height:8px;margin:15px 4%;border-radius:99px;background:linear-gradient(90deg,#f6cc72,#8dc5da,#e8a45f);box-shadow:0 0 18px #f2bd63}
.develop-trays{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tray{height:80px;border:7px solid #4c3a31;border-radius:10px;background:#6a4d48;color:#ead5b2;display:grid;place-items:center}.tray.active{background:#9c765e;box-shadow:inset 0 0 28px rgba(255,214,140,.5)}.final-print{margin:14px auto;width:75%;height:180px;background:#eee5cf;border:10px solid #f5ead1;display:grid;place-items:center;color:#9a8d79;transition:.5s}.final-print.revealed{background:url('assets/puzzles/exposure-preview.webp') center/cover;color:white;text-shadow:0 2px 8px #000;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.composition-items .tea-card img{width:58px;height:58px;display:block;margin:0 auto 6px}.composition-items .tea-card b{display:block}
.memory-hotspot{background:rgba(224,190,112,.9)}
@media(max-width:620px){.focus-preview,.exposure-preview{height:160px}.contact-strip i{height:70px}.develop-trays{grid-template-columns:1fr}.final-print{width:100%;height:145px}}
