
:root{
 --bg:#140F33;--bg-2:#1B1545;--bg-3:#241C5A;
 --text:#EFEAFF;--muted:#B8AEDD;--lav:#C9BCFF;--peri:#9D8CFF;--kicker:#9D8CFF;--glow:#6A50D8;--blue:#4E6CE0;
 --btn1:#E3DAFF;--btn2:#B5A6FF;--btnText:#1A1245;
 --line:color-mix(in srgb,var(--lav) 18%,transparent);
 --fd:Fraunces,Georgia,"Times New Roman",serif;--fs:Parisienne,"Brush Script MT","Segoe Script",cursive;
 --fb:Nunito,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--wrap:1160px;
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.0625rem/1.7 var(--fb);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3{margin:0;font-family:var(--fd);font-weight:400;line-height:1.08;letter-spacing:-.015em;text-wrap:balance}
.s{font-family:var(--fs);font-weight:400;font-style:normal;letter-spacing:0;color:var(--lav);font-size:1.18em;line-height:.9;text-shadow:0 0 24px color-mix(in srgb,var(--kicker) 55%,transparent)}
.wrap{width:min(var(--wrap),100% - 2.5rem);margin-inline:auto}
.skip{position:absolute;left:-999px;top:.5rem;z-index:200;background:var(--lav);color:var(--bg);padding:.7rem 1rem;border-radius:10px;font-weight:700}
.skip:focus{left:.5rem}
:focus-visible{outline:2px solid var(--lav);outline-offset:4px;border-radius:8px}
.kicker{display:inline-block;font:700 .76rem/1 var(--fb);letter-spacing:.2em;text-transform:uppercase;color:var(--kicker);margin:0 0 1.1rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:54px;padding:.9rem 1.7rem;border-radius:999px;background:linear-gradient(135deg,var(--btn1),var(--btn2));color:var(--btnText);font:700 1rem/1 var(--fb);text-decoration:none;border:0;cursor:pointer;box-shadow:0 10px 30px -10px color-mix(in srgb,var(--kicker) 70%,transparent);transition:transform .25s,box-shadow .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 40px -10px color-mix(in srgb,var(--kicker) 90%,transparent)}
.btn-ghost{background:rgba(255,255,255,.04);color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--lav) 40%,transparent)}
.btn-ghost:hover{background:color-mix(in srgb,var(--lav) 12%,transparent);box-shadow:inset 0 0 0 1px var(--lav)}
.btn svg{width:18px;height:18px;flex:none}

/* floating pill nav */
.head{position:fixed;top:14px;left:0;right:0;z-index:50;pointer-events:none}
.pill{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;height:64px;padding:0 .5rem 0 .6rem;border-radius:999px;background:color-mix(in srgb,var(--bg-2) 72%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px var(--line),0 20px 40px -24px rgba(0,0,0,.8)}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;font:500 1.05rem/1.1 var(--fd)}
.brand img{width:46px;height:46px;border-radius:50%;object-fit:cover}
.menu{list-style:none;margin:0;padding:0;display:flex;gap:1.6rem}
.menu a{text-decoration:none;font-weight:600;font-size:.95rem;color:var(--muted);transition:color .2s}
.menu a:hover{color:var(--text)}
.pill .btn{min-height:48px;padding:.7rem 1.3rem;font-size:.95rem}
.burger{display:none;width:48px;height:48px;border-radius:50%;background:color-mix(in srgb,var(--lav) 10%,transparent);border:0;color:var(--text);cursor:pointer}
.burger span{display:block;width:20px;height:2px;margin:5px auto;background:currentColor;border-radius:2px;transition:transform .3s,opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:980px){
 .burger{display:block}.pill .btn.hide-sm{display:none}.brand span{display:none}
 .menu{position:fixed;top:92px;left:1.25rem;right:1.25rem;flex-direction:column;gap:0;padding:1rem 1.25rem 1.25rem;border-radius:24px;background:color-mix(in srgb,var(--bg-2) 97%,transparent);box-shadow:inset 0 0 0 1px var(--line);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility .25s}
 .menu.open{opacity:1;visibility:visible;transform:none}
 .menu a{display:block;padding:.9rem 0;font:400 1.8rem/1.2 var(--fd);color:var(--text);border-bottom:1px solid var(--line)}
 .menu .m-cta{margin-top:1rem}.menu .m-cta .btn{width:100%;font:700 1.05rem/1 var(--fb);color:var(--btnText);border:0}
}
@media (min-width:981px){.menu .m-cta{display:none}}

