
:root {
  --paper: #f2efe8;
  --paper-2: #e9e4da;
  --paper-3: #ded7cb;
  --ink: #171716;
  --muted: #6b685f;
  --line: rgba(23, 23, 22, 0.18);
  --line-light: rgba(255,255,255,0.2);
  --dark: #191918;
  --dark-2: #242421;
  --white: #fbfaf6;
  --max: 1480px;
  --page: clamp(20px, 4.2vw, 72px);
  --section: clamp(92px, 11vw, 178px);
  --ease: cubic-bezier(.22,.72,.22,1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body { margin:0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; color:var(--ink); background:var(--paper); line-height:1.45; -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; }
button, input, select, textarea { font:inherit; color:inherit; }
button { cursor:pointer; }
::selection { background:var(--ink); color:var(--paper); }
:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.container { width:min(var(--max), calc(100% - (var(--page) * 2))); margin-inline:auto; }
.section { padding-block:var(--section); }
.section-small { padding-block:clamp(60px,7vw,110px); }
.eyebrow { margin:0 0 20px; font-size:11px; line-height:1; letter-spacing:.19em; text-transform:uppercase; font-weight:600; }
.display { margin:0; font-size:clamp(48px, 8.1vw, 132px); line-height:.88; letter-spacing:-.055em; font-weight:500; }
.display-medium { margin:0; font-size:clamp(42px,6vw,96px); line-height:.94; letter-spacing:-.048em; font-weight:500; }
.heading { margin:0; font-size:clamp(34px,4vw,68px); line-height:1; letter-spacing:-.04em; font-weight:500; }
.heading-small { margin:0; font-size:clamp(25px,2.4vw,42px); line-height:1.06; letter-spacing:-.03em; font-weight:500; }
.lead { margin:0; max-width:760px; font-size:clamp(20px,2.1vw,34px); line-height:1.25; letter-spacing:-.025em; font-weight:400; }
.copy { margin:0; max-width:640px; font-size:clamp(15px,1.15vw,18px); line-height:1.65; color:var(--muted); }
.copy-light { color:rgba(255,255,255,.7); }
.meta { font-size:12px; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); }
.rule { height:1px; background:var(--line); }
.text-link { display:inline-flex; align-items:center; gap:18px; padding-bottom:8px; border-bottom:1px solid currentColor; font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.text-link::after { content:"↗"; font-size:15px; transition:transform .3s var(--ease); }
.text-link:hover::after { transform:translate(4px,-4px); }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 22px; border:1px solid var(--ink); background:transparent; font-size:11px; letter-spacing:.15em; text-transform:uppercase; transition:.3s var(--ease); }
.btn:hover { background:var(--ink); color:var(--paper); }
.btn-dark { background:var(--ink); color:var(--paper); }
.btn-dark:hover { background:transparent; color:var(--ink); }
.btn-light { border-color:rgba(255,255,255,.7); color:white; }
.btn-light:hover { background:white; color:var(--ink); }
.button-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in-view { opacity:1; transform:none; }

/* Header */
.site-header { position:fixed; inset:0 0 auto; z-index:100; height:78px; display:flex; align-items:center; color:var(--ink); transition:background .35s, color .35s, border-color .35s; border-bottom:1px solid transparent; }
.site-header.on-hero { color:white; }
.site-header.scrolled, .site-header.force-solid { color:var(--ink); background:rgba(242,239,232,.94); backdrop-filter:blur(18px); border-color:var(--line); }
.header-inner { width:100%; padding-inline:var(--page); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:24px; }
.logo { justify-self:start; display:inline-flex; align-items:center; line-height:1; }
.logo-image { width:126px; height:auto; }
.logo-image-light { display:none; }
.site-header.on-hero:not(.scrolled) .logo-image-dark { display:none; }
.site-header.on-hero:not(.scrolled) .logo-image-light { display:block; }
.main-nav { display:flex; align-items:center; gap:clamp(18px,2.1vw,38px); }
.main-nav a, .utility-nav a { font-size:10px; letter-spacing:.14em; text-transform:uppercase; white-space:nowrap; }
.main-nav a { position:relative; padding-block:8px; }
.main-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:3px; height:1px; background:currentColor; transition:right .3s var(--ease); }
.main-nav a:hover::after, .main-nav a.active::after { right:0; }
.utility-nav { justify-self:end; display:flex; align-items:center; gap:18px; }
.utility-nav .cta { border-bottom:1px solid currentColor; padding-bottom:4px; }
.lang { opacity:.72; }
.menu-toggle { display:none; background:none; border:0; width:42px; height:42px; padding:10px; color:inherit; }
.menu-toggle span { display:block; height:1px; background:currentColor; margin:6px 0; transition:.3s; }
.mobile-menu { position:fixed; inset:0; z-index:90; background:var(--dark); color:white; visibility:hidden; opacity:0; transition:.35s var(--ease); padding:110px var(--page) 40px; overflow:auto; }
.mobile-menu.open { visibility:visible; opacity:1; }
.mobile-menu nav { display:flex; flex-direction:column; }
.mobile-menu nav a { font-size:clamp(34px,8vw,64px); letter-spacing:-.035em; line-height:1.14; padding:9px 0; border-bottom:1px solid var(--line-light); }
.mobile-menu .mobile-actions { margin-top:40px; display:grid; gap:12px; }

