:root{--bg:#050508;--bg2:#0d0d14;--panel:#12121c;--ink:#f3f4f8;--mut:#9aa0b4;--pink:#ff2d6f;--teal:#19e3d8;--acc:#ff2d6f;--acc2:#19e3d8;--r:16px;
--grad:linear-gradient(90deg,#ff2d6f,#c03cff 50%,#19e3d8);--chrome:linear-gradient(180deg,#fff 0%,#dfe4ee 38%,#8b93a7 52%,#f5f7fb 64%,#aab1c2 100%)}
*{box-sizing:border-box}html,body{margin:0}
body{font-family:Montserrat,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh;
background-image:radial-gradient(60% 40% at 0% 0%,#ff2d6f22,transparent 70%),radial-gradient(60% 40% at 100% 0%,#19e3d822,transparent 70%);background-attachment:fixed}
.serif,.display{font-family:Orbitron,Montserrat,sans-serif;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
a{color:var(--teal)}.wrap{max-width:1000px;margin:0 auto;padding:0 18px}
h1,h2,h3{font-family:Orbitron,Montserrat,sans-serif;letter-spacing:.06em}
.chrome{background:var(--chrome);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 14px #ffffff30)}
.neon-t{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
/* buttons */
.btn{display:inline-block;background:linear-gradient(90deg,#ff2d6f,#ff5f9a);color:#fff;border:0;border-radius:999px;padding:14px 28px;font:800 14px Montserrat,sans-serif;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer;
box-shadow:0 0 18px #ff2d6f88,inset 0 0 0 1px #ffffff30;white-space:nowrap;transition:transform .15s,box-shadow .15s}
.btn:active{transform:scale(.97)}.btn:hover{box-shadow:0 0 28px #ff2d6fcc}
.btn.sec{background:linear-gradient(90deg,#0fb8b0,#19e3d8);color:#031716;box-shadow:0 0 18px #19e3d888}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--teal),0 0 12px #19e3d855}
.btn:disabled{opacity:.5}
/* nav + logo */
nav{display:flex;justify-content:space-between;align-items:center;padding:16px 0;gap:10px}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.lm{width:34px;height:34px;flex:none;filter:drop-shadow(0 0 6px #ff2d6f99) drop-shadow(0 0 10px #19e3d866)}
.wm{font:900 15px Orbitron,sans-serif;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}.wm em{font-style:normal;color:var(--teal);text-shadow:0 0 10px #19e3d8aa}
@media(max-width:380px){.wm{font-size:13px;letter-spacing:.12em}}
.pill{display:inline-block;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);background:#19e3d812;box-shadow:inset 0 0 0 1px #19e3d866}
/* hero with stage truss + lasers */
.hero{position:relative;padding:34px 0 50px;text-align:center;overflow:hidden}
.stage{position:relative;margin:0 -18px;padding:46px 18px 56px;text-align:center;overflow:hidden;border-bottom:1px solid #ffffff10;
background:
 repeating-linear-gradient(135deg,transparent 0 14px,#ff2d6f30 14px 16px,transparent 16px 30px) left top/42% 100% no-repeat,
 repeating-linear-gradient(45deg,transparent 0 14px,#19e3d830 14px 16px,transparent 16px 30px) right top/42% 100% no-repeat,
 conic-gradient(from 200deg at 50% 0%,transparent 0deg,#ff2d6f40 8deg,transparent 16deg,transparent 30deg,#19e3d840 38deg,transparent 46deg,transparent 60deg,#ff2d6f30 66deg,transparent 74deg) ,
 radial-gradient(70% 60% at 50% 110%,#19e3d833,transparent 70%),radial-gradient(50% 50% at 50% 40%,#ff2d6f22,transparent 70%),#050508}
.stage:before,.stage:after{content:"";position:absolute;top:-10%;width:3px;height:130%;filter:blur(1px);opacity:.75}
.stage:before{left:18%;background:linear-gradient(#ff2d6f,transparent);transform:rotate(22deg);box-shadow:0 0 18px #ff2d6f}
.stage:after{right:18%;background:linear-gradient(#19e3d8,transparent);transform:rotate(-22deg);box-shadow:0 0 18px #19e3d8}
.tri-hero{width:min(44vw,160px);height:auto;display:block;margin:0 auto -6px;filter:drop-shadow(0 0 14px #ff2d6faa) drop-shadow(0 0 22px #19e3d877);animation:pulse 3s ease-in-out infinite}
@keyframes pulse{50%{filter:drop-shadow(0 0 22px #ff2d6f) drop-shadow(0 0 34px #19e3d8aa)}}
.h1b{font:900 clamp(34px,10vw,72px)/1 Orbitron,sans-serif;letter-spacing:.12em;margin:10px 0 6px;text-transform:uppercase}
.h2b{font:800 clamp(18px,5vw,30px) Montserrat,sans-serif;letter-spacing:.5em;margin:6px 0;text-transform:uppercase;padding-left:.5em}
.h3b{font:700 clamp(13px,3.6vw,18px) Orbitron,sans-serif;letter-spacing:.4em;margin:8px 0 22px;color:var(--teal);text-shadow:0 0 12px #19e3d8;text-transform:uppercase}
.hero p,.lead{font-size:16px;color:var(--mut);max-width:560px;margin:0 auto 24px;line-height:1.55}
/* triangle icon buttons */
.tris{display:flex;justify-content:center;gap:clamp(10px,4vw,30px);padding:34px 0 10px;flex-wrap:wrap}
.tri{width:104px;text-align:center;text-decoration:none;color:var(--ink)}
.tri .ti{width:104px;height:92px;clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(135deg,#ff2d6f,#19e3d8);padding:2px;display:block;filter:drop-shadow(0 0 10px #ff2d6f88)}
.tri .ti i{display:flex;align-items:flex-end;justify-content:center;width:100%;height:100%;clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(180deg,#1a0d18,#0b1416);font-style:normal;font-size:24px;padding-bottom:16px}
.tri b{display:block;margin-top:10px;font:800 11px Montserrat,Montserrat,system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase}
/* hex section */
.hex{position:relative;margin:30px -18px;padding:36px 18px;
background:radial-gradient(60% 80% at 0% 50%,#19e3d826,transparent 70%),radial-gradient(60% 80% at 100% 50%,#ff2d6f26,transparent 70%),
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='97' viewBox='0 0 56 97'%3E%3Cpath d='M28 0l28 16v32L28 64 0 48V16zM28 64v33M0 48l-28 16M56 48l28 16' fill='none' stroke='%2319e3d8' stroke-opacity='.22' stroke-width='1.5'/%3E%3C/svg%3E"),#07070c}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;padding:6px 0}
.card,.panel{background:linear-gradient(180deg,#151520,#0e0e16);border-radius:var(--r);padding:20px;box-shadow:inset 0 0 0 1px #ffffff12,0 10px 30px #00000080}
.card b{font:900 30px Orbitron,Montserrat,system-ui,sans-serif;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.card h3{font-size:15px;text-transform:uppercase;letter-spacing:.12em;margin:8px 0}.card p{color:var(--mut);margin:0;line-height:1.5}
.sec-t{font:800 14px Montserrat,Montserrat,system-ui,sans-serif;letter-spacing:.3em;text-transform:uppercase;text-align:center;margin:0 0 18px}
/* footer neon diagonals */
footer{position:relative;text-align:center;color:var(--mut);font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:60px 18px 28px;margin-top:30px;overflow:hidden;
background:repeating-linear-gradient(45deg,transparent 0 10px,#19e3d855 10px 12px,transparent 12px 22px) left bottom/120px 100% no-repeat,
repeating-linear-gradient(-45deg,transparent 0 10px,#ff2d6f55 10px 12px,transparent 12px 22px) right bottom/120px 100% no-repeat,linear-gradient(#050508,#0a0a12)}
footer:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--grad);box-shadow:0 0 12px #ff2d6f}
footer b{color:var(--ink)}
/* album */
.ahead{padding:22px 0 14px;text-align:center}.ahead h1{font-size:clamp(22px,6.5vw,40px);margin:12px 0 4px;text-transform:uppercase}
.ahead .sub{color:var(--mut);letter-spacing:.2em;text-transform:uppercase;font-size:12px}
.evt{font:800 11px Montserrat,Montserrat,system-ui,sans-serif;letter-spacing:.35em;text-transform:uppercase;color:var(--teal);margin-top:8px}
.grid{columns:2;column-gap:8px;padding:0 8px 30px}@media(min-width:700px){.grid{columns:3;column-gap:12px}}
.grid figure{margin:0 0 8px;break-inside:avoid;border-radius:12px;overflow:hidden;background:#111;cursor:zoom-in;box-shadow:0 0 0 1px #ff2d6f44,0 0 14px #ff2d6f22}
.grid figure:nth-child(even){box-shadow:0 0 0 1px #19e3d844,0 0 14px #19e3d822}
.grid img{width:100%;display:block;height:auto}
.empty{text-align:center;color:var(--mut);padding:50px 20px}
.lb{position:fixed;inset:0;background:#000000f2;display:none;align-items:center;justify-content:center;z-index:50;touch-action:pan-y}
.lb.on{display:flex}.lb img{max-width:100vw;max-height:100vh;object-fit:contain}
.lb button{position:absolute;background:#ffffff10;color:#fff;border:0;width:48px;height:48px;border-radius:50%;font-size:24px;cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--pink),0 0 14px #ff2d6f88}
.lb .x{top:14px;right:14px}.lb .p{left:10px;top:50%}.lb .n{right:10px;top:50%;box-shadow:inset 0 0 0 1.5px var(--teal),0 0 14px #19e3d888}
.lb .c{position:absolute;bottom:16px;color:#fffb;font-size:13px;letter-spacing:.2em}
.tog{display:flex;justify-content:center;gap:6px;margin:0 0 16px}.tog button{border:0;background:#ffffff08;color:var(--ink);border-radius:999px;padding:9px 18px;font:700 12px Montserrat,Montserrat,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff30}
.tog button.on{background:linear-gradient(90deg,#ff2d6f,#ff5f9a);box-shadow:0 0 14px #ff2d6f88}
#bookwrap{display:flex;flex-direction:column;align-items:center;padding:0 12px 20px}#bookwrap[hidden],.grid[hidden]{display:none}
#book{margin:0 auto;filter:drop-shadow(0 0 18px #ff2d6f40) drop-shadow(0 0 30px #19e3d830)}
.page{background:#0c0c13;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff10}
.page .pi{position:absolute;inset:14px 14px 34px;display:flex;align-items:center;justify-content:center}.page .pi img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 0 0 1px #ffffff20,0 6px 20px #000}
.page .pn{position:absolute;bottom:10px;width:100%;text-align:center;font:700 11px Orbitron,Montserrat,system-ui,sans-serif;letter-spacing:.2em;color:var(--teal)}
.page.photo:nth-child(odd) .pn{color:var(--pink)}
.page .end{font-size:18px;color:var(--teal);text-shadow:0 0 12px #19e3d8}
.page.cover{color:#fff;background:linear-gradient(180deg,#050508d0,#050508f0),var(--bgimg,none) center/cover,#050508}
.page.cover:before{content:"";position:absolute;inset:0;background:conic-gradient(from 200deg at 50% 0%,transparent 0deg,#ff2d6f50 8deg,transparent 16deg,transparent 30deg,#19e3d850 38deg,transparent 46deg);pointer-events:none}
.ci{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px;gap:8px;margin:12px;border:1.5px solid transparent;border-image:linear-gradient(135deg,#ff2d6f,#19e3d8) 1}
.ci .tri-c{width:42%;max-width:150px;filter:drop-shadow(0 0 10px #ff2d6f) drop-shadow(0 0 16px #19e3d8aa)}
.ci h2{font:900 clamp(20px,5.5vw,34px) Orbitron;margin:4px 0;text-transform:uppercase;letter-spacing:.08em}
.ci small{font:800 10px Montserrat,Montserrat,system-ui,sans-serif;letter-spacing:.35em;text-transform:uppercase;color:var(--teal)}.ci span{opacity:.85;font-size:13px;letter-spacing:.15em;text-transform:uppercase}
.ci .brand{font:900 14px Orbitron,Montserrat,system-ui,sans-serif;letter-spacing:.25em}
.bnav{display:flex;gap:16px;align-items:center;margin-top:16px;letter-spacing:.2em;font:700 13px Orbitron,Montserrat,system-ui,sans-serif}
.bnav button{width:46px;height:46px;border-radius:50%;border:0;background:#ffffff08;color:#fff;font-size:22px;cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--pink),0 0 14px #ff2d6f77}
.bnav button#bn{box-shadow:inset 0 0 0 1.5px var(--teal),0 0 14px #19e3d877}
.hint{color:var(--mut);font-size:12px;margin:10px 0 0;letter-spacing:.06em}
/* forms + panel */
.panel{margin:16px 0}
input[type=text],input[type=password],input[type=number],input[type=email],select{width:100%;padding:13px 14px;font:16px Montserrat,sans-serif;color:var(--ink);background:#08080d;border:1.5px solid #2a2a3a;border-radius:12px;outline:none}
input:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #19e3d833}
.form label{display:block;font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px;color:#d8dbe6}.form label input,select{margin-top:7px;display:block;width:100%}
.err{color:#ff6b93;font-size:14px;min-height:1em}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.thumbs div{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#111;box-shadow:0 0 0 1px #ffffff18}
.thumbs img{width:100%;height:100%;object-fit:cover}.thumbs button{position:absolute;top:4px;right:4px;background:#000b;color:#fff;border:0;border-radius:50%;width:30px;height:30px;font-size:16px;box-shadow:0 0 0 1px var(--pink)}
.drop{border:2px dashed #ff2d6f88;border-radius:var(--r);padding:28px;text-align:center;display:block;cursor:pointer;background:#ff2d6f0a}
.prog{height:6px;background:#1c1c28;border-radius:9px;overflow:hidden;margin-top:10px}.prog i{display:block;height:100%;background:var(--grad);width:0;transition:width .2s;box-shadow:0 0 10px #ff2d6f}
table{width:100%;border-collapse:collapse;font-size:13px}td,th{padding:7px;border-bottom:1px solid #ffffff14;text-align:left;word-break:break-all}th{color:var(--teal);letter-spacing:.1em;text-transform:uppercase;font-size:11px}
code{background:#ffffff10;padding:2px 6px;border-radius:6px;color:var(--teal)}
.page-h{text-align:center;padding:8px 0 4px}.page-h .tri-s{width:70px;filter:drop-shadow(0 0 8px #ff2d6f) drop-shadow(0 0 12px #19e3d888)}
[hidden]{display:none!important}
@media(min-width:700px){.tri-hero{width:220px}}.lm{width:36px;height:32px}

.btn-block{display:block;width:100%;text-align:center}
@media(min-width:700px){.btn-block{display:inline-block;width:auto}}
.alert{margin:16px 0;padding:16px 18px;border-radius:var(--r);background:#0b1517;color:#e9fbfa;line-height:1.5;font-size:15px;box-shadow:inset 0 0 0 1.5px var(--teal),0 0 18px #19e3d855}
.alert b{color:#fff}.alert.ok b{color:var(--teal);text-shadow:0 0 10px #19e3d8aa}
.alert.bad{background:#1a0a10;color:#ffe3ec;box-shadow:inset 0 0 0 1.5px var(--pink),0 0 18px #ff2d6f55}
#st,#msg{color:#c9cede!important}

.duo{display:flex;flex-direction:column;gap:12px;max-width:420px;margin:0 auto}.duo .btn{width:100%}
@media(min-width:700px){.duo{flex-direction:row;justify-content:center}.duo .btn{width:auto}}

.page.poster{background:#050508}.page.poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.page.titlep{color:#fff;background:linear-gradient(180deg,#050508d8,#050508f2),var(--bgimg,none) center/cover,#050508}
.page.titlep:before{content:"";position:absolute;inset:0;background:conic-gradient(from 200deg at 50% 0%,transparent 0deg,#ff2d6f50 8deg,transparent 16deg,transparent 30deg,#19e3d850 38deg,transparent 46deg);pointer-events:none}
.page.poster:before{display:none}
