:root{
  --oxblood:#3d0a14; --deep:#2a060d; --crimson:#8c1527; --gold:#c8962e; --gold-soft:#e3c27a;
  --ink:#1d1613; --stone:#ece8e0; --paper:#faf8f4; --muted:#6b5f58; --rule:rgba(29,22,19,.16);
  --display:"Bodoni Moda","Didot",serif; --text:"Instrument Sans",system-ui,sans-serif;
  --wrap:min(1060px, 100% - 2.5rem); --ease:cubic-bezier(.2,.7,.1,1);
}
*{box-sizing:border-box;margin:0}
html{font-size:15px;scroll-behavior:smooth;scroll-padding-top:4.5rem}
body{font-family:var(--text);color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wrap{width:var(--wrap);margin-inline:auto}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.12;letter-spacing:-.01em}
h2{font-size:clamp(1.7rem,3vw,2.5rem);max-width:20ch}
.lede{font-size:1.05rem;max-width:54ch;color:var(--muted)}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:99}
section{padding:clamp(3.5rem,6.5vw,5.5rem) 0}
.head{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:end;margin-bottom:2.8rem}
.head h2::after,.u::after{content:"";display:block;width:3rem;height:2px;background:var(--gold);margin-top:1rem;transform-origin:0 50%;transform:scaleX(0);transition:transform .9s .3s var(--ease)}
.in.head h2::after,.in .u::after,.u.in::after{transform:none}

/* nav */
.bar{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--gold);transform-origin:0 50%;transform:scaleX(0);z-index:60}
.nav{position:fixed;inset:0 0 auto 0;z-index:50;color:#fff;transition:background .3s, box-shadow .3s}
.nav.solid{background:rgba(42,6,13,.9);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(200,150,46,.3)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:4rem}
.brand{font-family:var(--display);text-decoration:none;display:flex;align-items:center;gap:.65rem;font-size:.98rem}
.brand img{height:1.7rem;width:auto;transition:transform .5s var(--ease)}
.brand:hover img{transform:translateY(-2px)}
.brand b{font-size:1.35rem;font-weight:600;color:var(--gold);margin-right:.15rem}
.brand b em,.plate b em,.crest .word em{font-style:normal;color:#fff}
.links{display:flex;gap:1.7rem;list-style:none;padding:0;align-items:center;font-size:.9rem}
.links a:not(.btn){text-decoration:none;opacity:.82;position:relative;padding:.3rem 0}
.links a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold-soft);transform:scaleX(0);transform-origin:100% 50%;transition:transform .35s var(--ease)}
.links a:not(.btn):hover::after,.links a[aria-current]::after{transform:none;transform-origin:0 50%}
.links a:hover,.links a[aria-current]{opacity:1;color:var(--gold-soft)}
.btn{position:relative;overflow:hidden;display:inline-block;font:600 .9rem var(--text);padding:.7rem 1.25rem;text-decoration:none;border:1px solid var(--gold);background:var(--gold);color:var(--deep);cursor:pointer;border-radius:2px;transition:transform .25s var(--ease), box-shadow .25s, background .25s}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(-120%);transition:transform .7s var(--ease)}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(200,150,46,.7)}
.btn:hover::before{transform:translateX(120%)}
.btn.ghost{background:transparent;color:var(--gold-soft)}
.links .btn{padding:.5rem .95rem;font-size:.85rem}
.menu{display:none;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;font:500 .85rem var(--text);padding:.45rem .8rem;border-radius:2px}

