/* Design tokens and editorial proportions restored from b6728ed. */
:root{--ink:#111111;--ink-soft:#555555;--paper:#fcfcfa;--mono:"SF Mono",ui-monospace,Menlo,monospace;--sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--pad:clamp(20px,4vw,56px);--max:1440px}
.ui-icon{display:inline-block;width:1.1em;height:1.1em;flex:none;vertical-align:-.14em;pointer-events:none;overflow:visible}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans)}
a{color:inherit;text-decoration:none}
button,summary,a{-webkit-tap-highlight-color:transparent}
button,summary{cursor:pointer}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:6px}
p,h1,h2,h3,figure{margin:0}
p{max-width:65ch}
h1,h2,h3{font-weight:500;line-height:1.05}
img{max-width:100%;display:block}
main{max-width:var(--max);margin:auto;padding:0 var(--pad)}
[id]{scroll-margin-top:110px}
.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link:focus{position:fixed;top:12px;left:20px;background:var(--paper);padding:12px;z-index:10001}

.site-header{position:fixed;inset:0 0 auto;z-index:100;padding:22px var(--pad);display:flex;align-items:center;justify-content:space-between;background:rgba(252,252,250,.96);border-bottom:1px solid #1112}
.wordmark{font:500 16px var(--mono);letter-spacing:.34em}
.desktop-nav{display:flex;gap:clamp(20px,3vw,48px)}
.site-header nav a{font:14px var(--mono);padding:8px 0;position:relative}
.site-header nav a::after{content:"";height:1px;background:currentColor;position:absolute;bottom:0;left:0;width:100%;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.site-header nav a:hover::after,.site-header nav a[aria-current]::after{transform:scaleX(1)}
.mobile-menu{display:none}

.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:150px 0 70px}
.hero h1{font-size:clamp(56px,12vw,172px);line-height:.9;letter-spacing:-.065em;font-weight:500}
.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-top:64px}
.hero-bottom p{max-width:420px;font-size:18px}
.text-link{border-bottom:1px solid;padding-bottom:8px;white-space:nowrap}
.desk{display:flex;flex-direction:column;gap:10vh;padding:12vh 0 18vh;border-top:1px solid}
.desk-item{display:block;align-self:flex-start;max-width:100%}
.desk-item:nth-child(2){margin-left:34%}
.desk-item:nth-child(3){margin-left:8%}
.desk-item:nth-child(4){margin-left:48%}
.world{display:block;font-size:clamp(40px,6vw,86px);text-transform:uppercase;letter-spacing:-.045em;line-height:1.1;transition:letter-spacing .5s}
.world span{display:inline-block;font-size:.55em;margin-left:20px;transition:transform .4s}
.desk-item:hover .world,.desk-item:focus-visible .world{letter-spacing:0}
.desk-item:hover .world span{transform:translate(5px,-5px)}
.sub{display:block;color:var(--ink-soft);margin-top:16px}

.pagehead{padding:20vh 0 10vh}
.mono{font:14px var(--mono);text-transform:uppercase;letter-spacing:.16em;margin-bottom:30px}
.display{font-size:clamp(42px,8.5vw,122px);text-transform:uppercase;letter-spacing:-.06em;line-height:.98;overflow-wrap:normal}
.display-md{font-size:clamp(36px,5.8vw,84px);text-transform:uppercase;letter-spacing:-.045em}
.intro{font-size:clamp(18px,2vw,26px);line-height:1.5;max-width:800px;margin-top:36px}
.section{padding:6vh 0 10vh}
.section-heading{font-size:32px;margin-bottom:32px}
.rows{border-top:1px solid}
.editorial-row{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:start;padding:36px 0;border-bottom:1px solid}
.editorial-row h3{font-size:clamp(24px,3vw,42px);text-transform:uppercase;letter-spacing:-.035em}
.editorial-row p{color:var(--ink-soft)}
.section .intro{margin-bottom:48px}
.works-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px 5vw}
.work-card:nth-child(even){padding-top:120px}
.work-card img{width:100%;height:auto;object-fit:contain}
.work-card h2{font-size:clamp(26px,3vw,40px);margin:25px 0 16px;letter-spacing:-.035em}
.work-card p{color:var(--ink-soft)}
.work-data-note{margin-top:20px;color:var(--ink-soft);font-size:16px}
.work-performance{display:flex;align-items:baseline;gap:12px;margin-top:24px;padding-top:16px;border-top:1px solid var(--ink)}
.work-performance strong{font-size:clamp(32px,4vw,52px);font-weight:500;line-height:1;letter-spacing:-.04em}
.work-performance span{font:14px var(--mono);text-transform:uppercase}
.work-card .work-meta{font-size:16px;margin-bottom:16px}
.contact{margin-top:10vh;border-top:1px solid}
.email{display:inline-block;font-size:clamp(18px,3vw,40px);margin:32px 0 20px;border-bottom:1px solid;overflow-wrap:anywhere}
.contact p{color:var(--ink-soft)}