/* Hero */
.hero { min-height:100svh; position:relative; display:flex; align-items:flex-end; color:white; background:var(--dark); overflow:hidden; }
.hero-media { position:absolute; inset:0; }
.hero-media img { height:100%; object-fit:cover; filter:saturate(.72) contrast(1.02); transform:scale(1.015); animation:heroScale 18s ease-out both; }
@keyframes heroScale { from{ transform:scale(1.08); } to{ transform:scale(1.015); } }
.hero::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.04) 30%, rgba(0,0,0,.66) 100%); }
.hero-content { position:relative; z-index:2; width:100%; padding:160px var(--page) clamp(48px,7vw,92px); }
.hero-grid { max-width:var(--max); margin:auto; display:grid; grid-template-columns:minmax(0,1.8fr) minmax(260px,.7fr); align-items:end; gap:50px; }
.hero h1 { max-width:1120px; }
.hero-side { justify-self:end; max-width:360px; }
.hero-side p { margin:0 0 28px; font-size:16px; line-height:1.55; color:rgba(255,255,255,.8); }
.scroll-cue { position:absolute; right:var(--page); bottom:28px; z-index:3; writing-mode:vertical-rl; font-size:9px; letter-spacing:.2em; text-transform:uppercase; opacity:.7; }

/* Intro */
.intro-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(50px,10vw,170px); align-items:start; }
.intro-copy { padding-top:8px; }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); margin-top:clamp(70px,9vw,130px); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.metric { padding:28px 22px 32px 0; min-height:150px; border-right:1px solid var(--line); }
.metric:last-child { border-right:0; padding-left:22px; }
.metric:not(:first-child) { padding-left:22px; }
.metric strong { display:block; font-size:clamp(34px,3.8vw,62px); line-height:1; letter-spacing:-.045em; font-weight:500; }
.metric span { display:block; margin-top:24px; font-size:10px; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); }

/* Collections */
.section-head { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:40px; margin-bottom:clamp(42px,6vw,86px); }
.section-head .copy { justify-self:end; }
.collection-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:14px; }
.collection-card { position:relative; overflow:hidden; min-height:520px; background:var(--paper-2); color:white; }
.collection-card:nth-child(1) { grid-column:span 5; }
.collection-card:nth-child(2) { grid-column:span 7; }
.collection-card:nth-child(3) { grid-column:span 4; min-height:430px; }
.collection-card:nth-child(4) { grid-column:span 4; min-height:430px; }
.collection-card:nth-child(5) { grid-column:span 4; min-height:430px; }
.collection-card img { position:absolute; inset:0; height:100%; object-fit:cover; transition:transform 1s var(--ease), filter .6s; }
.collection-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.62)); }
.collection-card:hover img { transform:scale(1.045); filter:saturate(.85); }
.collection-info { position:absolute; inset:auto 28px 26px; z-index:2; display:flex; align-items:end; justify-content:space-between; gap:20px; }
.collection-title { font-size:clamp(28px,3vw,46px); line-height:1; letter-spacing:-.04em; font-weight:500; }
.collection-desc { max-width:260px; margin-top:10px; font-size:13px; color:rgba(255,255,255,.76); }
.collection-arrow { font-size:24px; transition:transform .3s var(--ease); }
.collection-card:hover .collection-arrow { transform:translate(6px,-6px); }