/* hero centred */
.hero{position:relative;text-align:center;padding:150px 0 5rem;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(50% 45% at 50% 32%,color-mix(in srgb,var(--glow) 55%,transparent),transparent 70%),radial-gradient(35% 35% at 12% 80%,rgba(78,108,224,.22),transparent 70%),radial-gradient(35% 35% at 88% 75%,rgba(201,120,255,.16),transparent 70%)}
.stars{position:absolute;inset:0;z-index:-1;pointer-events:none}
.stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:0 0 6px #fff;animation:tw 5s ease-in-out infinite}
.stars i.x{width:0;height:0;box-shadow:none;background:none}
.stars i.x::before{content:"✦";position:absolute;transform:translate(-50%,-50%);color:#E6DEFF;font-size:12px;text-shadow:0 0 8px #C9BCFF}
@keyframes tw{0%,100%{opacity:.2}50%{opacity:1}}
.orb{position:relative;width:min(300px,64vw);aspect-ratio:1;margin:0 auto 2.2rem;animation:float 7s ease-in-out infinite}
.orb img{width:100%;height:100%;object-fit:cover;border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,var(--lav) 35%,transparent),0 0 60px 10px color-mix(in srgb,var(--glow) 55%,transparent),0 0 140px 30px rgba(78,108,224,.25)}
.orb::after{content:"";position:absolute;inset:-18px;border-radius:50%;border:1px dashed color-mix(in srgb,var(--lav) 30%,transparent);animation:spin 50s linear infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes spin{to{transform:rotate(360deg)}}
.hero h1{font-size:clamp(2.8rem,7vw,5.8rem);max-width:15ch;margin:0 auto 1.4rem}
.hero .lede{font-size:clamp(1.1rem,1.7vw,1.3rem);color:var(--muted);max-width:52ch;margin:0 auto 2.2rem}
.hero .actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}
.chips{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin:3rem auto 0;padding:0;max-width:820px}
.chips li{padding:.55rem 1.05rem;border-radius:999px;background:color-mix(in srgb,var(--lav) 7%,transparent);box-shadow:inset 0 0 0 1px var(--line);font-size:.92rem;font-weight:600;color:var(--lav)}

.sec{padding:clamp(5rem,10vw,8rem) 0;position:relative}
.center{text-align:center;max-width:720px;margin:0 auto clamp(2.8rem,5vw,4rem)}
.center h2{font-size:clamp(2.4rem,5.4vw,4.2rem)}
.center p{color:var(--muted);font-size:1.12rem;margin:1.1rem auto 0;max-width:56ch}

/* home base */
.base{display:grid;grid-template-columns:1.3fr 1fr;gap:1rem}
.venue{position:relative;border-radius:28px;padding:clamp(1.8rem,4vw,2.8rem);background:linear-gradient(160deg,var(--bg-3),var(--bg-2));box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:230px}
.venue.main{grid-row:span 2;min-height:480px;background:radial-gradient(80% 60% at 70% 20%,color-mix(in srgb,var(--glow) 60%,transparent),transparent 70%),linear-gradient(160deg,color-mix(in srgb,var(--glow) 30%,var(--bg-2)),var(--bg-2))}
.venue .tag{position:absolute;top:1.6rem;left:clamp(1.8rem,4vw,2.8rem);font:700 .72rem/1 var(--fb);letter-spacing:.18em;text-transform:uppercase;color:var(--btnText);background:var(--lav);padding:.5rem .8rem;border-radius:999px}
.venue h3{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:.4rem}
.venue.main h3{font-size:clamp(2.6rem,5.2vw,4.2rem)}
.venue p{margin:0;color:var(--muted)}
.venue .num{position:absolute;right:1.6rem;top:1.2rem;font:italic 300 4.5rem/1 var(--fd);color:color-mix(in srgb,var(--lav) 14%,transparent)}
.venue.main svg.moon{position:absolute;right:8%;top:14%;width:34%;opacity:.9}
@media (max-width:820px){.base{grid-template-columns:1fr}.venue.main{grid-row:auto;min-height:380px}}

