/* ==========================================================================
   Floorever Interiors — theme stylesheet
   Ported from the original static design (index inline CSS + atlas.css).
   ========================================================================== */

/* Self-hosted fonts (latin subset, SIL OFL). Preloaded in layout.php via theme_font(). */
@font-face { font-family:"Playfair Display"; font-style:normal; font-weight:400 700; font-display:swap; src:url(fonts/playfair-500.woff2) format("woff2"); }
@font-face { font-family:"Playfair Display"; font-style:italic; font-weight:400 700; font-display:swap; src:url(fonts/playfair-500-italic.woff2) format("woff2"); }
@font-face { font-family:"Manrope"; font-style:normal; font-weight:200 800; font-display:swap; src:url(fonts/manrope-var.woff2) format("woff2"); }
@font-face { font-family:"DM Mono"; font-style:normal; font-weight:400 500; font-display:swap; src:url(fonts/dm-mono-500.woff2) format("woff2"); }

:root {
  --ink:#10242d; --deep:#0b1920; --teal:#1a3d46; --paper:#f4f5ef;
  --lime:#dcff63; --coral:#eb7f67; --sky:#8ed7e8; --sage:#4b706c;
  --muted:#b9c2c0; --muted-2:#9eaba8; --paper-line:#afbbb7;
  --line:rgba(244,245,239,.2);
  --serif:"Playfair Display", Georgia, serif;
  --sans:Manrope, Arial, sans-serif;
  --mono:"DM Mono", ui-monospace, monospace;
  --gutter:4.1vw;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; color:var(--paper); background:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
img { max-width:100%; }
a { color:inherit; text-decoration:none; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline:2px solid var(--lime); outline-offset:4px; }
button { font:inherit; }
.skip-link { position:absolute; left:-9999px; top:0; z-index:100; padding:.7rem 1rem; background:var(--lime); color:var(--ink); font:500 .75rem var(--mono); }
.skip-link:focus { left:1rem; top:1rem; }

.shell { position:relative; max-width:1680px; min-height:100vh; margin:auto; border-inline:1px solid rgba(244,245,239,.12); }
main { display:block; }

/* ---- Header ------------------------------------------------------------ */
.topbar { position:relative; z-index:20; min-height:77px; display:grid; grid-template-columns:1fr auto 1fr; gap:2rem; align-items:center; padding:0 var(--gutter); border-bottom:1px solid var(--line); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; }
.brand { font-size:1.1rem; font-weight:700; letter-spacing:-.07em; text-transform:none; justify-self:start; }
.topbar__nav { display:flex; align-items:center; gap:2rem; }
.topbar__nav a { transition:color .2s ease; }
.topbar__nav a:hover, .topbar__nav a[aria-current="page"] { color:var(--lime); }
.edition { justify-self:end; color:var(--lime); font:500 .65rem var(--mono); letter-spacing:.07em; }
.menu { display:none; justify-self:end; position:relative; }
.menu summary { list-style:none; cursor:pointer; padding:.55rem .8rem; border:1px solid var(--line); font:500 .65rem var(--mono); letter-spacing:.08em; }
.menu summary::-webkit-details-marker { display:none; }
.menu__close, .menu[open] .menu__open { display:none; }
.menu[open] .menu__close { display:inline; }
.menu__panel { position:absolute; right:0; top:calc(100% + .6rem); min-width:14rem; display:flex; flex-direction:column; background:var(--deep); border:1px solid var(--line); }
.menu__panel a { padding:1rem 1.2rem; border-bottom:1px solid var(--line); font:500 1.4rem var(--serif); letter-spacing:-.03em; text-transform:none; }
.menu__panel a:last-child { border-bottom:0; }
.menu__panel a[aria-current="page"] { color:var(--lime); }
.is-home .topbar { position:absolute; top:0; left:0; right:0; }

/* ---- Breadcrumbs --------------------------------------------------------- */
.crumbs { padding:1rem var(--gutter) 0; font:500 .62rem/1.5 var(--mono); letter-spacing:.07em; text-transform:uppercase; color:var(--muted-2); }
.crumbs ol { display:flex; flex-wrap:wrap; gap:.4rem; margin:0; padding:0; list-style:none; }
.crumbs li + li::before { content:"/"; margin-right:.4rem; opacity:.6; }
.crumbs a:hover { color:var(--lime); }
.crumbs [aria-current] { color:var(--paper); }

/* ---- Shared media slot (fe_media) -------------------------------------- */
.fe-media { position:relative; overflow:hidden; }
.fe-media picture, .fe-media img { display:block; width:100%; height:100%; }
.fe-media img { object-fit:cover; }
.fe-media > .page-head__bg { position:absolute; inset:0; z-index:1; background-size:cover; background-position:center; opacity:0; pointer-events:none; }
.fe-media.bc-dirty > .page-head__bg { opacity:1; }
.fe-media > .page-head__bg[data-empty] { opacity:1; background:repeating-linear-gradient(45deg,rgba(244,245,239,.06) 0 10px,transparent 10px 20px); }

/* ---- Home: masthead --------------------------------------------------- */
.masthead { min-height:100svh; position:relative; isolation:isolate; background:#18343e; overflow:hidden; }
.masthead__photo { position:absolute; inset:0; z-index:-3; }
.masthead__photo img { object-position:var(--hero-position,center); filter:var(--hero-filter,saturate(.93) contrast(1.02)); transition:object-position .7s ease, filter .7s ease; }
.masthead::before { content:""; position:absolute; inset:0; z-index:-2; background:linear-gradient(100deg,rgba(9,25,32,.89) 1%,rgba(9,25,32,.26) 56%,rgba(9,25,32,.5)); pointer-events:none; }
.masthead::after { content:""; z-index:-1; position:absolute; inset:0; background:linear-gradient(0deg,rgba(9,27,35,.73),transparent 35%),repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(244,245,239,.12) 25%); pointer-events:none; }
.hero-copy { min-height:100svh; padding:calc(77px + clamp(5.5rem,13vh,11rem)) var(--gutter) 2.5rem; display:grid; grid-template-columns:repeat(12,1fr); grid-template-rows:auto 1fr auto; }
.eyebrow { grid-column:1/5; margin:0; font-family:var(--mono); font-size:.66rem; line-height:1.45; letter-spacing:.06em; text-transform:uppercase; color:var(--sky); }
.masthead h1 { grid-column:1/9; grid-row:2; align-self:center; margin:0; font:500 clamp(4.4rem,10vw,10.6rem)/.85 var(--serif); letter-spacing:-.075em; max-width:10ch; }
.masthead h1 em { color:var(--lime); font-weight:500; }
.hero-brief { grid-column:10/13; grid-row:2; align-self:end; margin:0 0 1.2rem; font-size:1.02rem; line-height:1.55; max-width:22ch; }
.hero-bottom { grid-column:1/-1; grid-row:3; display:flex; justify-content:space-between; align-items:end; gap:1rem; border-top:1px solid var(--line); padding-top:1rem; }
.scroll-cue, .scene-number { font:500 .66rem var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.scroll-cue:hover { color:var(--lime); }
.scene-number { color:var(--lime); }

/* ---- Home: room scenes ----------------------------------------------- */
.intro { background:var(--paper); color:var(--ink); padding:clamp(5rem,9vw,10rem) var(--gutter) 5rem; display:grid; grid-template-columns:repeat(12,1fr); gap:1.5rem; }
.section-tag { margin:0; font:500 .66rem var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.intro .section-tag { grid-column:1/3; }
.intro h2 { grid-column:4/12; margin:0; font:500 clamp(2.25rem,4.9vw,5.2rem)/1 var(--serif); letter-spacing:-.06em; max-width:14ch; }
.intro h2 i { font-weight:500; color:var(--sage); }
.room-selector { grid-column:4/13; margin-top:3.5rem; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #b7c0bc; border-bottom:1px solid #b7c0bc; }
.room { appearance:none; background:none; border:0; border-right:1px solid #b7c0bc; cursor:pointer; min-height:11rem; padding:1rem 1rem 1.25rem; color:#47615e; text-align:left; display:flex; flex-direction:column; justify-content:space-between; transition:background .3s,color .3s; }
.room:last-child { border-right:0; }
.room:hover, .room[aria-pressed="true"] { background:var(--ink); color:var(--paper); }
.room span:first-child { font:500 .62rem var(--mono); letter-spacing:.06em; }
.room strong { font:500 1.4rem var(--serif); letter-spacing:-.04em; }
.scene-note { grid-column:4/9; margin:1.5rem 0 0; min-height:3em; font-size:.92rem; line-height:1.55; }
.intro__link { grid-column:10/13; align-self:start; justify-self:end; margin-top:1.5rem; }
.text-link { font:500 .7rem var(--mono); letter-spacing:.07em; text-transform:uppercase; border-bottom:1px solid currentColor; padding-bottom:.2rem; transition:opacity .2s; }
.text-link:hover { opacity:.7; }
.fe-admin-notes { grid-column:4/13; margin-top:1rem; padding:1rem; border:1px dashed #9aa6a3; font-size:.85rem; }
.fe-admin-notes p { margin:.4rem 0 0; }

/* ---- Home: editorial ------------------------------------------------- */
.editorial { position:relative; display:grid; grid-template-columns:repeat(12,1fr); min-height:54rem; background:var(--teal); overflow:hidden; }
.editorial-photo { grid-column:6/-1; grid-row:1; min-height:54rem; }
.editorial-photo img { transform:scaleX(-1); object-position:27% center; filter:saturate(.9) contrast(1.05); }
.editorial-photo::after { content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(90deg,var(--teal) 0%,transparent 18%),linear-gradient(180deg,rgba(16,36,45,.05),rgba(16,36,45,.65)); pointer-events:none; }
.editorial-card { grid-column:2/7; grid-row:1; align-self:center; position:relative; z-index:3; background:var(--lime); color:var(--ink); padding:clamp(2rem,4vw,5rem); margin-block:3rem; }
.editorial-card h2 { margin:.8rem 0 1.6rem; font:500 clamp(3rem,5.3vw,6.2rem)/.86 var(--serif); letter-spacing:-.07em; }
.editorial-card__body p { max-width:27rem; font-size:1rem; line-height:1.65; }
.editorial-card__body a { border-bottom:1px solid currentColor; }
.quote-line { margin:3.2rem 0 0; padding-top:.8rem; border-top:1px solid rgba(16,36,45,.36); font:500 .66rem var(--mono); letter-spacing:.04em; text-transform:uppercase; }

/* ---- Home: materials list ------------------------------------------- */
.floor-notes { color:var(--paper); background:var(--teal); padding:clamp(5rem,9vw,9.5rem) var(--gutter); }
.notes-heading { display:flex; justify-content:space-between; gap:1rem; align-items:baseline; margin-bottom:4.5rem; }
.notes-heading h2 { margin:0; font:500 clamp(3rem,6.3vw,6.5rem)/.88 var(--serif); letter-spacing:-.07em; }
.notes-heading p { margin:0; max-width:22ch; color:var(--muted); font-size:.88rem; line-height:1.55; }
.materials { border-top:1px solid var(--line); }
.material { display:grid; grid-template-columns:1fr 1.8fr 1.8fr .35fr; align-items:center; gap:1rem; padding:1.25rem 0; border-bottom:1px solid var(--line); transition:padding .25s, color .25s; }
a.material:hover { padding-inline:1rem; color:var(--lime); }
.material-index { font:500 .65rem var(--mono); color:var(--sky); }
.material h3 { margin:0; font:500 clamp(1.6rem,3vw,3.4rem)/1 var(--serif); letter-spacing:-.05em; }
.material p { margin:0; max-width:31ch; color:var(--muted); font-size:.82rem; line-height:1.5; }
.material .arrow { justify-self:end; font-size:1.5rem; }

/* ---- Home: closing ---------------------------------------------------- */
.closing { background:var(--coral); color:#142e38; padding:clamp(5rem,10vw,11rem) var(--gutter) clamp(3rem,5vw,5rem); }
.closing-grid { display:grid; grid-template-columns:repeat(12,1fr); min-height:28rem; }
.closing h2 { grid-column:1/10; margin:0; align-self:start; font:500 clamp(3.6rem,8.5vw,9.3rem)/.86 var(--serif); letter-spacing:-.075em; max-width:10ch; }
.closing__side { grid-column:10/13; align-self:end; }
.closing__side p { margin:0 0 1.5rem; font-size:1rem; line-height:1.6; }

/* ---- Inner: page hero ------------------------------------------------- */
.page-hero { display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; padding:clamp(4rem,9vw,9rem) var(--gutter) clamp(3.5rem,7vw,7rem); border-bottom:1px solid var(--line); }
.kicker { grid-column:1/4; margin:0; color:var(--sky); font:500 .65rem/1.5 var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.page-hero h1 { grid-column:4/12; margin:0; max-width:11ch; font:500 clamp(3.8rem,8.4vw,9.4rem)/.88 var(--serif); letter-spacing:-.07em; }
.page-hero h1 em, .case-hero h1 em { color:var(--lime); font-weight:500; }
.page-hero .lede { grid-column:9/13; margin:3rem 0 0; align-self:end; font-size:1rem; line-height:1.65; }

.numbers { background:var(--paper); color:var(--ink); display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--paper-line); }
.number { min-height:9.5rem; padding:1.2rem 1.4rem; border-right:1px solid var(--paper-line); display:flex; flex-direction:column; justify-content:space-between; }
.number:last-child { border-right:0; }
.number span { color:#51716c; font:500 .63rem var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.number strong { font:500 clamp(1.65rem,2.7vw,3.1rem)/.95 var(--serif); letter-spacing:-.055em; }

.page-section { padding:clamp(4.5rem,8vw,8.5rem) var(--gutter); }
.page-section--paper { color:var(--ink); background:var(--paper); }
.section-intro { display:grid; grid-template-columns:repeat(12,1fr); gap:1.5rem; margin-bottom:4rem; }
.section-intro--flush { margin-bottom:0; }
.section-intro .kicker { grid-column:1/3; }
.section-intro--paper .kicker { color:#4f706b; }
.section-intro h2 { grid-column:4/11; margin:0; max-width:15ch; font:500 clamp(2.6rem,5vw,5.8rem)/.92 var(--serif); letter-spacing:-.065em; }
.section-intro p { grid-column:4/9; margin:1.3rem 0 0; font-size:.97rem; line-height:1.65; }

/* Photo cards */
.room-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; }
.room-card { min-height:28rem; position:relative; overflow:hidden; grid-column:span 6; display:flex; flex-direction:column; justify-content:space-between; padding:1.4rem; background:#264851; }
.room-card:nth-child(4n+3) { grid-column:2/span 5; min-height:23rem; background:#567079; }
.room-card:nth-child(4n+4) { grid-column:7/span 5; min-height:23rem; background:#937169; }
.room-card__img, .portfolio-image .fe-media { position:absolute; inset:0; }
.room-card__img img, .portfolio-image img { opacity:.82; transition:transform .65s ease, opacity .45s ease; }
.room-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,30,38,.06),rgba(10,30,38,.78)); pointer-events:none; }
.room-card:hover img, .portfolio-card:hover img { transform:scale(1.035); opacity:1; }
.card-index, .room-card__text { position:relative; z-index:1; }
.card-index { font:500 .65rem var(--mono); letter-spacing:.07em; color:var(--lime); text-transform:uppercase; }
.room-card h3 { margin:auto 0 .5rem; font:500 clamp(2.5rem,4.5vw,5rem)/.88 var(--serif); letter-spacing:-.065em; }
.room-card p { margin:0; max-width:31ch; font-size:.85rem; line-height:1.55; }

/* Portfolio */
.portfolio-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; row-gap:3rem; }
.portfolio-card { display:block; grid-column:span 6; color:var(--paper); }
.portfolio-card--offset { grid-column:2/span 5; }
.portfolio-card--right { grid-column:7/span 5; }
.portfolio-image { height:clamp(20rem,43vw,39rem); background:#2d5056; }
.portfolio-card--small .portfolio-image { height:clamp(18rem,31vw,28rem); }
.portfolio-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,30,38,.06),rgba(10,30,38,.5)); pointer-events:none; }
.portfolio-caption { padding-top:1rem; display:grid; grid-template-columns:2.3rem 1fr auto; gap:.5rem; align-items:baseline; border-top:1px solid var(--line); }
.portfolio-caption span { color:var(--sky); font:500 .62rem var(--mono); letter-spacing:.06em; }
.portfolio-caption h3 { margin:0; font:500 clamp(1.7rem,2.7vw,3rem)/1 var(--serif); letter-spacing:-.055em; }
.portfolio-caption p { margin:0; color:var(--muted-2); font-size:.7rem; text-align:right; }
.portfolio-card:hover h3 { color:var(--lime); }

/* Manifesto */
.manifesto { background:var(--coral); color:#16323b; padding:clamp(4.5rem,9vw,9rem) var(--gutter); }
.manifesto-wrap { display:grid; grid-template-columns:repeat(12,1fr); min-height:24rem; }
.manifesto .kicker { grid-column:1/4; color:#16323b; }
.manifesto h2 { grid-column:4/12; margin:0; max-width:10ch; font:500 clamp(3.5rem,7vw,7.8rem)/.87 var(--serif); letter-spacing:-.075em; }
.manifesto__text { grid-column:9/13; margin:3rem 0 0; align-self:end; font-size:1rem; line-height:1.65; }

/* Entries (notebook, guides) */
.entry-list { border-top:1px solid var(--line); }
.page-section--paper .entry-list, .page-section--paper .entry { border-color:var(--paper-line); }
.entry { padding:1.4rem 0 1.8rem; display:grid; grid-template-columns:1fr 2.1fr 2fr .3fr; gap:1rem; align-items:start; border-bottom:1px solid var(--line); transition:padding .25s, color .25s; }
a.entry:hover { padding-inline:1rem; color:var(--lime); }
.page-section--paper a.entry:hover { color:var(--sage); }
.entry__label { color:var(--sky); font:500 .65rem var(--mono); letter-spacing:.05em; text-transform:uppercase; }
.page-section--paper .entry__label { color:#4f706b; }
.entry h2, .entry h3 { margin:0; font:500 clamp(1.9rem,3.1vw,3.5rem)/.98 var(--serif); letter-spacing:-.055em; }
.entry p { margin:.25rem 0 0; color:var(--muted-2); font-size:.9rem; line-height:1.6; }
.page-section--paper .entry p { color:#4f6d69; }
.entry__mark { font-size:1.3rem; text-align:right; }
.notebook-feature { display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; margin-top:4rem; padding-top:1rem; border-top:1px solid var(--line); }
.notebook-feature h2 { grid-column:1/7; margin:0; font:500 clamp(3rem,5vw,5.7rem)/.9 var(--serif); letter-spacing:-.065em; }
.notebook-feature p { grid-column:8/12; margin:3rem 0 0; font-size:1rem; line-height:1.65; }

/* Study pages */
.case-hero { display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; padding:clamp(4rem,8vw,8rem) var(--gutter) 3rem; }
.case-hero .kicker { grid-column:1/4; }
.case-label { grid-column:4/7; margin:0 0 .8rem; color:var(--sky); font:500 .65rem var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.case-hero h1 { grid-column:4/11; margin:0; max-width:9ch; font:500 clamp(4.2rem,9.5vw,10.5rem)/.84 var(--serif); letter-spacing:-.08em; }
.case-hero .lede { grid-column:9/13; margin:2.5rem 0 1rem; align-self:end; font-size:1rem; line-height:1.65; }
.case-image { margin:0; position:relative; height:min(63vw,51rem); min-height:25rem; overflow:hidden; background:#203e47; }
.case-image__media { position:absolute; inset:0; }
.case-image__media img { object-position:var(--img-pos,center); }
.case-image figcaption { position:absolute; z-index:3; right:var(--gutter); bottom:1.2rem; padding:.45rem .6rem; color:var(--paper); background:rgba(11,25,32,.68); font:500 .61rem var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.case-content { display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; }
.case-facts { grid-column:1/4; align-self:start; margin:0; border-top:1px solid var(--line); }
.case-facts div { padding:.85rem 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:5.4rem 1fr; gap:1rem; }
.case-facts dt { color:var(--sky); font:500 .61rem var(--mono); letter-spacing:.05em; text-transform:uppercase; }
.case-facts dd { margin:0; font-size:.79rem; line-height:1.45; }
.case-story { grid-column:5/11; }
.case-story h2 { margin:0 0 2rem; max-width:12ch; font:500 clamp(3rem,5.4vw,6rem)/.89 var(--serif); letter-spacing:-.07em; }
.case-story__body p { max-width:39rem; margin:0 0 1.25rem; font-size:1rem; line-height:1.73; }
.case-story__body a { color:var(--lime); border-bottom:1px solid currentColor; }
.case-story blockquote { max-width:29rem; margin:3rem 0 0; padding-top:1rem; border-top:1px solid var(--line); color:var(--lime); font:500 1.35rem/1.24 var(--serif); letter-spacing:-.035em; }
.material-rhythm { background:var(--paper); color:var(--ink); padding:clamp(3rem,6vw,6rem) var(--gutter); }
.material-rhythm__label { margin:0 0 2.2rem; color:#50706b; font:500 .63rem var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.material-list { border-top:1px solid #abb8b5; }
.material-list div { display:grid; grid-template-columns:1fr 2.1fr 2fr; gap:1rem; align-items:baseline; padding:.9rem 0; border-bottom:1px solid #abb8b5; }
.material-list span { color:#50706b; font:500 .63rem var(--mono); letter-spacing:.06em; }
.material-list strong { font:500 clamp(1.45rem,2.5vw,2.75rem)/1 var(--serif); letter-spacing:-.05em; }
.material-list em { color:#55716d; font-size:.85rem; font-style:normal; line-height:1.45; }
.case-next { display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; padding:clamp(4.5rem,8vw,8rem) var(--gutter); background:var(--coral); color:#16323b; }
.case-next .kicker { grid-column:1/4; color:#16323b; }
.case-next a { grid-column:4/12; display:block; max-width:12ch; font:500 clamp(3.3rem,7vw,7.5rem)/.86 var(--serif); letter-spacing:-.075em; }
.case-next a b { font-weight:500; }
.case-next a span { display:block; margin-bottom:.8rem; font:500 .64rem var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.case-next a:hover { color:var(--paper); }

/* ---- Article / prose ---------------------------------------------------- */
.article { display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; }
.article__meta { grid-column:1/4; align-self:start; position:sticky; top:1.5rem; border-top:1px solid var(--line); }
.page-section--paper .article__meta { border-color:var(--paper-line); }
.article__meta p { margin:0; padding:.8rem 0; border-bottom:1px solid var(--line); color:var(--sky); font:500 .62rem/1.5 var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.page-section--paper .article__meta p { color:#4f706b; border-color:var(--paper-line); }
.article__meta a:hover { color:var(--lime); }
.prose { grid-column:5/12; max-width:44rem; font-size:1.04rem; line-height:1.75; }
.prose > :first-child { margin-top:0; }
.prose h2 { margin:3.2rem 0 1.1rem; font:500 clamp(2rem,3.4vw,3.2rem)/1 var(--serif); letter-spacing:-.05em; }
.prose h3 { margin:2.2rem 0 .7rem; font:600 1.15rem/1.35 var(--sans); letter-spacing:-.01em; }
.prose p { margin:0 0 1.2rem; }
.prose p.lead { font:500 clamp(1.3rem,2vw,1.6rem)/1.4 var(--serif); letter-spacing:-.02em; margin-bottom:2rem; }
.prose ul, .prose ol { margin:0 0 1.4rem; padding-left:1.2rem; }
.prose li { margin:.35rem 0; }
.prose li::marker { color:var(--lime); }
.page-section--paper .prose li::marker { color:var(--coral); }
.prose a { color:var(--lime); border-bottom:1px solid rgba(220,255,99,.5); }
.page-section--paper .prose a { color:var(--sage); border-color:rgba(75,112,108,.5); }
.prose a:hover { border-bottom-color:currentColor; }
.prose blockquote { margin:2.4rem 0; padding:1rem 0 0; border-top:1px solid var(--line); color:var(--lime); font:500 1.45rem/1.28 var(--serif); letter-spacing:-.03em; }
.page-section--paper .prose blockquote { color:var(--sage); border-color:var(--paper-line); }
.prose strong { font-weight:700; }
.prose hr { margin:3rem 0; border:0; border-top:1px solid var(--line); }
.prose table { width:100%; margin:1.6rem 0 2rem; border-collapse:collapse; font-size:.9rem; line-height:1.5; }
.prose th, .prose td { padding:.7rem .6rem .7rem 0; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.prose th { color:var(--sky); font:500 .62rem var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.page-section--paper .prose th, .page-section--paper .prose td { border-color:var(--paper-line); }
.page-section--paper .prose th { color:#4f706b; }

/* ---- FAQ ------------------------------------------------------------------ */
.faq__list { border-top:1px solid var(--paper-line); }
.faq__item { border-bottom:1px solid var(--paper-line); }
.faq__item summary { list-style:none; cursor:pointer; display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:baseline; padding:1.3rem 0; font:500 clamp(1.3rem,2.2vw,2rem)/1.15 var(--serif); letter-spacing:-.035em; }
.faq__item summary::-webkit-details-marker { display:none; }
.faq__item summary::after { content:"+"; font:400 1.4rem var(--sans); transition:transform .25s; }
.faq__item[open] summary::after { transform:rotate(45deg); }
.faq__a { max-width:44rem; padding:0 0 1.5rem; color:#35514f; font-size:.98rem; line-height:1.7; }
.faq__a p { margin:0 0 .8rem; }
.faq__a a { color:var(--sage); border-bottom:1px solid currentColor; }
@media (min-width:761px) { .faq__list, .faq .section-intro + .faq__list { margin-left:calc((100% + 1.5rem) / 12 * 3); } }

/* ---- Contact ------------------------------------------------------------ */
.contact { display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; }
.contact__intro { grid-column:1/6; }
.contact__intro h2 { margin:1.4rem 0 1.6rem; font:500 clamp(3rem,5.6vw,6rem)/.9 var(--serif); letter-spacing:-.07em; }
.contact__lede { max-width:30rem; margin:0 0 2rem; line-height:1.65; }
.contact__aside { max-width:30rem; color:var(--muted-2); font-size:.9rem; line-height:1.65; }
.contact__aside a { color:var(--lime); border-bottom:1px solid currentColor; }
.contact__form { grid-column:7/13; }
.bc-form { display:grid; gap:1.2rem; }
.bc-form__field { display:grid; gap:.45rem; }
.bc-form__field > span { color:var(--sky); font:500 .62rem var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.bc-form input, .bc-form textarea, .bc-form select { width:100%; padding:.8rem 0; border:0; border-bottom:1px solid rgba(244,245,239,.35); background:transparent; color:var(--paper); font:inherit; font-size:1rem; border-radius:0; outline:0; transition:border-color .2s; }
.bc-form select { appearance:none; background:linear-gradient(45deg,transparent 50%,var(--paper) 50%) right 6px center/6px 6px no-repeat, linear-gradient(-45deg,transparent 50%,var(--paper) 50%) right 0 center/6px 6px no-repeat; padding-right:1.5rem; }
.bc-form select option { color:var(--ink); }
.bc-form input:focus, .bc-form textarea:focus, .bc-form select:focus { border-color:var(--lime); }
.bc-form textarea { resize:vertical; min-height:8rem; }
.bc-form__consent { margin:0; color:var(--muted-2); font-size:.78rem; }
.bc-form__consent a { border-bottom:1px solid currentColor; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:1rem 1.6rem; border:1px solid var(--lime); font:500 .7rem var(--mono); letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:background .2s, color .2s; }
.btn-primary { background:var(--lime); color:var(--ink); justify-self:start; }
.btn-primary:hover { background:transparent; color:var(--lime); }
.btn-ghost { background:transparent; color:var(--lime); }
.btn-ghost:hover { background:var(--lime); color:var(--ink); }
.form-notice { padding:.9rem 1rem; margin:0 0 1.2rem; font-size:.9rem; }
.form-notice--ok { background:rgba(220,255,99,.14); border:1px solid rgba(220,255,99,.5); }
.form-notice--err { background:rgba(235,127,103,.14); border:1px solid rgba(235,127,103,.6); }

/* ---- Footer ----------------------------------------------------------- */
.site-footer { background:var(--deep); border-top:1px solid var(--line); }
.site-footer__grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; padding:clamp(3rem,6vw,5rem) var(--gutter) 3rem; }
.site-footer__brand { grid-column:1/6; }
.site-footer__brand .brand { font-size:2.2rem; }
.site-footer__brand p { max-width:30ch; margin:1rem 0 0; color:var(--muted-2); font-size:.9rem; line-height:1.6; }
.site-footer__col { grid-column:span 3; display:flex; flex-direction:column; gap:.65rem; font-size:.9rem; }
.site-footer__col:first-of-type { grid-column:7/10; }
.site-footer__label { margin:0 0 .4rem; color:var(--sky); font:500 .62rem var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.site-footer__col a:hover, .site-footer__bar a:hover { color:var(--lime); }
.site-footer__bar { display:flex; justify-content:space-between; gap:1rem; padding:1.2rem var(--gutter); border-top:1px solid var(--line); font:500 .62rem var(--mono); letter-spacing:.06em; text-transform:uppercase; color:var(--muted-2); }

/* ---- 404 --------------------------------------------------------------- */
.page-hero--404 h1 { max-width:9ch; }

/* ---- Responsive ------------------------------------------------------- */
@media (max-width:1100px) {
  .topbar__nav { gap:1.3rem; }
  .edition { display:none; }
  .topbar { grid-template-columns:1fr auto; }
}
@media (max-width:760px) {
  :root { --gutter:1.25rem; }
  .shell { border:0; }
  .topbar { min-height:66px; }
  .topbar__nav { display:none; }
  .menu { display:block; }

  .hero-copy { padding:calc(66px + 4.5rem) var(--gutter) 1.25rem; }
  .eyebrow { grid-column:1/-1; }
  .masthead h1 { grid-column:1/-1; max-width:8ch; font-size:clamp(3.6rem,17vw,5.4rem); }
  .hero-brief { grid-column:1/-1; grid-row:3; align-self:end; margin:0 0 1.5rem; }
  .hero-bottom { grid-row:4; }
  .intro { display:block; }
  .intro .section-tag { margin-bottom:2.7rem; }
  .intro h2 { max-width:12ch; }
  .room-selector { margin-top:3rem; grid-template-columns:1fr 1fr; }
  .room { min-height:8.4rem; }
  .room:nth-child(2n) { border-right:0; }
  .room:nth-child(-n+2) { border-bottom:1px solid #b7c0bc; }
  .scene-note { margin-top:1.3rem; }
  .intro__link { display:inline-block; }
  .editorial { min-height:44rem; display:block; }
  .editorial-photo { min-height:27rem; margin-left:18%; }
  .editorial-card { position:absolute; left:var(--gutter); right:var(--gutter); bottom:var(--gutter); margin:0; }
  .notes-heading { display:block; margin-bottom:3.1rem; }
  .notes-heading p { margin-top:1.2rem; }
  .material { grid-template-columns:.55fr 1.8fr .25fr; gap:.55rem; }
  .material p { display:none; }
  .closing-grid { display:block; min-height:auto; }
  .closing h2 { max-width:7ch; }
  .closing__side { margin-top:3.5rem; max-width:26ch; }

  .page-hero { padding:3.5rem var(--gutter) 4rem; display:block; }
  .kicker { margin-bottom:2.2rem; }
  .page-hero h1 { max-width:8ch; font-size:clamp(3.2rem,15vw,4.6rem); }
  .page-hero .lede { margin:2.5rem 0 0; max-width:30ch; }
  .numbers { grid-template-columns:1fr 1fr; }
  .number { min-height:7.5rem; border-bottom:1px solid var(--paper-line); }
  .number:nth-child(2n) { border-right:0; }
  .number:nth-last-child(-n+2) { border-bottom:0; }
  .section-intro { display:block; margin-bottom:2.8rem; }
  .section-intro h2 { max-width:12ch; }
  .section-intro p { max-width:34ch; }
  .room-grid, .portfolio-grid { display:block; }
  .room-card, .room-card:nth-child(n) { min-height:21rem; margin-bottom:1rem; }
  .portfolio-card, .portfolio-card--offset, .portfolio-card--right { display:block; margin-bottom:2.7rem; }
  .portfolio-card--small .portfolio-image, .portfolio-image { height:24rem; }
  .portfolio-caption h3 { font-size:2rem; }
  .portfolio-caption p { display:none; }
  .manifesto-wrap { display:block; min-height:0; }
  .manifesto h2 { max-width:8ch; }
  .manifesto__text { max-width:28ch; margin:3rem 0 0; }
  .entry { grid-template-columns:1fr auto; gap:.6rem 1rem; }
  .entry__label, .entry h2, .entry h3, .entry p { grid-column:1/2; }
  .entry__mark { grid-column:2; grid-row:1; }
  .notebook-feature { display:block; }
  .notebook-feature p { margin:2rem 0 0; max-width:30ch; }

  .case-hero { display:block; padding:3.5rem var(--gutter) 3rem; }
  .case-label { margin-bottom:.8rem; }
  .case-hero h1 { max-width:7ch; font-size:clamp(3.6rem,17vw,4.8rem); }
  .case-hero .lede { max-width:30ch; margin:2.5rem 0 0; }
  .case-image { min-height:0; height:26rem; }
  .case-content { display:block; }
  .case-facts { margin-bottom:3.5rem; }
  .case-story h2 { max-width:10ch; }
  .material-list div { grid-template-columns:2.4rem 1fr; }
  .material-list em { grid-column:2; }
  .case-next { display:block; }
  .case-next a { max-width:9ch; }

  .article { display:block; }
  .article__meta { position:static; margin-bottom:2.5rem; }
  .prose { font-size:1rem; }
  .prose table { display:block; overflow-x:auto; }
  .contact { display:block; }
  .contact__form { margin-top:3rem; }
  .site-footer__grid { display:block; }
  .site-footer__col { margin-top:2.2rem; }
  .site-footer__bar { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; }
}
