:root{--color-bg: #f0f3f1;--color-surface: #ffffff;--color-panel: #f4f4f4;--color-ink: #000000;--color-ink-soft: #2b2b2b;--color-muted: #6a737b;--color-line: #d0d5d2;--color-accent: #37b4fb;--color-accent-hover: #1c8fd9;--color-mark: #de1a22;--font-display: "Playfair Display", "Times New Roman", serif;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--page-max: 1440px;--gutter: clamp(1.25rem, 5vw, 6.5rem);--section-gap: clamp(4.5rem, 10vw, 9.5rem);--space-xs: .4rem;--space-sm: .75rem;--space-md: 1.25rem;--space-lg: 2rem;--space-xl: 3.5rem;--header-h: 72px;--subnav-h: 52px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--subnav-h))}body{margin:0;min-height:100vh;font-family:var(--font-sans);font-size:1rem;line-height:1.6;color:var(--color-ink);background:var(--color-bg);-webkit-font-smoothing:antialiased}img,svg,video{display:block;max-width:100%}a{color:inherit;text-underline-offset:3px}.wrap{width:100%;max-width:var(--page-max);margin:0 auto;padding-inline:var(--gutter)}.section{padding-block:var(--section-gap)}.section--tight{padding-block:clamp(2.5rem,6vw,5rem)}.grid12{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.5rem,3vw,3rem);align-items:start}.col-head{grid-column:1 / span 6}.col-body{grid-column:7 / span 5}.col-full{grid-column:1 / -1}@media(max-width:900px){.col-head,.col-body{grid-column:1 / -1}}.bleed-left{margin-left:calc(-1 * var(--gutter));padding-left:var(--gutter)}.bleed-right{margin-right:calc(-1 * var(--gutter));padding-right:var(--gutter)}.skip-link{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.skip-link:focus{left:var(--space-md);top:var(--space-md);width:auto;height:auto;padding:var(--space-sm) var(--space-md);background:var(--color-surface);border:1px solid var(--color-line);z-index:200}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}h1,h2,h3,.display{font-family:var(--font-display);font-weight:400;letter-spacing:.01em;text-wrap:balance}h1{font-size:clamp(2.6rem,6.2vw,4.25rem);line-height:1.08;margin:0}h2{font-size:clamp(2rem,4.4vw,3.1rem);line-height:1.12;margin:0 0 var(--space-md)}h3{font-size:clamp(1.15rem,2vw,1.4rem);line-height:1.25;margin:0 0 var(--space-sm)}p{margin:0 0 1.1em}p:last-child{margin-bottom:0}.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);margin:0 0 clamp(1.25rem,3vw,2rem)}.lede{font-size:1.05rem;line-height:1.7;color:var(--color-ink-soft);max-width:46ch}.prose{font-size:.95rem;line-height:1.75;color:var(--color-muted);max-width:52ch}.prose a,.lede a{color:var(--color-accent);text-decoration-thickness:1px}.prose a:hover,.lede a:hover{color:var(--color-mark)}.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 #37b4fb80;animation:pulse-ring 2.6s ease-out infinite}@keyframes pulse-ring{0%{box-shadow:0 0 #37b4fb73}70%{box-shadow:0 0 0 9px #37b4fb00}to{box-shadow:0 0 #37b4fb00}}.site-header{position:sticky;top:0;z-index:100;background:var(--color-ink-soft);color:#fff}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);min-height:var(--header-h)}.brand{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-display);font-size:1.2rem;letter-spacing:.01em;text-decoration:none;color:var(--color-ink)}.brand__logo{display:block;height:41px;width:auto;object-fit:contain}.brand__sub{font-family:var(--font-sans);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted)}.header-tools{display:flex;align-items:center;gap:clamp(1rem,2.5vw,2.25rem)}.util-nav{display:flex;gap:clamp(1rem,2vw,2rem);font-size:.85rem}.util-nav a{color:#ffffffd9;text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}.util-nav a:hover,.util-nav a[aria-current=page]{color:#fff;border-color:#fff}@media(max-width:720px){.util-nav{display:none}}.lang-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;letter-spacing:.08em}.lang-toggle__opt{color:#fff9;text-decoration:none;padding:.15rem .1rem;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}.lang-toggle__opt:hover{color:#fff}.lang-toggle__opt.is-active{color:var(--color-accent);border-color:var(--color-accent)}.lang-toggle__sep{color:#ffffff4d}.subnav{position:sticky;top:var(--header-h);z-index:99;background:var(--color-surface);border-bottom:1px solid var(--color-line)}.subnav__inner{display:flex;align-items:stretch;gap:clamp(1rem,2.5vw,2.5rem);min-height:var(--subnav-h);overflow-x:auto;scrollbar-width:none}.subnav__inner::-webkit-scrollbar{display:none}.subnav a{display:inline-flex;align-items:center;white-space:nowrap;font-size:.85rem;color:var(--color-ink-soft);text-decoration:none;border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease}.subnav a:hover{color:var(--color-accent)}.subnav a[aria-current=page]{border-color:var(--color-ink)}.hero{padding-top:clamp(3rem,8vw,6.5rem);padding-bottom:clamp(2rem,5vw,3.5rem)}.hero h1{max-width:28ch}.hero__lede{margin-top:clamp(1.5rem,3vw,2.25rem)}.hero .col-body{grid-column:5 / span 6}.hero--lede-left .col-body{grid-column:1 / span 7}@media(max-width:900px){.hero .col-body{grid-column:1 / -1}}.hero-media{margin-top:clamp(2rem,5vw,3.5rem);padding-left:max(var(--gutter),calc(50% - var(--page-max) / 2 + var(--gutter)));padding-right:max(0px,calc(50% - var(--page-max) / 2 + var(--gutter)))}.hero-media .media-frame{aspect-ratio:5 / 4;max-height:min(72vh,720px)}.media-frame{position:relative;overflow:hidden;background:var(--color-ink-soft);aspect-ratio:16 / 7}.media-frame>svg,.media-frame>img{width:100%;height:100%;object-fit:cover}.media-frame--tall{aspect-ratio:4 / 3}.media-frame--natural,.hero-media .media-frame--natural{aspect-ratio:auto;max-height:none;height:auto;background:transparent}.media-frame--natural>img{display:block;width:80%;height:auto;margin-inline:auto;object-fit:contain}.media-frame{margin:0}.media-frame__caption{position:absolute;left:clamp(1rem,2.5vw,2rem);bottom:clamp(1rem,2.5vw,2rem);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#ffffffbf}.accent-bar{position:absolute;top:12%;right:0;width:6px;height:42%;background:var(--color-mark)}.products-section{padding-block:var(--section-gap)}.products-section__lede{margin-top:clamp(1rem,2.5vw,1.5rem);max-width:52ch}.products{list-style:none;margin:clamp(2.5rem,6vw,4rem) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:clamp(1rem,2.5vw,1.75rem)}.product{position:relative;display:flex;flex-direction:column;gap:.85rem;background:var(--color-surface);padding:clamp(1.35rem,2.5vw,1.85rem);border-top:3px solid var(--color-accent);min-width:0}.product:not(:last-child):after{content:"";position:absolute;top:1.65rem;right:calc(-.5*clamp(1rem,2.5vw,1.75rem) - .5px);width:clamp(1rem,2.5vw,1.75rem);height:1px;background:var(--color-line);pointer-events:none}.product:not(:last-child):before{content:"";position:absolute;top:1.45rem;right:calc(-.5*clamp(1rem,2.5vw,1.75rem) - .2rem);width:.45rem;height:.45rem;border-right:1.5px solid var(--color-accent);border-top:1.5px solid var(--color-accent);transform:rotate(45deg);pointer-events:none;z-index:1}.product__step{margin:0;font-family:var(--font-display);font-size:1.75rem;line-height:1;color:var(--color-accent)}.product__name{margin:0;font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.25}.product__summary{margin:0;font-size:.9rem;line-height:1.6;color:var(--color-ink-soft)}.product__points{list-style:none;margin:.25rem 0 0;padding:0;display:flex;flex-direction:column;gap:.55rem;flex:1}.product__points li{position:relative;padding-left:1rem;font-size:.82rem;line-height:1.5;color:var(--color-muted)}.product__points li:before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--color-accent)}.product__meta{margin:.75rem 0 0;padding-top:1rem;border-top:1px solid var(--color-line);font-size:.7rem;letter-spacing:.03em;line-height:1.45;color:var(--color-muted)}@media(max-width:800px){.products{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(78%,300px);gap:1rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);padding-bottom:.75rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.product{scroll-snap-align:start}.product:not(:last-child):before,.product:not(:last-child):after{display:none}}.figures{background:var(--color-surface);padding-block:clamp(3rem,7vw,5.5rem)}.figures__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:clamp(2rem,4vw,3.5rem);margin:clamp(2rem,5vw,3.5rem) 0 0;max-width:62rem}.figures__list dd{margin-inline-start:0}.figure__value{font-family:var(--font-display);font-size:clamp(3rem,6vw,4.5rem);line-height:1;color:var(--color-accent)}.figure__label{margin-top:.85rem;font-size:.85rem;line-height:1.5;color:var(--color-muted);max-width:18ch}.quote{position:relative;background:var(--color-surface);padding:clamp(2rem,5vw,3.5rem)}.quote-layout{position:relative}.quote-layout__media{position:absolute;top:50%;left:0;width:26%;transform:translateY(-50%);z-index:2}.quote-layout__card{margin-left:12%;padding-left:22%}@media(max-width:900px){.quote-layout__media{position:static;width:60%;transform:none}.quote-layout__card{margin-left:0;padding-left:clamp(2rem,5vw,3.5rem)}}.quote__mark{font-family:var(--font-display);font-size:3rem;line-height:.6;color:var(--color-mark);margin-bottom:1.25rem}.quote blockquote{margin:0;font-family:var(--font-display);font-size:clamp(1.4rem,2.6vw,2.1rem);line-height:1.3;max-width:26ch}.quote__rule{height:1px;background:var(--color-line);margin:clamp(1.75rem,4vw,2.75rem) 0 1rem}.quote__by{font-size:.8rem;color:var(--color-muted);text-align:right}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:clamp(2rem,5vw,3.5rem)}.projects-note{margin:clamp(1.75rem,4vw,2.5rem) 0 0;max-width:48ch;font-size:.9rem;line-height:1.6;color:var(--color-muted)}.card{display:flex;flex-direction:column;min-height:320px;background:var(--color-ink-soft);color:#fff;text-decoration:none;transition:transform .3s ease}.card:hover{transform:translateY(-4px)}.card__media{aspect-ratio:16 / 10;overflow:hidden}.card__media .media-frame{aspect-ratio:auto;height:100%}.card__body{display:flex;flex-direction:column;flex:1;padding:1.5rem}.card__kicker{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#fff9;margin-bottom:.75rem}.card h3{color:#fff;margin-bottom:.75rem}.card__text{font-size:.9rem;line-height:1.6;color:#ffffffb3;margin:0}.card__arrow{margin-top:auto;padding-top:1.5rem;align-self:flex-end;font-size:1.1rem;color:#fff;transition:transform .3s ease}.card:hover .card__arrow{transform:translate(5px)}.card__media>img{display:block;width:100%;height:100%;object-fit:cover}.hero-media .project-cover{aspect-ratio:auto;max-height:none;background:transparent}.project-cover>img{display:block;height:auto}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));align-items:start;gap:1.5rem;margin-top:clamp(2rem,5vw,3.5rem)}.gallery__item{display:block;overflow:hidden;background:var(--color-ink-soft)}.gallery__item>img{display:block;width:100%;height:auto;transition:transform .4s ease}.gallery__item:hover>img{transform:scale(1.03)}.back-link{margin-top:clamp(2rem,5vw,3rem)}.back-link a{color:var(--color-accent);text-decoration:none}.back-link a:hover{color:var(--color-mark)}.panel{background:var(--color-surface);padding:clamp(1.75rem,4vw,3rem)}.detail-list{list-style:none;margin:0;padding:0}.detail-list li{display:flex;flex-wrap:wrap;gap:.5rem 2rem;padding:1.15rem 0;border-bottom:1px solid var(--color-line)}.detail-list li:first-child{padding-top:0}.detail-list li:last-child{border-bottom:0;padding-bottom:0}.detail-list .label{flex:0 0 8rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);padding-top:.2rem}.detail-list .value{font-family:var(--font-display);font-size:1.25rem}.detail-list .value a{text-decoration:none;border-bottom:1px solid var(--color-line)}.detail-list .value a:hover{color:var(--color-accent);border-color:var(--color-accent)}form.stack{display:flex;flex-direction:column;gap:1.5rem;max-width:34rem}label{display:flex;flex-direction:column;gap:.5rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted)}input,textarea{font:inherit;font-size:1rem;letter-spacing:normal;text-transform:none;color:var(--color-ink);padding:.75rem 0;border:0;border-bottom:1px solid var(--color-line);border-radius:0;background:transparent;transition:border-color .2s ease}input:focus,textarea:focus{outline:none;border-color:var(--color-accent)}textarea{resize:vertical}.btn{display:inline-flex;align-items:center;gap:.75rem;align-self:flex-start;font:inherit;font-size:.85rem;padding:.9rem 1.75rem;border:1px solid var(--color-accent);border-radius:999px;background:var(--color-accent);color:#fff;cursor:pointer;text-decoration:none;transition:background .2s ease,border-color .2s ease,color .2s ease}.btn:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn--ghost{background:transparent;color:var(--color-accent)}.btn--ghost:hover{background:var(--color-accent);color:#fff}.hint{font-size:.85rem;color:var(--color-muted)}.link-row{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin-top:clamp(1.5rem,3vw,2.25rem)}.link-row a{display:inline-flex;align-items:center;gap:.6rem;font-size:.9rem;text-decoration:none;padding-bottom:.3rem;border-bottom:1px solid var(--color-line);transition:color .2s ease,border-color .2s ease}.link-row a:hover{color:var(--color-accent);border-color:var(--color-accent)}.next-pager{border-top:1px solid var(--color-line)}.next-pager a{display:block;padding-block:clamp(2.5rem,6vw,4.5rem);text-decoration:none}.next-pager__label{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.75rem}.next-pager__name{display:inline-flex;align-items:center;gap:1rem;font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.75rem);line-height:1.1;transition:color .2s ease}.next-pager a:hover .next-pager__name{color:var(--color-accent)}.next-pager__name span{transition:transform .3s ease}.next-pager a:hover .next-pager__name span{transform:translate(8px)}.site-footer{background:var(--color-ink-soft);color:#fff;padding-block:clamp(3rem,6vw,5rem)}.footer-top{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:clamp(2rem,4vw,3rem);padding-bottom:clamp(2.5rem,5vw,3.5rem);border-bottom:1px solid rgba(255,255,255,.18)}.footer-brand .brand{color:#fff}.footer-brand .brand__logo{height:51px}.footer-brand p{margin-top:1rem;font-size:.85rem;line-height:1.6;color:#ffffffa6;max-width:26ch}.footer-col h4{margin:0 0 1rem;font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#ffffff8c}.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.footer-col a{font-size:.9rem;color:#ffffffd9;text-decoration:none;transition:color .2s ease}.footer-col a:hover{color:#fff;text-decoration:underline}.footer-legal{padding-top:clamp(1.5rem,3vw,2rem);font-size:.78rem;line-height:1.6;color:#ffffff8c}[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .7s ease-out,transform .7s ease-out}[data-reveal].is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}[data-reveal]{opacity:1;transform:none}}
