/* home geometry is emitted inline on elements */

/* --- marquee hero (mqh-) — hero round winner, integrated 2026-07-15 ---------
   Kinetic Ariebella wordmark gliding behind the centered portrait; the front
   band layer is clipped to the portrait width so the type turns white where
   it crosses the photo. Section stays sticky (sticksec) like the old hero. */
.mqh-bg{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.9), rgba(255,255,255,.9)),
    url('../images/pb-blue-booth-wide.jpg') center/cover no-repeat;
  background-attachment:fixed;
}
.mqh-band{position:absolute;left:0;top:50%;transform:translateY(-58%);width:100%;overflow:hidden;pointer-events:none;}
.mqh-track{display:flex;width:max-content;animation:mqh-slide 38s linear infinite;}
.mqh-track span{
  font-family:var(--f-title);font-size:238px;line-height:1;letter-spacing:.08em;
  text-transform:uppercase;white-space:nowrap;padding-right:.45em;
}
.mqh-back span{color:var(--ink);}
.mqh-front{clip-path:inset(0 calc(50% - 231px));}
.mqh-front span{color:var(--white);}
@keyframes mqh-slide{from{transform:translateX(0);}to{transform:translateX(-50%);}}

.mqh-portrait{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-52%);
  width:462px;height:640px;overflow:hidden;margin:0;
  animation:mqh-rise 1.2s .15s cubic-bezier(.2,.7,.2,1) both;
}
.mqh-portrait img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 6s ease;}
.sec-hero-images:hover .mqh-portrait img{transform:scale(1.045);}
@keyframes mqh-rise{from{opacity:0;transform:translate(-50%,-48%);}to{opacity:1;transform:translate(-50%,-52%);}}

.mqh-cta{
  position:absolute;left:50%;top:calc(50% + 238px);transform:translateX(-50%);z-index:3;
  font-family:var(--f-label);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  background:var(--white);color:var(--ink);padding:16px 34px;text-decoration:none;transition:.4s;
  animation:mqh-fade 1.4s .9s both;
}
.mqh-cta:hover{background:var(--ink);color:var(--cream);}
@keyframes mqh-fade{from{opacity:0;}to{opacity:1;}}

.mqh-corner{
  position:absolute;font-family:var(--f-label);font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink);
}
.mqh-tl{top:34px;left:44px;}
.mqh-tr{top:34px;right:112px;text-align:right;}
.mqh-bl{bottom:34px;left:44px;}
.mqh-br{bottom:34px;right:44px;text-align:right;}

/* --- museum hang love stories (hng-) — love-stories round 2 winner, 2026-07-15
   Four portraits sharing one baseline in open white space, each with a plaque
   of numeral + title and a caption that surfaces on hover; resting on one
   print quietly dims the others. Replaced round 1's mosaic (msc-, archived in
   staging/extra_sections/ariebella/love-stories/). Entrances ride the shared
   .reveal observer with per-piece delays. */
.hng-frame{
  position:relative;width:1320px;max-width:calc(100% - 60px);height:var(--h);margin:0 auto;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:52px;
}
.hng-head{text-align:center;}
.hng-kicker{font-family:var(--f-label);font-size:11px;letter-spacing:.28em;text-transform:uppercase;margin:0 0 14px;color:rgba(30,29,26,.65);}
.hng-head h2{font-family:var(--f-title);font-weight:400;font-size:64px;line-height:1;margin:0;}
.hng-sub{margin:18px 0 0;font-size:14px;letter-spacing:.04em;color:rgba(30,29,26,.7);}
.hng-wall{display:flex;align-items:center;gap:64px;}
.hng-piece{width:236px;text-decoration:none;color:inherit;transition:opacity .7s ease;}
.hng-wall:hover .hng-piece:not(:hover){opacity:.45;}
.hng-piece figure{margin:0;overflow:hidden;height:312px;}
.hng-piece img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.6s ease;}
.hng-piece:hover img{transform:scale(1.035);}
.hng-plaque{border-top:1px solid var(--line);margin-top:18px;padding-top:14px;}
.hng-no{font-family:var(--f-label);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(30,29,26,.55);display:block;margin-bottom:7px;}
.hng-piece h3{font-family:var(--f-title);font-weight:400;font-size:22px;line-height:1.2;margin:0;}
.hng-piece .hng-note{
  margin:8px 0 0;font-size:12.5px;line-height:1.6;letter-spacing:.03em;color:rgba(30,29,26,.7);
  opacity:0;transform:translateY(6px);transition:opacity .7s ease, transform .7s ease;
}
.hng-piece:hover .hng-note{opacity:1;transform:none;}
.hng-cta{
  font-family:var(--f-label);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);text-decoration:none;padding-bottom:7px;border-bottom:1px solid var(--line);
  transition:border-color .5s ease;
}
.hng-cta:hover{border-color:var(--ink);}