/* hero */
.hero{background:var(--oxblood);color:#fff;position:relative;overflow:hidden;padding:7.5rem 0 4rem}
.hero::before{content:"";position:absolute;inset:-20%;background:radial-gradient(40% 45% at 78% 35%, rgba(140,21,39,.95), transparent 70%),radial-gradient(35% 40% at 10% 90%, rgba(140,21,39,.5), transparent 70%);animation:drift 16s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate3d(-3%,2%,0) scale(1.06)}}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(380px circle at var(--mx,70%) var(--my,30%), rgba(227,194,122,.14), transparent 70%)}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center}
.kicker{display:flex;align-items:baseline;gap:.8rem;font-family:var(--display);color:var(--gold-soft);margin-bottom:1.4rem;opacity:0;animation:up .8s .1s var(--ease) forwards}
.kicker b{font-size:clamp(2.6rem,5vw,3.8rem);font-weight:500;line-height:1;color:var(--gold);letter-spacing:-.02em}
.kicker span{font-size:1.15rem;border-left:1px solid rgba(227,194,122,.5);padding-left:.8rem}
.hero h1{font-size:clamp(2rem,3.9vw,3.1rem);font-style:italic;font-weight:400;max-width:15ch}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}
.hero h1 .w i{display:inline-block;transform:translateY(110%);animation:rise .9s var(--ease) forwards;animation-delay:calc(.25s + var(--i) * .07s)}
@keyframes rise{to{transform:none}}
@keyframes up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.hero p{color:#eadcd3;max-width:46ch;margin:1.3rem 0 1.6rem;opacity:0;animation:up .8s .85s var(--ease) forwards}
.cta{display:flex;gap:.7rem;flex-wrap:wrap;opacity:0;animation:up .8s 1s var(--ease) forwards}
.seal{position:relative;width:min(340px,100%);aspect-ratio:1;margin-inline:auto;opacity:0;animation:sealin 1.2s .4s var(--ease) forwards}
@keyframes sealin{from{opacity:0;transform:scale(.88) rotate(-6deg)}to{opacity:1;transform:none}}
.seal svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 48s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.seal text{font:600 9.6px var(--text);letter-spacing:.3em;fill:var(--gold-soft)}
.plate{position:absolute;inset:13%;border-radius:50%;background:radial-gradient(circle at 50% 35%,#fffdf8,#efe6d3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;box-shadow:0 30px 60px -25px rgba(0,0,0,.7), inset 0 0 0 5px var(--paper), inset 0 0 0 6px var(--gold)}
.plate img{width:22%}
.plate b{font-family:var(--display);font-weight:500;font-size:clamp(2.6rem,5.4vw,4rem);line-height:1;letter-spacing:-.01em;color:var(--gold)}
.plate b em{color:var(--crimson)}
.plate span{font:600 clamp(.55rem,1vw,.72rem) var(--text);letter-spacing:.24em;text-transform:uppercase;color:var(--ink)}
.scroll{position:absolute;left:50%;bottom:1.1rem;z-index:1;width:1px;height:2.4rem;background:rgba(227,194,122,.3);overflow:hidden}
.scroll::after{content:"";position:absolute;inset:0;background:var(--gold-soft);animation:drop 2.2s var(--ease) infinite}
@keyframes drop{from{transform:translateY(-100%)}to{transform:translateY(100%)}}

/* marquee */
.ticker{background:var(--deep);color:var(--gold-soft);overflow:hidden;border-block:1px solid rgba(200,150,46,.3);padding:.85rem 0;font-family:var(--display);font-style:italic;font-size:1.05rem}
.ticker div{display:flex;width:max-content;animation:slide 38s linear infinite}
.ticker:hover div{animation-play-state:paused}
.ticker span{padding:0 1.4rem;white-space:nowrap}
.ticker span::after{content:"";display:inline-block;width:5px;height:5px;background:var(--gold);transform:rotate(45deg);margin-left:2.8rem;vertical-align:middle}
@keyframes slide{to{transform:translateX(-50%)}}

/* story */
.line{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;position:relative}
.line::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--crimson),var(--gold));transform-origin:0 50%;transform:scaleX(0);transition:transform 1.6s var(--ease)}
.line.in::before{transform:none}
.line li{position:relative;padding:1.6rem 1.4rem 1.5rem;background:#fff;border:1px solid var(--rule);border-top:0;transition:transform .4s var(--ease), box-shadow .4s}
.line li:hover{transform:translateY(-5px);box-shadow:0 22px 40px -28px rgba(61,10,20,.55)}
.line li::before{content:"";position:absolute;top:-5px;left:1.4rem;width:12px;height:12px;background:var(--paper);border:2px solid var(--crimson);border-radius:50%;transform:scale(0);transition:transform .5s var(--ease)}
.line.in li::before{transform:none}
.line.in li:nth-child(2)::before{transition-delay:.5s}.line.in li:nth-child(3)::before{transition-delay:1s}
.line time{font-family:var(--display);font-size:2.6rem;line-height:1;color:var(--crimson);display:block;margin-bottom:.6rem;font-variant-numeric:tabular-nums}
.line h3{font-size:1.15rem;margin-bottom:.4rem}
.line p{color:var(--muted);font-size:.95rem}
.album{display:grid;grid-template-columns:8fr 9fr;gap:1.2rem;margin-top:3rem}
.album figure{position:relative;overflow:hidden;border-radius:4px;background:var(--oxblood);box-shadow:0 30px 50px -34px rgba(61,10,20,.6)}
.album img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s var(--ease)}
.album figure:last-child img{aspect-ratio:3/2;object-position:50% 40%}
.album figure:hover img{transform:scale(1.03)}
.album figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.4rem 1.2rem .9rem;background:linear-gradient(transparent,rgba(29,10,14,.85));color:#f3e9e2;font-family:var(--display);font-style:italic;font-size:1.02rem}
.album figcaption b{font:600 .72rem var(--text);font-style:normal;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-right:.6rem}

