:root{--bg:#0a0a0b;--ink:#f3f0ea;--dim:#9a948a;--display:"Clash Display","Helvetica Neue",sans-serif;--serif:"Instrument Serif",Georgia,serif;--cjk:"Noto Serif SC",serif;--apx:16px;--apy:16px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--ink)}body{font-family:var(--display);-webkit-font-smoothing:antialiased;cursor:none;-webkit-user-select:none;user-select:none;touch-action:none}#gl{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.mask{position:fixed;background:var(--bg);z-index:10;pointer-events:none}.m-t{left:0;right:0;top:0;height:var(--apy)}.m-b{left:0;right:0;bottom:0;height:var(--apy)}.m-l{top:0;bottom:0;left:0;width:var(--apx)}.m-r{top:0;bottom:0;right:0;width:var(--apx)}.aperture{position:fixed;left:var(--apx);right:var(--apx);top:var(--apy);bottom:var(--apy);border:1.5px solid var(--ink);pointer-events:none;z-index:20}.aperture .tk{position:absolute;width:13px;height:13px;border:0 solid var(--ink)}.aperture .tl{top:-1.5px;left:-1.5px;border-top-width:1.5px;border-left-width:1.5px;transform:translate(-6px,-6px)}.aperture .tr{top:-1.5px;right:-1.5px;border-top-width:1.5px;border-right-width:1.5px;transform:translate(6px,-6px)}.aperture .bl{bottom:-1.5px;left:-1.5px;border-bottom-width:1.5px;border-left-width:1.5px;transform:translate(-6px,6px)}.aperture .br{bottom:-1.5px;right:-1.5px;border-bottom-width:1.5px;border-right-width:1.5px;transform:translate(6px,6px)}.nav{position:fixed;left:0;right:0;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:1.4rem 1.9rem}.nav .brand{font-family:var(--display);font-weight:600;font-size:1.15rem;letter-spacing:.14em;color:var(--ink);text-decoration:none}.nav .menu .loc{font-family:var(--cjk);font-size:.82rem;letter-spacing:.14em;color:var(--dim)}.back{position:fixed;left:1.9rem;top:3.8rem;z-index:30;background:none;border:0;color:var(--ink);cursor:none;font-family:var(--display);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:.5rem;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .4s,transform .4s}.back.show{opacity:1;transform:none;pointer-events:auto}.back .arr{font-size:1rem}.hud{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:flex-end;justify-content:space-between;padding:1.6rem 1.9rem}.caption .t{font-family:var(--display);font-weight:500;font-size:clamp(1.6rem,4vw,2.8rem);letter-spacing:-.01em;line-height:1}.caption .m{display:flex;gap:1rem;margin-top:.6rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}.caption .m .p{font-family:var(--cjk);text-transform:none;letter-spacing:.1em}.counter{font-family:var(--display);font-size:.8rem;letter-spacing:.18em;color:var(--dim);display:flex;gap:.5rem;align-items:baseline}.counter .idx{color:var(--ink);font-size:1.1rem}.hint{position:fixed;left:50%;bottom:1.7rem;transform:translate(-50%);z-index:30;display:flex;gap:.6rem;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--dim);transition:opacity .6s}.hint .dot{opacity:.5}.hint.gone{opacity:0}.cursor{position:fixed;left:0;top:0;z-index:40;pointer-events:none;mix-blend-mode:difference;transform:translate(-50%,-50%);transition:opacity .3s}.cursor .cl{display:block;width:10px;height:10px;border:1.5px solid #fff;border-radius:50%;transition:width .3s cubic-bezier(.2,.7,.2,1),height .3s cubic-bezier(.2,.7,.2,1)}.cursor.focus .cl{width:62px;height:62px}.cursor .cl:after{content:attr(data-l);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--display);font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:#fff;opacity:0;transition:opacity .3s;white-space:nowrap}.cursor.focus .cl:after{opacity:1}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--bg);display:flex;align-items:center;justify-content:center}.intro-in{text-align:center}.intro-mark{font-family:var(--display);font-weight:600;font-size:clamp(3rem,12vw,8rem);letter-spacing:.06em;line-height:1}.intro-sub{font-family:var(--cjk);font-size:.9rem;letter-spacing:.4em;color:var(--dim);margin-top:1rem}@media (max-width:700px){.nav .menu{display:none}.caption .t{font-size:1.5rem}body{cursor:auto}.cursor{display:none}}