/* entrance stagger via the shared reveal observer */
.hng-frame .hng-head,.hng-frame .hng-piece,.hng-frame .hng-cta{opacity:0;transform:translateY(22px);transition:opacity 1s ease,transform 1s ease;}
.hng-frame.in .hng-head,.hng-frame.in .hng-piece,.hng-frame.in .hng-cta{opacity:1;transform:none;}
.hng-frame.in .hng-head{transition-delay:.05s}
.hng-frame.in .hng-piece:nth-child(1){transition-delay:.18s}
.hng-frame.in .hng-piece:nth-child(2){transition-delay:.32s}
.hng-frame.in .hng-piece:nth-child(3){transition-delay:.46s}
.hng-frame.in .hng-piece:nth-child(4){transition-delay:.6s}
.hng-frame.in .hng-cta{transition-delay:.78s}

/* --- curator showcase (scw-) — showcase round winner, integrated 2026-07-15 --
   One large spotlight frame with a thumbnail rail to its right; hovering or
   clicking a thumbnail crossfades the stage image and updates the caption and
   counter (swap JS in script.js). Entrances ride the shared .reveal observer
   with per-piece transition delays. Geometry lives here, not inline. */
.scw-copy{left:0;top:186px;width:300px;}
.scw-copy .scw-kicker{font-family:var(--f-label);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:rgba(30,29,26,.55);margin:0 0 26px;}
.scw-copy .scw-title{font-family:var(--f-title);font-weight:400;font-size:58px;line-height:1.12;letter-spacing:.06em;text-transform:uppercase;margin:0 0 30px;}
.scw-copy .scw-para{font-size:15px;line-height:1.75;letter-spacing:.04em;color:rgba(30,29,26,.82);margin:0 0 36px;}

.scw-stage{left:372px;top:110px;width:540px;height:680px;background:var(--taupe);overflow:hidden;}
.scw-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease;}
.scw-stage img.active{opacity:1;}
.scw-stage::after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.45);pointer-events:none;}

.scw-caption{left:372px;top:806px;width:540px;display:flex;justify-content:space-between;align-items:baseline;}
.scw-cap-name{font-family:var(--f-label);font-size:12px;letter-spacing:.18em;text-transform:uppercase;}
.scw-cap-count{font-family:var(--f-title);font-size:20px;letter-spacing:.1em;color:rgba(30,29,26,.5);}

.scw-rail{left:990px;top:110px;width:210px;display:flex;flex-direction:column;gap:22px;}
.scw-thumb{position:relative;width:132px;height:132px;margin-left:39px;cursor:pointer;border:0;padding:0;background:none;}
.scw-thumb img{width:100%;height:100%;object-fit:cover;filter:grayscale(35%);opacity:.65;transition:opacity .5s, filter .5s;}
.scw-thumb.active img,.scw-thumb:hover img{filter:none;opacity:1;}
.scw-thumb::before{content:"";position:absolute;inset:-7px;border:1px solid var(--line);opacity:0;transition:opacity .5s;}
.scw-thumb.active::before{opacity:1;}
.scw-rail-label{left:1176px;top:130px;font-family:var(--f-label);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(30,29,26,.45);writing-mode:vertical-rl;}