/* zig-zag events */
.zig{display:grid;gap:clamp(3rem,6vw,5rem)}
.z{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.z:nth-child(even) .zart{order:2}
.zart{aspect-ratio:5/4;border-radius:32px;position:relative;overflow:hidden;background:radial-gradient(70% 70% at 50% 45%,color-mix(in srgb,var(--glow) 55%,transparent),transparent 70%),var(--bg-2);box-shadow:inset 0 0 0 1px var(--line);display:grid;place-items:center}
.zart svg{width:52%;color:var(--lav);filter:drop-shadow(0 0 22px color-mix(in srgb,var(--kicker) 60%,transparent))}
.z h3{font-size:clamp(2.1rem,4vw,3.2rem);margin-bottom:1rem}
.z p{color:var(--muted);font-size:1.12rem;max-width:46ch}
.z .note{display:inline-block;margin-top:.4rem;font-size:.85rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--kicker)}
@media (max-width:820px){.z{grid-template-columns:1fr}.z:nth-child(even) .zart{order:0}.zart{aspect-ratio:16/10}}

/* timeline */
.band{background:var(--bg-2);border-block:1px solid var(--line)}
.time{list-style:none;margin:0 auto;padding:0;max-width:760px;position:relative}
.time::before{content:"";position:absolute;left:27px;top:10px;bottom:10px;width:1px;background:linear-gradient(var(--lav),transparent)}
.time li{position:relative;display:grid;grid-template-columns:56px 1fr;gap:1.4rem;padding-bottom:2.4rem}
.time li:last-child{padding-bottom:0}
.time .dot{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--bg);box-shadow:inset 0 0 0 1px var(--lav),0 0 24px color-mix(in srgb,var(--kicker) 35%,transparent);font:italic 400 1.4rem/1 var(--fd);color:var(--lav)}
.time h3{font-size:1.8rem;margin:.55rem 0 .4rem}
.time p{margin:0;color:var(--muted)}

/* medium cards (arched) */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.arch{text-align:center;padding:3rem 1.6rem 2rem;border-radius:200px 200px 28px 28px;background:linear-gradient(180deg,color-mix(in srgb,var(--glow) 35%,transparent),var(--bg-2) 70%);box-shadow:inset 0 0 0 1px var(--line);transition:transform .35s}
.arch:hover{transform:translateY(-6px)}
.arch .ini{width:110px;height:110px;margin:0 auto 1.6rem;border-radius:50%;display:grid;place-items:center;font:italic 400 2.4rem/1 var(--fd);color:var(--text);background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--kicker) 80%,#fff),color-mix(in srgb,var(--glow) 60%,#000));box-shadow:0 0 40px color-mix(in srgb,var(--kicker) 50%,transparent)}
.arch h3{font-size:1.9rem;margin-bottom:.3rem}
.arch p{margin:0;color:var(--muted);font-size:.95rem}
.more{text-align:center;margin-top:2.2rem;font:italic 300 1.4rem/1.4 var(--fd);color:var(--muted)}
@media (max-width:820px){.cards{grid-template-columns:1fr;max-width:420px;margin-inline:auto}}

/* faq */
.faq{max-width:780px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.4rem 0;font:400 clamp(1.3rem,2.4vw,1.65rem)/1.3 var(--fd)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--line);font:400 1.4rem/1 var(--fb);color:var(--lav);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--muted);margin:0 0 1.4rem;max-width:62ch}

/* charity */
.glowcard{border-radius:36px;padding:clamp(2.4rem,6vw,4.5rem);text-align:center;background:radial-gradient(60% 90% at 50% 0%,rgba(201,120,255,.28),transparent 70%),linear-gradient(180deg,color-mix(in srgb,var(--glow) 30%,var(--bg-2)),var(--bg-2));box-shadow:inset 0 0 0 1px var(--line)}
.give-ic{width:64px;margin:0 auto 1.4rem;color:var(--lav)}
.give h2,.glowcard h2{font-size:clamp(2.3rem,5vw,3.8rem);margin-bottom:1rem}
.give p,.glowcard>p{color:var(--muted);font-size:1.12rem;max-width:52ch;margin:0 auto}

