@font-face{font-family:Sado Signature;src:url('/assets/SadoSignature-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--sky:#111318;--paper:#eee8d8;--ink:#eee8d8;--boundary-city:#292d39;--boundary-field:#29434a;--boundary-sea:#101e2e}
/* Terrain follows the viewport; rigid SVG objects preserve their proportions.
   A single world camera moves both the artwork and the complete page layouts. */
:root{--scene-width:100vw;--scene-height:100dvh;--art-scene-width:100vw;--art-scene-height:100dvh}
.viewport{inset:0;width:100%;height:100%;isolation:isolate}
.world{z-index:1}
.world{width:calc(var(--scene-width) * 3);height:calc(var(--scene-height) * 2);grid-template-columns:repeat(3,var(--scene-width));grid-template-rows:repeat(2,var(--scene-height));transform:translate(calc(var(--col,0) * var(--scene-width) * -1),calc(var(--row,0) * var(--scene-height) * -1)) scale(1)}
.scene{--scene-col:0;--scene-row:0;position:absolute;left:calc(var(--scene-col) * var(--scene-width));top:calc(var(--scene-row) * var(--scene-height));width:var(--scene-width);height:var(--scene-height);padding:0;overflow:clip}
.scene[data-col="1"]{--scene-col:1}.scene[data-col="2"]{--scene-col:2}.scene[data-row="1"]{--scene-row:1}
.world>.scene[data-col][data-row]{grid-area:auto}
.overview-targets{width:calc(var(--scene-width) * 3 * var(--overview-scale));height:calc(var(--scene-height) * 2 * var(--overview-scale))}
.scene-boundary{top:calc(var(--scene-height) * 2);width:calc(var(--scene-width) * 3);grid-template-columns:repeat(3,var(--scene-width))}
.product-details{top:calc(var(--scene-height) * 2);width:100vw;min-height:100dvh}
.art-deco-world{position:absolute;inset:0;width:var(--scene-width);height:var(--scene-height);z-index:0;pointer-events:none;overflow:hidden;contain:paint}
.art-deco-world>svg{display:block;width:100%;height:100%;overflow:hidden}
.art-deco .world{will-change:auto}
/* Keep the vectors in one paint surface. High uses vector clipping rather than large raster masks. Lighter profiles
   keep the moving beams and skip cloud-occlusion calculations. */
html[data-render-quality="balanced"] [clip-path^="url(#cloud-light-clip"],html[data-render-quality="lite"] [clip-path^="url(#cloud-light-clip"]{clip-path:none}
.overview .product-details,.camera-travelling .product-details{opacity:0;pointer-events:none}
.product-details{transition:opacity 220ms ease}
/* Ambient motion updates native SVG attributes in artwork-motion.js.
   Independent CSS animation layers caused stale raster tiles during zoom. */
.home-scene{grid-area:1/2}.about-scene{grid-area:1/1}.store-scene{grid-area:1/3}
.site-header{background:linear-gradient(#0b1117b8,transparent);font-size:clamp(14px,1vw,26px)}
.main-nav{gap:clamp(15px,2.2vw,72px)}
.home-content{padding:clamp(112px,15dvh,330px) 0 90px;justify-content:center;gap:34px}
.brand-meaning{max-width:34em;font-size:clamp(16px,1.05vw,30px)}
.brand-mark{width:clamp(250px,27vw,920px)}
.brand-hanja{font-size:clamp(30px,2.8vw,100px)}
.model-entry img{width:clamp(150px,12vw,440px)}
.product-surface{padding-top:clamp(145px,25dvh,540px);color:var(--paper)}
.product-surface h2 img,.model-hanja{opacity:1}
.product-surface .nodo-wordmark{line-height:0;margin:0}
.product-surface .nodo-wordmark img{width:clamp(200px,24vw,920px);mask-image:none;filter:none;mix-blend-mode:normal}
.product-hop{opacity:.85}
.about-content{position:relative;left:3vw;padding-top:clamp(120px,16dvh,350px);width:64vw;height:calc(100dvh - 90px);padding-bottom:24px}
.about-story{grid-template-columns:20% 1fr;gap:3vw}
.story-body{font-size:clamp(16px,.95vw,27px);line-height:1.65;padding:0;background:transparent}
.about-content .page-heading h2{font-size:clamp(24px,2vw,68px)}
.about-content .page-heading p{font-size:clamp(16px,.95vw,27px)}
.about-brand .brand-hanja{font-size:clamp(24px,2.1vw,68px)}
.contact-content{width:76vw;padding-top:clamp(130px,17dvh,400px);padding-bottom:120px;gap:5vw;--site-form-border:#eee8d87a;--site-form-error:#f4d8cb}
.contact-content form{padding:22px 26px;background:#111318d4}
.contact-heading{padding:22px 0}
.store-content{padding-top:clamp(130px,17dvh,400px)}
.scene-controls{color:var(--paper);right:max(12px,env(safe-area-inset-right,0px))}
.map-toggle{background:#11131880;border-color:#eee8d87a}
.animation-quality{position:relative;flex-shrink:0;color:var(--paper)}
.quality-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;list-style:none;cursor:pointer;opacity:.62;border:1px solid transparent;background:transparent}
.quality-toggle::-webkit-details-marker{display:none}.quality-toggle:hover,.animation-quality[open] .quality-toggle{opacity:1;border-color:#eee8d838;background:#11131880}
.quality-toggle:focus-visible,.quality-menu button:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
.quality-menu{position:absolute;right:0;bottom:calc(100% + 12px);min-width:144px;padding:6px;border:1px solid #eee8d84a;background:#171b24;box-shadow:0 8px 30px #0005}
.quality-menu button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:10px 14px;border:0;background:transparent;color:var(--paper);font-size:14px;text-align:left}
.quality-menu button[aria-pressed="true"]{background:#eee8d813}.quality-menu button[aria-pressed="true"]::after{content:"✓";font-size:13px}.quality-menu button:hover{background:#eee8d81e}
@media(max-width:760px){.scene-controls{gap:8px}.map-toggle{padding:9px 10px;font-size:12px;gap:7px}}
.overview .site-header{background:linear-gradient(#0b1117b8,transparent)}
.scene-boundary>span:nth-child(1){background:var(--boundary-city)}
.scene-boundary>span:nth-child(2){background:var(--boundary-field)}
.scene-boundary>span:nth-child(3){background:var(--boundary-sea)}
.product-details[data-product-scene="doku"],#doku-details{left:var(--scene-width);background:#575662;color:var(--paper);color-scheme:dark}
.product-details[data-product-scene="diver"],#geegi-details{left:calc(var(--scene-width) * 2);background:#101e2e;color:var(--paper);color-scheme:dark}
.product-details :is(dd,[data-return-surface]),#doku-details .teaser-frame figcaption{color:var(--paper)}
.product-details dl>div{border-color:#eee8d838}
.product-details .teaser-frame{background:transparent}
.product-detail-reading .site-header{background:#111318}
.product-detail-controls .scene-controls{color:var(--paper)}
.product-detail-controls .grid-icon i{border-color:var(--paper)}
.product-detail-controls .mini-map button{border-color:#eee8d87a;background:#eee8d817}
.product-detail-controls .mini-map button[aria-current=true]{background:#eee8d888}
.updates-dialog{background:#141b22;color:var(--paper);--site-form-ink:#eee8d8;--site-form-border:#eee8d880;--site-form-color-scheme:dark}
.updates-dialog .dialog-close{color:var(--paper)}
@media(max-width:760px){
 .site-header{padding-inline:20px;height:calc(110px + env(safe-area-inset-top,0px));font-size:14px}
 .main-nav{gap:8px;overflow-x:auto;justify-content:space-between;font-size:12px;scrollbar-width:none}
 .main-nav a{min-height:44px;padding:10px 0}
 .main-nav [data-open-updates]{display:none}
 .home-content{padding:calc(155px + env(safe-area-inset-top,0px)) 0 100px;gap:28px}
 .brand-mark{width:62vw;max-width:360px}.brand-hanja{font-size:34px}
 .brand-meaning{font-size:16px;max-width:76vw;margin-top:12px}.model-entry img{width:170px}
 .product-surface{padding-top:calc(190px + env(safe-area-inset-top,0px));gap:14px}
 .product-surface h2 img,.product-surface .nodo-wordmark img{width:62vw}
 .about-content{left:0;width:86vw;margin-top:calc(135px + env(safe-area-inset-top,0px));height:calc(100dvh - 220px - env(safe-area-inset-top,0px));padding:0 0 30px}
 .about-story{grid-template-columns:1fr;gap:20px}.story-body{padding:0;font-size:16px}
 .contact-content{width:86vw;display:block;margin-top:calc(135px + env(safe-area-inset-top,0px));height:calc(100dvh - 220px - env(safe-area-inset-top,0px));padding:0 0 30px}
 .contact-content form{padding:18px}.contact-heading{padding:0 0 10px}
 .store-content{padding-top:140px;width:86vw}.store-grid{gap:4vw}.front-preview{height:22dvh}
 .store-product h4{font-size:17px}.store-model{width:180px}
 .overview-targets button span{font-size:12px;background:#111318a6;padding:3px 5px}
}
@media(prefers-reduced-motion:reduce){html:not([data-motion="full"]) :is(.world,.art-deco-world,.scene){transition:none!important}}

/* The city stays open; its contact sheet continues below the ground. */
.contact-surface{position:absolute;left:7vw;right:7vw;bottom:6vh;display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:auto;padding:0}
.contact-surface .contact-links{font-size:14px;gap:18px;margin:0}.contact-surface .instagram-link svg{width:21px}
.contact-surface .contact-scroll-cue{display:flex;align-items:center;justify-content:flex-start;gap:16px;border:0;padding:6px 0;width:auto;min-height:56px;opacity:1;font-size:clamp(19px,1.45vw,32px)}
.contact-surface .contact-scroll-cue svg{width:28px;height:38px;stroke-width:1.4;flex-shrink:0}
.product-details[data-product-scene="contact"]{left:0;background:linear-gradient(#292d39,#171b24 380px);color:var(--paper);color-scheme:dark;--site-form-ink:var(--paper);--site-form-border:#eee8d85c;--site-form-error:#ffc1b4;--site-form-color-scheme:dark}
.contact-details-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:8vw;max-width:1320px}
.contact-details-copy .contact-links{font-size:16px;margin:32px 0 48px;gap:16px}.contact-details-copy .instagram-link svg{width:24px}
.contact-details-layout form{font-size:16px;gap:12px}.contact-details-layout form textarea{min-height:180px}.contact-details-layout form label:not(:first-child){margin-top:12px}
@media(max-width:760px){.contact-surface{left:7vw;right:7vw;bottom:13vh;gap:4px}.contact-surface .contact-links{font-size:13px;gap:8px}.contact-details-layout{grid-template-columns:1fr;gap:44px}.contact-details-copy .contact-links{margin:24px 0}.contact-details{padding-top:140px}}
