/* Meridian Construct — "Planșa vie": a construction drawing that becomes a building. */
:root{
  --navy:#0d2038;--navy-2:#132c4d;--cyan:#1d4e9e;--line:#e9effa;--line-soft:rgba(233,239,250,.72);--line-dim:rgba(233,239,250,.22);
  --concrete:#d7d8d3;--paper:#f1f1ee;--ink:#11161f;--muted:#4f5664;--signal:#f26a21;--rule:rgba(17,22,31,.18);--error:#b3261e;
  --font:'Geologica',system-ui,sans-serif;
  --gutter:64px;--max:1360px;--header:68px;
  --ease-out:cubic-bezier(.16,1,.3,1);--ease-io:cubic-bezier(.76,0,.24,1);
  --t-micro:180ms;--t-ui:320ms;--t-reveal:700ms;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 12px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--font);font-feature-settings:"tnum" 0;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
h1,h2,h3,p,dl,dd,ol,figure{margin:0}
ol{padding:0;list-style:none}
svg{overflow:visible}
.svg-library{position:absolute;width:0;height:0;overflow:hidden}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:12px;top:-60px;z-index:200;background:var(--signal);color:var(--ink);padding:12px 16px;font-weight:600}
.skip-link:focus{top:12px}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.sheet-tag{font-size:13px;font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:10px}
.sheet-tag::before{content:"";width:22px;height:1.5px;background:currentColor}

/* Buttons and links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 22px;border:1.5px solid transparent;border-radius:2px;font-weight:600;font-size:16px;line-height:1.2;text-decoration:none;position:relative;overflow:hidden;isolation:isolate;transition:color var(--t-ui) var(--ease-out),border-color var(--t-ui)}
.btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;transition:transform var(--t-ui) var(--ease-out)}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);transform:scaleY(0);transform-origin:bottom;transition:transform var(--t-ui) var(--ease-out)}
.btn:hover::after,.btn:focus-visible::after{transform:scaleY(1)}
.btn:hover svg,.btn:focus-visible svg{transform:translateX(4px)}
.btn-signal{background:var(--signal);color:var(--ink)}
.btn-signal:hover,.btn-signal:focus-visible{color:var(--line)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink::after{background:var(--signal)}
.btn-ink:hover,.btn-ink:focus-visible{color:var(--ink)}
.btn-large{min-height:58px;padding:16px 28px;font-size:17px}
.link-line{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;font-weight:600;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:100% 1.5px;background-position:0 calc(100% - 8px);background-repeat:no-repeat;transition:background-size var(--t-ui) var(--ease-out)}
.link-line:hover,.link-line:focus-visible{background-size:30% 1.5px}

/* Demo strip + header */
.demo-strip{background:var(--ink);color:var(--line-soft);font-size:13px;line-height:1.3;padding:8px var(--gutter);display:flex;flex-wrap:wrap;gap:4px 14px}
.demo-strip a{color:var(--line);font-weight:600}
.site-header{position:sticky;top:0;z-index:60;height:var(--header);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding-inline:var(--gutter);background:var(--navy);color:var(--line);border-bottom:1px solid var(--line-dim)}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-weight:700;font-size:20px;letter-spacing:-.03em;line-height:1;min-height:44px}
.brand-mark{width:32px;height:32px;fill:none;stroke:var(--signal);stroke-width:2.2}
.brand small{display:block;font-size:11px;font-weight:500;letter-spacing:.04em;color:var(--line-soft);margin-top:4px}
.sheet-now{justify-self:center;display:flex;align-items:center;gap:12px;font-size:14px;color:var(--line-soft);overflow:hidden;height:24px}
.sheet-code{font-variant-numeric:tabular-nums;font-weight:600;color:var(--signal);padding:2px 8px;border:1px solid rgba(242,106,33,.6)}
.sheet-name{display:inline-block}
.header-actions{display:flex;align-items:center;gap:10px}
.header-phone{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding-inline:10px;text-decoration:none;font-weight:500;font-variant-numeric:tabular-nums}
.header-phone svg{width:18px;height:18px;fill:none;stroke:var(--signal);stroke-width:1.6}
.header-phone:hover span{text-decoration:underline;text-underline-offset:4px}
.site-header .btn{min-height:44px;padding:10px 18px;font-size:15px}
.sheets-toggle{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 14px;border:1px solid var(--line-dim);background:transparent;color:var(--line);font-weight:600;font-size:15px;border-radius:2px;transition:background var(--t-micro),border-color var(--t-micro)}
.sheets-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform var(--t-ui) var(--ease-out)}
.sheets-toggle:hover,.sheets-toggle[aria-expanded=true]{border-color:var(--line-soft);background:var(--navy-2)}
.sheets-toggle:hover svg{transform:perspective(60px) rotateX(24deg)}

/* Elevation-level navigation (desktop) */
.level-nav{position:fixed;right:14px;top:50%;z-index:55;transform:translateY(-50%);display:none;padding:10px 10px 10px 0;background:rgba(13,32,56,.9);border:1px solid var(--line-dim);color:var(--line);backdrop-filter:blur(6px)}
.level-track{position:absolute;right:10px;top:22px;bottom:22px;width:1px;background:var(--line-dim)}
.level-marker{position:absolute;right:-7px;top:0;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:10px solid var(--signal);transform:translateY(calc(var(--level-y,1) * 1px - 5px));transition:transform .12s linear}
.level-nav ol{display:flex;flex-direction:column}
.level-nav a{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:44px;min-width:76px;padding:0 22px 0 10px;text-decoration:none;font-size:12px;position:relative}
.level-nav a::after{content:"";position:absolute;right:4px;top:50%;width:12px;height:1px;background:var(--line-soft)}
.level-nav b{font-weight:500;font-variant-numeric:tabular-nums;color:var(--line-soft);transition:color var(--t-micro)}
.level-nav span{position:absolute;right:calc(100% + 8px);white-space:nowrap;padding:6px 10px;background:var(--navy);border:1px solid var(--line-dim);font-size:13px;opacity:0;transform:translateX(8px);pointer-events:none;transition:opacity var(--t-micro),transform var(--t-ui) var(--ease-out)}
.level-nav a:hover span,.level-nav a:focus-visible span{opacity:1;transform:none}
.level-nav a.is-current b{color:var(--signal);font-weight:700}
@media (min-width:1180px) and (min-height:640px){.js .level-nav{display:block}}