/* what we do */
.work{background:var(--stone)}
.phases{list-style:none;padding:0;counter-reset:p;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.phases li{counter-increment:p;position:relative;background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:1.6rem 1.5rem 1.5rem;overflow:hidden;display:flex;flex-direction:column;gap:.7rem;transition:transform .4s var(--ease), box-shadow .4s, background .4s, color .4s}
.phases li::before{content:"Phase " counter(p);font-size:.82rem;font-weight:600;color:var(--crimson);transition:color .4s}
.phases li::after{content:counter(p);position:absolute;right:.9rem;top:-.6rem;font-family:var(--display);font-size:6rem;line-height:1;color:rgba(140,21,39,.07);transition:color .4s, transform .6s var(--ease)}
.phases li:hover{transform:translateY(-6px);background:var(--oxblood);color:#fff;box-shadow:0 26px 44px -26px rgba(61,10,20,.8)}
.phases li:hover::before{color:var(--gold-soft)}
.phases li:hover::after{color:rgba(227,194,122,.16);transform:translateY(6px) scale(1.1)}
.phases h3{font-size:1.35rem}
.phases p{color:#4a403b;font-size:.95rem;flex:1;transition:color .4s}
.phases li:hover p{color:#eadcd3}
.status{align-self:flex-start;font:500 .78rem var(--text);padding:.2rem .65rem;border:1px solid currentColor;border-radius:99px;color:var(--crimson);transition:color .4s}
.phases li:hover .status{color:var(--gold-soft)}

/* operate */
.operate{background:var(--oxblood);color:#fff;position:relative;overflow:hidden}
.operate::before{content:"";position:absolute;right:-6rem;top:50%;width:26rem;aspect-ratio:1;background:url(../assets/logos/1881-mark.svg) center/contain no-repeat;opacity:.06;transform:translateY(calc(-50% + var(--par,0) * 1px))}
.op-grid{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:3.5rem;align-items:center}
.operate blockquote{font-family:var(--display);font-style:italic;font-size:clamp(1.7rem,3.2vw,2.5rem);line-height:1.18;color:var(--gold-soft)}
.operate blockquote + p{color:#eadcd3;margin-top:1.2rem;max-width:40ch}
.operate ul{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.operate li{padding:1.2rem 1.2rem 1.3rem;border:1px solid rgba(227,194,122,.28);border-radius:4px;background:rgba(255,255,255,.03);transition:transform .35s var(--ease), background .35s, border-color .35s}
.operate li:hover{transform:translateY(-4px);background:rgba(227,194,122,.09);border-color:var(--gold)}
.operate svg{width:1.6rem;height:1.6rem;stroke:var(--gold);fill:none;stroke-width:1.5;margin-bottom:.7rem}
.operate li strong{display:block;font-family:var(--display);font-size:1.12rem;font-weight:500;margin-bottom:.2rem}
.operate li span{color:#e2d2c9;font-size:.92rem}

/* partners */
.tabs{display:inline-flex;gap:.25rem;padding:.25rem;border:1px solid var(--rule);border-radius:99px;background:#fff;margin-bottom:1.8rem}
.tabs button{font:500 .85rem var(--text);padding:.45rem 1rem;border:0;border-radius:99px;background:transparent;color:var(--muted);cursor:pointer;transition:background .3s, color .3s}
.tabs button[aria-pressed=true]{background:var(--oxblood);color:var(--gold-soft)}
.people{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.person{display:flex;flex-direction:column;background:#fff;border:1px solid var(--rule);border-radius:4px;overflow:hidden;perspective:800px;transition:box-shadow .4s, opacity .4s, transform .5s var(--ease), border-color .4s}
.person:hover{box-shadow:0 26px 44px -28px rgba(61,10,20,.6);border-color:rgba(200,150,46,.7)}
.person.off{display:none}
.photo{aspect-ratio:1;background:var(--oxblood);overflow:hidden;position:relative}
.photo::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:0 50%;transition:transform .5s var(--ease)}
.person:hover .photo::after{transform:none}
.photo img{width:100%;height:100%;object-fit:cover;object-position:50% 15%;transition:filter .6s, transform .8s var(--ease)}
@media (hover:hover){
  .photo img{filter:grayscale(1) contrast(1.05)}
  .person:hover .photo img,.person:focus-within .photo img{filter:none;transform:scale(1.06)}
}
.photo.none{display:grid;place-items:center;font-family:var(--display);font-size:3rem;color:var(--gold);background:radial-gradient(circle at 50% 40%,var(--crimson),var(--oxblood) 70%)}
.person h3,.role,.sum,.more{margin-inline:1.1rem}
.person h3{font-size:1.15rem;margin-top:1rem}
.role{color:var(--crimson);font-weight:600;font-size:.8rem;margin-top:.15rem;margin-bottom:.5rem}
.person p.sum{color:var(--muted);font-size:.88rem;line-height:1.5;flex:1;margin-bottom:1.1rem}
.more{align-self:flex-start;margin-bottom:1.1rem;background:none;border:1px solid var(--rule);border-radius:99px;padding:.3rem .8rem;font:600 .8rem var(--text);color:var(--ink);cursor:pointer;transition:background .3s, color .3s, border-color .3s}
.more span{display:inline-block;transition:transform .3s}
.more:hover{background:var(--oxblood);color:var(--gold-soft);border-color:var(--oxblood)}
.more:hover span{transform:rotate(90deg)}
dialog{border:0;padding:0;max-width:min(660px,92vw);max-height:84vh;background:var(--paper);color:var(--ink);margin:auto;border-top:3px solid var(--gold);border-radius:4px}
dialog::backdrop{background:rgba(29,10,14,.72);backdrop-filter:blur(4px)}
dialog[open]{animation:pop .4s var(--ease)}
dialog[open]::backdrop{animation:fadein .4s}
@keyframes pop{from{opacity:0;transform:translateY(20px) scale(.97)}}
@keyframes fadein{from{opacity:0}}
.dlg{padding:2rem clamp(1.3rem,4vw,2.4rem) 2.2rem;overflow:auto;max-height:84vh}
.dlg-head{display:flex;align-items:center;gap:1rem;padding-bottom:1.1rem;border-bottom:1px solid var(--rule)}
.dlg-photo{flex:none;width:4.6rem;height:4.6rem;border-radius:50%;overflow:hidden;background:var(--oxblood);box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--gold)}
.dlg-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}
.dlg-photo.none{display:grid;place-items:center;font-family:var(--display);font-size:1.5rem;color:var(--gold)}
.dlg h3{font-size:1.6rem}
.dlg .role{margin:.15rem 0 0}
.dlg p{margin-top:.9rem;max-width:66ch;font-size:.97rem}
.close{position:sticky;top:0;float:right;background:var(--ink);color:#fff;border:0;border-radius:50%;width:2.2rem;height:2.2rem;font-size:1.2rem;cursor:pointer;transition:transform .3s, background .3s}
.close:hover{transform:rotate(90deg);background:var(--crimson)}

/* legacy */
.legacy{background:var(--stone)}
.leg-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:3.5rem;align-items:center}
.crest{position:relative;background:linear-gradient(160deg,#fffdf8,#f1e9d8);border:1px solid rgba(200,150,46,.6);border-radius:4px;padding:2.4rem 2rem 1.8rem;display:grid;gap:1.4rem;justify-items:center;box-shadow:0 30px 50px -34px rgba(61,10,20,.6)}
.crest::before{content:"";position:absolute;inset:.5rem;border:1px solid rgba(200,150,46,.45);border-radius:2px;pointer-events:none}
.crest .uni{width:min(110px,40%);transform:translateY(calc(var(--par,0) * -1px))}
.crest .word{font-family:var(--display);font-style:normal;font-size:clamp(3.4rem,6vw,4.6rem);line-height:1;color:var(--gold);margin-top:-.4rem}
.crest .word em{color:var(--crimson)}
.crest .row{display:flex;align-items:center;gap:.9rem;padding-top:1.2rem;border-top:1px solid rgba(200,150,46,.5);width:100%;justify-content:center}
.crest p{color:var(--crimson);font-family:var(--display);font-style:italic;font-size:1.05rem;text-align:center}
.commit{list-style:none;padding:0;margin:1.8rem 0;display:grid;gap:.8rem}
.commit li{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;padding:1.1rem 1.2rem;background:var(--paper);border:1px solid var(--rule);border-radius:4px;font-size:.95rem;color:#4a403b;transition:transform .35s var(--ease), border-color .35s}
.commit li:hover{transform:translateX(6px);border-color:var(--gold)}
.commit svg{width:2.4rem;height:2.4rem;padding:.5rem;border-radius:50%;background:var(--oxblood);stroke:var(--gold-soft);fill:none;stroke-width:1.5}
.commit strong{font-family:var(--display);font-size:1.15rem;font-weight:500;display:block;color:var(--ink)}
.pull{font-family:var(--display);font-style:italic;font-size:1.25rem;line-height:1.35;color:var(--crimson);max-width:34ch;padding-left:1rem;border-left:2px solid var(--gold)}

/* scholarship */
.scholar{background:var(--deep);color:#fff;position:relative;overflow:hidden}
.scholar::before{content:"";position:absolute;right:-12%;top:-30%;width:46rem;aspect-ratio:1;background:radial-gradient(circle,rgba(140,21,39,.55),transparent 65%);pointer-events:none}
.scholar .wrap{position:relative}
.scholar .lede{color:#d9c8bf}
.sch-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:1.4rem;align-items:stretch}
.sch-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.sch-photos figure{position:relative;overflow:hidden;border-radius:4px;background:var(--oxblood)}
.sch-photos img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s var(--ease)}
.sch-photos .y2025{grid-column:span 2;grid-row:span 2}
.sch-photos .y2025 img{position:absolute;inset:0;height:100%;aspect-ratio:auto;object-position:50% 70%}
.sch-photos .y2024{grid-column:span 2}
.sch-photos .y2024 img{aspect-ratio:5/4;object-position:50% 60%}
.sch-photos .y2023 img{object-position:50% 72%}
.sch-photos figcaption{position:absolute;top:.7rem;left:.7rem;font:600 .72rem var(--text);letter-spacing:.14em;color:var(--gold-soft);background:rgba(42,6,13,.82);border:1px solid rgba(227,194,122,.35);padding:.2rem .55rem;border-radius:2px}
.sch-photos figure:hover img{transform:scale(1.03)}
.sch-card{display:flex;flex-direction:column;padding:1.8rem 1.6rem;border:1px solid rgba(227,194,122,.3);border-radius:4px;background:rgba(255,255,255,.04)}
.sch-kick{font:600 .72rem var(--text);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft)}
.winners{list-style:none;padding:0;margin:1.1rem 0 0;display:grid;gap:.9rem}
.winners li{display:grid;grid-template-columns:4.8rem 1fr;gap:1rem;align-items:center;padding-bottom:.9rem;border-bottom:1px solid rgba(227,194,122,.2)}
.winners .yr{font-family:var(--display);font-size:2.2rem;line-height:1;color:var(--gold)}
.winners strong{display:block;font-family:var(--display);font-size:1.3rem;font-weight:500}
.winners div span{font-size:.86rem;color:#d9c8bf}
.winners .tba .yr{color:rgba(200,150,46,.45)}
.winners .tba strong{font-size:1rem;font-style:italic;color:rgba(255,255,255,.45)}
.sch-note{margin-top:auto;padding-top:1.4rem;font-family:var(--display);font-style:italic;font-size:1.05rem;line-height:1.45;color:var(--gold-soft)}
.apply{margin-top:1.4rem;display:grid;grid-template-columns:1fr 1.7fr;gap:2rem;align-items:start;padding:clamp(1.4rem,3vw,2.2rem);background:var(--paper);color:var(--ink);border-radius:4px;border-top:3px solid var(--gold)}
.apply h3{font-size:clamp(1.5rem,2.4vw,1.9rem);margin:.5rem 0 .7rem}
.apply .sch-kick{color:var(--crimson)}
.apply-copy p:not(.sch-kick){color:var(--muted);max-width:40ch}
.apply .btn.ghost{margin-top:1.2rem;color:var(--crimson);border-color:var(--crimson)}
.apply-open[hidden]{display:none}
.apply-form{min-height:12rem;border:1px dashed rgba(140,21,39,.35);border-radius:4px;display:grid;place-items:center;text-align:center;padding:1.5rem;background:#fff}
.apply-form.live{display:block;padding:0;border:1px solid var(--rule);overflow:hidden}
.apply-form iframe{display:block;width:100%;height:min(1100px,80vh);border:0}
.apply-soon strong{font-family:var(--display);font-size:1.35rem;font-weight:500;display:block;margin-bottom:.3rem}
.apply-soon p{color:var(--muted);font-size:.95rem}
.apply-soon a,#faq details a{color:var(--crimson);text-decoration-color:var(--gold);text-underline-offset:3px}

/* faq */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:3.5rem;align-items:start}
.faq-side{position:sticky;top:6rem}
.faq-side .lede{margin-top:1.2rem}
.faq-side a{color:var(--crimson);text-decoration-color:var(--gold);text-underline-offset:3px}
details{border:1px solid var(--rule);border-radius:4px;background:#fff;margin-bottom:.6rem;transition:border-color .3s, box-shadow .3s}
details[open]{border-color:var(--gold);box-shadow:0 18px 30px -26px rgba(61,10,20,.5)}
summary{font-family:var(--display);font-size:1.1rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";flex:none;display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--stone);color:var(--crimson);font:500 1.1rem var(--text);transition:transform .4s var(--ease), background .3s, color .3s}
details[open] summary::after{transform:rotate(45deg);background:var(--oxblood);color:var(--gold-soft)}
details p{padding:0 1.2rem 1.1rem;color:var(--muted);max-width:60ch;font-size:.95rem;animation:up .45s var(--ease)}

/* contact */
.contact{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.contact::before{content:"";position:absolute;left:-10%;bottom:-40%;width:50rem;aspect-ratio:1;background:radial-gradient(circle,rgba(140,21,39,.5),transparent 65%)}
.con-grid{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:3.5rem;align-items:start}
.contact .lede{color:#c9bcb4;margin-top:1.2rem}
.reach{font-style:normal;display:grid;gap:.9rem;margin-top:2rem;padding-top:1.4rem;border-top:1px solid rgba(227,194,122,.25);color:#c9bcb4;font-size:.92rem;line-height:1.55}
.reach a{color:var(--gold-soft);text-decoration-color:rgba(227,194,122,.4);text-underline-offset:3px;font-weight:500}
form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1.8rem;background:rgba(255,255,255,.04);border:1px solid rgba(227,194,122,.25);border-radius:4px}
label{display:grid;gap:.3rem;font-size:.82rem;color:#d9cdc5}
label.full{grid-column:1/-1}
input,select,textarea{font:inherit;font-size:.95rem;color:#fff;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.18);padding:.65rem .8rem;border-radius:3px;transition:border-color .3s, box-shadow .3s, background .3s}
select option{color:#000}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,150,46,.22);background:rgba(0,0,0,.4)}
.hp{position:absolute;left:-9999px}
form .btn{justify-self:start}

footer{background:var(--deep);color:#e2d2c9;padding:2.4rem 0 1.6rem;font-size:.88rem}
.foot{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;align-items:center}
.foot .brand{color:#fff}
.foot nav{display:flex;gap:1.3rem;flex-wrap:wrap}
.foot nav a{text-decoration:none;opacity:.8;transition:color .3s, opacity .3s}.foot nav a:hover{opacity:1;color:var(--gold-soft)}
.fine{margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid rgba(227,194,122,.22);color:#b9a39b;max-width:92ch;font-size:.8rem}
.totop{position:fixed;right:1.1rem;bottom:1.1rem;z-index:40;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--gold);background:var(--oxblood);color:var(--gold-soft);font-size:1rem;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s, transform .25s}
.totop.on{opacity:1;pointer-events:auto}.totop:hover{transform:translateY(-3px)}

/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease), transform .8s var(--ease);transition-delay:calc(var(--d,0) * 90ms)}
.rv.in{opacity:1;transform:none}
.person.rv{transform:translateY(22px) scale(.97)}.person.rv.in{transform:none}

@media (max-width:900px){
  .links{display:none;position:absolute;top:4rem;left:0;right:0;background:var(--deep);flex-direction:column;align-items:flex-start;padding:1.3rem;gap:1rem}
  .links.open{display:flex;animation:up .35s var(--ease)}.menu{display:block}
  .hero{padding-top:6rem}
  .hero .wrap,.head,.op-grid,.leg-grid,.con-grid,.faq-grid,.sch-grid,.apply{grid-template-columns:1fr;gap:1.8rem}
  .seal{width:min(250px,70%);order:-1}
  .faq-side{position:static}
  .kicker{justify-content:flex-start}
  .line,.phases,.album{grid-template-columns:1fr}
  .people{grid-template-columns:repeat(2,1fr)}
  .scroll{display:none}
}
@media (max-width:520px){
  .operate ul,form,.sch-photos{grid-template-columns:1fr}
  .sch-photos .y2025,.sch-photos .y2024{grid-column:auto;grid-row:auto}
  .sch-photos .y2025 img{position:static;aspect-ratio:4/5}
  .seal{width:min(200px,60%)}
  .brand span{display:none}
  .people{gap:.7rem}
  .person h3,.role,.sum,.more{margin-inline:.8rem}
  .person h3{font-size:1rem;margin-top:.8rem}
  .person p.sum{display:none}
  .role{flex:1;margin-bottom:.7rem}
  .more{margin-bottom:.8rem}
  .operate::before{width:15rem;right:-4rem;top:22%}
  .tabs button{padding:.45rem .75rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .hero h1 .w i{transform:none}.kicker,.hero p,.cta,.seal,.rv{opacity:1;transform:none}
  .line::before,.line li::before,.head h2::after{transform:none}
}

/* success + 404 pages */
.notice{min-height:100vh;display:grid;place-items:center;background:radial-gradient(60% 55% at 50% 30%,var(--crimson),var(--oxblood) 70%);color:#fff;text-align:center;padding:2rem}
.notice main{display:grid;justify-items:center;animation:up .9s var(--ease) both}
.notice img{width:4.5rem;margin-bottom:1.2rem}
.notice .kicker{opacity:1;animation:none;margin-bottom:.8rem}
.notice h1{font-size:clamp(1.9rem,4vw,2.6rem);font-style:italic;font-weight:400}
.notice p:not(.kicker){color:#eadcd3;max-width:40ch;margin:.8rem 0 1.6rem}
