/* Production edition: ink / warm archive paper / restrained teal. */
:root{--ink:#193c46;--paper:#f3e8cc;--teal:#397b78;--gold:#d49c42;--clue:#cb5b47}
#game:after{content:"";position:absolute;inset:12px;border:1px solid #f3e8cc45;pointer-events:none;z-index:9;clip-path:polygon(0 0,45px 0,45px 1px,calc(100% - 45px) 1px,calc(100% - 45px) 0,100% 0,100% 45px,calc(100% - 1px) 45px,calc(100% - 1px) calc(100% - 45px),100% calc(100% - 45px),100% 100%,calc(100% - 45px) 100%,calc(100% - 45px) calc(100% - 1px),45px calc(100% - 1px),45px 100%,0 100%)}
header{height:84px}header nav{gap:16px}header nav button{min-width:44px;justify-content:center}header svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.view{bottom:240px}.environment .shade{background:linear-gradient(180deg,#0e30387a,transparent 29%,transparent 47%,#143d48b5 83%,#143d48ed)}
.yard-title>p{letter-spacing:.2em}.yard-title>span{padding:7px 11px;background:#f3e8cceb}
.chen-photo{background:#e8ddbf url('./assets/chen-portrait-v4.png') center 22%/cover no-repeat}
.mini-badge{width:122px;height:178px;padding:15px 10px 9px;gap:5px;border:2px solid var(--ink);background:linear-gradient(108deg,#fff7e5,#eee0bf);box-shadow:inset 0 0 0 5px #d7c89f,2px 2px 0 #f8efda;border-radius:5px}
.mini-badge .chen-photo{display:block;width:60px;height:69px;margin:4px 0 0;border:1px solid #193c4666;border-radius:0;background:#e8ddbf url('./assets/chen-portrait-v4.png') center 22%/cover no-repeat}
.mini-badge strong{font:22px Georgia,serif;margin:1px 0;letter-spacing:.08em}.mini-badge .badge-person-name{font:11px 'SimSun',serif;letter-spacing:.13em}
.badge-clip{position:absolute;top:-14px;left:calc(50% - 13px);width:26px;height:23px;background:linear-gradient(90deg,#9ca8a1,#e8e9d4 45%,#84968f);border:1px solid #193c4680;border-radius:3px;box-shadow:inset 0 0 0 3px #ffffff44;z-index:5}
.lanyard{bottom:160px;width:52px;height:110px;border-width:9px;border-color:#397b78;border-radius:30px;box-shadow:inset 1px 0 #d6d3aa,1px 0 #193c46}
.badge-hotspot{bottom:6%;left:29%}.desk-hotspot{bottom:13%;right:12%}
.folder-object{isolation:isolate;width:236px;height:157px;background:linear-gradient(130deg,#d2b17a,#c09a5e);border:1.5px solid #655533;box-shadow:3px 4px 0 #e7d1a7,4px 5px 0 #665d42;padding-left:23px;border-radius:2px}
.folder-object:before{background:#d0ad74;border-width:1.5px;width:82px;top:-19px}.folder-object b{font-size:24px;letter-spacing:.1em}.folder-object small{font-size:11px;letter-spacing:.2em}
.folder-pages{position:absolute;z-index:-1;inset:-8px 8px auto;height:24px;background:repeating-linear-gradient(0deg,#f6edda 0 7px,#acb4a133 7px 8px);border:1px solid #9e9c7b;transform:rotate(-3deg)}
.folder-cord{position:absolute;top:0;bottom:0;left:25px;width:1px;background:#6b6551;box-shadow:3px 0 #e7d3a5}.folder-cord:before,.folder-cord:after{content:"";position:absolute;left:-7px;top:44%;width:16px;height:16px;border-radius:50%;background:#9e7145;border:1px solid #6b5238;box-shadow:inset 0 0 0 4px #b78a55}.folder-cord:after{left:-5px;top:51%;width:12px;height:25px;border-radius:50%;background:none;box-shadow:none;transform:rotate(17deg)}
.folder-mark{position:absolute;right:10px;bottom:12px;font:10px 'SimSun',serif;border:1px solid #9e4f3f77;color:#9e4f3f99;padding:3px 5px;transform:rotate(-7deg)}
.guide-character{width:146px;height:292px;right:5%;bottom:220px}.guide-character small{font-size:10px;bottom:0;background:var(--ink);padding:5px 8px}.aqi{bottom:218px;width:150px;height:150px}
body[data-view=paper] .guide-character{bottom:327px;width:112px;height:224px;right:2%}body[data-view=paper] .aqi{bottom:270px;width:120px;height:120px;left:2%}
.dialogue-ui{width:min(1000px,88%);min-height:156px;bottom:58px;padding:16px 20px 18px;display:grid;grid-template-columns:104px 90px minmax(0,1fr) 144px;gap:18px;border:1.5px solid var(--ink);border-left:5px solid var(--teal);background:#f8efdb;box-shadow:5px 6px 0 #17333c55}
.dialogue-ui:before{content:"";position:absolute;top:-15px;left:43px;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:16px solid #f8efdb;filter:drop-shadow(0 -1px 0 #193c46)}
.dialogue-ui[data-speaker=lin]:before{left:auto;right:45px}.dialogue-ui[data-speaker=lin]{border-left-color:var(--gold)}
.dialogue-portrait{--portrait:104px;width:var(--portrait);height:110px;overflow:hidden;position:relative;background:#dfd6ba;border:1px solid #193c462e;transform:rotate(-2deg);border-radius:46% 46% 3px 3px}
.dialogue-portrait i{display:block;width:100%;height:100%;background:url('./assets/aqi-sprites.png') 0 0/300% 200% no-repeat}
.dialogue-ui[data-speaker=lin] .dialogue-portrait{transform:rotate(2deg);background:#c6d2bf}.dialogue-ui[data-speaker=lin] .dialogue-portrait i{background-image:url('./assets/lin-sprites.png');background-size:600% auto;background-position:calc(var(--portrait)*-.5) calc(var(--portrait)*-.25)}
.dialogue-name{min-width:0;gap:7px;margin:0;align-self:center}.dialogue-name strong{font-size:21px}.dialogue-name small{font-size:10px;line-height:1.6;max-width:none;opacity:.7}.dialogue-ui>p{font-size:17px;line-height:1.8;margin:0}.dialogue-controls{position:static;width:auto;gap:7px;justify-content:center}.dialogue-ui .dialogue-controls button{min-height:44px;font-size:12px;padding:8px 12px}.dialogue-ui #story-next{border:1px solid var(--ink);box-shadow:2px 2px 0 #193c4633}.dialogue-ui #dialogue-count{left:auto;right:22px;bottom:6px;font-size:10px;opacity:.6}.dialogue-ui .voice-replay{min-height:36px;font-size:12px}.dialogue-ui .dialogue-controls #hint{font-size:11px}
dialog{border:1.5px solid var(--ink);box-shadow:6px 7px 0 #a98a55,0 20px 80px #102b3c44;background:#f8efdb;padding:34px 38px}dialog:before{content:"";display:block;width:44px;height:4px;background:var(--teal);margin-bottom:21px}dialog h2{font-size:28px}dialog>p{font-size:15px;line-height:1.85}dialog .small-note{font-size:11px!important}dialog button:not(.close){min-height:44px}dialog .close{right:6px;top:6px}.hint-options button{font-size:14px;line-height:1.7}
.badge-inspection{perspective:1000px;margin:32px auto 19px;width:210px;height:283px}.badge-object{height:100%;width:100%;position:relative;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.2,.7,.2,1);transform:rotate(-3deg)}.badge-object.turned{transform:rotate(2deg) rotateY(180deg)}.badge-face{position:absolute;inset:0;backface-visibility:hidden;border:2px solid var(--ink);border-radius:6px;background:linear-gradient(110deg,#fff8e8,#eee0bf);box-shadow:inset 0 0 0 7px #d5c7a6,4px 6px 0 #c7b38c;display:flex;align-items:center;flex-direction:column;padding:24px 18px 15px}.badge-face small{font-size:10px;letter-spacing:.1em}.badge-face .badge-portrait{width:111px;height:132px;margin:13px 0 8px;border:1px solid #7e9084}.badge-face strong{font:21px 'SimSun',serif;letter-spacing:.2em}.badge-face>span:last-child{font:18px Georgia,serif;letter-spacing:.1em;margin-top:9px}.badge-reverse{transform:rotateY(180deg);background:repeating-linear-gradient(0deg,#f8efdb 0 29px,#c5bb9f77 30px)}.badge-reverse p{font:25px/1.9 'KaiTi','SimSun',serif;text-align:center;margin:52px 0 20px}.badge-reverse>span:last-child{font:11px sans-serif;opacity:.7}.badge-transcript{font-size:13px}.badge-dialogue{font-size:14px}#badge-flip{display:block;margin:auto}.badge-dialogue{border-left:2px solid var(--teal)}
.archive-files{gap:36px;height:290px;perspective:1000px}.archive-file{width:182px;height:236px;isolation:isolate;border:1px solid #735f3a;background:linear-gradient(120deg,#e5cca0,#cfa86e);box-shadow:4px 5px 0 #f0dcb6,5px 6px 0 #8a704b;gap:0;transform-origin:50% 80%}
.archive-file:before{inset:0 auto 0 25px;width:1px;height:auto;background:#886e4d;box-shadow:3px 0 #f2deba}.archive-file:after{content:"";position:absolute;left:18px;top:51px;width:17px;height:17px;border-radius:50%;border:1px solid #755336;background:#a77e4c;box-shadow:inset 0 0 0 4px #bf975d,0 30px 0 -1px #a77e4c}
.archive-file span{font-size:11px;border-bottom:1px solid #9e8558;padding-bottom:10px;width:65%;text-align:center;margin-left:15px}.archive-file strong{margin:19px 0 12px 15px;font-size:29px}.archive-file small{font-size:12px;margin-left:15px;padding:8px;background:#f4e5c2bb;border:1px solid #bca477}
.archive-file .archive-flap{position:absolute;inset:0 0 auto;height:45px;background:#c5a06d;border-bottom:1px solid #9b7c4c;z-index:-1;transform-origin:50% 0;transition:transform .6s,background .6s}.archive-file .archive-sheet{position:absolute;inset:-5px 9px auto;height:35px;z-index:-2;background:#f9efda;transform:rotate(-2deg);transition:translate .6s;box-shadow:0 0 0 1px #8c9b8133}.archive-file.opening .archive-flap{transform:rotateX(155deg);background:#e9d7b6}.archive-file.opening .archive-sheet{translate:0 -55px}.archive-file.opening{transform:translateY(-15px) rotate(0deg)}
#puzzle{border:1px solid #a9ad91;background:#f8efdb;padding:27px 30px;box-shadow:6px 6px 0 #b49c6b}.puzzle-heading{border-bottom:1px solid #193c4633;padding-bottom:16px;margin-bottom:21px}.puzzle-heading h2{font-size:28px}.puzzle-heading p:not(.eyebrow){font-size:13px;line-height:1.6}.puzzle-heading button{font-size:12px;min-height:44px}.piece{box-shadow:2px 4px 0 #a4977133,0 8px 12px #193c4610;border:1px solid #7b89744d}.piece.selected{outline-color:var(--gold)}.slot.filled{border:1px solid #193c4618}.puzzle-layout{transition:grid-template-columns .6s}.is-complete .puzzle-layout{grid-template-columns:1fr}.is-complete .piece-tray{display:none}.is-complete .blueprint-board{width:min(100%,690px);margin:auto;box-shadow:2px 6px 16px #193c4626}.is-complete .blueprint-board:after{content:"图纸已接合";position:absolute;right:14px;bottom:10px;border:1px solid var(--clue);color:var(--clue);font:13px 'SimSun',serif;letter-spacing:.12em;padding:8px 10px;background:#f3e8ccd9;transform:rotate(-5deg);pointer-events:none}.puzzle-bottom p{font-size:12px;line-height:1.6}
.photo-chat{border:1px solid #397b7844;border-left:3px solid var(--teal);padding:15px 17px}.photo-chat p{font-size:15px}.photo-chat strong{font-size:18px}.photo-chat button{font-size:12px}.photo-front p{font-size:12px}.destination-options button{font-size:13px}.destination-options button small{font-size:11px}#destination>p{font-size:15px}#destination details{font-size:13px}
/* Opening: one continuous, controllable four-beat sequence. */
.opening{position:absolute;background:#e6dbc2;padding:clamp(20px,3vw,48px);backdrop-filter:none;overflow:auto;isolation:isolate;transition:background .9s,opacity .9s;align-items:center}
.opening:before{content:"";position:absolute;inset:13px;border:1px solid #193c462b;pointer-events:none;background:repeating-linear-gradient(100deg,transparent 0 200px,#193c4604 201px 202px)}
.opening-sheet{width:min(1180px,100%);padding:0;background:none;box-shadow:none;transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .75s;position:relative}
.opening-top{border-bottom:1px solid #193c4644;margin:0 0 30px;padding-bottom:14px;gap:12px;flex-wrap:wrap;font-size:12px;letter-spacing:.08em}.opening-top>span{margin-right:auto}.opening-top b{font:23px 'SimSun',serif;margin-right:12px}.opening-top i{font-style:normal;opacity:.4;margin:0 12px}.opening-top button{font-size:12px;padding:8px 0;min-height:44px;min-width:0}#opening-sound{font-size:12px;min-height:44px;border-bottom:1px solid #193c4666;margin-left:10px}
.opening-body{display:grid;grid-template-columns:.7fr 1.7fr;gap:36px;align-items:center}.opening-title{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding-bottom:22px}.opening-kicker{font-size:10px;letter-spacing:.15em}.opening-title h1{font:700 clamp(38px,4.8vw,68px)/1.2 'SimSun','Songti SC',serif;letter-spacing:-.06em;white-space:pre-line;margin:20px 0}.opening-title-note{font-size:13px;line-height:1.9;margin:0;max-width:220px}.opening-issue{font-size:10px;letter-spacing:.12em;margin-top:auto;padding-top:38px;opacity:.7}
.opening-art{height:clamp(300px,44vh,430px);width:100%;border:2px solid var(--ink);border-radius:2px 0 4px 1px;background:#dfd0aa;box-shadow:5px 6px 0 #193c46;isolation:isolate}
.opening-frame{inset:8px;z-index:12;border:1px solid #193c4638}.opening-map{opacity:1;background:repeating-linear-gradient(0deg,transparent,transparent 31px,#397b780c 32px),#ebe0c5;transition:opacity 1.1s}
.opening-map svg{width:100%;height:100%;position:static;stroke-width:2}.map-streets{stroke:#397b7822;stroke-width:12;fill:none}.opening-map .map-route{stroke:var(--clue);stroke-width:3;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--route-p,0));stroke-linecap:round}.map-factory{stroke:#193c4677;stroke-width:1.5}.map-pin{fill:var(--clue);stroke:var(--paper);stroke-width:3;opacity:var(--route-p,0)}.opening-map>span{font:16px 'SimSun',serif;top:48%;right:10%;letter-spacing:.12em}.opening-map>small{position:absolute;right:10%;top:57%;font-size:10px;opacity:.65}
.opening-letter{width:240px;height:145px;left:calc(50% - 120px);top:49%;background:#c7a372;border:1.5px solid #735c3e;box-shadow:3px 7px 0 #193c4626;transform:rotate(-7deg);transition:left 1.2s,top 1.2s,transform 1.2s,opacity .8s}
.letter-flap{animation:none;transform:rotateX(calc(var(--flap-p,0)*-165deg));z-index:1;background:#e0c697;border:1px solid #a28556;backface-visibility:visible}.letter-note{animation:none;z-index:2;top:0;translate:0 calc(15px - var(--note-p,0)*104px);border:1px solid #b5a881;padding:18px 18px 20px;background:#fbf2dc;box-shadow:0 2px 4px #193c4620}.letter-note strong{font-size:21px;line-height:1.6;margin:9px 0}.letter-note small{font-size:9px}.letter-note span{font-size:9px}.opening-letter:after{content:"";position:absolute;inset:0;z-index:3;clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%);background:linear-gradient(27deg,#dec294 0 51%,#d1b17e 52%);border:1px solid #94754a}.letter-address{z-index:4;font-size:12px;bottom:24px}.letter-seal{position:absolute;right:13px;bottom:12px;border:1px solid #984c3c;color:#984c3c;padding:5px;font:13px 'SimSun',serif;transform:rotate(-11deg);z-index:4}
.opening-badge{width:135px;height:190px;left:61%;top:29%;padding:16px 9px 8px;gap:5px;transform:translateY(-45px) rotate(10deg);background:#f5ead2;border:2px solid var(--ink);box-shadow:3px 6px 0 #193c4633;transition:opacity 1s,transform 1.2s}.opening-badge .chen-photo{width:71px;height:82px;display:block;border:1px solid #193c4677;margin-top:5px}.opening-badge strong{font:22px Georgia;margin:0}.opening-badge span{font:11px 'SimSun',serif}.opening-badge .badge-clip{height:23px;top:-14px}
.opening[data-ready=true] .letter-flap{transform:none}.opening[data-ready=true] .letter-note{translate:0 15px}.opening[data-ready=true] .opening-caption{opacity:.7}
.opening[data-shot="1"] .opening-letter{left:6%;top:61%;transform:scale(.76) rotate(-13deg)}.opening[data-shot="1"] .opening-badge{opacity:1;transform:translateY(0) rotate(5deg)}
.opening-courtyard{inset:0;transition:opacity 1.4s;transform:scale(calc(1.1 - var(--walk-p,0)*.1));background-position:50% 55%}.opening[data-shot="2"] .opening-courtyard,.opening[data-shot="3"] .opening-courtyard{transform:scale(calc(1.1 - var(--walk-p,0)*.1))}
#opening-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 100%;opacity:0;transition:opacity 1.1s;pointer-events:none}.opening[data-media=ready][data-shot="2"] #opening-film,.opening[data-media=ready][data-shot="3"] #opening-film{opacity:1}.opening[data-media=ready][data-shot="2"] .opening-bird,.opening[data-media=ready][data-shot="3"] .opening-bird{visibility:hidden}
.opening-bird{width:146px;height:146px;bottom:4%;left:calc(-20% + var(--walk-p,0)*65%);z-index:3;transform:rotate(calc(var(--step-frame,0)*2deg - 1deg)) translateY(calc(var(--step-frame,0)*-3px));transition:opacity .8s}.opening-bird>div,.opening[data-shot="2"][data-playing=true] .opening-bird>div{animation:none;background-position:calc(var(--step-frame,0)*100%) 0}.bird-letter{position:absolute;width:36px;height:23px;background:#e6c58e;border:1px solid #705b39;right:9%;bottom:31%;transform:rotate(13deg)}.bird-letter:before{content:"";position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 75%);background:#f6e7c7}
.opening-person{height:260px;width:130px;right:5%;bottom:1%;z-index:4}.opening-location{position:absolute;left:18px;top:18px;background:#f3e8cced;font-size:10px;letter-spacing:.12em;padding:8px 11px;border-left:3px solid var(--teal);opacity:0;transition:opacity 1s}.opening[data-shot="2"] .opening-location,.opening[data-shot="3"] .opening-location{opacity:1}.opening-sfx{font:18px 'KaiTi',serif;bottom:8%;left:28%;z-index:4}.opening-callout{position:absolute;right:19%;top:15%;font:21px/1.5 'KaiTi','SimSun',serif;background:#fcf4e1;border:1.5px solid var(--ink);padding:16px 22px;transform:rotate(-4deg) scale(.8);opacity:0;z-index:6;transition:opacity .6s,transform .6s}.opening-callout:after{content:"";position:absolute;right:14px;bottom:-16px;border-left:12px solid transparent;border-top:16px solid var(--ink)}.opening[data-shot="3"] .opening-callout{opacity:1;transform:rotate(-4deg) scale(1)}
.opening-caption{border-top:1px solid #193c4640;display:grid;grid-template-columns:100px 1fr;gap:24px;align-items:baseline;min-height:0;margin:28px 0 17px;padding-top:18px;transition:opacity .5s}.opening-speaker{font:17px 'SimSun',serif;min-width:0;border-left:3px solid var(--gold);padding-left:12px}.opening-line{font-size:16px;line-height:1.85}.opening-bottom{gap:12px;min-height:46px}.opening-bottom button{font-size:12px;min-height:44px;padding:9px 13px}.opening-bottom #opening-begin{background:var(--ink);color:var(--paper);padding:12px 22px;box-shadow:3px 3px 0 #b39c70}.opening-dots{gap:6px}.opening-dots button{width:44px;height:44px;border-radius:0;border:1px solid #193c4655;font-size:12px}.opening-dots button[aria-current=true]{background:var(--ink)}.opening-timing{font-size:11px;letter-spacing:.05em;order:0;width:auto;margin:0 auto 0 0}.opening-bottom #opening-start{background:var(--teal);font-size:13px}#opening-listen{font-size:12px;padding:9px 5px}.opening-progress{margin:14px 0 12px;height:3px}.opening-disclaimer{font-size:10px;letter-spacing:.04em;opacity:.6}.opening[data-departing=true]{opacity:0;background:transparent;pointer-events:none}.opening[data-departing=true] .opening-sheet{opacity:0;transform:translateY(-24px) scale(1.035)}
.opening[data-playing=false] *, .opening[data-ready=true] *{animation-play-state:paused!important}
.letter-note{opacity:var(--note-p,0)}.opening[data-ready=true] .letter-note{opacity:0}
@media(min-width:1500px){.opening-art{height:450px}}
@media(max-width:760px){
 #game{min-height:740px}#game:after{inset:9px}header{height:70px}header nav{gap:0}header nav button{min-width:44px}.chapter-label{font-size:9px}.brand{font-size:23px}
 #game .view{bottom:281px}.yard-title h1{font-size:39px}.yard-title{top:2%}.yard-title>p{font-size:9px}.yard-title>span{font-size:11px}.badge-hotspot{left:9%;bottom:13%}.mini-badge{width:100px;height:148px;padding:12px 8px 8px;gap:4px}.mini-badge .chen-photo{width:47px;height:57px;margin:3px 0 0}.mini-badge strong{font-size:19px;margin:0}.mini-badge small{font-size:8px}.mini-badge .badge-person-name{font-size:9px}.lanyard{bottom:133px;width:35px;height:90px;border-width:6px}.badge-clip{width:23px;left:calc(50% - 11px);height:21px;top:-12px}
 .desk-hotspot{right:1%;bottom:21%}.folder-object{width:152px;height:116px;padding-left:17px}.folder-object b{font-size:18px}.folder-object small{font-size:9px}.folder-cord{left:17px}.folder-mark{font-size:8px;right:6px;bottom:8px}.hotspot-caption{top:calc(100% + 11px);font-size:10px}
 .guide-character{height:212px;width:106px;bottom:252px;right:2%}.guide-character small{font-size:8px;padding:4px 5px}.aqi{bottom:252px;width:116px;height:116px;left:4%}body[data-view=paper] .guide-character{bottom:365px;width:82px;height:164px}body[data-view=paper] .aqi{bottom:348px;left:0;width:86px;height:86px}.puzzle-open .guide-character{opacity:.12;pointer-events:none}
 .dialogue-ui{width:92%;bottom:53px;min-height:195px;padding:12px 14px 17px;grid-template-columns:63px minmax(0,1fr);grid-template-rows:auto auto auto;gap:3px 13px;display:grid}.dialogue-portrait{--portrait:63px;width:63px;height:77px;grid-column:1;grid-row:1/3;margin-top:3px}.dialogue-name{grid-column:2;grid-row:1;flex-direction:row;display:flex;align-items:center;gap:12px;margin:0}.dialogue-name strong{font-size:18px}.dialogue-name small{display:none}.dialogue-ui .voice-replay{font-size:11px;min-height:32px;padding:0 3px}.dialogue-ui>p{grid-column:2;grid-row:2;font-size:15px;line-height:1.7;margin:0;align-self:start}.dialogue-controls{position:static;grid-column:1/3;grid-row:3;display:flex;flex-direction:row;gap:13px;justify-content:flex-end;align-items:center;margin-top:9px;width:auto}.dialogue-ui .dialogue-controls button{font-size:12px;min-height:44px;padding:9px 15px}.dialogue-ui .dialogue-controls #hint{font-size:11px;padding-inline:6px}.dialogue-ui #dialogue-count{left:15px;right:auto;bottom:15px;font-size:10px}.dialogue-ui:before{left:24px}.dialogue-ui[data-speaker=lin]:before{right:34px}
 dialog{padding:27px 23px;width:94vw;max-height:90dvh}dialog h2{font-size:25px}dialog>p{font-size:14px}.badge-inspection{width:184px;height:254px;margin:27px auto 16px}.badge-face{padding:21px 12px 13px}.badge-face .badge-portrait{width:98px;height:113px}.badge-face strong{font-size:20px}.badge-face>span:last-child{font-size:17px}.badge-reverse p{margin:45px 0 20px;font-size:22px}.badge-reverse>span:last-child{font-size:11px}.badge-dialogue{font-size:13px}.badge-transcript{font-size:12px}
 .archive-files{height:250px;gap:12px}.archive-file{height:203px;width:30%}.archive-file:before{left:15px}.archive-file:after{left:9px;top:43px;width:13px;height:13px;box-shadow:inset 0 0 0 3px #bf975d,0 24px 0 -1px #a77e4c}.archive-file span{font-size:9px;margin-left:12px}.archive-file strong{font-size:22px;margin:18px 0 13px 12px}.archive-file small{font-size:9px;padding:7px 5px;margin-left:10px}.archive-file .archive-flap{height:34px}
 #puzzle{padding:17px 12px}.puzzle-heading{padding-bottom:12px;margin-bottom:15px}.puzzle-heading h2{font-size:22px}.puzzle-heading p:not(.eyebrow){font-size:11px}.puzzle-heading button{font-size:10px;padding:6px 8px}.puzzle-bottom p{font-size:11px}.is-complete .blueprint-board:after{font-size:11px;padding:6px;right:8px;bottom:6px}.photo-chat p{font-size:14px}.destination-options{flex-direction:column}.destination-options button{font-size:14px;padding:12px}
 .opening{padding:19px 21px 18px;align-items:center}.opening:before{inset:9px}.opening-sheet{padding:0;width:100%}.opening-top{gap:0 10px;padding-bottom:9px;margin-bottom:19px;flex-wrap:wrap;font-size:10px}.opening-top>span{min-width:100%;font-size:10px}.opening-top b{font-size:22px;margin-right:7px}.opening-top i{margin:0 6px}.opening-top button{font-size:10px;min-height:38px;padding:5px 0}.opening-top #opening-sound{font-size:10px;min-width:0;min-height:38px;margin-left:auto;text-align:right}
 .opening-body{grid-template-columns:1fr;gap:20px}.opening-title{padding:0;display:block;position:relative}.opening-kicker{font-size:9px;letter-spacing:.13em}.opening-title h1{font-size:42px;line-height:1.1;margin:13px 0 12px;letter-spacing:-.04em;min-height:92px}.opening-title-note{font-size:12px;max-width:78%;line-height:1.7}.opening-issue{position:absolute;right:0;top:30px;writing-mode:vertical-rl;margin:0;padding:0;font-size:9px;letter-spacing:.15em}
 .opening-art{height:clamp(220px,31dvh,300px);box-shadow:3px 4px 0 #193c46;border-width:1.5px}.opening-map svg{width:145%;left:-30%;position:absolute}.opening-map>span{font-size:12px;right:6%;top:42%}.opening-map>small{font-size:8px;right:6%;top:52%}.opening-letter{width:184px;height:115px;left:calc(50% - 92px);top:40%}.letter-flap{height:65px}.letter-note{left:10px;right:10px;padding:12px;translate:0 calc(10px - var(--note-p,0)*85px)}.letter-note strong{font-size:16px;margin:7px 0}.letter-note small,.letter-note span{font-size:8px}.letter-address{font-size:9px;bottom:20px}.letter-seal{font-size:10px;padding:3px;bottom:10px;right:9px}.opening-badge{width:103px;height:150px;left:58%;top:20%;gap:4px;padding-top:12px}.opening-badge .chen-photo{width:51px;height:63px}.opening-badge strong{font-size:20px}.opening-badge small{font-size:8px}.opening-badge>span:last-child{font-size:10px}.opening[data-shot="1"] .opening-letter{left:-4%;top:67%;transform:scale(.7) rotate(-13deg)}
 #opening-film{object-position:0% 100%}.opening-person{height:192px;width:96px;right:0;bottom:0}.opening-bird{width:116px;height:116px;left:calc(-25% + var(--walk-p,0)*65%);bottom:1%}.opening-callout{right:18%;top:11%;font-size:16px;padding:12px 16px}.opening-location{font-size:8px;left:10px;top:10px;padding:6px 8px}.opening-sfx{font-size:13px;bottom:5%;left:24%}
 .opening-caption{margin:20px 0 12px;padding-top:13px;display:block;min-height:101px}.opening-speaker{display:block;font-size:14px;margin-bottom:7px;padding-left:9px}.opening-line{font-size:14px;line-height:1.8}.opening-bottom{gap:5px 8px;flex-wrap:wrap}.opening-dots{gap:4px}.opening-dots button{width:36px;min-height:44px;font-size:11px}.opening-bottom>button{font-size:11px;min-height:44px;padding:8px}.opening-bottom #opening-begin{padding:11px 18px;font-size:12px;min-height:44px}.opening-bottom #opening-start{font-size:12px;padding:11px 15px}.opening-timing{font-size:9px;order:5;width:100%;margin-top:6px}.opening-bottom #opening-listen{font-size:10px;min-height:44px;padding:8px 3px}.opening-progress{margin:12px 0 9px}.opening-disclaimer{font-size:9px;line-height:1.6}
}
@media(max-width:760px) and (max-height:760px){.opening{align-items:start;padding-top:20px}.opening-top{margin-bottom:13px}.opening-title h1{font-size:36px;min-height:78px}.opening-title-note{font-size:11px}.opening-body{gap:14px}.opening-art{height:210px}.opening-caption{min-height:96px;margin-top:17px}.opening-title h1{margin-block:10px}.opening-bottom{gap:3px 6px}.opening-disclaimer{font-size:8px}}
@media(max-width:420px){header .brand span{display:none}.brand{gap:0}.chapter-label{margin-right:auto;gap:6px}}
@media(prefers-reduced-motion:reduce){.opening-sheet,.opening,.opening-art *, .badge-object,.archive-file *, .puzzle-layout{transition:none!important}.opening *{animation:none!important}.opening-bird{left:30%!important;transform:none!important}.opening .letter-flap{transform:rotateX(-165deg)}.opening .letter-note{translate:0 -80px}#opening-film{display:none}.opening .opening-bird{visibility:visible!important}.is-complete .blueprint-board{animation:none}}

.opening[data-shot="0"] .opening-bird,.opening[data-shot="1"] .opening-bird{opacity:1;left:9%;bottom:1%;transform:rotate(calc(-4deg + var(--shot-p,0)*3deg));visibility:visible}.opening[data-shot="0"] .opening-bird>div,.opening[data-shot="1"] .opening-bird>div{background-position:50% 0}.opening[data-shot="1"] .opening-bird{left:29%;width:124px;height:124px}.opening[data-ready=true] .bird-letter{opacity:0}
@media(max-width:760px){.opening[data-shot="0"] .opening-bird{left:-4%;width:108px;height:108px}.opening[data-shot="1"] .opening-bird{left:17%;width:94px;height:94px}}
