/* Opening night: the festival after dark. Loaded after style.css. White text on deep night, gold and emerald light. */
:root{--ink:#fff8ef;--muted:#d9d0f2;--violet:#a58bff;--violet-dark:#d9ccff;--lilac:#0b0720;--paper:#1a1146;--mint:#20d68f;--mint-ink:#052e22;--butter:#ffd96b;--coral:#ff8a78;--line:rgba(255,255,255,.22);--night2:#241766;--gold:#ffd96b;color-scheme:dark}
html{background:#0b0720}
body{color:var(--ink);background:radial-gradient(1200px 700px at 78% -8%,rgba(165,139,255,.32),transparent 60%),radial-gradient(900px 600px at 5% 30%,rgba(32,214,143,.14),transparent 62%),linear-gradient(180deg,#0b0720,#150d3d 55%,#0b0720);background-attachment:fixed;min-height:100vh}
::selection{background:#ffd96b;color:#2a1442}
a{color:#ffe58a}
.skip{color:#2a1442}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #ffd96b;box-shadow:0 0 0 6px rgba(11,7,32,.9)}
.site-header{border-bottom:1px solid rgba(255,255,255,.18);background:rgba(11,7,32,.55);backdrop-filter:blur(8px)}
.brand-sun{color:#ffd96b;text-shadow:0 0 22px rgba(255,217,107,.9)}
.nav-button{color:#fff}.nav-button:hover{background:rgba(255,255,255,.14)}
.settings-button{border:1px solid rgba(255,255,255,.4)}
.site-footer{border-top:1px solid rgba(255,255,255,.18);color:var(--muted);font-size:15px}
.text-button{color:#ffe58a}
h1,h2,h3{color:#fff}
.eyebrow,.mini-kicker,.section-caption{color:#ffd96b}
.tilt{color:#ffd96b;text-shadow:0 0 30px rgba(255,217,107,.7)}
.tilt:after,.tilt:before{display:none}
.button{background:linear-gradient(135deg,#6a4cff,#a58bff);color:#fff;border-color:rgba(255,255,255,.35);box-shadow:0 0 24px rgba(165,139,255,.5)}
.button:hover{filter:brightness(1.12)}
.secondary{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.5);box-shadow:none}
.mint{background:linear-gradient(135deg,#20d68f,#7ff5c4);color:#052e22;border-color:#7ff5c4;box-shadow:0 0 24px rgba(32,214,143,.5)}
.butter{background:linear-gradient(135deg,#ffd96b,#ffb454);color:#2a1442;border-color:#ffd96b;box-shadow:0 0 24px rgba(255,217,107,.45)}
.current{background:linear-gradient(135deg,#6a4cff,#a58bff);color:#fff;border-color:#fff}
.done{background:rgba(32,214,143,.22)}
.mission-number{background:rgba(255,255,255,.14);color:#fff}
.mission-teaser:hover{background:rgba(255,255,255,.1)}
.art-sticker{background:#ffd96b;color:#2a1442;box-shadow:0 0 30px rgba(255,217,107,.7)}
.map-wrap{background:radial-gradient(circle at 50% 40%,#2a1b78,#0f0830 75%);border:1px solid rgba(255,255,255,.3);box-shadow:0 0 50px rgba(165,139,255,.3)}
.node-button{background:#241766;color:#fff;border:1px solid rgba(255,255,255,.4);box-shadow:0 0 14px rgba(165,139,255,.4)}
.selected{border:2px solid #ffd96b;background:#3a2590;color:#fff}
.badge{background:rgba(255,255,255,.2);color:#fff}
.phase-banner,.tip-box,.dialog-note,.cooperative-banner,.report-callout,.save-notice{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.22)}
.segmented{background:rgba(255,255,255,.1)}
.person{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.22)}
.person.focused{border-color:#ffd96b;background:rgba(255,217,107,.12)}
.planning-panel{background:rgba(26,17,70,.85);border:1px solid rgba(255,255,255,.25)}
.planning-bottom{background:rgba(255,255,255,.07);border-top:1px solid rgba(255,255,255,.2)}
.hint-button{color:#ffe58a}
.change-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.3);box-shadow:0 4px 0 rgba(0,0,0,.35);color:#fff}
.change-card:hover{background:rgba(255,255,255,.15)}
.active{border:2px solid #ffd96b;background:rgba(255,217,107,.16)}
.token-cost{background:#ffd96b;color:#2a1442}
.trial-result{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.28)}
.node-list{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.22)}
dialog{background:#1a1146;color:#fff;border:1px solid rgba(255,255,255,.35);box-shadow:0 0 60px rgba(165,139,255,.5)}
dialog::backdrop{background:rgba(5,3,16,.75)}
.dialog-close{color:#fff}
.toast{background:#ffd96b;color:#2a1442}
input,select{background:#241766;color:#fff;border:1px solid rgba(255,255,255,.4)}
.hero-grid .hero-art{filter:drop-shadow(0 0 40px rgba(165,139,255,.45))}

.sign{font-family:Oswald,'Trebuchet MS',sans-serif;letter-spacing:.06em;color:#ffd96b;margin:6px 0 0}
.door{margin:40px clamp(20px,4vw,64px) 0;padding:clamp(22px,3.5vw,40px);border-radius:26px;display:flex;flex-wrap:wrap;gap:20px 40px;align-items:center;justify-content:space-between;background:linear-gradient(110deg,rgba(255,255,255,.14),rgba(32,214,143,.16) 55%,rgba(27,18,66,.7));border:1px solid rgba(255,255,255,.4);box-shadow:0 0 50px rgba(32,214,143,.22)}
.door h2{margin-bottom:8px}.door p{max-width:60ch;font-size:18px;color:#fff;margin-bottom:6px}

/* Same specificity as the original rules, so the night colours win everywhere */
.small-note,.budget-note{color:var(--muted)}
.nav-button:hover,.button.secondary:hover,.mission-teaser:hover,.dialog-close:hover,.mission-menu button:hover{background:rgba(255,255,255,.16)}
.button.mint{background:linear-gradient(135deg,#20d68f,#7ff5c4);color:#052e22;border-color:#7ff5c4}
.button.butter{background:linear-gradient(135deg,#ffd96b,#ffb454);color:#2a1442;border-color:#ffd96b}
.button.secondary{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.5);box-shadow:none}
.hero h1 .tilt:after{background:#ffd96b;opacity:.35;display:block}
.mission-number{background:rgba(255,255,255,.14);color:#fff}
.mission-pagination button{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.3)}
.mission-pagination button.done{background:rgba(32,214,143,.3);color:#fff}
.mission-pagination button.current{background:linear-gradient(135deg,#6a4cff,#a58bff);color:#fff;border-color:#fff}
.segmented button{color:#fff}
.segmented button[aria-pressed=true]{background:#ffd96b;color:#2a1442}
.node-button.selected{background:#3a2590;border:2px solid #ffd96b;color:#fff}
.node-button .badge{background:rgba(255,255,255,.2);color:#fff}
.phase-banner .segmented{background:rgba(255,255,255,.1)}
.person select{background:#241766;color:#fff;border:1px solid rgba(255,255,255,.45)}
.preview-metrics span{background:rgba(255,255,255,.1);color:#fff}
.change-card:before{background:rgba(255,217,107,.6)}
.change-card.active{border:2px solid #ffd96b;background:rgba(255,217,107,.16)}
.node-list article{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.2)}
.how-steps li:before{background:#ffd96b;color:#2a1442}
.mission-menu button{background:rgba(255,255,255,.08);color:#fff}
.outcome-grid div{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff}
.outcome-grid strong{color:#ffd96b}
.report th{background:rgba(255,255,255,.12)}
@media print{body,html{background:#fff;color:#000}}

/* ===== Gala: the jewel festival home ===== */
.hero.gala{position:relative;isolation:isolate;max-width:none;padding-left:clamp(16px,4vw,64px);padding-right:clamp(16px,4vw,64px);overflow:hidden}
.gala .sky{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.aurora{position:absolute;border-radius:50%;filter:blur(70px);opacity:.75;mix-blend-mode:screen}
.a1{width:60vw;height:38vw;left:30%;top:-12%;background:radial-gradient(closest-side,rgba(138,92,255,.85),transparent)}
.a2{width:46vw;height:30vw;left:-10%;top:30%;background:radial-gradient(closest-side,rgba(32,214,143,.55),transparent)}
.a3{width:40vw;height:26vw;right:-8%;bottom:-6%;background:radial-gradient(closest-side,rgba(255,92,141,.45),transparent)}
.spot{position:absolute;top:-30%;width:22vw;max-width:280px;height:150%;background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,0) 72%);filter:blur(14px);transform-origin:50% 0;mix-blend-mode:screen}
.s1{left:44%;transform:rotate(22deg)}.s2{left:62%;transform:rotate(-4deg)}.s3{left:80%;transform:rotate(-26deg)}
.twinkle{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 10px 2px rgba(255,255,255,.9)}
.gala .hero-grid{position:relative;max-width:1400px;margin:0 auto}
.gala h1{font-size:clamp(56px,7.4vw,124px)!important;line-height:.95!important;letter-spacing:-.04em!important;height:auto!important;margin-bottom:22px!important}
.gala h1 .tilt{display:inline-block;background:linear-gradient(100deg,#7ff5c4 0%,#20d68f 18%,#6fa8ff 38%,#a58bff 58%,#ff7fb0 78%,#ffd96b 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;text-shadow:none;filter:drop-shadow(0 0 26px rgba(165,139,255,.75)) drop-shadow(0 0 4px rgba(255,255,255,.5))}
.gala h1 .tilt:after{display:none!important}
.gala .hero-tagline{font-size:clamp(22px,2.6vw,30px);color:#fff}
.gala .hero-copy p{font-size:18px;color:#ece6ff;max-width:44ch}
.button.glow{background:linear-gradient(135deg,#20d68f,#7ff5c4);color:#052e22;border-color:#c9ffe9;box-shadow:0 0 0 1px rgba(255,255,255,.4),0 0 36px rgba(32,214,143,.75);font-size:17px}
.hero-art{position:relative}
.stage-glow{position:absolute;left:8%;right:8%;top:14%;bottom:4%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.28),rgba(165,139,255,.25) 45%,transparent);filter:blur(10px);z-index:-1}
.hero-art svg:not(.gem){position:relative;filter:drop-shadow(0 0 30px rgba(165,139,255,.55)) drop-shadow(0 30px 40px rgba(0,0,0,.6))}
.floater{position:absolute;z-index:2;filter:drop-shadow(0 0 18px rgba(255,255,255,.55))}
.floater .gem{display:block;width:clamp(44px,7vw,var(--s,110px));height:auto}
.gem-row-wrap{max-width:1400px;margin:40px auto 0;position:relative}
.gem-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:18px}
.gem-tile{position:relative;display:grid;justify-items:center;text-align:center;gap:4px;padding:22px 14px 18px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.28);color:#fff;transition:transform .25s,box-shadow .25s}
.gem-tile:hover{transform:translateY(-4px);box-shadow:0 0 30px rgba(165,139,255,.45)}
.gem-tile .gem{filter:grayscale(.75) brightness(.7);transition:filter .4s}
.gem-tile.lit{border-color:rgba(255,255,255,.7);box-shadow:0 0 34px rgba(255,255,255,.22)}
.gem-tile.lit .gem,.gem-tile:hover .gem{filter:drop-shadow(0 0 14px rgba(255,255,255,.8))}
.gem-num{font-family:Oswald,sans-serif;color:#ffd96b;letter-spacing:.1em;font-size:14px}
.gem-tile strong{font-size:17px}.gem-tile small{color:#d9d0f2;font-size:14px}
.gem-state{margin-top:6px;font-size:14px;font-weight:800;color:#7ff5c4}
.button-row.center{justify-content:center;margin-top:22px}
@media(max-width:900px){.gem-row{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.gem-row{grid-template-columns:repeat(2,1fr)}.floater{display:none}.floater:nth-of-type(1),.floater:nth-of-type(2){display:block}}
body.motion .aurora,.aurora{animation:drift 18s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate(6%,4%) scale(1.12)}}
.floater{animation:float 7s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-16px) rotate(6deg)}}
.twinkle{animation:twk 3s ease-in-out infinite}
@keyframes twk{50%{opacity:.15;transform:scale(.5)}}
.gala h1 .tilt{animation:shimmer 8s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.aurora,.floater,.twinkle,.gala h1 .tilt{animation:none!important}}

.hero-photo{display:block;width:100%;height:auto;border-radius:30px;border:1px solid rgba(255,255,255,.45);box-shadow:0 0 0 6px rgba(255,255,255,.06),0 0 60px rgba(165,139,255,.7),0 30px 70px rgba(0,0,0,.65)}
.art-badge{position:absolute;right:6%;bottom:-14px;background:#ffd96b;color:#2a1442;font-family:Oswald,sans-serif;letter-spacing:.14em;text-transform:uppercase;padding:10px 18px;border-radius:10px;transform:rotate(-4deg);box-shadow:0 0 30px rgba(255,217,107,.7);font-weight:700}
/* In the game: the hard part, the first win guide, skill unlock, Navigator card */
.part-chip{display:inline-block;margin:10px 0 0;padding:10px 16px;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.3);font-size:16px;max-width:70ch}
.part-chip b{color:#ffd96b}
.coach{display:flex;gap:14px;align-items:center;margin:14px 0 0;padding:14px 18px;border-radius:18px;background:linear-gradient(110deg,rgba(32,214,143,.28),rgba(255,255,255,.1));border:1.5px solid #7ff5c4;box-shadow:0 0 30px rgba(32,214,143,.35);max-width:72ch}
.coach p{margin:0;font-size:18px;color:#fff}.coach b{color:#7ff5c4}
.change-card.start-here{border:2px solid #7ff5c4;box-shadow:0 0 0 4px rgba(127,245,196,.25),0 0 34px rgba(32,214,143,.7);animation:pulse 2.2s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(127,245,196,.12),0 0 50px rgba(32,214,143,.95)}}
@media(prefers-reduced-motion:reduce){.change-card.start-here{animation:none}}
.skill-unlock{display:flex;gap:18px;align-items:center;margin:16px 0;padding:18px;border-radius:20px;background:linear-gradient(110deg,rgba(255,217,107,.2),rgba(255,255,255,.08));border:1.5px solid #ffd96b;box-shadow:0 0 30px rgba(255,217,107,.3)}
.skill-unlock strong{display:block;font-size:24px;color:#fff;margin:2px 0 4px}.skill-unlock p{margin:0 0 6px;font-size:16px}.skill-unlock a{font-weight:800}
.unlock-gem .gem{filter:drop-shadow(0 0 22px rgba(255,255,255,.85))}
.navcard h2{margin-bottom:14px}.navcard-gems{display:flex;gap:12px;justify-content:center;margin:12px 0 18px;flex-wrap:wrap}
.navcard-list{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px}
.navcard-list li{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2)}
.navcard-list li.lit{border-color:#ffd96b;background:rgba(255,217,107,.12)}
.navcard-list small{display:block;font-size:15px;color:#d9d0f2}.navcard-list .door-to{color:#7ff5c4;font-weight:700;margin-top:2px}
.three-parts{margin:16px 0;padding:14px 18px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22)}
.three-parts h3{font-size:18px;margin:0 0 6px;color:#ffd96b}.three-parts p{margin:0;font-size:16px;line-height:1.6}.three-parts b{color:#fff}
.gem.off{opacity:.8}

.members-note{display:block;color:#d9d0f2;font-size:14px;margin-top:4px}