/* tickets + contact */
.tix{text-align:center}
.tix h2{font-size:clamp(2.8rem,7vw,5.4rem);margin-bottom:1.2rem}
.tix p{color:var(--muted);font-size:1.15rem;max-width:50ch;margin:0 auto 2.2rem}
.tix .actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}
.contact{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:clamp(3rem,6vw,4.5rem)}
.cbox{border-radius:24px;padding:1.8rem;background:var(--bg-2);box-shadow:inset 0 0 0 1px var(--line);text-decoration:none;text-align:left;transition:transform .25s,box-shadow .25s;display:block}
.cbox:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px var(--lav)}
.cbox small{display:block;font-weight:700;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--kicker);margin-bottom:.6rem}
.cbox strong{font:400 clamp(1.25rem,2vw,1.5rem)/1.25 var(--fd);word-break:break-word}
@media (max-width:820px){.contact{grid-template-columns:1fr}}
.formwrap{max-width:780px;margin:clamp(2.5rem,5vw,3.5rem) auto 0;text-align:left;border-radius:28px;padding:clamp(1.6rem,4vw,2.6rem);background:var(--bg-2);box-shadow:inset 0 0 0 1px var(--line)}
.formwrap h3{font-size:2rem;margin-bottom:1.4rem}
.field{margin-bottom:1.1rem}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
label{display:block;font-weight:700;font-size:.92rem;margin-bottom:.45rem}
input,textarea,select{width:100%;min-height:52px;font:inherit;color:var(--text);background:var(--bg);border:1px solid color-mix(in srgb,var(--lav) 28%,transparent);border-radius:14px;padding:.85rem 1rem}
textarea{min-height:140px;resize:vertical}
input:focus,textarea:focus,select:focus{outline:2px solid var(--lav);outline-offset:1px;border-color:transparent}
.formwrap .btn{width:100%}
.hint{margin:1rem 0 0;font-size:.88rem;color:var(--muted)}
@media (max-width:520px){.g2{grid-template-columns:1fr}}

.foot{padding:3rem 0 calc(2rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);text-align:center}
.foot img{width:88px;height:88px;border-radius:50%;margin:0 auto 1rem;box-shadow:0 0 30px color-mix(in srgb,var(--glow) 50%,transparent)}
.foot nav ul{list-style:none;margin:1.2rem 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.6rem}
.foot a{text-decoration:none;color:var(--muted)}
.foot a:hover{color:var(--lav);text-decoration:underline}
.foot .base-line{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 2rem;margin-top:1.8rem;font-size:.88rem;color:var(--muted)}

