/* SEMIOME public editorial layer. Paper, light type and existing gallery behaviour. */
:root{--paper:#f3f0e8;--ink:#202922;--muted:#414b43;--hair:#c9ccc2;--accent:#a34a35;--line:var(--hair);--copy:var(--muted)}
html,body.public-site{background:var(--paper);color:var(--ink)}
body.public-site{--paper:#f3f0e8;--ink:#202922;--muted:#414b43;--hair:#c9ccc2;--accent:#a34a35;--copy:var(--muted);overflow-x:clip;font-size:17px;line-height:1.8}
.public-site .wrap{width:100%;max-width:1320px;margin-inline:auto;padding-inline:clamp(22px,5.2vw,76px)}
.public-site main{padding-top:76px;outline:none}
.public-site h1,.public-site h2,.public-site h3{font-weight:100;text-wrap:balance;overflow-wrap:break-word}
.public-site h1{font-size:clamp(43px,4.7vw,68px);line-height:1.22;letter-spacing:-.035em;white-space:pre-line;margin:0}
.public-site h2{font-size:clamp(27px,2.5vw,37px);line-height:1.4;letter-spacing:-.018em;margin:0}
.public-site h3{font-size:23px;line-height:1.5;margin:0}
.public-site p{margin:0}
.public-site p.copy{font-size:17px;line-height:1.95;color:var(--muted);max-width:58em;text-wrap:pretty}
.public-site p.copy+p.copy{margin-top:20px}
.public-site a,.public-site button{touch-action:manipulation}
.public-site a:focus-visible,.public-site button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.public-site .studio-header{background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none}
.public-site .studio-header-inner{max-width:1440px}
.public-site .studio-wordmark strong{font-size:21px;letter-spacing:.14em}
.public-site .studio-nav{gap:30px}
.public-site .studio-nav>a,.public-site .studio-menu>summary{font-size:14px;color:var(--ink)}
.public-site .studio-panel{box-shadow:none;width:320px}
.public-site .studio-nav .studio-panel a{font-size:15px;line-height:1.7}
.public-site .studio-controls{gap:14px}
.public-site .section-kicker{display:block;font-size:13px;line-height:1.6;color:var(--muted);letter-spacing:.06em;margin:0 0 23px}
.editorial-intro{padding-top:65px;padding-bottom:43px}
.intro-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:70px;align-items:start}
.public-site .intro-copy{font-size:19px;line-height:1.9;color:var(--ink);max-width:42em;text-wrap:pretty}
.public-site .project-stage{font-size:14px;line-height:1.85;color:var(--muted);margin-top:18px;padding-top:14px;border-top:1px solid var(--hair)}
.intro-actions,.route-links{display:flex;flex-wrap:wrap;gap:18px 36px;margin-top:28px}
.public-site .text-link{display:inline-block;font-size:16px;line-height:1.65;color:var(--ink);padding:7px 0;border-bottom:1px solid var(--accent);transition:color .2s,border-color .2s}
.public-site .text-link:hover{color:var(--accent)}
.home-intro{padding-top:67px;padding-bottom:30px}
.home-heading h1{max-width:17em}
.home-intro-bottom{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:60px;align-items:center;margin-top:20px}
.home-intro-bottom .intro-copy{max-width:32em}
.hero-visual{height:255px;min-width:0;position:relative;contain:layout paint}
.hero-visual canvas{display:block;width:100%;height:100%;pointer-events:none}
.public-site .wall{display:grid;border:0;margin:0;--wall-photo-width:clamp(282px,32vw,470px);--wall-photo-height:calc(var(--wall-photo-width) / 2.35);gap:7px;background:transparent}
.public-site .wall .wall-row{height:var(--wall-photo-height)}
.public-site .wall .tile{width:var(--wall-photo-width);height:var(--wall-photo-height);margin-right:7px;border:0;border-radius:0;box-shadow:none;transform:none;overflow:hidden}
.public-site .wall .tile img{width:100%;height:100%;object-fit:cover}
.public-site .wall .tile .cap,.public-site .wall .shade{display:none}
.public-site .wall:focus-within .wall-track,.public-site .wall[data-paused] .wall-track{animation-play-state:paused}
.wall-toolbar{display:flex;justify-content:flex-end;padding:9px clamp(22px,5.2vw,76px) 0;min-height:40px}
.wall-toolbar button{font-size:12px;color:var(--muted);border-bottom:1px solid var(--hair);padding:4px 0}
.chapter-nav{display:flex;flex-wrap:wrap;gap:10px 26px;border-bottom:1px solid var(--hair);padding:18px 0 23px}
.chapter-nav .text-link{font-size:14px;border-bottom:0;color:var(--muted)}
.editorial-section{padding-top:85px;scroll-margin-top:108px}
.section-heading{display:grid;grid-template-columns:48px 1fr;gap:22px;align-items:baseline;margin-bottom:30px}
.section-heading .section-kicker{color:var(--accent);margin:0;font-size:13px;font-variant-numeric:tabular-nums}
.section-heading h2:only-child{grid-column:1/-1}
.section-content{margin-left:70px}
.editorial-rows{border-top:1px solid var(--hair)}
.editorial-row{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:46px;padding:27px 0;border-bottom:1px solid var(--hair)}
.editorial-row h3{max-width:17em}
.editorial-row .copy{font-size:16px}
.process-diagram{list-style:none;padding:0;margin:28px 0;display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:0;border-top:1px solid var(--hair)}
.process-diagram li{position:relative;min-width:0;padding:24px 24px 10px 0}
.process-diagram li+li{padding-left:24px;border-left:1px solid var(--hair)}
.process-diagram li:before{content:"";display:block;width:22px;height:2px;position:absolute;top:-2px;left:0;background:var(--accent);transition:width .5s cubic-bezier(.22,.61,.36,1)}
@media(hover:hover){.process-diagram li:hover:before{width:calc(100% - 24px)}}
.process-index{display:block;font-size:12px;line-height:1.4;color:var(--accent);margin-bottom:22px}
.process-diagram h3{font-size:22px;margin-bottom:14px}
.process-diagram p.copy{font-size:16px;line-height:1.85}
.public-site .status-note,.public-site .diagram-key{font-size:14px;line-height:1.85;color:var(--muted);margin:22px 0;max-width:62em}
.public-site .status-note{border-left:1px solid var(--hair);padding-left:20px}
.editorial-image{margin:0 0 30px}
.editorial-image+.editorial-image{margin-top:38px}
.editorial-image .image-preview{display:block;width:100%;background:none;overflow:hidden;text-align:left;padding:0}
.editorial-image img{width:100%;height:auto;display:block}
.photo-image img{aspect-ratio:47/20;object-fit:cover}
.software-image{background:transparent}
.software-image img{aspect-ratio:auto;object-fit:contain}
.public-site .editorial-image figcaption{font-size:14px;line-height:1.7;color:var(--muted);padding-top:12px}
.project-list{margin-top:18px}
.project-list-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;padding:42px 0;border-top:1px solid var(--hair)}
.project-list-item .project-cover{align-self:start;display:block;overflow:hidden}
.project-cover img{width:100%;aspect-ratio:47/20;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.project-cover:hover img{transform:scale(1.02)}
.project-list-item h2{margin:0 0 18px}
.project-list-item p.section-kicker{margin:0 0 12px}
.project-list-item p.copy{font-size:16px}
.project-list-item .text-link{margin-top:15px}
.public-site .world-section{padding-top:75px;scroll-margin-top:110px}
.public-site .world-section-head{grid-template-columns:48px 1fr;gap:22px;margin-bottom:30px}
.public-site .world-section-head h2{font-size:clamp(27px,2.5vw,37px)}
.public-site .world-section-body{margin-left:70px}
.public-site .world-copy{font-size:17px;color:var(--muted);line-height:1.95}
.public-site .world-flow{margin-top:28px}
.public-site .world-flow .world-copy,.public-site .world-row .world-copy{font-size:16px}
.public-site .world-index{color:var(--accent)}
.public-site .world-project{gap:35px}
.public-site .world-project h3{font-size:29px;margin-top:10px}
.public-site .world-project-route,.public-site .world-project-status{font-size:14px;color:var(--muted)}
.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.metric-strip>div{padding:28px 24px 26px 0;min-width:0}
.metric-strip>div+div{border-left:1px solid var(--hair);padding-left:24px}
.public-site .metric-value{font-size:clamp(32px,3.4vw,49px);line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}
.public-site .metric-label{font-size:14px;line-height:1.8;margin-top:14px;color:var(--muted)}
.contact-line{padding:50px 0 5px;margin-top:60px;border-top:1px solid var(--hair);display:flex;align-items:center;justify-content:space-between;gap:30px}
.contact-line>a{font-size:18px}
.email-link{display:inline-block;font-size:clamp(26px,3vw,40px);line-height:1.5;border-bottom:1px solid var(--accent);margin-top:28px}
.editorial-footer{display:flex;align-items:center;justify-content:space-between;gap:28px;border-top:1px solid var(--hair);padding-top:24px!important;padding-bottom:28px!important;margin-top:85px!important;min-height:0;background:transparent}
.public-site .editorial-footer p,.public-site .editorial-footer .text-link{font-size:13px}
.editorial-footer>a:first-child{font-size:16px;letter-spacing:.12em}
.public-site .rv,.public-site .banner{opacity:1;transform:none}
.public-site .lightbox{background:var(--paper);color:var(--ink);border:1px solid var(--hair);box-shadow:none}
.public-site .lightbox::backdrop{background:rgba(13,16,33,.82)}
.public-site .lightbox img{object-fit:contain}
.public-site .lb-bar{background:var(--paper);color:var(--ink)}
.public-site .lb-nav button{color:var(--ink);font-size:14px}
.public-site .lb-cap{color:var(--muted);font-size:14px}
html[lang^=en] .public-site .intro-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:50px}
html[lang^=en] .public-site h1{font-size:clamp(38px,4.2vw,60px)}
html[lang^=en] .public-site .home-heading h1{max-width:19em}
html[lang^=en] .public-site .intro-copy{font-size:18px;line-height:1.8}
@media(max-width:1050px){.public-site .studio-nav{gap:20px}.public-site .studio-header-inner{gap:20px}.intro-grid{gap:38px;grid-template-columns:1fr 1.2fr}.section-content,.public-site .world-section-body{margin-left:0}.home-intro-bottom{gap:25px}.editorial-row{gap:26px}.process-diagram li{padding-right:16px}.process-diagram li+li{padding-left:16px}.project-list-item{gap:30px}}
@media(max-width:760px){.public-site main{padding-top:68px}.public-site .studio-header-inner{gap:12px}.public-site .studio-nav{box-shadow:none}.public-site .studio-panel{width:auto}.public-site .studio-wordmark strong{font-size:18px}.public-site .studio-nav>a,.public-site .studio-menu>summary{font-size:16px}.editorial-intro,.home-intro{padding-top:40px;padding-bottom:28px}.intro-grid,html[lang^=en] .public-site .intro-grid{grid-template-columns:1fr;gap:22px}.public-site h1,html[lang^=en] .public-site h1{font-size:42px}.public-site .intro-copy{font-size:17px;line-height:1.9}.public-site .section-kicker{font-size:12px;margin-bottom:17px}.home-intro-bottom{grid-template-columns:1fr;margin-top:24px;gap:10px}.hero-visual{height:135px}.home-intro-bottom .intro-copy{max-width:none}.intro-actions,.route-links{gap:15px 28px;margin-top:20px}.editorial-section,.public-site .world-section{padding-top:54px}.section-heading,.public-site .world-section-head{grid-template-columns:26px 1fr;gap:13px;margin-bottom:24px}.public-site h2,.public-site .world-section-head h2{font-size:29px}.editorial-row,.public-site .world-row{grid-template-columns:1fr;gap:10px;padding:24px 0}.public-site h3{font-size:23px}.process-diagram{grid-auto-flow:row;grid-template-columns:1fr;margin:22px 0}.process-diagram li{display:grid;grid-template-columns:26px 1fr;gap:10px 16px;padding:22px 0}.process-diagram li+li{padding:22px 0;border-left:0;border-top:1px solid var(--hair)}.process-diagram li:before{display:none}.process-index{grid-row:1/3;margin:5px 0 0}.process-diagram h3{margin:0}.process-diagram p.copy{grid-column:2;font-size:16px}.public-site .diagram-key,.public-site .status-note{font-size:14px}.project-list-item{grid-template-columns:1fr;gap:23px;padding:30px 0}.public-site .project-stage{font-size:14px}.chapter-nav{gap:3px 22px;padding-top:10px}.chapter-nav .text-link{font-size:13px}.metric-strip{grid-template-columns:1fr 1fr}.metric-strip>div,.metric-strip>div+div{padding:22px 16px;border:0}.metric-strip>div:nth-child(2n){border-left:1px solid var(--hair)}.metric-strip>div:nth-child(n+3){border-top:1px solid var(--hair)}.public-site .metric-value{font-size:38px}.contact-line{display:block;margin-top:45px;padding-top:30px}.contact-line>a{display:block;margin-top:15px;font-size:16px}.editorial-footer{flex-wrap:wrap;gap:12px;margin-top:55px!important}.public-site .editorial-footer p{order:3;flex-basis:100%;font-size:12px}.public-site .editorial-footer .text-link{font-size:13px}.public-site .world-project{grid-template-columns:1fr;gap:24px}.public-site .world-flow{grid-template-columns:1fr}.public-site .world-flow h3{margin:0}.public-site .world-flow li{padding:24px 0}.public-site .lightbox{width:calc(100vw - 24px);max-height:92dvh}.public-site .lb-bar{flex-wrap:wrap;padding:12px;gap:8px}.public-site .lb-cap{flex-basis:100%}.public-site .lb-nav{width:100%;justify-content:space-between;gap:8px}.public-site .lb-nav button{font-size:13px;min-height:44px}}
@media(max-width:360px){.public-site .studio-wordmark strong{font-size:16px}.public-site .studio-header-inner{padding-inline:16px}.public-site h1,html[lang^=en] .public-site h1{font-size:36px}.public-site .wrap{padding-inline:20px}.public-site .metric-value{font-size:33px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.public-site .wall-track{animation:none!important}.public-site *{transition:none!important}.hero-visual{pointer-events:none}}
@media print{.public-site main{padding-top:0}.studio-header,.wall-toolbar,.editorial-footer{display:none}.editorial-section{break-inside:avoid}.hero-visual{display:none}}

.public-site .engine-io{font-size:15px;line-height:1.9;padding-top:18px;margin-top:18px;border-top:1px solid var(--hair);color:var(--ink)}
@media(max-width:760px){.process-diagram .engine-io{grid-column:2;margin-top:0;font-size:14px}}

/* Native navigation keeps the paper background; motion belongs within the page. */
@view-transition{navigation:none}

/* Only visible galleries own a compositor layer. Scrolling takes priority. */
.public-site .wall .wall-track{will-change:auto;animation-play-state:paused}
.public-site .wall[data-motion-active] .wall-track{will-change:transform;animation-play-state:running}
.public-site .wall[data-paused] .wall-track,.public-site .wall:focus-within .wall-track,.public-site .wall:hover .wall-track{animation-play-state:paused}
.public-site .lightbox::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}
