
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}img{max-width:100%;display:block}
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
.progress{position:fixed;top:0;left:0;right:0;height:2px;transform-origin:0 50%;transform:scaleX(0);z-index:99;background:var(--acc)}
header{position:sticky;top:0;z-index:50;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;padding:22px 6vw;transition:padding .4s,background .4s,box-shadow .4s}
.scrolled header{padding:12px 6vw}nav{display:flex;flex-wrap:wrap;gap:22px}nav a{text-decoration:none}
main{max-width:1180px;margin:0 auto;padding:60px 6vw 100px}
.hero{display:grid;gap:48px;align-items:center;min-height:78vh}.hero img,.wide{will-change:transform}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:80px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:32px 0}
.btn{display:inline-block;text-decoration:none;margin:6px 10px 6px 0}.prose{max-width:760px}
.timeline{list-style:none;padding:0}.timeline span{float:right}.tablewrap{overflow-x:auto;position:relative}table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:14px 12px}.contact{list-style:none;padding:0}footer{padding:40px 6vw;text-align:center}
.todo{font-size:12px;padding:1px 6px;border:1px dashed currentColor;border-radius:3px;opacity:.85}
@media(max-width:780px){.hero,.grid3,.grid2{grid-template-columns:1fr!important}.timeline span{float:none;display:block}nav{gap:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* B — Nocturne: midnight + candle gold, cinematic */
:root{--bg:#0b0d1a;--bg2:#13162a;--ink:#ece7dc;--mut:#9a98a8;--acc:#e3b35c}
body{background:radial-gradient(1200px 700px at 80% -10%,#2a2353 0,transparent 60%),var(--bg);color:var(--ink);font:300 17px/1.7 Manrope,sans-serif}
a{color:var(--acc)}h1,h2,h3,.brand{font-family:Fraunces,serif;font-weight:300}
.scrolled header{background:rgba(11,13,26,.8);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(227,179,92,.15)}
.brand{color:var(--ink);text-decoration:none;font-size:22px}nav a{color:var(--mut);font-size:14px}nav a.on{color:var(--acc)}
h1{font-size:clamp(44px,6.4vw,88px);line-height:1.02;margin:.2em 0}h1 em,.p-index h1{background:linear-gradient(90deg,#fff 30%,var(--acc));-webkit-background-clip:text;background-clip:text;color:transparent}
.kicker{color:var(--acc);font-size:12px;letter-spacing:.32em;text-transform:uppercase}.lead{color:var(--mut);font-size:20px}
.p-index .hero{grid-template-columns:1fr;text-align:center;justify-items:center;position:relative}.p-index .hero img{order:-1;width:min(560px,90%);border-radius:18px;box-shadow:0 0 120px rgba(150,120,255,.35)}
.btn{background:var(--acc);color:#14110a;padding:12px 26px;border-radius:999px;font-weight:600;transition:transform .3s,box-shadow .3s}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(227,179,92,.35)}.btn.ghost{background:none;color:var(--acc);border:1px solid rgba(227,179,92,.5)}
.card{background:linear-gradient(180deg,var(--bg2),transparent);border:1px solid rgba(255,255,255,.07);border-radius:18px;padding:28px;transition:transform .5s,border-color .5s}.card:hover{transform:translateY(-4px);border-color:rgba(227,179,92,.4)}.card h3{font-size:28px;margin-top:0}
.tablewrap{border-radius:18px;border:1px solid rgba(255,255,255,.07);background:rgba(19,22,42,.6)}
thead th{position:sticky;top:0;background:var(--bg2);color:var(--acc);font-size:12px;letter-spacing:.2em;text-transform:uppercase}td{border-top:1px solid rgba(255,255,255,.06);font-size:15px;color:var(--mut)}td:first-child{color:var(--ink);font-family:Fraunces;font-size:18px}
tbody tr{transition:background .3s}tbody tr:hover{background:rgba(227,179,92,.06)}
.timeline{border-left:1px solid rgba(227,179,92,.3);padding-left:24px}.timeline li{padding:14px 0;position:relative}.timeline li:before{content:"";position:absolute;left:-29px;top:24px;width:9px;height:9px;border-radius:50%;background:var(--acc);box-shadow:0 0 12px var(--acc)}.timeline span{color:var(--mut)}
.wide,.grid2 img{border-radius:18px}.contact li{font-family:Fraunces;font-size:36px}footer{color:var(--mut);font-size:13px;border-top:1px solid rgba(255,255,255,.06)}
td:last-child{white-space:nowrap}
/* Nocturne main-site additions */
a.game{color:var(--ink);text-decoration:none;background:linear-gradient(var(--acc),var(--acc)) 0 100%/0 1px no-repeat;transition:color .3s,background-size .4s}
a.game:hover,a.game:focus-visible{color:var(--acc);background-size:100% 1px}
a.game:after{content:"\2197";font-size:.7em;margin-left:.35em;opacity:0;transition:opacity .3s}a.game:hover:after{opacity:.8}
.about{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:56px;align-items:start}
.portrait{margin:8px 0 0;position:sticky;top:110px}
.portrait img{display:block;width:100%;height:auto;border-radius:200px 200px 18px 18px;border:1px solid rgba(227,179,92,.35);box-shadow:0 0 90px rgba(150,120,255,.28),0 30px 60px rgba(0,0,0,.45)}
.about .prose{max-width:none}
@media(max-width:820px){.about{grid-template-columns:1fr;gap:28px}.portrait{position:static;max-width:300px;margin:0 auto}}
.four{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.upcoming{border-style:dashed}.upcoming h3{font-size:24px}
.proto img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:12px;margin-bottom:14px;border:1px solid rgba(227,179,92,.2)}
.four{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.proto a.game{color:var(--acc)}