footer{max-width:var(--max);margin:14vh auto 0;padding:5vh var(--pad) 0;border-top:1px solid}
.footer-top{display:flex;justify-content:space-between;gap:24px}
.wordmark-big{font-size:clamp(80px,22vw,316px);letter-spacing:-.065em;line-height:1.05;margin-top:50px;font-weight:500}

#flora{position:fixed;inset:0;pointer-events:none;z-index:9999}
@media(pointer:fine){body.flora,body.flora a,body.flora button,body.flora summary{cursor:none}
}

.technology-showcase{--muted:#555;--red:#111;--line:#aaa;--serif:var(--sans);--products-css-ready:1}
.demo-note{margin-bottom:32px;color:var(--ink-soft)}
.product-entry{border-top:1px solid}
.product-entry:last-of-type{border-bottom:1px solid}
.product-entry>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;padding:30px 0;font-size:clamp(26px,4.6vw,66px);line-height:1.1;letter-spacing:-.04em}
.product-entry>summary::-webkit-details-marker{display:none}
.plus{font-size:.75em;transition:transform .3s}
.product-entry[open]>summary .plus{transform:rotate(45deg)}
.technology-showcase .product-panel{padding:25px 0 70px;min-height:0;gap:40px}
.technology-showcase .product-name{display:none}
.technology-showcase .product-copy h3{font-size:clamp(28px,3.2vw,46px)}
.technology-showcase .product-copy em{font-family:var(--sans);font-style:normal}
.technology-showcase .product-print{display:none}
.technology-showcase .mock-app{filter:grayscale(1);box-shadow:none;transform:none;border:1px solid #111}
.technology-showcase .product-visual{margin:0;padding:0;min-width:0}
.technology-showcase .product-description,.technology-showcase .product-detail p{font-size:16px}
.technology-showcase .mock-app *{min-width:0}
.technology-showcase .mock-app button{white-space:normal}
.technology-showcase .product-detail summary{font-size:16px}

@media(max-width:900px){.technology-showcase .product-panel{grid-template-columns:1fr}
.technology-showcase .product-visual{max-width:700px;width:100%;justify-self:center}
.editorial-row{grid-template-columns:1fr 1fr;gap:20px}
}

@media(max-width:640px){.desktop-nav{display:none}
.mobile-menu{display:block;font:14px var(--mono)}
.mobile-menu summary{padding:8px}
.mobile-menu summary,.product-detail summary{list-style:none;text-decoration:underline;text-underline-offset:4px}
.mobile-menu summary::-webkit-details-marker,.product-detail summary::-webkit-details-marker{display:none}
.mobile-menu nav{position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid;padding:20px var(--pad);display:flex;flex-direction:column;gap:18px}
.hero{padding-top:125px}
.hero h1{font-size:clamp(46px,12vw,78px)}
.hero-bottom{display:block;margin-top:40px}
.hero-bottom p{font-size:16px;margin-bottom:30px}
.desk-item:nth-child(n){margin-left:0}
.desk-item:nth-child(even){align-self:flex-end}
.world{font-size:clamp(36px,9.4vw,60px)}
.sub{max-width:25ch}
.pagehead{padding:150px 0 60px}
.display{font-size:clamp(36px,9.5vw,61px)}
.works-grid{grid-template-columns:1fr;gap:60px}
.work-card:nth-child(even){padding-top:0}
.editorial-row{grid-template-columns:1fr;gap:16px}
.editorial-row p{grid-column:1;grid-row:2}
.footer-top{flex-direction:column}
.technology-showcase .product-panel{padding-bottom:45px}
.technology-showcase .product-visual{overflow:hidden}
.technology-showcase .product-entry>summary{font-size:30px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;transition:none!important}
}
