:root{--bg:#050505;--fg:#f7f5f0;--mute:#f7f5f09e;--faint:#f7f5f061;--line:#f7f5f04d;--glass:#0505058c;--display:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;--body:"Zen Kaku Gothic New","Hiragino Sans","Noto Sans JP",system-ui,sans-serif;color-scheme:dark}html,body{background:var(--bg);height:100%;color:var(--fg);margin:0;overflow:hidden}body{font-family:var(--body);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}#stage{transition:opacity 2.2s,filter 2.2s;position:fixed;inset:0;overflow:hidden}body.done #stage{opacity:.32;filter:grayscale(.3)blur(1.5px)}#cam{transform:scale(var(--zoom,1.22));transition:transform 15s;position:absolute;inset:0}body.run #cam{--zoom:1}#drift{position:absolute;inset:-4%}body.done #drift{animation:40s ease-in-out infinite alternate drift}@keyframes drift{to{transform:scale(1.06)translate(-1.5%,1%)}}#drift.shake{animation:.22s linear shake}@keyframes shake{25%{transform:translate(3px,-2px)}50%{transform:translate(-2px,2px)}75%{transform:translate(1px,1px)}}.pola{width:var(--w);aspect-ratio:640/778;opacity:0;will-change:transform;transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) rotate(calc(var(--r) + var(--spin))) scale(2.1);position:absolute;top:0;left:0}.pola img{-o-object-fit:cover;object-fit:cover;filter:brightness(1.5)saturate(.2)contrast(.85);width:100%;height:100%;transition:filter 1.1s;display:block;box-shadow:0 14px 28px #0009,0 2px 3px #00000080}.pola.in{opacity:1;transform:translate(-50%,-50%) rotate(var(--r)) scale(1);transition:transform var(--dur,.55s) cubic-bezier(.18,.9,.3,1.08),opacity .12s}.pola.in img{filter:none}#flash{background:var(--fg);opacity:0;pointer-events:none;position:fixed;inset:0}#flash.on{animation:.45s ease-out flash}@keyframes flash{0%{opacity:.3}to{opacity:0}}#grain{pointer-events:none;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:.5s steps(4,end) infinite grain;position:fixed;inset:-50%}@keyframes grain{25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}}#counter{z-index:2;text-align:center;pointer-events:none;text-shadow:0 4px 40px #000000e6,0 0 2px #0009;perspective:900px;--z:.3;--tilt:14deg;transition:opacity 1s;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#counter .stack{transform:translateZ(0) rotateX(var(--tilt)) scale(var(--z));transform-origin:50% 60%;will-change:transform;position:relative}#counter .ghost{font:700 clamp(84px,17vw,230px)/1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:.02em;pointer-events:none;animation:.7s cubic-bezier(.3,.1,.6,1) forwards fly;position:absolute;inset:0}@keyframes fly{0%{opacity:.55;transform:scale(1)}to{opacity:0;filter:blur(8px);transform:scale(2.4)}}#counter .n{font:700 clamp(84px,17vw,230px)/1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:.02em}#counter .l{font:400 12px/1 var(--body);letter-spacing:.5em;margin-top:10px;padding-left:.5em}body.done #counter{opacity:0}#skip{right:20px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:5;color:var(--mute);font:400 11px var(--body);letter-spacing:.3em;cursor:pointer;background:0 0;border:0;padding:8px;position:fixed}#skip:focus-visible,.back:focus-visible,button.go:focus-visible{outline:2px solid var(--fg);outline-offset:3px}body.done #skip{display:none}#ui{z-index:3;padding:calc(72px + env(safe-area-inset-top,0px)) 16px calc(48px + env(safe-area-inset-bottom,0px));text-align:center;opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;transition:opacity 1.6s .4s,transform 1.6s .4s;display:flex;position:fixed;inset:0;transform:translateY(12px)}body.done #ui{opacity:1;pointer-events:auto;transform:none}.back{top:calc(20px + env(safe-area-inset-top,0px));color:var(--fg);font:400 12px/1 var(--body);letter-spacing:.1em;border:1px solid var(--line);background:var(--glass);border-radius:999px;padding:10px 16px;text-decoration:none;transition:background .2s;position:absolute;left:20px}.back:hover{background:#f7f5f01f}.kicker{font:700 11px/1 var(--body);letter-spacing:.45em;color:var(--mute);margin:0 0 26px;padding-left:.45em}.kicker b{color:var(--fg)}h1{font:700 clamp(46px,7.6vw,108px)/1.1 var(--display);letter-spacing:.14em;text-wrap:balance;margin:0 -.14em 0 0}.en{font:400 clamp(11px,1.05vw,13px)/1 var(--body);letter-spacing:.6em;color:var(--mute);margin:18px 0 34px;padding-left:.6em}.lead{font:500 clamp(15px,1.5vw,19px)/2 var(--display);letter-spacing:.08em;margin:0}.lead-en{font:300 clamp(12px,1.05vw,14px)/1.8 var(--body);color:var(--mute);letter-spacing:.04em;margin:6px 0 0}.soon{font:700 clamp(12px,1.2vw,15px)/1 var(--body);letter-spacing:.6em;border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-width:min(320px,100%);margin:42px 0 0;padding:14px 0 14px .6em}form{border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(8px);border-radius:999px;width:min(460px,100%);margin-top:22px;padding:5px;display:flex}input{min-width:0;color:var(--fg);font:400 14px var(--body);background:0 0;border:0;outline:0;flex:1;padding:0 18px}.hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}input::placeholder{color:var(--faint)}button.go{background:var(--fg);color:var(--bg);font:700 12px/1 var(--body);letter-spacing:.08em;cursor:pointer;white-space:nowrap;border:0;border-radius:999px;padding:12px 22px}button.go:disabled{opacity:.6;cursor:default}.note{font:300 11px/1.6 var(--body);color:var(--mute);min-height:1.6em;margin:12px 0 0}.foot{bottom:calc(16px + env(safe-area-inset-bottom,0px));font:400 10px/1 var(--body);letter-spacing:.3em;color:var(--faint);font-variant-numeric:tabular-nums;margin:0;position:absolute}@media (width<=600px){.back{top:calc(14px + env(safe-area-inset-top,0px));padding:9px 14px;font-size:11px;left:16px}h1{letter-spacing:.06em;margin-right:-.06em}.en{letter-spacing:.4em}.lead{letter-spacing:.04em;font-size:15px}.soon{margin-top:28px}form{border-radius:14px;flex-direction:column;gap:6px;padding:6px}input{padding:12px}button.go{border-radius:10px;padding:14px}}@media (prefers-reduced-motion:reduce){#drift,#grain,body.done #drift{animation:none}#cam{transition:none}#counter .ghost{display:none}.pola,.pola img,#ui,#stage{transition:none}}