/* Process */
.dark-section { background:var(--dark); color:white; }
.process-top { display:grid; grid-template-columns:1fr .7fr; gap:70px; align-items:end; }
.process-top .copy { justify-self:end; }
.process-scroll { display:flex; gap:0; overflow-x:auto; margin-top:80px; padding-bottom:18px; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.35) transparent; }
.process-step { flex:0 0 clamp(230px,23vw,360px); min-height:320px; padding:26px 30px 34px 0; border-top:1px solid var(--line-light); border-right:1px solid var(--line-light); }
.process-step:not(:first-child) { padding-left:28px; }
.process-step .num { font-size:11px; letter-spacing:.15em; opacity:.45; }
.process-step h3 { margin:110px 0 18px; font-size:clamp(25px,2.4vw,38px); letter-spacing:-.035em; font-weight:500; }
.process-step p { margin:0; max-width:250px; font-size:14px; line-height:1.6; color:rgba(255,255,255,.58); }

/* Development */
.development-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(50px,10vw,170px); align-items:start; }
.parameter-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); }
.parameter { min-height:132px; padding:22px 18px 30px 0; border-bottom:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; }
.parameter:nth-child(odd) { border-right:1px solid var(--line); }
.parameter:nth-child(even) { padding-left:22px; }
.parameter .index { font-size:10px; letter-spacing:.14em; color:var(--muted); }
.parameter strong { font-size:clamp(20px,2vw,31px); letter-spacing:-.03em; font-weight:500; }

/* Feature */
.feature-split { display:grid; grid-template-columns:1.1fr .9fr; min-height:760px; }
.feature-media { min-height:600px; overflow:hidden; background:var(--paper-2); }
.feature-media img { height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.feature-split:hover .feature-media img { transform:scale(1.035); }
.feature-copy { background:var(--paper-2); padding:clamp(50px,8vw,120px); display:flex; flex-direction:column; justify-content:space-between; }
.feature-copy p { max-width:500px; }
.feature-specs { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; padding-top:40px; border-top:1px solid var(--line); }
.feature-specs strong { display:block; font-size:22px; font-weight:500; }
.feature-specs span { font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }

/* Projects */
.project-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:14px; }
.project-card { grid-column:span 6; position:relative; background:var(--paper-2); overflow:hidden; }
.project-card:first-child { grid-column:span 7; }
.project-card:nth-child(2) { grid-column:span 5; }
.project-card .project-image { aspect-ratio:4/3; overflow:hidden; background:var(--paper-3); position:relative; }
.project-card:first-child .project-image { aspect-ratio:1.42/1; }
.project-card:nth-child(2) .project-image { aspect-ratio:1/1; }
.project-card img { height:100%; object-fit:cover; transition:transform .8s var(--ease), filter .5s; }
.project-card:hover img { transform:scale(1.035); filter:saturate(.75); }
.project-caption { padding:20px 0 38px; display:grid; grid-template-columns:1fr auto; gap:20px; border-bottom:1px solid var(--line); }
.project-caption h3 { margin:0 0 6px; font-size:24px; letter-spacing:-.025em; font-weight:500; }
.project-caption p { margin:0; font-size:11px; text-transform:uppercase; letter-spacing:.13em; color:var(--muted); }
.project-status { font-size:10px; text-transform:uppercase; letter-spacing:.13em; color:var(--muted); text-align:right; }
.placeholder-image { height:100%; display:flex; align-items:flex-end; padding:28px; background:linear-gradient(135deg, var(--paper-3), #c9c1b4); color:var(--ink); }
.placeholder-image span { font-size:clamp(28px,4vw,58px); line-height:1; letter-spacing:-.04em; }

/* Clients */
.client-list { margin-top:60px; border-top:1px solid var(--line); }
.client-row { min-height:88px; display:grid; grid-template-columns:140px 1fr; align-items:center; border-bottom:1px solid var(--line); }
.client-row span { font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.client-names { display:flex; flex-wrap:wrap; gap:16px clamp(24px,4vw,68px); align-items:center; }
.client-names strong { font-size:clamp(21px,2.5vw,38px); font-weight:500; letter-spacing:-.025em; }

/* CTA */
.final-cta { position:relative; min-height:76svh; display:flex; align-items:center; color:white; overflow:hidden; background:var(--dark); }
.final-cta img { position:absolute; inset:0; height:100%; object-fit:cover; opacity:.48; filter:saturate(.55); }
.final-cta::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.08)); }
.final-cta .container { position:relative; z-index:2; }
.final-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:42px; }