/* Hero */
.hero{background:var(--navy);color:var(--line);position:relative;overflow:hidden;
  background-image:linear-gradient(rgba(233,239,250,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(233,239,250,.06) 1px,transparent 1px),linear-gradient(rgba(233,239,250,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(233,239,250,.1) 1px,transparent 1px);
  background-size:32px 32px,32px 32px,160px 160px,160px 160px;background-position:-1px -1px}
.hero-grid{max-width:var(--max);margin-inline:auto;padding:clamp(40px,6vh,72px) var(--gutter) clamp(36px,5vh,56px);min-height:calc(100svh - var(--header) - 34px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:1fr auto;column-gap:24px;row-gap:36px}
.hero-copy{grid-column:1/span 7;align-self:center;position:relative;z-index:2}
.hero-kicker{font-size:15px;line-height:1.45;color:var(--line-soft);margin-bottom:28px}
.pour-title{font-size:clamp(2.5rem,5.6vw,6.5rem);line-height:1.04;letter-spacing:-.045em;font-weight:800;margin-bottom:30px}
.pour-line{display:block;position:relative;width:fit-content;padding-bottom:.06em}
.pour-line .ghost{color:transparent;-webkit-text-stroke:1.2px rgba(233,239,250,.5)}
.pour-line .solid{position:absolute;inset:0;color:var(--line)}
.hero-lead{font-size:clamp(17px,1.35vw,19px);line-height:1.6;color:var(--line-soft);max-width:46ch;margin-bottom:34px}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 30px}
.hero-plan{grid-column:8/span 5;grid-row:1/span 2;align-self:center;justify-self:end;width:100%;display:flex;justify-content:flex-end}
.hero-frame{position:relative;aspect-ratio:520/640;width:min(100%,calc((100svh - var(--header) - 120px) * .8125));color:var(--line)}
.hero-photo{position:absolute;left:9.23%;right:3.85%;top:7.19%;bottom:6.875%;overflow:hidden;background:var(--navy-2)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:46% 60%;transform-origin:50% 100%}
.pour-edge{position:absolute;inset:0;border-top:2px solid var(--signal);opacity:0;pointer-events:none}
.hero-annot{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1;pointer-events:none}
.hero-annot .axis{stroke-dasharray:6 6;opacity:.35}
.hero-annot .level,.hero-annot .bubble path,.hero-annot .dimline{opacity:.9}
.hero-annot text{fill:var(--line);stroke:none;font:500 11px var(--font);font-variant-numeric:tabular-nums}
.hero-annot .dimtext{font-size:12px}
.photo-open{position:absolute;right:calc(3.85% + 12px);bottom:calc(6.875% + 12px);z-index:3;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 14px;background:var(--navy);color:var(--line);border:1px solid var(--line-dim);font-size:14px;font-weight:500;border-radius:2px;transition:background var(--t-micro)}
.photo-open svg{width:18px;height:18px;fill:none;stroke:var(--signal);stroke-width:1.8;transform:rotate(-45deg);transition:transform var(--t-ui) var(--ease-out)}
.photo-open:hover{background:var(--navy-2)}
.photo-open:hover svg{transform:rotate(0)}
.title-block{grid-column:1/span 7;grid-row:2;align-self:end;display:grid;grid-template-columns:.7fr 1.5fr 1.4fr 1.1fr;border:1px solid var(--line-dim);background:rgba(13,32,56,.82)}
.title-block>div{padding:12px 16px;border-left:1px solid var(--line-dim);min-width:0}
.title-block>div:first-child{border-left:0}
.title-block dt{font-size:12px;color:var(--line-soft);margin-bottom:4px}
.title-block dd{font-size:15px;line-height:1.35;font-weight:500}
.title-block a{text-decoration:none;font-variant-numeric:tabular-nums}
.title-block a:hover{text-decoration:underline}

/* Load sequence (JS + motion allowed). Final states are the defaults above. */
@media (prefers-reduced-motion:no-preference){
  .js .pour-line .solid{clip-path:inset(100% -8% -40% -8%)}
  .js .hero-photo{clip-path:inset(100% 0 0 0)}
  .js .hero-photo img{transform:scale(1.14)}
  .js .hero-annot path{stroke-dasharray:1;stroke-dashoffset:1}
  .js .hero-annot text,.js .hero-kicker,.js .hero-lead,.js .hero-actions,.js .title-block,.js .photo-open{opacity:0}
  .js.is-ready .pour-line .solid{animation:pourText 1.15s var(--ease-io) forwards;animation-delay:calc(.55s + var(--i,0) * .2s)}
  .js.is-ready .pour-line:nth-child(2) .solid{--i:1}
  .js.is-ready .pour-line:nth-child(3) .solid{--i:2}
  .js.is-ready .hero-photo{animation:pour 1.5s .35s var(--ease-io) forwards}
  .js.is-ready .hero-photo img{animation:settle 2.2s .35s var(--ease-out) forwards}
  .js.is-ready .pour-edge{animation:edge 1.5s .35s var(--ease-io) forwards}
  .js.is-ready .hero-annot path{animation:draw 1.4s var(--ease-io) forwards}
  .js.is-ready .hero-annot .axis{animation-delay:.1s}
  .js.is-ready .hero-annot .bubble path{animation-delay:.5s}
  .js.is-ready .hero-annot .level,.js.is-ready .hero-annot .dimline{animation-delay:.9s}
  .js.is-ready .hero-annot text{animation:fade .6s 1.3s forwards}
  .js.is-ready .hero-kicker{animation:rise .8s .2s var(--ease-out) forwards}
  .js.is-ready .hero-lead{animation:rise .8s 1.2s var(--ease-out) forwards}
  .js.is-ready .hero-actions{animation:rise .8s 1.35s var(--ease-out) forwards}
  .js.is-ready .title-block{animation:rise .8s 1.5s var(--ease-out) forwards}
  .js.is-ready .photo-open{animation:fade .5s 1.9s forwards}
}
@keyframes pour{to{clip-path:inset(0 0 0 0)}}
@keyframes pourText{from{clip-path:inset(100% -8% -40% -8%)}to{clip-path:inset(-30% -8% -40% -8%)}}
@keyframes settle{to{transform:scale(1)}}
@keyframes edge{0%{opacity:1;transform:translateY(100%)}85%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(0)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* Statement */
.statement{padding-block:clamp(96px,13vw,190px)}
.statement-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:40px}
.statement .sheet-tag{grid-column:1/span 2;align-self:start;margin-top:.9em;color:var(--cyan)}
.statement-text{grid-column:3/span 10;font-size:clamp(1.85rem,3.7vw,3.9rem);line-height:1.2;letter-spacing:-.032em;font-weight:600;max-width:24ch;text-wrap:pretty}
.js .statement-text .w{color:#80858e;transition:color .3s linear}
.js .statement-text .w.is-lit{color:var(--ink)}
.statement-note{grid-column:3/span 5;font-size:18px;line-height:1.6;color:var(--muted);max-width:44ch}

/* Build: phases with a drawing that assembles */
.build{padding-block:clamp(80px,9vw,140px) clamp(60px,8vw,120px);background-color:var(--paper);background-image:linear-gradient(rgba(29,78,158,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(29,78,158,.07) 1px,transparent 1px);background-size:24px 24px;border-top:1px solid var(--rule)}
.build-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;margin-bottom:clamp(40px,6vw,80px)}
.build-head .sheet-tag{grid-column:1/span 2;color:var(--cyan);margin-top:.7em;align-self:start}
.build-head h2{grid-column:3/span 9;font-size:clamp(2rem,4.2vw,4.2rem);line-height:1.22;letter-spacing:-.04em;font-weight:700;max-width:19ch;text-wrap:balance}
.build-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:start}
.build-stage{grid-column:1/span 7;position:sticky;top:calc(var(--header) + 24px)}
.build-figure{background:var(--paper);border:1px solid var(--rule);padding:clamp(14px,2vw,26px);position:relative}
.build-figure::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(29,78,158,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(29,78,158,.09) 1px,transparent 1px);background-size:20px 20px;pointer-events:none}
.build-svg{position:relative;width:100%;height:auto;max-height:calc(100svh - var(--header) - 230px);fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:butt;stroke-linejoin:miter}
.build-svg{stroke-width:1.6}
.js .build-figure:not([data-built="1"]) .string{opacity:0!important}
.build-svg .thin{stroke-width:.9;opacity:.7}
.build-svg .dash{stroke-dasharray:5 5}
.build-svg .solid{fill:rgba(17,22,31,.14)}
.build-svg .pipe{stroke:var(--signal);stroke-width:2.2}
.build-svg .accent{stroke:var(--cyan);stroke-width:2}
.build-svg text{fill:var(--ink);stroke:none;font:500 12px var(--font);font-variant-numeric:tabular-nums}
.build-figure figcaption{position:relative;margin-top:12px;font-size:14px;font-weight:600;color:var(--cyan);font-variant-numeric:tabular-nums}
.js .build-figure .layer path{stroke-dasharray:1 1;stroke-dashoffset:1;transition:stroke-dashoffset 1s var(--ease-io),fill-opacity .5s;fill-opacity:0}
.js .build-figure .layer path:nth-child(2){transition-delay:.12s}
.js .build-figure .layer path:nth-child(3){transition-delay:.24s}
.js .build-figure .layer path:nth-child(4){transition-delay:.36s}
.js .build-figure .layer text{opacity:0;transition:opacity .4s .5s}
.js .build-figure .layer.is-built path{stroke-dashoffset:0;fill-opacity:1}
.js .build-figure .layer.is-built text{opacity:1}
.js .build-figure .layer.is-built path.dash{stroke-dasharray:5 5;stroke-dashoffset:0}
.js .build-figure .layer path.dash{stroke-dasharray:5 5;stroke-dashoffset:0;opacity:0;transition:opacity .6s .3s}
.js .build-figure .layer.is-built path.dash{opacity:1}
.js .build-figure .layer.is-built path.thin.dash{opacity:.7}
.schedule{margin-top:18px}
.schedule p{font-size:13px;color:var(--muted);margin-bottom:10px}
.schedule ol{display:grid;gap:6px}
.schedule li{display:grid;grid-template-columns:86px 1fr;align-items:center;gap:12px;font-size:13px;font-weight:500}
.schedule i{position:relative;height:10px;background:rgba(17,22,31,.07);display:block}
.schedule i::after{content:"";position:absolute;top:0;bottom:0;left:calc(var(--from) * 1%);width:calc((var(--to) - var(--from)) * 1%);background:var(--ink);transform-origin:left;transition:transform .7s var(--ease-out),background .3s}
.js .schedule li:not(.is-on) i::after{transform:scaleX(0)}
.schedule li.is-now i::after{background:var(--signal)}
.phase-list{grid-column:9/span 4;counter-reset:phase}
.phase{padding-block:clamp(40px,11vh,110px);border-top:1px solid var(--rule);min-height:min(62vh,640px);transition:opacity var(--t-ui)}
.phase:first-child{padding-top:6px;border-top:0}
.js .phase:not(.is-active){opacity:.4}
.phase-no{display:block;font-size:clamp(44px,4.4vw,64px);font-weight:300;line-height:1;letter-spacing:-.04em;color:var(--cyan);font-variant-numeric:tabular-nums;margin-bottom:18px}
.phase h3{font-size:clamp(1.5rem,2.1vw,2.1rem);line-height:1.1;letter-spacing:-.03em;font-weight:700;margin-bottom:14px}
.phase p{color:var(--muted);max-width:40ch}
.phase .phase-out{margin-top:18px;padding-left:14px;border-left:2px solid var(--signal);color:var(--ink);font-weight:500;font-size:16px}

/* Works */
.works{background:var(--navy);color:var(--line);padding-block:clamp(80px,9vw,140px)}
.works-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:24px;align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.works-head .sheet-tag{grid-column:1/-1;color:var(--signal)}
.works-head h2{grid-column:1/span 7;font-size:clamp(4rem,12.5vw,12.5rem);line-height:.82;letter-spacing:-.065em;font-weight:800;margin-left:-.05em}
.works-intro{grid-column:8/span 5;color:var(--line-soft);font-size:18px;max-width:38ch;padding-bottom:.6em}
.filter-bar{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:24px;border-top:1px solid var(--line-dim)}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters button{min-height:44px;padding:8px 16px;border:1px solid var(--line-dim);background:transparent;color:var(--line);font-size:15px;font-weight:500;border-radius:2px;transition:background var(--t-micro),color var(--t-micro),border-color var(--t-micro)}
.filters button:hover{border-color:var(--line-soft)}
.filters button[aria-pressed=true]{background:var(--signal);border-color:var(--signal);color:var(--ink);font-weight:600}
#workCount{font-variant-numeric:tabular-nums;color:var(--line-soft);font-size:15px}
.works-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:start}
.work-list{grid-column:1/span 7;border-bottom:1px solid var(--line-dim)}
.work-row{display:grid;grid-template-rows:1fr;border-top:1px solid var(--line-dim);transition:grid-template-rows .5s var(--ease-io),opacity .35s,border-color .35s}
.work-row.is-out{grid-template-rows:0fr;opacity:0;border-top-color:transparent}
.work-inner{min-height:0;overflow:hidden}
.work-open{width:100%;display:grid;grid-template-columns:118px minmax(0,1fr) auto 32px;align-items:baseline;column-gap:20px;padding:26px 4px 8px;background:none;border:0;color:inherit;text-align:left}
.work-thumb{display:none}
.work-type{font-size:13px;font-weight:600;color:var(--signal);font-variant-numeric:tabular-nums}
.work-title{font-size:clamp(1.45rem,2.6vw,2.6rem);line-height:1.16;letter-spacing:-.035em;font-weight:600;transition:transform var(--t-ui) var(--ease-out)}
.work-place{font-size:15px;color:var(--line-soft);white-space:nowrap}
.work-arrow{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;align-self:center;transform:rotate(-45deg);transition:transform var(--t-ui) var(--ease-out),stroke var(--t-micro)}
.work-note{padding:0 4px 26px calc(118px + 24px);font-size:15px;color:var(--line-soft);max-width:64ch}
.work-open:hover .work-title,.work-open:focus-visible .work-title,.work-row.is-current .work-title{transform:translateX(14px)}
.work-open:hover .work-arrow,.work-open:focus-visible .work-arrow,.work-row.is-current .work-arrow{transform:rotate(0);stroke:var(--signal)}
.work-open:focus-visible{outline-offset:-3px}
.work-preview{grid-column:9/span 4;position:sticky;top:calc(var(--header) + 32px)}
.preview-frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--navy-2);border:1px solid var(--line-dim)}
.preview-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.preview-frame img.is-active{opacity:1}
.scaffold{position:absolute;inset:0;display:flex;pointer-events:none}
.scaffold i{flex:1;background:var(--cyan);border-right:1px solid rgba(233,239,250,.35);transform:scaleY(0);transform-origin:bottom}
.scaffold i:last-child{border-right:0}
.preview-caption{display:flex;justify-content:space-between;gap:16px;margin-top:14px;font-size:14px;color:var(--line-soft)}
.preview-caption span:first-child{color:var(--signal);font-weight:600}