.scw-stage.reveal{transition-delay:.12s;}
.scw-caption.reveal{transition-delay:.24s;}
.scw-rail.reveal{transition-delay:.36s;}

/* --- numeral service suite (svn-) — services round winner, integrated 2026-07-15
   Ledger of three rows led by giant outlined digits with each collection's
   photo clipped inside the glyphs; hovering a row floods it white (section is
   cream) and slowly pans the photo within the numeral. Entrances ride the
   shared .reveal observer. Flow layout inside the .sec, no .cv canvas. */
.svn-wrap{width:1200px;margin:0 auto;padding:40px 0 32px;}

.svn-hdr{display:flex;align-items:center;justify-content:space-between;padding:0 22px 20px;}
.svn-hdr p{margin:0;}
.svn-label{font-family:var(--f-label);font-size:12px;letter-spacing:.28em;text-transform:uppercase;}
.svn-intro{font-size:14px;letter-spacing:.04em;max-width:380px;color:rgba(30,29,26,.72);line-height:1.6;}

.svn-rows{border-top:1px solid var(--line);}
.svn-row{
  position:relative;display:grid;grid-template-columns:320px 1fr auto;align-items:center;
  gap:44px;height:186px;padding:0 22px;border-bottom:1px solid var(--line);
  text-decoration:none;color:inherit;
}
.svn-row::after{content:"";position:absolute;inset:0;background:var(--white);opacity:0;transition:opacity .5s ease;}
.svn-row:hover::after{opacity:1;}
.svn-row > *{position:relative;z-index:1;}
.svn-row:nth-child(2).reveal{transition-delay:.15s;}
.svn-row:nth-child(3).reveal{transition-delay:.3s;}

.svn-num{
  font-family:var(--f-title);font-size:160px;line-height:1;letter-spacing:.02em;
  /* resting fill = the hairline gray (--line) composited opaque; it paints over
     the text-clipped photo, so fading it to transparent reveals the image */
  color:#d2d1ce;
  background-size:auto 130%;background-position:50% 40%;
  -webkit-background-clip:text;background-clip:text;
  transition:background-size 1.2s ease,color .5s ease;
  user-select:none;
}
.svn-row:hover .svn-num{background-size:auto 150%;color:transparent;}

.svn-meta{max-width:520px;}
.svn-meta p{margin:0;}
.svn-title{font-family:var(--f-title);font-size:30px;line-height:1.15;margin-bottom:8px!important;}
.svn-desc{font-size:14px;letter-spacing:.03em;color:rgba(30,29,26,.7);}

.svn-go{
  font-family:var(--f-label);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:12px;white-space:nowrap;
}
.svn-go::after{content:"";width:34px;height:1px;background:var(--ink);transition:width .5s ease;}
.svn-row:hover .svn-go::after{width:58px;}

.svn-ftr{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:24px 22px 0;}
.svn-note{margin:0;font-family:var(--f-label);font-size:11px;letter-spacing:.14em;text-transform:uppercase;max-width:560px;line-height:1.8;color:rgba(30,29,26,.75);}
.svn-ftr .btn{padding:16px 34px;}

/* --- stat-band about (stb-) — about/photographer-bio round winner, 2026-07-15
   Two-column bio: copy, a three-cell metric row whose numbers count up when the
   row scrolls into view (count-up JS in script.js), the statement and CTA on the
   left; a tall portrait with an uppercase caption plate on the right. Flow
   layout inside the .sec, no .cv canvas. Entrances ride the shared .reveal
   observer with per-piece delays. */
.stb-wrap{
  width:1200px;margin:0 auto;min-height:760px;
  display:grid;grid-template-columns:1fr 430px;align-items:center;gap:72px;padding:64px 0;
}
.stb-left{max-width:640px;}
.stb-left p{margin:0;}
.stb-kicker{font-family:var(--f-label);font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--blue);margin-bottom:24px!important;}
.stb-title{font-family:var(--f-title);font-weight:400;font-size:66px;line-height:1;letter-spacing:.02em;margin-bottom:14px!important;}
.stb-copy{font-size:16px;line-height:1.85;letter-spacing:.04em;color:rgba(30,29,26,.82);max-width:520px;margin-bottom:44px!important;}