/* Footer */
.site-footer { background:var(--dark); color:white; padding:72px var(--page) 34px; }
.footer-grid { max-width:var(--max); margin:auto; display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:60px; }
.footer-brand .logo { margin-bottom:34px; }
.footer-brand .logo-image-dark { display:none; }
.footer-brand .logo-image-light { display:block; }
.footer-brand p { margin:0; max-width:360px; font-size:14px; line-height:1.65; color:rgba(255,255,255,.56); }
.footer-col h4 { margin:0 0 25px; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.45); }
.footer-col a, .footer-col p { display:block; margin:0 0 11px; font-size:13px; color:rgba(255,255,255,.76); }
.footer-col a:hover { color:white; }
.footer-bottom { max-width:var(--max); margin:70px auto 0; padding-top:20px; border-top:1px solid var(--line-light); display:flex; justify-content:space-between; gap:30px; font-size:10px; letter-spacing:.11em; text-transform:uppercase; color:rgba(255,255,255,.4); }

/* Inner pages */
.page-hero { padding:clamp(160px,19vw,270px) 0 clamp(80px,11vw,150px); border-bottom:1px solid var(--line); }
.page-hero-grid { display:grid; grid-template-columns:1.45fr .55fr; gap:80px; align-items:end; }
.page-hero .copy { justify-self:end; }
.page-hero-dark { background:var(--dark); color:white; border:0; }
.page-hero-dark .copy { color:rgba(255,255,255,.65); }
.page-hero-image { min-height:80svh; position:relative; color:white; display:flex; align-items:flex-end; overflow:hidden; }
.page-hero-image img { position:absolute; inset:0; height:100%; object-fit:cover; }
.page-hero-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.7)); }
.page-hero-image .container { position:relative; z-index:1; padding-bottom:70px; }
.breadcrumb { margin-bottom:26px; font-size:10px; letter-spacing:.16em; text-transform:uppercase; opacity:.65; }

