*,*::before,*::after{box-sizing:border-box}
/* Layout: a resort brochure, not a funnel. One ivory ground throughout; a full-bleed photograph opens the house,
   headlines hang far left at great size, running text sits in a narrow column offset to the right, and a single
   black band near the foot of each page carries the one invitation to apply. Single light look by choice. */
:root{
  --ivory:#F6F1E8; --stone:#E7E0D3; --stone-deep:#D6CCBC;
  --black:#1F1D19; --ink:#33302A; --night:#1B1916;
  --gold:#B89B63; --gold-deep:#755C2C;
  --taupe:#A99D8D; --muted:#5F574C;
  --on-dark:#F7F3EA; --on-dark-muted:#CEC5B6;
  --line:rgba(38,36,31,.16); --line-dark:rgba(247,243,234,.22);
  --serif:"Cormorant Garamond","Cormorant","Didot","Hoefler Text",Garamond,Georgia,serif;
  --sans:"Jost","Futura","Century Gothic","Avenir Next",system-ui,sans-serif;
  --gutter:clamp(1.25rem,6vw,6rem);
  --space:clamp(6.5rem,16vw,14.5rem);
  --champagne:linear-gradient(90deg,#8F7642,#DCC99A 50%,#A88C52);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .24 0 0 0 0 .16 .5 0 0 0 -.19'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --veil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='900'%3E%3Cfilter id='v'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.004 .011' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .98 0 0 0 0 .94 .85 0 0 0 -.3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23v)'/%3E%3C/svg%3E");
  --gap:clamp(1.25rem,2.5vw,2.5rem);
  --t-display:clamp(3rem,9vw,8.25rem);
  --t-h2:clamp(2.3rem,5.4vw,4.75rem);
  --t-h3:clamp(1.8rem,3vw,2.6rem);
  --t-lede:clamp(1.35rem,2vw,1.7rem);
  --t-label:.7rem;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ivory) var(--grain);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.75;font-weight:400;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p,ul,ol,figure,blockquote,fieldset{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
:focus-visible{outline:1px solid var(--gold-deep);outline-offset:4px}

/* ---------- type ---------- */
.display,.h2,.h3,.lede,.pull{font-family:var(--serif);font-weight:300;color:var(--black);text-wrap:balance}
.display{font-size:var(--t-display);line-height:.98;letter-spacing:-.015em}
.h2{font-size:var(--t-h2);line-height:1.04;letter-spacing:-.01em}
.h3{font-size:var(--t-h3);line-height:1.12}
.lede{font-size:var(--t-lede);line-height:1.4;font-weight:400;text-wrap:pretty}
.pull{font-style:italic;font-size:clamp(1.9rem,4vw,3.4rem);line-height:1.18}
em{font-style:italic}
.label{font-size:var(--t-label);letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);font-weight:500;line-height:1.8}
.muted{color:var(--muted)}
.note{font-size:.88rem;color:var(--muted);letter-spacing:.03em}
.text{display:flex;flex-direction:column;gap:1.4rem;max-width:31rem}

/* ---------- structure ---------- */
.sec{padding-block:var(--space);padding-inline:var(--gutter)}
.sec--close{padding-top:0}
.wrap{max-width:86rem;margin-inline:auto}
.spread{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:clamp(2.5rem,6vw,5rem);align-items:start}
.spread>*{grid-column:var(--c,1 / -1);min-width:0}
.spread--end{align-items:end}
.stack{display:flex;flex-direction:column;gap:clamp(1.5rem,2.6vw,2.25rem);align-items:flex-start}
.stack--xl{gap:clamp(3.5rem,8vw,7rem);align-items:stretch}
.hair{height:1px;background:var(--line);border:0;margin:0;width:100%}
.tick{width:3.25rem;height:1px;background:var(--champagne);border:0;margin:0}
@media (max-width:880px){.spread>*{grid-column:1 / -1}}

/* ---------- header ---------- */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--ivory) var(--grain);padding-inline:var(--gutter)}
.bar{max-width:86rem;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:5rem}
.brand{position:relative;z-index:2;font-family:var(--serif);font-size:1.2rem;letter-spacing:.34em;text-transform:uppercase;text-decoration:none;color:var(--black);white-space:nowrap;display:inline-flex;align-items:center;gap:.9rem}
.nav{display:flex;align-items:center;gap:clamp(1.5rem,2.8vw,3rem)}
.nav a{font-size:var(--t-label);letter-spacing:.26em;text-transform:uppercase;text-decoration:none;color:var(--ink);padding-block:.5rem;white-space:nowrap;background:linear-gradient(var(--gold),var(--gold)) left bottom/0 1px no-repeat;transition:background-size .45s ease}
.nav a:hover,.nav a[aria-current="page"]{background-size:100% 1px}
.nav a.nav-apply{border:1px solid var(--black);padding:.75rem 2rem;color:var(--black);background:none;transition:background-color .35s,color .35s}
.nav a.nav-apply:hover,.nav a.nav-apply[aria-current="page"]{background-color:var(--black);color:var(--ivory)}
.menu-btn{display:none;position:relative;z-index:2;background:none;border:0;font-family:var(--sans);font-size:var(--t-label);letter-spacing:.26em;text-transform:uppercase;color:var(--black);padding:.9rem 0;cursor:pointer}
@media (max-width:1020px){
  .menu-btn{display:block}
  .nav{display:none;position:fixed;inset:0;z-index:1;background:var(--ivory);flex-direction:column;align-items:flex-start;justify-content:center;gap:1.4rem;padding:6rem var(--gutter) 3rem;overflow-y:auto}
  .site-header.open .nav{display:flex}
  .nav a{font-family:var(--serif);font-size:clamp(2rem,8vw,2.8rem);letter-spacing:0;text-transform:none;font-weight:300;color:var(--black);padding:0;line-height:1.2}
  .nav a.nav-apply{font-family:var(--sans);font-size:var(--t-label);letter-spacing:.26em;text-transform:uppercase;font-weight:500;margin-top:1.75rem;padding:1rem 1.75rem}
}