.stb-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.stb-stat{position:relative;padding:28px 8px 26px;}
.stb-stat + .stb-stat::before{content:"";position:absolute;left:0;top:22px;bottom:22px;width:1px;background:var(--line);}
.stb-num{display:block;font-family:var(--f-title);font-size:52px;line-height:1;letter-spacing:.01em;margin-bottom:10px;}
.stb-lab{font-family:var(--f-label);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(30,29,26,.6);line-height:1.5;}

.stb-statement{font-family:var(--f-title);font-size:24px;line-height:1.45;max-width:560px;margin:40px 0 34px!important;}
.stb-cta{
  display:inline-flex;align-items:center;gap:13px;font-family:var(--f-label);font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--white);text-decoration:none;padding:16px 34px;background:var(--ink);transition:.4s;
}
.stb-cta::after{content:"\2192";}
.stb-cta:hover{background:var(--taupe);color:var(--ink);gap:19px;}

.stb-media{position:relative;height:600px;}
.stb-media img{width:100%;height:100%;object-fit:cover;}
.stb-cap{
  position:absolute;left:0;bottom:26px;background:var(--cream);padding:11px 20px;
  font-family:var(--f-label);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);
}

/* staggered entrance via the shared reveal observer */
.stb-title.reveal{transition-delay:.08s;}
.stb-copy.reveal{transition-delay:.16s;}
.stb-media.reveal{transition-delay:.2s;}
.stb-stats.reveal{transition-delay:.28s;}
.stb-statement.reveal{transition-delay:.4s;}
.stb-cta.reveal{transition-delay:.5s;}

/* --- cinematic testimonials (cin-) — testimonial round winner, integrated
   2026-07-15. One giant serif quote over a dimmed fixed (parallax) background
   photo; quote + photo crossfade together. Clickable progress lines plus prev/
   next arrows under the quote. Fixed backgrounds carry no transform (a
   transform would cancel background-attachment:fixed). JS in script.js. */
.cin{position:absolute;inset:0;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--cream);}
.cin-bg{position:absolute;inset:0;}
.cin-plate{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;
  background-attachment:fixed;opacity:0;transition:opacity 1.4s ease;}
.cin-plate.on{opacity:1;}
.cin-scrim{position:absolute;inset:0;z-index:1;
  background:radial-gradient(120% 90% at 50% 42%,rgba(30,29,26,.62),rgba(30,29,26,.32) 55%,transparent 78%),
    linear-gradient(180deg,rgba(30,29,26,.5),rgba(30,29,26,.3) 40%,rgba(30,29,26,.6));}
.cin-content{position:relative;z-index:2;text-align:center;width:1000px;max-width:90%;}
.cin-eyebrow{font-family:var(--f-label);font-size:13px;letter-spacing:.34em;text-transform:uppercase;color:var(--cream);}
.cin-slides{position:relative;height:250px;margin-top:34px;}
.cin-slide{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;opacity:0;transform:translateY(16px);transition:opacity .9s ease,transform .9s ease;pointer-events:none;}
.cin-slide.on{opacity:1;transform:none;pointer-events:auto;}
.cin-slide p{margin:0;font-family:var(--f-title);font-size:50px;line-height:1.32;font-weight:400;text-shadow:0 2px 30px rgba(30,29,26,.45);}
.cin-who{margin-top:34px;font-family:var(--f-label);font-size:14px;letter-spacing:.26em;text-transform:uppercase;color:var(--cream);}
.cin-rail{position:absolute;left:50%;transform:translateX(-50%);bottom:52px;z-index:2;display:flex;justify-content:center;}
.cin-lines{display:flex;gap:12px;align-items:center;}
.cin-lines button{position:relative;width:78px;height:28px;display:flex;align-items:center;border:0;padding:0;background:none;cursor:pointer;}
.cin-track{position:relative;width:100%;height:2px;background:rgba(249,248,246,.32);overflow:hidden;transition:background .3s,height .3s;}
.cin-lines button:hover .cin-track{background:rgba(249,248,246,.65);height:3px;}
.cin-lines button.on .cin-track{background:rgba(249,248,246,.5);}
.cin-track i{position:absolute;inset:0;background:var(--cream);transform:scaleX(0);transform-origin:left;}
.cin-lines button.on .cin-track i{animation:cin-fill 6s linear forwards;}
@keyframes cin-fill{to{transform:scaleX(1);}}

