/* SOBE MGMT — Minimal editorial shell with cinematic, scroll-linked portfolio transition. */
:root {
  --paper: #efeee9;
  --ink: #161613;
  --muted: #5a5953;
  --line: rgba(22,22,19,.32);
  --horizontal-padding: clamp(20px, 2.45vw, 48px);
  --font-ui: Arial, "Helvetica Neue", Helvetica, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-ui); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
::selection { background: #242421; color: var(--paper); }
.site-shell { width: 100%; overflow: clip; }
.skip-link { position: fixed; z-index: 10; top: 12px; left: 12px; transform: translateY(-160%); background: var(--ink); color: white; padding: 12px 16px; }
.skip-link:focus { transform: none; }

/* Header */
.site-header { padding: 25px var(--horizontal-padding) 21px; display: grid; grid-template-columns: 1.25fr 1fr auto; column-gap: 18px; align-items: start; min-height: 122px; }
.header-identity { display: flex; align-items: flex-start; gap: clamp(24px, 3.35vw, 58px); }
.wordmark { font-size: clamp(17px, 1.65vw, 25px); font-weight: 800; letter-spacing: -.09em; white-space: nowrap; line-height: 1; }
.wordmark span:first-child { font-weight: 500; }
.wordmark-dot { font-size: .39em; vertical-align: top; margin-left: 2px; letter-spacing: 0; }
.identity-subtitle { font-size: 11px; line-height: 1.21; margin: 0; letter-spacing: -.02em; }
.header-socials { display: flex; gap: clamp(20px, 2.15vw, 34px); }
.header-socials a, .header-nav a { font-size: 12px; line-height: 1.3; letter-spacing: -.015em; }
.header-socials span, .footer-socials span { display: inline-block; font-size: .82em; transition: transform .25s ease; }
.header-socials a:hover span, .footer-socials a:hover span { transform: translate(2px, -2px); }
.header-nav { text-align: right; }
.nav-about { display: inline-flex; gap: 6px; }
.nav-about span { transition: transform .25s ease; }
.nav-about:hover span { transform: translate(3px, -3px); }

/* Hero */
.hero { padding: 0 var(--horizontal-padding); min-height: min(795px, 88svh); display: flex; flex-direction: column; }
.hero-overline { padding-top: clamp(13px, 3vh, 29px); display: flex; justify-content: space-between; align-items: baseline; gap: 20px; }
.hero-overline p { margin: 0; font-size: 12px; letter-spacing: -.015em; }
.overline-left { display: inline-flex; align-items: center; gap: 9px; }
.mini-circle { display: inline-block; background: currentColor; border-radius: 50%; width: 7px; height: 7px; vertical-align: middle; }
.overline-divider { color: #84817c; margin: 0 3px; }
.overline-right { color: var(--muted); }
.hero-typography { flex: 1; display: flex; align-items: center; justify-content: flex-start; padding-top: clamp(19px, 3.4vh, 38px); padding-bottom: clamp(18px, 3vw, 48px); }
.hero-typography h1 { width: 100%; font-size: clamp(88px, 18.4vw, 350px); font-weight: 500; line-height: .795; letter-spacing: -.102em; margin: 0; }
.hero-title-first, .hero-title-second { display: block; }
.hero-title-first { margin-left: -.018em; }
.hero-title-second { display: flex; align-items: baseline; white-space: nowrap; padding-left: clamp(25px, 7.4vw, 138px); }
.parenthesis { font-weight: 400; letter-spacing: -.12em; }
.hero-registered { font-size: .09em; align-self: flex-start; transform: translate(.45em, -.26em); letter-spacing: 0; }
.hero-details { min-height: 120px; display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; column-gap: 20px; }
.detail-index { font-size: clamp(25px, 3.8vw, 58px); letter-spacing: -.09em; line-height: 1; }
.detail-note { margin: 0; justify-self: center; font-size: 12px; line-height: 1.3; }
.hero-scroll { font-size: 12px; justify-self: end; display: inline-flex; align-items: center; gap: 32px; }
.scroll-arrow { font-size: 24px; line-height: 1; transition: transform .3s ease; }
.hero-scroll:hover .scroll-arrow { transform: translateY(7px); }
.hero-bottomline { padding: 17px 0 21px; display: grid; grid-template-columns: 1fr 1fr 1fr; border-top: 1px solid var(--ink); font-size: 11px; text-transform: uppercase; letter-spacing: -.015em; }
.hero-bottomline span:nth-child(2) { text-align: center; }
.hero-bottomline span:nth-child(3) { text-align: right; }

/* Footer */
.site-footer { background: var(--ink); color: var(--paper); padding: 27px var(--horizontal-padding) 24px; }
.footer-outer-top { display: flex; justify-content: space-between; align-items: center; gap: 20px; font-size: 12px; }
.footer-eyebrow { display: inline-flex; align-items: center; gap: 10px; }
.footer-top-right { color: #a9a7a0; }
.footer-cta { padding-top: clamp(67px, 10vw, 160px); padding-bottom: clamp(44px, 7vw, 100px); }
.footer-intro { margin: 0 0 clamp(12px, 2.1vw, 25px) 6px; font-size: clamp(15px, 1.3vw, 20px); letter-spacing: -.035em; }
.footer-big-link { font-size: clamp(105px, 21vw, 390px); line-height: .74; letter-spacing: -.115em; font-weight: 500; display: block; }
.footer-big-link > span { display: block; }
.big-cta-bottom { position: relative; margin-left: clamp(40px, 15vw, 290px); padding-bottom: .065em; }
.footer-big-link .dot { color: #a8a7a1; }
.footer-cta-arrow { position: absolute; top: -.05em; right: .04em; font-size: .25em; font-weight: 400; letter-spacing: 0; transition: transform .3s ease; }
.footer-big-link:hover .footer-cta-arrow { transform: translate(10px, -10px); }
.footer-contact-row { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 24px; padding: 16px 0 60px; }
.footer-reach { display: flex; flex-direction: column; align-items: start; gap: 12px; }
.footer-small-label { font-size: 11px; color: #aeada6; }
.footer-email { font-size: clamp(18px, 2.2vw, 30px); letter-spacing: -.055em; border-bottom: 1px solid currentColor; padding-bottom: 5px; }
.footer-email span { display: inline-block; font-size: .65em; margin-left: 5px; transition: transform .25s ease; }
.footer-email:hover span { transform: translate(3px, -3px); }
.footer-socials { display: flex; justify-content: flex-end; gap: clamp(22px, 3.25vw, 60px); font-size: 12px; padding-bottom: 8px; }
.footer-bottom { border-top: 1px solid rgba(239,238,233,.38); padding-top: 18px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 20px; }
.footer-credits { display: flex; gap: clamp(22px, 4.5vw, 80px); font-size: 11px; color: #aeada6; }
.back-top { display: inline-flex; align-items: center; gap: 15px; font-size: 12px; }
.back-top > :first-child { text-decoration: underline; text-underline-offset: 3px; }

@media (min-width: 1750px) {
  .hero { min-height: 900px; }
  .hero-typography h1 { font-size: min(18vw, 390px); }
}
@media (max-width: 1100px) {
  .site-header { grid-template-columns: 1fr auto; row-gap: 22px; min-height: 145px; }
  .header-socials { grid-column: 1; grid-row: 2; }
  .header-nav { grid-column: 2; grid-row: 1; }
  .hero { min-height: 660px; }
  .hero-typography h1 { font-size: 19vw; }
}
@media (max-width: 700px) {
  .site-header { padding-top: 20px; min-height: 124px; grid-template-columns: 1fr auto; }
  .header-identity { display: block; }
  .identity-subtitle { margin-top: 9px; font-size: 10px; }
  .header-socials { gap: 16px; }
  .header-socials a { font-size: 10px; }
  .header-nav a { font-size: 11px; }
  .hero { min-height: min(620px, 78svh); }
  .hero-overline { padding-top: 16px; }
  .hero-overline p { font-size: 10px; }
  .overline-right { display: none; }
  .hero-typography { padding-top: 60px; padding-bottom: 70px; }
  .hero-typography h1 { font-size: 18.6vw; }
  .hero-title-second { padding-left: 2vw; }
  .hero-registered { font-size: .10em; }
  .hero-details { grid-template-columns: 1fr 1fr; min-height: 98px; }
  .detail-index { font-size: 31px; }
  .detail-note { display: none; }
  .hero-scroll { font-size: 11px; gap: 16px; }
  .hero-bottomline { grid-template-columns: 1fr auto; gap: 10px; font-size: 9px; }
  .hero-bottomline span:nth-child(2) { display: none; }
  .empty-content { min-height: 400px; }
  .site-footer { padding-top: 24px; }
  .footer-outer-top { font-size: 10px; }
  .footer-top-right { max-width: 125px; text-align: right; }
  .footer-cta { padding-top: 110px; padding-bottom: 100px; }
  .footer-big-link { font-size: 22vw; }
  .big-cta-bottom { margin-left: 13vw; }
  .footer-contact-row { grid-template-columns: 1fr; gap: 54px; padding-bottom: 75px; }
  .footer-socials { justify-content: flex-start; padding-bottom: 0; font-size: 12px; }
  .footer-bottom { align-items: end; }
  .footer-credits { flex-direction: column; gap: 5px; font-size: 10px; }
  .back-top { gap: 6px; font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* SOBE MGMT V4 — 4 wide columns × 2 large visible frames = 8 pieces.
   Pure-white gutters make an editorial grid as every image moves down.
   A half-track infinite transform makes the wrap seamless, even across gaps. */
.showcase-main { padding:0 0 clamp(84px,10vw,180px); background:var(--paper); }
.work-showcase { width:100%; }
.showcase-toolbar { padding:clamp(28px,3.8vw,64px) var(--horizontal-padding) 26px; display:flex; justify-content:space-between; align-items:end; gap:25px; }
.showcase-title-block { display:flex; flex-direction:column; gap:12px; }
.showcase-kicker { font-size:11px; letter-spacing:.04em; display:inline-flex; align-items:center; gap:9px; text-transform:uppercase; }
.showcase-title-block h2 { margin:0; font-size:clamp(23px,3.2vw,48px); letter-spacing:-.07em; font-weight:500; line-height:1; }
.showcase-asterisk { font-size:.52em; margin-left:.34em; vertical-align:top; }
.flow-indicator { display:inline-flex; align-items:center; gap:10px; font-size:11px; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; }
.flow-indicator-arrow { display:inline-flex; height:27px; width:27px; align-items:center; justify-content:center; border:1px solid currentColor; border-radius:50%; font-size:18px; }

/* The gallery is deliberately nearly edge-to-edge, with genuine #fff gutters. */
.showcase-grid {
  --tile-gap: clamp(12px, 1.25vw, 24px);
  padding: var(--tile-gap) clamp(10px, 1.05vw, 24px);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--tile-gap);
  background:#fff;
}
.gallery-panel {
  --card-height:clamp(350px, 37vw, 700px);
  position:relative;
  display:block;
  isolation:isolate;
  width:100%; min-width:0;
  height:calc(var(--card-height) * 2 + var(--tile-gap));
  overflow:hidden;
  background:#fff; color:white;
}
.gallery-fallback { position:absolute; inset:0; display:grid; grid-template-rows:1fr 1fr; gap:var(--tile-gap); background:#fff; }
.gallery-fallback img { display:block; width:100%; height:100%; min-height:0; object-fit:cover; }
.gallery-fallback::after { content:''; background:#d8d4cb; }
.gallery-panel.is-ready .gallery-fallback { display:none; }

.gallery-track {
  position:absolute; top:0; left:0; width:100%;
  display:flex; flex-direction:column;
  gap:var(--tile-gap);
  padding-bottom:var(--tile-gap);
  will-change:transform;
  transform:translate3d(0,-50%,0);
  animation:sobeFlowDown var(--flow-duration,19s) linear infinite;
}
@keyframes sobeFlowDown {
  from { transform:translate3d(0,-50%,0); }
  to { transform:translate3d(0,0,0); }
}
.gallery-frame {
  flex:none; display:block; width:100%;
  height:var(--card-height);
  position:relative; isolation:isolate; overflow:hidden;
  background:#dedbd2;
}
.gallery-frame img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.gallery-frame::after { content:''; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(180deg,rgba(0,0,0,.25),transparent 22%,transparent 55%,rgba(0,0,0,.72)); }
.frame-caption { position:absolute; z-index:2; bottom:0; left:0; right:0; display:flex; flex-direction:column; gap:8px; padding:20px 19px 20px; }
.frame-category { font-size:10px; line-height:1.3; letter-spacing:.07em; text-transform:uppercase; opacity:.88; }
.frame-title { font-size:clamp(21px,2.15vw,36px); font-weight:500; line-height:1.02; letter-spacing:-.065em; text-wrap:balance; }
.panel-fixed-label { position:absolute; z-index:5; left:17px; top:17px; font-size:11px; line-height:1.2; letter-spacing:.04em; text-shadow:0 1px 6px #0008; pointer-events:none; }
.showcase-meta { padding:18px var(--horizontal-padding) 0; display:flex; justify-content:space-between; gap:15px; font-size:11px; letter-spacing:.01em; }
@media (max-width:900px) {
  .showcase-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gallery-panel { --card-height:clamp(340px, 65vw, 610px); }
  .frame-title { font-size:clamp(21px,3.8vw,34px); }
}
@media (max-width:600px) {
  .showcase-toolbar { padding-top:34px; padding-bottom:18px; gap:12px; flex-direction:column; align-items:flex-start; }
  .showcase-title-block h2 { font-size:clamp(28px,7.8vw,39px); }
  .flow-indicator { font-size:10px; }
  .flow-indicator-arrow { width:22px; height:22px; font-size:15px; }
  .showcase-grid { --tile-gap:10px; padding:10px; }
  .gallery-panel { --card-height:clamp(245px,65vw,400px); }
  .panel-fixed-label { top:11px; left:10px; font-size:9px; }
  .frame-caption { gap:6px; padding:14px 12px; }
  .frame-category { font-size:9px; }
  .frame-title { font-size:clamp(17px,4.8vw,24px); }
  .showcase-meta { font-size:10px; line-height:1.4; }
  .showcase-meta span:last-child { text-align:right; }
  .showcase-main { padding-bottom:95px; }
}
@media (prefers-reduced-motion:reduce) {
  .gallery-track { animation:none !important; }
}

/* ================================================================
   V6 — Scroll-linked transition from the Selected (Works) hero
   into the portfolio headline. No external libraries are required.
   These rules activate only after JS successfully initializes.
   Without JS (or with reduced-motion), all the text is fully visible.
   ================================================================ */
.work-showcase { scroll-margin-top: clamp(16px, 3svh, 40px); }
.showcase-heading-window {
  display: inline-block;
  vertical-align: bottom;
  overflow: hidden;
  padding-bottom: .11em;
  margin-bottom: -.11em;
}
.showcase-heading-text { display: block; will-change: auto; }
.showcase-asterisk { display: inline-block; transform-origin: center center; }

.has-scroll-motion .showcase-kicker,
.has-scroll-motion .showcase-heading-text,
.has-scroll-motion .showcase-asterisk,
.has-scroll-motion .flow-indicator,
.has-scroll-motion .hero-bottomline {
  will-change: transform, opacity;
}
.has-scroll-motion .showcase-kicker {
  opacity: var(--reveal-kicker, 1);
  transform: translate3d(0, calc((1 - var(--reveal-kicker, 1)) * 20px), 0);
}
.has-scroll-motion .showcase-heading-text {
  opacity: var(--reveal-heading, 1);
  transform: translate3d(0, calc((1 - var(--reveal-heading, 1)) * 112%), 0);
}
.has-scroll-motion .showcase-asterisk {
  opacity: var(--reveal-star, 1);
  transform: translate3d(0, calc((1 - var(--reveal-star, 1)) * 15px), 0)
             rotate(calc((1 - var(--reveal-star, 1)) * -36deg));
}
.has-scroll-motion .flow-indicator {
  opacity: var(--reveal-flow, 1);
  transform: translate3d(calc((1 - var(--reveal-flow, 1)) * 22px), 0, 0);
}
.has-scroll-motion .hero-bottomline {
  opacity: calc(1 - var(--hero-departure, 0) * .27);
  transform: translate3d(0, calc(var(--hero-departure, 0) * -9px), 0);
}
@media (prefers-reduced-motion: reduce) {
  .has-scroll-motion .showcase-kicker,
  .has-scroll-motion .showcase-heading-text,
  .has-scroll-motion .showcase-asterisk,
  .has-scroll-motion .flow-indicator,
  .has-scroll-motion .hero-bottomline {
    opacity: 1;
    transform: none;
    will-change: auto;
  }
}

/* V7: Native transparent SVG brand assets / domain deployment */
.wordmark-logo { display:inline-block; font-size:0; letter-spacing:normal; line-height:0; flex-shrink:0; }
.wordmark-logo img { display:block; width:clamp(150px, 11.2vw, 205px); height:auto; }
.footer-website { color:inherit; text-underline-offset:3px; }
.footer-website:hover { text-decoration:underline; }
@media (max-width:700px) {
  .wordmark-logo img { width:clamp(138px, 39vw, 170px); }
  .header-socials { flex-wrap:wrap; gap:8px 14px; }
}


/* ================================================================
   SOBE MGMT V11 — Bold centered raised-ink typography. One headline,
   no subtitle, kicker or arrow. Same warm paper as the hero; three
   tiny utility items remain in a full-width strip at the very bottom.
   ================================================================ */
:root { --footer-peek: clamp(14px, 1.8vw, 28px); }
.showcase-main {
  position: relative;
  z-index: 2;
  margin-bottom: calc(-1 * var(--footer-peek));
  border-radius: 0 0 15px 15px;
  box-shadow: 0 11px 20px rgba(17,17,14,.055);
}
.site-footer {
  position: relative;
  z-index: 1;
  isolation: isolate;
  background: var(--paper);
  color: var(--ink);
  padding: calc(clamp(25px,2.8vw,48px) + var(--footer-peek)) var(--horizontal-padding) clamp(21px,2vw,32px);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  transform-origin: center top;
}
@supports (min-height: 100svh) { .site-footer { min-height: 100svh; } }
.site-footer::before {
  content: "";
  position: absolute;
  top: var(--footer-peek);
  left: var(--horizontal-padding);
  right: var(--horizontal-padding);
  height: 1px;
  background: rgba(22,22,19,.24);
  pointer-events: none;
}
.footer-cta {
  flex: 1;
  display: grid;
  place-items: center;
  padding: clamp(68px,9vh,126px) 0;
  text-align: center;
  min-width: 0;
}
.footer-big-link {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 0 auto;
  color: #11110f;
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-size: clamp(64px, 18vw, 336px);
  font-weight: 800;
  line-height: .95;
  letter-spacing: -.105em;
  white-space: nowrap;
  text-align: center;
  -webkit-tap-highlight-color: transparent;
}
.footer-word-mask {
  display: block;
  overflow: hidden;
  padding: .16em .12em .24em;
  margin: -.16em -.12em -.24em;
}
.footer-title {
  display: block;
  padding-right: .07em;
  position: relative;
  text-shadow:
    0 1px 0 rgba(255,255,255,.30),
    0 2px 0 rgba(0,0,0,.12),
    0 4px 2px rgba(0,0,0,.075),
    0 10px 15px rgba(0,0,0,.07);
  -webkit-text-stroke: .003em currentColor;
  transform-origin: center top;
}
.footer-bottom {
  border-top: 1px solid rgba(22,22,19,.52);
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: center;
  gap: 16px;
  padding: clamp(16px,1.8vw,25px) 0 0;
  min-height: 49px;
  text-transform: uppercase;
  letter-spacing: .02em;
  font-size: clamp(10px,.8vw,12px);
  color: var(--ink);
}
.footer-strip-left { justify-self: start; white-space: nowrap; }
.footer-strip-center { justify-self: center; text-align: center; white-space: nowrap; }
.footer-strip-right { justify-self: end; white-space: nowrap; }
.footer-bottom a { border-bottom: 1px solid transparent; transition: border-color .24s ease; }
.footer-bottom a:hover { border-bottom-color: currentColor; }
.footer-strip-center span, .footer-strip-right span { display: inline-block; transition: transform .25s ease; }
.footer-strip-center a:hover span { transform: translate(3px,-3px); }
.footer-strip-right a:hover span { transform: translateY(-4px); }

/* The headline descends into the clipping mask as the footer enters.
   Opacity and translation follow real scroll position in either direction. */
.has-footer-motion .site-footer {
  transform: translate3d(0,var(--footer-lift-offset,0px),0);
  will-change: transform;
}
.has-footer-motion .footer-title {
  opacity: var(--footer-title-reveal,1);
  transform: translate3d(0,var(--footer-title-offset,0%),0);
  will-change: transform,opacity;
}
.has-footer-motion .footer-bottom {
  opacity: var(--footer-bottom-reveal,1);
  transform: translate3d(0,var(--footer-bottom-offset,0px),0);
}
@media (max-width: 700px) {
  .showcase-main { border-radius: 0 0 10px 10px; box-shadow: 0 7px 13px rgba(17,17,14,.055); }
  .site-footer { padding-bottom: 21px; }
  .footer-cta { padding: 70px 0 85px; }
  .footer-big-link { font-size: clamp(52px, 19vw, 128px); letter-spacing: -.105em; }
  .footer-bottom { font-size: 9px; grid-template-columns: 1fr auto 1fr; column-gap: 6px; row-gap: 12px; }
  .footer-strip-left { grid-column: 1; grid-row: 1; }
  .footer-strip-center { grid-column: 2; grid-row: 1; }
  .footer-strip-right { grid-column: 3; grid-row: 1; }
}
@media (max-width: 440px) {
  .footer-big-link { font-size: 18vw; }
  .footer-bottom { font-size: 8px; grid-template-columns: 1fr auto; }
  .footer-strip-left { grid-column: 1; grid-row: 1; }
  .footer-strip-right { grid-column: 2; grid-row: 1; }
  .footer-strip-center { grid-column: 1 / -1; grid-row: 2; }
}
@media (prefers-reduced-motion: reduce) {
  .has-footer-motion .site-footer,
  .has-footer-motion .footer-title,
  .has-footer-motion .footer-bottom {
    opacity: 1 !important;
    transform: none !important;
    will-change: auto !important;
  }
}

/* ================================================================
   SOBE MGMT V12 — seamless gallery-to-footer integration.
   No text appears in or around the moving artworks.
   White throughout, with only the intended white image gutters.
   ================================================================ */
:root { --paper: #ffffff; --footer-peek: 0px; }
body, .site-shell, .hero, .site-footer { background: #ffffff; }
.hero { min-height: min(795px, 88svh); }
.showcase-main {
  padding: 0 !important;
  margin: 0 !important;
  background: #ffffff;
  border-radius: 0 !important;
  box-shadow: none !important;
  z-index: auto;
}
.work-showcase { margin: 0; padding: 0; scroll-margin-top: 0; }
.showcase-grid { --tile-gap: clamp(12px, 1.25vw, 24px); padding: var(--tile-gap) clamp(10px,1.05vw,24px) 0; margin: 0; background: #ffffff; }
.gallery-frame::after { display: none !important; }
.gallery-fallback::after { display: none; }
.gallery-panel { background: #ffffff; }
.site-footer {
  margin: 0 !important;
  background: #ffffff;
  padding-top: clamp(25px,2.8vw,48px);
}
.site-footer::before { display: none; }
/* Avoid a transform-created 28px visual gap before the footer. */
.has-footer-motion .site-footer { transform: none !important; will-change: auto; }
@media (max-width: 700px) {
  .showcase-main { border-radius: 0 !important; box-shadow: none !important; }
  .showcase-grid { --tile-gap: 10px; padding: 10px 10px 0; }
}


/* ================================================================
   SOBE MGMT V13 — Single aligned top-right menu + account actions
   ================================================================ */
.site-header.site-header-v13 {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(24px,3.3vw,56px);
  min-height: 123px;
  padding-top: clamp(19px,1.4vw,27px);
  padding-bottom: 22px;
}
.site-header-v13 .header-identity {
  display: flex;
  align-items: flex-start;
  gap: clamp(16px,1.65vw,32px);
  flex: none;
}
.site-header-v13 .wordmark-logo img { width: clamp(150px,10.5vw,197px); }
.site-header-v13 .identity-subtitle { font-size: 10px; padding-top: 3px; white-space: nowrap; }
.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(18px,1.6vw,30px);
  margin-left: auto;
  padding-top: 2px;
  min-width: 0;
}
.primary-menu { display:flex; flex-wrap:nowrap; align-items:center; justify-content:flex-end; gap:clamp(12px,1.4vw,28px); }
.primary-menu a {
  position:relative;
  flex:none;
  white-space:nowrap;
  display:inline-block;
  padding:8px 0 10px;
  font-size:clamp(10px,.76vw,12px);
  letter-spacing:-.015em;
  font-weight: 500;
  line-height:1.2;
}
.primary-menu a::after {
  content:"";
  position:absolute;
  left:0; right:100%; bottom:3px;
  height:1px;
  background:currentColor;
  transition:right .32s cubic-bezier(.2,.75,.25,1);
}
.primary-menu a:hover::after,.primary-menu a:focus-visible::after,.primary-menu a[aria-current="page"]::after { right:0; }
.auth-actions { display:flex; align-items:center; gap:8px; flex:none; }
.auth-button {
  min-height:38px;
  padding:11px 13px;
  border:1px solid #181816;
  border-radius:2px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  line-height:1;
  white-space:nowrap;
  font-size:11px;
  font-weight:600;
  letter-spacing:-.025em;
  transition:background-color .25s ease,color .25s ease,transform .25s ease,box-shadow .25s ease;
}
.auth-button:hover { transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,.09); }
.auth-login { color:#121212; background:#fff; }
.auth-login:hover { background:#f1f0ed; }
.auth-register { background:#161613; color:#fff; }
.auth-register:hover { background:#343431; }
.auth-button span { font-size:12px; }
.mobile-menu-toggle { display:none; border:0; padding:0; background:transparent; color:var(--ink); cursor:pointer; }
@media (max-width:1450px) and (min-width:1181px) {
  .site-header-v13 .identity-subtitle { font-size:9px; }
  .primary-menu { gap:clamp(12px,1.15vw,18px); }
  .header-actions { gap:clamp(13px,1.3vw,20px); }
  .auth-button { padding:10px 11px; }
}
@media (max-width:1180px) {
  .site-header.site-header-v13 { min-height:112px; align-items:flex-start; padding:23px var(--horizontal-padding) 22px; }
  .site-header-v13 .header-identity { gap:14px; }
  .site-header-v13 .wordmark-logo img { width:clamp(150px,19vw,195px); }
  .site-header-v13 .identity-subtitle { display:block; font-size:10px; }
  .mobile-menu-toggle {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:39px;
    padding:10px 11px;
    border:1px solid rgba(22,22,19,.65);
    border-radius:2px;
    margin-left:auto;
    position:relative;
    z-index:41;
    font-size:11px;
    font-weight:700;
    letter-spacing:.06em;
  }
  .menu-toggle-lines { display:flex; width:20px; height:15px; flex-direction:column; justify-content:space-around; }
  .menu-toggle-lines span { display:block; width:100%; height:1.5px; background:currentColor; transform-origin:center; transition:transform .2s ease; }
  .mobile-menu-toggle[aria-expanded="true"] .menu-toggle-lines span:first-child { transform:translateY(3.75px) rotate(45deg); }
  .mobile-menu-toggle[aria-expanded="true"] .menu-toggle-lines span:last-child { transform:translateY(-3.75px) rotate(-45deg); }
  .header-actions {
    display:none;
    position:absolute;
    z-index:40;
    top:calc(100% - 24px);
    right:var(--horizontal-padding);
    left:var(--horizontal-padding);
    flex-direction:column;
    align-items:stretch;
    gap:20px;
    margin:0;
    padding:24px;
    background:#fff;
    border:1px solid #d8d8d6;
    box-shadow:0 20px 40px rgba(0,0,0,.1);
  }
  .site-header-v13.is-menu-open .header-actions { display:flex; }
  .primary-menu { flex-direction:column; align-items:stretch; gap:0; }
  .primary-menu a { font-size:clamp(16px,2.7vw,26px); font-weight:500; border-bottom:1px solid #e8e8e6; padding:14px 0 15px; }
  .primary-menu a::after { display:none; }
  .primary-menu a[aria-current="page"] { font-weight:700; }
  .auth-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .auth-button { min-height:46px; font-size:12px; }
}
@media (max-width:700px) {
  .site-header.site-header-v13 { min-height:100px; padding-top:17px; }
  .site-header-v13 .wordmark-logo img { width:clamp(136px,35vw,165px); }
  .site-header-v13 .identity-subtitle { display:none; }
  .mobile-menu-toggle { min-height:37px; }
  .header-actions { top:calc(100% - 15px); padding:20px; }
}
@media (max-width:360px) {
  .menu-toggle-text { display:none; }
  .auth-actions { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .auth-button, .primary-menu a::after, .menu-toggle-lines span { transition:none; }
}

/* Standalone destination layouts — never interrupt homepage gallery/footer */
.section-page-main { min-height:calc(100svh - 215px); display:flex; flex-direction:column; justify-content:center; padding:50px var(--horizontal-padding) 70px; }
.section-page-eyebrow { display:flex; align-items:center; gap:9px; font-size:12px; text-transform:uppercase; letter-spacing:.025em; margin:0 0 30px; }
.section-page-main h1 { max-width:1280px; font-size:clamp(61px,11.5vw,200px); font-weight:500; line-height:.9; letter-spacing:-.085em; margin:0 0 40px; text-wrap:balance; }
.section-page-description { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; border-top:1px solid rgba(22,22,19,.5); padding-top:24px; }
.section-page-description p { font-size:clamp(14px,1.35vw,20px); line-height:1.5; max-width:520px; margin:0; }
.section-page-description a { font-size:12px; border-bottom:1px solid var(--ink); padding:7px 0; white-space:nowrap; }
.section-bottom { border-top:1px solid rgba(22,22,19,.5); padding:20px var(--horizontal-padding) 24px; display:flex; justify-content:space-between; gap:20px; align-items:center; font-size:11px; }
.account-preview { border:1px solid #deded9; max-width:700px; padding:clamp(20px,4vw,46px); margin-top:5px; }
.account-preview h2 { font-size:clamp(27px,3vw,44px); font-weight:500; letter-spacing:-.05em; margin:0 0 18px; }
.account-preview p { font-size:14px; line-height:1.65; margin:0 0 18px; max-width:540px; }
.account-preview .preview-note { font-size:12px; color:var(--muted); }
@media (max-width:700px) {
  .section-page-main { min-height:calc(100svh - 185px); padding-top:38px; }
  .section-page-description { flex-direction:column; align-items:flex-start; }
  .section-bottom { font-size:10px; }
}


/* ================================================================
   V15 — reference palette + deliberate, editorial welcome gate.
   Color sampling: 15-4030 reference blue #9FB4D1, 656 ivory #FFFDF4,
   419 charcoal #1F1F1F. All website UI derives from this palette.
   Artworks are deliberately kept as supplied, never recolored.
   ================================================================ */
:root {
  --paper: #FFFDF4;
  --ink: #1F1F1F;
  --muted: #494B4D;
  --line: rgba(31,31,31,.26);
  --sobe-blue: #9FB4D1;
  --sobe-cream: #FFFDF4;
  --sobe-charcoal: #1F1F1F;
}
html { background: var(--sobe-cream); }
body, .site-shell, .hero, .site-footer, .showcase-main, .showcase-grid, .gallery-panel { background: var(--sobe-cream) !important; color: var(--ink); }
::selection { background:var(--sobe-blue);color:var(--sobe-charcoal); }
.site-header.site-header-v13 { border-top: 3px solid var(--sobe-blue); }
.hero-overline .mini-circle, .section-page-eyebrow .mini-circle { background: var(--sobe-blue); }
.hero-scroll .scroll-arrow { color: #627DA4; }
.hero-overline { color: var(--sobe-charcoal); }
.showcase-grid { background: var(--sobe-cream) !important; }
.auth-button { border-color: var(--sobe-charcoal); }
.auth-login { color: var(--sobe-charcoal); background: var(--sobe-cream); }
.auth-login:hover { background: var(--sobe-blue); }
.auth-register { background: var(--sobe-charcoal); color: var(--sobe-cream); }
.auth-register:hover { background: #323B47; }
.primary-menu a::after { background:var(--sobe-blue);height:2px; }
.site-footer { color: var(--sobe-charcoal); }
.footer-big-link { color: var(--sobe-charcoal); }
.footer-title { text-shadow: 0 1px 0 rgba(255,253,244,.35), 0 2px 0 rgba(31,31,31,.12), 0 4px 2px rgba(31,31,31,.065), 0 10px 15px rgba(31,31,31,.055); }
.footer-bottom, .section-bottom { border-color:var(--sobe-charcoal); }
.account-preview { border-color:var(--sobe-blue); }
@media (max-width:1180px) { .header-actions { background:var(--sobe-cream);border-color:var(--sobe-blue); } .primary-menu a { border-color:rgba(31,31,31,.15); } }

/* Lock body and shell until the introduction is explicitly acknowledged. */
html.sobe-entry-pending, html.sobe-entry-pending body { overflow: hidden !important; overscroll-behavior: none; }
html.sobe-entry-pending .skip-link { visibility:hidden; }
.entry-gate { display: none; }
html.sobe-entry-pending .entry-gate {
  position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center;
  padding: clamp(12px,3.3vw,42px);
  overflow-y:auto; background:rgba(31,31,31,.89);
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
}
.entry-dialog {
  width:min(100%,1040px); max-height:min(92svh,800px); min-height:min(650px,92svh);
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  background:var(--sobe-cream);box-shadow:0 30px 90px rgba(0,0,0,.28);
  overflow:hidden;animation:entry-rise .55s cubic-bezier(.15,.9,.2,1) both;
}
@keyframes entry-rise { from { opacity:0;transform:translateY(20px) scale(.985); } to {opacity:1;transform:none;} }
.entry-brand-panel { background:var(--sobe-blue); color:var(--sobe-charcoal);display:flex;flex-direction:column;justify-content:space-between;padding:clamp(26px,3.2vw,40px);min-height:0; }
.entry-brand-top,.entry-brand-bottom { display:flex;flex-direction:column;gap:10px; }
.entry-brand-top strong {font-size:clamp(18px,2vw,28px);font-weight:900;line-height:1;letter-spacing:-.075em; }
.entry-brand-top strong span {font-weight:400;letter-spacing:-.06em;margin-left:5px;}
.entry-brand-top strong sup {font-size:9px;vertical-align:top;position:relative;top:-2px;}
.entry-brand-top>span,.entry-brand-bottom { font-size:9px;letter-spacing:.06em;font-weight:600; }
.entry-brand-headline { font-size:clamp(52px,6vw,88px);font-weight:500;letter-spacing:-.085em;line-height:.94; }
.entry-brand-headline em {font-style:normal;font-weight:800;}
.entry-brand-bottom {flex-direction:row;justify-content:space-between;align-items:flex-end;}
.entry-reading-panel {padding:clamp(22px,3.6vw,43px);display:flex;flex-direction:column;min-height:0;}
.entry-panel-top { display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.05em;font-weight:700; }
.entry-dot { width:7px;height:7px;border-radius:50%;background:var(--sobe-blue);flex:none; }
.entry-asterisk { margin-left:auto;font-size:19px;line-height:1; }
.entry-reading-panel h2 { font-size:clamp(39px,4.2vw,63px);line-height:.95;font-weight:700;letter-spacing:-.075em;margin:25px 0 10px; }
.entry-panel-lead { font-size:12px;line-height:1.5;margin:0 0 19px;color:#4C4D50; }
.entry-notice-scroll { overflow:auto; flex:1; min-height:100px; max-height:245px; padding:0 21px 0 0;overscroll-behavior:contain;scrollbar-color:var(--sobe-blue) var(--sobe-cream);scrollbar-width:thin; border-top:1px solid rgba(31,31,31,.22);border-bottom:1px solid rgba(31,31,31,.22); }
.entry-notice-scroll:focus { outline:none; box-shadow:inset 3px 0 0 var(--sobe-blue); }
.entry-notice-scroll::-webkit-scrollbar {width:6px;}
.entry-notice-scroll::-webkit-scrollbar-thumb {background:var(--sobe-blue);}
.entry-notice-scroll h3 {font-size:11px;letter-spacing:.04em;margin:20px 0 8px;text-transform:uppercase;}
.entry-notice-scroll p {font-size:13px;line-height:1.62;color:#383A3E;margin:0 0 14px;}
.entry-notice-end {display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(31,31,31,.15);padding:16px 0;margin:8px 0 0;font-size:10px;font-weight:700;letter-spacing:.09em;}
.entry-consent-section {padding-top:17px;}
.entry-read-hint {font-size:11px;margin:0 0 13px;color:#5A5E65;min-height:14px;}
.entry-confirm-label {display:flex;align-items:center;gap:11px;font-size:12px;font-weight:600;cursor:pointer;line-height:1.35;}
.entry-confirm-label:has(input:disabled) {cursor:not-allowed;opacity:.52;}
.entry-confirm-label input {position:absolute;opacity:0;width:1px;height:1px;}
.entry-check-decoration {width:21px;height:21px;border:1px solid var(--sobe-charcoal);display:grid;place-items:center;flex:none;background:transparent;}
.entry-check-decoration span {color:var(--sobe-cream);font-size:14px;transform:scale(0);transition:transform .15s ease;}
.entry-confirm-label input:checked+.entry-check-decoration {background:var(--sobe-charcoal);}
.entry-confirm-label input:checked+.entry-check-decoration span {transform:scale(1);}
.entry-confirm-label input:focus-visible+.entry-check-decoration {outline:2px solid var(--sobe-blue);outline-offset:3px;}
.entry-continue {margin-top:17px;display:flex;width:100%;align-items:center;justify-content:space-between;min-height:50px;padding:13px 16px;border:1px solid var(--sobe-charcoal);font:700 12px var(--font-ui);background:var(--sobe-charcoal);color:var(--sobe-cream);cursor:pointer;transition:background .2s,color .2s;}
.entry-continue:hover:not(:disabled) {background:var(--sobe-blue);color:var(--sobe-charcoal);}
.entry-continue:disabled {cursor:not-allowed;opacity:.36;}
.entry-continue:focus-visible {outline:2px solid var(--sobe-blue);outline-offset:4px;}
.entry-footnote {font-size:10px;line-height:1.5;color:#5B5B5B;margin:11px 0 0;}
@media(max-width:760px){
  html.sobe-entry-pending .entry-gate { padding:10px;align-items:center; }
  .entry-dialog {grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr); max-height:96svh;min-height:0;width:min(100%,550px); }
  .entry-brand-panel {padding:19px 21px;min-height:112px;gap:15px;}
  .entry-brand-top {flex-direction:row;justify-content:space-between;align-items:center;}
  .entry-brand-top strong {font-size:19px;}
  .entry-brand-top > span {font-size:8px;}
  .entry-brand-headline {font-size:32px;line-height:.95;}
  .entry-brand-headline br {display:none;}
  .entry-brand-bottom {display:none;}
  .entry-reading-panel {padding:19px 21px;min-height:0;}
  .entry-reading-panel h2 {margin:13px 0 5px;font-size:clamp(33px,8.5vw,48px);}
  .entry-panel-lead {font-size:11px;margin-bottom:9px;}
  .entry-notice-scroll {max-height:none;min-height:65px;}
  .entry-notice-scroll p {font-size:12px;line-height:1.5;}
  .entry-consent-section {padding-top:10px;}
  .entry-read-hint {font-size:10px;margin-bottom:8px;}
  .entry-confirm-label {font-size:11px;}
  .entry-continue {min-height:42px;margin-top:10px;}
  .entry-footnote {font-size:9px;margin-top:7px;}
}
@media (max-height:620px) and (min-width:761px) {
  .entry-dialog {min-height:0;max-height:96svh;}
  .entry-reading-panel h2 {font-size:clamp(34px,4vw,50px);margin:12px 0 8px;}
  .entry-notice-scroll {max-height:160px;}
}
@media (prefers-reduced-motion:reduce) { .entry-dialog {animation:none;} .entry-continue {transition:none;} }

/* V16: image-ready full-bleed cover on the left side of the entry dialog.
   Replace assets/entry-cover.webp with your own visual at any time. */
.entry-brand-panel { position:relative; isolation:isolate; }
.entry-brand-panel .entry-cover-image {
  position:absolute; z-index:-2; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center center; pointer-events:none;
}
.entry-brand-panel::before {
  content:""; position:absolute; z-index:-1; inset:0; pointer-events:none;
  background:linear-gradient(90deg,rgba(159,180,209,.42),rgba(159,180,209,.07));
}
/* Reduced contrast background has no effect until a real image replaces the transparent template. */


/* ================================================================
   V18 — visual-only entry gate + SOBE Model Camp landing page
   ================================================================ */

.entry-gate[aria-hidden="true"] { display:none; }
.entry-dialog--visual {
  width:min(1080px, calc(100vw - 42px));
  max-height:calc(100svh - 42px);
  display:grid;
  gap:18px;
  justify-items:center;
}
.entry-visual-link {
  appearance:none; border:0; background:transparent; padding:0; margin:0;
  display:block; width:100%; border-radius:34px; overflow:hidden;
  box-shadow:0 42px 90px rgba(0,0,0,.3); cursor:pointer;
}
.entry-visual-image { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; background:#1F1F1F; }
.entry-continue--visual {
  width:min(380px, 100%);
  min-height:58px; border-radius:999px; border:1px solid #111;
  background:#FFFDF4; color:#111; font-size:16px; font-weight:700; letter-spacing:-.02em;
  display:inline-flex; align-items:center; justify-content:center; padding:0 24px;
  box-shadow:0 12px 30px rgba(0,0,0,.16);
}
.entry-continue--visual:hover { background:#9FB4D1; }
.entry-continue--visual:focus-visible, .entry-visual-link:focus-visible {
  outline:2px solid #9FB4D1; outline-offset:4px;
}
@media (max-width:700px){
  .entry-dialog--visual { width:min(94vw, 560px); gap:14px; }
  .entry-visual-link { border-radius:24px; }
  .entry-continue--visual { min-height:52px; font-size:15px; }
}

.camp-main {
  background:#FFFDF4;
  color:#111;
  padding:0 0 120px;
}
.camp-hero {
  padding: clamp(28px,4vw,60px) var(--horizontal-padding) 44px;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
  gap:clamp(28px,3vw,42px);
  align-items:stretch;
}
.camp-hero-copy {
  display:grid; gap:24px; align-content:start;
}
.camp-kicker {
  font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#4d5a6e;
  display:inline-flex; align-items:center; gap:10px;
}
.camp-kicker .mini-circle { background:#9FB4D1; }
.camp-title {
  margin:0; font-size:clamp(44px,7.5vw,102px); line-height:.93; letter-spacing:-.08em; font-weight:700;
}
.camp-facts { display:grid; gap:10px; }
.camp-fact-line {
  font-size:clamp(18px,2vw,26px); line-height:1.15; letter-spacing:-.045em;
}
.camp-fact-line--strong { font-weight:700; }
.camp-intro {
  max-width:760px; font-size:17px; line-height:1.65; color:#2a2a2a;
}
.camp-cta-row {
  display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:start;
  padding-top:6px;
}
.camp-apply-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  min-height:58px; padding:0 28px; border-radius:999px; background:#1F1F1F; color:#FFFDF4;
  font-size:15px; font-weight:700; letter-spacing:-.02em;
}
.camp-apply-btn:hover { transform:translateY(-1px); background:#111; }
.camp-cta-note {
  margin:0; max-width:430px; font-size:13px; line-height:1.55; color:#55514a;
}
.camp-hero-visual {
  min-height:620px; border-radius:34px; overflow:hidden; background:#9FB4D1; position:relative;
  box-shadow:0 26px 60px rgba(0,0,0,.08);
}
.camp-hero-visual img { width:100%; height:100%; display:block; object-fit:cover; }
.camp-hero-visual-note {
  position:absolute; left:18px; right:18px; bottom:18px; padding:16px 18px; border-radius:18px;
  background:rgba(255,253,244,.88); backdrop-filter: blur(14px); font-size:12px; line-height:1.5; color:#111;
}
.camp-anchor-nav {
  position:sticky; top:0; z-index:30; display:flex; gap:10px; flex-wrap:wrap; align-items:center;
  padding:18px var(--horizontal-padding); background:rgba(255,253,244,.94); backdrop-filter: blur(14px);
  border-top:1px solid rgba(17,17,17,.08); border-bottom:1px solid rgba(17,17,17,.08);
}
.camp-anchor-nav a {
  display:inline-flex; align-items:center; min-height:36px; padding:0 14px; border-radius:999px;
  border:1px solid rgba(17,17,17,.12); font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#111;
}
.camp-anchor-nav a:hover { background:#9FB4D1; border-color:#9FB4D1; }
.camp-sections {
  padding:40px var(--horizontal-padding) 0; display:grid; gap:24px;
}
.camp-section {
  display:grid; grid-template-columns:minmax(180px,220px) minmax(0,1fr);
  gap:24px; padding:28px 0; border-top:1px solid rgba(17,17,17,.12);
}
.camp-section:last-of-type { border-bottom:1px solid rgba(17,17,17,.12); }
.camp-section-label {
  font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:#66778f;
}
.camp-section-body h2 { margin:0 0 14px; font-size:clamp(28px,4vw,52px); letter-spacing:-.06em; line-height:.96; }
.camp-section-body p { margin:0 0 16px; max-width:860px; font-size:16px; line-height:1.72; color:#242424; }
.camp-grid-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.camp-info-card, .camp-day-card, .camp-guest-card, .camp-step-card, .camp-faq-item {
  background:#fff; border:1px solid rgba(17,17,17,.09); border-radius:24px; padding:22px;
}
.camp-info-card h3, .camp-day-card h3, .camp-guest-card h3, .camp-step-card h3, .camp-faq-item h3 {
  margin:0 0 10px; font-size:20px; letter-spacing:-.04em; line-height:1.05;
}
.camp-day-card .camp-day-meta, .camp-guest-card .camp-role, .camp-step-card .camp-step-no {
  display:block; margin-bottom:12px; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:#66778f;
}
.camp-list { margin:0; padding-left:18px; display:grid; gap:10px; }
.camp-list li { line-height:1.65; }
.camp-faq-grid { display:grid; gap:14px; }
.camp-faq-item p { margin:0; }
.camp-form-shell {
  background:#fff; border:1px solid rgba(17,17,17,.09); border-radius:30px; padding:26px;
}
.camp-form-intro { margin-bottom:22px; }
.camp-form-intro h3 { margin:0 0 10px; font-size:28px; letter-spacing:-.05em; }
.camp-form-intro p { margin:0; font-size:15px; line-height:1.65; color:#444; }
.camp-form-grid {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px;
}
.camp-field { display:grid; gap:8px; }
.camp-field--full { grid-column:1 / -1; }
.camp-field label { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#5d5a54; }
.camp-field input, .camp-field select, .camp-field textarea {
  width:100%; min-height:52px; border-radius:16px; border:1px solid rgba(17,17,17,.15); background:#fff;
  padding:14px 16px; font:inherit; color:#111;
}
.camp-field textarea { min-height:130px; resize:vertical; }
.camp-check {
  display:flex; gap:12px; align-items:flex-start; font-size:14px; line-height:1.55; margin-top:18px;
}
.camp-check input { margin-top:4px; }
.camp-form-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:22px; }
.camp-submit {
  display:inline-flex; align-items:center; justify-content:center; min-height:56px; padding:0 28px; border-radius:999px;
  background:#1F1F1F; color:#FFFDF4; font-size:15px; font-weight:700;
}
.camp-submit:hover { background:#111; }
.camp-form-note { font-size:12px; line-height:1.6; color:#5f5b53; max-width:480px; }
.camp-demo-message { display:none; margin-top:18px; padding:15px 16px; border-radius:16px; background:#eef3fb; color:#111; font-size:14px; }
.camp-demo-message.is-visible { display:block; }
@media (max-width:1100px) {
  .camp-hero { grid-template-columns:1fr; }
  .camp-hero-visual { min-height:420px; order:-1; }
  .camp-grid-two { grid-template-columns:1fr; }
  .camp-section { grid-template-columns:1fr; }
}
@media (max-width:700px) {
  .camp-main { padding-bottom:90px; }
  .camp-hero { padding-top:22px; padding-bottom:30px; gap:22px; }
  .camp-title { font-size:16.4vw; }
  .camp-fact-line { font-size:19px; }
  .camp-intro { font-size:15px; }
  .camp-cta-row { grid-template-columns:1fr; }
  .camp-apply-btn { width:100%; }
  .camp-hero-visual { min-height:320px; border-radius:24px; }
  .camp-anchor-nav { gap:8px; padding-top:14px; padding-bottom:14px; }
  .camp-anchor-nav a { font-size:10px; min-height:32px; padding:0 11px; }
  .camp-sections { padding-top:28px; }
  .camp-section { gap:14px; padding:22px 0; }
  .camp-section-body h2 { font-size:34px; }
  .camp-section-body p { font-size:15px; }
  .camp-form-shell { border-radius:24px; padding:18px; }
  .camp-form-grid { grid-template-columns:1fr; }
}


/* ================================================================
   V19 — popup removed, fixed campaign CTA, premium multi-step forms
   ================================================================ */

.entry-gate { display:none !important; }
html.sobe-entry-pending, body.sobe-entry-pending { overflow:auto !important; }


.camp-page, .signup-page { background:#FFFDF4; color:#111; }
.camp-landing-hero, .signup-intro {
  padding:clamp(28px,4vw,60px) var(--horizontal-padding) clamp(26px,4vw,44px);
}
.camp-landing-copy { max-width:1080px; display:grid; gap:22px; }
.camp-landing-kicker { margin:0; display:inline-flex; gap:9px; align-items:center; font-size:12px; letter-spacing:.09em; text-transform:uppercase; color:#5e6f87; }
.camp-landing-kicker .mini-circle { background:#9FB4D1; }
.camp-landing-copy h1, .signup-intro h1 {
  margin:0; font-size:clamp(54px,8vw,132px); line-height:.9; letter-spacing:-.08em; font-weight:700;
}
.camp-landing-meta { display:grid; gap:8px; }
.camp-landing-meta p { margin:0; font-size:clamp(18px,2vw,28px); line-height:1.15; letter-spacing:-.04em; }
.camp-landing-meta p strong { font-weight:700; }
.camp-landing-intro, .signup-intro__lead {
  margin:0; max-width:980px; font-size:17px; line-height:1.72; color:#2b2b2b;
}
.camp-landing-cta-row { display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start; }
.camp-primary-cta {
  display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:58px; padding:0 28px; border-radius:999px; background:#1F1F1F; color:#FFFDF4; font-size:15px; font-weight:700;
}
.camp-primary-cta:hover { background:#111; transform:translateY(-1px); }
.camp-apply-disclaimer { margin:0; max-width:420px; font-size:13px; line-height:1.6; color:#5f5b53; }
.camp-journey { display:flex; flex-wrap:wrap; gap:10px; }
.camp-journey span {
  display:inline-flex; align-items:center; min-height:36px; padding:0 14px; border-radius:999px; background:#fff; border:1px solid rgba(17,17,17,.09); font-size:12px; letter-spacing:.03em;
}

.camp-information-grid {
  padding:0 var(--horizontal-padding) clamp(34px,4.5vw,58px);
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;
}
.camp-info-panel { background:#fff; border:1px solid rgba(17,17,17,.08); border-radius:28px; padding:26px; min-height:210px; }
.camp-panel-no { display:block; margin-bottom:16px; font-size:11px; text-transform:uppercase; letter-spacing:.09em; color:#5e6f87; }
.camp-info-panel h2 { margin:0 0 12px; font-size:28px; line-height:1; letter-spacing:-.05em; }
.camp-info-panel p { margin:0; font-size:15px; line-height:1.75; color:#303030; }

.application-stage {
  position:relative; min-height:960px; display:grid; place-items:center; padding:40px var(--horizontal-padding) 100px;
}
.application-stage__media {
  position:absolute; inset:0; overflow:hidden; border-radius:0;
}
.application-stage__motion {
  position:absolute; inset:-4%; background-size:cover; background-position:center; animation:stageDrift 18s ease-in-out infinite alternate;
}
.application-stage__motion--one { background-image:url('application-stage-poster.svg'); opacity:.92; }
.application-stage__motion--two { background-image:url('posters/p-03.svg'); opacity:.32; animation-duration:22s; mix-blend-mode:multiply; }
.application-stage__motion--three { background-image:url('posters/p-12.svg'); opacity:.3; animation-duration:24s; mix-blend-mode:multiply; }
.application-stage__overlay {
  position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,15,15,.30), rgba(15,15,15,.48));
}
@keyframes stageDrift {
  from { transform:scale(1.02) translate3d(-1.5%, -1.5%, 0); }
  to { transform:scale(1.12) translate3d(1.5%, 1.5%, 0); }
}
.application-stage__caption {
  position:absolute; left:var(--horizontal-padding); bottom:34px; z-index:2; display:grid; gap:6px; color:#FFFDF4; max-width:520px;
}
.application-stage__caption span { font-size:11px; letter-spacing:.14em; text-transform:uppercase; opacity:.84; }
.application-stage__caption strong { font-size:18px; line-height:1.1; letter-spacing:-.04em; }
.application-stage__caption em { font-size:13px; opacity:.82; font-style:normal; }
.application-stage__card-shell { position:relative; z-index:3; width:min(760px, 100%); }
.application-card {
  background:rgba(255,253,244,.92); backdrop-filter:blur(20px); border:1px solid rgba(255,255,255,.35);
  border-radius:30px; padding:28px; box-shadow:0 30px 70px rgba(0,0,0,.2);
}
.application-card__top { display:grid; grid-template-columns:1fr auto; gap:18px; align-items:end; }
.application-card__eyebrow { margin:0 0 10px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#5d6f89; }
.application-card__top h2 { margin:0; font-size:clamp(34px,4vw,54px); letter-spacing:-.065em; line-height:.96; }
.application-card__lead { margin:8px 0 0; max-width:480px; font-size:14px; line-height:1.65; color:#413f38; }
.application-progress-meta { display:grid; justify-items:end; gap:6px; font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:#3e3c36; }
.application-progress { margin:22px 0 24px; height:6px; border-radius:999px; background:rgba(17,17,17,.08); overflow:hidden; }
.application-progress span { display:block; width:0; height:100%; border-radius:999px; background:#1F1F1F; transition:width .35s ease; }
.application-step { display:grid; gap:18px; }
.application-question-block { display:grid; gap:8px; }
.application-question-no { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:#5e6f87; }
.application-question-block h3 { margin:0; font-size:clamp(28px,3.4vw,40px); line-height:1.02; letter-spacing:-.06em; }
.application-question-block p { margin:0; font-size:14px; line-height:1.65; color:#4a4842; }
.application-grid-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.application-grid-two--compact { grid-template-columns:1fr 1fr; max-width:620px; }
.application-field { display:grid; gap:8px; }
.application-field--full { width:100%; }
.application-field span { font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:#5f5b54; }
.application-field input, .application-field textarea, .application-field select {
  width:100%; min-height:54px; border-radius:18px; border:1px solid rgba(17,17,17,.15); background:#fff; color:#111; padding:14px 16px; font:inherit;
}
.application-field textarea { min-height:140px; resize:vertical; }
.application-options-grid { display:grid; gap:14px; }
.application-options-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.application-option-card { position:relative; display:block; }
.application-option-card input { position:absolute; opacity:0; pointer-events:none; }
.application-option-card span {
  display:flex; align-items:center; justify-content:center; min-height:92px; border-radius:22px; border:1px solid rgba(17,17,17,.12); background:#fff; font-size:18px; font-weight:700; letter-spacing:-.03em;
}
.application-option-card input:checked + span { background:#9FB4D1; border-color:#9FB4D1; color:#111; }
.form-summary-box { display:grid; gap:12px; }
.form-summary-row { display:grid; grid-template-columns:180px 1fr; gap:14px; padding:14px 0; border-bottom:1px solid rgba(17,17,17,.08); }
.form-summary-row span { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#66778f; }
.form-summary-row strong { font-size:15px; line-height:1.55; color:#111; }
.application-consent { display:flex; gap:12px; align-items:flex-start; font-size:14px; line-height:1.6; }
.application-consent input { margin-top:4px; }
.application-actions { display:flex; gap:12px; flex-wrap:wrap; justify-content:space-between; margin-top:24px; }
.application-btn {
  display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding:0 22px; border-radius:999px; border:1px solid #111; background:#fff; color:#111; font-size:14px; font-weight:700;
}
.application-btn--primary { background:#1F1F1F; color:#FFFDF4; }
.application-btn--primary:hover { background:#111; }
.application-btn--ghost:hover { background:#f2efe8; }
.application-btn[disabled] { opacity:.45; cursor:not-allowed; }
.application-success { display:none; gap:14px; }
.application-success.is-visible { display:grid; }
.application-success__badge { display:inline-flex; width:max-content; min-height:28px; padding:0 12px; align-items:center; border-radius:999px; background:#9FB4D1; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.application-success h3 { margin:0; font-size:clamp(32px,4vw,46px); line-height:1; letter-spacing:-.06em; }
.application-success p { margin:0; font-size:15px; line-height:1.75; color:#2f2f2f; }
.admin-demo { padding:56px var(--horizontal-padding); background:#FFFDF4; min-height:100svh; }
.admin-demo h1 { font-size:clamp(42px,6vw,84px); line-height:.92; letter-spacing:-.07em; margin:0 0 14px; }
.admin-demo p { max-width:700px; font-size:16px; line-height:1.7; }
.admin-status-grid { margin-top:24px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.admin-status-grid article { background:#fff; border:1px solid rgba(17,17,17,.08); border-radius:24px; padding:22px; display:grid; gap:10px; }
.admin-status-grid span { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#66778f; }
.admin-status-grid strong { font-size:34px; line-height:1; letter-spacing:-.05em; }
.admin-note { margin-top:22px; font-weight:700; }
@media (max-width:1100px) {
  .camp-information-grid { grid-template-columns:1fr; }
}
@media (max-width:900px) {
  .application-stage { min-height:0; padding:26px 14px 90px; }
  .application-stage__card-shell { width:100%; }
  .application-card { padding:20px; border-radius:24px; }
  .application-card__top { grid-template-columns:1fr; }
  .application-stage__caption { left:20px; right:20px; bottom:18px; }
  .application-grid-two, .application-options-grid--two, .admin-status-grid { grid-template-columns:1fr; }
  .form-summary-row { grid-template-columns:1fr; gap:8px; }
}
@media (max-width:700px) {
  .camp-landing-hero, .signup-intro { padding-top:22px; }
  .camp-landing-copy h1, .signup-intro h1 { font-size:15.2vw; }
  .camp-landing-cta-row { grid-template-columns:1fr; }
  .camp-primary-cta { width:100%; }
  .camp-information-grid { padding-bottom:26px; }
  .camp-info-panel { padding:20px; border-radius:22px; min-height:unset; }
  .camp-info-panel h2 { font-size:24px; }
  .application-stage__media { inset:0; }
  .application-stage__caption { position:relative; left:auto; bottom:auto; padding:18px 4px 0; }
  .application-stage__card-shell { margin-top:18px; }
  .application-question-block h3 { font-size:30px; }
  .application-actions { flex-direction:column; }
  .application-actions .application-btn { width:100%; }
}

/* V25 — editorial step-by-step sign-up experience */
.site-shell--signup-v25 { background:#0f0f10; }
.site-header--overlay {
  position:fixed; inset:0 0 auto 0; z-index:40; padding-top:max(14px, env(safe-area-inset-top));
  background:linear-gradient(180deg, rgba(8,8,8,.32), rgba(8,8,8,0));
}
.site-header--light .identity-subtitle,
.site-header--light .primary-menu a,
.site-header--light .mobile-menu-toggle,
.site-header--light .menu-toggle-text,
.site-header--light .auth-button { color:#fff; }
.site-header--light .auth-button { border-color:rgba(255,255,255,.5); background:rgba(255,255,255,.08); }
.site-header--light .auth-button:hover { background:rgba(255,255,255,.18); }
.site-header--light .auth-button.is-current { background:#fff; color:#111; border-color:#fff; }
.mobile-menu-toggle--light .menu-toggle-lines span { background:#fff; }
.header-actions--light.is-open { background:rgba(17,17,17,.95); }
.header-identity--light .identity-subtitle { opacity:.85; }

.signup-experience { min-height:100svh; }
.signup-stage-v25 { position:relative; min-height:100svh; overflow:hidden; }
.signup-stage-v25__visual { position:absolute; inset:0; overflow:hidden; }
.signup-stage-v25__layer,
.signup-stage-v25__gradient,
.signup-stage-v25__wordmark { position:absolute; inset:0; }
.signup-stage-v25__layer { transform:scale(1.06); animation:signupStageDrift 24s ease-in-out infinite alternate; }
.signup-stage-v25__layer--photo {
  background-image:url('sobemgmt-social-preview.jpg');
  background-size:cover; background-position:center; filter:saturate(.88) contrast(1.02) brightness(.9);
}
.signup-stage-v25__layer--poster {
  background-image:url('application-stage-poster.svg');
  background-size:cover; background-position:center; opacity:.22; mix-blend-mode:screen; animation-duration:32s;
}
.signup-stage-v25__gradient {
  background:
    radial-gradient(circle at 22% 26%, rgba(245,213,186,.28), transparent 34%),
    radial-gradient(circle at 70% 38%, rgba(159,180,209,.16), transparent 28%),
    linear-gradient(180deg, rgba(10,10,10,.4), rgba(10,10,10,.62));
}
.signup-stage-v25__wordmark {
  display:grid; align-content:center; justify-content:center; gap:0; font-weight:700;
  font-size:clamp(80px, 12vw, 240px); line-height:.82; letter-spacing:-.08em; text-transform:lowercase;
  color:rgba(255,255,255,.16); text-align:center; pointer-events:none; user-select:none;
}
.signup-stage-v25__wordmark span:nth-child(2) { transform:translateX(-4%); }
.signup-stage-v25__wordmark span:nth-child(3) { transform:translateX(5%); }
@keyframes signupStageDrift {
  from { transform:scale(1.06) translate3d(-1.5%, -1%, 0); }
  to { transform:scale(1.13) translate3d(1.5%, 1.8%, 0); }
}

.signup-stage-v25__inner {
  position:relative; z-index:2; min-height:100svh;
  display:grid; align-content:center; justify-items:center; gap:22px;
  padding:clamp(110px, 10vw, 140px) var(--horizontal-padding) clamp(34px, 4vw, 44px);
}
.signup-floating-kicker {
  display:inline-flex; align-items:center; gap:10px; padding:0 16px; min-height:40px; border-radius:999px;
  background:rgba(255,255,255,.14); color:#fff; border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(14px); font-size:12px; letter-spacing:.12em; text-transform:uppercase;
}
.signup-screen { display:none; width:min(760px, 100%); }
.signup-screen.is-visible { display:block; }
.signup-screen__card {
  background:rgba(10,10,10,.42); color:#fff; backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.12); border-radius:32px; padding:clamp(24px, 3vw, 36px);
  box-shadow:0 30px 90px rgba(0,0,0,.28);
}
.signup-screen__card--notice { width:min(720px, 100%); }
.signup-screen__eyebrow {
  display:inline-flex; margin-bottom:14px; font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:#d8dde6;
}
.signup-screen__card h1,
.signup-screen__card h2 {
  margin:0 0 14px; font-size:clamp(42px, 6vw, 82px); line-height:.9; letter-spacing:-.07em; color:#fff;
}
.signup-screen__card p { margin:0 0 14px; font-size:16px; line-height:1.75; color:rgba(255,255,255,.88); }
.signup-screen__actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:24px; }
.application-btn--wide { min-width:min(260px, 100%); }

.signup-age-options { display:grid; gap:14px; margin-top:18px; }
.signup-age-option { position:relative; display:block; }
.signup-age-option input { position:absolute; opacity:0; pointer-events:none; }
.signup-age-option span {
  display:grid; gap:8px; padding:20px 22px; border-radius:24px; border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06); transition:transform .22s ease, background .22s ease, border-color .22s ease;
}
.signup-age-option strong { font-size:22px; letter-spacing:-.04em; }
.signup-age-option em { font-size:13px; font-style:normal; color:rgba(255,255,255,.72); line-height:1.65; }
.signup-age-option input:checked + span {
  background:rgba(159,180,209,.28); border-color:#9FB4D1; transform:translateY(-2px);
}

.signup-form-shell {
  width:min(1160px, 100%); display:grid; grid-template-columns:minmax(0, .82fr) minmax(0, 1fr); gap:24px; align-items:start;
}
.signup-intro-panel {
  display:grid; gap:18px; align-content:start; padding:34px 30px;
  min-height:100%; border-radius:30px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.16);
  color:#fff; backdrop-filter:blur(14px);
}
.signup-intro-panel__eyebrow { font-size:11px; letter-spacing:.15em; text-transform:uppercase; opacity:.86; }
.signup-intro-panel h1 { margin:0; font-size:clamp(44px,5.8vw,90px); line-height:.88; letter-spacing:-.08em; }
.signup-intro-panel p { margin:0; font-size:16px; line-height:1.8; color:rgba(255,255,255,.88); }
.signup-intro-panel__tags { display:flex; flex-wrap:wrap; gap:10px; }
.signup-intro-panel__tags span {
  display:inline-flex; align-items:center; min-height:36px; padding:0 14px; border-radius:999px; background:rgba(255,255,255,.14); font-size:12px; letter-spacing:.06em; text-transform:uppercase;
}

.application-card--v25 {
  background:rgba(255,253,244,.94); border:1px solid rgba(255,255,255,.4); padding:32px; border-radius:32px;
}
.application-progress--light span { background:linear-gradient(90deg, #111 0%, #5c6f8f 100%); }
.application-form--v25 .application-step { min-height:450px; align-content:start; }
.application-step--hero .application-options-grid--large .application-option-card span { min-height:110px; font-size:22px; }
.application-question-block--centered { max-width:760px; }
.application-note-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; }
.application-note-grid > div {
  background:#fff; border:1px solid rgba(17,17,17,.08); border-radius:20px; padding:18px;
}
.application-note-grid strong { display:block; margin-bottom:8px; font-size:15px; }
.application-note-grid p { margin:0; font-size:14px; line-height:1.7; color:#3a3a3a; }
.application-actions--v25 { margin-top:8px; }
.application-actions--success { margin-top:18px; }
.application-form [hidden] { display:none !important; }
.signup-help-panel {
  width:min(1160px, 100%); display:flex; gap:10px; justify-content:space-between; align-items:center;
  padding:14px 18px; border-radius:18px; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.14); color:#fff; backdrop-filter:blur(10px);
}
.signup-help-panel span { font-size:12px; letter-spacing:.12em; text-transform:uppercase; opacity:.76; }
.signup-help-panel strong { font-size:15px; letter-spacing:-.03em; }
.signup-help-panel em { font-size:13px; font-style:normal; color:rgba(255,255,255,.72); }

@media (max-width:1080px) {
  .signup-form-shell { grid-template-columns:1fr; }
}
@media (max-width:900px) {
  .site-header--overlay { background:linear-gradient(180deg, rgba(8,8,8,.6), rgba(8,8,8,0)); }
  .signup-stage-v25__wordmark { font-size:clamp(70px, 18vw, 140px); }
  .signup-stage-v25__inner { padding-top:112px; }
  .signup-help-panel { flex-direction:column; align-items:flex-start; }
  .application-note-grid { grid-template-columns:1fr; }
}
@media (max-width:700px) {
  .signup-screen__card,
  .signup-intro-panel,
  .application-card--v25 { border-radius:24px; padding:20px; }
  .signup-screen__card h1,
  .signup-screen__card h2 { font-size:14vw; }
  .signup-intro-panel h1 { font-size:14vw; }
  .signup-stage-v25__wordmark { font-size:22vw; }
  .signup-screen__actions { flex-direction:column; }
  .signup-screen__actions > * { width:100%; }
  .signup-age-option strong { font-size:20px; }
}
/* V26 application extensions; isolated to the Sign Up screen. */
.application-discipline-fields{margin:5px 0 12px;padding:18px;background:rgba(159,180,209,.12);border-radius:18px;border:1px solid rgba(93,111,137,.18)}
.application-discipline-fields[hidden],.application-submit-error[hidden],.application-upload-error[hidden]{display:none!important}
.application-discipline-heading{margin:0 0 15px;font-weight:700;letter-spacing:-.04em}
.application-file-field{margin:12px 0}
.application-file-field input{background:#fff;font-size:13px;padding:14px}
.application-file-field small{color:#535353;font-size:12px;line-height:1.55}
.application-submit-error,.application-upload-error{margin-top:15px;background:#ffebeb;color:#7b1616;border-radius:12px;padding:15px;font-size:13px;line-height:1.6}
.application-btn[aria-busy="true"]{opacity:.65;pointer-events:none}


/* V27 — language switcher + opt-in analytics preferences */
.sobe-language-picker{display:flex;align-items:center;gap:7px;margin-left:clamp(10px,1vw,18px);font-size:11px;flex-shrink:0}
.sobe-language-picker label{font-size:10px;letter-spacing:.04em;white-space:nowrap}
.sobe-language-picker select{max-width:110px;padding:7px 22px 7px 10px;border:1px solid currentColor;border-radius:999px;color:inherit;background:transparent;cursor:pointer;font:inherit}
.sobe-language-picker option{color:#1F1F1F;background:#FFFDF4}
.site-header--light .sobe-language-picker{color:#fff}
.sobe-consent-bar{position:fixed;left:12px;bottom:57px;z-index:2000;width:min(660px,calc(100vw - 24px));padding:16px 18px;border:1px solid rgba(0,0,0,.18);background:#FFFDF4;color:#1F1F1F;box-shadow:0 18px 50px rgba(0,0,0,.16);border-radius:17px;display:none;gap:14px;align-items:center}
.sobe-consent-bar.is-visible{display:flex}
.sobe-consent-copy{flex:1;display:grid;gap:6px;font-size:13px;line-height:1.45}
.sobe-consent-copy strong{font-size:14px}
.sobe-consent-actions{display:flex;gap:7px;flex-wrap:wrap}
.sobe-consent-actions button{border:1px solid #1F1F1F;border-radius:999px;padding:9px 12px;background:transparent;color:#1F1F1F;font-size:12px;cursor:pointer}
.sobe-consent-actions [data-consent=yes]{background:#1F1F1F;color:#fff}
.sobe-privacy-toggle{position:fixed;left:12px;bottom:12px;z-index:2000;background:#FFFDF4;color:#1F1F1F;border:1px solid rgba(0,0,0,.24);border-radius:999px;padding:8px 13px;font-size:11px;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,.08)}
@media(max-width:1200px){.sobe-language-picker label{display:none}}
@media(max-width:900px){.header-actions .sobe-language-picker{margin:12px 0 6px;justify-content:flex-start}.header-actions .sobe-language-picker label{display:inline}}
@media(max-width:600px){.sobe-consent-bar{bottom:50px;flex-direction:column;align-items:stretch}.sobe-consent-actions button{flex:1}.sobe-language-picker select{max-width:130px}}
/* Explicit hidden-state guard: author display rules must not reveal later steps. */
.signup-form-shell[hidden], .application-step[hidden], .application-form[hidden], .application-btn[hidden] {display:none !important}