.mbar{display:none}
@media (max-width:700px){
 .mbar{display:flex;gap:.5rem;position:fixed;inset:auto 0 0 0;z-index:40;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .3s}
 .mbar.show{transform:none}.mbar .btn{flex:1;min-height:50px;padding:.7rem}
 .foot{padding-bottom:calc(6rem + env(safe-area-inset-bottom))}
}
.rv{opacity:0;transform:translateY(24px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.rise{animation:rise 1.1s cubic-bezier(.2,.7,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.d1{animation-delay:.1s}.d2{animation-delay:.2s}.d3{animation-delay:.3s}.d4{animation-delay:.4s}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}.rv{opacity:1;transform:none}}
.field-err{display:block;color:#FFB4C2;font-weight:600;font-size:.92rem;margin:0 0 .45rem}[aria-invalid="true"]{border-color:#FFB4C2!important;outline:1px solid #FFB4C2}

/* admin-managed sections */
.uplist{list-style:none;margin:0 auto;padding:0;max-width:900px;display:grid;gap:1rem}
.up{display:grid;grid-template-columns:92px 1fr auto;gap:1.4rem;align-items:center;padding:1.3rem 1.4rem;border-radius:22px;background:linear-gradient(160deg,var(--bg-3),var(--bg-2));box-shadow:inset 0 0 0 1px var(--line)}
.up .d{text-align:center;border-radius:16px;padding:.7rem .4rem;background:color-mix(in srgb,var(--lav) 10%,transparent);box-shadow:inset 0 0 0 1px var(--line)}
.up .d b{display:block;font:400 2.2rem/1 var(--fd);color:var(--text)}
.up .d span{display:block;font:700 .72rem/1.3 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--kicker);margin-top:.3rem}
.up h3{font-size:1.55rem;margin-bottom:.3rem}
.up p{margin:0;color:var(--muted);font-size:.98rem}
.up .st{display:inline-block;font:700 .72rem/1 var(--fb);letter-spacing:.12em;text-transform:uppercase;padding:.45rem .7rem;border-radius:999px;background:color-mix(in srgb,var(--lav) 12%,transparent);color:var(--lav)}
.up .btn{min-height:46px;padding:.6rem 1.2rem}
.upmore{text-align:center;margin-top:2rem}
@media (max-width:640px){.up{grid-template-columns:72px 1fr}.up .act{grid-column:1/-1}.up .act .btn{width:100%}}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.pgrid figure{margin:0;border-radius:24px;overflow:hidden;aspect-ratio:4/3;box-shadow:inset 0 0 0 1px var(--line);background:var(--bg-2)}
.pgrid figure:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.pgrid img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:760px){.pgrid{grid-template-columns:1fr 1fr}.pgrid figure:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:4/3}}
.arch .pic{width:110px;height:110px;margin:0 auto 1.6rem;border-radius:50%;overflow:hidden;box-shadow:0 0 0 2px color-mix(in srgb,var(--lav) 50%,transparent),0 0 40px color-mix(in srgb,var(--kicker) 50%,transparent)}
.arch .pic img{width:100%;height:100%;object-fit:cover}