/* --- feature-split blog favorites (bfx-) — blog-favorites round winner,
   integrated 2026-07-15. One large lead post with its title set over the photo,
   beside a slim column: the "Reader Favorites" head, two text-forward thumbnail
   rows, and the journal button. Flow layout inside the .sec, no .cv canvas.
   Entrances ride the shared .reveal observer with per-piece delays. */
.bfx-wrap{
  width:1200px;margin:0 auto;padding:88px 0 100px;
  display:grid;grid-template-columns:718px 1fr;gap:64px;align-items:stretch;
}
.bfx-wrap p{margin:0;}

.bfx-feature{position:relative;height:660px;overflow:hidden;background:var(--taupe);display:block;text-decoration:none;}
.bfx-feature img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s ease;}
.bfx-feature:hover img{transform:scale(1.04);}
.bfx-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(30,29,26,.66) 0%,rgba(30,29,26,.12) 46%,rgba(30,29,26,0) 70%);}
.bfx-fbody{position:absolute;left:0;right:0;bottom:0;padding:44px 46px;color:#fff;}
.bfx-fcat{font-family:var(--f-label);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.85);}
.bfx-ftitle{font-family:var(--f-title);font-size:44px;line-height:1.1;margin:14px 0 12px!important;max-width:560px;}
.bfx-fmeta{font-family:var(--f-label);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.72);}

.bfx-side{display:flex;flex-direction:column;}
.bfx-head{margin-bottom:30px;}
.bfx-kicker{font-family:var(--f-label);font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--blue);}
.bfx-h1{font-family:var(--f-title);font-size:46px;line-height:1.04;margin-top:12px!important;}

.bfx-row{display:grid;grid-template-columns:124px 1fr;gap:22px;align-items:center;
  padding:26px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit;transition:opacity .3s;}
.bfx-row:hover{opacity:.68;}
.bfx-row figure{width:124px;height:124px;overflow:hidden;background:var(--taupe);margin:0;}
.bfx-row img{width:100%;height:100%;object-fit:cover;display:block;}
.bfx-scat{font-family:var(--f-label);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);}
.bfx-stitle{font-family:var(--f-title);font-size:22px;line-height:1.18;margin:7px 0 8px!important;}
.bfx-smeta{font-family:var(--f-label);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(30,29,26,.5);}

.bfx-cta{align-self:flex-start;margin-top:auto;}

/* staggered entrance via the shared reveal observer */
.bfx-head.reveal{transition-delay:.05s;}
.bfx-feature.reveal{transition-delay:.12s;}
.bfx-row.reveal{transition-delay:.22s;}
.bfx-row + .bfx-row.reveal{transition-delay:.34s;}
.bfx-cta.reveal{transition-delay:.44s;}

/* --- cta: framed invitation card over a fixed, B&W photo with a blue wash ---
   Three stacked layers under the card:
     .cta-bg    the couple's photo pinned to the viewport (attachment:fixed,
                same technique as the testimonials block).
     .cta-desat a flat gray plate in mix-blend-mode:saturation, which strips the
                photo's colour to black and white. We do this with a blend layer
                rather than filter:grayscale, because putting a filter on the
                fixed-bg element would turn attachment:fixed back into scroll.
     .cta-tint  the house dusty blue (--blue #afbec5) as a translucent wash,
                laid over the now-monochrome photo.
   isolation:isolate keeps the saturation blend from reaching the page behind. */
