/* NLINEA optical editorial refinement: one grid, clear reading, restrained blue. */
.f-site{--f-blue:#1645df;--f-ice:#bed6ff;--f-pad:clamp(20px,2.4vw,46px);--f-ease:cubic-bezier(.16,1,.35,1)}
.f-site .f-header{inset:24px var(--f-pad) auto}
.f-site :focus-visible{outline:2px solid var(--f-blue);outline-offset:6px}
.f-site .f-dark :focus-visible{outline-color:var(--f-ice)}
.f-site .f-hero{padding-inline:var(--f-pad)}
.f-site .f-hero h1{letter-spacing:-.062em;line-height:.96}
.f-site .f-hero h1>span:nth-child(2){color:var(--f-blue)}
.f-site .f-hero-aside p{font-size:clamp(20px,1.6vw,25px);line-height:1.32;letter-spacing:-.03em;max-width:26ch}
.f-site .f-identity{font-size:.75rem;line-height:1.75;letter-spacing:.045em}
.f-site .f-feature{isolation:isolate;overflow:hidden;background:#171b20}
.f-site .f-feature:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:4;border:1px solid #eaf1ff33;border-top:2px solid #174cec;box-shadow:inset 0 0 70px #103ca418}
.f-site .f-feature-art img{translate:var(--optical-x,0px) var(--optical-y,0px);will-change:auto}
.f-site .f-feature-news{max-width:360px;padding:24px}
.f-site .f-feature-news strong{font-size:1rem;line-height:1.25;letter-spacing:-.025em}
.f-site .f-feature-news small{font-size:.875rem;line-height:1.4;margin-top:10px}
.f-site .f-feature-news>a{padding:14px;gap:17px}
.f-site .f-studio{padding:clamp(72px,7.4vw,124px) var(--f-pad);column-gap:26px}
.f-site .f-studio>div>h2{font-size:clamp(38px,3.8vw,66px);line-height:1.12;letter-spacing:-.042em}
.f-site .f-studio-credit{font-size:1.0625rem;line-height:1.65;max-width:62ch;margin-top:44px}
.f-site .f-practice-strip{padding-top:48px;column-gap:26px}
.f-site .f-practice-strip>div{gap:24px}
.f-site .f-gap .scene-sticky>p{font-size:1rem;line-height:1.55;max-width:350px}
.f-site .f-gap-art figcaption{font-size:.75rem;line-height:1.4;padding:5px 7px}
.f-site .f-work{padding:clamp(80px,7.2vw,130px) var(--f-pad);column-gap:44px}
.f-site .f-section-rail h2{font-size:clamp(26px,2.2vw,36px);line-height:1.12;letter-spacing:-.045em;margin:22px 0}
.f-site .f-section-rail>p{font-size:1rem;line-height:1.6;max-width:23ch}
.f-site .f-section-rail>.text-link{font-size:1rem;line-height:1.5;max-width:200px}
.f-site .f-work-list article{gap:clamp(28px,2.7vw,48px);margin-bottom:clamp(56px,6vw,96px)}
.f-site .f-work-list article:last-child{margin-bottom:0}
.f-site .f-project-copy>span{font-size:.75rem;line-height:1.65;color:#455264;letter-spacing:.02em}
.f-site .f-project-copy h3{font-size:clamp(28px,2.8vw,44px);line-height:1.12;margin:24px 0 20px;letter-spacing:-.045em}
.f-site .f-project-copy>p{font-size:1.0625rem;line-height:1.55;max-width:42ch}
.f-site .f-project-copy strong{font-size:1.0625rem;line-height:1.45;letter-spacing:-.025em;margin-top:32px}
.f-site .f-project-copy small{font-size:.875rem;line-height:1.6;margin:16px 0 24px}
.f-site .f-project-copy .text-link{display:inline-block;min-height:44px;padding:8px 0;line-height:1.5}
.f-work-reel>small{font-size:.75rem;line-height:1.4;letter-spacing:.025em}
.f-site .f-journal{padding-inline:var(--f-pad);padding-block:clamp(78px,7.5vw,128px)}
.f-site .f-journal-slides h2{max-width:23ch;line-height:1.16;letter-spacing:-.045em}
.f-site .f-journal-slides p{font-size:1.0625rem;line-height:1.6;max-width:56ch}
.f-site .f-services{padding-inline:var(--f-pad);padding-block:clamp(90px,8vw,150px);isolation:isolate}
.f-site .f-services-main{position:relative;z-index:2}
.f-site .f-service-list h2{font-size:clamp(40px,6.15vw,112px);line-height:1.15;letter-spacing:-.05em}
.f-site .f-service-list>div{margin-bottom:8px}
.f-service-gallery{right:var(--f-pad);z-index:1;opacity:.7}
.f-service-gallery img{filter:brightness(.64)}
.f-service-gallery>span{font-size:.75rem;line-height:1.4}
.f-site .f-service-records article p{font-size:1.0625rem;line-height:1.55;max-width:28ch}
.f-site .f-service-records article strong{font-size:1rem;line-height:1.5}
.f-service-record-label{font-size:.75rem;line-height:1.5}
.f-site .f-process{padding:clamp(80px,7.4vw,130px) var(--f-pad) clamp(100px,9vw,160px)}
.f-site .f-process>.f-journey-title{margin-bottom:clamp(56px,6.5vw,106px)}
.f-site .f-process article{padding-block:26px;column-gap:clamp(26px,3vw,52px)}
.f-process-step{padding-top:8px;font-size:.75rem;line-height:1.5}
.f-site .f-process-copy{padding:6px 0 0}
.f-site .f-process h3{font-size:clamp(23px,2.25vw,36px);line-height:1.17;margin-bottom:24px;letter-spacing:-.035em}
.f-site .f-process article p{font-size:1.0625rem;line-height:1.55;letter-spacing:-.015em;max-width:37ch}
.f-process-media{aspect-ratio:16/10}
.f-process-media>small{font-size:.75rem;line-height:1.3;left:14px;right:auto;bottom:14px;max-width:calc(100% - 28px)}
.f-process-cursor{font-size:1rem;padding:13px 17px;min-height:44px;display:flex;align-items:center;border-radius:0}
.f-site .f-faq{padding:clamp(80px,8vw,140px) var(--f-pad) 64px;column-gap:26px}
.f-site .f-faq>div>h2{line-height:1.1;letter-spacing:-.045em;max-width:21ch}
.f-site .f-faq summary{font-size:1.1875rem;line-height:1.4;min-height:68px;padding:22px 0;gap:24px}
.f-site .f-faq .f-faq-answer{max-width:64ch}
.f-site .f-faq .f-faq-answer p{font-size:1.0625rem;line-height:1.65;padding:24px 10px 34px 0;letter-spacing:0}
.f-site .f-faq .f-faq-dot{width:16px;height:16px;position:relative;border:0;border-radius:0;background:transparent;transform:none;flex:none;margin-right:8px}
.f-faq-dot:before,.f-faq-dot:after{content:'';position:absolute;left:1px;right:1px;top:7px;height:1.5px;background:currentColor;transition:transform .45s var(--f-ease)}
.f-faq-dot:after{transform:rotate(90deg)}
.f-site .f-faq details[open] .f-faq-dot:after{transform:rotate(0)}
.f-site .f-faq details[open] .f-faq-dot,.f-site .f-faq summary:hover .f-faq-dot{background:transparent;transform:translateX(-10px)}
.f-site .f-contact[data-contact-scene]{min-height:104vw}
.f-contact-backdrop>img{filter:grayscale(.28) brightness(.58)}
.f-contact-scene-content{padding:14vw var(--f-pad) 15.5vw}
.f-contact-proof{margin-top:120px}
/* Footer copy owns its inset; the optical field reaches both viewport edges. */
.f-site .f-footer{padding-inline:0}
.f-site .f-footer-grid{padding-top:36px;padding-bottom:32px}
.f-site .f-footer nav a{line-height:1.3}
.f-site .f-footer-line{padding-top:72px}
.f-motion-control{font:inherit;line-height:1.4;color:inherit;background:none;border:1px solid currentColor;padding:12px 16px;min-height:44px;cursor:pointer}
.f-motion-control[aria-pressed=true]{background:var(--f-ice);color:#171b20;border-color:var(--f-ice)}
.f-site .f-inner-hero,.f-site .f-case-body,.f-site .f-article-reading{column-gap:26px;grid-template-columns:1fr 2.1fr}
.f-site .f-inner-hero>div>p{max-width:56ch;line-height:1.65}
.f-site .f-journal-record{padding-block:64px}
.f-site .f-article-body>section p{max-width:64ch}
.f-site.lang-zh .f-studio-credit,.f-site.lang-zh .f-project-copy>p,.f-site.lang-zh .f-process article p,.f-site.lang-zh .f-faq .f-faq-answer p{line-height:1.8;letter-spacing:0}
@media(max-width:1100px) and (min-width:651px){
 .f-site{--f-pad:24px}.f-site .f-hero-aside p{font-size:1.125rem}.f-site .f-feature-news{padding:16px;max-width:290px}.f-site .f-feature-news>a{grid-template-columns:50px 1fr;padding:12px;gap:12px}.f-site .f-news-mark{height:54px;font-size:38px}.f-site .f-feature-news strong{font-size:.875rem}.f-site .f-work{grid-template-columns:1fr 2.3fr;gap:32px}.f-site .f-work-list article{grid-template-columns:1fr;gap:28px}.f-site .f-project-copy h3{font-size:34px;margin-top:12px}.f-site .f-project-copy strong{margin-top:22px}.f-site .f-service-list h2{font-size:6vw}.f-site .f-process article{grid-template-columns:.6fr 2fr 2.4fr;gap:22px}.f-site .f-process h3{font-size:25px}.f-site .f-process article p{font-size:1rem}.f-process-media{aspect-ratio:4/5}.f-process-cursor{font-size:.875rem}.f-process-media>small{font-size:.75rem}
}
@media(max-width:650px){
 .f-site{--f-pad:16px}.f-site .f-header{inset:14px 16px auto}.f-site .f-header-actions .f-button,.f-language,.f-site .f-header-actions .f-menu-button{font-size:.875rem!important}.f-site .f-header-actions{gap:12px}.f-site .f-hero h1{line-height:1.04;font-size:12vw}.f-site .f-hero-aside p{font-size:1.125rem;line-height:1.45;max-width:100%}.f-site .f-feature{height:430px;margin-top:12px}.f-site .f-feature-news{max-width:calc(100% - 20px);padding:16px;gap:12px}.f-site .f-feature-news>a{grid-template-columns:56px 1fr;gap:14px;padding:13px}.f-site .f-feature-news strong{font-size:.9375rem}.f-site .f-news-mark{height:58px;font-size:40px}.f-site .f-studio{padding:64px 16px 72px;gap:40px}.f-site .f-studio>div>h2{font-size:32px;line-height:1.15}.f-site .f-studio-credit{font-size:1rem;line-height:1.7;margin-top:34px}.f-site .f-practice-strip{padding-top:34px}.f-site .f-practice-strip>div{gap:28px 22px}.f-site .f-gap .scene-sticky>p{max-width:calc(100% - 48px);font-size:1rem;line-height:1.55;bottom:32px}.f-site .f-work{padding:72px 16px 80px;gap:44px}.f-site .f-section-rail>p{max-width:100%;line-height:1.55}.f-site .f-work-list article{gap:26px;margin-bottom:66px}.f-site .f-project-copy h3{font-size:36px;margin:20px 0}.f-site .f-project-copy strong{margin-top:26px}.f-site .f-project-copy>p{font-size:1rem}.f-site .f-journal{padding:70px 16px}.f-site .f-journal-slides h2{font-size:32px;line-height:1.22}.f-site .f-journal-slides p{font-size:1rem;line-height:1.65}.f-site .f-services{padding:72px 16px 80px;gap:44px}.f-site .f-service-list h2{font-size:9.8vw;line-height:1.18}.f-service-gallery{opacity:.85}.f-service-gallery>span{font-size:.75rem;left:5px;right:5px;padding:6px}.f-site .f-process{padding:72px 16px 80px}.f-site .f-process article{grid-template-columns:44px minmax(0,1fr);gap:0 22px;padding:26px 0;margin:0}.f-site .f-process-copy{grid-column:2;padding:0 0 26px}.f-process-step{grid-column:1;grid-row:1;padding-top:6px;font-size:.75rem;white-space:normal}.f-site .f-process h3{font-size:25px;line-height:1.2;margin-bottom:18px}.f-site .f-process article p{font-size:1rem;line-height:1.6;max-width:100%}.f-process-media{grid-column:1/-1;grid-row:2;aspect-ratio:16/10;margin:0}.f-process-cursor{font-size:.875rem;padding:12px 14px}.f-process-media>small{font-size:.75rem;bottom:12px;left:12px;right:auto;max-width:calc(100% - 24px)}.f-site .f-faq{padding:72px 16px 56px;gap:32px}.f-site .f-faq>div>h2{font-size:34px;line-height:1.15}.f-site .f-faq summary{font-size:1.0625rem;line-height:1.45;padding:20px 0;min-height:64px}.f-site .f-faq .f-faq-answer p{font-size:1rem;line-height:1.7}.f-site .f-contact[data-contact-scene]{min-height:1080px}.f-contact-scene-content{padding:120px 16px 130px}.f-contact-proof{margin-top:130px}.f-site .f-contact-compact[data-contact-scene]{min-height:980px}.f-site .f-contact-compact .f-contact-scene-content{padding:110px 16px}.f-site .f-contact-copy>p{font-size:1.125rem;line-height:1.5}.f-site .f-footer-grid>div>a,.f-site .f-footer-grid>div>p{font-size:1rem;line-height:1.6}.f-site .f-liquid>span{font-size:.875rem;line-height:1.6}.f-site.lang-zh .f-hero h1{font-size:12.5vw;line-height:1.17}
}
@media(max-width:360px){.f-site .f-header-actions{gap:8px}.f-site .f-header-actions .f-button{font-size:.75rem!important}.f-site .f-logo{width:70px}.f-site .f-feature-news{padding:12px}.f-site .f-feature-news>a{grid-template-columns:44px 1fr;gap:10px}.f-site .f-news-mark{height:48px;font-size:34px}.f-site .f-feature-news strong{font-size:.875rem}}
.f-site.large-text .f-hero h1{font-size:clamp(42px,9vw,115px);line-height:1.1}.f-site.large-text .f-hero-aside p,.f-site.large-text .f-studio-credit,.f-site.large-text .f-project-copy>p,.f-site.large-text .f-process article p{font-size:1rem;line-height:1.6}.f-site.large-text .f-project-copy h3,.f-site.large-text .f-process h3{font-size:1.5rem}.f-site.large-text .f-service-list h2{font-size:1.5rem}.f-site.large-text .f-process article{display:block}.f-site.large-text .f-contact[data-contact-scene]{min-height:0}.f-site.large-text .f-contact-scene-content{padding-block:70px}.f-site.large-text .f-process-step{font-size:.75rem}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important;transition:none!important;scroll-behavior:auto!important}
.motion-paused .f-optical-particles{opacity:0}.motion-paused .f-hero h1>span,.motion-paused [data-f-type],.motion-paused .f-project-image img,.motion-paused .f-contact-title-line,.motion-paused .f-contact-backdrop>img,.motion-paused .f-footer-inner,.motion-paused .f-liquid{transform:none!important;translate:none!important}
.motion-paused .f-reveal-word{color:var(--f-white)!important}.motion-paused .f-service-gallery{display:none}.motion-paused .f-work-reel,.motion-paused .f-work-shade{display:none}.motion-paused .f-liquid-canvas{display:none}.motion-paused .f-liquid.webgl-ready .f-liquid-fallback{display:flex}
@media(prefers-reduced-motion:reduce){.f-site .f-feature-art img{translate:none!important}.f-faq-dot:before,.f-faq-dot:after{transition:none!important}}

/* Keep large cobalt lettering fully contrasted during its entrance. */
@keyframes f-text-arrive{from{transform:translateY(35px) rotateX(12deg);opacity:1}to{transform:none;opacity:1}}

/* Explicit width prevents aspect-ratio minimum height from overflowing a tablet column. */
.f-site .f-feature{width:100%;max-width:100%;min-width:0}
/* Reading content stays fully opaque throughout the dialog entrance. */
.f-site .f-about[open] .f-about-body{opacity:1;animation:quality-dialog-arrive .65s var(--f-ease) both}
@keyframes quality-dialog-arrive{from{transform:translateY(22px);opacity:1}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.f-site .f-about[open] .f-about-body{animation:none!important}}

/* The mobile menu exposes navigation before the Lab introduction. */
.f-site .f-about-body nav{display:flex;flex-wrap:wrap;gap:16px 34px;margin:0 0 54px;font-size:clamp(24px,2.5vw,40px);line-height:1.3}
.f-site .f-about-body nav a{min-height:44px;padding:8px 0;line-height:1.3}
.f-site .f-about-body>p:first-of-type{font-size:clamp(28px,3vw,44px);line-height:1.25;letter-spacing:-.04em}
.f-site .f-about-body>p:nth-of-type(2){font-size:1.125rem;font-weight:400;line-height:1.65;letter-spacing:0;max-width:65ch}
.f-site .f-about-details{align-items:center;flex-wrap:wrap;gap:24px 44px}
@media(max-width:650px){.f-site .f-about-body{margin:48px 0}.f-site .f-about-body nav{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin-bottom:36px;font-size:1.5rem}.f-site .f-about-body>p:first-of-type{font-size:1.5rem;line-height:1.35}.f-site .f-about-body>p:nth-of-type(2){font-size:1rem;line-height:1.7}.f-site .f-about-details{margin:36px 0}.f-site .f-about-details>span{margin-bottom:18px}.f-site .f-motion-control{margin-top:8px}}
.f-site.large-text .f-about-body nav{display:flex}.f-site.large-text .f-about-body>p{font-size:1rem;line-height:1.6}

/* Tools: names lead; availability stays explicit. */
.f-site #products .f-project-copy h3{margin-top:0}
.f-site .f-product-index .f-journal-record{grid-template-columns:minmax(0,1.9fr) minmax(0,.8fr)}
@media(max-width:650px){.f-site .f-product-index .f-journal-record{display:flex;flex-direction:column}}
