:root{
  --ink:#05090b;--paper:#e7e4d8;--muted:#9ca6a4;--line:rgba(231,228,216,.18);--amber:#d6b66c;--blue:#76aeb4;
  --body:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  --mono:"IBM Plex Mono","SFMono-Regular",Consolas,"PingFang SC",monospace;
  --shell:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;background:var(--ink);color:var(--paper);font:400 15px/1.75 var(--body);-webkit-font-smoothing:antialiased}
a{color:inherit}h1,h2,h3,p{margin-top:0}img{display:block;max-width:100%}
.shell{width:min(calc(100% - 48px),var(--shell));margin-inline:auto}
.skip{position:fixed;z-index:100;left:12px;top:8px;padding:8px 12px;background:var(--amber);color:#111;text-decoration:none;transform:translateY(-160%)}.skip:focus{transform:none}
:focus-visible{outline:2px solid var(--amber);outline-offset:4px}
.site-header{position:absolute;z-index:10;inset:0 0 auto;min-height:62px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;padding:11px max(24px,calc((100vw - var(--shell))/2));border-bottom:1px solid rgba(255,255,255,.11);background:linear-gradient(rgba(2,5,6,.78),transparent)}
.brand{display:flex;width:max-content;align-items:baseline;gap:11px;text-decoration:none}.brand span{font-weight:700;letter-spacing:.08em}.brand small,.stamp{font:500 9px/1.5 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--amber)}
.site-header nav{display:flex;gap:26px}.site-header nav a,.back{font:500 10px/1 var(--mono);letter-spacing:.08em;text-decoration:none;color:rgba(255,255,255,.68)}.site-header nav a:hover,.back:hover{color:#fff}.back{justify-self:end}
.hero,.scene{position:relative;min-height:100svh;overflow:hidden;background:#05090b}.hero{display:flex;align-items:flex-end}.scene-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;image-rendering:pixelated}.scene-shade{position:absolute;inset:0;pointer-events:none}.scene-shade--hero{background:linear-gradient(90deg,rgba(2,5,6,.8),rgba(2,5,6,.05) 55%),linear-gradient(0deg,rgba(2,5,6,.82),transparent 52%)}.scene-shade--left{background:linear-gradient(90deg,rgba(2,5,6,.86),rgba(2,5,6,.05) 66%),linear-gradient(0deg,rgba(2,5,6,.66),transparent 48%)}.scene-shade--right{background:linear-gradient(270deg,rgba(2,5,6,.88),rgba(2,5,6,.03) 67%),linear-gradient(0deg,rgba(2,5,6,.68),transparent 46%)}.scene-shade--town{background:linear-gradient(90deg,rgba(2,5,6,.82),rgba(2,5,6,.03) 58%),linear-gradient(0deg,rgba(2,5,6,.66),transparent 46%)}
.hero-copy{position:relative;z-index:1;width:min(calc(100% - 48px),var(--shell));margin:0 auto;padding-bottom:clamp(72px,10vh,108px)}.hero-copy .stamp{margin-bottom:12px}.hero h1{margin:0 0 12px;font-size:clamp(2.7rem,4.2vw,4rem);font-weight:650;line-height:1.08;letter-spacing:.1em;text-shadow:0 2px 18px #020405}.hero-copy>p:not(.stamp){max-width:430px;margin-bottom:26px;color:rgba(255,255,255,.76)}
.text-link{display:inline-flex;gap:12px;align-items:center;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.42);font:500 10px/1 var(--mono);letter-spacing:.08em;text-decoration:none}.text-link:hover{border-color:var(--amber);color:var(--amber)}
.corner-note{position:absolute;z-index:1;right:max(24px,calc((100vw - var(--shell))/2));bottom:38px;margin:0;color:rgba(255,255,255,.62);font:500 9px/1.5 var(--mono);letter-spacing:.16em;text-transform:uppercase}.corner-note span{margin-right:12px;color:var(--amber)}
.caption{position:absolute;z-index:1;top:50%;width:min(390px,calc(100% - 48px));transform:translateY(-50%)}.caption--left{left:max(24px,calc((100vw - var(--shell))/2))}.caption--right{right:max(24px,calc((100vw - var(--shell))/2))}.caption .stamp{margin-bottom:15px}.caption h2{margin:0 0 18px;font-size:clamp(2rem,3.2vw,3.15rem);font-weight:620;line-height:1.24;letter-spacing:.04em}.caption>p:not(.stamp){max-width:350px;margin-bottom:14px;color:rgba(255,255,255,.76)}.caption .whisper{padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:rgba(255,255,255,.5)!important}
.clue-line{position:absolute;z-index:1;left:max(24px,calc((100vw - var(--shell))/2));bottom:36px;display:flex;gap:0;margin:0;padding:0;list-style:none;border:1px solid var(--line);background:rgba(2,5,6,.65)}.clue-line li{padding:10px 14px;border-right:1px solid var(--line);font:500 9px/1.4 var(--mono);letter-spacing:.06em;color:rgba(255,255,255,.7)}.clue-line li:last-child{border-right:0}.caption--town{top:auto;bottom:10%;transform:none}
.archive{padding:clamp(88px,10vw,130px) 0;background:#080d10;border-top:1px solid var(--line)}.archive .shell{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(60px,9vw,120px)}.archive-head h2,.play h2,.contact h2{font-size:clamp(1.7rem,2.7vw,2.7rem);font-weight:620;line-height:1.35;letter-spacing:.02em}.archive-head>p:last-child{max-width:300px;color:var(--muted);font-size:13px}.case-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.case-list li{display:grid;grid-template-columns:45px 1fr auto;gap:22px;align-items:center;min-height:112px;padding:18px 0;border-bottom:1px solid var(--line)}.case-list>li>span{color:var(--amber);font:500 9px/1 var(--mono)}.case-list h3{margin:0 0 6px;font-size:17px;font-weight:580;letter-spacing:.03em}.case-list p{margin:0;color:var(--muted);font:400 10px/1.5 var(--mono)}.case-list b{font:500 9px/1 var(--mono);color:#768180}
.play{padding:clamp(88px,10vw,130px) 0;background:#05090b;border-top:1px solid var(--line)}.play-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(60px,9vw,120px)}.play-intro h2{max-width:430px}.steps{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.steps li{display:grid;grid-template-columns:40px 1fr;gap:22px;padding:22px 0;border-bottom:1px solid var(--line)}.steps>li>span{color:var(--blue);font:500 9px/1.5 var(--mono)}.steps h3{margin:0 0 5px;font-size:15px;font-weight:600}.steps p{margin:0;color:var(--muted);font-size:12px}
.contact{padding:clamp(90px,12vw,150px) 0;text-align:center;background:radial-gradient(circle at 50% 15%,rgba(118,174,180,.1),transparent 33%),#080d10;border-top:1px solid var(--line)}.contact-inner{max-width:660px}.contact h2{margin-bottom:15px}.contact-inner>p:not(.stamp){margin-bottom:30px;color:var(--muted)}.button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;padding:11px 21px;border:1px solid rgba(214,182,108,.62);color:var(--amber);font:500 10px/1 var(--mono);letter-spacing:.08em;text-decoration:none}.button:hover{background:var(--amber);color:#10100c}
footer{padding:28px 0;border-top:1px solid var(--line);background:#05090b}footer .shell{display:flex;justify-content:space-between;gap:30px;align-items:center}footer p{display:flex;gap:14px;margin:0}footer b{font-size:12px;letter-spacing:.08em}footer span,footer a{color:#6e7776;font-size:10px;text-decoration:none}footer a:hover{color:var(--amber)}
@media(max-width:800px){.site-header{grid-template-columns:1fr auto}.site-header nav{display:none}.hero .scene-img{object-position:64% center}.archive .shell,.play-layout{grid-template-columns:1fr;gap:42px}.archive-head>p:last-child{max-width:460px}}
@media(max-width:560px){.shell{width:calc(100% - 32px)}.site-header{padding-inline:16px}.brand small{display:none}.back{font-size:9px}.hero-copy{width:calc(100% - 32px);padding-bottom:96px}.hero h1{font-size:2.65rem}.hero-copy>p:not(.stamp){max-width:260px}.corner-note{left:16px;right:auto;bottom:32px}.scene{min-height:88svh}.scene#linzhen .scene-img{object-position:60% center}.scene#case-one .scene-img{object-position:42% center}.scene#town .scene-img{object-position:55% center}.scene-shade--left,.scene-shade--right,.scene-shade--town{background:linear-gradient(0deg,rgba(2,5,6,.9),rgba(2,5,6,.08) 70%)}.caption,.caption--left,.caption--right,.caption--town{top:auto;right:16px;bottom:76px;left:16px;width:auto;transform:none}.caption h2{font-size:2rem}.clue-line{right:16px;bottom:22px;left:16px;overflow:hidden}.clue-line li{flex:1;padding:8px 7px;text-align:center;font-size:8px}.case-list li{grid-template-columns:34px 1fr}.case-list b{grid-column:2}.play-intro h2{font-size:1.8rem}footer .shell,footer p{align-items:flex-start;flex-direction:column;gap:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