.sec-cta{overflow:hidden;isolation:isolate;}
.sec-cta .cta-bg{
  position:absolute;inset:0;z-index:0;
  background:url('../images/pb-hydrangea-flatlay.jpg') center/cover no-repeat fixed;
}
.sec-cta .cta-desat{position:absolute;inset:0;z-index:1;background:#808080;mix-blend-mode:saturation;}
.sec-cta .cta-tint{position:absolute;inset:0;z-index:2;background:rgba(255,255,255,.72);}
.cta-invite{
  position:absolute;inset:0;z-index:3;
  display:flex;align-items:center;justify-content:center;padding:48px 24px;
}
.sec-cta .inv{
  position:relative;width:640px;max-width:100%;background:var(--blue-lt);
  padding:14px;box-shadow:0 40px 90px rgba(30,29,26,.28);
}
.sec-cta .inv-frame{border:1px solid rgba(255,255,255,.75);padding:56px 66px 60px;text-align:center;position:relative;}
.sec-cta .inv-frame::before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.3);pointer-events:none;}
.sec-cta .inv-crest{font-family:var(--f-script);font-size:70px;line-height:1;color:var(--cream);}
.sec-cta .inv-over{font-family:var(--f-label);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-top:14px;}
.sec-cta .inv-title{font-family:var(--f-title);font-weight:400;font-size:58px;line-height:1.08;margin:14px 0 0;color:var(--cream);}
.sec-cta .inv-orn{display:flex;align-items:center;justify-content:center;gap:14px;margin:22px 0;color:var(--cream);}
.sec-cta .inv-orn::before,.sec-cta .inv-orn::after{content:"";width:70px;height:1px;background:rgba(255,255,255,.3);}
.sec-cta .inv-para{font-size:15.5px;line-height:1.85;letter-spacing:.04em;color:rgba(255,255,255,.85);max-width:420px;margin:0 auto;}
.sec-cta .inv-btn{display:inline-block;margin-top:32px;padding:15px 42px;background:var(--cream);color:var(--ink);
  font-family:var(--f-label);font-size:11px;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;transition:.45s;
}
.sec-cta .inv-btn:hover{background:var(--white);color:var(--ink);}
.sec-cta .inv-foot{margin-top:24px;font-family:var(--f-label);font-size:10.5px;letter-spacing:.28em;
  text-transform:uppercase;color:rgba(255,255,255,.6);
}

/* ===========================================================================
   MOBILE LAYER (additive; desktop above 900px untouched). Home sections.
   =========================================================================== */