/* ---- editor-managed additions ---- */
.hbtns{display:flex;align-items:center;gap:.4rem}
.sec[data-tight]{padding-top:0}
.band+.sec[data-tight]{padding-top:clamp(5rem,10vw,8rem)}
.give{text-align:center}
.give .give-ic{display:block}
.give .actions,.custom .actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:1.8rem}
.charity-name{font:italic 300 1.4rem/1.3 var(--fd);color:var(--lav)!important;margin:-.2rem auto 1rem!important}
.glowcard .center{margin-bottom:clamp(2rem,4vw,3rem)}
.glowcard{text-align:center}
.glowcard .faq,.glowcard .time{text-align:left}
.kicker.rise{display:block}
.annc{position:relative;z-index:2;pointer-events:auto;display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;align-items:center;padding:.55rem 1rem;margin:-14px 0 12px;background:linear-gradient(90deg,var(--btn1),var(--btn2));color:var(--btnText);font-weight:700;font-size:.92rem;text-align:center}
.annc a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.has-annc .hero{padding-top:200px}
@media (max-width:980px){.has-annc .menu{top:138px}}
.upempty{text-align:center;color:var(--muted);font:italic 300 1.4rem/1.4 var(--fd);margin:0}
.base.nomain{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.base.solo{grid-template-columns:1fr}
.venue h3 a{text-decoration:none}.venue h3 a:hover{text-decoration:underline}
.venue .vphoto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.venue.has-photo::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 30%,color-mix(in srgb,var(--bg) 92%,transparent))}
.venue>*:not(.vphoto){position:relative;z-index:2}
.venue .tag,.venue .num{position:absolute}
.zart.photo img{width:100%;height:100%;object-fit:cover}
.cards.one{grid-template-columns:1fr;max-width:420px;margin-inline:auto}
.cards.two{grid-template-columns:1fr 1fr;max-width:820px;margin-inline:auto}
.arch h3 a{text-decoration:none}
.arch .bio{margin-top:.8rem!important;font-size:.95rem;line-height:1.6}
.revs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
.rev{margin:0;border-radius:24px;padding:1.8rem;background:var(--bg-2);box-shadow:inset 0 0 0 1px var(--line)}
.rev .stars{color:var(--lav);letter-spacing:.15em}
.rev blockquote{margin:.8rem 0 1rem;font:400 1.2rem/1.5 var(--fd)}
.rev blockquote p{margin:0}
.rev figcaption{color:var(--muted);font-weight:700;font-size:.92rem}
.contact.c1{grid-template-columns:minmax(0,420px);justify-content:center}
.contact.c2{grid-template-columns:repeat(2,1fr)}
@media (max-width:820px){.contact.c2{grid-template-columns:1fr}}
.custom{display:grid;gap:clamp(2rem,5vw,4rem);align-items:center;max-width:780px;margin:0 auto;text-align:center}
.custom.has-img{grid-template-columns:1fr 1fr;max-width:none;text-align:left}
.custom.has-img .actions{justify-content:flex-start}
.custom h2{font-size:clamp(2.3rem,5vw,3.8rem);margin-bottom:1rem}
.custom p{color:var(--muted);font-size:1.12rem}
.custom img{width:100%;border-radius:28px;box-shadow:inset 0 0 0 1px var(--line)}
@media (max-width:820px){.custom.has-img{grid-template-columns:1fr}}
.foot-line{font:400 1.3rem/1.3 var(--fd);margin:0}
.soc-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin:1.2rem 0 0}
.soc{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--lav) 10%,transparent);box-shadow:inset 0 0 0 1px var(--line);color:var(--lav);transition:background .2s}
.soc:hover{background:color-mix(in srgb,var(--lav) 22%,transparent)}
.soc svg{width:20px;height:20px}
.preview-flag{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:300;background:#FFD54A;color:#1A1245;font:700 .78rem/1 var(--fb);letter-spacing:.08em;text-transform:uppercase;padding:.55rem .9rem;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.4);pointer-events:none}
.formwrap .hint{max-width:none;margin:1rem 0 0;text-align:left}

.etags{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0 0;padding:0}
.etags li{font:700 .7rem/1 var(--fb);letter-spacing:.08em;text-transform:uppercase;padding:.4rem .6rem;border-radius:999px;background:color-mix(in srgb,var(--lav) 10%,transparent);box-shadow:inset 0 0 0 1px var(--line);color:var(--lav)}
.up .enote{margin-top:.5rem!important;font-style:italic}
.up:target{box-shadow:inset 0 0 0 2px var(--lav),0 0 40px color-mix(in srgb,var(--glow) 50%,transparent)}
.ropts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;text-align:left;margin-bottom:1.6rem}
.ropt{border-radius:22px;padding:1.5rem;background:color-mix(in srgb,var(--bg) 55%,transparent);box-shadow:inset 0 0 0 1px var(--line)}
.ropt h3{font-size:1.5rem;margin-bottom:.3rem}
.ropt .rmeta{color:var(--lav);font-weight:700;font-size:.9rem;margin-bottom:.6rem}
.ropt p{color:var(--muted);margin:0}
.rhow{color:var(--muted);max-width:56ch;margin:0 auto 1.2rem}
.readings .actions{display:flex;justify-content:center}
.give-logo{width:96px;height:96px;object-fit:contain;margin:0 auto 1.4rem;border-radius:16px;background:#fff;padding:8px}
.raised{margin:1.8rem auto 0;display:inline-flex;flex-direction:column;align-items:center;gap:.3rem;padding:1.2rem 2rem;border-radius:22px;background:color-mix(in srgb,var(--bg) 50%,transparent);box-shadow:inset 0 0 0 1px var(--line)}
.raised b{font:400 clamp(2.6rem,6vw,3.6rem)/1 var(--fd);color:var(--lav);text-shadow:0 0 24px color-mix(in srgb,var(--kicker) 55%,transparent)}
.raised span{color:var(--muted);font-size:.95rem}
.charity-no{font-size:.85rem!important;margin-top:1.4rem!important;opacity:.8}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formwrap .privacy{margin:.8rem 0 0;font-size:.82rem;color:var(--muted);max-width:none;text-align:left}
.formwrap .hint.ok{color:#B9F3CF}.formwrap .hint.bad{color:#FFB4C2}
