:root{--color-bg:#000;--color-text:#fff;--color-text-dim:#ffffffe0;--color-text-subtle:#ffffffb8;--color-accent-gold:#c9a84c;--color-accent-warm:#d4a574;--color-accent-blue:#4a7c9b;--color-overlay:#0009;--color-overlay-heavy:#000000d9;--font-serif:"Cormorant Garamond", "Noto Serif JP", serif;--font-sans:"Inter", sans-serif;--font-jp:"Noto Serif JP", serif;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:4rem;--space-2xl:8rem;--ease-smooth:cubic-bezier(.25, .46, .45, .94);--ease-out-expo:cubic-bezier(.19, 1, .22, 1);--ease-in-out:cubic-bezier(.645, .045, .355, 1);--duration-fast:.3s;--duration-normal:.6s;--duration-slow:1.2s;--duration-very-slow:2s;--z-bg:0;--z-content:10;--z-overlay:20;--z-header:50;--z-loader:100;--z-start-button:90}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto;background:var(--color-bg);-ms-overflow-style:none;scrollbar-width:none;overflow:hidden}::-webkit-scrollbar{display:none}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;font:inherit;background:0 0;border:none}img{max-width:100%;height:auto;display:block}ul,ol{list-style:none}.fixed-full{width:100%;height:100dvh;position:fixed;top:0;left:0}.abs-full{width:100%;height:100%;position:absolute;top:0;left:0}.flx{align-items:center;display:flex}.flx-column{flex-direction:column;display:flex}.flx-center{justify-content:center;align-items:center}.visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.loader-screen{background:var(--color-bg);width:100%;height:100dvh;z-index:var(--z-loader);transition:opacity .8s var(--ease-out-expo), visibility .8s;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.loader-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.loader-icon{width:60px;height:60px;margin-bottom:var(--space-lg);animation:loaderPulse 2s var(--ease-in-out) infinite}.loader-icon svg{width:100%;height:100%}@keyframes loaderPulse{0%,to{opacity:.3;transform:scale(.95)}50%{opacity:1;transform:scale(1)}}.loader-value{font-family:var(--font-serif);letter-spacing:.1em;color:var(--color-text);font-size:3rem;font-weight:300}.loader-value .percent{opacity:.5;margin-left:2px;font-size:1.5rem}.start-overlay{width:100%;height:100dvh;z-index:var(--z-start-button);background:var(--color-bg);transition:opacity 1.2s var(--ease-out-expo), visibility 1.2s;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.start-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.logo-header{opacity:0;animation:logoFadeIn 1.5s var(--ease-out-expo) .5s forwards;position:absolute;top:15%;left:50%;transform:translate(-50%)}.logo-header svg{width:180px;height:auto;fill:var(--color-text)}@keyframes logoFadeIn{to{opacity:1}}.main-title-container{text-align:center;margin-bottom:var(--space-xl)}.main-title{font-family:var(--font-serif);letter-spacing:.3em;font-weight:300;line-height:1.2}.main-title .mt-above{opacity:0;animation:titleSlideUp 1.2s var(--ease-out-expo) .8s forwards;font-size:clamp(1rem,2.5vw,1.8rem)}.main-title .mt-below{margin-top:var(--space-sm);opacity:0;animation:titleSlideUp 1.2s var(--ease-out-expo) 1s forwards;font-size:clamp(2.5rem,6vw,5rem)}.main-subtitle{font-family:var(--font-jp);letter-spacing:.5em;color:var(--color-text-dim);margin-top:var(--space-md);opacity:0;animation:titleSlideUp 1.2s var(--ease-out-expo) 1.2s forwards;font-size:clamp(.9rem,1.5vw,1.2rem);font-weight:300}@keyframes titleSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.start-button{cursor:pointer;width:120px;height:120px;margin-top:var(--space-xl);opacity:0;animation:titleSlideUp 1.2s var(--ease-out-expo) 1.5s forwards;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.start-button-content{z-index:2;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.start-button .sb-txt{font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;font-size:.65rem;font-weight:500}.start-button .ripple{width:100%;height:100%;animation:rippleExpand 2.5s var(--ease-out-expo) infinite;border:1px solid #ffffff4d;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.start-button .ripple-cover{width:100%;height:100%;animation:rippleExpand 2.5s var(--ease-out-expo) .5s infinite;border:1px solid #ffffff26;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes rippleExpand{0%{opacity:1;width:100%;height:100%}to{opacity:0;width:250%;height:250%}}.start-button:hover .sb-txt{opacity:.8}.site-header{width:100%;padding:var(--space-lg) var(--space-xl);justify-content:flex-end;align-items:center;gap:var(--space-lg);z-index:var(--z-header);opacity:0;transition:opacity .6s var(--ease-smooth);pointer-events:none;display:flex;position:fixed;top:0;left:0}.site-header.visible{opacity:1;pointer-events:auto}.sound-toggle{align-items:center;gap:var(--space-sm);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:opacity var(--duration-fast);font-size:.7rem;font-weight:500;display:flex}.sound-toggle:hover{opacity:.7}.sound-icon{align-items:flex-end;gap:2px;height:14px;display:flex}.sound-icon .bar{background:var(--color-text);width:2px;transition:height .3s var(--ease-smooth);border-radius:1px}.sound-icon .bar:first-child{height:4px}.sound-icon .bar:nth-child(2){height:8px}.sound-icon .bar:nth-child(3){height:12px}.sound-icon .bar:nth-child(4){height:6px}.sound-icon .bar:nth-child(5){height:10px}.sound-toggle.active .sound-icon .bar{animation:soundBar .8s var(--ease-in-out) infinite alternate}.sound-toggle.active .sound-icon .bar:first-child{animation-delay:0s}.sound-toggle.active .sound-icon .bar:nth-child(2){animation-delay:.1s}.sound-toggle.active .sound-icon .bar:nth-child(3){animation-delay:.2s}.sound-toggle.active .sound-icon .bar:nth-child(4){animation-delay:.3s}.sound-toggle.active .sound-icon .bar:nth-child(5){animation-delay:.4s}@keyframes soundBar{0%{height:3px}to{height:14px}}.lang-switch{letter-spacing:.15em;padding:var(--space-xs) var(--space-sm);transition:border-color var(--duration-fast), opacity var(--duration-fast);border:1px solid #fff3;border-radius:2px;font-size:.7rem;font-weight:500}.lang-switch:hover{border-color:#ffffff80}.chapter-label{top:50%;left:var(--space-xl);transform-origin:50%;z-index:var(--z-header);font-family:var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--color-text-dim);white-space:nowrap;opacity:0;transition:opacity var(--duration-normal) var(--ease-smooth);pointer-events:none;font-size:.65rem;font-weight:500;position:fixed;transform:translateY(-50%)rotate(-90deg)}.chapter-label.visible{opacity:1}.section-counter{bottom:var(--space-xl);left:var(--space-xl);z-index:var(--z-header);font-family:var(--font-sans);letter-spacing:.1em;color:var(--color-text-dim);opacity:0;transition:opacity var(--duration-normal) var(--ease-smooth);pointer-events:none;font-size:.75rem;font-weight:400;position:fixed}.section-counter.visible{opacity:1}.section-counter .current{color:var(--color-text);font-weight:600}.scroll-indicator{bottom:var(--space-xl);right:var(--space-xl);z-index:var(--z-header);align-items:center;gap:var(--space-sm);font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-dim);opacity:0;transition:opacity var(--duration-normal) var(--ease-smooth);pointer-events:none;font-size:.6rem;font-weight:400;display:flex;position:fixed}.scroll-indicator.visible{opacity:1}.scroll-indicator .scroll-line{background:#ffffff4d;width:40px;height:1px;position:relative;overflow:hidden}.scroll-indicator .scroll-line:after{content:"";background:var(--color-text);width:100%;height:100%;animation:scrollLineMove 2s var(--ease-in-out) infinite;position:absolute;top:0;left:-100%}@keyframes scrollLineMove{0%{left:-100%}50%{left:0%}to{left:100%}}.pagination{right:var(--space-xl);z-index:var(--z-header);opacity:0;transition:opacity var(--duration-normal) var(--ease-smooth);pointer-events:none;flex-direction:column;gap:12px;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.pagination.visible{opacity:1;pointer-events:auto}.pag-dot{cursor:pointer;width:8px;height:8px;transition:all var(--duration-fast) var(--ease-smooth);background:0 0;border:1px solid #ffffff4d;border-radius:50%;position:relative}.pag-dot:before{content:"";background:var(--color-text);width:0;height:0;transition:all var(--duration-fast) var(--ease-smooth);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pag-dot.active{border-color:var(--color-text)}.pag-dot.active:before{width:4px;height:4px}.pag-dot:hover{border-color:#fff9}.story-section{justify-content:center;align-items:center;width:100%;min-height:100vh;display:flex;position:relative;overflow:hidden}.section-bg{will-change:transform;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;top:0;left:0}.section-bg:after{content:"";background:var(--color-overlay);width:100%;height:100%;position:absolute;top:0;left:0}.section-text{z-index:var(--z-content);max-width:700px;padding:var(--space-xl);text-align:center;position:relative}.section-text p{font-family:var(--font-jp);letter-spacing:.08em;color:var(--color-text);font-size:clamp(1rem,2vw,1.4rem);font-weight:300;line-height:2.2}.letter-reveal .letter{opacity:0;transition:opacity .6s var(--ease-out-expo), transform .6s var(--ease-out-expo);display:inline-block;transform:translateY(20px)}.letter-reveal.revealed .letter{opacity:1;transform:translateY(0)}.section-prologue{background:var(--color-bg)}.section-prologue .section-bg{opacity:.8}.section-prologue .character-layer{z-index:2;will-change:transform;width:40%;max-width:500px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.section-prologue .glow-effect{pointer-events:none;z-index:1;width:300px;height:300px;animation:glowPulse 4s var(--ease-in-out) infinite;background:radial-gradient(circle,#c9a84c26 0%,#0000 70%);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes glowPulse{0%,to{opacity:.6;transform:translate(-50%,-50%)scale(1)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.2)}}.section-encounter{background:#050510}.section-encounter .canvas-container{width:100%;height:100%;position:absolute;top:0;left:0}.section-power{background:var(--color-bg)}.section-castle{background:#030308}.section-castle .castle-reveal{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.section-castle .castle-reveal img{object-fit:cover;will-change:transform, opacity, filter;width:100%;height:100%}.section-battle{background:#0a0005}.section-battle .parallax-layer{will-change:transform;background-position:50%;background-size:cover;width:100%;height:120%;position:absolute;top:0;left:0}.section-gratitude{background:#0a0806}.section-journey{background:var(--color-bg)}.section-journey .cinematic-text{font-family:var(--font-serif);letter-spacing:.15em;text-align:center;color:var(--color-text);will-change:transform, opacity;font-size:clamp(2rem,5vw,4rem);font-weight:300;line-height:1.4}.section-evolution{background:linear-gradient(#000 0%,#0a0a1a 50%,#1a0a2e 100%);min-height:100vh}.section-evolution .brand-values{gap:var(--space-xl);max-width:1200px;padding:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));width:100%;display:grid}.value-card{padding:var(--space-xl);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:all .5s var(--ease-out-expo);will-change:transform, opacity;background:#ffffff08;border:1px solid #ffffff14;border-radius:16px}.value-card:hover{background:#ffffff0f;border-color:#ffffff26;transform:translateY(-4px)}.value-card h3{font-family:var(--font-serif);letter-spacing:.1em;margin-bottom:var(--space-md);color:var(--color-accent-gold);font-size:1.6rem;font-weight:400}.value-card p{font-family:var(--font-jp);color:var(--color-text-dim);font-size:.9rem;font-weight:300;line-height:1.8}.section-ending{background:var(--color-bg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex}.end-logo{margin-bottom:var(--space-2xl);opacity:0;will-change:opacity, transform}.end-logo svg{width:clamp(200px,40vw,500px);height:auto;fill:var(--color-text)}.end-content{align-items:center;gap:var(--space-xl);flex-direction:column;display:flex}.external-actions{gap:var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.simple-button{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);letter-spacing:.1em;transition:all var(--duration-fast) var(--ease-smooth);border:1px solid #fff3;border-radius:4px;font-size:.75rem;font-weight:400;display:inline-flex}.simple-button:hover{background:#ffffff0d;border-color:#ffffff80}.sns-links{gap:var(--space-md);display:flex}.sns-link{width:40px;height:40px;transition:all var(--duration-fast) var(--ease-smooth);border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;display:flex}.sns-link:hover{background:#ffffff0d;border-color:#fff6}.sns-link img{filter:brightness(0)invert();width:16px;height:16px}.copyright{color:var(--color-text-subtle);letter-spacing:.05em;margin-top:var(--space-lg);font-size:.65rem}.particle-canvas{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.pin-spacer{background:var(--color-bg)!important}@media (max-width:768px){:root{--space-xl:1.5rem;--space-2xl:3rem}.chapter-label{display:none}.pagination{right:var(--space-md)}.section-counter{left:var(--space-md);bottom:var(--space-md)}.scroll-indicator{right:var(--space-md);bottom:var(--space-md)}.site-header{padding:var(--space-md)}.section-text{padding:var(--space-lg)}.section-journey .cinematic-text{font-size:clamp(1.5rem,4vw,3rem)}.start-button{width:100px;height:100px}.value-card{padding:var(--space-lg)}}@media (max-width:480px){.external-actions{width:100%;padding:0 var(--space-lg);flex-direction:column}.simple-button{justify-content:center}}
