:root{--fg:243 246 250;--deep:8 14 28;--halo:220 232 248;--ink:rgb(var(--fg));--dim:rgb(var(--fg) / .68);--line:rgb(var(--fg) / .44);--night:#101624;--fallback:linear-gradient(#4a5f85, #7d93b5);--loader:radial-gradient(120% 90% at 50% 42%, #1a2233, #0d121d 70%);--glass:linear-gradient(rgb(var(--fg) / .12), rgb(var(--fg) / .05));--glass-hover:linear-gradient(rgb(var(--fg) / .2), rgb(var(--fg) / .1));--shadow:0 0 22px rgb(var(--deep) / .78), 0 1px 3px rgb(var(--deep) / .45);--serif:"Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;--ease:cubic-bezier(.2, .65, .2, 1)}*,:before,:after{box-sizing:border-box}html{background:var(--night);-webkit-text-size-adjust:100%;height:100%}body{overscroll-behavior:none;touch-action:pinch-zoom;color:var(--ink);font-family:var(--serif);background:var(--fallback);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;font-weight:400;position:fixed;inset:0;overflow:hidden}button{font:inherit;color:inherit}.scene{width:100%;height:100%;display:block;position:fixed;inset:0}.no-webgl .scene{display:none}.grain{z-index:1;pointer-events:none;opacity:.2;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}.stage{z-index:2;text-align:center;text-shadow:var(--shadow);flex-direction:column;justify-content:center;align-items:center;padding:4.5rem 1.5rem 9rem;display:flex;position:fixed;inset:0}.logo{margin:0;font-weight:500;line-height:1}.logo__ja{letter-spacing:.2em;margin-right:-.2em;font-size:clamp(2.2rem,min(10.2vw,11.5vh),5.2rem);display:block}.logo__ja .ch{display:inline-block}.logo__en{letter-spacing:.62em;text-transform:uppercase;color:var(--dim);margin-top:1.7em;margin-right:-.62em;font-size:clamp(.58rem,2.3vw,.72rem);font-weight:400;display:block}.lettering{fill:currentColor;filter:drop-shadow(0 0 12px rgb(var(--deep) / .7));margin:0 auto;display:block;overflow:visible}.logo__ja.is-lettered,.logo__en.is-lettered{letter-spacing:0;margin-right:0}.catch__text.is-lettered{padding-left:0}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.catch{letter-spacing:.26em;justify-content:center;align-items:center;gap:clamp(.6rem,2.4vw,1.1rem);width:min(100%,46rem);margin:clamp(1.7rem,5.2vh,3rem) 0 0;font-size:clamp(.84rem,3.5vw,1.04rem);line-height:1.6;display:flex}.catch__text{white-space:nowrap;padding-left:.26em}.orn{min-width:0;max-width:12rem;color:rgb(var(--fg) / .8);filter:drop-shadow(0 0 5px rgb(var(--deep) / .65));flex:1 1 0;align-items:center;display:flex}.orn--r{transform:scaleX(-1)}.orn__tip{border:1px solid;flex:none;width:5px;height:5px;transform:rotate(45deg)}.orn__line{background:linear-gradient(to right, rgb(var(--fg) / .3), rgb(var(--fg) / .75));transform-origin:100%;flex:1;height:1px}.orn__knot{flex:none;width:30px;height:12px;margin-left:3px;overflow:visible}.cta{border:1px solid rgb(var(--fg) / .62);background:var(--glass);width:min(19rem,80vw);height:3.6rem;box-shadow:0 10px 34px rgb(var(--deep) / .28), inset 0 0 22px rgb(var(--fg) / .05);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-shadow:0 0 14px rgb(var(--deep) / .55);transition:background .6s, border-color .6s, box-shadow .6s, transform .4s var(--ease);border-radius:3px;margin-top:clamp(1.9rem,5.4vh,3.2rem);padding:0;display:block;position:relative;overflow:hidden}.cta:before{content:"";background:linear-gradient(105deg,#0000 36%,#ffffff29 50%,#0000 64%);animation:8s ease-in-out 5s infinite shimmer;position:absolute;inset:0;transform:translate(-120%)}.cta:hover{background:var(--glass-hover);border-color:rgb(var(--fg) / .9);box-shadow:0 10px 40px rgb(var(--deep) / .3), 0 0 36px rgb(var(--halo) / .2), inset 0 0 22px rgb(var(--fg) / .08)}.cta:active{transform:scale(.98)}.cta__frame{border:1px solid rgb(var(--fg) / .28);pointer-events:none;background:radial-gradient(circle at 3px 3px, rgb(var(--fg) / .75) 0 1px, transparent 1.6px), radial-gradient(circle at calc(100% - 3px) 3px, rgb(var(--fg) / .75) 0 1px, transparent 1.6px), radial-gradient(circle at 3px calc(100% - 3px), rgb(var(--fg) / .75) 0 1px, transparent 1.6px), radial-gradient(circle at calc(100% - 3px) calc(100% - 3px), rgb(var(--fg) / .75) 0 1px, transparent 1.6px);border-radius:1px;position:absolute;inset:4px}.cta__frame:before,.cta__frame:after{content:"";border:1px solid rgb(var(--fg) / .75);background:rgb(var(--deep) / .7);width:5px;height:5px;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.cta__frame:before{left:-3.5px}.cta__frame:after{right:-3.5px}.cta.is-press .cta__frame{animation:press .8s var(--ease)}.cta__label{letter-spacing:.52em;text-transform:uppercase;place-items:center;padding-left:.52em;font-size:.8rem;display:grid;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-120%)}26%,to{transform:translate(120%)}}@keyframes press{0%{border-color:rgb(var(--fg) / .95);box-shadow:inset 0 0 20px rgb(var(--fg) / .32)}to{border-color:rgb(var(--fg) / .28);box-shadow:inset 0 0 20px rgb(var(--fg) / 0)}}.chrome{z-index:3;padding:calc(1.3rem + env(safe-area-inset-top)) calc(1.4rem + env(safe-area-inset-right)) 0 calc(1.4rem + env(safe-area-inset-left));text-shadow:var(--shadow);position:fixed;top:0;left:0;right:0}.stamp{text-align:left;margin:0}.stamp__date{letter-spacing:.3em;text-transform:uppercase;color:var(--dim);font-size:.64rem}.foot{z-index:3;padding:1.6rem 1rem calc(1.1rem + env(safe-area-inset-bottom));text-shadow:var(--shadow);background:linear-gradient(transparent, rgb(var(--deep) / .4));justify-items:center;display:grid;position:fixed;bottom:0;left:0;right:0}.keyword{letter-spacing:.6em;opacity:0;filter:blur(12px);min-height:2.4em;transition:opacity 1.6s var(--ease), filter 1.6s var(--ease), transform 1.6s var(--ease);margin:0;padding-left:.6em;font-size:clamp(.98rem,4vw,1.2rem);font-weight:500;transform:translateY(6px)}.is-unveiled .keyword{opacity:1;filter:none;transition-duration:2.6s;transition-delay:1.5s;transform:none}.say{letter-spacing:.3em;opacity:0;filter:blur(5px);min-height:1.7em;margin:0;padding-left:.3em;font-size:.76rem;transition:opacity 1.1s,filter 1.1s}.say.is-on{opacity:.94;filter:none}.week{gap:clamp(.2rem,2.4vw,1rem);margin:.3rem 0 0;padding:0;list-style:none;display:flex}.day{cursor:pointer;width:2.3rem;height:3.4rem;text-shadow:inherit;background:0 0;border:0;align-content:start;justify-items:center;gap:.6rem;padding:.8rem 0 0;display:grid}.day__mark{border:1px solid rgb(var(--fg) / .5);border-radius:50%;width:9px;height:9px;transition:border-color .5s,background .5s,box-shadow .5s;position:relative}.day:hover .day__mark{border-color:var(--ink)}.day--open .day__mark{background:var(--ink);box-shadow:0 0 12px 2px rgb(var(--halo) / .75);border-color:#0000}.is-unveiled .day__mark{background:rgb(var(--fg) / .92);box-shadow:0 0 12px 2px rgb(var(--halo) / .55);transition-duration:1.3s;transition-delay:calc(1.9s + var(--n) * .16s);border-color:#0000}.day__label{letter-spacing:.12em;min-height:1em;color:var(--dim);white-space:nowrap;padding-left:.12em;font-size:.64rem;line-height:1}.day--open .day__label{color:var(--ink)}.day.is-today .day__mark:after{content:"";border:1px solid rgb(var(--fg) / .6);border-radius:50%;animation:3.4s ease-out infinite pulse;position:absolute;inset:-7px}.day.is-shy .day__mark{animation:.5s ease-in-out shy}@keyframes pulse{0%{opacity:0;transform:scale(.55)}30%{opacity:.9}to{opacity:0;transform:scale(1.5)}}@keyframes shy{25%{transform:translate(-2px)}50%{transform:translate(2px)}75%{transform:translate(-1px)}}.credit{letter-spacing:.2em;color:var(--dim);margin:.5rem 0 0;font-size:.6rem}:is(.cta,.day):focus-visible{outline:1px solid var(--ink);outline-offset:4px}:root[data-tone=b]{--night:#2f3d5a;--fallback:linear-gradient(#5a6f95, #94a8c6);--loader:radial-gradient(120% 90% at 50% 42%, #33415e, #1e2740 72%)}:root[data-tone=c],:root[data-tone=d]{--fg:34 46 74;--deep:250 250 248;--halo:255 255 255;--night:#dfe5ec;--shadow:0 0 16px rgb(var(--deep) / .95), 0 0 4px rgb(var(--deep) / .7);--fallback:linear-gradient(#b9c6d8, #e9edf2);--loader:radial-gradient(120% 90% at 50% 42%, #f1f3f6, #d9e0e8 75%);--glass:linear-gradient(#ffffff8c, #ffffff4d);--glass-hover:linear-gradient(#fffc, #ffffff80)}.review{right:calc(.7rem + env(safe-area-inset-right));z-index:4;text-shadow:var(--shadow);justify-items:center;gap:.5rem;display:grid;position:fixed;top:50%;translate:0 -50%}.review button{border:1px solid rgb(var(--fg) / .4);width:2rem;height:2rem;color:var(--dim);cursor:pointer;text-shadow:inherit;background:0 0;border-radius:50%;place-items:center;padding:0;font-size:.62rem;transition:color .4s,border-color .4s,background .4s;display:grid}.review button:hover{color:var(--ink);border-color:var(--ink)}.review .review__copy{writing-mode:vertical-rl;letter-spacing:.2em;border-radius:1rem;width:2rem;height:auto;padding:.7rem 0}.review__copy b{font-weight:400}.review button:focus-visible{outline:1px solid var(--ink);outline-offset:4px}@media (width<=600px){.review{top:auto;bottom:calc(7.6rem + env(safe-area-inset-bottom));translate:none}.catch--long .orn{flex:none}.catch--long .orn__line,.catch--long .orn__tip{display:none}}.words{z-index:2;pointer-events:none;position:fixed;inset:0;overflow:hidden}.word{writing-mode:vertical-rl;letter-spacing:.36em;white-space:nowrap;text-shadow:0 0 18px rgb(var(--deep) / .85), 0 1px 3px rgb(var(--deep) / .5);margin:0;font-size:clamp(.86rem,3.6vw,1rem);animation:7s linear forwards sink;position:absolute}.word span{opacity:0;display:inline-block}@keyframes sink{to{transform:translateY(16px)}}.loader{z-index:10;background:var(--loader);transition:opacity 1.9s var(--ease), visibility 0s 1.9s;place-content:center;justify-items:center;gap:2.4rem;display:grid;position:fixed;inset:0}html:not(.js) .loader{display:none}.loader.is-out{opacity:0;visibility:hidden;pointer-events:none}.loader__glyph{opacity:0;height:1.2em;transition:transform 1.9s var(--ease), filter 1.9s var(--ease);font-size:clamp(3.2rem,15vw,5rem);font-weight:500;line-height:1.2}.loader__glyph.is-flip{animation:.3s ease-out both flip}.loader__glyph.is-moon{animation:moon-in 1.1s var(--ease) both}.loader.is-out .loader__glyph{filter:blur(16px);transform:scale(1.3)}@keyframes flip{0%{opacity:0;filter:blur(8px);transform:translateY(.1em)}to{opacity:.42;filter:none;transform:none}}@keyframes moon-in{0%{opacity:0;filter:blur(10px);text-shadow:none}to{opacity:1;filter:none;text-shadow:0 0 34px rgb(var(--halo) / .55)}}.loader__dots{gap:.75rem;display:flex}.loader__dots i{background:rgb(var(--fg) / .16);border-radius:50%;width:5px;height:5px;transition:background .5s,box-shadow .8s}.loader__dots i.is-on{background:rgb(var(--fg) / .8)}.loader__dots i.is-moon{box-shadow:0 0 10px 2px rgb(var(--halo) / .8)}.js .reveal,.js .logo__ja .ch{opacity:0;filter:blur(12px);transform:translateY(10px)}.js.is-ready .reveal{opacity:1;filter:none;transition:opacity 1.9s var(--ease) var(--d,0s), filter 1.9s var(--ease) var(--d,0s), transform 1.9s var(--ease) var(--d,0s);transform:none}.js.is-ready .logo__ja .ch{opacity:1;filter:none;transition:opacity 2s var(--ease) calc(.5s + var(--i) * .16s), filter 2s var(--ease) calc(.5s + var(--i) * .16s), transform 2s var(--ease) calc(.5s + var(--i) * .16s);transform:none}.js .logo__ja svg .ch{filter:blur(110px);transform:translateY(90px)}.js .orn__knot{opacity:0}.js .orn__line{transform:scaleX(0)}.js .orn__tip{opacity:0}.js.is-ready .orn__knot{opacity:1;transition:opacity 1.4s var(--ease) 2.5s}.js.is-ready .orn__line{transition:transform 2s var(--ease) 2.8s;transform:scaleX(1)}.js.is-ready .orn__tip{opacity:1;transition:opacity 1.2s var(--ease) 4.3s}@media (height<=520px){.stage{padding:3rem 1.5rem 5.5rem}.catch{margin-top:1rem}.cta{height:3rem;margin-top:1.2rem}.foot{padding-top:.4rem}.keyword{min-height:0}.credit{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
