/* The upstream layout is unchanged. These additions provide Toris identity,
   Korean glyph fallback, keyboard access, and a static recovery surface. */
html.toris-reference-home { font-family: Aeonik, 'Toris Studio Text', sans-serif; }
html.toris-reference-home body { font-family: inherit; }
.toris-reference-wordmark { display: block; width: 121px; height: 24px; font: 500 34px/.75 Aeonik, sans-serif; letter-spacing: .02em; }
#header-logo { min-width: 121px; }
#canvas { touch-action: pinch-zoom; }
#ui { touch-action: pan-x pinch-zoom; }
#video-overlay__vimeo-video video { width: 100%; height: 100%; }
.toris-skip { position: fixed; top: 12px; left: 12px; z-index: 500; background: #fff; color: #000; padding: 14px 18px; transform: translateY(-180%); }
.toris-skip:focus { transform: none; }
.toris-reference-home :is(a,button,input,[role='link']):focus-visible { outline: 3px solid #1a2ffb; outline-offset: 5px; }
.toris-runtime-controls { position: fixed; z-index: 54; left: max(5vw,40px); bottom: 20px; display: flex; align-items: center; gap: 6px; }
.toris-runtime-controls[hidden] { display: none; }
.toris-runtime-controls :is(button,a) { display: flex; justify-content: center; align-items: center; min-height: 44px; min-width: 44px; padding: 8px 14px; border: 1px solid #ffffff38; border-radius: 30px; background: #292b37ed; color: #fff; font: 11px/1.2 Aeonik, 'Toris Studio Text', sans-serif; cursor: pointer; }
.toris-utility-links { position: fixed; z-index: 55; left: max(5vw,40px); bottom: 20px; display: none; gap: 20px; color: #000; font-size: 12px; }
.toris-utility-links a { display: flex; min-height: 44px; align-items: center; }
html.toris-footer-visible .toris-utility-links { display: flex; }
html.toris-footer-visible .toris-runtime-controls { display: none; }
#header-right-sound-btn { min-width: 44px; min-height: 44px; }
#home-hero-visual-container { background: #15161d url('/lusion/hero-poster.webp') center/cover no-repeat; border-radius: 20px; }
html.is-ready:not(.toris-runtime-fallback) #home-hero-visual-container { background: transparent; }
@media(max-width:812px) { .toris-runtime-controls,.toris-utility-links { left: 25px; } }
@media(max-width:400px) { .toris-runtime-controls,.toris-utility-links { left: 15px; } }
/* A native document when JS/WebGL is absent. Links and real products stay usable. */
html.no-js,html.toris-runtime-fallback { overflow: auto !important; }
html.no-js body,html.toris-runtime-fallback body { overflow: auto !important; }
html:is(.no-js,.toris-runtime-fallback) #ui { position: relative; transform: none !important; }
html:is(.no-js,.toris-runtime-fallback) #header { position: relative; }
html:is(.no-js,.toris-runtime-fallback) :is(#canvas,#transition-overlay,#preloader,#scroll-nav-section,#scroll-indicator,#input-blocker,#home-goal-image-in-outer,#home-goal-image-out-outer) { display: none !important; }
html:is(.no-js,.toris-runtime-fallback) :is(#page-container,#page-container-inner,#home-goal-context,#home-goal-context-inner,#end-section-outer,#end-section-inner,#footer-section) { position: relative !important; transform: none !important; opacity: 1 !important; height: auto; }
html:is(.no-js,.toris-runtime-fallback) #home-hero { min-height: 760px; height: 90vh; }
html:is(.no-js,.toris-runtime-fallback) #home-hero-visual-container { min-height: 420px; margin-top: 36px; }
html:is(.no-js,.toris-runtime-fallback) #home-goal { padding-bottom: 100px; }
html:is(.no-js,.toris-runtime-fallback) #home-goal-tunnel-title { position: relative; grid-column: 1/-1; padding-block: 80px; }
html:is(.no-js,.toris-runtime-fallback) #end-section { height: auto; min-height: 70vh; color: #000; }
html:is(.no-js,.toris-runtime-fallback) #end-section-outer { min-height: 70vh; }
html:is(.no-js,.toris-runtime-fallback) #end-section-inner { min-height: 70vh; }
html:is(.no-js,.toris-runtime-fallback) #header-menu { visibility: hidden; }
html:is(.no-js,.toris-runtime-fallback) .project-item-image { background-size: cover; background-position: center; }
html:is(.no-js,.toris-runtime-fallback) #home-reel-video-placeholder { background: url('/lusion/reel-poster.webp') center/cover; }
@media(prefers-reduced-motion:reduce) { .toris-reference-home *, .toris-reference-home *::before, .toris-reference-home *::after { transition-duration: 0s !important; scroll-behavior: auto !important; } }
/* Motion and language controls live with the menu, preserving the first view. */
.toris-runtime-controls { display: none; }
html:has(#header-menu.--opened) .toris-runtime-controls { display: flex; }
html[lang='ko'] #home-reel-title { word-break: keep-all; }
