:root{--ink:#0c0c0e;--paper:#f1f1ee;--yellow:#f5c400;--red:#d7000f;--green:#00713d;--green-signal:#3ddc84;--gray:#8a8a85;--gray-dim:#6a6a66;--gray-soft:#9a9a94;--gray-ink:#5a5a55;--gray-warm:#77746c;--surface-0:#070709;--surface-1:#0c0c0e;--surface-2:#141416;--surface-3:#17171b;--surface-4:#1c1c21;--border-dark:#23242b;--border-dark-soft:#2c2c31;--bg-dark:var(--surface-0);--bg-light:var(--paper);--text-on-dark:#f1f1ee;--text-on-light:var(--ink);--accent:var(--yellow);--accent-text:var(--ink);--line-red:var(--red);--line-yellow:var(--yellow);--line-green:var(--green);--line-blue:#2e77c9;--line-magenta:#b13a8c;--status-ok:var(--green-signal);--status-live:var(--yellow);--font-display:"Unbounded",sans-serif;--font-body:"Manrope",sans-serif;--font-mono:"JetBrains Mono",monospace;--font-jp:"Noto Sans JP",sans-serif;--display:var(--font-display);--body:var(--font-body);--mono:var(--font-mono);--jp:var(--font-jp);--text-display-xl:clamp(42px,8vw,104px);--text-display-lg:56px;--text-display-md:44px;--text-display-sm:26px;--text-body:16px;--text-mono-label:11px;--text-mono-sm:10px;--tracking-label:.25em;--tracking-wide:.3em;--tracking-tight:-.02em;--space-1:6px;--space-2:10px;--space-3:14px;--space-4:18px;--space-5:24px;--space-6:34px;--space-7:40px;--space-8:60px;--line-w:3px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:16px;--shadow-card:0 40px 90px rgba(0,0,0,.6);--shadow-deep:0 60px 110px rgba(0,0,0,.75)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg-dark);color:var(--text-on-dark);font-family:var(--body);overflow-x:hidden}a{color:var(--yellow);text-decoration:none}a:hover{color:var(--paper)}::selection{background:var(--yellow);color:var(--ink)}body:after{content:"";position:fixed;inset:0;z-index:300;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}section{position:relative}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@keyframes blink{0%,to{opacity:1}50%{opacity:.2}}@keyframes sway{0%,to{transform:rotate(-.7deg)}50%{transform:rotate(.7deg)}}@keyframes stripeMove{to{background-position:46px 0}}@keyframes hazMove{to{background-position:28.28px 0}}@keyframes exitGlow{0%,to{box-shadow:0 0 24px #00713d8c,inset 0 0 0 2px #ffffff40}50%{box-shadow:0 0 44px #00b45fcc,inset 0 0 0 2px #ffffff73}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.reveal{opacity:0;transform:translateY(46px);transition:opacity .9s cubic-bezier(.19,1,.22,1),transform .9s cubic-bezier(.19,1,.22,1)}.reveal.visible{opacity:1;transform:none}.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.rv0{opacity:0;transform:translateY(30px)}.rv1{opacity:1;transform:translateY(0);transition:opacity .95s cubic-bezier(.19,1,.22,1),transform .95s cubic-bezier(.19,1,.22,1)}footer{padding:26px calc(6vw + 90px);border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--gray);text-transform:uppercase}@media(max-width:920px){footer{padding-left:6vw}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.doors{display:none}.hanko{transform:rotate(8deg) scale(1);opacity:.9}}.doors{position:fixed;inset:0;z-index:400;display:flex}.doors.open{pointer-events:none}.doors .veil{position:absolute;inset:0;background:#08080a}.doors.open .veil{animation:doorVeil 1.05s .18s cubic-bezier(.33,0,.2,1) forwards}.doors .seam{position:absolute;left:50%;top:0;bottom:0;width:26vw;transform:translate(-50%) scaleX(.12);opacity:0;pointer-events:none;filter:blur(2px);mix-blend-mode:screen;background:linear-gradient(90deg,transparent 0%,rgba(245,196,0,.14) 34%,rgba(255,232,160,.4) 47%,rgba(255,248,225,.85) 50%,rgba(255,232,160,.4) 53%,rgba(245,196,0,.14) 66%,transparent 100%)}.doors.open .seam{animation:doorSeam 1s cubic-bezier(.4,0,.25,1) forwards}.doors .panel{position:relative;width:50%;height:100%;border-top:5px solid #232327;border-bottom:7px solid #08080a;will-change:transform;backface-visibility:hidden}.doors .panel.left{background:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px),linear-gradient(90deg,rgba(255,255,255,.06) 0%,transparent 26%,transparent 74%,rgba(0,0,0,.55) 100%),linear-gradient(180deg,#26262b,#1b1b20 16%,#161619 56%,#0e0e11);box-shadow:inset 0 6px 18px #00000080,inset 0 -22px 40px #0000008c,34px 0 70px #000000d9}.doors .panel.right{background:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px),linear-gradient(270deg,rgba(255,255,255,.06) 0%,transparent 26%,transparent 74%,rgba(0,0,0,.55) 100%),linear-gradient(180deg,#26262b,#1b1b20 16%,#161619 56%,#0e0e11);box-shadow:inset 0 6px 18px #00000080,inset 0 -22px 40px #0000008c,-34px 0 70px #000000d9}.doors .pane{position:absolute;top:13%;width:52%;height:36%;border:3px solid #2a2a2f;border-radius:var(--radius-md);overflow:hidden;background:linear-gradient(168deg,#8c98af29,#101218eb 42%,#060709f5);box-shadow:inset 0 2px #ffffff12,inset 0 -26px 48px #000000a6,0 22px 46px #00000080}.doors .pane:after{content:"";position:absolute;inset:-45%;background:linear-gradient(115deg,transparent 36%,rgba(255,255,255,.1) 45%,rgba(255,255,255,.03) 51%,transparent 58%)}.doors .panel.left .pane{right:10%}.doors .panel.right .pane{left:10%}.doors .panel:after{content:"";position:absolute;top:0;bottom:0;width:11px;background:repeating-linear-gradient(45deg,var(--yellow) 0 10px,#0b0b0d 10px 20px);animation:hazMove .9s linear infinite}.doors .panel:before{content:"";position:absolute;top:0;bottom:0;width:26px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.6))}.doors .panel.left:after{right:0;box-shadow:inset -2px 0 #08080a}.doors .panel.left:before{right:11px}.doors .panel.right:after{left:0;box-shadow:inset 2px 0 #08080a}.doors .panel.right:before{left:11px;transform:scaleX(-1)}.doors .door-label{position:absolute;bottom:22%;width:100%;text-align:center;font-family:var(--jp);font-weight:900;font-size:14px;letter-spacing:.4em;color:#ffffff52;text-shadow:0 1px 0 rgba(0,0,0,.6);animation:doorLabelIn .7s .15s cubic-bezier(.19,1,.22,1) backwards}.doors.open .door-label{animation:doorLabelOut .34s cubic-bezier(.4,0,1,1) forwards}.doors .center-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;width:110px;height:110px;border-radius:50%;border:6px solid var(--yellow);background:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--mono);font-weight:700;box-shadow:0 0 0 1px #000c,0 18px 44px #0009,0 0 34px #f5c40038,inset 0 0 22px #f5c4001f;animation:doorBadgeIn .62s cubic-bezier(.19,1,.22,1) backwards}.doors .center-badge .l{font-size:26px;color:var(--yellow)}.doors .center-badge .n{font-size:13px;letter-spacing:.2em;color:var(--gray)}.doors.open .center-badge{animation:doorBadgeOut .42s cubic-bezier(.5,0,.9,.6) forwards}.doors.open .panel.left{animation:doorOpenLeft 1.25s cubic-bezier(.7,0,.14,1) forwards}.doors.open .panel.right{animation:doorOpenRight 1.25s .05s cubic-bezier(.7,0,.14,1) forwards}.doors.gone{display:none}@keyframes doorOpenLeft{0%{transform:translate(0);animation-timing-function:cubic-bezier(.35,0,.6,1)}16%{transform:translate(.5%)}to{transform:translate(-101%)}}@keyframes doorOpenRight{0%{transform:translate(0);animation-timing-function:cubic-bezier(.35,0,.6,1)}16%{transform:translate(-.5%)}to{transform:translate(101%)}}@keyframes doorSeam{0%{opacity:0;transform:translate(-50%) scaleX(.12)}20%{opacity:1;transform:translate(-50%) scaleX(.3)}to{opacity:0;transform:translate(-50%) scaleX(1.7)}}@keyframes doorVeil{0%{opacity:1}to{opacity:0}}@keyframes doorBadgeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes doorBadgeOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}to{opacity:0;transform:translate(-50%,-50%) scale(.62);filter:blur(7px)}}@keyframes doorLabelIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes doorLabelOut{0%{opacity:1}to{opacity:0;transform:translateY(-8px)}}.metro-nav{position:fixed;left:32px;top:50%;transform:translateY(-50%);z-index:100;display:flex;flex-direction:column}.metro-nav .rail{position:absolute;left:11px;top:12px;bottom:12px;width:var(--line-w);background:#ffffff2e}.metro-nav .rail-fill{position:absolute;left:0;top:0;width:100%;height:0%;background:var(--yellow);transition:height .15s linear}.station{display:flex;align-items:center;gap:14px;padding:34px 0;text-decoration:none;color:inherit;position:relative}.station .dot{width:25px;height:25px;border-radius:50%;border:var(--line-w) solid rgba(255,255,255,.35);background:var(--ink);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:9px;font-weight:700;color:#ffffff80;transition:all .3s;flex-shrink:0}.station .label{font-family:var(--mono);font-size:11px;letter-spacing:.15em;color:#fff6;text-transform:uppercase;transition:color .3s;white-space:nowrap}.station .label span{display:block;font-family:var(--jp);font-size:9px;color:#ffffff40}.station.active .dot{border-color:var(--yellow);color:var(--yellow);transform:scale(1.2);box-shadow:0 0 14px #f5c40080}.station.active .label{color:var(--paper)}.station:hover .label{color:var(--yellow)}.metro-nav.on-light .rail{background:#0c0c0e2e}.metro-nav.on-light .station .dot{border-color:#0c0c0e59}.metro-nav.on-light .station .label{color:#0c0c0e73}.metro-nav.on-light .station .label span{color:#0c0c0e4d}.metro-nav.on-light .station.active .label{color:var(--ink)}.train{position:absolute;left:5px;top:12px;width:15px;height:15px;background:var(--yellow);border-radius:50%;box-shadow:0 0 16px #f5c400b3;transition:top .15s linear;z-index:2}.topbar{position:fixed;top:0;left:0;right:0;z-index:99;display:flex;justify-content:space-between;align-items:center;padding:20px 40px;mix-blend-mode:difference}.topbar .logo{font-family:var(--display);font-weight:900;font-size:15px;letter-spacing:.05em;color:#fff;text-decoration:none}.topbar .logo em{font-style:normal;opacity:.5}.topbar .status{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:#fff;display:flex;align-items:center;gap:10px}.topbar .status:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--yellow);animation:blink 1.4s infinite}.topbar .nav-links{display:flex;align-items:center;gap:28px}.topbar .tb-left{display:flex;align-items:center;gap:clamp(14px,2vw,26px);min-width:0}.topbar .back-btn{display:inline-flex;align-items:center;gap:9px;flex-shrink:0;border:2px solid rgba(255,255,255,.45);border-radius:999px;padding:9px 16px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:#fff;text-transform:uppercase;white-space:nowrap;transition:border-color .3s,background .3s,color .3s}.topbar .back-btn .arw{font-size:15px;line-height:1;transition:transform .3s}.topbar .back-btn:hover{border-color:#fff;background:#ffffff24;color:#fff}.topbar .back-btn:hover .arw{transform:translate(-3px)}.exit-sign{position:fixed;right:24px;bottom:24px;z-index:150;background:var(--green);color:#fff;text-decoration:none;font-family:var(--jp);font-weight:900;font-size:15px;padding:12px 18px;border-radius:8px;display:flex;align-items:center;gap:10px;box-shadow:0 0 24px #00713d8c,inset 0 0 0 2px #ffffff40;animation:exitGlow 2.4s infinite;transition:transform .3s}.exit-sign small{font-family:var(--mono);font-weight:700;font-size:9px;letter-spacing:.2em;opacity:.85}.exit-sign:hover{transform:scale(1.06);color:#fff}.cookie-bar{position:fixed;left:24px;bottom:24px;z-index:180;width:min(420px,calc(100vw - 48px));background:#0e0f13;border:2px solid var(--border-dark);border-radius:var(--radius-lg);padding:18px 20px 16px;display:flex;flex-direction:column;gap:14px;box-shadow:0 30px 70px #0000008c,inset 0 0 40px #ffffff05;transform:translateY(calc(100% + 40px));opacity:0;transition:transform .55s cubic-bezier(.19,1,.22,1),opacity .4s}.cookie-bar.open{transform:none;opacity:1}.cookie-bar:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:repeating-linear-gradient(45deg,var(--yellow) 0 12px,var(--ink) 12px 24px)}.cb-head{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:2px solid var(--yellow);padding-bottom:10px;font-family:var(--display);font-weight:900;font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:var(--paper)}.cb-head .jp{font-family:var(--jp);font-weight:900;letter-spacing:.08em;color:var(--yellow)}.cb-text{font-family:var(--body);font-size:13px;line-height:1.55;color:#b4b4ae}.cb-actions{display:flex;flex-wrap:wrap;gap:10px}.cb-btn{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:12px 16px;cursor:pointer;font-family:var(--display);font-weight:900;font-size:11px;text-transform:uppercase;letter-spacing:.08em;transition:transform .25s,box-shadow .25s,background .3s,color .3s,border-color .3s}.cb-btn .jp{font-family:var(--jp)}.cb-accept{background:var(--yellow);color:var(--ink);border:none}.cb-accept:hover{transform:translateY(-2px);box-shadow:0 10px 26px #f5c40059}.cb-ghost{background:transparent;color:var(--gray-soft);border:1px solid rgba(255,255,255,.28)}.cb-ghost:hover{color:var(--paper);border-color:var(--paper)}.cookie-settings{background:none;border:none;padding:0;cursor:pointer;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit}.cookie-settings:hover{color:var(--yellow)}.mobile-progress{position:fixed;top:0;left:0;height:4px;width:0%;background:var(--yellow);z-index:200;display:none}@media(max-width:920px){.doors .pane{top:18%;width:68%;height:auto;aspect-ratio:5/4}.doors .panel.left .pane{right:8%}.doors .panel.right .pane{left:8%}.doors .door-label{font-size:10px;letter-spacing:.22em;line-height:1.9;padding:0 10px}.metro-nav{display:none}.mobile-progress{display:block}.exit-sign{right:14px;bottom:14px;font-size:13px;padding:10px 14px}.cookie-bar{left:14px;right:14px;bottom:14px;width:auto;padding:16px 16px 14px}.cb-actions{flex-direction:column}body.cookie-bar-open .exit-sign{transform:translateY(calc(-1 * (var(--cookie-bar-h,220px) + 12px)))}body.cookie-bar-open .exit-sign:hover{transform:translateY(calc(-1 * (var(--cookie-bar-h,220px) + 12px))) scale(1.06)}}
