:root {
  --ink:#191816;
  --ink-soft:#292722;
  --paper:#e6e3dc;
  --paper-light:#f3f0e8;
  --bronze:#a58b5b;
  --bronze-light:#cbb78f;
  --muted:#6f6b62;
  --line:rgba(25,24,22,.18);
  --light-line:rgba(255,255,255,.18);
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--paper); }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial,Helvetica,sans-serif; overflow-x:hidden; }
body::before { content:""; position:fixed; z-index:-2; inset:0; background:url("latszobeton.png") center/cover; opacity:.72; filter:contrast(.92) brightness(1.04); }
body::after { content:""; position:fixed; z-index:-1; inset:0; background:rgba(235,232,224,.48); pointer-events:none; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
::selection { color:white; background:var(--bronze); }

.content-shell { width:min(100% - 48px,1450px); margin-inline:auto; }
.site-header { height:98px; padding:0 clamp(24px,4vw,72px); position:fixed; z-index:40; inset:0 0 auto; display:grid; grid-template-columns:auto 1fr; gap:50px; align-items:center; color:var(--paper-light); background:rgba(22,21,19,.82); border-bottom:1px solid rgba(255,255,255,.12); backdrop-filter:blur(18px); transition:height .35s,background .35s; }
.site-header.is-compact { height:78px; background:rgba(22,21,19,.94); }
.atelier-logo { display:flex; align-items:center; gap:14px; font:700 19px/1 Georgia,"Times New Roman",serif; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }
.atelier-logo i { width:34px; height:34px; position:relative; display:block; border:1px solid var(--bronze-light); transform:rotate(45deg); }
.atelier-logo i::after { content:""; position:absolute; inset:7px; border:1px solid rgba(203,183,143,.58); }
.atelier-logo span { color:var(--bronze-light); }
.atelier-nav { justify-self:end; display:flex; gap:clamp(24px,3vw,52px); align-items:center; font-size:13px; letter-spacing:.12em; text-transform:uppercase; }
.atelier-nav a { position:relative; padding:12px 0; color:#d1cdc3; }
.atelier-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:5px; height:1px; background:var(--bronze-light); transition:right .35s; }
.atelier-nav a:hover::after,.atelier-nav a.is-active::after { right:0; }
.atelier-nav a.is-active { color:white; }
.menu-toggle { display:none; justify-self:end; width:46px; height:46px; padding:11px; color:white; background:transparent; border:1px solid rgba(255,255,255,.25); }
.menu-toggle i { display:block; height:1px; margin:6px 0; background:white; transition:transform .3s; }
.menu-toggle.is-open i:first-child { transform:translateY(3.5px) rotate(45deg); }
.menu-toggle.is-open i:last-child { transform:translateY(-3.5px) rotate(-45deg); }
.origin-return { position:fixed; z-index:35; left:22px; bottom:22px; padding:13px 17px; color:var(--paper-light); background:rgba(25,24,22,.92); border:1px solid var(--bronze); box-shadow:0 12px 35px rgba(0,0,0,.22); font-size:12px; letter-spacing:.1em; text-transform:uppercase; transition:color .3s,background .3s,transform .3s; }
.origin-return:hover { color:var(--ink); background:var(--bronze-light); transform:translateX(-4px); }

.home-hero { min-height:100svh; padding:170px clamp(24px,7vw,120px) 90px; position:relative; display:flex; align-items:center; overflow:hidden; color:var(--paper-light); background:linear-gradient(115deg,rgba(19,18,16,.97),rgba(30,28,24,.87) 58%,rgba(52,46,36,.7)); }
.home-hero::before { content:""; position:absolute; inset:0; opacity:.12; background:url("latszobeton.png") center/cover; mix-blend-mode:screen; transform:scale(1.04); animation:surface-drift 18s ease-in-out infinite alternate; }
@keyframes surface-drift { to { transform:scale(1.09) translate3d(1.2%,-.8%,0); } }
.hero-copy { width:min(48vw,760px); position:relative; z-index:3; }
.kicker { margin:0; color:var(--bronze-light); font-size:13px; letter-spacing:.17em; text-transform:uppercase; }
.home-hero h1 { margin:38px 0 50px; font:400 clamp(88px,10.4vw,158px)/.82 Georgia,"Times New Roman",serif; letter-spacing:-.075em; }
.home-hero h1 em { color:var(--bronze-light); font-style:italic; font-weight:400; }
.hero-bottom { max-width:650px; display:grid; gap:30px; align-items:end; }
.hero-bottom p { max-width:620px; margin:0; color:#d4d0c8; font:400 clamp(22px,2vw,30px)/1.5 Georgia,"Times New Roman",serif; }
.line-link { min-width:290px; padding:0 0 13px; display:flex; justify-content:space-between; gap:25px; border-bottom:1px solid rgba(255,255,255,.45); font-size:13px; letter-spacing:.12em; text-transform:uppercase; transition:border-color .3s,color .3s; }
.line-link:hover { color:var(--bronze-light); border-color:var(--bronze-light); }
.hero-bottom .line-link { width:min(100%,350px); }
.hero-visual { position:absolute; z-index:2; top:16%; right:clamp(34px,6vw,110px); width:min(44vw,700px); height:68%; pointer-events:none; }
.hero-visual::before { content:""; position:absolute; z-index:0; inset:5% 4% 0 8%; border:1px solid rgba(203,183,143,.24); transform:translate(14px,14px); }
.hero-visual::after { content:""; position:absolute; z-index:4; inset:0; background:linear-gradient(135deg,rgba(203,183,143,.07),transparent 45%,rgba(12,11,10,.14)); mix-blend-mode:soft-light; }
.hero-frame { position:absolute; margin:0; overflow:hidden; background:#171512; border:1px solid rgba(203,183,143,.22); box-shadow:0 26px 64px rgba(0,0,0,.3); }
.hero-frame::after { content:""; position:absolute; z-index:3; inset:10px; border:1px solid rgba(239,234,224,.2); pointer-events:none; }
.hero-frame img { width:100%; height:100%; position:relative; z-index:1; display:block; object-fit:cover; filter:saturate(.7) contrast(1.06) brightness(.78); transform:scale(1.02); transition:transform 1.8s cubic-bezier(.2,.7,.2,1),filter 1.8s ease; }
.hero-frame-base { z-index:1; left:0; bottom:0; width:72%; height:78%; animation:hero-base-drift 16s ease-in-out infinite alternate; }
.hero-frame-base img { object-position:center; }
.hero-frame-top { z-index:2; top:0; right:0; width:82%; height:75%; animation:hero-top-drift 18s ease-in-out -6s infinite alternate; }
.hero-frame-top::before { content:""; position:absolute; z-index:2; top:-12%; bottom:-12%; left:0; width:30%; opacity:0; background:linear-gradient(90deg,transparent,rgba(255,244,218,.1),transparent); mix-blend-mode:screen; transform:translate3d(-170%,0,0) skewX(-8deg); will-change:transform,opacity; animation:hero-sun-sweep 6s linear infinite; pointer-events:none; }
.hero-frame-top img { object-position:center; filter:saturate(.76) contrast(1.04) brightness(.88); }
.hero-visual-mark { position:absolute; z-index:5; right:1%; bottom:2%; padding:8px 0; color:var(--bronze-light); border-bottom:1px solid rgba(203,183,143,.48); font-size:10px; letter-spacing:.2em; text-transform:uppercase; }
.home-hero:hover .hero-frame img { transform:scale(1.04); filter:saturate(.82) contrast(1.06) brightness(.92); }
@keyframes hero-base-drift { to { transform:translate3d(-2px,3px,0); } }
@keyframes hero-top-drift { to { transform:translate3d(3px,-2px,0); } }
@keyframes hero-sun-sweep {
  0%,65% { opacity:0; transform:translate3d(-170%,0,0) skewX(-8deg); }
  68% { opacity:1; }
  86% { opacity:1; transform:translate3d(430%,0,0) skewX(-8deg); }
  89%,100% { opacity:0; transform:translate3d(430%,0,0) skewX(-8deg); }
}
.architectural-lines { position:absolute; right:3vw; top:17%; width:42vw; height:66%; opacity:.4; transform:translate3d(var(--line-x,0),var(--line-y,0),0); transition:transform .35s ease-out; }
.architectural-lines i { position:absolute; display:block; border:1px solid rgba(203,183,143,.38); animation:line-breathe 8s ease-in-out infinite; }
.architectural-lines i:nth-child(1) { inset:0 0 20% 25%; }
.architectural-lines i:nth-child(2) { inset:18% 18% 0 0; animation-delay:-2.6s; }
.architectural-lines i:nth-child(3) { inset:34% 3% 8% 42%; animation-delay:-5.2s; }
@keyframes line-breathe { 50% { opacity:.35; transform:translateY(-8px); } }
.hero-index { position:absolute; z-index:2; right:4vw; bottom:42px; color:#9a9488; font-size:11px; letter-spacing:.15em; }
.scroll-cue { position:absolute; z-index:2; left:clamp(24px,7vw,120px); bottom:35px; display:flex; align-items:center; gap:16px; color:#aaa49a; font-size:11px; letter-spacing:.15em; text-transform:uppercase; }
.scroll-cue i { width:65px; height:1px; overflow:hidden; background:rgba(255,255,255,.25); }
.scroll-cue i::after { content:""; display:block; width:35%; height:1px; background:var(--bronze-light); animation:scroll-line 2.8s ease-in-out infinite; }
@keyframes scroll-line { 0% { transform:translateX(-120%); } 70%,100% { transform:translateX(330%); } }

.manifesto { padding-top:150px; padding-bottom:150px; display:grid; grid-template-columns:220px 1fr; gap:7vw; border-bottom:1px solid var(--line); }
.section-number { padding-top:14px; color:var(--muted); font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.manifesto p { max-width:1100px; margin:0; font:400 clamp(45px,6vw,88px)/1.08 Georgia,"Times New Roman",serif; letter-spacing:-.045em; }
.manifesto em { color:var(--bronze); font-style:italic; }
.disciplines { padding-top:110px; padding-bottom:150px; display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.discipline-card { min-height:680px; padding:40px; position:relative; display:flex; flex-direction:column; overflow:hidden; color:var(--paper-light); background:var(--ink); transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s; }
.discipline-card:hover { transform:translateY(-10px); box-shadow:0 28px 70px rgba(25,24,22,.25); }
.discipline-card > span { position:relative; z-index:2; color:var(--bronze-light); font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.discipline-card h2 { position:relative; z-index:2; margin:auto 0 18px; font:400 clamp(52px,6vw,92px)/.96 Georgia,"Times New Roman",serif; letter-spacing:-.055em; }
.discipline-card p { position:relative; z-index:2; max-width:540px; margin:0 0 45px; color:#bbb6ac; font-size:18px; line-height:1.6; }
.discipline-card b { position:relative; z-index:2; padding-top:18px; border-top:1px solid var(--light-line); font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.discipline-visual { position:absolute; inset:0; opacity:.5; transition:opacity .5s,transform .8s; }
.discipline-card:hover .discipline-visual { opacity:.75; transform:scale(1.025); }
.discipline-architecture { background:linear-gradient(140deg,transparent 35%,rgba(165,139,91,.38)); }
.discipline-architecture i { position:absolute; border:1px solid rgba(255,255,255,.22); }
.discipline-architecture i:first-child { width:62%; height:52%; right:-5%; top:12%; transform:skewY(-13deg); }
.discipline-architecture i:last-child { width:38%; height:61%; left:10%; top:21%; }
.discipline-interior { background:linear-gradient(165deg,rgba(100,82,54,.3),transparent 60%); }
.discipline-interior i { position:absolute; width:1px; height:100%; top:0; background:rgba(255,255,255,.2); }
.discipline-interior i:nth-child(1) { left:28%; }.discipline-interior i:nth-child(2) { left:56%; }.discipline-interior i:nth-child(3) { left:78%; }
.home-contact { padding:150px 0; color:var(--paper-light); background:rgba(25,24,22,.96); }
.home-contact h2,.brief-heading h2 { margin:35px 0 55px; font:400 clamp(64px,9vw,138px)/.88 Georgia,"Times New Roman",serif; letter-spacing:-.065em; }
.home-contact h2 em,.brief-heading h2 em { color:var(--bronze-light); font-style:italic; }
.solid-link { min-height:68px; display:inline-flex; align-items:center; justify-content:space-between; gap:70px; padding:0 24px; color:var(--paper-light); background:var(--ink); border:1px solid var(--bronze); font-size:12px; letter-spacing:.13em; text-transform:uppercase; transition:color .3s,background .3s,transform .3s; }
.home-contact .solid-link { color:var(--ink); background:var(--bronze-light); }
.solid-link:hover { color:var(--ink); background:var(--bronze-light); transform:translateY(-3px); }

.page-hero { min-height:72svh; padding-top:210px; padding-bottom:100px; display:grid; grid-template-columns:1.25fr .75fr; gap:8vw; align-items:end; border-bottom:1px solid var(--line); }
.page-hero h1 { margin:35px 0 0; font:400 clamp(78px,12vw,176px)/.9 Georgia,"Times New Roman",serif; letter-spacing:-.075em; overflow-wrap:anywhere; }
body[data-page="interior"] .page-hero h1 { font-size:clamp(56px,8.5vw,132px); line-height:.95; white-space:nowrap; overflow-wrap:normal; }
.page-hero > p { max-width:600px; margin:0 0 10px; color:#4f4b44; font:400 clamp(21px,2vw,28px)/1.58 Georgia,"Times New Roman",serif; }
.project-gallery { padding-top:100px; padding-bottom:150px; display:grid; grid-template-columns:repeat(12,1fr); grid-auto-flow:dense; gap:70px 24px; }
.gallery-card { grid-column:span 5; min-width:0; }
.gallery-card:nth-child(even) { grid-column:span 7; }
.gallery-card.gallery-wide { grid-column:span 8; }
.gallery-card.gallery-large { grid-column:span 7; }
.gallery-card.gallery-tall { grid-column:span 5; }
.gallery-placeholder { height:430px; position:relative; display:grid; place-items:center; overflow:hidden; background:linear-gradient(135deg,rgba(25,24,22,.88),rgba(85,79,67,.62)),url("latszobeton.png") center/cover; box-shadow:0 18px 50px rgba(25,24,22,.14); }
.gallery-tall .gallery-placeholder { height:620px; }
.gallery-large .gallery-placeholder { height:540px; }
.gallery-wide .gallery-placeholder { height:430px; }
.gallery-placeholder::before { content:""; position:absolute; z-index:1; inset:-30%; opacity:0; background:radial-gradient(circle at var(--hover-x,50%) var(--hover-y,50%),rgba(203,183,143,.38),transparent 25%); transition:opacity .45s; pointer-events:none; }
.gallery-placeholder::after { content:""; position:absolute; z-index:2; inset:24px; border:1px solid rgba(255,255,255,.22); transform:scale(.97); transition:transform .5s,border-color .5s; pointer-events:none; }
.gallery-placeholder img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1s cubic-bezier(.2,.8,.2,1),filter .6s; }
.gallery-card:hover .gallery-placeholder img { transform:scale(1.045); filter:contrast(1.04) saturate(.92); }
.gallery-card:hover .gallery-placeholder::before { opacity:1; }
.gallery-card:hover .gallery-placeholder::after { transform:scale(1); border-color:rgba(203,183,143,.75); }
.gallery-placeholder span { position:relative; z-index:2; color:#d7d2c8; font-size:11px; letter-spacing:.18em; text-transform:uppercase; }
.gallery-placeholder i { position:absolute; z-index:3; right:40px; bottom:34px; color:rgba(255,255,255,.6); font:italic 62px Georgia,serif; text-shadow:0 3px 18px rgba(0,0,0,.35); }
.interior-tone { background:linear-gradient(135deg,rgba(34,29,24,.88),rgba(112,91,59,.55)),url("latszobeton.png") center/cover; }
.gallery-card > div:last-child { padding-top:24px; display:flex; justify-content:space-between; gap:25px; align-items:baseline; border-top:1px solid var(--line); margin-top:14px; }
.gallery-card h2 { margin:0; font:400 clamp(29px,3vw,44px)/1.08 Georgia,"Times New Roman",serif; }
.gallery-card p { margin:0; color:var(--muted); font-size:11px; letter-spacing:.1em; text-align:right; text-transform:uppercase; }

.page-hero-about { min-height:68svh; }
.about-layout { padding-top:110px; padding-bottom:130px; display:grid; grid-template-columns:.85fr 1.15fr; gap:9vw; align-items:center; }
.about-photo { position:relative; margin:0; overflow:hidden; background:#24221f; box-shadow:0 28px 75px rgba(25,24,22,.22); }
.about-photo::after { content:""; position:absolute; inset:18px 18px 55px; border:1px solid rgba(239,234,224,.38); pointer-events:none; }
.about-photo img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; filter:saturate(.82) contrast(1.04); transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter 1.2s ease; }
.about-photo:hover img { transform:scale(1.025); filter:saturate(.95) contrast(1.06); }
.about-photo figcaption { position:relative; padding:17px 20px 18px; color:#d8c9ac; background:#24221f; font-size:11px; letter-spacing:.17em; text-transform:uppercase; }
.about-story > span,.contact-information > span,.opening-hours > span { color:var(--bronze); font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.about-story p { max-width:760px; margin:28px 0 0; color:#4e4a43; font:400 clamp(20px,1.65vw,27px)/1.62 Georgia,"Times New Roman",serif; }
.about-story p:first-of-type { margin-top:36px; }
.about-story strong { color:#806a42; font-weight:600; }
.studio-values { padding-bottom:150px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.studio-values article { min-height:320px; padding:35px 35px 35px 0; border-right:1px solid var(--line); }
.studio-values article + article { padding-left:35px; }
.studio-values article:last-child { border-right:0; }
.studio-values span { color:var(--bronze); font-size:12px; }
.studio-values h3 { margin:70px 0 22px; font:400 46px Georgia,serif; }
.studio-values p { max-width:330px; color:var(--muted); line-height:1.6; }

.contact-page-hero { min-height:65svh; }
.contact-layout { padding-top:100px; padding-bottom:140px; display:grid; grid-template-columns:1.1fr .9fr; gap:9vw; }
.contact-information h2 { margin:32px 0 65px; font:400 clamp(44px,5vw,74px)/1.04 Georgia,serif; }
.contact-information h2 em { color:var(--bronze); font-size:.48em; font-style:normal; letter-spacing:.08em; text-transform:uppercase; }
.contact-information dl { margin:0; border-top:1px solid var(--line); }
.contact-information dl div { padding:24px 0; display:grid; grid-template-columns:140px 1fr; gap:30px; border-bottom:1px solid var(--line); }
.contact-information dt { color:var(--muted); font-size:11px; letter-spacing:.13em; text-transform:uppercase; }
.contact-information dd { margin:0; font:400 23px/1.45 Georgia,serif; overflow-wrap:anywhere; }
.opening-hours { padding:42px; align-self:start; color:var(--paper-light); background:rgba(25,24,22,.96); }
.opening-hours > div { padding:25px 0; display:grid; gap:10px; border-bottom:1px solid var(--light-line); }
.opening-hours b { color:#a8a197; font-size:11px; letter-spacing:.13em; text-transform:uppercase; }
.opening-hours strong { font:400 22px Georgia,serif; }
.opening-hours .solid-link { width:100%; margin-top:44px; }
.brief-section { padding:140px 0; color:var(--paper-light); background:rgba(25,24,22,.97); }
.brief-section .content-shell { display:grid; grid-template-columns:.75fr 1.25fr; gap:8vw; }
.brief-form { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-content:start; }
.brief-form label { display:grid; gap:11px; }
.brief-form label span { color:#b5afa5; font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.brief-form input,.brief-form textarea,.brief-form select { width:100%; padding:15px 0; color:white; background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.28); border-radius:0; outline:0; font:400 20px/1.4 Georgia,serif; transition:border-color .3s; }
.brief-form select { color:#ddd7cc; }
.brief-form select option { color:#111; }
.brief-form textarea { resize:vertical; }
.brief-form input:focus,.brief-form textarea:focus,.brief-form select:focus { border-color:var(--bronze-light); }
.brief-full { grid-column:1/-1; }
.brief-submit { margin-top:15px; display:flex; justify-content:space-between; gap:30px; align-items:end; }
.brief-submit p { max-width:390px; margin:0; color:#8d877d; font-size:13px; line-height:1.5; }
.brief-submit button { min-height:66px; padding:0 22px; display:flex; align-items:center; justify-content:space-between; gap:50px; color:var(--ink); background:var(--bronze-light); border:0; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; transition:background .3s,transform .3s; }
.brief-submit button:hover { background:white; transform:translateY(-3px); }
.brief-submit button:disabled { opacity:.65; cursor:wait; transform:none; }
.brief-form .brief-consent { display:flex; gap:12px; align-items:flex-start; color:#aaa49a; font-size:13px; font-weight:400; line-height:1.55; letter-spacing:0; text-transform:none; }
.brief-form .brief-consent input { width:18px; height:18px; flex:0 0 18px; margin:2px 0 0; padding:0; accent-color:var(--bronze-light); }
.brief-form .brief-consent span { color:inherit; font:inherit; letter-spacing:0; text-transform:none; }
.brief-consent a { color:var(--paper-light); text-decoration:underline; text-underline-offset:3px; }
.brief-status { padding:15px 18px; border:1px solid rgba(255,255,255,.2); color:#d4cec3; font-size:14px; line-height:1.55; }
.brief-status.is-success { border-color:var(--bronze-light); }
.brief-status.is-error { border-color:#a56464; color:#efcaca; }
.honeypot-field { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

.atelier-exit { padding:42px clamp(24px,5vw,82px); color:var(--paper-light); background:var(--bronze); }
.atelier-exit a { display:flex; justify-content:space-between; gap:30px; align-items:center; }
.atelier-exit span { font-size:11px; letter-spacing:.15em; text-transform:uppercase; }
.atelier-exit strong { font:400 clamp(22px,3vw,40px) Georgia,serif; transition:transform .3s; }
.atelier-exit a:hover strong { transform:translateX(-7px); }
.site-footer { min-height:145px; padding:30px clamp(24px,4vw,72px); display:grid; grid-template-columns:1fr auto 1fr; gap:30px; align-items:center; color:#979187; background:var(--ink); border-top:1px solid rgba(255,255,255,.1); font-size:11px; letter-spacing:.11em; text-transform:uppercase; }
.site-footer span:nth-child(2) { text-align:center; }
.site-footer a:last-child { justify-self:end; color:var(--bronze-light); }

[data-reveal] { opacity:0; transform:translateY(30px); transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1); }
[data-reveal].is-visible { opacity:1; transform:none; }
.gallery-card:nth-child(2n),.studio-values article:nth-child(2) { transition-delay:.08s; }
.gallery-card:nth-child(3n),.studio-values article:nth-child(3) { transition-delay:.16s; }

@media (prefers-reduced-motion:reduce) {
  * { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
  [data-reveal] { opacity:1; transform:none; }
}

@media (max-width:1050px) {
  .site-header { height:82px; grid-template-columns:1fr auto; padding:0 22px; }
  .atelier-nav { position:fixed; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:34px; background:rgba(20,19,17,.98); font:400 28px Georgia,serif; text-transform:none; transform:translateY(-100%); visibility:hidden; transition:transform .5s,visibility .5s; }
  .atelier-nav.is-open { transform:none; visibility:visible; }
  .menu-toggle { display:block; position:relative; z-index:3; }
  .home-hero { min-height:1120px; padding:140px 6vw 540px; align-items:flex-start; }
  .hero-copy { width:100%; }
  .home-hero h1 { font-size:clamp(84px,18vw,145px); }
  .hero-visual { top:auto; right:6vw; bottom:105px; width:min(78vw,700px); height:430px; }
  .architectural-lines { width:65vw; right:-15vw; }
  .manifesto { grid-template-columns:1fr; gap:40px; }
  .disciplines { grid-template-columns:1fr; }
  .page-hero { min-height:auto; padding-top:165px; grid-template-columns:1fr; gap:55px; }
  .page-hero h1 { font-size:clamp(66px,15vw,125px); }
  .project-gallery { gap:70px 24px; }
  .about-layout,.contact-layout,.brief-section .content-shell { grid-template-columns:1fr; }
  .about-photo { max-width:800px; }
  .studio-values { grid-template-columns:1fr; }
  .studio-values article,.studio-values article + article { min-height:240px; padding:30px 0; border-right:0; border-bottom:1px solid var(--line); }
  .studio-values h3 { margin-top:40px; }
}

@media (max-width:700px) {
  .content-shell { width:min(100% - 36px,1450px); }
  .origin-return { left:12px; bottom:12px; padding:11px 13px; font-size:10px; }
  .home-hero { min-height:1100px; padding:135px 18px 500px; align-items:flex-start; }
  .home-hero h1 { margin-top:55px; font-size:clamp(72px,24vw,112px); line-height:.9; }
  .hero-bottom { display:grid; gap:45px; }
  .line-link { min-width:0; width:100%; }
  .hero-visual { left:18px; right:18px; bottom:105px; width:auto; height:365px; }
  .hero-visual::before { inset:7% 5% 2%; transform:translate(9px,10px); }
  .hero-frame::after { inset:8px; }
  .hero-frame-base { width:72%; height:75%; }
  .hero-frame-top { width:81%; height:69%; }
  .hero-visual-mark { right:0; bottom:0; }
  .architectural-lines { top:45%; width:100vw; height:42%; right:-38vw; }
  .hero-index { display:none; }
  .scroll-cue { left:18px; }
  .manifesto { padding-top:95px; padding-bottom:95px; }
  .manifesto p { font-size:42px; }
  .disciplines { width:100%; padding-top:0; padding-bottom:90px; gap:1px; }
  .discipline-card { min-height:590px; padding:28px 22px; }
  .discipline-card h2 { font-size:54px; overflow-wrap:anywhere; }
  .home-contact { padding:100px 0; }
  .home-contact h2,.brief-heading h2 { font-size:68px; line-height:1; }
  .page-hero { width:100%; padding:150px 18px 75px; }
  .page-hero h1 { font-size:clamp(58px,18vw,88px); overflow-wrap:anywhere; line-height:1; }
  body[data-page="interior"] .page-hero h1 { font-size:clamp(34px,10.5vw,48px); letter-spacing:-.08em; white-space:nowrap; overflow-wrap:normal; }
  .page-hero > p { font-size:21px; }
  .project-gallery { width:100%; padding:70px 18px 100px; grid-template-columns:1fr; gap:60px; }
  .gallery-card,.gallery-card:nth-child(even),.gallery-card.gallery-wide,.gallery-card.gallery-large,.gallery-card.gallery-tall { grid-column:auto; }
  .gallery-placeholder,.gallery-wide .gallery-placeholder,.gallery-large .gallery-placeholder,.gallery-tall .gallery-placeholder { height:470px; }
  .gallery-card > div:last-child { display:grid; }
  .gallery-card p { text-align:left; }
  .about-layout { padding-top:70px; padding-bottom:90px; }
  .about-photo { width:100%; }
  .about-photo::after { inset:12px 12px 52px; }
  .about-photo figcaption { padding-inline:14px; font-size:9px; }
  .about-story p { font-size:20px; line-height:1.58; }
  .contact-layout { padding-top:70px; padding-bottom:90px; }
  .contact-information dl div { grid-template-columns:1fr; gap:10px; }
  .opening-hours { padding:30px 24px; }
  .brief-section { padding:95px 0; }
  .brief-form { grid-template-columns:1fr; }
  .brief-full { grid-column:auto; }
  .brief-submit { display:grid; }
  .brief-submit button { width:100%; }
  .atelier-exit { padding:34px 18px; }
  .atelier-exit a { display:grid; gap:14px; }
  .site-footer { grid-template-columns:1fr; }
  .site-footer span:nth-child(2) { text-align:left; }
  .site-footer a:last-child { justify-self:start; }
}
