/* Shared editorial layer. Existing models, diary reader and print layouts remain intact. */
.cravate-demo{padding:24px 0;min-width:0}
.cravate-demo h4{font:400 clamp(28px,3.5vw,46px)/1.1 Arial,sans-serif;letter-spacing:-.045em;margin:24px 0 14px}
.demo-note,.jolly-caption{color:var(--muted);font-size:13px;line-height:1.6}
.cravate-demo fieldset{border:0;margin:28px 0;padding:0}
.cravate-demo legend{font-size:13px;margin-bottom:12px}
.demo-choices{display:flex;flex-wrap:wrap;gap:10px}
.demo-choices label{cursor:pointer;position:relative}
.demo-choices input{position:absolute;opacity:0;width:1px;height:1px}
.demo-choices span{display:block;border:1px solid var(--line);padding:12px 20px;transition:background-color 180ms,color 180ms}
.demo-choices input:checked+span{background:var(--ink);color:var(--bg)}
.demo-choices input:focus-visible+span{outline:2px solid var(--ink);outline-offset:4px}
.demo-constraints{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}
.demo-constraints label{font-size:13px;display:grid;gap:10px}
.demo-constraints select{width:100%;min-width:0;color:var(--ink);background:var(--bg);padding:12px 6px;border:0;border-bottom:1px solid var(--line);font:inherit;border-radius:0}
.demo-submit{display:flex;justify-content:space-between;gap:20px;width:100%;padding:17px 20px;background:var(--ink);color:var(--bg);border:0;cursor:pointer;font:inherit}
.demo-result{border-block:1px solid var(--line);margin-top:28px;padding:25px 0}
.demo-result[hidden]{display:none}
.demo-result h5{font:400 29px/1.15 Arial,sans-serif;letter-spacing:-.035em;margin:15px 0}
.demo-result p{line-height:1.6}.demo-facts{font-size:14px}
.jolly-showcase{border-top:1px solid var(--line)}
.jolly-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:50px}
.jolly-heading h2{margin-top:20px}.jolly-heading>p{max-width:30ch;color:var(--muted);line-height:1.6}
.jolly-products{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px)}
.jolly-product:nth-child(2){padding-top:85px}
.jolly-product-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:22px}
.jolly-product-title h3{font:400 28px/1.2 Arial,sans-serif;letter-spacing:-.04em}
.jolly-product-title .text-link{font-size:12px}
.jolly-visual{background:#fff;aspect-ratio:4/5;overflow:hidden}
.jolly-visual img{display:block;width:100%;height:100%;object-fit:contain;transition:transform 280ms cubic-bezier(.23,1,.32,1)}
.jolly-switch{display:flex;gap:20px;margin-top:20px}
.jolly-switch button{border:0;border-bottom:1px solid transparent;background:transparent;color:var(--muted);padding:8px 0;cursor:pointer;font:inherit;font-size:13px}
.jolly-switch button[aria-pressed=true]{color:var(--ink);border-color:var(--ink)}
.launch-sequence{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;list-style:none;margin:50px 0 30px;padding:25px 0 0;border-top:1px solid var(--line)}
.launch-sequence span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.launch-sequence p{font-size:14px;line-height:1.5}
.jolly-links{display:flex;gap:24px;flex-wrap:wrap}
@media(hover:hover) and (pointer:fine){.jolly-product:hover .jolly-visual img{transform:scale(1.015)}.demo-submit:hover{background:#fff}}
@media(max-width:650px){.jolly-heading{display:block}.jolly-products{grid-template-columns:1fr}.jolly-product:nth-child(2){padding-top:20px}.launch-sequence{grid-template-columns:1fr;gap:10px}.demo-constraints{gap:12px}}
@media(prefers-reduced-motion:reduce){.jolly-visual img{transition:none;transform:none!important}}
.text-link span,.work-line>span,.explore-arrow{display:inline-block;transition:transform 220ms cubic-bezier(.23,1,.32,1)}
.work-image img,.catalogue-image img,.diary-strip img{transition:transform 280ms cubic-bezier(.23,1,.32,1)}
.text-link,.model-controls button,.text-btn{transition:transform 140ms ease-out,background-color 180ms ease,color 180ms ease}
.text-link:active,.model-controls button:active,.text-btn:active{transform:scale(.98)}
.component-detail{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}
.component-detail>summary{cursor:pointer;padding:8px 0;font-size:14px}
.component-detail .prototype-card{border:0;padding:20px 0 0;background:transparent}
.assembly-scrub{display:flex;align-items:center;gap:12px;flex-basis:100%;font-size:12px;padding-top:12px}
.assembly-scrub input{min-width:60px;flex:1;accent-color:var(--ink)}
.assembly-scrub[hidden]{display:none}
@media(hover:hover) and (pointer:fine){
 .text-link:hover span,.work-card:hover .work-line>span,.explore-card:hover .explore-arrow{transform:translate(4px,-3px)}
 .work-card:hover .work-image img,.catalogue-item:hover img{transform:scale(1.025)}
 .diary-strip>a:hover img{transform:translateY(-5px)}
 .model-controls button:hover{background:var(--line)}
}
@media(prefers-reduced-motion:reduce){
 .text-link,.text-link span,.work-line>span,.explore-arrow,.work-image img,.catalogue-image img,.diary-strip img,.model-controls button,.text-btn{transition:none!important;transform:none!important}
}
:root,:root[data-theme="dark"],:root[data-theme="light"]{--bg:#121513;--panel:#1a1d1b;--ink:#f1f1ec;--ink-2:#d3d5cf;--muted:#aeb2aa;--line:#363b36;--line-strong:#d1d4cb;--accent:#e7e9e1;--accent-ink:#f1f1ec;--accent-soft:#272c28;--on-accent:#171a17;--header-bg:#fff;--font-display:Arial,Helvetica,sans-serif;--font-body:Arial,Helvetica,sans-serif;--paper:var(--bg);--rule:var(--line);color-scheme:dark}
body,:root[data-theme="dark"] body{background:var(--bg);background-image:none;color:var(--ink);font-family:var(--font-body)}
body::before,body::after{background-image:none!important}
.wrap{width:min(1280px,calc(100% - 2 * clamp(24px,5vw,84px)));margin-inline:auto}
.engineering-route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.engineering-route-grid .explore-card{min-height:190px;border-radius:3px;box-shadow:none;background:var(--panel)}
html{scroll-padding-top:100px}
.site-header{background:var(--header-bg);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
.site-header .brand>span:last-child{display:none}
.header-actions #theme{display:inline-grid;place-items:center;flex-shrink:0}
.editorial-home .hero .eyebrow{color:#51564c!important}
.header-inner{min-height:82px;gap:24px}.brand-signature{width:112px;height:48px}.nav a{font-weight:400;letter-spacing:0}.header-actions .button{border-radius:3px}
h1,h2,h3{font-family:var(--font-display);font-stretch:normal}h1{font-weight:400;letter-spacing:-.06em;line-height:1.02;text-wrap:balance}h2{font-weight:400;letter-spacing:-.045em;line-height:1.12;text-wrap:balance}h3{font-weight:500;letter-spacing:-.025em}
.detail-intro,.design-intro,.diary-hero{background:var(--bg);padding-block:clamp(48px,7vw,104px);border-bottom:1px solid var(--line)}
.detail-intro h1,.diary-hero h1{max-width:16ch;font-size:clamp(46px,6.7vw,98px)}
.section-kicker{font-size:11px;letter-spacing:.13em;color:var(--muted)}
.section-intro,.diary-lead{font-size:clamp(17px,1.6vw,21px);line-height:1.65;max-width:60ch;color:var(--ink-2)}
.section{padding-block:clamp(48px,6vw,88px)}.section h2{font-size:clamp(32px,4vw,58px)}
.design-hero-grid{grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:center}.design-hero-preview{border-radius:2px;background:var(--panel);box-shadow:none}.design-hero-preview img{aspect-ratio:4/3;height:auto;width:100%;object-fit:contain}
.design-preview-label,.design-preview-caption{padding:18px 22px}.living-line{display:none}
.button,.tab,.chip,.icon-btn{border-radius:4px}.button{font-weight:500}.button.primary{background:var(--accent);color:var(--on-accent)}
.project,.prototype-card,.proof-card,.proof-image-card,.route-card{border-radius:3px;box-shadow:none}
.project-body{padding:clamp(24px,4vw,54px)}.project-body h3{font-size:clamp(28px,3vw,44px)}
.project-visual{border-radius:0}.proof-image-card img{border-radius:0}.project-meta,.project-body>p:not(.outcome){color:var(--ink-2)}
.proof-grid,.route-grid{gap:28px}.model-stage,.model-viewer{border-radius:3px}
.contact{background:var(--bg);color:var(--ink);border-top:1px solid var(--line)}.contact p,.contact .eyebrow{color:var(--muted)}
.diary-ledger{border-radius:2px;background:var(--panel)}.diary-hero-grid{gap:48px}
.detail-back{font-size:13px;display:inline-flex;min-height:44px;align-items:center;margin-bottom:20px}
.editorial-home .hero{margin:0;padding:0;display:block;background:#fff;color:#1d1d1b;border:0;min-height:710px}.editorial-home .hero:before,.editorial-home .hero:after{display:none}
.editorial-home .hero h1{max-width:none;text-wrap:initial;font-family:Arial,Helvetica,sans-serif;font-size:clamp(92px,9.5vw,158px);font-weight:400;line-height:.94;letter-spacing:-.075em}
.editorial-home .hero h1 em{font-family:Georgia,serif;font-size:1.15em}.editorial-home .hero-description{color:#333}.editorial-home .hero .eyebrow{color:#51564c}.editorial-home .section-space{max-width:none}
.editorial-home .work-card img{border-radius:0}.editorial-home .contact{background:#1c1d1c;color:#f6f6f1}.editorial-home .contact p{color:#c6c7c0}
.editorial-home .section-top h2,.editorial-home .about h2{font-weight:400}.editorial-home .hero-base{color:#383e38}
.venture-feature{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8vw;border-top:1px solid var(--line)}.venture-feature h2{margin:24px 0;font-size:clamp(44px,6vw,84px)}.venture-feature p:not(.eyebrow){max-width:42ch;color:var(--muted);margin-bottom:24px}.venture-feature .text-link{display:flex;width:fit-content}.venture-feature img{width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.embed-shell{width:100%;min-width:0;border:1px solid var(--line);background:var(--panel)}.embed-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:12px;font-size:12px}.embed-toolbar label{display:flex;align-items:center;gap:10px}.embed-toolbar input{width:100px;accent-color:var(--accent)}.embed-toolbar button{min-height:44px;padding:8px 12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer}
.embed-resize{width:390px;max-width:100%;height:650px;min-width:min(280px,100%);min-height:420px;max-height:85svh;resize:both;overflow:hidden;margin:auto;border-top:1px solid var(--line)}
.cravate-preview .embed-resize iframe,[data-cravate-embed]{width:100%;height:100%;display:block;border:0;background:var(--bg)}
.embed-note{font-size:11px;padding:12px;color:var(--muted);margin:0}.embed-note a{text-decoration:underline}
.embed-shell.is-expanded{position:fixed;inset:24px;z-index:200;width:auto;overflow:auto;box-shadow:0 0 0 100vmax #0009}.embed-shell.is-expanded .embed-resize{height:calc(100svh - 165px);max-height:none}
body.embed-open{overflow:hidden}.work-card.cravate-preview{min-width:0}
.work-index{padding:70px 0}.work-index h1{font-size:clamp(58px,8vw,112px);margin:20px 0 30px}.work-filters{display:flex;flex-wrap:wrap;gap:10px;margin:36px 0}.work-filters button{padding:10px 18px;min-height:44px;border:1px solid var(--line);border-radius:0;background:none;color:var(--ink);cursor:pointer}.work-filters button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.work-catalogue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 40px}.catalogue-item{display:block;color:var(--ink);text-decoration:none}.catalogue-item img{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--panel);display:block}.catalogue-item h2{font-size:26px;margin:18px 0 8px}.catalogue-item p{font-size:14px;color:var(--muted);margin:0}.catalogue-item[hidden]{display:none}
.catalogue-item:nth-child(even){margin-top:80px}.work-index.has-filter .catalogue-item{margin-top:0}.work-index-links{display:flex;gap:24px;flex-wrap:wrap;border-top:1px solid var(--line);padding:30px 0;margin-top:70px}.work-index-links a{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:1060px){.header-inner{min-height:76px}.nav.is-open{background:var(--panel)}}
@media(max-width:700px){.design-hero-grid,.venture-feature{grid-template-columns:1fr}.design-hero-preview{max-width:100%}.editorial-home .hero{min-height:760px}.editorial-home .hero h1{font-size:clamp(66px,17.3vw,106px)}.work-catalogue{grid-template-columns:1fr;gap:38px}.catalogue-item:nth-child(even){margin-top:0}.embed-shell.is-expanded{inset:8px}.embed-toolbar label{font-size:11px}.brand-signature{width:90px;height:44px}.venture-feature{gap:28px}.detail-intro h1,.diary-hero h1{font-size:clamp(42px,10vw,62px)}}
@media print{.site-header,.embed-shell,.work-filters{display:none!important}body{background:#fff!important;color:#000!important}.section{padding-block:20px}.project{break-inside:avoid}h1,h2,h3{color:#000}}
@media(max-width:700px){.engineering-route-grid{grid-template-columns:1fr}.engineering-route-grid .explore-card{min-height:160px}.header-inner{gap:10px}.header-actions{gap:8px}}
@media(max-width:360px){.brand-signature{width:74px}.header-actions{gap:5px}.header-inner{gap:6px}}

/* Fixed monochrome masthead shared by every public page. */
/* Cravate is a full-width project section, not a framed device preview. */
.cravate-feature{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.25fr);gap:clamp(36px,8vw,120px);margin-top:64px;padding-top:64px;border-top:1px solid var(--line);align-items:start}
.cravate-intro{padding-top:58px}.cravate-intro h3{font-size:clamp(52px,7vw,96px);font-weight:400;letter-spacing:-.065em;margin:24px 0}.cravate-intro>p:not(.eyebrow){font-size:18px;color:var(--muted);max-width:25ch;line-height:1.6}
.cravate-links{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:26px}
.cravate-canvas{border:0;background:transparent}.cravate-canvas .embed-toolbar{justify-content:flex-end;padding:0 14px}.cravate-canvas .embed-toolbar button{border:0;background:none;padding:0;font-size:12px;text-decoration:underline;text-underline-offset:6px}
.cravate-canvas .embed-resize{width:100%;height:890px;max-height:none;min-height:0;resize:none;border:0;margin:0;overflow:hidden}
.cravate-canvas.is-expanded{background:var(--bg);padding:24px}.cravate-canvas.is-expanded .embed-resize{height:calc(100svh - 140px);resize:both;max-width:100%}
@media(max-width:700px){.cravate-feature{grid-template-columns:1fr;gap:24px;margin-top:12px;padding-top:44px}.cravate-intro{padding-top:0}.cravate-intro h3{margin-block:20px}.cravate-canvas .embed-resize{height:1010px}.cravate-canvas.is-expanded{padding:12px}.cravate-canvas.is-expanded .embed-resize{height:calc(100svh - 110px)}}
.site-header{position:relative;height:110px;background:#fff;color:#1d1d1b;border:0;backdrop-filter:none;-webkit-backdrop-filter:none;color-scheme:light}
.header-inner{min-height:0;display:flex;justify-content:space-between;gap:32px}
.site-header .nav{margin-left:auto;gap:32px}
.site-header .nav a{color:#333;font-size:13px;font-weight:400}
.site-header .nav a:hover,.site-header .nav a.active{color:#000;text-decoration:underline;text-underline-offset:7px}
.site-header .header-actions{margin:0}
.site-header .menu-toggle{color:#1d1d1b;border:0;background:transparent;border-radius:0}
.editorial-home .hero .eyebrow::before{display:none}
.editorial-home .hero .tiny-rule{background:#888}
.editorial-home .hero{height:calc(100svh - 110px)}
.reading-progress{display:none}
@media(min-width:1061px){.site-header .header-actions{display:none}}
@media(max-width:1060px){.site-header .nav.is-open{background:#fff;color:#1d1d1b;border:1px solid #ddd;box-shadow:0 12px 24px #0001}.site-header .nav.is-open a{color:#333}}
@media(max-width:700px){.site-header{height:84px}.site-header .header-inner{min-height:0}.editorial-home .hero{height:auto}.brand-signature{width:100px;height:46px}}
