
:root{--paper:#faf9f5;--ink:#343832;--gold:#9b8055;--muted:#74766f;--latin:"Cormorant Garamond",Georgia,serif;--japanese:"Shippori Mincho","Yu Mincho",serif}*{box-sizing:border-box}.is-home{margin:0;background:var(--paper);color:var(--ink);font-family:var(--japanese);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:1px solid var(--gold);outline-offset:6px}.intro{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:var(--paper);overflow:hidden}.intro-logo-wrap{width:clamp(220px,30vw,390px);transform:translateY(-10px)}.opening-logo{display:block;width:100%;height:auto;overflow:visible}.ink-part{transform-box:fill-box;transform-origin:center;opacity:1}.is-playing .mark-part{animation:mark-assemble 1.7s cubic-bezier(.2,.72,.25,1) both;animation-delay:calc(var(--part) * 90ms)}.is-playing .word-part{animation:ink-emerge 1.4s ease both;animation-delay:calc(.35s + var(--part) * 36ms)}.skip-intro{position:absolute;right:7%;bottom:max(32px,env(safe-area-inset-bottom));padding:10px 0;border:0;background:none;font-size:11px;letter-spacing:.15em;color:var(--muted)}.skip-intro span{margin-left:18px;color:var(--gold)}.home{position:relative;min-height:100svh;min-height:100vh;opacity:0;filter:blur(5px);overflow:hidden;background:radial-gradient(ellipse at 50% 44%,#eae2d326,transparent 48%)}.home-header{display:flex;align-items:center;justify-content:space-between;padding:29px 6%;font-size:10px;letter-spacing:.17em}.small-brand{font-family:var(--latin);font-size:15px;letter-spacing:.13em}.replay{border:0;background:none;font-size:10px;letter-spacing:.08em;padding:8px 0}.replay span{font-size:16px;margin-left:8px;color:var(--gold)}.home-hero{min-height:calc(100svh - 135px);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:35px 6% 75px}.phoenix-wrap{position:relative;width:clamp(135px,17vw,210px);margin-bottom:49px;opacity:0;transform:translateY(15px);filter:blur(4px)}.home-phoenix{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 10px 24px #8877570d)}.phoenix-ground{position:absolute;left:20%;right:20%;bottom:-23px;height:5px;border-radius:50%;background:radial-gradient(ellipse,#9f8b6b12,transparent 70%)}#site-title{font-family:var(--latin);font-size:clamp(34px,5.7vw,76px);font-weight:500;letter-spacing:.10em;line-height:1.3;margin:0;text-align:center}.running-title{display:inline-flex;align-items:baseline;white-space:nowrap}.letter-slot{position:relative;display:inline-block;opacity:0;transform:translateX(85vw);will-change:transform}.running-letter{display:inline-block;transform-origin:50% 100%}.word-space{min-width:.20em}.letter-dust{position:absolute;left:-.08em;bottom:-.05em;pointer-events:none;height:8px;width:25px;opacity:0}.letter-dust i{position:absolute;bottom:0;left:0;width:4px;height:3px;border-radius:50%;background:#b0a28b80}.letter-dust i:nth-child(2){left:6px;width:5px;height:4px}.letter-dust i:nth-child(3){left:13px;width:3px;height:3px}.letter-dust i:nth-child(4){left:20px;width:2px;height:2px}.home.title-running .letter-slot{animation:letter-arrive .86s cubic-bezier(.1,.68,.22,1) both;animation-delay:calc(var(--letter) * 105ms)}.home.title-running .running-letter{animation:little-trot .17s ease-in-out 4,letter-settle .22s ease-out .68s;animation-delay:calc(var(--letter) * 105ms),calc(var(--letter) * 105ms + .68s)}.home.title-running .word-space .running-letter{animation:none}.home.title-running .letter-dust{animation:dust-arrive .75s ease-out both;animation-delay:calc(var(--letter) * 105ms + .40s)}.home.title-running .letter-dust i{animation:dust-lift .6s ease-out both;animation-delay:calc(var(--letter) * 105ms + .55s)}.home.title-running .letter-dust i:nth-child(2){animation-delay:calc(var(--letter) * 105ms + .60s)}.home.title-running .letter-dust i:nth-child(3){animation-delay:calc(var(--letter) * 105ms + .66s)}.home.title-running .word-space .letter-dust{display:none}.home-copy{font-family:var(--japanese);font-size:clamp(13px,1.5vw,18px);font-weight:400;letter-spacing:.21em;line-height:2;opacity:0;margin:29px 0 0}.fine-line{height:35px;width:1px;background:linear-gradient(transparent,#ad9c7d66);margin-top:42px;opacity:.5}.home footer{text-align:center;position:absolute;bottom:22px;left:0;right:0;font-family:var(--latin);font-size:10px;letter-spacing:.2em;color:var(--muted)}.home.settled .letter-slot{will-change:auto}.intro[hidden]{display:none}.home.static,.home.static .phoenix-wrap{opacity:1;filter:none;transform:none}.home.static .letter-slot{opacity:1;transform:none}.home.static .running-letter{transform:none}.home.static .home-copy{opacity:1}.home.static .letter-slot,.home.static .running-letter,.home.static .letter-dust,.home.static .letter-dust i{animation:none!important}.home.static .letter-dust{display:none}@keyframes mark-assemble{0%{opacity:0;transform:rotate(-32deg) scale(.93) translateY(3px)}45%{opacity:.75}100%{opacity:1;transform:none}}@keyframes ink-emerge{0%{opacity:0;transform:translateY(2px)}100%{opacity:1;transform:none}}@keyframes letter-arrive{0%{opacity:0;transform:translateX(85vw) rotate(5deg)}12%{opacity:1}78%{transform:translateX(-.04em) rotate(-1deg)}100%{opacity:1;transform:none}}@keyframes little-trot{0%,100%{transform:translateY(0) rotate(-3deg)}45%{transform:translateY(-.055em) rotate(5deg)}}@keyframes letter-settle{0%{transform:translateY(-.01em) rotate(-2deg)}100%{transform:none}}@keyframes dust-arrive{0%{opacity:0;transform:translateX(6px)}20%{opacity:.7}100%{opacity:0;transform:translateX(-10px)}}@keyframes dust-lift{0%{transform:translate(0,0) scale(.5)}100%{transform:translate(-10px,-9px) scale(1.5)}}@media(max-width:600px){.home-header{padding:23px 7%}.small-brand{font-size:13px}.home-hero{min-height:calc(100svh - 120px);padding-top:10px;padding-bottom:90px}.phoenix-wrap{width:150px;margin-bottom:44px}#site-title{font-size:clamp(29px,7.3vw,43px);letter-spacing:.055em}.home-copy{font-size:13px;letter-spacing:.14em;margin-top:23px}.fine-line{margin-top:33px;height:29px}.intro-logo-wrap{width:250px}.skip-intro{bottom:36px}.letter-dust{transform:scale(.75)}}@media(max-width:360px){#site-title{font-size:7.2vw}.home-copy{font-size:12px}.phoenix-wrap{width:135px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.intro{display:none}.home,.home .phoenix-wrap{opacity:1;filter:none;transform:none}.letter-slot{opacity:1;transform:none}.home-copy{opacity:1}.letter-dust{display:none}}

/* Separate the precise mark from the textured ink lettering. */
.is-playing .mark-part,.is-playing .word-part{animation:none;opacity:1;transform:none}.mechanical-line,.brush-stroke{stroke-dasharray:1;stroke-dashoffset:0}.is-playing .mechanical-line{animation:cut-line .17s linear both}.is-playing .line-a{animation-delay:.12s}.is-playing .line-b{animation-delay:.40s}.is-playing .line-c{animation-delay:.68s}.is-playing .brush-top{animation:brush-write 1.18s cubic-bezier(.25,.08,.48,1) .88s both}.is-playing .brush-bottom{animation:brush-write .85s cubic-bezier(.3,.1,.45,1) 1.8s both}.home{transform-origin:50% 40%;perspective:1200px}.home-bloom{position:absolute;top:43%;left:50%;width:70vmin;height:70vmin;transform:translate(-50%,-50%) scale(.3);border-radius:50%;background:radial-gradient(ellipse,#e5d5b82b 0%,#ede5d327 35%,#ebe6d811 52%,transparent 70%);opacity:0;pointer-events:none}.home.home-arriving .home-bloom{animation:home-bloom 2.6s cubic-bezier(.15,.75,.2,1) both}.home.static{transform:none!important}.home.settled .home-phoenix{opacity:.88}.home.settled .home-bloom{opacity:0}.home-phoenix{transition:opacity 1.5s ease}.home.settled #site-title{color:#444940;transition:color 1.4s ease}@keyframes cut-line{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes brush-write{0%{stroke-dashoffset:1}16%{stroke-dashoffset:.9}38%{stroke-dashoffset:.6}61%{stroke-dashoffset:.46}86%{stroke-dashoffset:.12}100%{stroke-dashoffset:0}}@keyframes home-bloom{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}@media(prefers-reduced-motion:reduce){.mechanical-line,.brush-stroke{stroke-dashoffset:0}.home{transform:none!important}.home-bloom{display:none}}

/* Huge letters run away from the lens, land unevenly, then form a clean baseline. */
#site-title{perspective:850px;perspective-origin:50% 40%;transform-style:preserve-3d}.running-title{transform-style:preserve-3d}.letter-slot{transform-style:preserve-3d;transform-origin:50% 100%}.home.title-running .letter-slot{animation:glyph-depth-run 1.3s cubic-bezier(.18,.55,.25,1) both;animation-delay:calc(var(--letter) * 160ms)}.home.title-running .running-letter{animation:perch-tremble .18s ease-in-out infinite;animation-delay:calc(var(--letter) * 160ms + 1.2s)}.home.title-running .letter-dust{animation:dust-arrive .8s ease-out both;animation-delay:calc(var(--letter) * 160ms + 1.1s)}.home.title-running .letter-dust i{animation:dust-lift .65s ease-out both;animation-delay:calc(var(--letter) * 160ms + 1.17s)}.home.title-running .word-space .letter-dust{display:none}.home.title-align .letter-slot{animation:clean-lineup .8s cubic-bezier(.2,.75,.2,1) both;animation-delay:0s}.home.title-align .running-letter{animation:last-shiver .45s ease-out both;animation-delay:0s}.home.title-align .word-space .running-letter{animation:none}.home.static .letter-slot,.home.static .running-letter{animation:none!important;transform:none!important}.home.static .letter-dust{display:none}.home .moneta-kun{display:block;width:100%;height:auto;filter:drop-shadow(0 14px 16px #8c6d4910)}.phoenix-wrap.mascot-wrap{width:clamp(180px,21vw,250px);margin-bottom:38px}.home.settled .moneta-kun{opacity:.94;transition:opacity 1.2s}.home-hero{overflow:visible}@keyframes glyph-depth-run{0%{opacity:0;transform:translate3d(var(--run-x),var(--run-y),645px) rotateZ(calc(var(--perch-tilt) * -1)) scale(1.1)}8%{opacity:1}40%{transform:translate3d(calc(var(--run-x) * .15),calc(var(--perch-y) * 1.8),180px) rotateZ(var(--perch-tilt)) scale(1)}75%{transform:translate3d(var(--perch-x),calc(var(--perch-y) - 7px),0) rotateZ(var(--perch-tilt)) scale(1);opacity:1}88%{transform:translate3d(var(--perch-x),calc(var(--perch-y) + 3px),0) rotateZ(var(--perch-tilt)) scale(1)}100%{opacity:1;transform:translate3d(var(--perch-x),var(--perch-y),0) rotateZ(var(--perch-tilt)) scale(1)}}@keyframes perch-tremble{0%,100%{transform:translate(0,0) rotate(-1deg)}25%{transform:translate(-.012em,-.025em) rotate(1.4deg)}50%{transform:translate(.015em,.01em) rotate(-1.3deg)}75%{transform:translate(-.008em,-.01em) rotate(.7deg)}}@keyframes clean-lineup{0%{opacity:1;transform:translate3d(var(--perch-x),var(--perch-y),0) rotateZ(var(--perch-tilt))}70%{transform:translate3d(0,-2px,0) rotateZ(0)}100%{opacity:1;transform:none}}@keyframes last-shiver{0%{transform:rotate(1deg)}35%{transform:rotate(-.5deg)}100%{transform:none}}@media(max-width:600px){.phoenix-wrap.mascot-wrap{width:205px;margin-bottom:35px}.home-hero{padding-bottom:80px}}@media(prefers-reduced-motion:reduce){.letter-slot,.running-letter{transform:none!important;opacity:1!important}.letter-dust{display:none!important}}

/* Moneta-kun becomes a small animated identity mark, leaving room for the title. */
.phoenix-wrap.mascot-wrap{width:128px;margin-bottom:55px}.home-arriving .moneta-kun{animation:mark-greeting 1.75s cubic-bezier(.2,.75,.3,1) .7s both;transform-origin:50% 82%}.home.settled .moneta-kun{animation:none;transform:none;opacity:1}.home.static .moneta-kun{animation:none!important;transform:none!important}@keyframes mark-greeting{0%{transform:translateY(0) rotate(0)}20%{transform:translateY(-13px) rotate(-7deg) scale(.96,1.04)}38%{transform:translateY(2px) rotate(4deg) scale(1.035,.965)}54%{transform:translateY(-5px) rotate(-3deg)}73%{transform:translateY(0) rotate(1.5deg)}100%{transform:none}}@media(max-width:600px){.phoenix-wrap.mascot-wrap{width:112px;margin-bottom:47px}.home-hero{padding-top:5px;padding-bottom:90px}}@media(prefers-reduced-motion:reduce){.moneta-kun{animation:none!important;transform:none!important}}

/* Sumi silhouette mark: no painted colors or shaded illustration surface. */
.home .moneta-kun{filter:none}.home.settled .moneta-kun{opacity:.92}

/* Draw the shadow mascot with four broad brush passes before its greeting. */
.mascot-brush{stroke-dasharray:1;stroke-dashoffset:0}.home-arriving .paint-head{animation:mascot-write .7s ease-out .08s both}.home-arriving .paint-.is-home{animation:mascot-write .75s ease-out .55s both}.home-arriving .paint-wing{animation:mascot-write .8s ease-out 1s both}.home-arriving .paint-feet{animation:mascot-write .5s ease-out 1.45s both}.home-arriving .moneta-kun{animation-delay:1.95s}.home.mascot-complete .mascot-painted,.home.static .mascot-painted{mask:none}.moneta-kun{overflow:visible}@keyframes mascot-write{0%{stroke-dashoffset:1}30%{stroke-dashoffset:.72}65%{stroke-dashoffset:.31}100%{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.mascot-painted{mask:none}.mascot-brush{stroke-dashoffset:0}}

/* Continuous per-glyph brush paths, without SVG noise or viewport blur filters. */
.ink-writing{stroke-dasharray:1 2;stroke-dashoffset:1}.opening-logo{contain:layout style}.intro-logo-wrap{will-change:opacity,transform}.home{filter:none;will-change:opacity,transform}.phoenix-wrap{filter:none;will-change:opacity,transform}.home.settled,.home.settled .phoenix-wrap{will-change:auto}.home.static .mascot-painted{mask:none}

/* Shape-derived centerlines and changing pressure replace the four coarse wipes. */
.mascot-dab{transition:opacity 75ms linear}.home-arriving .moneta-kun{animation-delay:3.35s}.home.static .mascot-dab{opacity:1!important}.home.static #mascot-ink-finish{opacity:1!important}@media(prefers-reduced-motion:reduce){.mascot-dab{opacity:1!important;transition:none!important}#mascot-ink-finish{opacity:1!important}}

/* Keep the opening fade on its own compositor layer. */
.intro.is-playing{will-change:opacity}
