/* Phase 2: four editorial chapters, built on the original visual system. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: 220ms ease both page-out; }
::view-transition-new(root) { animation: 480ms ease both page-in; }
@keyframes page-out { to { opacity:0; } }
@keyframes page-in { from { opacity:0; transform:translateY(12px); } }
:root { --accent:#85bfdf; --ink:#181b20; --gutter:clamp(24px,5vw,96px); }
html { scroll-padding-top:88px; }
body { overflow-x:clip; }
body.menu-open { overflow:hidden; }
main { min-height:70svh; }
h1,h2,h3,p { word-break:keep-all; }
h1,h2 { text-wrap:balance; }
.section-pad { padding-top:105px; padding-bottom:105px; }
.body-copy { color:#68717a; }
.eyebrow { margin-bottom:60px; letter-spacing:.015em; }
.site-header { position:absolute; height:96px; color:var(--ink); }
.site-header.is-dark { color:#eceff2; }
.site-header nav { gap:clamp(22px,3vw,46px); font-size:14px; }
.site-header nav small,.mobile-support { display:none!important; }
.site-header nav a[aria-current=page] { color:inherit; }
.site-header nav a[aria-current=page]:after { right:0; background:var(--accent); bottom:-10px; }
.header-contact { font-size:13px; }
.site-header.is-scrolled { animation:none; }
.site-header.is-scrolled.is-dark { background:#101318e8; }
/* A transparent ribbon symbol and a single optical wordmark, at every size. */
.brand { gap:13px; color:inherit; flex:none; text-decoration:none; }
.brand-symbol { display:block; position:relative; flex:none; width:42px; height:42px; transform-origin:50% 55%; transition:transform .35s ease,filter .35s ease; }
.brand-symbol>img { display:block; width:100%; height:100%; object-fit:contain; animation:brand-color-breathe 7.8s ease-in-out infinite; }
.brand-orbit { position:absolute; inset:0; width:100%; height:100%; overflow:visible; fill:none; pointer-events:none; }
.brand-flow { stroke-linecap:round; stroke-linejoin:round; stroke-dashoffset:100; animation:brand-ribbon-flow 7.8s linear infinite; }
.brand-flow-glow { stroke:#29ddff; stroke-width:7; stroke-dasharray:17 83; opacity:.3; filter:blur(1px); }
.brand-flow-core { stroke:#ddfbff; stroke-width:1.65; stroke-dasharray:11 89; opacity:.8; }
@keyframes brand-ribbon-flow { to { stroke-dashoffset:0; } }
@keyframes brand-color-breathe { 0%,100% { filter:brightness(1) saturate(1); } 50% { filter:brightness(1.13) saturate(1.12); } }
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine) { html:not(.motion-paused) .brand:hover .brand-symbol { transform:translateY(-1px) scale(1.06); filter:drop-shadow(0 0 6px #5e75ff66); } }
@media(prefers-reduced-motion:no-preference) { html:not(.motion-paused) .brand:focus-visible .brand-symbol { transform:translateY(-1px) scale(1.06); filter:drop-shadow(0 0 6px #5e75ff66); } }
.motion-paused .brand-symbol>img,.motion-paused .brand-flow { animation:none; }
.motion-paused .brand-orbit { display:none; }
.motion-paused .brand-symbol { transform:none; filter:none; transition:none; }
.brand-name { display:inline-flex; align-items:baseline; color:inherit; font-family:'Manrope',sans-serif; font-size:21px; line-height:1; letter-spacing:-.04em; white-space:nowrap; }
.brand-neo { font-weight:750; }
.brand-alpha { font-weight:450; margin-left:.15em; }
.brand-ai { font-size:.66em; font-weight:550; letter-spacing:.015em; margin-left:.46em; color:#6788a6; }
.site-header.is-dark .brand-ai,.footer .brand-ai,.resolution-signature .brand-ai { color:#a3bed4; }
.brand:focus-visible { outline:1px solid currentColor; outline-offset:8px; border-radius:2px; }
.footer .brand-symbol { width:36px; height:36px; }
.footer .brand-name { font-size:19px; }
.text-link { display:inline-flex; gap:36px; align-items:center; padding:14px 0; border-bottom:1px solid currentColor; font-size:14px; line-height:1.5; width:fit-content; }
.text-link svg { width:23px; height:23px; stroke:currentColor; fill:none; stroke-width:1.2; transition:transform .4s; flex:none; }
.text-link:hover svg { transform:translateX(5px); }
.underlink { display:inline-flex; gap:44px; margin-top:35px; border-bottom:1px solid #9ba3ac; padding-bottom:12px; font-size:14px; }
.page-intro { padding-top:160px; }
.page-intro h1 { font-size:clamp(44px,4.9vw,84px); line-height:1.3; letter-spacing:-.075em; }
.page-intro h1>span { color:#929ba6; }
.intro-description { font-size:16px; color:#707a85; line-height:1.95; letter-spacing:-.03em; margin-top:30px; }
.next-page { border-top:1px solid #b3bdc7; padding-top:32px; margin-top:80px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.next-page .text-link { font-size:clamp(21px,2.4vw,34px); letter-spacing:-.055em; border:0; gap:48px; }
.next-page .text-link svg { width:34px; height:34px; }
.footer { grid-template-columns:1fr auto; padding-top:35px; padding-bottom:24px; background:#101318; color:#cbd0d7; }
.footer nav { gap:24px; }
.footer>p { grid-column:1; }
.footer-motion { text-align:right; font-size:11px; }
.footer .motion-toggle { padding:0; }

/* A quiet Kakao contact point that hands over to the in-page contact buttons. */
.floating-support { --support-visibility:0; --support-lift:0px; position:fixed; z-index:80; right:max(22px,env(safe-area-inset-right)); bottom:calc(26px + env(safe-area-inset-bottom)); display:inline-flex; align-items:center; gap:11px; min-height:58px; padding:14px 21px 14px 17px; border:1px solid #fff26a; border-radius:20px; background:#fee500; color:#251c13; box-shadow:0 8px 28px #00000024,0 2px 5px #00000012; opacity:var(--support-visibility); transform:translate3d(0,calc((1 - var(--support-visibility))*14px - var(--support-lift)),0) scale(calc(.96 + var(--support-visibility)*.04)); transform-origin:80% 100%; transition:opacity .34s ease,transform .34s cubic-bezier(.22,.7,.25,1),background .2s,box-shadow .2s; text-decoration:none; }
.floating-support[data-visible="false"] { pointer-events:none; }
.floating-support-icon { display:grid; place-items:center; flex:none; }
.floating-support .kakao-bubble { display:block; width:25px; height:25px; fill:currentColor; }
.floating-support-copy { font-size:14px; line-height:1.5; font-weight:650; letter-spacing:-.035em; white-space:nowrap; }
.floating-support:focus-visible { outline:3px solid #4b94c9; outline-offset:5px; }
@media(hover:hover) and (pointer:fine) { .floating-support:hover { background:#ffec38; box-shadow:0 12px 34px #00000032,0 2px 5px #00000012; } }
@media(max-width:760px) {
 .floating-support { right:max(16px,env(safe-area-inset-right)); bottom:calc(20px + env(safe-area-inset-bottom)); width:56px; min-height:56px; justify-content:center; padding:0; border-radius:20px; }
 .floating-support .kakao-bubble { width:26px; height:26px; }
 .floating-support-copy { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
}
@media(prefers-reduced-motion:reduce) { .floating-support { transition:opacity .15s linear; transform:translateY(calc(-1*var(--support-lift))); } }
.motion-paused .floating-support { transform:translateY(calc(-1*var(--support-lift))); }

/* The circular opening reveals the real next section beneath the sticky hero. */
body[data-page=home] { --hero-stage-height:max(720px,100svh); }
.home-hero { position:relative; z-index:2; isolation:isolate; height:calc(var(--hero-stage-height) + 85svh); color:#edf0f3; pointer-events:none; }
.home-hero-stage { position:sticky; top:0; height:var(--hero-stage-height); overflow:clip; pointer-events:auto; background:radial-gradient(ellipse at 72% 45%,#1b2b44 0,transparent 60%),#0c111a; -webkit-mask-image:radial-gradient(circle at 70% 52%,transparent var(--aperture-radius,0px),#000 calc(var(--aperture-radius,0px) + 1px)); mask-image:radial-gradient(circle at 70% 52%,transparent var(--aperture-radius,0px),#000 calc(var(--aperture-radius,0px) + 1px)); }
.brand-field { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.home-hero .brand-field { transform:translateY(var(--hero-shift,0px)) scale(var(--sculpture-scale,1)); transform-origin:70% 52%; }
.hero-copy-shade { position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,#11151b99,transparent 64%); }
.home-hero .hero-coordinate,.home-hero .engine-caption,.home-hero .hero-bottom { opacity:var(--hero-copy-opacity,1); }
.hero-grain { position:absolute; inset:0; pointer-events:none; background-image:radial-gradient(#fff .45px,transparent .45px); background-size:5px 5px; opacity:.027; }
.engine-art { position:absolute; width:100%; height:100%; inset:0; }
.hero-coordinate { position:absolute; top:150px; left:var(--gutter); right:var(--gutter); display:flex; justify-content:space-between; color:#91a0b4; font-size:11px; letter-spacing:.07em; }
.home-hero-copy { position:relative; z-index:2; padding:clamp(235px,29svh,560px) var(--gutter) 110px; pointer-events:none; opacity:var(--hero-copy-opacity,1); transform:translateY(var(--hero-shift,0px)); }
.home-hero-copy a { pointer-events:auto; }
.eyeline { color:#a4c5da; font-size:14px; letter-spacing:.01em; margin-bottom:27px; }
.home-hero h1 { font-size:clamp(64px,min(7.4vw,13svh),280px); font-weight:500; line-height:1.22; letter-spacing:-.085em; }
.home-hero h1 span { color:#bac3cc; }
.hero-explanation { font-size:16px; line-height:1.95; color:#abb6c5; letter-spacing:-.035em; margin-top:30px; }
.home-hero .text-link { margin-top:27px; border-color:#718397; }
.hero-kakao-link {
 --glass-x:22%; --glass-y:0%; --glass-angle:135deg;
 position:relative; isolation:isolate; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:12px;
 max-width:100%; min-height:56px; margin-top:27px; padding:15px 24px; border:1px solid #ffffff24; border-radius:14px;
 background:linear-gradient(145deg,#ffffff14,#dcecff04 48%,#dcecff0d);
 backdrop-filter:blur(4px) saturate(165%) brightness(1.1); -webkit-backdrop-filter:blur(4px) saturate(165%) brightness(1.1);
 color:#f8fbff; font-size:15px; line-height:1.5; font-weight:600; letter-spacing:-.035em; white-space:nowrap; text-shadow:0 1px 4px #0008;
 box-shadow:inset 0 2px 2px #ffffff38,inset 1px 0 2px #ffffff21,inset 0 -2px 3px #d9ecff26,inset -1px 0 2px #d9ecff1f,0 8px 24px -8px #0009,0 1px 3px #0005;
 transition:background .25s,box-shadow .25s,transform .4s cubic-bezier(.2,.9,.3,1.3);
 -webkit-user-select:none; user-select:none;
}
/* The thin outer reflection and wider inner curve give the clear surface a lens edge. */
.hero-kakao-link:before {
 content:''; position:absolute; inset:0; z-index:2; padding:1px; border-radius:inherit; pointer-events:none;
 background:radial-gradient(90px 55px at var(--glass-x) var(--glass-y),#fff,transparent 75%),linear-gradient(var(--glass-angle),#ffffffd9,#ffffff26 28%,#ffffff08 48%,#e7f3ff9e 78%,#ffffffb8);
 -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
 -webkit-mask-composite:xor; mask-composite:exclude;
}
.hero-kakao-link:after {
 content:''; position:absolute; inset:2px; z-index:0; border-radius:inherit; pointer-events:none;
 background:radial-gradient(100px 60px at var(--glass-x) var(--glass-y),#ffffff24,transparent 76%),radial-gradient(95% 110% at 25% -58%,#ffffff85,transparent 82%),radial-gradient(65% 100% at 95% 135%,#e5f4ff45,transparent 76%);
 box-shadow:inset 0 1px 1px #ffffff1f,inset 0 -2px 5px #dcefff14; opacity:.8; transition:opacity .25s;
}
.hero-kakao-link>* { position:relative; z-index:1; }
.hero-kakao-link>.kakao-bubble { width:22px; height:22px; fill:currentColor; color:#f3f8ff; }
.hero-kakao-link>svg:last-child { flex:none; width:18px; height:18px; margin-left:9px; fill:none; stroke:currentColor; stroke-width:1.5; opacity:.68; transition:transform .2s; }
.hero-kakao-link:focus-visible { outline:2px solid #96d4f8; outline-offset:5px; }
@media(hover:hover) and (pointer:fine) {
 .hero-kakao-link:hover { background:linear-gradient(145deg,#ffffff1f,#dcecff08 48%,#dcecff14); box-shadow:inset 0 2px 3px #ffffff45,inset 1px 0 2px #ffffff26,inset 0 -2px 4px #d9ecff38,0 10px 28px -8px #0009,0 1px 3px #0005; }
 .hero-kakao-link:hover:after { opacity:1; }
}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine) {
 html:not(.motion-paused) .hero-kakao-link:hover { transform:translateY(-1px) scale(1.015); }
}
@media(prefers-reduced-motion:no-preference) {
 html:not(.motion-paused) .hero-kakao-link:active { transform:scale(.975,.95); transition-duration:.12s; }
}
.hero-kakao-link:active { background:linear-gradient(145deg,#ffffff24,#dcecff0a); box-shadow:inset 0 1px 5px #0003,inset 0 -1px 2px #fff3,0 3px 10px -4px #0008; }
@media(prefers-reduced-transparency:reduce) { .hero-kakao-link { background:#27323c; backdrop-filter:none; -webkit-backdrop-filter:none; } }
.home-hero .hero-bottom { font-size:11px; letter-spacing:0; bottom:28px; }
.engine-caption { position:absolute; right:var(--gutter); bottom:12%; color:#9daabc; font-size:11px; display:flex; gap:20px; align-items:center; line-height:1.8; }
.engine-caption i { height:1px; width:48px; background:#627c95; }
.home-company { position:relative; z-index:1; margin-top:calc(-1 * var(--hero-stage-height)); background:#f4f3ef; }
.home-company-layout { display:grid; grid-template-columns:1.4fr 1fr; gap:10%; align-items:end; }
.home-company h2 { font-size:clamp(55px,7.2vw,112px); line-height:1.22; letter-spacing:-.08em; }
.home-company h2 span { color:#8293a4; }
.home-company-copy { max-width:405px; padding-bottom:8px; }
.established { display:block; font-size:59px; letter-spacing:-.07em; line-height:1; color:#354a5e; margin-bottom:30px; }
.established>span { font-size:12px; letter-spacing:0; margin-left:16px; color:#8a949d; }
.home-company-copy .text-link { margin-top:22px; }
.discipline-line { display:flex; align-items:center; margin-top:100px; gap:25px; font-size:12px; color:#707c88; }
.discipline-line i { height:1px; background:#cbd0d2; flex:1; }
/* The original four vision statements stay a scroll-led scene on HOME. */
body[data-page=home] .vision { height:290svh; }
body[data-page=home] .vision-stage { min-height:640px; overflow:clip; }
body[data-page=home] .vision .eyebrow { margin-bottom:0; }
body[data-page=home] .vision-navigation button { min-width:48px; padding-bottom:12px; font-size:11px; }
.home-technology { background:#181e27; color:#eff3f7; padding-bottom:75px; }
.home-technology .eyebrow,.home-technology .eyebrow>span:first-child { color:#8c9cb0; }
.preview-heading { display:flex; gap:50px; justify-content:space-between; align-items:end; }
.preview-heading h2 { font-size:clamp(36px,min(4.55vw,7vh),68px); line-height:1.2; }
.preview-heading h2 span { color:#a1b5c9; }
.preview-heading>.text-link { color:#b3c8da; margin-bottom:10px; }
.preview-scroll-stage { display:flow-root; }
.home-technology[data-preview-scroll=true] .preview-scroll-track { height:calc(var(--preview-height) + var(--preview-travel)); }
.home-technology[data-preview-scroll=true] .preview-scroll-stage { position:sticky; top:var(--preview-pin); }
.signal-preview { position:relative; height:clamp(180px,calc(100svh - 400px),390px); margin:15px auto 24px; max-width:1040px; }
.signal-preview canvas { width:100%; height:100%; display:block; }
.signal-axis { position:absolute; inset:40px 0 auto; display:flex; justify-content:space-between; font-size:10px; color:#63788f; pointer-events:none; }
.signal-preview-caption { position:absolute; z-index:1; top:50%; left:50%; transform:translate(-50%,-50%); width:max-content; max-width:88%; margin:0; padding:28px 36px; text-align:center; color:#e1f2ff; font-size:clamp(24px,2.5vw,36px); font-weight:600; line-height:1.5; letter-spacing:-.045em; text-wrap:balance; text-shadow:0 2px 18px #0b1425,0 0 35px #111b2b; background:radial-gradient(ellipse,#181e27f5 25%,#181e27c9 55%,#181e2700 74%); pointer-events:none; }
.preview-controls { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; }
.preview-controls button { border-top:1px solid #45546a; padding:18px 0 0; display:flex; align-items:baseline; gap:18px; color:#798da3; text-align:left; }
.preview-controls button>span { font-size:11px; }
.preview-controls strong { font-size:22px; font-weight:400; letter-spacing:-.04em; }
.preview-controls i { display:block; width:5px; height:5px; border-radius:50%; margin-left:auto; background:#41566d; }
.preview-controls button[aria-pressed=true] { color:#d9edfa; border-color:#97d0f4; }
.preview-controls button[aria-pressed=true] i { background:#acd9f4; box-shadow:0 0 14px #84c7ef88; }
.home-service { background:#e6e9ed; }
.service-preview-layout { display:grid; grid-template-columns:1fr 1fr; gap:12%; align-items:center; }
.service-preview-layout h2 { font-size:clamp(44px,4.8vw,75px); }
.service-preview-layout .body-copy { margin-top:28px; }
.service-preview-layout .text-link { margin-top:25px; }
.service-weave { position:relative; padding-left:36px; }
.weave-spine { position:absolute; inset:29px auto 73px 0; border-left:1px solid #889db1; }
.service-weave>div:not(.weave-spine) { position:relative; isolation:isolate; display:flex; gap:23px; align-items:center; border-bottom:1px solid #bdc8d3; padding:22px 0; transition:border-color .28s ease; }
.service-weave>div:not(.weave-spine):before { content:''; position:absolute; width:36px; height:1px; background:#889db1; right:100%; top:50%; transition:background .28s ease,box-shadow .28s ease; }
.service-weave>div:not(.weave-spine):after { content:''; position:absolute; z-index:-1; inset:4px -12px; border-radius:7px; background:linear-gradient(100deg,#eefaffed,#c5e2f278 65%,#dfeef800); opacity:0; pointer-events:none; transition:opacity .28s ease; }
.service-weave>div>span { font-size:10px; color:#7990a5; transition:color .28s ease; }
.service-weave strong { font-weight:500; font-size:23px; letter-spacing:-.04em; transition:color .28s ease,transform .28s ease; }
.service-weave i { margin-left:auto; width:4px; height:4px; background:#80aaca; transition:background .28s ease,box-shadow .28s ease,transform .28s ease; }
.service-weave p { font-size:12px; color:#7b8997; margin-top:24px; }
@media(hover:hover) and (pointer:fine) {
 .service-weave>div:not(.weave-spine):hover { border-color:#91b7ce; }
 .service-weave>div:not(.weave-spine):hover:before { background:#369fc8; box-shadow:0 0 8px #43b7e04d; }
 .service-weave>div:not(.weave-spine):hover:after { opacity:1; }
 .service-weave>div:hover>span { color:#2589b0; }.service-weave>div:hover>strong { color:#24526f; }
 .service-weave>div:hover>i { background:#249fcf; box-shadow:0 0 0 5px #48b1df24,0 0 15px #189acb4a; }
}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine) {
 html:not(.motion-paused) .service-weave>div:hover>strong { transform:translateX(6px); }
 html:not(.motion-paused) .service-weave>div:hover>i { transform:scale(1.4); }
}
.motion-paused .service-weave>div:before,.motion-paused .service-weave>div:after { transition:none; }
.brand-resolution { position:relative; isolation:isolate; min-height:clamp(760px,46vw,1520px); background:#0f1319; color:#e8edf4; overflow:hidden; text-align:left; display:flex; align-items:flex-start; flex-direction:column; justify-content:center; }
.resolution-content { max-width:53%; }
.resolution-art { position:absolute; inset:0; pointer-events:none; }
.brand-resolution>.resolution-content { position:relative; z-index:1; }
.brand-resolution .micro-label { color:#b0bdc8; margin-bottom:35px; }
.brand-resolution h2 { font-size:clamp(56px,6.4vw,220px); line-height:1.25; }
.brand-resolution h2 span { color:#b5c7d8; }
.resolution-signature { display:flex; gap:12px; align-items:center; margin-top:40px; font-size:17px; letter-spacing:-.02em; }
.resolution-signature .brand-symbol { width:32px; height:32px; }.resolution-signature .brand-name { font-size:17px; }
.resolution-content>.text-link { color:#b4c6d7; font-size:12px; margin-top:20px; }
@media(min-width:1700px) {
 .brand-resolution { --resolution-inset:max(var(--gutter),calc((100vw - 2560px)/2)); --resolution-gap:clamp(64px,4vw,140px); display:grid; grid-template-columns:max-content minmax(0,1fr); column-gap:var(--resolution-gap); align-items:center; justify-content:normal; padding-left:var(--resolution-inset); padding-right:var(--resolution-inset); }
 .resolution-content { grid-column:1; grid-row:1; max-width:none; }
 /* The logo canvas follows the second grid column, after the actual copy width. */
 .resolution-art { --closing-panel:1; grid-column:2 / 3; }
}

/* COMPANY: layered time, a spatial journey, and a quiet identity sheet. */
.company-intro { background:#edece8; padding-bottom:65px; overflow:hidden; }
.company-intro-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:5%; align-items:center; }
.time-strata { position:relative; height:470px; }
.strata-year { position:absolute; left:20px; top:-8px; font-size:58px; letter-spacing:-.07em; color:#263c50; }
.strata-year>span { color:#a2a8ad; }
.strata-planes { position:absolute; width:76%; height:65%; left:10%; top:15%; perspective:1000px; transform-style:preserve-3d; }
.strata-planes>div { position:absolute; inset:0; border:1px solid #b7c0ca; background:linear-gradient(140deg,#f7f7f6cc,#d5dce133); transform:rotateX(55deg) rotateZ(-25deg) translateZ(calc(var(--plane)*28px)) translateY(calc(var(--plane)*23px)); box-shadow:0 18px 25px #45525f07; display:flex; padding:17px 20px; gap:20px; align-items:start; color:#71899d; }
.strata-planes>div:last-child { background:linear-gradient(125deg,#fff,#dfe7eddf); border-color:#889cab; box-shadow:0 30px 60px #35445418; }
.strata-planes span { font-size:9px; }
.strata-planes strong { font-weight:400; font-size:17px; }
.strata-planes i { position:absolute; inset:55% 15% auto; height:1px; background:linear-gradient(90deg,transparent,#8cb5cf,transparent); }
.strata-caption { position:absolute; bottom:0; left:20px; font-size:12px; color:#8d979f; }
.company-intro-foot { display:grid; grid-template-columns:1fr 1.5fr; gap:12%; padding-top:30px; border-top:1px solid #cbd0d4; margin-top:40px; }
.company-intro-foot .micro-label { padding-top:5px; color:#85939d; }
.company-intro-foot p { font-size:14px; line-height:1.9; color:#6e7882; }
.journey { height:285svh; }
@media(min-width:761px) { .journey-stage { padding-top:95px; padding-bottom:28px; } }
.company-vision { background:#e9edf0; padding-top:110px; padding-bottom:110px; }
.vision-editorial { position:relative; display:grid; grid-template-columns:1fr 2fr; gap:70px 8%; align-items:center; }
.vision-prelude { align-self:start; display:flex; flex-direction:column; gap:17px; font-size:14px; color:#8192a0; padding-top:18px; }
.vision-editorial h2 { font-size:clamp(64px,7.2vw,112px); line-height:1.2; }
.vision-editorial h2 span { color:#91a5b7; }
.vision-editorial>.body-copy { grid-column:2; font-size:16px; }
/* Company vision: the ambition and all nine directions are readable together. */
.company-outlook { position:relative; background:linear-gradient(130deg,#1c2733 0%,#17212d 50%,#1b2631 100%); color:#e5ebf1; }
.company-outlook>.eyebrow { color:#a0b4c7; }
.outlook-heading h2 { font-size:clamp(37px,4.15vw,70px); line-height:1.3; letter-spacing:-.06em; text-wrap:initial; }
.outlook-heading h2>span { color:#adcadf; }
.outlook-heading>p { max-width:1000px; margin-top:29px; font-size:15px; line-height:1.95; color:#a2b2c2; letter-spacing:-.025em; }
.outlook-directions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:61px; border-top:1px solid #7894aa65; border-bottom:1px solid #7894aa38; }
.outlook-direction { position:relative; isolation:isolate; display:flex; flex-direction:column; min-width:0; padding:34px 34px 37px; background:linear-gradient(180deg,#c4d8e608,transparent 60%); }
.outlook-direction:first-child { padding-left:0; background:none; }.outlook-direction:last-child { padding-right:0; }
.outlook-direction+.outlook-direction { border-left:1px solid #7894aa38; }
.outlook-direction:before { content:''; position:absolute; width:42px; height:2px; background:var(--outlook-accent); top:-1px; left:34px; transform-origin:left; transition:transform .32s ease,box-shadow .32s ease; }.outlook-direction:first-child:before { left:0; }
.outlook-direction:after { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,color-mix(in srgb,var(--outlook-accent) 9%,transparent),transparent 75%); opacity:0; pointer-events:none; transition:opacity .32s ease; }
.outlook-direction-label { display:flex; gap:15px; align-items:center; margin-bottom:36px; font-size:12px; color:var(--outlook-accent); letter-spacing:.025em; }
.outlook-direction-label>span:first-child { font-family:Manrope,sans-serif; font-size:11px; opacity:.68; }
.outlook-direction h3 { font-size:clamp(25px,2.3vw,38px); line-height:1.42; letter-spacing:-.045em; font-weight:500; color:#e1e9f0; transition:color .3s ease,transform .3s ease; }
.outlook-direction-copy { margin-top:22px; margin-bottom:39px; color:#9eafc1; font-size:14px; line-height:1.95; letter-spacing:-.025em; }
.outlook-focus { margin-top:auto; }
.outlook-focus>span { display:block; padding-bottom:13px; font-size:10px; letter-spacing:.025em; color:#7f97ad; }
.outlook-focus dl { margin:0; }
.outlook-focus dl>div { position:relative; isolation:isolate; padding:20px 0 20px 16px; border-top:1px solid #829bad27; transition:border-color .28s ease; }
.outlook-focus dl>div:before { content:''; position:absolute; top:31px; left:0; width:4px; height:4px; background:var(--outlook-accent); opacity:.7; transition:opacity .28s ease,box-shadow .28s ease; }
.outlook-focus dl>div:after { content:''; position:absolute; z-index:-1; inset:4px -7px; border-radius:4px; background:linear-gradient(90deg,color-mix(in srgb,var(--outlook-accent) 10%,transparent),transparent); opacity:0; pointer-events:none; transition:opacity .28s ease; }
.outlook-focus dt { font-size:17px; font-weight:500; line-height:1.55; color:#c9d9e7; letter-spacing:-.025em; transition:color .28s ease,transform .28s ease; }
.outlook-focus dd { margin:6px 0 0; font-size:12px; line-height:1.8; color:#8b9fb3; letter-spacing:-.015em; word-break:keep-all; transition:color .28s ease,transform .28s ease; }
@media(hover:hover) and (pointer:fine) {
 .outlook-direction:hover:after,.outlook-focus dl>div:hover:after { opacity:1; }
 .outlook-direction:hover:before { box-shadow:0 0 12px color-mix(in srgb,var(--outlook-accent) 45%,transparent); }
 .outlook-direction:hover h3,.outlook-focus dl>div:hover dt { color:var(--outlook-accent); }
 .outlook-focus dl>div:hover { border-color:color-mix(in srgb,var(--outlook-accent) 45%,transparent); }
 .outlook-focus dl>div:hover:before { opacity:1; box-shadow:0 0 10px var(--outlook-accent); }
 .outlook-focus dl>div:hover dd { color:#becfdf; }
}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine) {
 html:not(.motion-paused) .outlook-direction:hover:before { transform:scaleX(2); }
 html:not(.motion-paused) .outlook-direction:hover h3 { transform:translateY(-3px); }
 html:not(.motion-paused) .outlook-focus dl>div:hover dt,html:not(.motion-paused) .outlook-focus dl>div:hover dd { transform:translateX(4px); }
}
.motion-paused .outlook-direction:before,.motion-paused .outlook-direction:after,.motion-paused .outlook-focus dl>div:before,.motion-paused .outlook-focus dl>div:after { transition:none; }
.outlook-purpose { display:flex; align-items:center; justify-content:space-between; gap:25px; padding-top:29px; }
.outlook-purpose>span { font-family:Manrope,sans-serif; color:#8a9fb3; font-size:10px; letter-spacing:.09em; }
.outlook-purpose>p { font-size:13px; color:#93a9bd; line-height:1.8; letter-spacing:-.025em; }.outlook-purpose strong { color:#c3d7e6; font-weight:500; }
@media(min-width:1700px) { .outlook-direction { padding:39px 43px 42px; }.outlook-direction:before { left:43px; }.outlook-direction-label { margin-bottom:40px; font-size:13px; }.outlook-direction-copy { font-size:15px; }.outlook-focus dt { font-size:19px; }.outlook-focus dd { font-size:13px; }.outlook-heading>p { font-size:16px; } }
@media(min-width:761px) and (max-width:1050px) { .outlook-direction { padding-inline:23px; }.outlook-direction:before { left:23px; }.outlook-direction h3 { font-size:25px; }.outlook-direction-copy { font-size:13px; }.outlook-focus dd { font-size:11px; }.outlook-focus dt { font-size:16px; } }
@media(max-width:760px) {
 .outlook-heading h2 { font-size:clamp(27px,6.6vw,47px); line-height:1.4; }.outlook-heading>p { font-size:13px; line-height:1.9; margin-top:25px; }.outlook-heading>p br { display:none; }
 .outlook-directions { display:block; margin-top:39px; }.outlook-direction,.outlook-direction:first-child,.outlook-direction:last-child { padding:29px 0 35px; background:none; }.outlook-direction+.outlook-direction { border-left:0; border-top:1px solid #7894aa65; }.outlook-direction:before { left:0; width:35px; }
 .outlook-direction-label { font-size:11px; gap:12px; margin-bottom:24px; }.outlook-direction h3 { font-size:32px; line-height:1.38; }.outlook-direction-copy { margin-top:19px; margin-bottom:28px; font-size:14px; }.outlook-focus>span { font-size:10px; }.outlook-focus dl>div { padding:16px 0 16px 15px; }.outlook-focus dl>div:before { top:27px; }.outlook-focus dt { font-size:18px; }.outlook-focus dd { font-size:12px; margin-top:4px; }
 .outlook-purpose { display:block; padding-top:23px; }.outlook-purpose>p { margin-top:10px; font-size:12px; }
}
@media(max-width:360px) { .outlook-heading h2 { font-size:25px; }.outlook-direction h3 { font-size:29px; } }
.corporate-logo { width:130px; height:130px; }
.corporate-signature { width:130px; margin-top:25px; text-align:center; }
.corporate .contact-line { margin-top:45px; }
.corporate .next-page { margin-top:55px; }

/* TECHNOLOGY: chaos is compressed into a readable decision field. */
.technology-intro { background:#f0f1f0; overflow:clip; height:210svh; }
.origin-stage { position:sticky; top:0; height:100svh; min-height:690px; display:flex; flex-direction:column; justify-content:center; padding-top:105px; padding-bottom:28px; }
.origin-stage>.eyebrow { margin-bottom:28px; }
.technology-intro-grid { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.3fr); gap:5%; align-items:center; }
.technology-intro h1 { font-size:clamp(44px,4.7vw,75px); }
.origin-note { margin-top:30px; padding-top:22px; border-top:1px solid #ccd2d7; display:grid; grid-template-columns:1fr 3fr; gap:6%; }
.origin-note>.micro-label { color:#758b9b; padding-top:3px; }
.origin-note p { color:#6d7984; font-size:13px; line-height:1.85; }
.origin-visual-track { min-width:0; }
.origin-visual { margin:0; --origin-progress:0; --raw-opacity:1; --ordered-opacity:0; --focus-opacity:0; --analysis-opacity:0; --decision-opacity:0; --results-opacity:0; }
.origin-visual-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#293a50; }
.origin-visual-heading>strong { font-size:20px; font-weight:500; letter-spacing:-.035em; }
.origin-visual-heading>span { color:#758190; font-size:10px; white-space:nowrap; }
.origin-diagram { display:block; width:100%; height:auto; aspect-ratio:720/400; max-height:420px; overflow:visible; }
.origin-guides { stroke:#95a4b7; stroke-width:.8; opacity:.4; }
.origin-raw-traces { stroke-width:1.2; opacity:calc(var(--raw-opacity)*.5); }
.origin-ordered-channels { stroke-width:1; opacity:calc(var(--ordered-opacity)*.19); }
.origin-focus-channels { stroke-width:1.1; opacity:calc(var(--focus-opacity)*.25); }
.origin-analysis-field { opacity:var(--analysis-opacity); }
.origin-analysis-results { opacity:var(--results-opacity); stroke-width:1.6; }
.origin-analysis-field>ellipse:not(:first-child) { stroke:#6388cf; stroke-width:1; stroke-dasharray:3 8; opacity:.4; }
.origin-particles>path { stroke-width:2.4; stroke-linecap:round; }
.origin-analysis-core { opacity:var(--focus-opacity); }
.origin-analysis-core>circle { fill:#f7fafb; stroke:#91b9dc; stroke-width:1.5; }
.origin-diagram text { fill:#8292a7; font-family:Manrope,sans-serif; font-size:14px; letter-spacing:-.02em; }
.origin-analysis-core>text { font-size:17px; fill:#3b587c; }
.origin-routes { opacity:var(--decision-opacity); }
.origin-route-alternative { stroke:#8a9ebc; stroke-width:1.4; stroke-dasharray:3 7; opacity:.36; }
.origin-route-selected { stroke-width:3; }
.origin-route-beam { stroke:#ccf7ff; stroke-width:3.5; stroke-linecap:round; stroke-dasharray:12 88; animation:origin-route-flow 3s linear infinite; }
.origin-output-muted { fill:#bac5d1; }.origin-output-active { fill:#6b63d8; stroke:#f0f1f0; stroke-width:2; }
.origin-diagram .origin-output-label { fill:#465f9a; font-size:16px; }
.origin-data-legend { display:flex; justify-content:center; gap:23px; font-size:11px; color:#617087; margin:-1px 0 16px; }
.origin-data-legend>span { display:flex; align-items:center; gap:6px; }.origin-data-legend>span:before { content:''; width:5px; height:5px; border-radius:50%; background:#008aa8; }
.origin-data-legend>span:nth-child(2):before { background:#3e5de2; }.origin-data-legend>span:nth-child(3):before { background:#a844ba; }
.origin-controls { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; padding-top:6px; }
.origin-controls:before { content:''; position:absolute; left:0; right:0; top:0; height:1px; background:#c5d0dc; }
.origin-controls:after { content:''; position:absolute; top:0; left:0; width:calc(var(--origin-progress)*100%); height:2px; background:linear-gradient(90deg,#08aabc,#4165e7,#a44cc0); pointer-events:none; }
.origin-controls>button { display:flex; justify-content:center; align-items:baseline; gap:10px; min-height:44px; padding:9px 6px; color:#8590a0; border-radius:4px; white-space:nowrap; transition:color .2s,background .2s; }
.origin-controls>button>span { font-family:Manrope,sans-serif; font-size:10px; }.origin-controls>button>strong { font-size:14px; font-weight:500; }
.origin-controls>button[aria-pressed="true"] { color:#26518c; background:#dfe8f099; }.origin-controls>button:hover { color:#26518c; }
.origin-controls>button:focus-visible { outline:2px solid #4768ba; outline-offset:3px; }
.origin-visual figcaption { min-height:45px; padding-top:15px; color:#53657b; font-size:13px; line-height:1.8; letter-spacing:-.02em; word-break:keep-all; }
.origin-scroll-hint { display:block; margin-top:7px; color:#808b98; font-size:10px; }
@keyframes origin-route-flow { to { stroke-dashoffset:-100; } }
.origin-visual:not([data-visible="true"]) .origin-route-beam,.origin-visual[data-page-visible="false"] .origin-route-beam { animation-play-state:paused; }
.research { background:#e0e5e9; }
.research-title .body-copy { max-width:350px; font-size:15px; }
.research-node { min-height:66px; }
.research-note>p>span { color:#8597a7; font-size:12px; display:inline-block; margin-bottom:8px; }
.technology { height:265svh; }
.pipeline { grid-template-columns:repeat(7,1fr); }
.tech-main { grid-template-columns:1fr 1.8fr; }
.tech-visual canvas { position:absolute; inset:0; width:100%; height:100%; }
.technology-philosophy { background:#f2f1ed; }
.technology-philosophy h2 { font-size:clamp(40px,5vw,78px); }
.technology-philosophy h2 span { color:#8a9aab; }
.philosophy-bottom { display:grid; grid-template-columns:1.25fr 1fr; gap:10%; margin-top:60px; }
.philosophy-bottom>.body-copy { align-self:center; }
.quality-system { position:relative; isolation:isolate; min-width:0; width:100%; max-width:820px; justify-self:end; padding:25px 26px 24px; overflow:hidden; border:1px solid #3c4c5d; border-radius:8px; color:#e5edf5; background:radial-gradient(ellipse at 12% 42%,#1b354e 0%,transparent 62%),linear-gradient(145deg,#202b38,#151c26 70%); box-shadow:0 16px 35px -25px #0c203859,inset 0 1px #ffffff12; }
.quality-system:before { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:radial-gradient(#a7c4e918 .6px,transparent .8px); background-size:7px 7px; mask-image:linear-gradient(90deg,#000,transparent 80%); }
.quality-system:after { content:''; position:absolute; top:-1px; left:26px; right:26px; height:1px; background:linear-gradient(90deg,#00cfff,#6672f2,#ee69d8,transparent); }
.quality-topline { display:flex; align-items:center; justify-content:space-between; gap:15px; padding-bottom:21px; border-bottom:1px solid #b5d3f21c; font-size:10px; letter-spacing:.04em; color:#8495a9; }
.quality-topline>span:first-child { font-family:Manrope,sans-serif; font-weight:600; letter-spacing:.11em; color:#cedce8; }
.quality-topline>span:last-child { display:flex; align-items:center; gap:10px; white-space:nowrap; }
.quality-topline b { font-family:Manrope,sans-serif; font-size:10px; font-weight:500; color:#b9c9db; }
.quality-body { --quality-split:40%; --quality-wire-start:28%; position:relative; display:grid; grid-template-columns:var(--quality-split) minmax(0,1fr); align-items:center; padding:23px 0; }
.quality-emblem { position:relative; z-index:1; min-width:0; margin-right:10px; text-align:center; }
.quality-logo { position:relative; display:grid; place-items:center; width:100%; aspect-ratio:1; }
.quality-logo:before { content:''; position:absolute; inset:12%; border-radius:50%; background:conic-gradient(from 20deg,#665bff66,#fc2de338,#00d7ff6b,#665bff66); filter:blur(24px); opacity:.65; transition:opacity .5s; }
.quality-logo:after { content:''; position:absolute; width:64%; height:9%; bottom:1%; border-radius:50%; background:#020911; filter:blur(9px); opacity:.55; }
.quality-logo .brand-symbol { z-index:1; width:88%; height:auto; aspect-ratio:1; filter:drop-shadow(0 10px 13px #050c205e); }
.quality-emblem-caption { display:block; position:relative; margin-top:15px; font-size:10px; color:#8195ac; letter-spacing:.04em; }
.quality-connections { position:absolute; z-index:0; top:50%; left:var(--quality-wire-start); width:calc(var(--quality-split) - var(--quality-wire-start)); height:240px; transform:translateY(-50%); overflow:visible; pointer-events:none; }
.quality-connections path { fill:none; stroke:#6f90b630; stroke-width:.8; vector-effect:non-scaling-stroke; transition:stroke .45s,opacity .45s; }
.quality-connections path.is-active { stroke:var(--quality-accent); stroke-width:1.2; stroke-dasharray:35 5 5 5; animation:quality-current 4s linear infinite; filter:drop-shadow(0 0 3px var(--quality-accent)); }
.quality-choices { position:relative; z-index:1; }
.quality-choice { position:relative; display:flex; align-items:center; gap:11px; width:100%; height:48px; padding:0 9px 0 12px; border-bottom:1px solid #9cc5ec16; border-radius:3px; text-align:left; color:#8b9aad; transition:background .3s,color .3s; }
.quality-choice:before { content:''; position:absolute; left:0; top:23px; width:3px; height:3px; border-radius:50%; background:#687b8d; transition:background .3s,box-shadow .3s; }
.quality-choice-number { flex:none; font-family:Manrope,sans-serif; font-size:9px; color:#6c8199; }
.quality-choice-label { font-size:13px; font-weight:500; letter-spacing:-.035em; white-space:nowrap; }
.quality-choice>svg { flex:none; width:17px; height:17px; margin-left:auto; fill:none; stroke:currentColor; stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; opacity:.65; }
.quality-choice[aria-pressed="true"] { color:#edf8ff; background:linear-gradient(90deg,#5ba8d722,#759be00a); }
.quality-choice[aria-pressed="true"]:before { background:var(--principle-color); box-shadow:0 0 9px var(--principle-color); }
.quality-choice[aria-pressed="true"] .quality-choice-number,.quality-choice[aria-pressed="true"]>svg { color:var(--principle-color); opacity:1; }
.quality-choice:hover { color:#edf8ff; background-color:#c6e0ff0b; }
.quality-choice:focus-visible { outline:2px solid var(--principle-color); outline-offset:2px; }
.quality-detail { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr); gap:13px; align-items:start; min-height:58px; border-top:1px solid #b5d3f226; padding-top:18px; }
.quality-detail-index { font-family:Manrope,sans-serif; font-size:11px; line-height:1.9; color:var(--quality-accent); white-space:nowrap; }
.quality-detail-index i { font-style:normal; color:#65788e; font-size:9px; margin-left:2px; }
.quality-detail p { font-size:12px; line-height:1.85; color:#a7b8cb; letter-spacing:-.025em; word-break:keep-all; }
.quality-detail p[lang=en] { margin-top:7px; font-size:12px; line-height:1.65; color:#8fa6bb; letter-spacing:0; word-break:normal; overflow-wrap:break-word; }
@keyframes quality-current { to { stroke-dashoffset:-100; } }
.quality-system:not([data-visible="true"]) *,.quality-system[data-page-visible="false"] *,.motion-paused .quality-system * { animation-play-state:paused; }
.quality-system:not([data-visible="true"]) .quality-connections path,.quality-system[data-page-visible="false"] .quality-connections path,.motion-paused .quality-system .quality-connections path { animation-play-state:paused; }
@media(min-width:1700px) {
 .quality-system { padding:32px 36px 28px; }.quality-topline { font-size:12px; padding-bottom:24px; }
 .quality-body { --quality-split:44%; --quality-wire-start:33%; padding:28px 0; }
 .quality-logo { max-width:225px; margin-inline:auto; }.quality-emblem-caption { font-size:11px; }
 .quality-choice-label { font-size:16px; }.quality-choice-number { font-size:10px; }.quality-choice { gap:15px; padding-inline:16px; }
 .quality-choice>svg { width:20px; height:20px; }
 .quality-detail { min-height:66px; padding-top:20px; gap:20px; }.quality-detail p { font-size:14px; }
}
@media(min-width:761px) and (max-width:1100px) {
 .quality-system { padding:20px 16px; }.quality-body { --quality-split:35.5%; --quality-wire-start:26%; }
 .quality-choice { gap:8px; padding-right:5px; }.quality-choice>svg { display:none; }
 .quality-emblem-caption { font-size:9px; letter-spacing:0; }.quality-topline { font-size:9px; gap:8px; }.quality-topline>span:first-child { letter-spacing:.03em; }
}
@media(max-width:760px) {
 .quality-system { max-width:none; padding:23px 20px; }.quality-body { --quality-split:42%; --quality-wire-start:29%; }
 .quality-choice { gap:8px; padding-right:5px; }.quality-choice-label { font-size:12px; }.quality-choice>svg { width:15px; height:15px; }
 .quality-emblem-caption { font-size:9px; letter-spacing:0; }
 .quality-detail { min-height:64px; }.quality-detail p { font-size:12px; }
}
@media(max-width:360px) { .quality-choice>svg { display:none; }.quality-system { padding-inline:16px; } }
@media(prefers-reduced-motion:reduce) { .quality-system *,.quality-system .quality-logo:before,.quality-system .quality-connections path { animation:none; transition:none; } }

/* SERVICE: the internal layers align to become a clear surface. */
.service-intro { background:#edf0f3; overflow:hidden; padding-bottom:55px; }
.service-intro-heading { display:flex; align-items:end; justify-content:space-between; gap:50px; }
.service-intro-heading .intro-description { font-size:15px; margin:0 0 6px; }
.experience-layers { position:relative; max-width:1160px; height:520px; margin:25px auto 35px; --experience-progress:0; perspective:1400px; }
.layer-network { position:absolute; inset:0; opacity:calc(.8 - var(--experience-progress)*.65); }
.layer-network canvas { width:100%; height:100%; display:block; }
.system-plane { position:absolute; left:50%; top:43%; width:350px; height:280px; padding:22px; background:#dce5ed44; border:1px solid #9cb1c655; transform:translate(calc(-50% + (1 - var(--experience-progress))*var(--offset)),calc(-50% + (1 - var(--experience-progress))*var(--raise))) rotateY(calc((1 - var(--experience-progress))*-25deg)) rotateZ(calc((1 - var(--experience-progress))*-9deg)); opacity:calc(1 - var(--experience-progress)); }
.plane-back { --offset:-190px; --raise:8px; }
.plane-middle { --offset:-80px; --raise:38px; }
.system-plane>span { font-size:11px; color:#7e99ae; }
.system-plane>i { display:block; height:30px; border-bottom:1px solid #9aafc144; margin-top:25px; }
.experience-surface { position:absolute; left:50%; top:43%; width:350px; background:#fafbfc; border:1px solid #c4ced8; padding:24px 30px; box-shadow:25px 38px 80px #253e571a; transform:translate(calc(-50% + (1 - var(--experience-progress))*150px),-50%) rotateY(calc((1 - var(--experience-progress))*-20deg)) rotateZ(calc((1 - var(--experience-progress))*-5deg)); }
.surface-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; font-size:10px; color:#7d92a3; }
.surface-heading i { font-size:22px; font-style:normal; color:#8db2cf; }
.experience-surface>p { font-size:36px; line-height:1.3; letter-spacing:-.07em; margin:20px 0 25px; }
.surface-row { display:flex; align-items:center; gap:17px; font-size:11px; border-top:1px solid #e0e5e9; padding:12px 0; color:#8797a5; }
.surface-row>i { height:1px; background:#d5dde4; flex:1; }
.surface-row>span:last-child { color:#b0bdc8; font-size:9px; }
.experience-view-controls { position:absolute; bottom:28px; width:100%; display:flex; align-items:center; justify-content:center; gap:35px; color:#98adbd; }
.experience-view-controls button { font-size:13px; color:#8c9eac; padding:10px 0; border-bottom:1px solid #c4cfd8; }
.experience-view-controls button[aria-pressed=true] { color:#245577; border-color:#457b9f; }
.experience-view-label { position:absolute; left:0; bottom:-12px; width:100%; text-align:center; font-size:12px; color:#8999a8; }
.experience-layers.is-manual .system-plane,.experience-layers.is-manual .experience-surface { transition:transform .9s var(--ease),opacity .8s; }
.user-flow { padding:25px 0 0; margin:30px 0 0; display:grid; grid-template-columns:repeat(6,1fr); list-style:none; border-top:1px solid #bcc9d4; }
.user-flow li { font-size:13px; color:#596d7e; position:relative; }
.user-flow li:not(:last-child):after { content:'→'; position:absolute; right:20px; color:#8fa5b6; }
.user-flow li>span { display:block; font-size:10px; color:#899dab; margin-bottom:10px; }
/* SERVICE: one story, a visible experience, and a connected brand ecosystem. */
.service-understanding { background:radial-gradient(ellipse at 82% 38%,#e5eef766,transparent 60%),#f6f5f1; }
.understanding-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); align-items:center; gap:48px 6%; }
.service-understanding h2 { font-size:clamp(35px,3.5vw,60px); line-height:1.25; }
.understanding-story .body-copy { max-width:530px; margin-top:30px; font-size:15px; line-height:1.95; }
.understanding-display { min-width:0; padding:24px 30px 23px; background:linear-gradient(135deg,#ffffffee,#f6faffd9); border:1px solid #c7d5e0; border-radius:14px; box-shadow:0 25px 80px -55px #385d8880,inset 0 1px #fff; }
.ux-topline { display:flex; justify-content:space-between; align-items:center; gap:15px; padding-bottom:18px; border-bottom:1px solid #dce4eb; }
.ux-identity { display:flex; align-items:center; gap:10px; font-family:Manrope,sans-serif; font-size:11px; font-weight:600; color:#425566; }
.ux-identity .brand-symbol { width:30px; height:30px; }
.ux-topline>span:last-child { font-size:10px; color:#8495a3; white-space:nowrap; }
.ux-panels { min-height:286px; }
.ux-panel { height:286px; display:flex; flex-direction:column; justify-content:center; animation:ux-reveal .35s ease both; }
.ux-panel[hidden] { display:none; }
.ux-scene-title { display:flex; flex-direction:column; gap:10px; margin-bottom:25px; }
.ux-scene-title>span { font-size:10px; letter-spacing:.05em; color:#7394af; }
.ux-scene-title>strong { font-size:23px; font-weight:500; letter-spacing:-.04em; line-height:1.4; color:#263f53; }
.ux-overview { border:1px solid #d6e3ec; border-radius:8px; background:linear-gradient(110deg,#ecf4fb,#f9fcff); }
.ux-status { display:flex; align-items:center; gap:25px; padding:18px 22px; }
.ux-status>svg { width:68px; height:68px; flex:none; fill:none; stroke:#cadbe8; stroke-width:1.5; }
.ux-status>svg path { stroke:#6697c3; stroke-linecap:round; stroke-linejoin:round; }
.ux-status-ring { stroke:#45acdb; stroke-width:2.5; stroke-dasharray:72 129; transform:rotate(-90deg); transform-origin:center; animation:ux-ring 9s linear infinite; }
.ux-status>div { display:flex; flex-direction:column; gap:3px; }
.ux-status small { font-size:10px; color:#859bb0; }.ux-status strong { font-size:21px; font-weight:500; color:#324f67; letter-spacing:-.04em; }
.ux-status>div>span { font-size:11px; color:#7690a6; }
.ux-result { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid #d6e3ec; font-size:12px; color:#55758e; }
.ux-result>span { display:flex; align-items:center; gap:10px; padding:13px 18px; }.ux-result>span+span { border-left:1px solid #d6e3ec; }
.ux-result i { width:5px; height:5px; border-radius:50%; background:#90b1d1; }
.ux-process { display:grid; grid-template-columns:repeat(3,1fr); position:relative; list-style:none; padding:13px 0 16px; margin:0; }
.ux-process:before { content:''; position:absolute; height:1px; left:16.666%; right:16.666%; top:35px; background:linear-gradient(90deg,#66b8d6,#b3a4e4); }
.ux-process li { display:flex; flex-direction:column; gap:6px; align-items:center; text-align:center; position:relative; }
.ux-process-node { display:grid; place-items:center; width:44px; height:44px; margin-bottom:12px; border:1px solid #b5d1e2; border-radius:50%; background:#eef6fc; color:#6995ba; font-family:Manrope,sans-serif; font-size:12px; box-shadow:0 0 0 6px #f9fcff; }
.ux-process li:nth-child(2) .ux-process-node { border-color:#b6b6e2; color:#8d85bf; }.ux-process li:last-child .ux-process-node { border-color:#c2b7df; color:#9a7fbb; }
.ux-process li>strong { font-size:21px; font-weight:500; color:#324f67; }.ux-process li>span:last-child { font-size:11px; color:#8495a3; word-break:keep-all; }
.ux-structure { display:grid; grid-template-columns:1fr 36px 1.25fr; align-items:center; padding:10px 0 16px; }
.ux-internal>span,.ux-outcome>span { display:block; font-size:10px; color:#8495a3; margin-bottom:13px; }
.ux-internal>div { display:grid; grid-template-columns:1fr 1fr; gap:6px; }.ux-internal i { padding:8px 3px; font-size:11px; font-style:normal; text-align:center; border:1px solid #d9e3eb; color:#8c9dad; border-radius:3px; }
.ux-bridge { width:100%; height:1px; background:linear-gradient(90deg,#c6d4e2,#709ed0); margin-top:28px; position:relative; }
.ux-bridge:after { content:''; width:4px; height:4px; background:#78a6cd; border-radius:50%; position:absolute; right:0; top:-1px; }
.ux-outcome { padding:19px 13px; border:1px solid #a6c4dc; border-radius:7px; background:linear-gradient(135deg,#e8f3fc,#eaeefb); }
.ux-outcome>span { color:#7696b0; }.ux-outcome strong { display:block; font-size:15px; font-weight:500; color:#3b6386; letter-spacing:-.04em; }.ux-outcome small { display:block; margin-top:8px; font-size:10px; color:#8096ad; }
.ux-caption { display:flex; align-items:center; gap:10px; min-height:47px; padding-top:16px; border-top:1px solid #dce4eb; }
.ux-caption>span { width:4px; height:4px; border-radius:50%; background:#80a7c7; flex:none; }.ux-caption p { font-size:11px; color:#7a8b9b; line-height:1.7; word-break:keep-all; }
.understanding-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-column:1/-1; border-top:1px solid #cbd5dd; gap:24px; }
.understanding-choices button { position:relative; display:grid; grid-template-columns:23px minmax(0,1fr); align-content:start; gap:10px 12px; padding:25px 15px 13px; text-align:left; border-radius:0 0 7px 7px; color:#7e8d99; transition:background .25s,color .25s; }
.understanding-choices button:before { content:''; position:absolute; left:0; right:0; top:-1px; height:2px; background:linear-gradient(90deg,#22acce,#8a82d3); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.understanding-choices button[aria-pressed="true"] { color:#263f55; background:linear-gradient(#e6eff660,#e6eff610); }
.understanding-choices button[aria-pressed="true"]:before { transform:scaleX(1); }
.understanding-choices button:hover { color:#3c7098; background:#e4edf433; }
.understanding-choices button:focus-visible { outline:2px solid #6192b7; outline-offset:4px; }
.ux-choice-number { font-family:Manrope,sans-serif; font-size:10px; color:#8eacbf; padding-top:5px; }
.understanding-choices strong { font-weight:500; font-size:23px; line-height:1.5; letter-spacing:-.045em; word-break:keep-all; }
.ux-choice-copy { grid-column:2; font-size:12px; line-height:1.8; color:#8b98a2; word-break:keep-all; }
.ux-choice-indicator { display:none; }

.service-ecosystem { position:relative; isolation:isolate; overflow:hidden; color:#e7edf2; background:radial-gradient(ellipse at 50% 65%,#253d5666,transparent 57%),#151e29; }
.service-ecosystem:before { content:''; position:absolute; z-index:-1; inset:25% 8% 8%; background-image:radial-gradient(#a7c4e919 .7px,transparent .8px); background-size:9px 9px; mask-image:radial-gradient(ellipse at center,#000,transparent 68%); pointer-events:none; }
.ecosystem-story { max-width:840px; margin:0 auto 75px; text-align:center; }
.service-ecosystem h2 { font-size:clamp(44px,4.5vw,72px); line-height:1.17; }
.service-ecosystem h2 span { color:#a8c5dd; }
.ecosystem-story .body-copy { max-width:675px; margin:25px auto 0; color:#99acbf; font-size:15px; line-height:1.95; }
.ecosystem-network { display:grid; grid-template-columns:minmax(0,.28fr) minmax(0,.44fr) minmax(0,.28fr); align-items:center; position:relative; max-width:1240px; height:400px; margin:0 auto; }
.ecosystem-routes { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.ecosystem-route { fill:none; stroke:#6d93bb38; stroke-width:1; vector-effect:non-scaling-stroke; transition:stroke .3s,opacity .3s; }
.ecosystem-route.is-active { stroke:url(#ecosystem-link-color); stroke-width:1.5; stroke-dasharray:25 4 3 4; animation:ecosystem-flow 5s linear infinite; filter:drop-shadow(0 0 4px #69a8e175); }
.ecosystem-wing { position:relative; z-index:2; display:grid; grid-template-rows:repeat(4,1fr); height:400px; }
.ecosystem-wing-label { position:absolute; top:-31px; font-size:10px; color:#657f99; letter-spacing:.06em; }
.ecosystem-wing-left .ecosystem-wing-label { left:0; }.ecosystem-wing-right .ecosystem-wing-label { right:0; }
.ecosystem-node { position:relative; display:flex; align-items:center; gap:18px; align-self:center; min-width:0; height:76px; width:100%; padding:13px 19px; border:1px solid #8faece1a; background:linear-gradient(110deg,#1c2a37f0,#192633eb); border-radius:7px; text-align:left; transition:border-color .3s,background .3s,box-shadow .3s; }
.ecosystem-node-text { display:flex; flex-direction:column; min-width:0; gap:3px; }.ecosystem-node small { font-family:Manrope,sans-serif; font-size:9px; letter-spacing:.05em; color:#6a859d; }
.ecosystem-node strong { font-size:18px; line-height:1.4; font-weight:500; letter-spacing:-.04em; color:#9cb1c6; white-space:nowrap; transition:color .3s; }
.ecosystem-node-icon { display:grid; place-items:center; width:37px; height:37px; border:1px solid #86a7c325; border-radius:9px; flex:none; color:#7994ad; }
.ecosystem-node-icon svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.ecosystem-node>i { position:absolute; right:-3px; top:calc(50% - 2px); width:4px; height:4px; background:#63809b; border-radius:50%; }
.ecosystem-wing-right .ecosystem-node>i { right:auto; left:-3px; }
.ecosystem-node[aria-pressed="true"] { border-color:#5bbfe777; background:linear-gradient(110deg,#234459e8,#1d2e40eb); box-shadow:0 0 24px -12px #5ecff857; }
.ecosystem-node[aria-pressed="true"] strong { color:#e0f5ff; }.ecosystem-node[aria-pressed="true"] .ecosystem-node-icon { color:#81d2ed; border-color:#64c7e845; }
.ecosystem-node[aria-pressed="true"]>i { background:#9ddffa; box-shadow:0 0 10px #49c8ff; }
.ecosystem-node:hover { border-color:#85c5df70; }.ecosystem-node:hover strong { color:#d9edf7; }
.ecosystem-node:focus-visible { outline:2px solid #a0d7ff; outline-offset:4px; }
.ecosystem-hub { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; height:400px; }
.ecosystem-hub-logo { display:grid; place-items:center; position:relative; width:clamp(150px,17vw,224px); height:clamp(150px,17vw,224px); }
.ecosystem-hub-logo:before { content:''; position:absolute; inset:10%; background:conic-gradient(from 15deg,#276ee68c,#9824d858,#08cfee80,#276ee68c); border-radius:50%; filter:blur(40px); }
.ecosystem-hub-logo .brand-symbol { width:90%; height:90%; filter:drop-shadow(0 16px 15px #0005); }
.ecosystem-hub>strong { margin-top:20px; font-family:Manrope,sans-serif; font-size:15px; font-weight:600; letter-spacing:.08em; color:#c0d4e8; }
.ecosystem-hub>span { margin-top:7px; font-size:11px; color:#728da8; letter-spacing:.04em; }
.ecosystem-orbits { position:absolute; inset:0; z-index:-1; pointer-events:none; }
.ecosystem-orbits i { position:absolute; width:84%; height:82%; border:1px solid #779bc021; border-radius:50%; top:1%; left:8%; transform:rotate(-18deg); }
.ecosystem-orbits i:nth-child(2) { width:72%; height:73%; top:6%; left:14%; border-color:#779bc013; transform:rotate(18deg); }
.ecosystem-orbits i:nth-child(3) { width:102%; height:59%; top:13%; left:-1%; border-color:#779bc017; transform:rotate(-35deg); }
.ecosystem-detail { display:grid; grid-template-columns:220px minmax(0,1fr) 35px; align-items:center; gap:32px; max-width:1240px; min-height:104px; margin:45px auto 0; padding:23px 28px; border-top:1px solid #7eabc544; border-bottom:1px solid #7eabc526; background:linear-gradient(100deg,#2a405633,transparent); }
.ecosystem-detail>div { display:flex; align-items:center; gap:24px; }.ecosystem-detail-number { font-family:Manrope,sans-serif; font-size:10px; color:#6e94b2; white-space:nowrap; }
.ecosystem-detail strong { font-size:18px; font-weight:500; color:#c6dced; letter-spacing:-.035em; white-space:nowrap; }
.ecosystem-detail p { font-size:14px; color:#8fa7be; line-height:1.85; letter-spacing:-.025em; word-break:keep-all; }
.ecosystem-detail-mark .brand-symbol { width:30px; height:30px; opacity:.6; }
@keyframes ux-reveal { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
@keyframes ux-ring { to { stroke-dashoffset:-201; } }
@keyframes ecosystem-flow { to { stroke-dashoffset:-108; } }
[data-service-scene]:not([data-scene-visible="true"]) *,[data-service-scene][data-page-visible="false"] * { animation-play-state:paused; }
[data-service-scene]:not([data-scene-visible="true"]) .ecosystem-route.is-active,[data-service-scene][data-page-visible="false"] .ecosystem-route.is-active { animation-play-state:paused; }
@media(min-width:761px) and (max-width:1100px) {
 .understanding-layout { gap:35px 4%; }.understanding-display { padding:20px; }.service-understanding h2 { font-size:35px; }
 .understanding-story .body-copy { font-size:14px; }.ux-topline>span:last-child { font-size:9px; }.ux-identity { font-size:10px; gap:7px; }.ux-identity .brand-symbol { width:25px; height:25px; }
 .ux-scene-title>strong { font-size:20px; }.ux-status { gap:14px; padding:17px 14px; }.ux-status>svg { width:56px; height:56px; }
 .ux-structure { grid-template-columns:1fr 18px 1.2fr; }.ux-outcome { padding:18px 9px; }.ux-outcome strong { font-size:12px; }.ux-outcome small { font-size:9px; }
 .understanding-choices { gap:14px; }.understanding-choices button { gap:9px 7px; padding-inline:6px; }.understanding-choices strong { font-size:20px; }
 .ecosystem-node { gap:10px; padding-inline:12px; }.ecosystem-node-icon { width:30px; height:30px; }.ecosystem-node strong { font-size:15px; }.ecosystem-detail { grid-template-columns:195px minmax(0,1fr); gap:20px; }.ecosystem-detail-mark { display:none; }
}
@media(max-width:760px) {
 .understanding-layout { grid-template-columns:minmax(0,1fr); gap:30px; grid-template-areas:'story' 'choices' 'display'; }
 .understanding-story { grid-area:story; }.service-understanding h2 { font-size:clamp(31px,8.2vw,51px); }.understanding-story .body-copy { font-size:14px; margin-top:24px; }
 .understanding-display { grid-area:display; padding:20px; border-radius:10px; }.ux-topline { gap:8px; }.ux-topline>span:last-child { font-size:9px; }.ux-identity { font-size:10px; gap:7px; }.ux-identity .brand-symbol { width:25px; height:25px; }
 .ux-panels,.ux-panel { height:280px; min-height:280px; }.ux-scene-title>strong { font-size:21px; }.ux-status { gap:17px; padding:18px 16px; }.ux-status>svg { width:57px; height:57px; }
 .ux-status strong { font-size:19px; }.ux-status>div>span { font-size:10px; }.ux-result>span { padding:12px 14px; font-size:11px; }
 .ux-process li>strong { font-size:19px; }.ux-process li>span:last-child { font-size:10px; }.ux-process-node { width:40px; height:40px; }.ux-process:before { top:33px; }
 .ux-structure { grid-template-columns:1fr 22px 1.2fr; }.ux-outcome { padding:18px 10px; }.ux-outcome strong { font-size:13px; }.ux-outcome small { font-size:9px; }
 .ux-caption { min-height:51px; }.ux-caption p { font-size:11px; }
 .understanding-choices { grid-area:choices; gap:9px; }.understanding-choices button { display:grid; grid-template-columns:minmax(0,1fr); align-content:start; gap:0; padding:16px 10px 12px; }.ux-choice-number { display:block; padding:0 0 8px; }
 .understanding-choices strong { display:block; max-width:72px; min-height:51px; font-size:17px; line-height:1.5; }.ux-choice-copy { display:none; }
 .ecosystem-story { margin-bottom:34px; text-align:left; }.service-ecosystem h2 { font-size:clamp(40px,10vw,58px); }.ecosystem-story .body-copy { margin-top:24px; font-size:14px; }
 .ecosystem-network { height:auto; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 14px; padding-top:215px; }
 .ecosystem-network:before { content:''; position:absolute; left:20%; right:20%; top:226px; height:1px; background:#55769070; }
 .ecosystem-routes { display:none; }.ecosystem-hub { position:absolute; height:200px; left:15%; right:15%; top:0; }
 .ecosystem-hub-logo { width:133px; height:133px; }.ecosystem-hub>strong { font-size:12px; margin-top:9px; }.ecosystem-hub>span { margin-top:3px; font-size:10px; }
 .ecosystem-orbits { inset:-5% -15% 0; }.ecosystem-orbits i { height:88%; }.ecosystem-orbits i:nth-child(2) { height:80%; }.ecosystem-orbits i:nth-child(3) { height:73%; }
 .ecosystem-hub:after { content:''; position:absolute; top:100%; height:32px; width:1px; background:linear-gradient(#809cb3,#526d86); }
 .ecosystem-wing { height:auto; display:grid; grid-template-rows:repeat(4,72px); gap:9px; padding-top:32px; }
 .ecosystem-wing:before { content:''; position:absolute; height:1px; left:0; right:0; top:11px; background:#4e6c863e; }
 .ecosystem-wing:after { content:''; position:absolute; z-index:-1; top:11px; bottom:36px; left:50%; width:1px; background:linear-gradient(#57789585,#57789535); }
 .ecosystem-wing-label { top:7px; padding:0 8px; background:#1b2938; z-index:1; font-size:9px; }.ecosystem-wing-left .ecosystem-wing-label { left:0; }.ecosystem-wing-right .ecosystem-wing-label { right:0; }
 .ecosystem-node { height:72px; padding:11px; gap:9px; border-radius:6px; }.ecosystem-node-icon { width:27px; height:27px; border-radius:6px; }.ecosystem-node-icon svg { width:17px; height:17px; }
 .ecosystem-node strong { font-size:13px; }.ecosystem-node small { font-size:8px; }.ecosystem-node-text { gap:2px; }.ecosystem-node>i { display:none; }
 .ecosystem-detail { grid-template-columns:minmax(0,1fr); gap:11px; min-height:141px; margin-top:25px; padding:20px 14px; }.ecosystem-detail>div { gap:16px; }.ecosystem-detail strong { font-size:16px; }.ecosystem-detail p { font-size:12px; }.ecosystem-detail-mark { display:none; }
}
@media(max-width:360px) {
 .understanding-display { padding:17px; }.ux-topline>span:last-child { font-size:8px; }.ux-status { gap:10px; padding-inline:12px; }.ux-status>svg { width:47px; height:47px; }.ux-status>div>span { font-size:9px; }
 .ecosystem-node-icon { display:none; }.ecosystem-node { padding-inline:15px; }.ux-outcome strong { font-size:12px; }.ux-outcome small { font-size:8px; }
}
@media(prefers-reduced-motion:reduce) { [data-service-scene] *,[data-service-scene] *:before,[data-service-scene] *:after { animation:none!important; transition:none!important; } }
.partner-section { background:radial-gradient(ellipse at 50% 38%,#e4eef480,transparent 65%),#f3f2ed; }
.partner-heading { text-align:center; margin:0 auto 42px; }
.partner-heading h2 { font-size:clamp(40px,4.3vw,66px); line-height:1.22; }
.partner-heading h2>span { color:#7892a6; }
.partner-heading>p { margin-top:25px; color:#75838c; font-size:14px; line-height:1.9; letter-spacing:-.03em; }
.partner-heading>p strong { font-weight:500; color:#36576a; }
.partner-bridge { position:relative; border:1px solid #c5d1d8; border-radius:18px; background:linear-gradient(150deg,#ffffffee,#f8fbf9b3); box-shadow:0 25px 75px -55px #45607870,inset 0 1px #fff; overflow:hidden; }
.partner-bridge:before { content:''; position:absolute; top:0; left:10%; right:10%; height:1px; background:linear-gradient(90deg,transparent,#66b8d3,#a3a0cc,transparent); }
.partner-bridge-top { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 30px; padding:22px 0; border-bottom:1px solid #cfdae144; font-size:11px; color:#718897; letter-spacing:.015em; }
.partner-bridge-top>span:last-child { font-size:10px; color:#9aaab4; }
.partner-relationship { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:25px 0 31px; background:radial-gradient(ellipse at 50% 42%,#e6edf5a3,transparent 65%); }
.partner-flow-lines { position:absolute; left:0; top:25px; width:100%; height:230px; overflow:visible; pointer-events:none; }
.partner-flow-base { stroke:#c0d1dd; stroke-width:1; vector-effect:non-scaling-stroke; }
.partner-flow-trace { stroke:url(#partner-flow-color); stroke-width:2; stroke-dasharray:9 91; stroke-linecap:round; vector-effect:non-scaling-stroke; animation:partner-connection 7s linear infinite; }
.partner-flow-arrows { stroke:#8ba6b8; stroke-width:1; vector-effect:non-scaling-stroke; }
.partner-link-label { position:absolute; top:106px; color:#8399a9; font-size:10px; transform:translateX(-50%); }
.partner-link-first { left:33.333%; }.partner-link-second { left:66.666%; }
.partner-station { position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; min-width:0; }
.partner-portrait { position:relative; width:158px; height:170px; display:grid; place-items:center; margin-bottom:8px; }
.partner-platform-logo { position:relative; display:grid; place-items:center; width:122px; height:122px; border-radius:36px; border:1px solid #c2d3df; background:linear-gradient(135deg,#fff,#e9f0f6); box-shadow:0 12px 20px -12px #4a668675,inset 0 0 0 5px #ffffffa3; transform:rotate(-7deg); }
.partner-platform-logo:before { content:''; position:absolute; inset:-10px; border:1px solid #d0dce766; border-radius:42px; }
.partner-platform-logo .brand-symbol { width:88px; height:88px; transform:rotate(7deg); }
.partner-portrait>svg { position:relative; width:148px; height:148px; filter:drop-shadow(0 12px 8px #61799125); }
.partner-station-1 .partner-portrait>svg { width:158px; }
.partner-dialogue-back { fill:#e0eef4; stroke:#b4cbdc; stroke-width:1; }
.partner-dialogue-front { fill:url(#partner-dialogue-front); stroke:#6689a3; stroke-width:1; }
.partner-choice-sheet { fill:#fbfdfd; stroke:#bfcfda; stroke-width:1; }
.partner-station>strong { color:#304c60; font-size:23px; font-weight:500; letter-spacing:-.045em; line-height:1.4; }
.partner-station>span { color:#8a9daa; font-size:11px; margin-top:4px; line-height:1.6; }
.partner-station-1>span { color:#73809c; }
.partner-guides { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); position:relative; border-top:1px solid #cad8e1; background:#fff9; }
.partner-guides>article { display:flex; flex-direction:column; padding:28px 30px 29px; min-width:0; }
.partner-guides>article+article { border-left:1px solid #d3dee68a; }
.partner-guide-heading { display:flex; align-items:center; gap:13px; }
.partner-guide-heading>span { color:#90a9bc; font-family:Manrope,sans-serif; font-size:10px; flex:none; }
.partner-guide-heading h3 { color:#2f485c; font-size:23px; line-height:1.35; font-weight:500; letter-spacing:-.05em; }
.partner-guides article>p { flex:1; font-size:13px; line-height:1.9; color:#7a8b98; margin-top:17px; letter-spacing:-.03em; }
.partner-guides ul { list-style:none; padding:17px 0 0; margin:19px 0 0; border-top:1px solid #d8e1e873; display:grid; gap:10px; }
.partner-guides li { display:flex; align-items:baseline; gap:9px; color:#5c7a8e; font-size:11px; line-height:1.6; letter-spacing:-.025em; word-break:keep-all; }
.partner-guides li>i { width:4px; height:4px; flex:none; border:1px solid #6c9caf; border-radius:50%; align-self:start; margin-top:6px; }
.partner-policy-note { display:grid; grid-template-columns:140px minmax(0,1fr); gap:24px; padding:25px 6px 0; align-items:baseline; }
.partner-policy-note>span { font-size:11px; color:#6f889b; }
.partner-policy-note>p { max-width:1030px; font-size:11px; line-height:1.9; color:#97a3ac; word-break:keep-all; }
@keyframes partner-connection { to { stroke-dashoffset:-100; } }
[data-partner-scene]:not([data-partner-visible="true"]) .partner-flow-trace,[data-partner-scene][data-page-visible="false"] .partner-flow-trace { animation-play-state:paused; }
@media(min-width:1700px) { .partner-heading { margin-bottom:48px; }.partner-heading>p { font-size:15px; }.partner-relationship { padding-top:31px; padding-bottom:35px; }.partner-flow-lines { top:31px; }.partner-link-label { top:112px; }.partner-guides>article { padding:32px 38px; }.partner-guide-heading h3 { font-size:27px; }.partner-guides article>p { font-size:14px; }.partner-guides li { font-size:12px; } }
@media(min-width:761px) and (max-width:1050px) { .partner-guides>article { padding:25px 20px; }.partner-guide-heading { gap:8px; }.partner-guide-heading h3 { font-size:20px; }.partner-guides article>p { font-size:12px; }.partner-portrait { width:135px; }.partner-link-label { font-size:9px; }.partner-platform-logo { width:107px; height:107px; }.partner-station>strong { font-size:21px; } }
@media(max-width:760px) {
 .partner-heading { text-align:left; margin-bottom:29px; }.partner-heading h2 { font-size:clamp(34px,8.4vw,54px); line-height:1.24; }.partner-heading>p { font-size:13px; margin-top:21px; }.partner-heading>p br { display:none; }
 .partner-bridge { border-radius:12px; }.partner-bridge-top { padding:17px 0; margin-inline:19px; font-size:10px; }.partner-bridge-top>span:last-child { display:none; }
 .partner-relationship { padding:17px 6px 24px; }.partner-portrait { width:90px; height:104px; margin-bottom:9px; }.partner-platform-logo { width:69px; height:69px; border-radius:23px; box-shadow:0 8px 15px -10px #4a668675,inset 0 0 0 3px #ffffffa3; }.partner-platform-logo:before { inset:-5px; border-radius:27px; }.partner-platform-logo .brand-symbol { width:52px; height:52px; }.partner-portrait>svg { width:86px; height:98px; }.partner-station-1 .partner-portrait>svg { width:91px; }
 .partner-station>strong { font-size:15px; line-height:1.5; }.partner-station>span { font-size:9px; max-width:90px; margin-top:4px; }
 .partner-flow-lines { height:115px; top:17px; }.partner-link-label { display:none; }
 .partner-guides { grid-template-columns:minmax(0,1fr); }.partner-guides>article { padding:25px 23px; }.partner-guides>article+article { border-left:0; border-top:1px solid #d3dee68a; }.partner-guide-heading h3 { font-size:25px; }.partner-guide-heading>span { font-size:10px; }.partner-guides article>p { min-height:0; margin-top:14px; font-size:13px; }.partner-guides ul { border-top:0; margin-top:17px; padding-top:0; gap:7px; }.partner-guides li { font-size:11px; }
 .partner-policy-note { grid-template-columns:minmax(0,1fr); gap:9px; padding:23px 1px 0; }.partner-policy-note>p { font-size:10px; line-height:1.85; }
}
@media(max-width:360px) { .partner-portrait { width:76px; }.partner-platform-logo { width:59px; height:59px; }.partner-platform-logo .brand-symbol { width:45px; height:45px; }.partner-portrait>svg { width:72px; }.partner-station-1 .partner-portrait>svg { width:76px; }.partner-station>strong { font-size:13px; }.partner-station>span { font-size:8px; }.partner-guides>article { padding:23px 20px; } }
@media(prefers-reduced-motion:reduce) { [data-partner-scene] .partner-flow-trace { animation:none; } }
.support-section { background:#11171e; color:#edf1f4; }
.support-layout { display:grid; grid-template-columns:minmax(0,1.14fr) minmax(340px,1fr); gap:clamp(42px,7vw,128px); align-items:center; }
.support-layout h2 { font-size:clamp(39px,4.3vw,69px); }
.support-layout h2>span { color:#a4b8c9; }
.support-layout .body-copy { color:#8d9ead; margin-top:28px; }
.support-topics { display:flex; flex-wrap:wrap; gap:12px 25px; color:#849daf; font-size:12px; margin-top:35px; }
.support-entry { position:relative; min-width:0; padding:clamp(28px,2.6vw,44px); border:1px solid #ffffff60; border-radius:24px; background:#f3f2ec; color:#20282e; box-shadow:0 24px 70px #00000024; }
.support-contact-identity { display:flex; align-items:center; gap:13px; padding-bottom:24px; border-bottom:1px solid #2634421a; }
.support-contact-avatar { width:48px; height:48px; flex-shrink:0; display:grid; place-items:center; border-radius:50%; overflow:hidden; }
.support-contact-avatar img { display:block; width:100%; height:100%; object-fit:contain; }
.support-contact-identity>div { display:grid; gap:3px; }
.support-contact-identity strong { font-family:Manrope,sans-serif; font-size:13px; font-weight:700; letter-spacing:-.04em; white-space:nowrap; }
.support-contact-identity>div>span { font-size:11px; color:#646d73; }
.support-channel-label { margin-left:auto; align-self:start; padding-top:4px; font-size:11px; color:#68716e; white-space:nowrap; }
.support-entry h3 { font-size:clamp(30px,2.75vw,43px); line-height:1.27; font-weight:600; letter-spacing:-.05em; margin-top:30px; }
.support-entry-description { font-size:14px; line-height:1.85; letter-spacing:-.025em; word-break:keep-all; color:#5f696e; margin-top:17px; }
.kakao-link { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:64px; margin-top:30px; padding:17px 18px; border:1px solid #edd500; border-radius:12px; background:#fee500; color:#231b13; font-size:17px; font-weight:650; letter-spacing:-.035em; text-decoration:none; transition:background .2s,box-shadow .2s,transform .2s; }
.kakao-bubble { display:block; flex-shrink:0; width:25px; height:25px; fill:currentColor; }
.kakao-link:focus-visible { outline:3px solid #26384a; outline-offset:4px; }
.kakao-link:active { transform:translateY(0); background:#f0d800; }
@media(hover:hover) and (pointer:fine) { .kakao-link:hover { background:#ffe925; box-shadow:0 8px 22px #b29d0026; transform:translateY(-2px); } }
.support-entry-note { display:block; font-size:11px; color:#626b69; line-height:1.7; text-align:center; word-break:keep-all; margin-top:14px; }
.support-bottom { border-top:1px solid #3a4c5a; display:flex; justify-content:space-between; align-items:center; margin-top:85px; padding-top:25px; gap:30px; font-size:12px; color:#8b9dac; }
.support-bottom>.text-link { font-size:12px; border:0; }

@media(min-width:761px) and (max-width:1050px) {
 .site-header nav { gap:22px; font-size:13px; }
 .official-logo { width:35px; height:35px; }.wordmark { font-size:17px; }
 .home-hero h1 { font-size:74px; }.home-hero-copy { padding-top:270px; }.eyeline { font-size:12px; }
 .hero-explanation { max-width:390px; }.engine-caption { bottom:16%; }
 .company-intro-grid,.technology-intro-grid { grid-template-columns:1fr 1fr; gap:25px; }
 .page-intro h1 { font-size:46px; }.strata-year { font-size:42px; }
 .time-strata { height:370px; }.strata-planes { height:65%; top:17%; }
 .service-intro-heading { display:block; }.service-intro-heading .intro-description { margin-top:20px; }
 .support-layout { gap:7%; }.support-layout h2 { font-size:42px; }.support-channel-label { display:none; }.support-copy-break { display:none; }
 .user-flow li:not(:last-child):after { right:8px; }
 .footer nav { gap:16px; font-size:12px; }
}
@media(min-width:761px) and (max-height:800px) {
 .home-hero-copy { padding-top:185px; }
 .home-hero h1 { font-size:clamp(64px,6.5vw,90px); }
 .hero-coordinate { top:123px; }
 .journey-stage { padding-top:90px; padding-bottom:24px; }
 .journey-stage .eyebrow,.tech-stage .eyebrow { margin-bottom:24px; }
 .journey-body { min-height:270px; height:35svh; margin-top:23px; }
 .journey-year { font-size:76px; }
 .year-navigation { margin-top:18px; }
 .tech-stage>.section-pad { padding-top:90px; padding-bottom:25px; }
 .tech-heading h2 { font-size:42px; }
 .tech-main { min-height:245px; height:31svh; margin-top:24px; }
 .pipeline { margin-top:24px; }
}
@media(max-width:760px) {
 .brand { gap:10px; }.brand-symbol { width:35px; height:35px; }.brand-name { font-size:19px; }.brand-ai { font-size:.64em; }
 .section-pad { padding-top:68px; padding-bottom:68px; }
 .eyebrow { margin-bottom:38px; font-size:11px; gap:22px; }
 .site-header { height:78px; }.header-contact { display:none; }.menu-toggle { margin-left:auto; width:36px; }
 .site-header nav.is-open { top:66px; bottom:auto; min-height:calc(100svh - 66px); justify-content:center; padding:35px var(--gutter) 70px; background:#edf0ef; box-shadow:none; }
 .site-header nav.is-open a { border-bottom:1px solid #c5cdd1; padding:20px 0; font-size:35px; display:flex; gap:25px; align-items:baseline; }
 .site-header nav.is-open a small { display:inline!important; color:#8f9faa; font-size:11px; }
 .site-header nav a[aria-current=page]:after { display:none; }
 .site-header nav a[aria-current=page] { color:#467b9d; }
 .site-header nav.is-open .mobile-support { display:flex!important; font-size:17px; margin-top:30px; justify-content:space-between; }
 .mobile-support>span { color:#8295a1; font-size:11px; }.site-header.is-dark:has(.is-open) { color:#1a2630; }
 .text-link { font-size:13px; gap:30px; padding:12px 0; }.text-link svg { width:21px; }
 .page-intro { padding-top:120px; }.page-intro h1 { font-size:clamp(34px,9vw,62px); line-height:1.35; }
 .intro-description { font-size:14px; margin-top:22px; }.underlink { font-size:13px; margin-top:25px; }
 .next-page { display:block; margin-top:50px; padding-top:25px; }.next-page .micro-label { font-size:11px; }.next-page .text-link { display:flex; justify-content:space-between; font-size:24px; gap:20px; margin-top:10px; width:100%; }
 .next-page .text-link svg { width:26px; height:26px; }
 .footer { display:grid; grid-template-columns:1fr auto; padding:30px var(--gutter) 22px; gap:25px 12px; }
 .footer>.brand { grid-column:1/-1; }.footer nav { grid-column:1/-1; margin:0; display:flex; flex-wrap:wrap; font-size:12px; gap:13px 22px; }.footer>p { font-size:9px; }.footer .motion-toggle { font-size:9px; }
 body[data-page=home] { --hero-stage-height:max(760px,100svh); }
 .home-hero { height:calc(var(--hero-stage-height) + 65svh); }
 .hero-coordinate { top:112px; font-size:9px; }.hero-coordinate>span:last-child { font-size:10px; letter-spacing:0; }
 .home-hero-copy { padding:186px var(--gutter) 0; }.eyeline { font-size:11px; margin-bottom:20px; }
 .home-hero h1 { font-size:clamp(47px,12.3vw,80px); line-height:1.24; letter-spacing:-.075em; }
 .hero-explanation { font-size:14px; line-height:1.85; max-width:300px; margin-top:23px; }
 .home-hero .text-link { margin-top:17px; font-size:13px; }.home-hero .hero-bottom { bottom:24px; font-size:10px; }
 .hero-kakao-link { min-height:52px; margin-top:21px; padding:13px 18px; gap:10px; font-size:14px; }.hero-kakao-link>svg:last-child { margin-left:5px; }
 .home-hero .brand-field { opacity:.95; }.engine-caption { display:none; }
 .home-company-layout { grid-template-columns:1fr; gap:42px; }.home-company h2 { font-size:clamp(48px,12.6vw,84px); }
 .home-company-copy { display:grid; grid-template-columns:85px 1fr; gap:20px; max-width:none; align-items:start; }
 .established { font-size:35px; margin-top:4px; }.established>span { display:block; margin:13px 0 0; font-size:11px; letter-spacing:0; }
 .home-company-copy .body-copy { font-size:14px; }.home-company-copy .text-link { grid-column:2; margin-top:0; }
 .discipline-line { margin-top:55px; gap:10px; font-size:10px; }.discipline-line i { min-width:5px; }
 body[data-page=home] .vision { height:255svh; }
 body[data-page=home] .vision-stage { position:sticky; top:0; height:100svh; min-height:600px; overflow:clip; padding-top:100px; }
 body[data-page=home] .vision-statements { top:35%; left:var(--gutter); right:var(--gutter); }
 body[data-page=home] .vision-point { top:28%; }
 body[data-page=home] .vision-bottom { bottom:35px; gap:24px; }
 .preview-heading { display:block; }.preview-heading h2 { font-size:clamp(32px,8.3vw,58px); }.preview-heading>.text-link { margin-top:23px; margin-bottom:0; }
 .signal-preview { height:280px; margin:25px -10px 20px; }.signal-axis { inset:15px 10px auto; font-size:8px; }.signal-preview-caption { font-size:clamp(22px,5.8vw,30px); padding:20px 10px; }
 .preview-controls { gap:12px; }.preview-controls button { gap:9px; display:block; padding-top:10px; }.preview-controls strong { display:block; font-size:16px; margin-top:8px; }.preview-controls i { display:none; }.preview-controls button>span { font-size:10px; }
 .service-preview-layout { display:block; }.service-preview-layout h2 { font-size:clamp(38px,10vw,66px); }.service-preview-layout .body-copy { font-size:14px; margin-top:22px; }.service-preview-layout .text-link { margin-top:18px; }
 .service-weave { margin-top:45px; padding-left:25px; }.service-weave>div:not(.weave-spine) { padding:18px 0; }.service-weave>div:not(.weave-spine):before { width:25px; }.service-weave strong { font-size:20px; }.service-weave p { font-size:11px; }
 .brand-resolution { min-height:830px; text-align:center; align-items:center; justify-content:flex-start; }.resolution-content { max-width:none; width:100%; }.brand-resolution h2 { font-size:clamp(45px,12vw,80px); }.brand-resolution .micro-label { font-size:11px; margin-bottom:28px; }.resolution-signature { justify-content:center; font-size:14px; margin-top:365px; }
 .company-intro-grid { grid-template-columns:1fr; gap:34px; }.company-intro .intro-description { font-size:14px; }
 .time-strata { height:340px; margin:5px -5px 0; }.strata-year { font-size:40px; left:5px; }.strata-planes { width:66%; height:62%; left:12%; top:21%; }.strata-planes>div { padding:13px; gap:13px; }.strata-planes strong { font-size:13px; }.strata-caption { left:5px; font-size:10px; }
 .company-intro-foot { grid-template-columns:1fr; gap:18px; margin-top:30px; }.company-intro-foot p { font-size:13px; }.company-intro-foot .micro-label { font-size:11px; }
 .journey { height:auto; }.journey-stage { padding-bottom:35px; }.journey-chapter { min-height:0; padding-top:32px; padding-bottom:26px; }.journey-chapter .mobile-diagram { height:155px; margin-top:10px; }.journey-year { font-size:70px; margin-bottom:15px; }.journey-chapter h3 { font-size:21px; }.journey-chapter .body-copy { font-size:14px; }.journey-body { margin-top:30px; }
 .vision-editorial { display:flex; flex-direction:column; gap:40px; align-items:start; }.vision-prelude { font-size:12px; gap:11px; padding:0; }.vision-editorial h2 { font-size:clamp(47px,12vw,80px); }.vision-editorial>.body-copy { font-size:14px; }
 .corporate h2 { font-size:35px; }.company-facts>div { grid-template-columns:84px 1fr; gap:15px; }.company-facts dd { font-size:13px; }.company-facts dt { font-size:11px; }.corporate-logo { width:100px; height:100px; }
 .technology-intro-grid { display:block; }.technology-intro h1 { font-size:clamp(32px,8.4vw,58px); }.raw-data-field { height:250px; margin-top:35px; }.field-index { font-size:9px; }
 .origin-note { grid-template-columns:1fr; gap:18px; margin-top:30px; }.origin-note p { font-size:14px; }.origin-note>.micro-label { font-size:11px; }
 .research-title .body-copy { max-width:none; font-size:14px; }.research-nodes { gap:0 10px; }.research-node { font-size:12px; gap:6px; padding:13px 2px; min-height:63px; }.research-detail p { min-height:62px; }.research-note>p:first-child { font-size:18px; }
 .technology { height:auto; }.tech-copy { min-height:350px; padding-left:21px; }.tech-copy h3 { font-size:26px; }.tech-copy .body-copy { font-size:14px; }.tech-copy .mobile-diagram { height:170px; }.tech-heading h2 { font-size:clamp(33px,8.5vw,56px); }
 .technology-philosophy h2 { font-size:clamp(31px,8vw,54px); }.philosophy-bottom { grid-template-columns:1fr; gap:30px; margin-top:32px; }.philosophy-bottom .body-copy { font-size:14px; }
 .service-intro-heading { display:block; }.service-intro-heading .intro-description { margin:22px 0 0; font-size:14px; }
 .experience-layers { height:430px; margin:25px -12px 35px; }.experience-surface { width:250px; padding:20px 22px; transform:translate(calc(-50% + (1 - var(--experience-progress))*40px),-50%) rotateY(calc((1 - var(--experience-progress))*-18deg)); }
 .experience-surface>p { font-size:28px; margin:16px 0 18px; }.surface-row { font-size:10px; gap:10px; padding:11px 0; }.surface-heading { font-size:9px; }
 .system-plane { width:230px; height:240px; padding:15px; }.system-plane>span { font-size:9px; }.plane-back { --offset:-54px; --raise:3px; }.plane-middle { --offset:-16px; --raise:30px; }
 .experience-view-controls { gap:25px; bottom:24px; }.experience-view-controls button { font-size:12px; }.experience-view-label { font-size:10px; bottom:-8px; }
 .user-flow { grid-template-columns:repeat(3,1fr); gap:26px 10px; }.user-flow li { font-size:12px; }.user-flow li:after { display:none; }.user-flow li>span { font-size:9px; margin-bottom:6px; }
 .support-layout { display:block; }.support-layout h2 { font-size:clamp(32px,8.3vw,58px); }.support-layout .body-copy { font-size:14px; }.support-topics { font-size:11px; gap:10px 19px; margin-top:25px; }
 .support-entry { margin-top:40px; padding:26px 23px 23px; border-radius:20px; }.support-contact-identity { padding-bottom:21px; }.support-contact-avatar { width:43px; height:43px; }
 .support-channel-label,.support-copy-break { display:none; }.support-entry h3 { font-size:32px; margin-top:25px; }.support-entry-description { font-size:13px; margin-top:15px; }.kakao-link { min-height:58px; font-size:15px; margin-top:25px; padding:15px 12px; gap:9px; }.kakao-bubble { width:22px; height:22px; }.support-entry-note { font-size:11px; margin-top:12px; }
 .support-bottom { display:block; margin-top:45px; padding-top:25px; font-size:11px; }.support-bottom .text-link { margin-top:12px; }
}
@media(prefers-reduced-motion:reduce) {
 .brand-symbol>img,.brand-flow { animation:none; }.brand-orbit { display:none; }
 .brand .brand-symbol { transform:none; filter:none; transition:none; }
 html { scroll-behavior:auto; }
 ::view-transition-old(root),::view-transition-new(root) { animation:none; }
 .scroll-track { height:auto; }.track-stage { height:auto; min-height:0; position:relative; overflow:visible; }
 .tech-main,.journey-body { height:auto; display:block; }.tech-narrative,.journey-chapters { display:grid; grid-template-columns:1fr 1fr; gap:35px; }
 .tech-copy,.journey-chapter { position:relative; opacity:1; visibility:visible; transform:none; min-height:0; border-top:1px solid #8a9fb444; padding:24px 0; }
 .tech-visual,.journey-visual,.pipeline,.year-navigation { display:none; }.mobile-diagram { display:block; height:180px; width:100%; }
 .home-hero { height:auto; }.home-hero-stage { position:relative; mask-image:none; -webkit-mask-image:none; }.home-company { margin-top:0; }
 body[data-page=home] .vision { height:auto; }
 body[data-page=home] .vision-stage { position:relative; height:auto; min-height:0; padding-top:80px; padding-bottom:80px; }
 body[data-page=home] .vision-statements { position:relative; inset:auto; height:auto; display:grid; gap:65px; margin:65px 0; }
 body[data-page=home] .vision-statement { position:relative; inset:auto; opacity:1; visibility:visible; filter:none; transform:none; }
 body[data-page=home] .vision-bottom { position:relative; inset:auto; margin-top:40px; }
}
@media(prefers-reduced-motion:reduce) and (max-width:760px) { .tech-narrative,.journey-chapters { display:block; } }

/* The company journey assembles the actual brand ribbon, year by year. */
.journey-art { --surface:.7; --finish:.32; --filaments:.4; --relief:0; margin:0; height:100%; display:flex; flex-direction:column; color:#39495c; }
.journey-art-heading { display:flex; justify-content:space-between; gap:16px; align-items:center; font-size:11px; letter-spacing:.01em; color:#647184; }
.journey-art-heading>span:last-child { font-family:Manrope,sans-serif; font-size:10px; letter-spacing:.09em; color:#7d899b; }
.journey-sculpture { position:relative; flex:1; min-height:0; container-type:size; }
.journey-sculpture-inner { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:min(100cqw,129.8245614cqh); aspect-ratio:740/570; }
.journey-sculpture-inner>svg { position:absolute; width:100%; height:100%; inset:0; overflow:visible; }
.journey-art figcaption { display:flex; align-items:baseline; justify-content:space-between; gap:24px; padding-top:16px; border-top:1px solid #ccd5dd; font-size:12px; line-height:1.8; color:#506276; }
.journey-art-range { flex-shrink:0; font-size:10px; font-family:Manrope,sans-serif; color:#8b96a4; }
.journey-registration { stroke:#a1afc0; stroke-width:.7; opacity:.65; }
.journey-construction { stroke-dasharray:2 7; opacity:.6; }
.journey-callout-lines { stroke:#8193ae; stroke-width:.8; opacity:.5; }
.journey-strand { transition:transform 1.2s cubic-bezier(.22,1,.36,1),opacity .8s; }
.journey-ribbons { filter:saturate(var(--ribbon-saturation,1)); transition:filter 1s; }
.motion-paused .journey-ribbons { transition:none; }
.journey-ribbon-shadow { fill:#5062a8; opacity:.07; transform:translate(1px,6px); }
.journey-ribbon-depth-shadow { fill:#626975; opacity:calc(var(--relief)*.08); transform:translate(1px,3px); transition:opacity 1s; }
.journey-ribbon-relief,.journey-surface-lines { opacity:var(--relief); transition:opacity 1s; }
.journey-surface-lines { stroke-width:.65; }
.journey-ribbon-body { opacity:var(--surface); transition:opacity 1s; }
.journey-ribbon-finish { opacity:var(--finish); transition:opacity 1s; }
.journey-ribbon-facets { opacity:var(--surface); transition:opacity 1s; }
.journey-filaments { stroke-width:.85; opacity:var(--filaments); transition:opacity 1s; }
.journey-ribbon-edge { stroke:#fff; stroke-width:1.1; opacity:.8; }
.journey-thread { stroke-width:2.7; stroke-linecap:round; stroke-dasharray:10 90; animation:journey-flow 7s linear infinite; }
.journey-strand-1 .journey-thread { animation-delay:-2.3s; }.journey-strand-2 .journey-thread { animation-delay:-4.6s; }
.journey-circuit { stroke:#e2f8ff; stroke-width:2; stroke-dasharray:1 99; stroke-linecap:round; opacity:.85; animation:journey-flow 11s linear infinite; }
.journey-art-core { position:absolute; z-index:2; left:50%; top:52%; width:40%; transform:translate(-50%,-50%); text-align:center; pointer-events:none; }
.journey-art-core>span { display:block; font-family:Manrope,sans-serif; font-size:9px; letter-spacing:.15em; white-space:nowrap; color:#7c87a0; }
.journey-art-core>strong { position:relative; isolation:isolate; display:block; width:fit-content; max-width:100%; font-size:clamp(17px,1.65vw,27px); line-height:1.3; font-weight:700; letter-spacing:-.035em; margin:7px auto 13px; color:#1f3551; text-wrap:balance; word-break:keep-all; text-shadow:0 1px 0 #f7f7f5b3,1px 0 0 #f7f7f580,-1px 0 0 #f7f7f580; }
.journey-art-core>i { display:block; width:36px; height:2px; margin:auto; background:linear-gradient(90deg,#0c9fca,#4469ec,#a44bd2); }
.journey-art-label { position:absolute; display:flex; align-items:center; gap:7px; color:#475973; font-size:11px; white-space:nowrap; }
.journey-art-label[hidden] { display:none; }
.journey-art-label b { font-family:Manrope,sans-serif; color:#7893b0; font-size:8px; font-weight:400; }
.journey-art-label-0 { left:1%; top:31%; }.journey-art-label-1 { right:1%; top:31%; }
.journey-art-label-2 { left:50%; bottom:5%; transform:translateX(-50%); }
.journey-art-label-3 { right:1%; top:79%; }.journey-art-label-4 { left:1%; top:79%; }
.journey-guide-3,.journey-guide-4 { opacity:0; }
.journey-art[data-stage="4"] .journey-guide-3,.journey-art[data-stage="7"] .journey-guide-3,.journey-art[data-stage="7"] .journey-guide-4 { opacity:1; }
.journey-verification { opacity:0; transition:opacity .7s; }.journey-scan { animation:journey-scan 4.5s cubic-bezier(.4,0,.2,1) infinite; }
.journey-checkpoints { fill:#f7f7f5; stroke:#218ac6; stroke-width:2; }
.journey-expansion { stroke:#677fda; stroke-width:1.4; stroke-dasharray:3 5; opacity:0; transition:opacity .7s; }
.journey-expansion circle { fill:#647bdd; stroke:none; }
.journey-platform-branches { opacity:0; }.journey-art[data-stage="7"] .journey-platform-branches { opacity:1; }
.journey-art[data-stage="0"] { --surface:.17; --finish:.1; --filaments:.8; }
.journey-art[data-stage="0"] .journey-strand-0 { transform:translate(-24px,10px); }
.journey-art[data-stage="0"] .journey-strand-1 { transform:translate(30px,-12px); opacity:.22; }
.journey-art[data-stage="0"] .journey-strand-2 { transform:translate(0,28px); opacity:.22; }
.journey-art[data-stage="0"] .journey-callout-lines { opacity:.25; }
.journey-art[data-stage="1"] { --surface:.25; --finish:.15; --filaments:.8; }
.journey-art[data-stage="1"] .journey-strand-0 { transform:translate(-18px,5px); }
.journey-art[data-stage="1"] .journey-strand-1 { transform:translate(22px,-8px); opacity:.65; }
.journey-art[data-stage="1"] .journey-strand-2 { transform:translate(0,23px); }
.journey-art[data-stage="2"] { --surface:.38; --finish:.2; --filaments:.7; }
.journey-art[data-stage="2"] .journey-strand-0 { transform:translate(-9px,0); }
.journey-art[data-stage="2"] .journey-strand-1 { transform:translate(9px,-4px); }
.journey-art[data-stage="2"] .journey-strand-2 { transform:translate(0,12px); }
.journey-art[data-stage="3"] { --surface:.52; --finish:.25; --filaments:.65; }
.journey-art[data-stage="4"] { --surface:.66; --finish:.3; --filaments:.4; }
.journey-art[data-stage="4"] .journey-verification { opacity:1; }
.journey-art[data-stage="5"] { --surface:.64; --finish:.4; --filaments:.3; --relief:.8; --ribbon-saturation:.92; }
.journey-art[data-stage="6"] { --surface:.64; --finish:.4; --filaments:.3; --relief:.92; --ribbon-saturation:.92; }
.journey-art[data-stage="7"] { --surface:.66; --finish:.4; --filaments:.3; --relief:1; --ribbon-saturation:.92; }
.journey-art[data-stage="6"] .journey-expansion,.journey-art[data-stage="7"] .journey-expansion { opacity:.8; }
.journey-art[data-stage="0"] .journey-circuit,.journey-art[data-stage="1"] .journey-circuit,.journey-art[data-stage="2"] .journey-circuit { opacity:0; }
.journey-art-mobile { display:none; }
@keyframes journey-flow { to { stroke-dashoffset:-100; } }
@keyframes journey-scan { 0% { transform:translateY(-80px); opacity:0; } 15% { opacity:1; } 85% { opacity:1; } 100% { transform:translateY(450px); opacity:0; } }
.journey-art:not([data-visible="true"]) *,.journey-art[data-page-visible="false"] *,.motion-paused .journey-art * { animation-play-state:paused; }
.motion-paused .journey-strand,.motion-paused .journey-ribbon-body,.motion-paused .journey-ribbon-finish,.motion-paused .journey-filaments,.motion-paused .journey-ribbon-relief,.motion-paused .journey-ribbon-depth-shadow,.motion-paused .journey-surface-lines { transition:none; }
@media(min-width:761px) and (prefers-reduced-motion:no-preference) {
 .journey-stage { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.18fr); grid-template-rows:auto auto minmax(0,1fr) auto; column-gap:6%; padding-bottom:40px; }
 .journey-stage>.eyebrow { grid-column:1/-1; grid-row:1; }
 .journey-stage>h2 { grid-column:1; grid-row:2; font-size:clamp(34px,3.5vw,61px); align-self:start; }
 .journey-body { display:contents; }
 .journey-chapters { grid-column:1; grid-row:3; margin-top:26px; min-height:250px; }
 .journey-year { font-size:clamp(78px,7vw,118px); }
 .journey-visual { grid-column:2; grid-row:2/4; overflow:visible; }
 .year-navigation { grid-column:1/-1; grid-row:4; margin-top:32px; }
}
@media(min-width:761px) and (max-height:800px) and (prefers-reduced-motion:no-preference) {
 .journey-stage { padding-bottom:26px; }
 .journey-stage>h2 { font-size:clamp(32px,3.35vw,47px); }
 .journey-chapters { margin-top:19px; min-height:224px; }
 .journey-year { font-size:76px; margin-bottom:15px; }
 .journey-chapter h3 { font-size:20px; margin:10px 0; }
 .journey-chapter .body-copy { font-size:14px; }
 .year-navigation { margin-top:20px; }
 .journey-art figcaption { font-size:11px; gap:12px; padding-top:10px; }
}
@media(min-width:761px) and (max-width:1000px) {
 .journey-art-heading { font-size:9px; }.journey-art-range { display:none; }
 .journey-art-label { font-size:10px; gap:4px; }.journey-art-label b { display:none; }
}
@media(min-width:761px) and (min-height:900px) and (prefers-reduced-motion:no-preference) {
 .journey-stage { grid-template-rows:auto auto clamp(280px,28svh,390px) auto; align-content:center; }
}
@media(min-width:1700px) and (min-height:900px) and (prefers-reduced-motion:no-preference) {
 .journey-stage { grid-template-rows:auto auto clamp(360px,38svh,580px) auto; padding-left:max(var(--gutter),calc((100vw - 1880px)/2)); padding-right:max(var(--gutter),calc((100vw - 1880px)/2)); }
 .journey-stage>h2 { font-size:clamp(61px,3.5vw,74px); }
 .journey-year { font-size:clamp(118px,6vw,142px); }
 .journey-chapter h3 { font-size:26px; }.journey-chapter .body-copy { font-size:16px; max-width:450px; }
 .journey-art-heading,.journey-art figcaption { font-size:13px; }.journey-art-label { font-size:13px; }
}
@media(max-width:760px), (prefers-reduced-motion:reduce) {
 .journey-art-mobile { display:flex; height:auto; margin-top:25px; }
 .journey-art-mobile .journey-sculpture { flex:none; aspect-ratio:740/570; width:100%; }
 .journey-art-mobile .journey-art-heading,.journey-art-mobile .journey-art-range { display:none; }
 .journey-art-mobile .journey-art-core>strong { font-size:18px; margin:5px auto 9px; }
 .journey-art-mobile .journey-art-core>span { font-size:7px; }
 .journey-art-mobile .journey-art-label { font-size:10px; gap:4px; }
 .journey-art-mobile .journey-art-label b { display:none; }
 .journey-art-mobile figcaption { font-size:11px; padding-top:11px; }
 .journey-art-mobile * { animation:none; transition:none; }
 .journey-art-mobile .journey-scan { transform:translateY(180px); opacity:.6; }
}
@media(prefers-reduced-motion:reduce) { .journey-art * { animation:none; transition:none; } }

@media(min-width:761px) and (max-height:800px) {
 .origin-stage { padding-top:100px; padding-bottom:22px; }
 .origin-stage>.eyebrow { margin-bottom:22px; }
 .origin-copy h1 { font-size:clamp(38px,4.25vw,61px); }
 .origin-copy .intro-description { font-size:14px; margin-top:22px; }
 .origin-copy .underlink { margin-top:26px; font-size:13px; }
 .origin-diagram { max-height:250px; }
 .origin-data-legend { margin-bottom:10px; }
 .origin-visual figcaption { min-height:39px; font-size:12px; padding-top:11px; }
 .origin-scroll-hint { display:none; }
 .origin-note { margin-top:23px; padding-top:18px; }.origin-note p { font-size:12px; line-height:1.8; }
}
@media(min-width:761px) and (max-width:1050px) {
 .technology-intro-grid { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:28px; }
 .origin-copy h1 { font-size:37px; }.origin-copy .intro-description { font-size:14px; }
 .origin-visual-heading>strong { font-size:18px; }.origin-visual-heading>span { display:none; }
 .origin-note { grid-template-columns:1fr 3.2fr; gap:30px; }
}
@media(min-width:1700px) and (min-height:900px) {
 .origin-stage { padding-left:max(var(--gutter),calc((100vw - 1840px)/2)); padding-right:max(var(--gutter),calc((100vw - 1840px)/2)); }
 .origin-diagram { max-height:540px; }.origin-visual-heading>strong { font-size:26px; }.origin-visual figcaption { font-size:15px; }
 .origin-note { margin-top:45px; }.origin-note p { font-size:15px; }
}
@media(max-width:760px) {
 .technology-intro { height:auto; }
 .origin-stage { position:relative; height:auto; min-height:0; display:block; padding-top:122px; padding-bottom:55px; }
 .origin-stage>.eyebrow { margin-bottom:34px; }
 .technology-intro-grid { display:block; }
 .origin-copy h1 { font-size:clamp(32px,8.4vw,58px); }
 .origin-copy .intro-description { font-size:14px; margin-top:22px; }
 .origin-copy .underlink { font-size:13px; margin-top:23px; }
 .origin-visual-track { height:calc(100svh + 360px); margin-top:44px; }
 .origin-visual { position:sticky; top:88px; padding-top:12px; padding-bottom:14px; background:#f0f1f0; }
 .origin-visual-heading>strong { font-size:18px; }.origin-visual-heading>span { font-size:9px; }
 .origin-diagram { height:auto; aspect-ratio:720/460; max-height:calc(100svh - 340px); }
 .origin-diagram text { font-size:23px; }.origin-analysis-core>text,.origin-diagram .origin-output-label { font-size:24px; }
 .origin-data-legend { font-size:10px; gap:19px; margin-bottom:14px; }
 .origin-controls>button { gap:6px; min-height:44px; }.origin-controls>button>span { font-size:9px; }.origin-controls>button>strong { font-size:13px; }
 .origin-visual figcaption { min-height:61px; padding-top:15px; font-size:12px; }
 .origin-scroll-hint { font-size:10px; margin-top:5px; }
 .origin-note { margin-top:35px; grid-template-columns:1fr; gap:15px; padding-top:24px; }.origin-note p { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
 .technology-intro { height:auto; }.origin-stage { position:relative; height:auto; min-height:0; padding-top:140px; padding-bottom:65px; }
 .origin-visual-track { height:auto; }.origin-visual { position:relative; top:auto; }
 .origin-route-beam { animation:none; }.origin-scroll-hint { display:none; }
}
@media(max-height:600px) {
 .technology-intro { height:auto; }.origin-stage { position:relative; height:auto; min-height:0; padding-top:122px; padding-bottom:55px; }
 .origin-visual-track { height:auto; }.origin-visual { position:relative; top:auto; }
 .origin-diagram { height:260px; max-height:none; }.origin-scroll-hint { display:none; }
}

/* TECHNOLOGY: the research layers and their verification scope. */
.research-lab-section { background:#eaf0f3; }
.lab-heading { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:55px; align-items:end; }
.lab-heading h2 { font-size:clamp(38px,4.4vw,72px); line-height:1.2; }
.lab-heading h2>span { color:#7f94a8; }
.lab-heading .body-copy { max-width:500px; margin:0 0 5px; font-size:14px; line-height:1.9; }
.lab-workbench { position:relative; margin-top:46px; background:#121d2b; border:1px solid #7990a7; border-radius:12px; overflow:hidden; color:#dce8f3; box-shadow:0 26px 64px -40px #1535556b; }
.lab-phase-controls { position:relative; display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid #93b9d036; background:#101b28; }
.lab-phase-controls>button { --phase-accent:#80d9f0; display:flex; align-items:center; gap:22px; position:relative; padding:23px 34px; min-height:102px; color:#8299ae; text-align:left; transition:background .3s,color .3s; }
.lab-phase-controls>button:last-child { --phase-accent:#86ded2; border-left:1px solid #92b1c630; }
.lab-phase-year { font-family:Manrope,sans-serif; font-size:39px; font-weight:300; letter-spacing:-.07em; line-height:1.1; }
.lab-phase-controls>button>span:nth-child(2) { display:grid; gap:5px; }
.lab-phase-controls strong { font-size:19px; font-weight:500; letter-spacing:-.035em; }
.lab-phase-controls small { font-size:11px; color:#8aa2b7; }
.lab-phase-controls>button>i { width:7px; height:7px; flex:none; margin-left:auto; border:1px solid #8ab0c35c; border-radius:50%; }
.lab-phase-controls>button:after { content:''; position:absolute; inset:auto 0 0; height:2px; background:var(--phase-accent); transform:scaleX(0); transition:transform .35s; }
.lab-phase-controls>button[aria-selected=true] { color:#e0f1fa; background:radial-gradient(ellipse at 0 0,#75acd723,transparent 80%),#1c30403b; }
.lab-phase-controls>button[aria-selected=true] .lab-phase-year { color:var(--phase-accent); }
.lab-phase-controls>button[aria-selected=true]>i { background:var(--phase-accent); border-color:var(--phase-accent); box-shadow:0 0 12px #86ded250; }
.lab-phase-controls>button[aria-selected=true]:after { transform:scaleX(1); }
.lab-phase-controls>button:hover { color:#e0f1fa; background-color:#7297b313; }
.lab-phase-controls>button:focus-visible { outline:2px solid var(--phase-accent); outline-offset:-5px; }
.lab-phase-bridge { position:absolute; left:50%; top:50%; translate:-50% -50%; z-index:1; display:grid; place-items:center; width:28px; height:28px; border:1px solid #7998ad4d; border-radius:50%; background:#182936; color:#9eb8cd; font-size:15px; pointer-events:none; }
.lab-workspace { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(310px,1fr); grid-template-areas:'controls controls' 'engine inspector'; }
.lab-toolbar { grid-area:controls; display:grid; }
.lab-toolbar>.lab-phase-content { grid-area:1/1; }
.lab-inspectors>.lab-phase-content { grid-area:1/1/-1/-1; }
.lab-phase-content { visibility:hidden; opacity:0; pointer-events:none; transition:opacity .24s; }
[data-lab-phase=research] [data-lab-phase-content=research],[data-lab-phase=validation] [data-lab-phase-content=validation] { visibility:visible; opacity:1; pointer-events:auto; }
.lab-test-sequence { display:flex; align-items:center; gap:20px; padding:18px 34px; border-bottom:1px solid #758fa330; background:#142131; cursor:default; }
.lab-process-label { flex:none; font-size:10px; color:#77959f; letter-spacing:.06em; }
.lab-test-sequence p { margin:0; font-size:14px; line-height:1.7; color:#a6c0c9; word-break:keep-all; }
.lab-test-sequence i { padding-inline:10px; font-size:12px; font-style:normal; color:#648f95; }
@media(min-width:761px) {
 .lab-test-sequence { justify-content:center; gap:24px; }
 .lab-test-sequence:before,.lab-test-sequence:after { content:''; flex:1 1 0; min-width:12px; height:1px; background:linear-gradient(90deg,transparent,#86ded24d); pointer-events:none; }
 .lab-test-sequence:after { transform:rotate(180deg); }
 .lab-test-sequence .lab-process-label { padding-right:20px; border-right:1px solid #86ded233; line-height:20px; }
 .lab-test-sequence p { flex:none; white-space:nowrap; }
}
.lab-inspectors { grid-area:inspector; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(7,auto); align-content:start; min-width:0; padding:26px 28px 24px; border-left:1px solid #8fa4b52b; background:linear-gradient(145deg,#1c2a3982,#101924a6); }
.lab-controls { grid-area:controls; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-bottom:1px solid #758fa330; background:#192735; }
.lab-controls>button { position:relative; display:grid; grid-template-columns:20px minmax(0,1fr); gap:6px 14px; padding:21px 28px; text-align:left; color:#8c9eb1; transition:color .25s,background .25s; }
.lab-controls>button+button { border-left:1px solid #7d96ad20; }
.lab-controls>button:after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--lab-accent); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.lab-controls>button[aria-pressed="true"] { color:#e6f4fc; background:linear-gradient(115deg,#45668140,#1a29383b); }
.lab-controls>button[aria-pressed="true"]:after { transform:scaleX(1); }.lab-controls>button:hover { background-color:#587c9c1c; color:#dbe9f4; }
.lab-controls>button>span { font-family:Manrope,sans-serif; font-size:10px; padding-top:4px; color:#687f96; }.lab-controls>button[aria-pressed="true"]>span { color:var(--lab-accent); }
.lab-controls strong { font-size:17px; font-weight:500; line-height:1.5; letter-spacing:-.035em; white-space:nowrap; }.lab-controls small { grid-column:2; font-size:10px; color:#6e869e; }
.lab-controls>button:focus-visible,.lab-area-group>button:focus-visible { outline:2px solid var(--lab-accent); outline-offset:-4px; }
.lab-engine { grid-area:engine; position:relative; display:flex; flex-direction:column; min-width:0; height:100%; min-height:558px; padding:23px 24px 18px; overflow:hidden; background:radial-gradient(ellipse at 43% 50%,#263e5c88,transparent 68%),#142131; }
.lab-engine:before { content:''; position:absolute; inset:0; background-image:radial-gradient(#a2c3e61f .6px,transparent .8px); background-size:8px 8px; mask-image:linear-gradient(100deg,transparent,#000,transparent); pointer-events:none; }
.lab-engine-meta { display:flex; align-items:center; justify-content:space-between; gap:20px; color:#869db4; font-size:10px; letter-spacing:.025em; position:relative; }.lab-engine-meta>span:last-child { color:#5c7994; font-size:9px; }
.lab-engine-svg { display:block; position:absolute; top:50px; left:24px; width:calc(100% - 48px); height:calc(100% - 93px); min-height:0; overflow:visible; }
.lab-floor { stroke:#70a1ca19; stroke-width:.75; }.lab-vias { stroke:#7daed557; stroke-width:1; stroke-dasharray:3 5; }.lab-vias circle { fill:#6fa1c6; stroke:none; }
.lab-slice { opacity:.44; transition:opacity .55s; }
.lab-slice.is-active { opacity:1; }
.lab-slice-edge { fill:#0e1b2e; stroke:#526c863b; stroke-width:1; }
.lab-slice-face { fill:url(#lab-plate-material); stroke:#6d9ab475; stroke-width:1; }.lab-slice-inset { fill:none; stroke:#78a0c031; stroke-width:.7; }
.lab-circuitry { fill:none; stroke:#83afd84f; stroke-width:1; }.lab-contacts { stroke:#88bfe28c; stroke-width:1.2; }
.lab-chip-shadow { fill:#060c197a; }.lab-chip { fill:url(#lab-chip-material); stroke:#b1d2ee75; stroke-width:1.3; }
.lab-chip-code { fill:#c0d4e8; font-family:Manrope,sans-serif; font-size:29px; font-weight:600; letter-spacing:.02em; }
.lab-chip-trace { fill:none; stroke:var(--slice-color); stroke-width:1.6; opacity:.6; stroke-dasharray:18 82; }
.lab-contact-nodes { fill:#9fc9e6; }.lab-slice-callout { stroke:#6e95b874; stroke-width:.8; }.lab-slice-number { fill:#8cadc8; font-family:Manrope,sans-serif; font-size:10px; }
.lab-slice-name { fill:#a5bcd0; font-size:12px; font-weight:500; letter-spacing:-.025em; }
.lab-slice.is-active .lab-slice-face { stroke:var(--slice-color); stroke-width:1.7; filter:drop-shadow(0 0 3px #5accff35); }
.lab-slice.is-active .lab-slice-edge { stroke:var(--slice-color); stroke-opacity:.7; }
.lab-slice.is-active .lab-circuitry { stroke:var(--slice-color); stroke-opacity:.47; }
.lab-slice.is-active .lab-chip-trace { animation:lab-chip-flow 4.8s linear infinite; opacity:1; }
.lab-slice.is-active .lab-slice-callout { stroke:var(--slice-color); }.lab-slice.is-active .lab-slice-name,.lab-slice.is-active .lab-slice-number { fill:var(--slice-color); }
.lab-reference { stroke:#7c9bb13d; stroke-width:1; }.lab-reference text { stroke:none; fill:#59738c; font-size:10px; font-family:Manrope,'Noto Sans KR',sans-serif; letter-spacing:.045em; }
.lab-engine-caption { position:relative; display:flex; align-items:center; justify-content:center; gap:10px; margin-top:auto; padding-top:6px; min-height:28px; }.lab-engine-caption>span { width:4px; height:4px; border-radius:50%; background:var(--lab-accent); box-shadow:0 0 7px #83dfff65; flex:none; }.lab-engine-caption p { font-size:10px; color:#6f8aa4; word-break:keep-all; }
.lab-inspector { min-width:0; display:grid; grid-template-columns:subgrid; grid-template-rows:subgrid; }
/* Shared tracks keep both years aligned without padding out the shorter panel. */
.lab-inspector-top { grid-area:1/1; display:flex; align-items:center; justify-content:space-between; font-size:10px; color:#6b849c; letter-spacing:.04em; }.lab-inspector-top>span:last-child { font-family:Manrope,sans-serif; color:var(--lab-accent); }
.lab-inspector h3 { grid-area:2/1; margin-top:25px; font-size:29px; line-height:1.3; font-weight:500; letter-spacing:-.04em; color:#d9e8f5; }
.lab-layer-copy { grid-area:3/1; font-size:12px; color:#829aaf; line-height:1.85; margin-top:15px; word-break:keep-all; }
.lab-area-groups { grid-area:4/1; margin-top:22px; }
.lab-area-group { display:grid; height:100%; grid-template-columns:repeat(6,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(56px,1fr)); gap:4px; }.lab-area-group[hidden] { display:none; }
.lab-area-group>button { grid-column:span 3; display:flex; align-items:center; gap:8px; position:relative; min-height:54px; width:100%; padding:8px; border:1px solid #718fa326; border-radius:4px; text-align:left; color:#8ea4b7; transition:color .25s,background .25s; }
.lab-area-group>button>span { font-family:Manrope,sans-serif; font-size:9px; color:#5f7c95; flex:none; }.lab-area-group strong { font-size:12px; line-height:1.5; font-weight:400; letter-spacing:-.02em; word-break:keep-all; }
.lab-area-group>button>i { width:3px; height:3px; border-radius:50%; margin-left:auto; background:#627f98; flex:none; }
.lab-area-group>button[aria-pressed="true"] { border-color:color-mix(in srgb,var(--lab-accent) 50%,transparent); background:linear-gradient(90deg,#71b5dc20,transparent); color:#deeff9; }.lab-area-group>button[aria-pressed="true"]>span,.lab-area-group>button[aria-pressed="true"]>i { color:var(--lab-accent); }.lab-area-group>button[aria-pressed="true"]>i { background:var(--lab-accent); box-shadow:0 0 8px #8cdffa55; }
.lab-area-group>button:hover { color:#d8e8f4; background-color:#77a4bf10; }
.lab-research-detail { grid-area:5/1/8/2; display:grid; grid-template-columns:subgrid; grid-template-rows:subgrid; border-top:1px solid #799aaf3b; margin-top:22px; padding-top:18px; }
/* Invisible alternatives reserve only their natural text height on the shared tracks. */
.lab-detail-item { grid-area:1/1/-1/-1; display:grid; grid-template-columns:subgrid; grid-template-rows:subgrid; visibility:hidden; opacity:0; pointer-events:none; }
[data-lab-phase=research] [data-lab-phase-content=research] .lab-detail-item.is-active,[data-lab-phase=validation] [data-lab-phase-content=validation] .lab-detail-item.is-active { visibility:visible; opacity:1; pointer-events:auto; }
.lab-detail-item>span { grid-area:1/1/2/-1; display:block; font-size:11px; color:var(--lab-accent); margin-bottom:9px; }.lab-detail-item>p { grid-area:2/1/3/-1; }.lab-detail-item>.lab-area-translation { grid-area:3/1/4/-1; }.lab-research-detail p { font-size:12px; line-height:1.85; color:#8aa1b5; word-break:keep-all; letter-spacing:-.025em; }
.lab-research-detail p.lab-area-translation { margin-top:8px; font-family:Manrope,sans-serif; font-size:11px; line-height:1.7; color:#7f98ae; letter-spacing:.005em; word-break:normal; }
@media(min-width:1700px) { .lab-research-detail p.lab-area-translation { font-size:12px; } }
.lab-test-areas>button:nth-child(n+3) { grid-column:span 2; }
.lab-test-loop { opacity:0; transition:opacity .45s; stroke:#86ded2; fill:none; }
.lab-test-loop-base { stroke-opacity:.3; stroke-width:1.4; }
.lab-test-loop-signal { stroke-width:2.5; stroke-dasharray:9 91; filter:drop-shadow(0 0 4px #86ded270); }
.lab-test-loop>circle { fill:#142b35; stroke-width:1; }
.lab-test-loop-arrow { stroke-width:1.5; }
[data-lab-phase=validation] .lab-test-loop { opacity:1; }
[data-lab-phase=validation] .lab-test-loop-signal { animation:lab-test-flow 5s linear infinite; }
[data-lab-phase=validation] .lab-slice { --slice-color:#86ded2!important; }
[data-lab-phase=validation] .lab-engine { background:radial-gradient(ellipse at 43% 50%,#28525645,transparent 68%),#142131; }
@keyframes lab-test-flow { to { stroke-dashoffset:-100; } }
@keyframes lab-chip-flow { to { stroke-dashoffset:-100; } }
[data-research-lab]:not([data-lab-visible="true"]) .lab-chip-trace,[data-research-lab][data-page-visible="false"] .lab-chip-trace { animation-play-state:paused; }
[data-research-lab]:not([data-lab-visible="true"]) .lab-test-loop-signal,[data-research-lab][data-page-visible="false"] .lab-test-loop-signal { animation-play-state:paused; }
html.motion-paused [data-research-lab] *,html.motion-paused [data-research-lab] *:after { animation:none!important; transition:none!important; }
@media(min-width:1700px) {
 .lab-engine { min-height:612px; padding:28px 30px 22px; }.lab-engine-meta { font-size:11px; }.lab-engine-meta>span:last-child { font-size:10px; }
 .lab-controls>button { padding:24px 34px; }.lab-controls strong { font-size:20px; }.lab-inspectors { padding:33px 36px; }.lab-inspector h3 { font-size:34px; }.lab-layer-copy { font-size:14px; }
 .lab-area-groups { margin-top:26px; }.lab-area-group strong { font-size:14px; }.lab-research-detail { margin-top:26px; }.lab-research-detail p { font-size:13px; }
}
@media(min-width:761px) and (max-width:1050px) {
 .lab-heading { gap:30px; }.lab-heading h2 { font-size:38px; }
 .lab-workspace { grid-template-columns:minmax(0,1fr); grid-template-areas:'controls' 'engine' 'inspector'; }.lab-engine { height:440px; min-height:0; }
 .lab-inspectors { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); grid-template-rows:repeat(6,auto); gap:0 40px; border-left:0; border-top:1px solid #8fa4b52b; }
 .lab-inspector-top { grid-column:1; }.lab-inspector h3 { grid-column:1; font-size:27px; margin-top:20px; }.lab-layer-copy { grid-column:1; }
 .lab-area-groups { grid-column:2; grid-row:1/4; margin-top:0; }.lab-research-detail { grid-column:1/-1; grid-row:4/7; }
 .lab-controls>button { padding:20px 17px; gap:5px 10px; }.lab-controls strong { font-size:16px; }
 .lab-test-sequence { gap:12px; }
}
@media(max-width:760px) {
 .lab-heading { grid-template-columns:minmax(0,1fr); gap:22px; }.lab-heading h2 { font-size:clamp(30px,7.9vw,49px); line-height:1.25; }.lab-heading .body-copy { font-size:14px; margin:0; }
 .lab-workbench { margin-top:30px; border-radius:10px; }.lab-workspace { grid-template-columns:minmax(0,1fr); grid-template-areas:'controls' 'engine' 'inspector'; }
 .lab-phase-controls>button { min-height:78px; padding:16px; gap:10px; }.lab-phase-year { font-size:29px; }.lab-phase-controls strong { font-size:14px; }.lab-phase-controls small,.lab-phase-controls>button>i { display:none; }.lab-phase-bridge { width:20px; height:20px; font-size:11px; }
 .lab-test-sequence { flex-direction:column; align-items:flex-start; justify-content:center; gap:4px; padding:9px 14px; min-height:58px; }.lab-process-label { font-size:9px; line-height:14px; }.lab-test-sequence p { font-size:11px; line-height:18px; letter-spacing:-.035em; white-space:nowrap; }.lab-test-sequence i { padding-inline:3px; font-size:10px; }
 .lab-controls>button { display:block; padding:13px 7px 15px; text-align:center; }.lab-controls>button>span { display:block; padding:0; margin-bottom:6px; font-size:9px; }.lab-controls strong { display:block; font-size:13px; }.lab-controls small { display:none; }
 .lab-engine { height:340px; min-height:0; padding:17px 12px 14px; }.lab-engine-meta { font-size:9px; gap:8px; }.lab-engine-meta>span:last-child { font-size:8px; }.lab-engine-svg { margin:5px -9px; width:calc(100% + 18px); }
 .lab-engine-caption { gap:7px; min-height:23px; }.lab-engine-caption p { font-size:9px; line-height:1.7; }.lab-slice-name { font-size:15px; }.lab-slice-number { font-size:13px; }
 .lab-inspectors { border-left:0; border-top:1px solid #8fa4b52b; padding:23px 22px 24px; }.lab-inspector h3 { font-size:29px; margin-top:21px; }.lab-layer-copy { font-size:12px; }
 .lab-area-groups { margin-top:20px; }.lab-area-group strong { font-size:13px; }
 .lab-research-detail { margin-top:20px; }.lab-research-detail p { font-size:12px; }
}
@media(max-width:360px) { .lab-controls>button { padding-inline:3px; }.lab-controls strong { font-size:11px; }.lab-engine { height:300px; }.lab-engine-meta { font-size:8px; }.lab-engine-meta>span:last-child { font-size:7px; }.lab-inspectors { padding-inline:18px; }.lab-phase-controls>button { padding:14px 12px; gap:7px; }.lab-phase-year { font-size:25px; }.lab-phase-controls strong { font-size:12px; }.lab-test-sequence strong { font-size:10px; } }
@media(prefers-reduced-motion:reduce) { [data-research-lab] * { animation:none!important; transition:none!important; } }
