/* castlevtt.com alpha landing (STORE_MODE=alpha). Dark-only; fonts are
   self-hosted (EB Garamond + Inter, SIL OFL 1.1: see OFL-*.txt). Served
   immutable for a year: bump _ASSET_VER in app/landing_alpha.py on any edit. */
@font-face{font-family:"EB Garamond";src:url(ebgaramond-latin.woff2) format("woff2");font-weight:400 800;font-display:swap}
@font-face{font-family:"Inter";src:url(inter-latin.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{
  color-scheme:dark;
  --bg:#130c06;--bg2:#1b120a;--card:#21160c;--line:#3a2916;--line2:#4d3820;
  --text:#efe4cc;--muted:#b3a383;--dim:#8a7b62;
  --gold:#d7aa4b;--gold2:#f0c96a;--ember:#b8452b;--ember2:#d65a3a;
  --serif:"EB Garamond","Iowan Old Style",Palatino,Georgia,serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r:10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img,video{max-width:100%;display:block}
a{color:var(--gold2)}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.08;margin:0;text-wrap:balance;letter-spacing:.005em}
h2{font-size:clamp(2rem,3.6vw,2.9rem);margin:.35rem 0 1rem}
h3{font-size:1.45rem}
.kicker{font:600 .78rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0}
.muted{color:var(--muted);font-size:1.08rem;max-width:34em}
.fine{color:var(--dim);font-size:.88rem}


/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none;cursor:pointer;border:1px solid var(--ember2);
  background:linear-gradient(180deg,var(--ember2),var(--ember));color:#fff6ec;font:600 1rem/1 var(--sans);padding:.85rem 1.3rem;border-radius:8px;
  box-shadow:0 10px 28px -14px rgba(214,90,58,.9);transition:transform .12s,filter .12s}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--gold2);outline-offset:3px}
.btn-lg{padding:1.05rem 1.6rem;font-size:1.06rem}
.btn-sm{padding:.6rem 1rem;font-size:.9rem;box-shadow:none}
.link-arrow{color:var(--text);text-decoration:none;font-weight:500;border-bottom:1px solid var(--line2);padding-bottom:2px}
.link-arrow:hover{border-color:var(--gold)}

/* Nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(19,12,6,.82);backdrop-filter:saturate(1.3) blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;gap:28px;height:64px}
.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font:600 1.35rem/1 var(--serif);letter-spacing:.02em}
.brand img{border-radius:4px}
.nav-links{display:flex;gap:24px;margin-left:auto}
.brand+.btn-sm{margin-left:auto}
.nav-links a{color:var(--muted);text-decoration:none;font-size:.92rem}
.nav-links a:hover{color:var(--text)}

/* Hero */
.hero{position:relative;padding:64px 0 40px;overflow:hidden;
  background:radial-gradient(900px 520px at 78% 30%,rgba(215,170,75,.13),transparent 70%),radial-gradient(700px 500px at 10% 0%,rgba(184,69,43,.10),transparent 70%)}
.hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:8px;margin:0 0 22px;padding:6px 12px;border:1px solid var(--line2);border-radius:999px;background:rgba(215,170,75,.07);color:var(--gold2);font-size:.85rem;font-weight:500}
.dot{width:8px;height:8px;border-radius:50%;background:#6fcf6a;box-shadow:0 0 0 3px rgba(111,207,106,.18)}
h1{font-size:clamp(2.6rem,5vw,4.1rem);margin-bottom:20px}
h1 em{font-style:italic;color:var(--gold2)}
.lede{font-size:1.14rem;color:var(--muted);margin:0;max-width:32em}
.cta-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:30px}
.hero-terms{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--dim);font-size:.88rem}
.hero-terms li::before{content:"✓";color:var(--gold);margin-right:6px}
.hero-media{margin:0;border:1px solid var(--line2);border-radius:var(--r);overflow:hidden;background:#0d0804;box-shadow:0 40px 80px -30px rgba(0,0,0,.85),0 0 0 6px rgba(215,170,75,.04)}
.hero-video{width:100%;aspect-ratio:16/10;object-fit:cover;background:#0d0804}
.hero-media figcaption{padding:10px 14px;font-size:.8rem;color:var(--dim);border-top:1px solid var(--line);background:#170f08}
.factbar{list-style:none;padding:0;margin:56px 0 0;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r);background:rgba(33,22,12,.6)}
.factbar li{padding:18px 20px;display:grid;gap:2px}
.factbar li+li{border-left:1px solid var(--line)}
.factbar b{font-weight:600;font-size:.98rem}
.factbar span{color:var(--dim);font-size:.86rem}

/* Sections */
.section{padding:96px 0}
.section.alt{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.steps{list-style:none;padding:0;margin:36px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:s}
.steps li{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px}
.step-n{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--gold);color:var(--gold2);font:600 1.1rem/1 var(--serif);margin-bottom:14px}
.steps h3{margin-bottom:8px}
.steps p{margin:0;color:var(--muted)}

.feature{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center;margin-top:64px}
.feature.flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.feature.flip .feature-text{order:2}
.feature h3{font-size:clamp(1.6rem,2.6vw,2.1rem);margin-bottom:14px}
.feature p{color:var(--muted);margin:0 0 16px}
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ticks li{padding-left:24px;position:relative;font-size:.95rem}
.ticks li::before{content:"◆";position:absolute;left:0;top:1px;color:var(--gold);font-size:.8rem}
.shot{margin:0;border:1px solid var(--line2);border-radius:var(--r);overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.shot img{width:100%;height:auto}
.shot picture,.card picture{display:block}
.combat-strip{margin-top:56px}
.combat-strip h3{font-size:clamp(1.4rem,2.2vw,1.8rem);margin-bottom:18px}
.combat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.combat-grid figcaption{padding:10px 14px;font-size:.9rem;color:var(--muted);border-top:1px solid var(--line)}
.clip-band,.shortcuts-band,.tools-strip{margin-top:48px}
.clip-band .shot,.shortcuts-band .shot{max-width:960px;margin-left:auto;margin-right:auto}
.clip-video{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#0d0804;display:block}
.shot.clip figcaption,.shortcuts-band figcaption{padding:10px 14px;font-size:.9rem;color:var(--muted);border-top:1px solid var(--line)}
.tools-strip h3{font-size:clamp(1.4rem,2.2vw,1.8rem);margin-bottom:18px}
.vfx-band{margin-top:56px;max-width:960px}
.vfx-band h3{font-size:clamp(1.5rem,2.4vw,1.95rem);margin:0 0 12px}
.vfx-band .muted{margin:0 0 10px}
.vfx-band .aside{margin:0 0 20px;font-size:.92rem;color:var(--muted)}
.vfx-band .shot{margin-top:8px}



/* Keyboard */
.kb-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center}
.kb-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:8px 22px}
.kb-row{display:grid;grid-template-columns:210px 1fr;gap:18px;align-items:center;padding:14px 0;color:var(--muted);font-size:.95rem}
.kb-row+.kb-row{border-top:1px solid var(--line)}
.keys{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
kbd{display:inline-grid;place-items:center;min-width:36px;height:36px;padding:0 9px;border-radius:7px;background:linear-gradient(180deg,#3a2a18,#2a1d10);border:1px solid #5a4226;border-bottom-width:3px;
  color:var(--text);font:600 .9rem/1 var(--sans)}
kbd.wide{min-width:110px}
kbd.mini{min-width:0;height:auto;padding:2px 6px;font-size:.78rem;border-bottom-width:2px}
.dots,.plus{color:var(--dim)}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:36px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.card img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-bottom:1px solid var(--line)}
.card h3{font-size:1.3rem;margin:18px 20px 6px}
.card p{margin:0 20px 20px;color:var(--muted);font-size:.93rem}
.aside{margin:28px 0 0;color:var(--dim);font-size:.92rem;max-width:52em}

/* Deal */
.deal{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;margin-top:32px}
.deal-main{background:linear-gradient(180deg,rgba(215,170,75,.09),rgba(215,170,75,.02));border:1px solid var(--line2);border-radius:var(--r);padding:32px}
.deal-list{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:14px;font-size:1.06rem}
.deal-list li{padding-left:28px;position:relative;color:var(--muted)}
.deal-list li::before{content:"✓";position:absolute;left:0;color:var(--gold2);font-weight:700}
.deal-list b{color:var(--text)}
.deal-side{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:28px}
.deal-side h3{margin-bottom:12px}
.deal-side p{margin:0 0 12px;color:var(--muted);font-size:.95rem}
.deal-side b{color:var(--text)}

/* Apply */
.apply-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.apply-card{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:30px;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.form-grid .full{grid-column:1/-1}
.form-grid.inner{margin-top:16px}
label{display:grid;gap:6px;font-size:.9rem;font-weight:500}
.opt{font-style:normal;font-weight:400;color:var(--dim);font-size:.8rem;margin-left:4px}
input,select,textarea{font:inherit;font-weight:400;font-size:1rem;color:var(--text);background:#140d07;border:1px solid var(--line2);border-radius:7px;padding:.72rem .8rem;width:100%}
textarea{min-height:6.5rem;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold)}
.more-fields{border:1px dashed var(--line2);border-radius:7px;padding:12px 14px}
.more-fields summary{cursor:pointer;font-size:.92rem;color:var(--muted)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{margin:0;text-align:center;font-size:.85rem;color:var(--dim)}
.form-note.show{color:var(--gold2)}

/* FAQ */
.faq-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:56px}
.faq details{border-bottom:1px solid var(--line);padding:18px 0}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:600;font-size:1.04rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{margin:10px 0 0;color:var(--muted);max-width:44em}

.foot{border-top:1px solid var(--line);padding:32px 0 40px;color:var(--dim);font-size:.88rem}
.foot-inner{display:flex;align-items:center;gap:12px 28px;flex-wrap:wrap}
.foot-inner>span:last-child{margin-left:auto}
.foot .brand{font-size:1.15rem}

.sticky-cta{position:fixed;z-index:60;left:12px;right:12px;bottom:12px;display:none}
.sticky-cta[hidden]{display:none!important}

/* Narrow pages: /applied, /apply/confirm, signup errors */
.narrow{max-width:720px;margin:0 auto;padding:72px 24px 88px}
.narrow h1{font-size:clamp(2.2rem,4.4vw,3.2rem);margin:.4rem 0 18px}
.narrow h1 em{font-style:italic;color:var(--gold2)}
.narrow .lede{max-width:none}
.narrow .fine{margin-top:18px}
.narrow form,.narrow .cta-row{margin-top:26px}
.error-list{color:var(--ember2);padding-left:1.2rem}
.key-box{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;background:#140d07;border:1px solid var(--line2);border-radius:7px;
  padding:.9rem 1rem;word-break:break-all;font-size:.85rem;color:var(--gold2);user-select:all;margin:1.2rem 0}
.apply-card .fine{margin:0;text-align:center}

/* Responsive */
@media (max-width:1020px){
  .nav-links{display:none}
  .nav-inner .btn-sm{margin-left:auto}
  .hero-grid,.feature,.kb-grid,.apply-grid,.faq-grid,.deal{grid-template-columns:1fr;gap:32px}
  .feature.flip{grid-template-columns:1fr}
  .feature.flip .feature-text{order:0}
  .cards{grid-template-columns:repeat(2,1fr)}
  .factbar{grid-template-columns:repeat(2,1fr)}
  .factbar li:nth-child(3){border-left:0}
  .factbar li:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:640px){
  .wrap{padding:0 18px}
  .hero{padding:36px 0 24px}
  .section{padding:64px 0}
  .feature{margin-top:48px}
  .steps,.cards,.combat-grid{grid-template-columns:1fr}
  .cta-row .btn{width:100%}
  .cta-row{gap:16px}
  .factbar{margin-top:36px}
  .factbar li{padding:14px}
  .kb-row{grid-template-columns:1fr;gap:8px}
  .form-grid{grid-template-columns:1fr}
  .apply-card{padding:20px}
  .deal-main,.deal-side{padding:22px}
  .sticky-cta{display:flex}
  .card{display:grid;grid-template-columns:38% 1fr;align-items:start}
  .card img{height:100%;aspect-ratio:auto;min-height:118px;border-bottom:0;border-right:1px solid var(--line)}
  .card h3{font-size:1.15rem;margin:14px 14px 4px}
  .card p{margin:0 14px 14px;font-size:.86rem;line-height:1.5}
  .card>div{min-width:0}
  .card picture{height:100%}
  .foot-inner>span:last-child{margin-left:0}
  .btn-sm{padding:.55rem .8rem;font-size:.85rem}
  .brand{font-size:1.2rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}
