@charset "UTF-8";
/* KYNICLAB V8 */
@font-face{font-family:'OPPOSans';src:url('../fonts/OPPOSans4.0-Latin.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0000-024F}
@font-face{font-family:'OPPOSans';src:url('../fonts/OPPOSans4.0-CJK-subset.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+3000-303F,U+4E00-9FFF,U+FF00-FFEF}
@font-face{font-family:'Funnel Sans';src:url('../fonts/FunnelSans-Variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:'Funnel Display';src:url('../fonts/FunnelDisplay-Variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--bg:#0a0a0a;--bg2:#111;--td:#0a0a0a;--tl:#fff;--tm:rgba(255,255,255,.4);--acc:#fff;--bl:rgba(255,255,255,.06);--bd:rgba(0,0,0,.1);--g1:rgba(255,255,255,.85);--g2:rgba(255,255,255,.55);--g3:rgba(255,255,255,.25);--g4:rgba(255,255,255,.1);--fd:'Funnel Sans','OPPOSans',sans-serif;--fdd:'Funnel Display','Funnel Sans','OPPOSans',sans-serif;--fb:'OPPOSans',sans-serif;--eo:cubic-bezier(.16,1,.3,1);--es:cubic-bezier(.19,1,.22,1);--eb:cubic-bezier(.34,1.56,.64,1)}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}*{cursor:auto}html.custom-cursor *{cursor:none!important}
@media (hover: none) and (pointer: coarse){*{cursor:auto!important}#cursor{display:none!important}}
html{font-size:16px}body{background:var(--bg);color:var(--tl);font-family:var(--fb);overflow-x:hidden;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
.skip-link{position:fixed;left:16px;top:12px;z-index:30000;padding:10px 16px;background:#fff;color:#05080b;font-family:var(--fd);font-weight:650;transform:translateY(-160%);transition:transform .2s var(--eo)}
.skip-link:focus{transform:translateY(0)}
:where(a,button,input,textarea):focus-visible{outline:2px solid #fff;outline-offset:4px}
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:4px}

/* CURSOR */
#cursor{position:fixed;top:0;left:0;width:10px;height:10px;background:#fff;border:0 solid transparent;border-radius:999px;pointer-events:none;z-index:20000;mix-blend-mode:difference;display:none;align-items:center;justify-content:flex-start;overflow:visible;transition:width .42s var(--eb),height .32s var(--eb),border-radius .42s var(--eb),background-color .24s var(--eo),border-color .24s var(--eo),opacity .2s var(--eo),box-shadow .24s var(--eo),padding .38s var(--eb);will-change:transform}
html.custom-cursor #cursor{display:flex}
#cursor.active:not(.click){width:44px;height:44px;background:transparent;border-width:1.5px;border-color:#fff}
#cursor::before{content:'→';position:absolute;top:50%;left:100%;margin-left:-1px;width:38px;height:38px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-variation-settings:'wght' 430;font-weight:430;font-size:1rem;line-height:1;color:#000;opacity:0;transform:translateY(-50%) scale(.78);transition:opacity .16s .05s,transform .38s var(--eb)}
#cursor .cursor-label{display:inline-flex;align-items:center;justify-content:center;width:100%;font-family:var(--fd);font-variation-settings:'wght' 400;font-weight:400;font-size:.78rem;line-height:1;letter-spacing:.04em;text-transform:uppercase;color:#000;white-space:nowrap;opacity:0;transform:translateY(1px) scale(.94);transition:opacity .14s .1s,transform .34s var(--eb)}
#cursor.click{width:104px;height:38px;padding:0 24px;background:#fff;mix-blend-mode:normal;border-width:0;border-radius:999px}
#cursor.click::before{opacity:1;transform:translateY(-50%) scale(1)}
#cursor.click .cursor-label{opacity:1;transform:translateY(0) scale(1)}
/* GRAIN */
#grain{position:fixed;inset:0;z-index:19999;pointer-events:none;opacity:.39;mix-blend-mode:normal;width:100vw;height:100vh;image-rendering:auto}
/* FLUID BG */
#fluid-bg{position:fixed;inset:0;z-index:0;background:#000;overflow:hidden;pointer-events:none}
body.has-video-bg #fluid-bg{background:#05080b}
#fluid-bg .bg-video-wrap{position:absolute;inset:0}
body.has-video-bg #fluid-bg .bg-video-wrap::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,8,11,.56) 0%,rgba(5,8,11,.46) 34%,rgba(5,8,11,.68) 100%),radial-gradient(circle at 50% 34%,rgba(255,255,255,.04) 0%,rgba(255,255,255,0) 42%);pointer-events:none}
#fluid-bg .bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;opacity:1}
body.has-video-bg #fluid-bg .bg-video{filter:grayscale(1) brightness(.58) saturate(0) contrast(1.04)}
#webgl-bg{position:absolute;inset:0;width:100%;height:100%}
body.has-video-bg #webgl-bg{opacity:0}
/* CSS orb fallback (shown if WebGL unavailable) */
.fluid-orb{position:absolute;border-radius:50%;filter:blur(50px);opacity:0;will-change:transform;pointer-events:none}
/* LOADER */
#loader-screen{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;overflow:hidden;pointer-events:none}
html.js #loader-screen{display:flex}
.loader-shutter{position:absolute;inset:0;display:flex;z-index:1}
.loader-shutter-col{flex:1;height:100%;background:#020202;transform-origin:top center}
.loader-shell{position:relative;z-index:3;width:min(540px,calc(100vw - 72px))}
.loader-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.brand-logo{display:block;width:100%;height:auto;filter:brightness(0) invert(1)}
.loader-logo{width:148px;opacity:.92}
.loader-meta-year{font-family:var(--fd);font-weight:540;font-size:.88rem;letter-spacing:-.04em;text-transform:uppercase;color:rgba(255,255,255,.92)}
.loader-progress{position:relative;height:2px;background:rgba(255,255,255,.16);overflow:hidden}
.loader-progress-bar{position:absolute;inset:0 auto 0 0;width:100%;background:#fff;transform-origin:left center;transform:scaleX(0)}
html.js body.is-loading .site-header,html.js body.is-loading .mobile-header,html.js body.is-loading .hero-meta,html.js body.is-loading .hero-brand-wrap,html.js body.is-loading .hero-bottom,html.js body.is-loading .hero-scroll{opacity:0;visibility:hidden}
@media(max-width:768px){
  .loader-shell{width:min(360px,calc(100vw - 40px))}
  .loader-meta{margin-bottom:12px}
  .loader-logo{width:128px}
  .loader-meta-year{font-size:.72rem;letter-spacing:-.03em}
  .loader-progress{height:2px}
}

/* NAV full bleed */
.site-header{position:fixed;top:0;left:0;width:100%;z-index:999;background:transparent;transform:translateY(0);transition:transform .82s var(--es),background .55s var(--eo)}
.site-header.nav-hidden{transform:translateY(-100%)}
.site-header.nav-compact{background:transparent}
.nav-inner{width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:68px}
.nav-logo{display:block;width:132px;transition:opacity .3s}.nav-logo:hover{opacity:.6}
.nav-links{display:flex;gap:32px}
.nav-link{font-family:var(--fd);font-weight:500;font-size:.82rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.45);transition:color .3s;position:relative;padding:4px 0}
.nav-link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:#fff;transition:width .4s var(--eo)}.nav-link:hover{color:#fff}.nav-link:hover::after{width:100%}
.nav-right{display:flex;align-items:center;gap:16px}
.nav-cta{display:inline-flex;align-items:center;gap:8px;font-family:var(--fd);font-weight:500;font-size:.78rem;letter-spacing:-.02em;text-transform:uppercase;padding:9px 20px;border:1px solid rgba(255,255,255,.22);border-radius:100px;color:#fff;transition:color .35s var(--eo),background .35s var(--eo),border-color .35s var(--eo)}.nav-cta:hover{background:#fff;color:var(--bg);border-color:#fff}
.lang-switch{position:relative;font-family:var(--fd);z-index:1000}.lang-trigger{display:flex;align-items:center;gap:5px;cursor:pointer;color:rgba(255,255,255,.62);padding:5px 8px;border:none;border-radius:100px;transition:all .3s var(--eo);background:transparent;font:inherit}
.lang-text{font-weight:500;font-size:.68rem;letter-spacing:-.02em;text-transform:uppercase}.lang-arrow{display:flex;align-items:center;transition:transform .3s var(--eo)}.lang-arrow svg{width:10px;height:10px;stroke-width:2;stroke:currentColor;fill:none}
.lang-switch.active .lang-arrow{transform:rotate(180deg)}.lang-switch:hover .lang-trigger{color:#fff}
.lang-dropdown{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%) translateY(-4px);min-width:52px;padding:4px 0;background:rgba(17,17,17,.95);border:1px solid rgba(255,255,255,.06);border-radius:6px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s var(--eo),transform .25s var(--eo),visibility .25s var(--eo);backdrop-filter:blur(8px)}
.lang-switch.active .lang-dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);pointer-events:auto}
.lang-opt{display:block;padding:5px 0;text-align:center;font-weight:500;font-size:.66rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.62);cursor:pointer;transition:.2s}.lang-opt:hover{color:#fff}.lang-opt.active{color:#fff}
/* MOBILE */
.mobile-header{display:none}.mobile-menu-overlay{display:none}
@media(max-width:768px){.site-header{display:none!important}.mobile-header{display:flex;justify-content:space-between;align-items:center;position:fixed;top:0;left:0;width:100%;z-index:9999;padding:14px 20px;background:rgba(10,10,10,.85);border-bottom:1px solid var(--bl)}.mobile-logo{font-family:var(--fd);font-weight:500;font-size:1.1rem;letter-spacing:-.04em;color:#fff}.mobile-controls{display:flex;align-items:center;gap:14px}.hamburger{width:32px;height:32px;padding:3px;border:0;background:transparent;color:inherit;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:5px;cursor:pointer}.hamburger span{display:block;background:#fff;height:2px;border-radius:2px;transition:all .4s var(--eo)}.hamburger span:nth-child(1){width:100%}.hamburger span:nth-child(2){width:55%}.hamburger span:nth-child(3){width:75%}.hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){width:100%;transform:translateY(-7px) rotate(-45deg)}.mobile-menu-overlay{display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;inset:0;overflow-y:auto;padding:76px 0 24px;background:rgba(10,10,10,.97);z-index:9998;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s var(--eo),visibility .45s var(--eo)}.mobile-menu-overlay.open{opacity:1;visibility:visible;pointer-events:auto}.mobile-nav-link{font-family:var(--fd);font-size:2.2rem;font-weight:500;color:#fff;margin:10px 0;opacity:0;transform:translateY(16px);transition:.45s var(--eo);border-bottom:1px solid var(--bl);width:55%;flex-shrink:0;text-align:center;padding-bottom:6px}.mobile-menu-overlay.open .mobile-nav-link{opacity:1;transform:translateY(0)}.mobile-menu-overlay.open .mobile-nav-link:nth-child(1){transition-delay:.06s}.mobile-menu-overlay.open .mobile-nav-link:nth-child(2){transition-delay:.12s}.mobile-menu-overlay.open .mobile-nav-link:nth-child(3){transition-delay:.18s}.mobile-menu-overlay.open .mobile-nav-link:nth-child(4){transition-delay:.24s}}
@media(max-width:768px){.mobile-logo{display:block;width:112px}}

/* HERO */
.hero{position:relative;z-index:1;height:100vh;padding:88px 32px 40px;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:1fr 1fr}
.hero-meta{grid-row:1;grid-column:1;display:flex;align-items:flex-start}
.hero-meta-txt{font-family:var(--fd);font-weight:400;font-size:.72rem;letter-spacing:.3px;color:rgba(255,255,255,.25)}
.hero-status{grid-row:1;grid-column:2;display:flex;align-items:flex-start;justify-content:flex-end;gap:20px}
.hero-status-dot{display:none}
.hero-status-label{font-family:var(--fd);font-weight:500;font-size:.68rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.32)}
.hero-stats{display:flex;gap:20px;align-items:center}
.hero-stat{display:flex;flex-direction:column;gap:2px;align-items:flex-end}
.hero-stat-n{font-family:var(--fd);font-weight:500;font-size:.95rem;color:rgba(255,255,255,.5);line-height:1}
.hero-stat-l{font-family:var(--fd);font-weight:500;font-size:.58rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.2)}
.hero-stat-sep{width:1px;height:22px;background:rgba(255,255,255,.1)}
.hero-brand-wrap{grid-row:2;grid-column:1/-1;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:2rem;position:relative}
.hero-brand{width:100%;line-height:0;margin-bottom:2rem}
.hero-logo-svg{display:block;width:min(86%,68rem);max-width:100%;height:auto;margin-inline:auto;overflow:visible;fill:#fff;transform-origin:50% 100%;will-change:transform,opacity}
.hero-logo-mark{transform-box:fill-box;transform-origin:center;will-change:transform}
.hero-logo-word-mask,.hero-logo-letter,.hero-logo-dot,.hero-logo-chevron{transform-box:fill-box}
.hero-tags{display:flex;gap:8px;flex-wrap:wrap}
.hero-tag{font-family:var(--fd);font-weight:500;font-size:.66rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.26);border:1px solid rgba(255,255,255,.1);border-radius:100px;padding:5px 12px;transition:all .3s var(--eo)}
.hero-tag:hover{color:rgba(255,255,255,.65);border-color:rgba(255,255,255,.28)}
.hero-bottom{grid-row:3;grid-column:1;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding-bottom:4px}
.hero-l1{font-family:var(--fd);font-weight:400;font-size:.74rem;letter-spacing:.3px;color:rgba(255,255,255,.25);line-height:1.5}
.hero-manifesto{font-family:var(--fd);font-weight:500;font-size:clamp(.82rem,1.15vw,.98rem);color:rgba(255,255,255,.5);line-height:1.65;max-width:440px}
.hero-manifesto em{font-style:normal;color:rgba(255,255,255,.85)}
.hero-scroll{grid-row:3;grid-column:2;display:flex;align-items:flex-end;justify-content:flex-end}
.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:10px}
.scroll-cue span{font-family:var(--fd);font-weight:500;font-size:.62rem;letter-spacing:-.03em;text-transform:uppercase;color:rgba(255,255,255,.25)}
.cue-line{width:1.5px;height:52px;background:rgba(255,255,255,.12);position:relative;overflow:hidden}
.cue-dot{position:absolute;top:-10px;left:0;width:100%;height:10px;background:#fff;animation:cueDrop 1.8s ease-in-out infinite}
@keyframes cueDrop{0%{top:-10px}100%{top:52px}}
@media(max-width:768px){.hero{padding:20px;padding-top:70px;grid-template-rows:auto 1fr auto;grid-template-columns:1fr}.hero-status{display:none}.hero-brand-wrap{grid-column:1}.hero-brand{font-size:clamp(3.5rem,14vw,6rem)}.hero-scroll{grid-column:1;justify-content:flex-start;margin-top:24px}}

/* MANIFESTO */
.mf-sec{position:relative;z-index:1;min-height:1000vh}
.mf-sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.mf-step{position:absolute;top:50%;left:0;right:0;padding:0 64px;transform:translateY(-50%);opacity:0;pointer-events:none;will-change:transform,opacity}
:lang(en) .mf-step{top:50%}
:lang(en) .mf-heading{font-size:clamp(1.8rem,4.2vw,4rem);line-height:0.94}
:lang(en) .mf-line{line-height:0.94}
:lang(zh-CN) .mf-step{top:50%}
.mf-step.active{opacity:1;pointer-events:auto}
.mf-line{display:block;overflow:visible;line-height:1.12}
.mf-line-i{display:block;will-change:transform}
.mf-char{display:inline-block;will-change:transform,opacity}
.mf-bar{position:fixed;bottom:0;left:0;height:2px;width:0%;background:var(--acc);z-index:1000;opacity:0;transition:opacity .3s}
.mf-bar.vis{opacity:1}
.mf-num{font-family:var(--fd);font-weight:500;font-size:.62rem;letter-spacing:-.02em;text-transform:uppercase;color:var(--acc);margin-bottom:24px;display:flex;align-items:center;gap:10px}
.mf-num::after{content:'';flex:1;max-width:60px;height:1px;background:var(--acc);opacity:.5}
.mf-heading{font-family:var(--fdd);font-weight:500;font-size:clamp(2rem,4.8vw,4.6rem);line-height:1.06;letter-spacing:-.05em;color:#fff}
.mf-heading em{font-style:normal;color:rgba(255,255,255,.2)}
.mf-sub{font-family:var(--fb);font-size:clamp(.82rem,1.1vw,.95rem);line-height:1.85;color:rgba(255,255,255,.35);margin-top:18px;max-width:460px}
.mf-progress{position:fixed;right:40px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px;z-index:10;opacity:0;transition:opacity .5s}
.mf-progress.visible{opacity:1}
.mf-pip{width:2px;height:20px;background:rgba(255,255,255,.12);border-radius:2px;transition:background .4s var(--eo),height .4s var(--eo)}
.mf-pip.active{background:#fff;height:36px}
@media(max-width:768px){.mf-sec{min-height:550vh}.mf-step{padding:0 24px}.mf-progress{display:none}}

/* GALLERY dark panel */
.gal-sec{padding:0;overflow:hidden;position:relative;z-index:1}
.gal-vp{position:relative;width:100%;height:100vh}
.gal-track{display:flex;height:100%;will-change:transform}
.gal-slide{flex-shrink:0;display:flex;height:100%;width:100vw}
.gal-panel{width:38%;flex-shrink:0;background:rgba(14,14,14,.95);border-right:1px solid var(--g4);color:#fff;display:flex;flex-direction:column;padding:44px 40px;overflow:hidden;position:relative}
.gp-num{font-family:var(--fd);font-weight:500;font-size:7vw;color:rgba(255,255,255,.03);position:absolute;top:24px;right:20px;line-height:1;pointer-events:none;letter-spacing:-.05em;user-select:none}
.gp-name{font-family:var(--fdd);font-weight:500;font-size:clamp(2rem,3.5vw,3.2rem);line-height:1.05;letter-spacing:-.04em;color:#fff;margin-bottom:24px;margin-top:auto}
.gp-info{display:flex;flex-direction:column}
.gp-row{display:flex;gap:12px;padding:9px 0;background-image:linear-gradient(rgba(255,255,255,1),rgba(255,255,255,1));background-repeat:no-repeat;background-position:bottom left;background-size:0% 1px}
.gp-k{font-family:var(--fd);font-weight:500;font-size:.76rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.62);width:70px;flex-shrink:0}
.gp-v{font-family:var(--fd);font-weight:500;font-size:.92rem;color:#fff}
.gp-desc{font-family:var(--fb);font-size:.98rem;line-height:1.75;color:rgba(255,255,255,.32);margin-top:20px}
.gp-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--fd);font-weight:500;font-size:.8rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.32);border:1px solid rgba(255,255,255,.12);border-radius:100px;padding:8px 18px;margin-top:20px;transition:all .3s var(--eo);align-self:flex-start}
.gp-link:hover{color:#fff;border-color:rgba(255,255,255,.45)}
.gp-link svg{transition:transform .3s var(--eb)}.gp-link:hover svg{transform:translate(2px,-2px)}
.gp-link.gp-link-disabled{pointer-events:none;color:rgba(255,255,255,.22);border-color:rgba(255,255,255,.08)}
.gp-link.gp-link-disabled svg{opacity:.45}
.gal-img{flex:1;overflow:hidden;position:relative;display:block}
.gal-img img{width:100%;height:100%;object-fit:cover}
@media(max-width:768px){.gal-vp{height:100vh;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.gal-track{flex-direction:row}.gal-slide{width:100vw;min-height:100vh;flex-shrink:0;flex-direction:column;scroll-snap-align:start}.gal-panel{width:100%;min-height:50vh;flex:1 1 50%;padding:28px 20px;overflow-y:auto}.gal-img{width:100%;height:50vh;min-height:0;flex:0 0 50%}.gal-img picture{display:block;width:100%;height:100%}.gp-num{font-size:18vw}.gp-name{margin-top:0;margin-bottom:16px}}

/* NUMBERS STRIP */
.num-strip{position:relative;z-index:1;min-height:112vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:84px 32px 76px;border-top:1px solid var(--bl);border-bottom:1px solid var(--bl)}
.num-strip-inner{width:100%;max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);transform:translateY(-4vh)}
.num-col{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 24px;position:relative}
.num-col+.num-col::before{content:'';position:absolute;left:0;top:15%;height:70%;width:1px;background:var(--bl)}
.num-val{font-family:var(--fdd);font-weight:500;font-size:clamp(4rem,9vw,9rem);line-height:1;letter-spacing:-.06em;color:#fff}
.num-val sup{font-size:.45em;vertical-align:super;color:rgba(255,255,255,.48);margin-left:.04em}
.num-label{font-family:var(--fd);font-weight:500;font-size:.85rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.25);margin-top:8px}
.num-desc{font-family:var(--fb);font-size:.88rem;color:rgba(255,255,255,.16);margin-top:5px;line-height:1.5}
.num-line{width:0;height:1px;background:var(--acc);margin:18px auto 0}
.num-col.visible .num-line{width:36px;background:var(--acc)}
@media(max-width:768px){.num-strip-inner{grid-template-columns:1fr;gap:48px;transform:none}.num-col+.num-col::before{display:none}.num-strip{min-height:112vh;padding:80px 20px 72px}}

/* ALL WORK */
.list-sec{position:relative;z-index:1;padding:0}
.list-wrap{display:grid;grid-template-columns:1fr 1fr;height:100vh}
.list-left{background:rgba(240,240,240,.96);color:#111;padding:48px;display:flex;flex-direction:column;justify-content:center;overflow-y:auto;scrollbar-width:none}
.list-left::-webkit-scrollbar{display:none}
.ll-title{font-family:var(--fdd);font-weight:500;font-size:clamp(2.5rem,5.5vw,5.5rem);line-height:1;letter-spacing:-.05em;color:#111;margin-bottom:8px}
.ll-deco{font-family:var(--fd);font-weight:400;font-size:.78rem;letter-spacing:.5px;color:rgba(0,0,0,.35);margin-bottom:32px;line-height:1.5}
.ll-rows{display:flex;flex-direction:column}
.ll-row{display:grid;grid-template-columns:28px 1fr auto;align-items:baseline;gap:8px;padding:12px 0;opacity:.2}.ll-row.active{opacity:1}
.ll-num{font-family:var(--fd);font-weight:500;font-size:.64rem;color:rgba(0,0,0,.4);transition:transform .3s var(--eo)}
.ll-name{font-family:var(--fdd);font-weight:500;font-size:clamp(1rem,1.8vw,1.5rem);letter-spacing:-.03em;text-transform:uppercase;color:#111;transition:color .3s;display:flex;align-items:center;gap:0}
.ll-name a,.ll-name span{display:inline-flex;align-items:center}
.ll-name a{transition:transform .3s var(--eo)}
.ll-arrow{display:inline-block;opacity:0;transform:translateX(-6px);transition:all .3s var(--eo);margin-left:6px}.ll-row:hover .ll-arrow{opacity:1;transform:translateX(0)}.ll-row:hover .ll-num{transform:translateX(4px)}.ll-row:hover .ll-name a{transform:translateX(6px)}
.ll-row:hover .ll-name{color:#000}
.ll-meta{font-family:var(--fd);font-size:.75rem;color:rgba(0,0,0,.3);white-space:nowrap}
.ll-foot{font-family:var(--fd);font-weight:500;font-size:.6rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(0,0,0,.25);margin-top:24px;padding-top:16px;border-top:1px solid rgba(0,0,0,.06)}
.list-right{position:relative;overflow:hidden}
.lr-img{position:absolute;inset:-40px;background-size:cover;background-position:center;will-change:transform;transform:translateY(100%);z-index:1}
.lr-img:first-child{transform:translateY(0);z-index:2}
/* Scope overlay on project images */
.lr-scope{position:absolute;bottom:28px;right:28px;z-index:10;padding:24px 28px;background:rgba(10,10,10,.65);border:1px solid rgba(255,255,255,.06);border-radius:6px;backdrop-filter:blur(8px);opacity:1;min-width:260px;pointer-events:auto}
.lr-scope[data-i="fixed"]{display:block}
.scope-block{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.06);background-image:linear-gradient(rgba(255,255,255,.06),rgba(255,255,255,.06));background-repeat:no-repeat;background-position:bottom left;background-size:0% 1px}
.scope-block:last-child{border-bottom:none}
.scope-k{font-family:var(--fd);font-weight:500;font-size:.62rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.28);flex-shrink:0}
.scope-v{font-family:var(--fd);font-weight:500;font-size:.72rem;color:rgba(255,255,255,.55);line-height:1.4;text-align:right}
@media(max-width:768px){.list-wrap{grid-template-columns:1fr;height:auto}.list-left{padding:32px 20px}.ll-title{font-size:clamp(2rem,9vw,3.5rem)}.list-right{display:none}.ll-row{opacity:1}.ll-meta{display:none}.lr-scope{bottom:16px;right:16px;left:16px;padding:18px 20px;min-width:auto}}

/* ABOUT annotation */
.about-sec{position:relative;z-index:1;padding:180px 0 140px;overflow:hidden}
.about-inner{width:100%;max-width:1100px;margin:0 auto;padding:0 64px}
.ab-eyebrow{font-family:var(--fd);font-weight:500;font-size:.62rem;letter-spacing:-.02em;text-transform:uppercase;color:var(--acc);margin-bottom:28px;display:flex;align-items:center;gap:12px}
.ab-eyebrow::after{content:'';flex:1;max-width:40px;height:1px;background:var(--acc);opacity:.4}
.ab-text{font-family:var(--fd);font-weight:300;font-size:clamp(.92rem,1.4vw,1.15rem);line-height:1.85;color:rgba(255,255,255,.7);margin-bottom:32px;position:relative}
.ab-text-canvas{position:absolute;inset:0;pointer-events:none}
.ab-ann{display:inline;position:relative;cursor:pointer}
.ab-ann-mark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid rgba(255,255,255,.22);font-family:var(--fd);font-weight:500;font-size:.5rem;color:rgba(255,255,255,.45);margin-left:3px;vertical-align:super;transition:all .22s;position:relative;top:-.05em;flex-shrink:0;font-style:normal}
.ab-ann:hover .ab-ann-mark,.ab-ann:focus .ab-ann-mark{background:var(--acc);border-color:var(--acc);color:#fff}
.ab-ann-card{position:absolute;bottom:calc(100% + 12px);left:0;width:250px;background:rgba(10,21,37,.97);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:14px 16px;opacity:0;pointer-events:none;transform:translateY(8px);transition:all .22s var(--eo);z-index:200;backdrop-filter:blur(12px);display:block}
.ab-ann:hover .ab-ann-card,.ab-ann:focus .ab-ann-card{opacity:1;transform:translateY(0);pointer-events:auto}
.ab-ann-card-label{display:block;font-family:var(--fd);font-weight:500;font-size:.58rem;letter-spacing:-.02em;text-transform:uppercase;color:var(--acc);margin-bottom:6px}
.ab-ann-card-text{display:block;font-family:var(--fb);font-size:.78rem;line-height:1.62;color:rgba(255,255,255,.48)}
.ab-row{display:flex;flex-wrap:wrap;gap:8px 40px;padding-top:28px;border-top:1px solid var(--bl)}
.ab-col{display:flex;flex-direction:column;gap:2px}
.ab-k{font-family:var(--fd);font-weight:500;font-size:.64rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.38)}
.ab-col span:not(.ab-k){font-size:.8rem;color:rgba(255,255,255,.75)}
.ab-hi{color:#fff!important;font-weight:500;text-shadow:0 0 10px rgba(255,255,255,.3)}
@media(max-width:768px){.about-inner{padding:60px 20px}.ab-ann-card{width:210px;left:auto;right:0}}

/* STUDIO FAQ — visible, answer-oriented content for search and AI readers */
.faq-sec{position:relative;z-index:1;padding:40px 0 120px}
.faq-inner{max-width:1100px;margin:0 auto;padding:0 64px}
.faq-eyebrow{font-family:var(--fd);font-weight:500;font-size:.64rem;letter-spacing:-.02em;text-transform:uppercase;color:var(--acc);margin-bottom:22px}
.faq-title{font-family:var(--fdd);font-weight:500;font-size:clamp(2.2rem,4.8vw,4.8rem);line-height:1;letter-spacing:-.05em;color:#fff;margin-bottom:44px}
.faq-list{border-bottom:1px solid var(--bl)}
.faq-list details{border-top:1px solid var(--bl)}
.faq-list summary{position:relative;padding:22px 40px 22px 0;font-family:var(--fd);font-weight:500;font-size:1rem;color:rgba(255,255,255,.86);cursor:pointer;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'+';position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:1.3rem;font-weight:300;color:rgba(255,255,255,.45)}
.faq-list details[open] summary::after{content:'−'}
.faq-list details p{max-width:720px;padding:0 40px 24px 0;font-family:var(--fb);font-size:.9rem;line-height:1.85;color:rgba(255,255,255,.58)}
.faq-list details[open] p{animation:faqAnswerIn .48s var(--eo)}
@keyframes faqAnswerIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:768px){.faq-sec{padding:10px 0 84px}.faq-inner{padding:0 24px}.faq-title{margin-bottom:32px}.faq-list summary{font-size:.94rem}}

.contact-sec{position:relative;z-index:1;padding:100px 64px 80px;overflow:hidden}
.contact-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:96px;align-items:start}
.ct-left,.ct-right{min-width:0}
.ct-big{font-family:var(--fdd);font-weight:500;font-size:clamp(2.2rem,4.9vw,5.2rem);letter-spacing:-.05em;color:#fff;margin-bottom:18px;line-height:.94;max-width:10.4ch;overflow-wrap:anywhere;padding-bottom:10px;border-bottom:1px solid var(--bl)}
.ct-sub{font-family:var(--fd);font-weight:300;font-size:.82rem;color:rgba(255,255,255,.3);margin-bottom:40px;line-height:1.6;max-width:400px}
.ct-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:560px;margin-bottom:48px}
.ct-form input,.ct-form textarea{background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.1);padding:10px 0;color:#fff;font-family:var(--fd);font-weight:300;font-size:.84rem;transition:border-color .3s}
.ct-form input:focus,.ct-form textarea:focus{border-color:rgba(255,255,255,.4)}
.ct-form textarea{grid-column:1/-1;resize:none}
.ct-submit{grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;gap:8px;font-family:var(--fd);font-weight:500;font-size:.72rem;letter-spacing:-.02em;text-transform:uppercase;padding:10px 24px;border:1px solid rgba(255,255,255,.15);border-radius:100px;color:rgba(255,255,255,.5);background:transparent;cursor:pointer;transition:all .35s var(--eo);margin-top:8px}
.ct-submit:hover{color:#fff;border-color:rgba(255,255,255,.5)}
.ct-mail{display:inline-flex;align-items:center;gap:12px}
.ct-mail span{font-family:var(--fd);font-weight:400;font-size:.92rem;letter-spacing:-.2px;color:rgba(255,255,255,.5);transition:color .3s}
.ct-mail svg{flex-shrink:0;width:16px;height:16px;transition:transform .4s var(--eb)}.ct-mail:hover span{color:#fff}.ct-mail:hover svg{transform:translate(3px,-3px)}
.ct-soc{display:flex;gap:20px}
.soc{font-family:var(--fd);font-weight:500;font-size:.72rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.25);padding:4px 0;position:relative;transition:color .3s}
.soc::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:#fff;transition:width .4s var(--eo)}.soc:hover{color:#fff}.soc:hover::after{width:100%}
.ct-right{display:flex;flex-direction:column;gap:16px;padding-top:0}
.ct-block{padding-top:28px;border-top:1px solid rgba(255,255,255,.06)}
.ct-right .ct-soc{display:flex;gap:24px}
@media(max-width:768px){.contact-sec{padding:60px 24px 50px}.contact-grid{grid-template-columns:1fr;gap:40px}.ct-form{grid-template-columns:1fr;max-width:100%}.ct-big{font-size:clamp(2rem,7vw,3.5rem)}.ct-right .ct-soc{flex-direction:column;gap:10px}}

/* PROCESS SECTION */
.process-sec{position:relative;z-index:1;padding:120px 0;border-top:1px solid var(--bl);border-bottom:1px solid var(--bl)}
.process-inner{max-width:1100px;margin:0 auto;padding:0 64px;display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.proc-num{font-family:var(--fdd);font-weight:500;font-size:clamp(3rem,5vw,5rem);color:var(--acc);line-height:1;letter-spacing:-.06em;margin-bottom:20px}
.proc-heading{font-family:var(--fdd);font-weight:500;font-size:clamp(1.2rem,2vw,1.8rem);color:#fff;margin-bottom:12px;letter-spacing:-.03em}
.proc-text{font-family:var(--fb);font-size:.92rem;line-height:1.75;color:rgba(255,255,255,.35)}
.proc-line{width:100%;height:1px;background:var(--acc);margin-top:24px;transform:scaleX(0);transform-origin:left center}
@media(max-width:768px){.process-inner{grid-template-columns:1fr;gap:36px;padding:0 24px}.process-sec{padding:80px 0}}

/* ABOUT QUOTE */
.ab-quote{font-family:var(--fd);font-weight:300;font-size:clamp(.92rem,1.3vw,1.1rem);color:rgba(255,255,255,.45);line-height:1.7;letter-spacing:0;margin:24px 0;padding-left:18px;border-left:2px solid rgba(255,255,255,.15)}

/* SECTION DIVIDERS */
.sec-divider{display:flex;justify-content:center;padding:0 64px;position:relative;z-index:1}
.sec-divider-line{height:1px;width:100%;background:rgba(255,255,255,.06);transform:scaleX(0);transform-origin:left center}

/* Section fade overlays */
.mf-sec{position:relative}
#scan-canvas{position:fixed;inset:0;pointer-events:none;z-index:1;width:100vw;height:100vh;opacity:.5}

/* FOOTER REDESIGN */
.site-footer{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;border-top:1px solid var(--bl);font-size:.66rem;color:rgba(255,255,255,.18);font-family:var(--fd)}
.footer-links{display:flex;gap:24px}
.footer-links a{color:rgba(255,255,255,.18);transition:color .3s}
.footer-links a:hover{color:#fff}
.footer-right{display:flex;gap:20px;align-items:center}
.back-to-top{color:rgba(255,255,255,.25);transition:color .3s;cursor:pointer}
.back-to-top:hover{color:#fff}
@media(max-width:768px){.site-footer{flex-direction:column;gap:12px;text-align:center}}
main{position:relative;z-index:1}
.ab-repel-line{display:block;will-change:transform}
body.cn-mode .ab-text{line-height:1.9}body.cn-mode .gp-desc{line-height:1.8}
.ptl{display:block;overflow:hidden;line-height:inherit}.ptli{display:block}
/* Clip mask for slide-up reveals */
.clip-up{display:block;overflow:hidden}.clip-up-i{display:block;will-change:transform}

/* ═══════════════════════════════════════════════════════════
   HERO KICKER (replaces hero-tags)
   ═══════════════════════════════════════════════════════════ */
.hero-kicker{display:flex;align-items:center;gap:10px;width:min(86%,68rem);margin:0 auto 3rem}
.hero-kicker-rule{display:block;width:24px;height:1px;background:rgba(255,255,255,.2);flex-shrink:0}
.hero-kicker-line{font-family:var(--fd);font-weight:500;font-size:.68rem;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.3)}

/* ═══════════════════════════════════════════════════════════
   CAPABILITIES SECTION
   ═══════════════════════════════════════════════════════════ */
.cap-sec{position:relative;z-index:1;padding:120px 0;border-top:1px solid var(--bl);border-bottom:1px solid var(--bl)}
.cap-inner{max-width:1180px;margin:0 auto;padding:0 64px}
.cap-head{display:grid;grid-template-columns:.55fr 1fr;gap:56px;align-items:start;margin-bottom:42px}
.cap-eyebrow{font-family:var(--fd);font-weight:500;font-size:.64rem;letter-spacing:-.02em;text-transform:uppercase;color:var(--acc);display:flex;align-items:center;gap:12px}
.cap-eyebrow::after{content:'';flex:1;max-width:60px;height:1px;background:var(--acc);opacity:.5}
.cap-title{font-family:var(--fdd);font-weight:600;font-size:clamp(2rem,4.3vw,4.6rem);line-height:1.02;letter-spacing:-.04em;color:rgba(255,255,255,.85)}
.cap-copy{font-family:var(--fb);font-size:.94rem;line-height:1.82;color:rgba(255,255,255,.36);max-width:520px;margin-top:18px}
.cap-wall{border-top:1px solid var(--bl)}
.cap-row{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;padding:18px 0 16px;background-image:linear-gradient(var(--bl),var(--bl));background-repeat:no-repeat;background-position:bottom left;background-size:0% 1px}
.cap-word{font-family:var(--fdd);font-weight:500;font-size:clamp(1.2rem,4vw,3.8rem);line-height:.9;letter-spacing:-.07em;color:#fff}
.cap-detail{max-width:320px;text-align:right;font-family:var(--fd);font-size:.74rem;line-height:1.7;letter-spacing:-.02em;text-transform:uppercase;color:rgba(255,255,255,.34)}
@media(max-width:768px){
  .cap-inner{padding:0 24px}
  .cap-head{grid-template-columns:1fr;gap:20px}
  .cap-row{flex-direction:column;align-items:flex-start;gap:4px;padding:14px 0;background-size:100% 1px}
  .cap-word{font-size:clamp(1.6rem,5vw,3rem)}
  .cap-detail{display:none}
  .cap-sec{padding:60px 0}
}

/* ═══════════════════════════════════════════════════════════
   RECONSTRUCTION V9 — Marquee, Deco Text, Enhanced Typography
   ═══════════════════════════════════════════════════════════ */

/* ── Hero decorative background ── */
.hero{overflow:hidden}
.hero-deco{position:absolute;bottom:5%;right:-4%;font-family:var(--fdd);font-weight:900;font-size:clamp(14rem,32vw,44rem);color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.03);line-height:.72;pointer-events:none;user-select:none;white-space:nowrap;z-index:0;letter-spacing:-.1em}

/* ── Marquee text bands ── */
.marquee-sec{position:relative;z-index:1;overflow:hidden;padding:10px 0;border-top:1px solid rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.04);background:rgba(0,0,0,.12)}
.marquee-track{display:flex;white-space:nowrap;will-change:transform}
.marquee-track.fwd{animation:mqF 50s linear infinite}
.marquee-track.rev{animation:mqR 42s linear infinite}
.marquee-item{font-family:var(--fdd);font-weight:500;font-size:clamp(1.2rem,2.5vw,2.2rem);letter-spacing:-.04em;color:rgba(255,255,255,.06);padding-right:8px;flex-shrink:0;display:inline-flex;align-items:center;gap:20px}
.m-sep{color:#fff;font-size:.3em;opacity:.08}
@keyframes mqF{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes mqR{from{transform:translateX(-50%)}to{transform:translateX(0)}}

/* ── Enhanced typography ── */
.hero-brand{font-size:clamp(5rem,14vw,16rem)!important}
.mf-heading{font-size:clamp(2.4rem,5.8vw,5.8rem)!important}
.proc-num{font-size:clamp(5rem,8vw,8rem)!important}
.num-val{font-size:clamp(5rem,12vw,13rem)!important;letter-spacing:-.08em}
.ll-title{font-size:clamp(3rem,6vw,6rem)!important}
.gp-name{font-size:clamp(2.2rem,4vw,4rem)!important}

/* ── Section decorative text ── */
.about-deco{position:absolute;top:10%;right:-5%;font-family:var(--fdd);font-weight:900;font-size:clamp(6rem,15vw,20rem);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.02);line-height:.82;pointer-events:none;user-select:none;white-space:nowrap;z-index:0;letter-spacing:-.05em}
.contact-deco{position:absolute;bottom:-5%;left:-3%;font-family:var(--fdd);font-weight:900;font-size:clamp(6rem,15vw,20rem);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.018);line-height:.82;pointer-events:none;user-select:none;white-space:nowrap;z-index:0;letter-spacing:-.05em}
.manifesto-deco{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--fdd);font-weight:900;font-size:clamp(8rem,20vw,28rem);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.015);line-height:.8;pointer-events:none;user-select:none;white-space:nowrap;z-index:0;letter-spacing:-.06em}

/* ── Gallery panel background number ── */
.gp-num{font-size:12vw!important;opacity:.035!important}

/* ── Enhanced manifesto sub ── */
.mf-sub{font-size:clamp(.88rem,1.2vw,1.05rem)!important;color:rgba(255,255,255,.42)!important}

/* ── Process line accent ── */
.proc-line{height:2px!important;background:#fff!important;opacity:.12}

/* ── Numbers desc ── */
.num-desc{color:rgba(255,255,255,.22)!important}

/* ── All work enhanced ── */
.ll-name{font-size:clamp(1.1rem,2.2vw,1.8rem)!important}

/* ── Mobile adjustments ── */
@media(max-width:768px){
  .marquee-sec{padding:12px 0}
  .marquee-item{font-size:clamp(1.1rem,4.5vw,1.8rem);gap:12px}
  .hero-deco{font-size:clamp(8rem,22vw,16rem);bottom:10%;right:-6%}
  .about-deco,.contact-deco{font-size:clamp(3.5rem,12vw,8rem)}
  .manifesto-deco{font-size:clamp(5rem,15vw,12rem)}
  .hero-brand{font-size:clamp(3.8rem,15vw,6.5rem)!important}
  .mf-heading{font-size:clamp(1.5rem,6vw,2.8rem)!important}
  .ll-title{font-size:clamp(2.2rem,10vw,4rem)!important}
  .proc-num{font-size:clamp(3rem,6vw,5rem)!important}
  .num-val{font-size:clamp(3.5rem,10vw,7rem)!important}
}

/* ═══════════════════════════════════════════════════════════
   RECONSTRUCTION V10 — Scene Contrast Pass
   ═══════════════════════════════════════════════════════════ */
:root{
  --paper:#e7e1d9;
  --paper-2:#f2ede7;
  --paper-line:rgba(12,17,23,.09);
  --paper-text:#10141a;
  --paper-muted:rgba(16,20,26,.58);
  --night-1:#081016;
  --night-2:#0d171d;
  --night-accent:rgba(104,124,132,.16);
  --night-accent-soft:rgba(186,174,160,.12);
}

.process-sec{
  position:relative;
  z-index:2;
  padding:132px 0 126px;
  background:
    linear-gradient(180deg,rgba(242,237,231,.98) 0%,rgba(231,225,217,.98) 100%),
    repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(12,17,23,.05) calc(25% - 1px),rgba(12,17,23,.05) 25%);
  color:var(--paper-text);
  border-top:1px solid rgba(12,17,23,.12);
  border-bottom:1px solid rgba(12,17,23,.12);
  overflow:hidden;
}
.process-sec::before{
  content:'';
  position:absolute;
  inset:26px 32px auto;
  height:1px;
  background:rgba(12,17,23,.12);
}
.process-inner{
  position:relative;
  max-width:1240px;
  margin:0 auto;
  padding:0 64px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:48px 40px;
}
.proc-stage{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0 56px;
  align-items:end;
  margin-bottom:12px;
}
.proc-kicker{
  font-family:var(--fd);
  font-weight:600;
  font-size:.66rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(16,20,26,.44);
  margin-bottom:14px;
  grid-column:1/-1;
}
.proc-hero{
  font-family:var(--fdd);
  font-weight:600;
  font-size:clamp(2.7rem,5.8vw,6.6rem);
  line-height:.92;
  letter-spacing:-.07em;
  color:var(--paper-text);
  margin-bottom:0;
}
.proc-lead{
  max-width:480px;
  font-family:var(--fb);
  font-size:.95rem;
  line-height:1.82;
  color:rgba(16,20,26,.55);
  align-self:end;
  padding-bottom:6px;
}
.proc-col{
  position:relative;
  padding-top:24px;
  padding-left:22px;
}
.proc-col::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  height:220px;
  width:1px;
  background:rgba(12,17,23,.14);
  transform:scaleY(0);
  transform-origin:top center;
  transition:transform .9s cubic-bezier(.16,1,.3,1);
}
.proc-col.line-in::before{transform:scaleY(1)}
.proc-num{
  display:block;
  margin-bottom:18px;
  color:rgba(16,20,26,.18)!important;
}
.proc-meta{
  font-family:var(--fd);
  font-weight:600;
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(16,20,26,.42);
  margin-bottom:12px;
}
.proc-heading{
  color:var(--paper-text);
  font-size:clamp(1.15rem,1.7vw,1.75rem);
  line-height:1.04;
}
.proc-text{
  color:rgba(16,20,26,.62);
  font-size:.95rem;
  line-height:1.78;
}
.proc-line{display:none}

.cap-sec{
  position:relative;
  background:
    radial-gradient(circle at 16% 18%,var(--night-accent) 0%,rgba(104,124,132,0) 40%),
    linear-gradient(180deg,var(--night-2) 0%,var(--night-1) 100%);
  overflow:hidden;
}
.cap-sec::before{
  content:'';
  position:absolute;
  inset:0;
  background:none;
  pointer-events:none;
}
.cap-inner{
  position:relative;
}
.cap-head{
  grid-template-columns:.65fr 1fr;
  gap:72px;
}
.cap-copy{
  max-width:600px;
}
.cap-wall{
  counter-reset:cap;
  position:relative;
}
.cap-row{
  counter-increment:cap;
  position:relative;
  padding:24px 0 22px 78px;
}
.cap-row::before{
  content:counter(cap, decimal-leading-zero);
  position:absolute;
  left:0;
  bottom:24px;
  font-family:var(--fd);
  font-weight:600;
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.28);
}
.cap-row::after{
  content:'';
  position:absolute;
  left:54px;
  top:0;
  bottom:0;
  width:1px;
  background:rgba(255,255,255,.08);
  transform:scaleY(0);
  transform-origin:top center;
  transition:transform .85s cubic-bezier(.16,1,.3,1);
}
.cap-row.line-in::after{
  transform:scaleY(1);
}
.cap-word{
  line-height:.84;
}
.cap-detail{
  max-width:360px;
  color:rgba(255,255,255,.42);
}

.list-sec{
  position:relative;
  z-index:2;
  background:linear-gradient(180deg,#060b10 0%, #091015 100%);
  padding-top:0;
}
.list-sec::before{
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:120px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.9) 0%, rgba(255,255,255,0) 34%),
    linear-gradient(180deg,rgba(255,255,255,.96) 0%, rgba(255,255,255,0) 100%);
  pointer-events:none;
}
.list-wrap{
  width:100%;
  max-width:none;
  margin:0;
  height:100vh;
  background:#fff;
  border-top:1px solid rgba(255,255,255,.06);
  box-shadow:0 -1px 0 rgba(255,255,255,.14) inset;
}
.list-left{
  background:#fff;
  color:var(--paper-text);
  padding:40px 68px 60px;
  justify-content:flex-start;
}
.list-intro{
  max-width:420px;
  margin-bottom:4px;
}
.ll-tag{
  font-family:var(--fd);
  font-weight:600;
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(16,20,26,.42);
  margin-bottom:4px;
}
.ll-title{
  color:var(--paper-text);
  line-height:.92;
}
.ll-deco{
  color:rgba(16,20,26,.42);
  margin-bottom:20px;
}
.ll-stage{
  position:relative;
  flex:1;
  min-height:0;
  overflow:hidden;
  margin-top:14px;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 10%,#000 88%,transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0%,#000 10%,#000 88%,transparent 100%);
}
.ll-stage::before,
.ll-stage::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  height:72px;
  z-index:2;
  pointer-events:none;
}
.ll-stage::before{
  top:0;
  background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,0) 100%);
}
.ll-stage::after{
  bottom:0;
  background:linear-gradient(180deg,rgba(255,255,255,0) 0%,#fff 100%);
}
.ll-rows{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:20vh 0;
  will-change:transform;
}
.ll-row{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) auto;
  align-items:end;
  gap:16px;
  padding:12px 0 16px;
  --row-line:rgba(16,20,26,.07);
  background-image:linear-gradient(var(--row-line),var(--row-line));
  background-repeat:no-repeat;
  background-position:bottom left;
  background-size:0% 1px;
  opacity:1;
}
.ll-num{
  align-self:center;
  color:rgba(16,20,26,.24);
  font-size:.72rem;
  transition:color .35s var(--eo),transform .35s var(--eo);
}
.ll-name{
  color:rgba(16,20,26,.18);
  font-size:clamp(1.8rem,3vw,3.9rem)!important;
  line-height:.92;
  letter-spacing:-.07em;
  text-transform:none;
  transition:color .4s var(--eo),transform .55s var(--eo),opacity .4s var(--eo);
}
.ll-meta,
.ll-foot{
  color:rgba(16,20,26,.4);
}
.ll-meta{
  align-self:center;
  color:rgba(16,20,26,.18);
  font-size:.82rem;
  transition:color .35s var(--eo),transform .45s var(--eo),opacity .35s var(--eo);
}
.ll-row:not(.active) .ll-name{
  opacity:.66;
}
.ll-row:not(.active) .ll-meta{
  opacity:.58;
}
.ll-row.active .ll-name,
.ll-row:hover .ll-name{
  color:var(--paper-text);
  transform:translateX(18px);
}
.ll-row.active .ll-num,
.ll-row:hover .ll-num{
  color:rgba(16,20,26,.62);
}
.ll-row.active .ll-meta,
.ll-row:hover .ll-meta{
  color:rgba(16,20,26,.54);
}
.ll-row.active{
  --row-line:rgba(16,20,26,.12);
}
.ll-foot{
  margin-top:10px;
  padding-top:10px;
  border-top:none;
  background-image:linear-gradient(rgba(16,20,26,.1),rgba(16,20,26,.1));
  background-repeat:no-repeat;
  background-position:top left;
  background-size:0% 1px;
  color:rgba(16,20,26,.55);
  position:relative;
  z-index:3;
  flex-shrink:0;
}
.list-right{
  position:relative;
  overflow:hidden;
}
.list-right::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(6,11,18,.04) 0%,rgba(6,11,18,.18) 100%),
    repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(255,255,255,.04) calc(25% - 1px),rgba(255,255,255,.04) 25%);
  z-index:2;
  pointer-events:none;
}
.lr-scope{
  background:rgba(8,18,31,.72);
  border-color:rgba(255,255,255,.08);
}
.list-sec + .sec-divider{
  display:none;
}

.about-sec{
  position:relative;
  z-index:2;
  padding:126px 0 116px;
  background:#1a1a1a;
  color:rgba(255,255,255,.85);
}
.about-sec::before{
  display:none;
}
.about-inner{
  position:relative;
  max-width:1240px;
}
.ab-shell{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) 320px;
  gap:72px;
  align-items:start;
}
.ab-main{
  max-width:760px;
}
.ab-aside{
  padding-top:14px;
}
.ab-note-k{
  font-family:var(--fd);
  font-weight:600;
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.4);
  margin-bottom:12px;
}
.ab-note{
  font-family:var(--fb);
  font-size:.96rem;
  line-height:1.78;
  color:rgba(255,255,255,.55);
  margin-bottom:28px;
}
.ab-eyebrow{
  color:rgba(255,255,255,.4);
}
.ab-eyebrow::after{
  background:rgba(255,255,255,.25);
}
.ab-text{
  color:rgba(255,255,255,.75);
}
.ab-quote{
  color:rgba(255,255,255,.45);
  border-left-color:rgba(255,255,255,.15);
}
.ab-row{
  border-top:1px solid rgba(255,255,255,.1);
  gap:16px 24px;
}
.ab-k{
  color:rgba(255,255,255,.35);
}
.ab-col span:not(.ab-k){
  color:rgba(255,255,255,.8);
}
.ab-hi{
  color:#fff!important;
  text-shadow:0 0 10px rgba(255,255,255,.3);
}
.about-deco{
  color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,.04);
}

.contact-sec{
  position:relative;
  z-index:2;
  padding:110px 64px 108px;
  background:
    radial-gradient(circle at 78% 16%,var(--night-accent-soft) 0%,rgba(186,174,160,0) 38%),
    linear-gradient(180deg,var(--night-2) 0%,var(--night-1) 100%);
}
.contact-sec::before{
  content:'';
  position:absolute;
  inset:0;
  background:none;
  pointer-events:none;
}
.contact-grid{
  position:relative;
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.68fr);
  gap:64px;
}
.ct-label,
.ct-k{
  font-family:var(--fd);
  font-weight:600;
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.34);
}
.ct-label{
  margin-bottom:16px;
}
.ct-big{
  width:auto!important;
  max-width:10.8ch;
  margin-bottom:14px;
}
.ct-sub{
  max-width:460px;
  margin-bottom:14px;
}
.ct-note{
  font-family:var(--fd);
  font-size:.8rem;
  line-height:1.65;
  color:rgba(255,255,255,.42);
  margin-bottom:30px;
}
.ct-form{
  max-width:620px;
  gap:16px 18px;
}
.ct-field{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.ct-field-wide{
  grid-column:1/-1;
}
.ct-field-label{
  font-family:var(--fd);
  font-weight:600;
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.3);
}
.ct-form input,
.ct-form textarea{
  padding:0 0 12px;
}
.ct-right{
  gap:28px;
  padding-top:96px;
  border-top:none;
}
.ct-block{
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.08);
}
.ct-mail{
  margin-top:12px;
}
.ct-mail span{
  font-size:1rem;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.ct-soc{
  margin-top:14px;
  flex-wrap:wrap;
}
.contact-deco{
  display:none;
}

@media(max-width:1024px){
  .process-inner{
    grid-template-columns:1fr;
    gap:28px;
  }
  .proc-stage{
    padding-right:0;
    max-width:720px;
  }
  .proc-col{
    min-height:auto;
    padding-top:42px;
  }
  .ab-shell{
    grid-template-columns:1fr;
    gap:32px;
  }
  .contact-grid{
    grid-template-columns:1fr;
    gap:38px;
  }
}

@media(max-width:768px){
  .process-sec{
    padding:88px 0 80px;
    background:
      linear-gradient(180deg,rgba(242,237,231,.98) 0%,rgba(231,225,217,.98) 100%),
      repeating-linear-gradient(90deg,transparent 0,transparent calc(50% - 1px),rgba(12,17,23,.05) calc(50% - 1px),rgba(12,17,23,.05) 50%);
  }
  .process-inner{
    padding:0 24px;
  }
  .proc-hero{
    font-size:clamp(2.4rem,11vw,4.4rem);
  }
  .cap-head{
    grid-template-columns:1fr;
    gap:20px;
  }
  .cap-row{
    padding-left:0;
  }
  .cap-row::before,
  .cap-row::after{
    display:none;
  }
  .list-sec{
    padding-top:0;
    background:linear-gradient(180deg,#060b10 0%, #091015 100%);
  }
  .list-sec::before{
    height:88px;
    background:
      linear-gradient(180deg,rgba(255,255,255,.03) 0%, rgba(255,255,255,0) 20%),
      linear-gradient(180deg,rgba(6,11,16,.1) 0%, rgba(6,11,16,0) 100%);
  }
  .list-wrap{
    height:auto;
  }
  .list-left{
    padding:34px 28px 64px;
  }
  .ll-stage{
    flex:none;
    min-height:auto;
    overflow:visible;
    margin-top:0;
    -webkit-mask-image:none;
    mask-image:none;
  }
  .ll-stage::before,
  .ll-stage::after{
    display:none;
  }
  .ll-rows{
    padding:0;
    transform:none!important;
  }
  .ll-row{
    grid-template-columns:28px minmax(0,1fr) auto;
    gap:12px;
    padding:10px 0 14px;
  }
  .ll-name{
    font-size:clamp(1.9rem,8vw,3.2rem)!important;
  }
  .about-sec{
    padding:92px 0 84px;
  }
  .about-inner{
    padding:0 24px;
  }
  .contact-sec{
    padding:74px 24px 74px;
  }
  .ct-big{
    max-width:none;
  }
  .ct-form{
    grid-template-columns:1fr;
    max-width:100%;
  }
  .ct-field-wide{
    grid-column:auto;
  }
  /* Line animation mobile fallback — always visible, no GSAP needed */
  .gp-row,.ll-row,.ll-foot{background-size:100% 1px}
}

/* ══ Accessibility, deferred media, and motion fallbacks ═════════════ */
.lr-img-brand{
  background:
    radial-gradient(circle at 68% 32%,rgba(255,255,255,.24),transparent 28%),
    linear-gradient(135deg,#05080b 0%,#1d2930 46%,#d8d8d2 100%);
}
.lr-img-brand::after{
  content:'KYNICLAB';
  position:absolute;
  left:8%;
  bottom:8%;
  font-family:var(--fdd);
  font-size:clamp(3rem,8vw,9rem);
  font-weight:800;
  letter-spacing:-.07em;
  color:#fff;
}
.hero-meta-txt,.scroll-cue span{color:rgba(255,255,255,.58)}
.nav-link{color:rgba(255,255,255,.62)}
.ct-label,.ct-k,.ct-field-label{color:rgba(255,255,255,.58)}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  *{cursor:auto!important}
  #cursor,#grain,#scan-canvas,#webgl-bg,.bg-video-wrap{display:none!important}
  #fluid-bg{background:#05080b}
  .mf-sec{min-height:auto!important;padding:112px 0}
  .mf-sticky{position:relative;top:auto;height:auto;display:grid;gap:88px;overflow:visible;padding:0 64px}
  .mf-step{position:relative;inset:auto;top:auto!important;transform:none!important;opacity:1!important;visibility:visible!important;filter:none!important;padding:0;pointer-events:auto}
  .mf-progress,.mf-bar{display:none!important}
  .gal-vp{height:auto!important;overflow:visible}
  .gal-track{display:block!important;transform:none!important}
  .gal-slide{width:100%;min-height:100vh;transform:none!important}
  .gal-img img{transform:none!important}
  .list-wrap{height:auto!important;display:block}
  .list-left{min-height:auto;padding-bottom:80px}
  .list-right{display:none}
  .ll-stage{min-height:auto;overflow:visible;mask-image:none;-webkit-mask-image:none}
  .ll-stage::before,.ll-stage::after{display:none}
  .ll-rows{padding:20px 0;transform:none!important}
  .hero-logo-svg,.hero-logo-mark,.hero-logo-word-mask,.hero-logo-letter,.hero-logo-dot,.hero-logo-chevron{opacity:1!important;visibility:visible!important;transform:none!important}
  .reveal,.proc-stage,.proc-col,.cap-title,.cap-copy,.cap-row,.num-col,.ab-para,.ab-quote,.ab-aside,.contact-grid>*{opacity:1!important;visibility:visible!important;filter:none!important;transform:none!important}
}

@media(prefers-reduced-motion:reduce) and (max-width:768px){
  .mf-sticky{padding:0 24px;gap:64px}
  .gal-slide{min-height:auto}
  .gal-panel{flex:none;min-height:0}
  .gal-img{flex:none;height:50vh}
}

/* Class-based static fallback when enhancement dependencies are unavailable. */
:is(html.reduced-motion,html:not(.js)) .mf-sec{min-height:auto!important;padding:112px 0}
:is(html.reduced-motion,html:not(.js)) .mf-sticky{position:relative;top:auto;height:auto;display:grid;gap:88px;overflow:visible;padding:0 64px}
:is(html.reduced-motion,html:not(.js)) .mf-step{position:relative;inset:auto;top:auto!important;transform:none!important;opacity:1!important;visibility:visible!important;filter:none!important;padding:0;pointer-events:auto}
:is(html.reduced-motion,html:not(.js)) .mf-progress,:is(html.reduced-motion,html:not(.js)) .mf-bar{display:none!important}
:is(html.reduced-motion,html:not(.js)) .gal-vp{height:auto!important;overflow:visible}
:is(html.reduced-motion,html:not(.js)) .gal-track{display:block!important;transform:none!important}
:is(html.reduced-motion,html:not(.js)) .gal-slide{width:100%;min-height:100vh;transform:none!important}
:is(html.reduced-motion,html:not(.js)) .gal-img img{transform:none!important}
:is(html.reduced-motion,html:not(.js)) .list-wrap{height:auto!important;display:block}
:is(html.reduced-motion,html:not(.js)) .list-left{min-height:auto;padding-bottom:80px}
:is(html.reduced-motion,html:not(.js)) .list-right{display:none}
:is(html.reduced-motion,html:not(.js)) .ll-stage{min-height:auto;overflow:visible;mask-image:none;-webkit-mask-image:none}
:is(html.reduced-motion,html:not(.js)) .ll-stage::before,:is(html.reduced-motion,html:not(.js)) .ll-stage::after{display:none}
:is(html.reduced-motion,html:not(.js)) .ll-rows{padding:20px 0;transform:none!important}
:is(html.reduced-motion,html:not(.js)) .ll-row{opacity:1}
:is(html.reduced-motion,html:not(.js)) .hero-logo-svg,:is(html.reduced-motion,html:not(.js)) .hero-logo-mark,:is(html.reduced-motion,html:not(.js)) .hero-logo-word-mask,:is(html.reduced-motion,html:not(.js)) .hero-logo-letter,:is(html.reduced-motion,html:not(.js)) .hero-logo-dot,:is(html.reduced-motion,html:not(.js)) .hero-logo-chevron{opacity:1!important;visibility:visible!important;transform:none!important}
:is(html.reduced-motion,html:not(.js)) .reveal,:is(html.reduced-motion,html:not(.js)) .proc-stage,:is(html.reduced-motion,html:not(.js)) .proc-col,:is(html.reduced-motion,html:not(.js)) .cap-title,:is(html.reduced-motion,html:not(.js)) .cap-copy,:is(html.reduced-motion,html:not(.js)) .cap-row,:is(html.reduced-motion,html:not(.js)) .num-col,:is(html.reduced-motion,html:not(.js)) .ab-para,:is(html.reduced-motion,html:not(.js)) .ab-quote,:is(html.reduced-motion,html:not(.js)) .ab-aside,:is(html.reduced-motion,html:not(.js)) .contact-grid>*{opacity:1!important;visibility:visible!important;filter:none!important;transform:none!important}

@media(max-width:768px){
  .footer-links{flex-wrap:wrap;justify-content:center;gap:10px 18px}
  :is(html.reduced-motion,html:not(.js)) .mf-sticky{padding:0 24px;gap:64px}
  :is(html.reduced-motion,html:not(.js)) .gal-slide{min-height:auto}
  :is(html.reduced-motion,html:not(.js)) .gal-panel{flex:none;min-height:0}
  :is(html.reduced-motion,html:not(.js)) .gal-img{flex:none;height:50vh}
}

@media(max-width:768px) and (max-height:540px){
  .mobile-menu-overlay{justify-content:flex-start}
  .mobile-nav-link{font-size:1.65rem;margin:6px 0}
}

/* PAGE CURTAIN — shared transition wipe (homepage + work pages) */
.page-curtain{position:fixed;inset:0;z-index:26000;background:#020202;transform:translateY(100%);transition:transform .78s var(--eo);pointer-events:none;will-change:transform}
.page-curtain.is-static{transition:none}
.page-curtain.is-cover{transform:translateY(0)}
.page-curtain.is-away{transform:translateY(-100%)}
@media(prefers-reduced-motion:reduce){.page-curtain{display:none!important}}