/* Services: wall section */
.services{background:var(--concrete);padding-block:clamp(80px,9vw,140px)}
.services-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center}
.services-copy{grid-column:1/span 6}
.services .sheet-tag{color:var(--cyan);margin-bottom:22px}
.services h2{font-size:clamp(2rem,3.8vw,3.7rem);line-height:1.12;letter-spacing:-.04em;font-weight:700;max-width:16ch;margin-bottom:clamp(30px,4vw,48px);text-wrap:balance}
.service-tabs{display:flex;flex-direction:column;border-top:1px solid var(--rule);margin-bottom:28px}
.service-tabs button{display:flex;align-items:center;gap:16px;min-height:60px;padding:8px 0;border:0;border-bottom:1px solid var(--rule);background:none;text-align:left;font-size:clamp(18px,1.6vw,22px);font-weight:500;letter-spacing:-.015em;position:relative}
.service-tabs b{display:inline-grid;place-items:center;width:38px;height:38px;border:1.5px solid var(--ink);border-radius:50%;font-size:15px;font-weight:700;flex-shrink:0;transition:background var(--t-ui),color var(--t-ui)}
.service-tabs button::after{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}
.service-tabs button[aria-selected=true]{font-weight:700}
.service-tabs button[aria-selected=true] b{background:var(--ink);color:var(--concrete)}
.service-tabs button[aria-selected=true]::after{transform:scaleX(1)}
.service-tabs button:hover span{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.service-panel h3{font-size:24px;letter-spacing:-.02em;margin-bottom:10px}
.service-panel p{max-width:46ch;color:#363c47}
.service-panel .service-scope{margin-top:12px;font-size:14px;font-weight:600;color:var(--cyan)}
.service-panel+.service-panel{margin-top:32px}
.service-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px;margin-top:22px}
.js .service-panels{display:grid}
.js .service-panel{grid-area:1/1;margin:0;transition:opacity var(--t-ui),transform var(--t-ui) var(--ease-out)}
.js .service-tabs~.service-panels .service-panel h3{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.js .service-panel:not(.is-active){visibility:hidden;opacity:0;transform:translateY(8px)}
.wall-figure{grid-column:8/span 5;position:relative}
.wall-svg{width:100%;height:auto;max-height:78svh;fill:none;stroke:var(--ink);stroke-width:1.4}
.wall-svg .thin{stroke-width:.8}
.wall-svg [data-part]{transition:opacity .45s,stroke .45s}
.wall-svg [data-part] path:first-child{fill:rgba(17,22,31,.04);transition:fill .45s}
.wall-svg .context{opacity:.55}
.wall-svg .leader{stroke-width:1;stroke-dasharray:3 4}
.wall-svg .mark path{fill:var(--concrete);transition:fill .3s}
.wall-svg .mark text{fill:var(--ink);stroke:none;font:700 16px var(--font);transition:fill .3s}
.wall-figure figcaption{font-size:14px;color:#3c424d;margin-top:10px}
.wall-figure[data-service] [data-part]{opacity:.28}
.wall-figure[data-service=a] [data-part~=a],.wall-figure[data-service=b] [data-part~=b],.wall-figure[data-service=c] [data-part~=c]{opacity:1;stroke:var(--cyan)}
.wall-figure[data-service=a] [data-part~=a] path:first-child,.wall-figure[data-service=b] [data-part~=b] path:first-child,.wall-figure[data-service=c] [data-part~=c] path:first-child{fill:rgba(29,78,158,.14)}
.wall-figure[data-service=a] [data-mark=a] path,.wall-figure[data-service=b] [data-mark=b] path,.wall-figure[data-service=c] [data-mark=c] path{fill:var(--ink)}
.wall-figure[data-service=a] [data-mark=a] text,.wall-figure[data-service=b] [data-mark=b] text,.wall-figure[data-service=c] [data-mark=c] text{fill:var(--concrete)}
html:not(.js) .wall-figure [data-part]{opacity:1}

/* Finale with tape measure */
.finale{padding-block:clamp(90px,11vw,170px) clamp(80px,9vw,140px);overflow:hidden}
.finale .sheet-tag{color:var(--cyan);margin-bottom:26px}
.finale-title{font-size:clamp(3rem,9.6vw,10rem);line-height:.9;letter-spacing:-.06em;font-weight:800;max-width:11ch;text-wrap:balance}
.tape-wrap{margin-block:clamp(32px,5vw,64px);padding-left:max(calc((100vw - var(--max)) / 2 + var(--gutter) - 4px),calc(var(--gutter) - 4px));overflow:hidden}
.tape-svg{display:block;width:100%;height:auto;min-width:760px}
.tape-band{fill:var(--signal)}
.tape-ticks{stroke:var(--ink);stroke-width:2;fill:none}
.tape-nums text{fill:var(--ink);font:700 20px var(--font);font-variant-numeric:tabular-nums}
.tape-hook{fill:var(--ink)}
.tape-case rect{fill:var(--navy)}
.tape-reel circle,.tape-reel path{fill:none;stroke:var(--line);stroke-width:2}
.finale-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:36px;align-items:start}
.finale-lead{grid-column:1/span 5;font-size:clamp(19px,1.6vw,23px);line-height:1.5;max-width:34ch}
.finale-actions{grid-column:7/span 6;display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.finale-phone{font-size:clamp(2.2rem,4.6vw,4.4rem);font-weight:700;letter-spacing:-.045em;line-height:1;text-decoration:none;font-variant-numeric:tabular-nums;background-image:linear-gradient(var(--signal),var(--signal));background-size:0 4px;background-position:0 100%;background-repeat:no-repeat;padding-bottom:8px;transition:background-size .5s var(--ease-out)}
.finale-phone:hover,.finale-phone:focus-visible{background-size:100% 4px}
.finale-note{font-size:15px;color:var(--muted)}

/* Footer with crane */
.site-footer{background:var(--navy);color:var(--line);position:relative;overflow:hidden;background-image:linear-gradient(rgba(233,239,250,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(233,239,250,.05) 1px,transparent 1px);background-size:32px 32px}
.footer-grid{max-width:var(--max);margin-inline:auto;padding:clamp(70px,8vw,110px) var(--gutter) 36px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:end}
.footer-copy{grid-column:1/span 6;grid-row:1;position:relative;z-index:2}
.footer-word{display:flex;align-items:center;flex-wrap:wrap;gap:0 .25em;font-size:clamp(2.8rem,6.6vw,6.4rem);font-weight:800;letter-spacing:-.06em;line-height:.95;margin-bottom:clamp(30px,4vw,52px)}
.footer-word svg{width:.82em;height:.82em;fill:none;stroke:var(--signal);stroke-width:2.6;margin-right:.08em}
.footer-word span{font-weight:300;color:var(--line-soft)}
.footer-block{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-dim)}
.footer-block>div{padding:16px 16px 18px 0;border-bottom:1px solid var(--line-dim)}
.footer-block dt{font-size:12px;color:var(--line-soft);margin-bottom:6px}
.footer-block dd{font-size:16px;line-height:1.45}
.footer-block a{text-decoration:none}
.footer-block a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-links{grid-row:span 2}
.footer-links dd{display:flex;flex-direction:column}
.footer-links a{display:inline-flex;align-items:center;min-height:36px;font-variant-numeric:tabular-nums}
.footer-bottom{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:28px;font-size:14px;color:var(--line-soft)}
.footer-bottom a{color:var(--line)}
.footer-top{margin-left:auto}
.crane{grid-column:7/span 6;grid-row:1;position:relative;align-self:end;margin-bottom:-36px}
.crane-svg{display:block;width:100%;height:auto;fill:none;stroke:var(--line);stroke-width:1.3;opacity:.92}
.crane-svg path{vector-effect:non-scaling-stroke}
.crane-svg .solid{fill:rgba(233,239,250,.18)}
.crane-cable{stroke:var(--line);stroke-width:1.2;vector-effect:non-scaling-stroke}
.crane-light{fill:var(--signal);stroke:none}
@media (prefers-reduced-motion:no-preference){.crane-light{animation:blink 2.4s steps(1) infinite}}
@keyframes blink{50%{opacity:.15}}
.crane-hook{position:absolute;left:var(--hook-x,50.5%);top:var(--hook-y,41%);transform:translate(-50%,0);display:flex;flex-direction:column;align-items:center;text-decoration:none;min-width:44px}
.hook-eye{width:16px;height:16px;border:2px solid var(--line);border-radius:50%;margin-bottom:-2px}
.hook-load{display:grid;place-items:center;min-width:76px;min-height:52px;padding:8px 14px;background:var(--signal);color:var(--ink);font-weight:700;font-size:17px;border:2px solid var(--ink);transition:transform var(--t-ui) var(--ease-out),background var(--t-micro)}
.crane-hook:hover .hook-load,.crane-hook:focus-visible .hook-load{transform:translateY(-6px);background:var(--line)}
.crane-hook:focus-visible{outline:none}
.crane-hook:focus-visible .hook-load{outline:3px solid var(--line);outline-offset:3px}

/* Sheet menu: a folded drawing that unfolds */
.sheet-menu{position:fixed;inset:0 0 auto auto;margin:calc(var(--header) + 10px) 16px auto auto;width:min(680px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - var(--header) - 26px);padding:0;border:0;background:transparent;color:var(--line);overflow:visible;font-family:var(--font)}
.sheet-menu:not([open]){display:none}
.sheet-menu::backdrop{background:rgba(9,18,33,.55);backdrop-filter:blur(3px)}
.fold-stack{perspective:1600px;max-height:inherit;overflow:auto;overscroll-behavior:contain}
.fold{position:relative;background:#16346e;border:1px solid rgba(233,239,250,.3);border-top-width:0;transform-origin:top center;backface-visibility:hidden;background-image:linear-gradient(rgba(233,239,250,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(233,239,250,.07) 1px,transparent 1px);background-size:24px 24px}
.fold-1{border-top-width:1px}
.fold-2{background-color:#133063}
.fold::after{content:"";position:absolute;left:0;right:0;top:0;height:18px;background:linear-gradient(rgba(0,0,0,.18),transparent);pointer-events:none}
.fold-1::after{display:none}
.fold-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 14px 14px 24px;font-weight:600}
.fold-close{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line-dim);background:transparent;color:var(--line);border-radius:2px}
.fold-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6}
.fold-close:hover{background:rgba(233,239,250,.08)}
.sheet-links a{display:grid;grid-template-columns:64px 1fr auto;align-items:baseline;gap:16px;padding:16px 24px;border-top:1px solid var(--line-dim);text-decoration:none;transition:background var(--t-micro)}
.sheet-links li:first-child a{border-top:0}
.sheet-links b{font-size:14px;color:var(--signal);font-variant-numeric:tabular-nums}
.sheet-links span{font-size:clamp(28px,4.2vw,44px);font-weight:700;letter-spacing:-.04em;line-height:1.05;transition:transform var(--t-ui) var(--ease-out)}
.sheet-links small{font-size:14px;color:var(--line-soft)}
.sheet-links a:hover,.sheet-links a:focus-visible{background:rgba(233,239,250,.07)}
.sheet-links a:hover span,.sheet-links a:focus-visible span{transform:translateX(10px)}
.sheet-links a:focus-visible{outline-offset:-4px}
.fold-block{display:grid;grid-template-columns:1fr 1.3fr auto;align-items:center}
.fold-block>div{padding:16px 24px;border-left:1px solid var(--line-dim)}
.fold-block>div:first-child{border-left:0}
.fold-block dt{font-size:12px;color:var(--line-soft)}
.fold-block dd{font-weight:500}
.fold-block a{text-decoration:none}
.fold-cta{padding:12px 16px!important}

/* Project sheet (request form) */
.project-sheet{width:min(1180px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--font);overflow:auto;overscroll-behavior:contain}
.project-sheet:not([open]){display:none}
.project-sheet::backdrop{background:rgba(9,18,33,.66);backdrop-filter:blur(4px)}
.ps-shell{padding:clamp(18px,2.4vw,30px)}
.ps-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:14px;border-bottom:2px solid var(--ink)}
.ps-code{font-size:13px;font-weight:600;color:var(--cyan);font-variant-numeric:tabular-nums}
.ps-head h2{font-size:clamp(28px,3.2vw,42px);letter-spacing:-.04em;line-height:1.05;font-weight:700}
.ps-close{display:grid;place-items:center;width:46px;height:46px;border:1.5px solid var(--ink);background:none;border-radius:2px;transition:background var(--t-micro),color var(--t-micro)}
.ps-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7}
.ps-close:hover{background:var(--ink);color:var(--paper)}
.ps-note{font-size:14px;color:var(--muted);margin:12px 0 22px}
.ps-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,40px);align-items:start}
.ps-plan{position:sticky;top:0;border:1px solid var(--rule);background:var(--paper);background-image:linear-gradient(rgba(29,78,158,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(29,78,158,.1) 1px,transparent 1px);background-size:20px 20px;padding:14px}
.plan-svg{width:100%;height:auto;display:block;fill:none;stroke:var(--ink);stroke-width:1.5}
.plan-svg path,.plan-svg rect,.plan-svg line,.plan-svg circle{vector-effect:non-scaling-stroke}
.plan-svg .wall{stroke-width:4}
.plan-svg .exist{stroke:#7b818c;stroke-dasharray:6 4;stroke-width:2.5}
.plan-svg .new{stroke:var(--signal);stroke-width:2.5}
.plan-svg .thin{stroke-width:1}
.plan-svg .col{fill:var(--ink);stroke:none}
.plan-svg .hatch{stroke:#7b818c;stroke-width:1}
.plan-svg .dim{stroke:var(--cyan);stroke-width:1}
.plan-svg text{fill:var(--cyan);stroke:none;font:600 15px var(--font);font-variant-numeric:tabular-nums}
.plan-svg .lvl{fill:var(--ink)}
.ps-plan figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}
#planScale{color:var(--cyan)}
#projectForm{display:grid;gap:18px}
#projectForm[hidden]{display:none}
#projectForm fieldset{border:0;padding:0;margin:0;min-width:0}
#projectForm legend,#projectForm label{font-size:14px;font-weight:600}
#projectForm legend{margin-bottom:8px;padding:0}
#projectForm label{display:grid;gap:7px;align-content:start}
#projectForm label small{font-weight:400;color:var(--muted)}
#projectForm input:not([type=radio]):not([type=range]),#projectForm select,#projectForm textarea{width:100%;min-height:48px;padding:10px 12px;border:1.5px solid rgba(17,22,31,.45);border-radius:2px;background:#fbfbf9;font-size:16px;font-weight:400;transition:border-color var(--t-micro)}
#projectForm textarea{resize:vertical;min-height:84px}
#projectForm input:focus-visible,#projectForm select:focus-visible,#projectForm textarea:focus-visible{outline:3px solid var(--cyan);outline-offset:1px;border-color:var(--ink)}
#projectForm [aria-invalid=true]{border-color:var(--error)!important}
.field-error{font-size:13px;font-weight:500;color:var(--error);min-height:0}
.field-error:empty{display:none}
.ps-types{display:flex;flex-wrap:wrap;gap:8px}
.ps-types legend{width:100%}
.ps-types label,.ps-levels label{position:relative;display:block!important}
.ps-types input,.ps-levels input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.ps-types span,.ps-levels span{display:flex;align-items:center;justify-content:center;min-height:46px;padding:8px 14px;border:1.5px solid rgba(17,22,31,.45);border-radius:2px;font-weight:500;transition:background var(--t-micro),color var(--t-micro),border-color var(--t-micro)}
.ps-types input:checked+span,.ps-levels input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600}
.ps-types input:focus-visible+span,.ps-levels input:focus-visible+span{outline:3px solid var(--cyan);outline-offset:2px}
.ps-types label:hover span,.ps-levels label:hover span{border-color:var(--ink)}
.ps-levels>div,.ps-levels{display:flex;flex-wrap:wrap;gap:6px}
.ps-levels legend{width:100%}
.ps-levels span{min-width:54px;padding-inline:10px;font-variant-numeric:tabular-nums}
.ps-levels input:disabled+span{opacity:.35}
.ps-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.area-pair{display:grid;grid-template-columns:1fr 128px;align-items:center;gap:12px;font-weight:400}
.area-pair input[type=range]{width:100%;accent-color:var(--signal);min-height:44px;margin:0}
.area-num{position:relative}
.area-num input{padding-right:40px!important;font-variant-numeric:tabular-nums}
.area-num>span{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:15px;color:var(--muted)}
.ps-wide{grid-column:1/-1}
.ps-submit{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;padding-top:16px;border-top:1px solid var(--rule)}
.ps-submit p{font-size:14px;color:var(--muted)}
.ps-receipt{position:relative;padding:12px 0 6px}
.ps-receipt:focus{outline:none}
.ps-receipt h3{font-size:clamp(26px,3vw,38px);letter-spacing:-.04em;line-height:1.05;margin-bottom:10px;max-width:14ch}
.ps-receipt>p{color:var(--muted);max-width:44ch}
#receiptList{display:grid;grid-template-columns:auto 1fr;margin:22px 0;border-top:1px solid var(--rule)}
#receiptList dt,#receiptList dd{padding:10px 0;border-bottom:1px solid var(--rule)}
#receiptList dt{font-size:14px;color:var(--muted);padding-right:22px}
#receiptList dd{font-weight:500;overflow-wrap:anywhere;white-space:pre-line}
.receipt-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px}
.stamp{position:absolute;right:0;top:0;width:150px;height:150px;border:4px double var(--cyan);border-radius:50%;display:grid;place-content:center;text-align:center;color:var(--cyan);transform:rotate(-12deg);font-weight:800;font-size:22px;line-height:1;letter-spacing:.02em}
.stamp small{font-size:14px;font-weight:600;margin-top:6px}
@media (prefers-reduced-motion:no-preference){.ps-receipt:not([hidden]) .stamp{animation:stamp .55s .1s cubic-bezier(.3,1.6,.5,1) both}}
@keyframes stamp{from{opacity:0;transform:rotate(-30deg) scale(2.2)}to{opacity:1;transform:rotate(-12deg) scale(1)}}
html.modal-lock{overflow:hidden}

