[data-reveal] .reveal{opacity:0;filter:blur(6px);transition:opacity .7s cubic-bezier(.22,1,.36,1),translate .7s cubic-bezier(.22,1,.36,1),filter .7s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--i,0) * 70ms);translate:0 18px}[data-reveal][data-inview] .reveal{opacity:1;filter:none;translate:none}[data-reveal] .reveal-line{transition:scale 1.1s cubic-bezier(.22,1,.36,1);scale:0 1}[data-reveal][data-inview] .reveal-line{scale:1}@media (prefers-reduced-motion:reduce){[data-reveal] .reveal{filter:none;transition:opacity .3s;translate:none}[data-reveal] .reveal-line{transition:none;scale:1}}@media (scripting:none){[data-reveal] .reveal-line{scale:1}[data-reveal] .reveal{opacity:1;filter:none;translate:none}}
@keyframes marquee{to{translate:-50%}}.marquee-row{animation:60s linear infinite marquee}.marquee-row[data-reverse]{animation-direction:reverse}@media (prefers-reduced-motion:reduce){.marquee-row{animation:none}}
.ach{--ach-line:color-mix(in oklab, var(--foreground) 14%, transparent);--ach-node:color-mix(in oklab, var(--foreground) 38%, transparent);--ach-kanji:.13}:root[data-theme=dark] .ach{--ach-line:color-mix(in oklab, var(--foreground) 16%, transparent);--ach-node:color-mix(in oklab, var(--foreground) 40%, transparent);--ach-kanji:.2}.ach-heading{text-align:center}.ach-heading h2{font-size:clamp(2.75rem,5vw,4.5rem)}.ach-photo-frame{background:var(--surface);border-radius:28px;position:absolute;inset:0;overflow:hidden;box-shadow:0 24px 60px -30px #00000040}.ach-photo{position:absolute;inset:0}.ach-card{margin:0;position:relative}.ach-seal{pointer-events:none;width:68px;height:68px;position:absolute;bottom:18px;right:18px}.ach-seal-art{width:100%;height:100%;color:var(--accent);display:block;position:relative;transform:rotate(-4deg)}.ach-ink{background:var(--accent);opacity:0;border-radius:12px;position:absolute;inset:4px}.ach-seal-glyph{font-family:var(--font-noto-serif-jp)}.ach-kanji{font-family:var(--font-noto-serif-jp);letter-spacing:.06em;writing-mode:vertical-rl;color:var(--accent);opacity:var(--ach-kanji);-webkit-user-select:none;user-select:none;font-weight:600;line-height:1}.ach-title{font-size:3rem;line-height:1.1}.ach-meta{letter-spacing:.2em;color:color-mix(in oklab, var(--foreground) 70%, transparent);margin:14px 0 20px;font-size:14px;line-height:1.4}.ach-body{text-wrap:pretty;color:color-mix(in oklab, var(--foreground) 70%, transparent);font-size:20px;line-height:1.6}.ach-stage:focus-visible,.ach-track:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);outline:none}.ach-node{box-sizing:border-box;border:1.5px solid var(--ach-node);background:var(--background);border-radius:50%;width:11px;height:11px}.ach-node[data-on]{border-color:var(--accent);background:var(--accent)}.ach{padding:64px max(24px,6vw) 96px}.ach-heading{margin-bottom:56px}.ach-thread,.ach-fill,.ach-link{display:none}.ach-frames{border-left:1.5px solid var(--accent);gap:72px;max-width:1180px;margin:0;padding:0 0 0 28px;list-style:none;display:grid}.ach-frame{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"card card""text kanji";gap:24px;display:grid}.ach-media{display:contents}.ach-card{aspect-ratio:3/2;grid-area:card}.ach-text{grid-area:text}.ach-kanji{grid-area:kanji;font-size:56px}@media (min-width:900px){.ach-frame{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;grid-template-areas:"card text kanji";align-items:center;gap:40px}}@media (min-width:1024px) and (min-height:620px) and (prefers-reduced-motion:no-preference) and (scripting:enabled){.ach{--ach-w:min(42vw, 66vh);--ach-tw:min(520px, 34vw);--ach-left:calc((100vw - (var(--ach-w) + 222px + var(--ach-tw))) / 2);--ach-thread:calc(230px + (100vh - 230px) * .52);height:calc((var(--n) - 1) * 125vh + 100vh);margin-bottom:96px;padding:0;position:relative}.ach-stage{height:100vh;position:sticky;top:0;overflow:hidden}.ach-heading{z-index:2;width:100vw;margin:0;position:absolute;top:132px;left:0}.ach-track{width:calc(var(--n) * 100vw);will-change:transform;height:100%;position:absolute;top:0;left:0}.ach-thread,.ach-fill{top:var(--ach-thread);background:var(--ach-line);width:100%;height:1.5px;display:block;position:absolute;left:0}.ach-fill{background:var(--accent);transform-origin:0;will-change:transform;transform:scaleX(0)}.ach-frames{border:0;max-width:none;height:100%;padding:0;display:block}.ach-frame{--ach-shift:calc(var(--ach-side) * 5vh);top:0;left:calc(var(--i) * 100vw);contain:layout style paint;width:100vw;height:100%;display:block;position:absolute}.ach-frame[data-side=up]{--ach-side:-1}.ach-frame[data-side=down]{--ach-side:1}.ach-kanji{top:calc(var(--ach-thread) + var(--ach-shift));left:var(--ach-left);justify-content:center;width:110px;font-size:clamp(72px,7vw,104px);display:flex;position:absolute;transform:translateY(-50%)}.ach-card{top:calc(var(--ach-thread) - var(--ach-w) / 3 + var(--ach-shift));left:calc(var(--ach-left) + 150px);width:var(--ach-w);height:calc(var(--ach-w) / 1.5);aspect-ratio:auto;position:absolute}.ach-photo{will-change:transform;transform:scale(1.06)}.ach-seal{opacity:0;width:76px;height:76px;bottom:20px;right:20px}.ach-link{display:contents}.ach-link-line,.ach-link-fill{display:none}.ach-node{top:calc(var(--ach-thread) - 4.75px);left:calc(var(--ach-left) + 150px + var(--ach-w) + 30.5px);position:absolute}.ach-text{left:calc(var(--ach-left) + 150px + var(--ach-w) + 72px);width:var(--ach-tw);position:absolute}.ach-body{opacity:0;will-change:opacity}.ach-frame[data-side=up] .ach-text{bottom:calc(100% - var(--ach-thread) + 32px)}.ach-frame[data-side=down] .ach-text{top:calc(var(--ach-thread) + 32px)}}@media (min-width:1024px) and (min-height:620px) and (prefers-reduced-motion:no-preference) and (scripting:enabled) and ((max-width:1279.98px) or (max-height:800px)){.ach{--ach-thread:calc(230px + (100vh - 230px) * .5)}.ach-title{font-size:2.5rem}.ach-meta{margin:10px 0 12px;font-size:13px}.ach-body{font-size:18px;line-height:1.55}}@media (min-width:1024px) and (min-height:620px) and (max-height:759.98px) and (prefers-reduced-motion:no-preference) and (scripting:enabled){.ach{--ach-thread:calc(230px + (100vh - 230px) * .45)}.ach-heading{top:126px;left:var(--ach-left);text-align:left;width:auto}}@media ((max-width:1023.98px) or (max-height:619.98px)) and (prefers-reduced-motion:no-preference) and (scripting:enabled){.ach{--ach-frame:min(100vw - 48px, 560px);padding:40px 0 48px}.ach-heading{margin:0 24px 24px}.ach-track{padding:8px calc((100vw - var(--ach-frame)) / 2);overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;overflow-x:auto}.ach-track::-webkit-scrollbar{display:none}.ach-frames{border:0;gap:16px;width:max-content;max-width:none;padding:0;display:flex}.ach-frame{width:var(--ach-frame);scroll-snap-align:center;scroll-snap-stop:always;flex:none;display:block}.ach-media{gap:8px;display:flex}.ach-card{flex:1}.ach-kanji{flex:none;justify-content:center;width:40px;font-size:36px;display:flex}.ach-photo{transform:scale(1.06)}.ach-seal{opacity:0;width:54px;height:54px;bottom:14px;right:14px}.ach-ink{border-radius:9px;inset:3px}.ach-link{height:36px;display:block;position:relative}.ach-link-line,.ach-link-fill{background:var(--ach-line);height:1.5px;position:absolute;top:17px;left:-8px;right:-8px}.ach-link-fill{background:var(--accent);transform-origin:0;transform:scaleX(0)}.ach-node{margin-left:-5.5px;position:absolute;top:12.5px;left:50%}.ach-text{padding-top:4px}.ach-title{font-size:2rem;line-height:1.15}.ach-meta{margin:10px 0 14px;font-size:13px}.ach-body{opacity:0;font-size:19px;line-height:1.6}}
.orbit-hero{--tile:52px;--ring-r:520px;--ring-depth:90px;--ring-gap:84px;--ring-clear:calc(var(--ring-depth) + var(--tile) / 2 + 2rem)}@media (min-width:1280px){.orbit-hero{--tile:56px;--ring-r:620px;--ring-depth:120px}}@media (min-width:1536px){.orbit-hero{--tile:60px;--ring-r:700px;--ring-depth:150px}}.orbit-ring{width:calc(var(--ring-r) * 2);aspect-ratio:1;position:absolute;top:50%;translate:0 -50%}.orbit-ring[data-side=left]{left:calc(var(--ring-depth) - var(--ring-r) * 2)}.orbit-ring[data-side=right]{left:calc(100% - var(--ring-depth))}@keyframes orbit{to{rotate:360deg}}.orbit-spin{animation:140s linear infinite orbit}.orbit-ring[data-side=right] .orbit-spin{animation-direction:reverse}.orbit-tile{transform:translate(-50%, -50%) rotate(var(--angle)) translateX(var(--ring-r))}.orbit-ring[data-side=right] .orbit-tile{transform:translate(-50%, -50%) rotate(var(--angle)) translateX(calc(var(--ring-r) * -1))}@media (prefers-reduced-motion:reduce){.orbit-spin{animation:none}}