/* Material library */
.library-layout { display:grid; grid-template-columns:250px 1fr; gap:60px; align-items:start; }
.filters { position:sticky; top:104px; border-top:1px solid var(--line); }
.filter-group { padding:22px 0; border-bottom:1px solid var(--line); }
.filter-group label { display:block; margin-bottom:12px; font-size:10px; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); }
.filter-group select { width:100%; border:0; border-bottom:1px solid var(--ink); background:transparent; padding:8px 26px 8px 0; border-radius:0; }
.filter-reset { margin-top:24px; border:0; background:none; padding:0 0 6px; border-bottom:1px solid currentColor; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.library-top { display:flex; justify-content:space-between; gap:30px; margin-bottom:26px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.material-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:38px 16px; }
.material-card { min-width:0; }
.material-image { position:relative; aspect-ratio:.78/1; overflow:hidden; background:#ebe8e2; }
.material-image img { height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.material-card:hover img { transform:scale(1.035); }
.material-badge { position:absolute; top:12px; left:12px; background:rgba(242,239,232,.9); backdrop-filter:blur(8px); padding:7px 10px; font-size:9px; letter-spacing:.13em; text-transform:uppercase; }
.material-info { padding:16px 0 24px; border-bottom:1px solid var(--line); }
.material-info h3 { margin:0; font-size:21px; font-weight:500; letter-spacing:-.025em; }
.material-info .code { margin:7px 0 12px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.material-meta { display:flex; justify-content:space-between; gap:12px; font-size:11px; color:var(--muted); }
.empty-state { display:none; grid-column:1/-1; padding:70px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.draft-note { padding:14px 18px; background:var(--paper-2); font-size:12px; color:var(--muted); margin-bottom:38px; }

/* Material detail */
.material-detail-hero { padding:128px var(--page) 70px; min-height:100svh; display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(45px,7vw,110px); align-items:center; }
.material-detail-image { height:calc(100svh - 150px); min-height:620px; background:#e6e2dc; overflow:hidden; }
.material-detail-image img { height:100%; object-fit:cover; }
.material-detail-copy { max-width:570px; }
.material-detail-copy h1 { margin:8px 0 20px; font-size:clamp(48px,6vw,96px); line-height:.93; letter-spacing:-.055em; font-weight:500; }
.material-detail-copy .description { margin:30px 0; color:var(--muted); font-size:16px; line-height:1.7; }
.spec-list { border-top:1px solid var(--line); }
.spec-row { display:grid; grid-template-columns:150px 1fr; padding:15px 0; border-bottom:1px solid var(--line); font-size:13px; }
.spec-row span:first-child { color:var(--muted); }
.detail-section-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(50px,10vw,160px); }
.format-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); }
.format-item { min-height:84px; padding:18px 0; border-bottom:1px solid var(--line); display:flex; align-items:flex-end; }
.format-item:nth-child(odd) { border-right:1px solid var(--line); }
.format-item:nth-child(even) { padding-left:20px; }

/* Capability page */
.capability-block { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(50px,10vw,160px); padding-block:clamp(80px,10vw,150px); border-bottom:1px solid var(--line); }
.capability-block.reverse { grid-template-columns:1.3fr .7fr; }
.capability-block.reverse .cap-label { order:2; }
.capability-block.reverse .cap-content { order:1; }
.cap-label { position:sticky; top:110px; align-self:start; }
.cap-label .num { font-size:10px; letter-spacing:.16em; color:var(--muted); }
.cap-label h2 { margin:18px 0 0; font-size:clamp(30px,3.2vw,54px); line-height:1; letter-spacing:-.04em; font-weight:500; }
.cap-content .lead { max-width:880px; }
.cap-list { margin-top:55px; display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); }
.cap-list div { padding:18px 14px 24px 0; border-bottom:1px solid var(--line); }
.cap-list div:nth-child(odd) { border-right:1px solid var(--line); }
.cap-list div:nth-child(even) { padding-left:20px; }
.cap-list strong { display:block; font-size:17px; font-weight:500; }
.cap-list span { display:block; margin-top:6px; font-size:12px; color:var(--muted); }
.world-regions { margin-top:60px; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.region { min-height:210px; padding:22px; background:var(--paper-2); display:flex; flex-direction:column; justify-content:space-between; }
.region .region-index { font-size:10px; letter-spacing:.15em; color:var(--muted); }
.region strong { font-size:28px; font-weight:500; letter-spacing:-.03em; }

/* Projects page */
.projects-filter { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:50px; }
.filter-button { border:1px solid var(--line); background:transparent; padding:10px 14px; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.filter-button.active, .filter-button:hover { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.project-list-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:70px 16px; }
.project-list-card .project-image { aspect-ratio:1.45/1; overflow:hidden; background:var(--paper-2); }
.project-list-card img { height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.project-list-card:hover img { transform:scale(1.035); }
.project-list-card .project-caption { padding-bottom:25px; }
.project-detail-intro { display:grid; grid-template-columns:.75fr 1.25fr; gap:100px; }
.project-facts { border-top:1px solid var(--line); }
.project-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:70px; }
.project-gallery img { width:100%; aspect-ratio:4/3; object-fit:cover; min-height:0; }
.project-gallery img:first-child { grid-column:1/-1; aspect-ratio:16/9; }

/* Company */
.company-statement { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(60px,10vw,160px); }
.timeline { margin-top:90px; border-top:1px solid var(--line); }
.timeline-row { display:grid; grid-template-columns:180px 1fr; gap:50px; padding:30px 0 34px; border-bottom:1px solid var(--line); }
.timeline-row strong { font-size:28px; font-weight:500; }
.timeline-row p { margin:0; max-width:780px; color:var(--muted); line-height:1.65; }
.quality-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.quality-card { min-height:300px; background:var(--paper-2); padding:28px; display:flex; flex-direction:column; justify-content:space-between; }
.quality-card .num { font-size:10px; letter-spacing:.15em; color:var(--muted); }
.quality-card h3 { margin:0 0 14px; font-size:28px; font-weight:500; letter-spacing:-.03em; }
.quality-card p { margin:0; color:var(--muted); font-size:14px; line-height:1.6; }

/* ALPI */
.alpi-hero { min-height:100svh; padding:140px var(--page) 80px; display:flex; align-items:flex-end; background:#0b0b0b; color:white; }
.alpi-word { font-size:clamp(100px,22vw,360px); line-height:.7; letter-spacing:-.07em; font-weight:500; opacity:.98; }
.alpi-intro { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(50px,10vw,160px); }
.alpi-note { padding:20px; border:1px solid var(--line); font-size:12px; color:var(--muted); }
.alpi-cases { background:var(--paper-2); }
.alpi-case-lead { margin:0 0 14px; overflow:hidden; background:var(--paper-3); }
.alpi-case-lead img { width:100%; aspect-ratio:16/9; object-fit:cover; transition:transform .7s var(--ease); }
.alpi-case-masonry { columns:3; column-gap:14px; }
.alpi-case-item { margin:0 0 14px; break-inside:avoid; overflow:hidden; background:var(--paper-3); }
.alpi-case-item img { width:100%; height:auto; transition:transform .7s var(--ease); }
.alpi-case-lead:hover img, .alpi-case-item:hover img { transform:scale(1.02); }

/* Resources */
.resource-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.resource-card { min-height:360px; padding:28px; background:var(--paper-2); display:flex; flex-direction:column; justify-content:space-between; transition:.3s var(--ease); }
.resource-card:hover { background:var(--paper-3); }
.resource-card .resource-icon { font-size:34px; }
.resource-card h2 { margin:0 0 16px; font-size:30px; font-weight:500; letter-spacing:-.035em; }
.resource-card p { margin:0; color:var(--muted); font-size:14px; line-height:1.6; }
.resource-card .status { margin-top:28px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.catalog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.catalog-card { min-height:320px; padding:28px; display:flex; flex-direction:column; justify-content:space-between; border:1px solid var(--line); background:var(--paper); transition:transform .3s var(--ease), background .3s var(--ease); }
.catalog-card:hover { transform:translateY(-4px); background:white; }
.catalog-index { font-size:11px; letter-spacing:.16em; color:var(--muted); }
.catalog-card h3 { margin:0 0 16px; font-size:clamp(28px,3vw,46px); line-height:1; letter-spacing:-.04em; font-weight:500; }
.catalog-card p { margin:0; max-width:440px; color:var(--muted); font-size:14px; line-height:1.6; }
.catalog-meta { display:flex; justify-content:space-between; gap:20px; padding-top:22px; border-top:1px solid var(--line); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.catalog-meta strong { color:var(--ink); font-weight:500; white-space:nowrap; }
.fsc-resource { display:grid; grid-template-columns:minmax(180px,340px) 1fr; gap:clamp(50px,9vw,140px); align-items:center; padding-bottom:clamp(70px,9vw,130px); }
.fsc-mark { aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; padding:clamp(34px,5vw,74px); background:white; border:1px solid var(--line); }
.fsc-mark img { width:100%; height:auto; image-rendering:auto; }
.doc-list { margin-top:60px; border-top:1px solid var(--line); }
.doc-row { display:grid; grid-template-columns:1fr 1fr auto; gap:30px; padding:22px 0; border-bottom:1px solid var(--line); align-items:center; }
.doc-row span { font-size:12px; color:var(--muted); }
.doc-row strong { font-weight:500; }

/* Forms / Contact */
.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(60px,10vw,160px); }
.contact-details { position:sticky; top:115px; align-self:start; }
.contact-details h2 { margin:0 0 32px; font-size:clamp(34px,4vw,62px); line-height:1; letter-spacing:-.045em; font-weight:500; }
.contact-item { padding:20px 0; border-top:1px solid var(--line); }
.contact-item:last-child { border-bottom:1px solid var(--line); }
.contact-item span { display:block; margin-bottom:7px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.contact-item p, .contact-item a { margin:0; font-size:15px; line-height:1.6; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:26px 18px; }
.field { display:flex; flex-direction:column; gap:10px; }
.field.full { grid-column:1/-1; }
.field label, .fieldset legend { font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.field input, .field select, .field textarea { width:100%; padding:13px 0; border:0; border-bottom:1px solid var(--ink); border-radius:0; background:transparent; }
.field textarea { min-height:130px; resize:vertical; }
.field input[type=file] { padding:13px; border:1px dashed var(--line); }
.fieldset { grid-column:1/-1; border:0; padding:0; margin:0; }
.checkbox-grid { margin-top:14px; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.check { display:flex; align-items:center; gap:9px; font-size:13px; }
.check input { accent-color:var(--ink); }
.form-note { grid-column:1/-1; margin:0; font-size:12px; color:var(--muted); }
.form-message { display:none; grid-column:1/-1; padding:16px; background:var(--paper-2); font-size:13px; }
.form-message.show { display:block; }

/* Chinese homepage */
.cn-copy { font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif; }

/* 404 */
.error-page { min-height:100svh; display:flex; align-items:center; }
.error-code { font-size:clamp(110px,24vw,360px); line-height:.7; letter-spacing:-.08em; }

/* Responsive */
@media (max-width: 1180px) {
  .main-nav { display:none; }
  .menu-toggle { display:block; }
  .header-inner { grid-template-columns:1fr auto; }
  .utility-nav { display:none; }
  .menu-toggle { justify-self:end; }
  .hero-grid { grid-template-columns:1fr; }
  .hero-side { justify-self:start; max-width:540px; }
  .collection-card:nth-child(n) { grid-column:span 6; }
  .collection-card:nth-child(5) { grid-column:span 12; }
  .material-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1.3fr repeat(2,1fr); }
  .footer-col:last-child { grid-column:2; }
}
@media (max-width: 900px) {
  .intro-grid, .section-head, .process-top, .development-grid, .page-hero-grid, .detail-section-grid, .capability-block, .capability-block.reverse, .company-statement, .alpi-intro, .contact-grid, .project-detail-intro { grid-template-columns:1fr; gap:45px; }
  .section-head .copy, .process-top .copy, .page-hero .copy { justify-self:start; }
  .metrics { grid-template-columns:repeat(2,1fr); }
  .metric:nth-child(2) { border-right:0; }
  .metric:nth-child(3), .metric:nth-child(4) { border-top:1px solid var(--line); }
  .metric:nth-child(3) { padding-left:0; }
  .feature-split { grid-template-columns:1fr; }
  .feature-media { min-height:70svh; }
  .feature-copy { min-height:560px; }
  .library-layout { grid-template-columns:1fr; }
  .filters { position:static; display:grid; grid-template-columns:repeat(4,1fr); gap:14px; border:0; }
  .filter-group { border-top:1px solid var(--line); }
  .material-detail-hero { grid-template-columns:1fr; padding-top:110px; }
  .material-detail-image { height:70svh; min-height:500px; }
  .cap-label, .contact-details { position:static; }
  .capability-block.reverse .cap-label, .capability-block.reverse .cap-content { order:initial; }
  .world-regions { grid-template-columns:repeat(2,1fr); }
  .quality-grid, .resource-grid { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
}
@media (max-width: 650px) {
  :root { --page:20px; }
  .site-header { height:68px; }
  .hero-content { padding-top:120px; }
  .display { font-size:clamp(50px,17vw,82px); }
  .hero-side { display:none; }
  .scroll-cue { display:none; }
  .metrics { grid-template-columns:1fr; }
  .metric, .metric:not(:first-child), .metric:last-child { border-right:0; border-top:1px solid var(--line); padding-left:0; min-height:120px; }
  .metric:first-child { border-top:0; }
  .collection-card:nth-child(n) { grid-column:1/-1; min-height:72svh; }
  .collection-info { inset:auto 20px 20px; }
  .process-step { flex-basis:78vw; }
  .parameter-grid { grid-template-columns:1fr; }
  .parameter:nth-child(n) { border-right:0; padding-left:0; }
  .feature-copy { padding:48px 22px; }
  .feature-specs { grid-template-columns:1fr; }
  .project-card:nth-child(n) { grid-column:1/-1; }
  .client-row { grid-template-columns:1fr; padding:22px 0; gap:16px; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-brand, .footer-col:last-child { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
  .page-hero { padding-top:140px; }
  .filters { grid-template-columns:1fr 1fr; }
  .material-grid { grid-template-columns:1fr; }
  .material-detail-hero { padding-inline:20px; }
  .material-detail-image { height:62svh; min-height:430px; }
  .format-grid, .cap-list { grid-template-columns:1fr; }
  .format-item:nth-child(n), .cap-list div:nth-child(n) { border-right:0; padding-left:0; }
  .world-regions { grid-template-columns:1fr; }
  .project-list-grid, .project-gallery { grid-template-columns:1fr; }
  .project-gallery img:first-child { grid-column:auto; aspect-ratio:4/3; }
  .timeline-row { grid-template-columns:1fr; gap:12px; }
  .quality-grid, .resource-grid, .catalog-grid, .fsc-resource { grid-template-columns:1fr; }
  .doc-row { grid-template-columns:1fr; gap:8px; }
  .form-grid { grid-template-columns:1fr; }
  .field.full, .fieldset, .form-note, .form-message { grid-column:auto; }
  .checkbox-grid { grid-template-columns:1fr 1fr; }
  .alpi-word { font-size:30vw; }
  .alpi-case-masonry { columns:2; }
}
@media (max-width: 560px) {
  .alpi-case-masonry { columns:1; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal { opacity:1; transform:none; }
}