/* Gallery viewer, Meridian theme lives in shared/project-gallery.css */

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  :root{--gutter:44px}
  .sheet-now{display:none}
  .header-phone span{display:none}
  .hero-copy{grid-column:1/span 7}
  .hero-plan{grid-column:8/span 5}
  .title-block{grid-template-columns:repeat(2,minmax(0,1fr))}
  .title-block>div:nth-child(3){border-left:0}
  .title-block>div:nth-child(n+3){border-top:1px solid var(--line-dim)}
  .phase-list{grid-column:8/span 5}
}
@media (max-width:960px){
  :root{--gutter:32px}
  .hero-grid{grid-template-rows:auto auto auto;row-gap:40px}
  .hero-copy{grid-column:1/-1}
  .hero-plan{grid-column:1/span 9;grid-row:2;justify-self:start}
  .hero-frame{width:min(100%,560px)}
  .title-block{grid-column:1/-1;grid-row:3}
  .statement .sheet-tag{grid-column:1/-1;margin:0}
  .statement-text,.statement-note{grid-column:1/-1}
  .build-head .sheet-tag,.build-head h2{grid-column:1/-1}
  .build-head h2{margin-top:18px}
  .build-stage{grid-column:1/span 6}
  .phase-list{grid-column:7/span 6}
  .works-head h2{grid-column:1/-1}
  .works-intro{grid-column:1/span 9}
  .work-list{grid-column:1/span 7}
  .work-preview{grid-column:8/span 5}
  .work-open{grid-template-columns:minmax(0,1fr) 28px;row-gap:6px}
  .work-type{grid-row:1;grid-column:1}
  .work-title{grid-row:2;grid-column:1}
  .work-place{grid-row:3;grid-column:1}
  .work-arrow{grid-row:1/span 3;grid-column:2}
  .work-note{padding-left:4px}
  .services-copy{grid-column:1/span 7}
  .wall-figure{grid-column:8/span 5}
  .finale-lead{grid-column:1/-1}
  .finale-actions{grid-column:1/-1}
  .footer-copy{grid-column:1/-1;grid-row:2}
  .crane{grid-column:4/-1;grid-row:1;margin:0 calc(var(--gutter) * -1) -40px 0}
}
@media (max-width:760px){
  :root{--gutter:20px;--header:60px}
  body{font-size:16px}
  .site-header{gap:10px}
  .brand{font-size:18px}
  .brand-mark{width:28px;height:28px}
  .site-header .btn{display:none}
  .header-phone{padding:0;width:44px;justify-content:center;border:1px solid var(--line-dim);border-radius:2px}
  .sheets-toggle{padding:8px 12px}
  .hero-grid{min-height:0;padding-top:32px;row-gap:32px}
  .hero-kicker{font-size:14px;margin-bottom:20px}
  .pour-title{font-size:clamp(2.15rem,10.4vw,3.4rem);margin-bottom:22px}
  .hero-lead{font-size:16px;margin-bottom:26px}
  .hero-plan{grid-column:1/-1}
  .hero-frame{width:100%}
  .title-block>div{padding:10px 12px}
  .title-block dd{font-size:14px}
  .statement{padding-block:84px}
  .statement-grid{row-gap:26px}
  .statement-text{font-size:clamp(1.65rem,7.4vw,2.3rem)}
  .statement-note{font-size:16px}
  .build{padding-block:72px 40px}
  .build-head h2{font-size:clamp(1.9rem,8.6vw,2.6rem)}
  .build-grid{display:block}
  .build-stage{position:sticky;top:var(--header);z-index:3;margin-inline:calc(var(--gutter) * -1);padding:10px var(--gutter) 12px;background:var(--paper);border-bottom:1px solid var(--rule)}
  .build-figure{padding:8px}
  .build-svg{max-height:30svh}
  .build-figure figcaption{margin-top:6px;font-size:13px}
  .schedule{display:none}
  .phase{min-height:58svh;padding-block:56px 40px}
  .phase:first-child{padding-top:40px}
  .phase-no{font-size:44px}
  .works{padding-block:72px}
  .works-head h2{font-size:clamp(3.6rem,21vw,6rem)}
  .works-intro{grid-column:1/-1;font-size:16px}
  .filter-bar{display:block}
  .filters{margin-bottom:12px}
  .filters button{padding:8px 12px;font-size:14px}
  .work-list{grid-column:1/-1}
  .work-preview{display:none}
  .work-open{grid-template-columns:minmax(0,1fr) 28px;padding-top:22px}
  .work-thumb{display:block;grid-column:1/-1;grid-row:1;width:100%;aspect-ratio:16/10;object-fit:cover;margin-bottom:14px}
  .work-type{grid-row:2}.work-title{grid-row:3}.work-place{grid-row:4}.work-arrow{grid-row:2/span 3}
  .work-open:hover .work-title,.work-row.is-current .work-title{transform:none}
  .work-note{padding-bottom:22px}
  .services{padding-block:72px}
  .services-grid{display:flex;flex-direction:column;align-items:stretch;gap:30px}
  .wall-figure{order:-1;max-width:420px}
  .wall-svg{max-height:52svh}
  .service-tabs button{font-size:18px}
  .finale{padding-block:84px 72px}
  .finale-title{font-size:clamp(3rem,15.5vw,5.2rem)}
  .tape-svg{min-width:640px}
  .footer-grid{padding-top:20px}
  .crane{grid-column:1/-1;margin:0 calc(var(--gutter) * -1) 10px}
  .footer-block{grid-template-columns:1fr}
  .footer-links{grid-row:auto}
  .footer-top{margin-left:0}
  .sheet-menu{margin:calc(var(--header) + 6px) 8px auto;width:calc(100vw - 16px)}
  .sheet-links a{grid-template-columns:52px 1fr;padding:14px 18px}
  .sheet-links small{grid-column:2}
  .fold-head{padding-left:18px}
  .fold-block{grid-template-columns:1fr 1fr}
  .fold-block>div{padding:14px 18px}
  .fold-cta{grid-column:1/-1;border-left:0!important;border-top:1px solid var(--line-dim)}
  .fold-cta .btn{width:100%}
  .project-sheet{width:100vw;max-height:100dvh;height:100dvh;margin:0;border:0}
  .ps-body{grid-template-columns:1fr}
  .ps-plan{position:relative;padding:8px}
  .plan-svg{max-height:30svh}
  .ps-row{grid-template-columns:1fr}
  .area-pair{grid-template-columns:1fr 116px}
  .stamp{width:110px;height:110px;font-size:17px;top:-6px}
  .ps-receipt h3{max-width:11ch}
}
@media (max-width:380px){
  .brand span{font-size:16px}
  .brand small{display:none}
  .sheets-toggle span{display:none}
  .title-block{grid-template-columns:1fr}
  .title-block>div{border-left:0!important;border-top:1px solid var(--line-dim)}
  .title-block>div:first-child{border-top:0}
}
@media (max-height:560px) and (orientation:landscape){
  .hero-grid{min-height:0}
  .build-svg{max-height:calc(100svh - var(--header) - 90px)}
  .schedule{display:none}
  .phase{min-height:80svh}
}
@media (max-height:560px) and (orientation:landscape) and (max-width:960px){
  .hero-plan{grid-column:1/span 7}
  .hero-frame{width:min(100%,360px)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}
}
.mask-word{display:inline-block;overflow:hidden;vertical-align:top;padding:.12em .04em .16em 0;margin:-.12em -.04em -.16em 0}
.mask-word>span{display:inline-block;will-change:transform}

/* Final audit 2026-10-09: no visible text under 11px (logo taglines 10px) and 44px tap height for footer/header links. */
html body .title-block a,html body .footer-block a,html body .footer-bottom a{display:inline-flex;align-items:center;min-height:44px;margin-block:-12px}
html body .footer-links a{margin-block:0}
