:root{--bg:#0a1018;--fg:#e9f1f7;--mut:#9fb2c4;--gold:#ffc65c;--red:#e04a5f;--grn:#3bb07a;--card:#101b28;font-family:Outfit,system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(1200px 600px at 50% -10%,#14283d,var(--bg));color:var(--fg);line-height:1.65;min-height:100vh;display:flex;flex-direction:column}
#snow{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.string{position:fixed;top:0;left:0;right:0;height:46px;display:flex;justify-content:space-around;z-index:5;pointer-events:none;border-top:2px solid #1c2a3a}
.string span{width:12px;height:18px;border-radius:50% 50% 55% 55%;margin-top:6px;background:var(--c);box-shadow:0 0 14px 4px var(--c);animation:tw 2.4s ease-in-out infinite}
@keyframes tw{50%{opacity:.35;box-shadow:0 0 4px 1px var(--c)}}
header,main,footer{position:relative;z-index:2;width:min(1000px,92%);margin:auto}
header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:70px 0 10px;gap:10px}
.logo{font:700 1.4rem Fraunces,serif;color:var(--fg);text-decoration:none}.logo i{color:var(--gold);font-weight:400}
nav a{color:var(--mut);text-decoration:none;margin-left:18px;padding:4px 0;border-bottom:2px solid transparent}nav a:hover,nav a.on{color:var(--fg);border-color:var(--gold)}
#mb{display:none;background:none;color:var(--fg);border:1px solid var(--mut);border-radius:8px;padding:6px 14px;font:inherit}
main{flex:1;padding-bottom:50px}h1,h2{font-family:Fraunces,serif;line-height:1.15}
.hero{padding:70px 0 40px;max-width:760px}.hero h1{font-size:clamp(2.4rem,7vw,4.6rem);margin:0 0 18px}.hero.s h1{font-size:clamp(2rem,5vw,3.2rem)}.hero p{color:var(--mut);font-size:1.15rem}
#word{color:var(--gold);text-shadow:0 0 24px #ffc65c88}
.btn{display:inline-block;background:var(--gold);color:#1a1200;border:0;padding:13px 26px;border-radius:999px;font:500 1rem Outfit;text-decoration:none;cursor:pointer;margin:6px 8px 6px 0;transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px #ffc65c55}
.btn.ghost{background:none;color:var(--fg);border:1px solid var(--mut)}
a{color:var(--gold)}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:30px 0}.grid.two{grid-template-columns:1fr 1fr}
.grid div,.steps div{background:var(--card);border:1px solid #1d3047;border-radius:18px;padding:26px}.grid h2,.steps h2{margin:0 0 8px;font-size:1.4rem}.grid p,.steps p{margin:0;color:var(--mut)}
.band{text-align:center;padding:56px 20px;margin:30px 0;border-radius:24px;background:linear-gradient(120deg,#3a1420,#12302a)}
.steps{display:grid;gap:16px;max-width:760px}.c{text-align:center}.note{color:var(--mut);text-align:center}
.roof{max-width:640px;margin:10px auto}.roof svg{width:100%;height:auto}
.sw{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:24px 0}
.sw button{border:2px solid #284460;background:var(--card);color:var(--fg);padding:10px 18px 10px 12px;border-radius:999px;font:inherit;cursor:pointer;display:flex;align-items:center;gap:10px}.sw button[aria-pressed=true]{border-color:var(--gold)}
.sw b{width:22px;height:22px;border-radius:50%;box-shadow:0 0 12px var(--c)}
.demo{height:70px;display:flex;justify-content:space-around;align-items:center;background:var(--card);border-radius:18px;margin:20px 0}
.demo span{width:16px;height:26px;border-radius:50%;animation:hue 6s linear infinite;animation-delay:var(--d)}
@keyframes hue{0%{background:#e04a5f;box-shadow:0 0 16px #e04a5f}33%{background:#3bb07a;box-shadow:0 0 16px #3bb07a}66%{background:#4da3ff;box-shadow:0 0 16px #4da3ff}100%{background:#e04a5f;box-shadow:0 0 16px #e04a5f}}
.f{display:grid;gap:16px;max-width:560px}.f label{display:grid;gap:6px;color:var(--mut)}
input,select,textarea{background:var(--card);color:var(--fg);border:1px solid #284460;border-radius:12px;padding:12px;font:inherit}
.doc{max-width:720px;padding-top:30px}.doc p{color:var(--mut)}
footer{border-top:1px solid #1d3047;padding:26px 0 40px;color:var(--mut);font-size:.95rem}footer a{margin-right:16px}.s{font-size:.85rem}
@media(max-width:760px){.grid,.grid.two{grid-template-columns:1fr}#mb{display:block}nav{display:none;width:100%}nav.open{display:flex;flex-direction:column}nav a{margin:6px 0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.tg{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:14px 0}
.tg button{border:2px solid #284460;background:var(--card);color:var(--fg);padding:9px 20px;border-radius:999px;font:inherit;cursor:pointer}
.tg button[aria-pressed=true]{border-color:var(--gold);box-shadow:0 0 16px #ffc65c44}
.cd{margin:10px 0 30px;padding:26px;border:1px solid #284460;border-radius:24px;text-align:center;background:linear-gradient(120deg,#2a1019,#0f2a24)}
.cd p{margin:0 0 10px;color:var(--mut)}#cd{display:flex;justify-content:center;gap:clamp(14px,5vw,44px)}
#cd span{display:grid;color:var(--mut);font-size:.9rem}
#cd b{font:700 clamp(2rem,8vw,3.6rem) Fraunces,serif;color:var(--gold);text-shadow:0 0 22px #ffc65c77;line-height:1}
.sched{text-align:center;margin:40px 0}.sched p,#fin{max-width:600px;margin:0 auto;color:var(--mut);text-align:center}
.tk ellipse{animation:tk 2s ease-in-out infinite}@keyframes tk{50%{opacity:.2}}

.feat{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:center;margin:40px 0}.feat img{width:100%;height:auto;border-radius:20px;box-shadow:0 0 40px #ffc65c33}
.gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.gal figure{margin:0;background:var(--card);border-radius:18px;overflow:hidden;border:1px solid #1d3047}.gal figure.w{grid-column:1/-1}
.gal img{width:100%;height:420px;object-fit:cover;display:block;cursor:zoom-in}.gal .w img{height:min(520px,60vw)}.gal figcaption{padding:12px 16px;color:var(--mut)}
.rev{text-align:center;margin:44px 0}.rev p{color:var(--mut)}.rev blockquote{max-width:600px;margin:18px auto;padding:20px;background:var(--card);border-radius:16px;font:1.15rem Fraunces,serif}.rev cite{display:block;margin-top:8px;font:.95rem Outfit;color:var(--gold)}
.cmp{text-align:center;margin:40px 0}.pair{display:flex;justify-content:center;gap:clamp(20px,8vw,70px);flex-wrap:wrap}.pair figure{margin:0;width:200px}.pair svg{width:110px;height:180px;filter:drop-shadow(0 0 16px #ffc21a99)}.pair figcaption{color:var(--mut);font-size:.95rem}
dialog{background:#000;border:0;padding:0;max-width:92vw;max-height:92vh}dialog::backdrop{background:#000d}dialog img{max-width:92vw;max-height:88vh;display:block}dialog button{position:absolute;top:8px;right:8px;padding:6px 14px;border-radius:999px;border:0;font:inherit}
@media(max-width:760px){.feat{grid-template-columns:1fr}}