@media (max-width: 900px){

  /* --- marquee hero (mqh) --------------------------------------------------- */
  .sec-hero-images{height:100svh; min-height:540px; max-height:820px;}
  /* pin the photo to the viewport on mobile (background-attachment:fixed is a
     no-op on phones); clip-path keeps the fixed layer inside the section */
  .sec-hero-images{clip-path:inset(0);}
  .mqh-bg{position:fixed;background-attachment:scroll;}
  .mqh-track span{font-size:min(23vw, 110px);}
  .mqh-portrait{width:min(72vw, 300px); height:min(99.7vw, 415px);}
  .mqh-front{clip-path:inset(0 calc(50% - min(36vw, 150px)));}
  .mqh-cta{top:auto; bottom:34px; white-space:nowrap; padding:14px 26px;}
  .mqh-corner{font-size:9px; letter-spacing:.14em;}
  .mqh-tl{top:18px; left:16px; max-width:180px;}
  .mqh-tr, .mqh-bl, .mqh-br{display:none;}

  /* paper divider keeps its band height (blanket zeroes --h sections) */
  .sec-paper-texture{height:62px;}

  /* --- intro statement (canvas) --------------------------------------------- */
  .sec-intro-statement .cv{text-align:center; padding:56px 22px; gap:18px;}
  .sec-intro-statement .cv > img{order:1; width:130px !important; align-self:center;}
  .sec-intro-statement .cv > .t-subheading{order:2;}
  .sec-intro-statement .cv > .t-title{order:3;}
  .sec-intro-statement .cv > .t-paragraph{order:4;}
  .sec-intro-statement .cv > .btn{order:5; margin-top:8px;}

  /* --- curator showcase (scw) ------------------------------------------------ */
  .sec-showcase .cv{padding:56px 20px; gap:0;}
  .sec-showcase .scw-copy{order:1;}
  .scw-copy .scw-title{font-size:clamp(32px, 9vw, 42px);}
  .scw-copy .scw-para{margin:0 0 26px;}
  .scw-copy .btn{margin-bottom:30px;}
  .sec-showcase .scw-stage{
    order:2; position:relative !important;
    width:100% !important; height:auto !important; aspect-ratio:54/68;
  }
  .sec-showcase .scw-caption{order:3; display:flex; margin-top:12px;}
  .sec-showcase .scw-rail{
    order:4; flex-direction:row; justify-content:center;
    width:100% !important; gap:14px; margin-top:24px;
  }
  .scw-thumb{width:60px; height:60px; margin-left:0;}
  .sec-showcase .scw-rail-label{display:none !important;}

  /* --- numeral service suite (svn) ------------------------------------------- */
  .svn-wrap{width:auto; padding:48px 18px 42px;}
  .svn-hdr{flex-direction:column; align-items:flex-start; gap:12px; padding:0 4px 18px;}
  .svn-row{grid-template-columns:92px 1fr; gap:18px; height:auto; padding:18px 4px;}
  .svn-num{font-size:60px;}
  .svn-title{font-size:21px;}
  .svn-go{display:none;}
  .svn-ftr{flex-direction:column; align-items:flex-start; gap:18px; padding:22px 4px 0;}

  /* --- museum hang (hng) ------------------------------------------------------ */
  .hng-frame{width:auto; max-width:none; height:auto; padding:56px 20px; gap:36px;}
  .hng-head h2{font-size:clamp(32px, 9vw, 44px);}
  .hng-wall{flex-direction:column; align-items:stretch; gap:40px; width:100%;}
  .hng-piece{width:100%;}
  .hng-piece figure{height:auto; aspect-ratio:236/312;}
  .hng-piece .hng-note{opacity:1; transform:none;}

  /* --- stat-band about (stb) --------------------------------------------------- */
  .stb-wrap{width:auto; grid-template-columns:1fr; gap:44px; padding:56px 20px; min-height:0;}
  .stb-title{font-size:clamp(34px, 10vw, 46px);}
  .stb-copy{max-width:none;}
  .stb-num{font-size:32px;}
  .stb-lab{font-size:9px; letter-spacing:.12em;}
  .stb-stat{padding:18px 4px 16px;}
  .stb-statement{font-size:19px;}
  .stb-media{height:auto; aspect-ratio:43/60;}

  /* --- cinematic testimonials (cin) -------------------------------------------- */
  .sec-testimonials{height:640px;}
  .cin{clip-path:inset(0);}
  .cin-plate{position:fixed;background-attachment:scroll;}
  .cin-content{max-width:92%;}
  .cin-slide p{font-size:clamp(21px, 6.4vw, 28px);}
  .cin-slides{height:320px; margin-top:24px;}
  .cin-who{font-size:12px;}
  .cin-rail{bottom:30px;}
  .cin-lines button{width:54px;}

  /* --- blog favorites (bfx) ------------------------------------------------------ */
  .bfx-wrap{width:auto; grid-template-columns:1fr; gap:40px; padding:56px 20px 64px;}
  .bfx-feature{height:440px;}
  .bfx-fbody{padding:26px 22px;}
  .bfx-ftitle{font-size:27px;}
  .bfx-h1{font-size:34px;}
  .bfx-row{grid-template-columns:96px 1fr; gap:16px;}
  .bfx-row figure{width:96px; height:96px;}
  .bfx-cta{align-self:stretch; text-align:center; margin-top:12px;}

  /* --- invitation cta ------------------------------------------------------------ */
  .sec-cta{clip-path:inset(0);}
  .sec-cta .cta-bg{position:fixed;background-attachment:scroll;}
  .cta-invite{position:relative; inset:auto; padding:64px 16px;}
  .sec-cta .inv-frame{padding:38px 20px 42px;}
  .sec-cta .inv-title{font-size:clamp(30px, 9vw, 42px);}
  .sec-cta .inv-para{font-size:14px;}
  .sec-cta .inv-crest{font-size:52px;}
}