/* nothing may sit hidden beneath the navigation bar */
:root{--bar:5rem;--clear:calc(var(--bar) + env(safe-area-inset-top,0px) + 1.25rem)}
section,article,[id],h1,h2,h3,.field,.done{scroll-margin-top:var(--clear)}
.site-header::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:env(safe-area-inset-top,0px);background:var(--ivory)}
.site-header{box-shadow:0 1px 0 var(--line)}
:root.menu-open{overflow:hidden}
@media (max-width:1020px){.nav{padding-top:calc(var(--bar) + env(safe-area-inset-top,0px) + 2rem)}}

/* ---------- actions ---------- */
.btn{display:inline-block;font-family:var(--sans);font-size:var(--t-label);font-weight:500;letter-spacing:.34em;text-transform:uppercase;text-decoration:none;text-align:center;line-height:1.7;padding:1.15rem 3.5rem;background:transparent;color:var(--black);border:1px solid var(--black);cursor:pointer;transition:background-color .7s ease,color .7s ease,border-color .7s ease}
.btn:hover{background:var(--black);color:var(--ivory)}
@media (max-width:480px){.btn{padding-inline:1.75rem}}
.invite .btn,.glass .btn{color:var(--on-dark);border-color:var(--gold)}
.invite .btn:hover,.glass .btn:hover{background:var(--on-dark);color:var(--black);border-color:var(--on-dark)}
.link{display:inline-block;font-size:var(--t-label);font-weight:500;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;color:var(--black);padding-bottom:.6rem;background:linear-gradient(var(--gold),var(--gold)) left bottom/2.25rem 1px no-repeat;transition:background-size .9s ease}
.link:hover{background-size:100% 1px}

/* ---------- photograph placements ---------- */
.plate{position:relative;display:flex;align-items:flex-end;overflow:hidden;width:100%;max-width:100%;aspect-ratio:4/5;padding:clamp(1rem,2vw,1.6rem);color:var(--black);
  background:radial-gradient(120% 90% at 25% 15%,#DDD3C3 0%,#B9AD9C 55%,#9F9383 100%)}
.plate{box-shadow:0 3rem 5.5rem -3rem rgba(74,58,32,.42)}
.plate::after{content:"";position:absolute;inset:0;background:var(--grain);mix-blend-mode:multiply;pointer-events:none}
.plate figcaption{position:relative;z-index:1}
.bleed .plate{box-shadow:none}
.plate--tall{aspect-ratio:3/4}
.plate--land{aspect-ratio:3/2}
.plate--wide{aspect-ratio:21/9}
.plate--pale{background:radial-gradient(120% 90% at 70% 20%,#F1EBDF 0%,#DFD6C6 60%,#CFC5B4 100%)}
.plate--dark{color:var(--on-dark);background:radial-gradient(110% 90% at 72% 22%,#5A5248 0%,#2E2A25 48%,#13120F 100%)}
.plate figcaption{font-size:.72rem;line-height:1.55;max-width:24rem;opacity:.82}
.plate figcaption b{display:block;font-weight:500;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;margin-bottom:.25rem}
.bleed{padding-inline:0}
.bleed-right{padding-right:0}
@media (max-width:880px){.plate--wide{aspect-ratio:4/3}.bleed-right{padding-right:var(--gutter)}}

/* ---------- opening ---------- */
.opening{position:relative;display:flex;align-items:flex-end;min-height:clamp(35rem,86vh,58rem);padding:clamp(2rem,5vw,4.5rem) var(--gutter);color:var(--on-dark);overflow:hidden;
  background:radial-gradient(100% 90% at 78% 28%,#665D51 0%,#353029 42%,#12110E 100%)}
.opening::after{content:"";position:absolute;inset:0;background:var(--grain),linear-gradient(to top,rgba(13,12,10,.7),rgba(13,12,10,0) 62%);pointer-events:none}
.opening-in{position:relative;z-index:1;width:100%;max-width:86rem;margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(2rem,5vw,5rem)}
.opening-in>*{min-width:0}
.opening-head{display:flex;flex-direction:column;gap:clamp(1.25rem,2.5vw,2rem)}
.creed{font-family:var(--serif);font-style:italic;font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.5;color:var(--on-dark-muted);max-width:30rem;text-wrap:pretty}
.page.entering>section:first-child .enter.creed{animation-delay:.55s}
.glass{display:flex;flex-direction:column;align-items:flex-start;gap:1.5rem;width:22rem;max-width:100%;padding:clamp(1.75rem,2.6vw,2.5rem);color:var(--on-dark);background:rgba(247,243,234,.1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(247,243,234,.26);box-shadow:0 2.5rem 4.5rem -2.5rem rgba(0,0,0,.6)}
.glass p{font-size:.98rem;line-height:1.7}
.opening--mid{min-height:clamp(27rem,66vh,44rem);background:radial-gradient(90% 90% at 22% 30%,#6A6053 0%,#3A342C 45%,#15130F 100%)}
.opening .pull{color:var(--on-dark);max-width:15em}
.opening .link{color:var(--on-dark)}
@media (max-width:880px){.opening-in{grid-template-columns:minmax(0,1fr)}.glass{width:100%}.opening{padding-top:8.5rem}}
@media (max-width:880px){.creed{font-size:1.32rem;line-height:1.62}}
/* photographs */
.opening-img{position:absolute;inset:0;z-index:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:72% 28%}
.opening--hero{background:#14120F}
@media (min-width:881px){.opening--hero .opening-img{width:114%;height:114%;inset:-1.5% auto auto 0;object-position:72% 30%}}
.opening--hero::after{background:var(--grain),linear-gradient(to right,rgba(13,12,10,.5),rgba(13,12,10,0) 56%),linear-gradient(to top,rgba(13,12,10,.6),rgba(13,12,10,0) 52%)}
.opening--mid{background:radial-gradient(90% 90% at 22% 30%,#2A251F 0%,#17140F 70%)}
.opening--mid .opening-img{left:auto;right:0;width:58%;object-position:50% 3%;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 40%);mask-image:linear-gradient(to right,transparent 0,#000 40%)}
.opening--mid::after{background:var(--grain),linear-gradient(to top,rgba(13,12,10,.5),rgba(13,12,10,0) 45%)}
.plate--photo{padding:0;background:var(--stone)}
.plate--photo::after{display:none}
.plate--photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%}
@media (max-width:880px){
  .opening--hero{padding-top:clamp(19rem,94vw,31rem)}
  .opening--hero .opening-img{bottom:auto;height:clamp(21rem,114vw,36rem);object-position:84% 16%;-webkit-mask-image:linear-gradient(to bottom,#000 52%,transparent);mask-image:linear-gradient(to bottom,#000 52%,transparent)}
  .opening--hero::after{background:var(--grain),linear-gradient(to top,rgba(13,12,10,.55),rgba(13,12,10,0) 60%)}
  .opening--mid{padding-top:clamp(20rem,96vw,32rem);background:#17140F}
  .opening--mid .opening-img{left:0;right:0;width:100%;bottom:auto;height:76%;object-position:42% 4%;-webkit-mask-image:linear-gradient(to bottom,#000 62%,transparent);mask-image:linear-gradient(to bottom,#000 62%,transparent)}
}
.opening .display{color:var(--on-dark);max-width:11.5em}
.opening .label{color:var(--gold)}
.opening-cap{position:absolute;z-index:1;top:clamp(1rem,2vw,1.6rem);right:var(--gutter);font-size:.7rem;line-height:1.55;max-width:17rem;text-align:right;color:var(--on-dark-muted)}
.opening-cap b{display:block;font-weight:500;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase}
.head{padding-block:clamp(4rem,10vw,9rem) clamp(4rem,9vw,8rem)}

/* ---------- foundations ---------- */
.words{display:flex;flex-wrap:nowrap;align-items:baseline;justify-content:space-between;gap:.5rem clamp(1rem,3vw,3rem);font-family:var(--serif);font-weight:300;font-size:clamp(3rem,8.4vw,8.25rem);line-height:1;letter-spacing:.04em;white-space:nowrap;text-transform:uppercase;color:var(--black)}
.words i{font-style:normal;flex:1;height:1px;background:var(--gold);align-self:center;min-width:1.5rem}
@media (max-width:700px){.words{flex-direction:column;gap:.35rem}.words i{display:none}}
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,5vw,5rem)}
.trio>*{display:flex;flex-direction:column;gap:1rem;min-width:0;padding-top:1.5rem;border-top:1px solid var(--line)}
.trio .label{font-variant-numeric:tabular-nums}
@media (max-width:760px){.trio{grid-template-columns:minmax(0,1fr)}}

/* ---------- index of engagements ---------- */
.index{border-top:1px solid var(--line)}
.index a{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,4fr) auto;gap:var(--gap);align-items:baseline;padding-block:clamp(1.75rem,4vw,3.25rem);border-bottom:1px solid var(--line);text-decoration:none;transition:padding-left .9s ease}
.index a:hover{padding-left:clamp(.5rem,1.5vw,1.5rem)}
.index .name{font-family:var(--serif);font-weight:300;font-size:clamp(2.1rem,5vw,4.25rem);line-height:1.05;color:var(--black)}
.index .go{font-size:var(--t-label);letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep);font-weight:500;white-space:nowrap}
@media (max-width:760px){.index a{grid-template-columns:minmax(0,1fr);gap:.6rem}}

/* ---------- quiet lists ---------- */
.quiet{columns:2;column-gap:clamp(2rem,4vw,4rem);font-family:var(--serif);font-size:clamp(1.25rem,1.7vw,1.5rem);line-height:1.3;color:var(--black)}
.quiet li{break-inside:avoid;padding-block:.45rem}
@media (max-width:560px){.quiet{columns:1}}
.steps li{display:grid;grid-template-columns:4.5rem minmax(0,3fr) minmax(0,5fr);gap:var(--gap);align-items:baseline;padding-block:clamp(1.5rem,3vw,2.4rem);border-top:1px solid var(--line)}
.steps li:last-child{border-bottom:1px solid var(--line)}
.steps .n{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--gold-deep);font-variant-numeric:tabular-nums}
.steps .t{font-family:var(--serif);font-weight:300;font-size:var(--t-h3);line-height:1.1;color:var(--black)}
@media (max-width:760px){.steps li{grid-template-columns:3rem minmax(0,1fr)}.steps li p{grid-column:2}}

/* ---------- editorial body ---------- */
.dropcap::first-letter{font-family:var(--serif);font-weight:300;font-size:5.2em;line-height:.8;float:left;padding:.08em .12em 0 0;color:var(--black)}
.center{display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(1.75rem,3.5vw,2.75rem)}

/* ---------- stone, the reception desk ---------- */
.stone{background-color:var(--stone);background-image:var(--grain),var(--veil);background-size:240px 240px,100% 100%;background-repeat:repeat,no-repeat;box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -1px 0 var(--line)}
.letter{max-width:39rem;margin-inline:auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(1.5rem,2.6vw,2.1rem)}
.letter p{font-family:var(--serif);font-size:var(--t-lede);line-height:1.5;color:var(--black);text-wrap:pretty}
.letter .sign{font-style:italic;font-size:clamp(2.2rem,3.4vw,3rem);line-height:1;margin-top:.5rem}
.seal{position:relative;flex:none;width:5.5rem;height:5.5rem;border-radius:50%;border:1px solid var(--gold);display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.9rem;line-height:1;letter-spacing:.02em;color:var(--gold);padding-right:.08em}
.seal::after{content:"";position:absolute;inset:.32rem;border-radius:50%;border:1px solid currentColor;opacity:.4}
.seal--ink{color:var(--gold-deep);border-color:var(--gold-deep)}
.seal--md{width:4rem;height:4rem;font-size:1.4rem}
.seal--md::after{inset:.24rem}
.seal--sm{width:2.3rem;height:2.3rem;font-size:.9rem;letter-spacing:0;text-transform:none}
.seal--sm::after{display:none}

/* ---------- private engagements dossier ---------- */
.numeral{font-family:var(--serif);font-style:italic;font-size:clamp(1.9rem,2.6vw,2.4rem);line-height:1;color:var(--gold-deep);font-variant-numeric:tabular-nums}
.dossier-body{gap:clamp(2.5rem,4.5vw,3.75rem)}
.incl{display:flex;flex-direction:column;gap:1.5rem;width:100%;padding-top:clamp(2rem,3.5vw,2.75rem);border-top:1px solid var(--line)}
.suited{font-family:var(--serif);font-style:italic;font-size:var(--t-lede);line-height:1.4;color:var(--black);max-width:30rem;text-wrap:pretty}
@media (min-width:881px){.dossier-head{position:sticky;top:calc(var(--clear) + 1.5rem)}}
.dark{background:var(--grain),radial-gradient(70% 75% at 50% 0%,#3D362C 0%,#1B1916 72%);color:var(--on-dark-muted)}
.dark .h2,.dark .lede,.dark .quiet,.dark .suited{color:var(--on-dark)}
.dark .label,.dark .numeral{color:var(--gold)}
.dark .incl{border-color:var(--line-dark)}
.dark .btn{color:var(--on-dark);border-color:var(--gold)}
.dark .btn:hover{background:var(--on-dark);color:var(--black);border-color:var(--on-dark)}

/* ---------- about: paired photographs ---------- */
.pairing{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(1rem,4vw,4rem);align-items:end;width:100%;max-width:52rem;margin-inline:auto}
.sign-sm{font-family:var(--serif);font-style:italic;font-size:clamp(1.8rem,2.6vw,2.3rem);line-height:1;color:var(--on-dark)}

/* ---------- about: principles ---------- */
.principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.5rem,6vw,5.5rem) clamp(2rem,6vw,6rem)}
.principles>*{display:flex;flex-direction:column;gap:1rem;min-width:0;padding-top:1.75rem;border-top:1px solid var(--line)}
.principles p{max-width:26rem}
@media (max-width:700px){.principles{grid-template-columns:minmax(0,1fr)}}
.invite .link{color:var(--on-dark)}

/* ---------- invitation (the one dark moment) ---------- */
.invite{background:var(--grain),radial-gradient(70% 75% at 50% 0%,#3D362C 0%,#1B1916 72%);color:var(--on-dark-muted);padding-block:clamp(6rem,14vw,12rem);padding-inline:var(--gutter)}
.invite .label{color:var(--gold)}
.invite .pull{color:var(--on-dark);max-width:21em;font-style:normal;font-weight:300}
.invite .note{color:var(--on-dark-muted)}

/* ---------- forms ---------- */
.form{display:flex;flex-direction:column;gap:clamp(3rem,5vw,4.25rem);max-width:42rem}
.field{display:flex;flex-direction:column;gap:.9rem;min-width:0;border:0;padding:0}
.field label,.field legend{font-family:var(--serif);font-weight:400;font-size:clamp(1.3rem,1.9vw,1.6rem);line-height:1.25;color:var(--black);padding:0}
.field--sm label{font-family:var(--sans);font-size:var(--t-label);letter-spacing:.28em;text-transform:uppercase;font-weight:500;color:var(--gold-deep)}
.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=number],.field textarea{font-family:var(--sans);font-size:1.05rem;line-height:1.6;color:var(--black);background:transparent;border:0;border-bottom:1px solid var(--ink);border-radius:0;padding:.6rem 0;width:100%}
.field textarea{min-height:4.25rem;resize:vertical}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--gold-deep);box-shadow:0 1px 0 var(--gold-deep)}
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,4vw,3.5rem)}
@media (max-width:620px){.pair{grid-template-columns:minmax(0,1fr)}}
.opts{display:flex;flex-wrap:wrap;gap:.9rem 2.25rem;margin-top:.5rem}
.opt{position:relative;cursor:pointer}
.opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.opt span{display:inline-flex;align-items:center;gap:.7rem;font-size:1rem;color:var(--muted);padding-bottom:.25rem;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}
.opt span::before{content:"";flex:none;width:.7rem;height:.7rem;border:1px solid var(--ink);border-radius:50%;transition:background-color .25s}
.opt input:checked+span{color:var(--black);border-color:var(--gold)}
.opt input:checked+span::before{background:var(--black)}
.opt input:focus-visible+span{outline:1px solid var(--gold-deep);outline-offset:4px}
.form-error{color:#7A1F12;font-size:.95rem}
.done{display:flex;flex-direction:column;gap:1.75rem;max-width:36rem}

/* ---------- launch audit: usability, no visual change ---------- */
img{max-width:100%}
[hidden]{display:none!important}
.skip{position:absolute;left:var(--gutter);top:-5rem;z-index:40;background:var(--black);color:var(--ivory);padding:.9rem 1.4rem;font-size:var(--t-label);letter-spacing:.24em;text-transform:uppercase;text-decoration:none}
.skip:focus{top:calc(env(safe-area-inset-top,0px) + .5rem)}
main:focus{outline:0}
.link,.menu-btn,.foot a{position:relative}
.brand::before{content:"";position:absolute;inset:-.45rem 0}
@media (max-width:880px){:root{--t-label:.75rem}}
.link::before,.menu-btn::before{content:"";position:absolute;inset:-.85rem -.6rem}
.foot a::before{content:"";position:absolute;inset:-.5rem 0}
.opt input{inset:-.5rem -.7rem;width:auto;height:auto}
.btn[disabled]{opacity:.55;cursor:default}
.btn[disabled]:hover{background:transparent;color:var(--black)}
.check{display:flex;gap:.9rem;align-items:flex-start;cursor:pointer;font-size:1rem;line-height:1.6;color:var(--ink);max-width:36rem}
.check input{flex:none;width:1.3rem;height:1.3rem;margin:.18rem 0 0;accent-color:var(--black)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
[aria-invalid="true"]{border-color:#7A1F12!important}
.done .sign{font-family:var(--serif);font-style:italic;font-size:clamp(2.2rem,3.4vw,3rem);line-height:1;color:var(--black)}
.textlink{color:inherit;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:.3em;text-decoration-thickness:1px}
.textlink:hover{text-decoration-color:currentColor}
@media (max-width:880px){.field textarea{min-height:7.5rem}.note,.foot-legal{font-size:.9rem}}

/* ---------- legal ---------- */
.legal article{padding-block:clamp(3rem,6vw,5rem);border-top:1px solid var(--line);scroll-margin-top:6rem}
.legal h3{font-size:var(--t-label);letter-spacing:.24em;text-transform:uppercase;color:var(--gold-deep);font-weight:500;margin-top:.75rem}
.legal .text{max-width:40rem}

/* ---------- footer ---------- */
.site-footer{padding-block:clamp(4rem,8vw,7rem) 2.5rem;padding-inline:var(--gutter)}
.foot{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,3fr) minmax(0,3fr);gap:clamp(2.5rem,5vw,5rem)}
.foot>*{min-width:0;display:flex;flex-direction:column;gap:.7rem}
.foot-name{font-family:var(--serif);font-weight:300;font-size:clamp(2rem,3.6vw,3rem);line-height:1.05;color:var(--black)}
.foot a{text-decoration:none;font-size:.95rem}
.foot a:hover{color:var(--gold-deep)}
.foot-legal{margin-top:clamp(3rem,6vw,5rem);padding-top:2rem;border-top:1px solid var(--line);font-size:.8rem;line-height:1.75;color:var(--muted);display:flex;flex-direction:column;gap:.9rem;max-width:56rem}
@media (max-width:760px){.foot{grid-template-columns:minmax(0,1fr)}}

/* ---------- motion: one slow entrance per page ---------- */
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes settle{from{transform:scale(1.045)}to{transform:none}}
.page.entering>section:first-child .enter{animation:rise 1.9s cubic-bezier(.2,.6,.2,1) both}
.page.entering>section:first-child .enter:nth-child(2){animation-delay:.35s}
.page.entering>section:first-child .enter:nth-child(3){animation-delay:.35s}
.page.entering .settle{animation:settle 2.6s cubic-bezier(.2,.6,.2,1) both}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
