/* CritNexus — closed-beta landing page. Uses tokens from tokens.css. */

[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink)}
a{color:var(--gold-bright);text-decoration:none}
a:hover{color:var(--gold)}
:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}
@keyframes emberDrift{0%,100%{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(-7px)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.cn-page{
  min-height:100vh;display:flex;flex-direction:column;
  background:
    radial-gradient(900px 600px at 50% -14%,rgba(200,162,74,.12),transparent 62%),
    radial-gradient(700px 480px at 12% 112%,rgba(138,116,201,.08),transparent 62%),
    var(--ink);
  color:var(--text);font-family:var(--font-ui);
}

/* ---- header ---- */
.cn-header{display:flex;align-items:center;gap:16px;padding:16px 24px;flex-wrap:wrap}
.cn-brand{display:flex;align-items:center;gap:11px;color:var(--text)}
.cn-brand:hover{color:var(--text)}
.cn-brand img{width:32px;height:32px;display:block}
.cn-brand__name{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:.14em}
.cn-header__tools{margin-left:auto;display:flex;align-items:center;gap:10px}
.cn-theme-toggle{width:36px;height:36px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--leather);color:var(--gold-bright);cursor:pointer;font-size:14px;line-height:1;padding:0}
.cn-theme-toggle:hover{background:var(--leather-raised)}

/* ---- layout ---- */
.cn-main{flex:1;max-width:1080px;width:100%;margin:0 auto;padding:26px 24px 60px}
.cn-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:44px;align-items:center}

.cn-badge{display:inline-flex;align-items:center;gap:9px;padding:7px 14px;border-radius:var(--r-sm);border:1px solid var(--border-gold);background:rgba(200,162,74,.08);margin-bottom:22px}
.cn-badge__dot{width:7px;height:7px;border-radius:50%;background:var(--amber);animation:emberDrift 2.6s ease-in-out infinite}
.cn-badge__text{font-family:var(--font-display);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}

.cn-h1{font-family:var(--font-display);font-weight:700;font-size:clamp(38px,6vw,64px);line-height:1.02;margin:0 0 18px;color:var(--text)}
.cn-lede{font-family:var(--font-serif);font-size:clamp(17px,2vw,20px);line-height:1.62;color:var(--text-muted);max-width:520px;margin:0 0 22px}
.cn-lede--sm{font-size:17px;line-height:1.6;margin-bottom:26px}

.cn-stats{display:flex;gap:22px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--border)}
.cn-stat{font-family:var(--font-display);font-size:26px;color:var(--text);line-height:1}
.cn-stat--gold{color:var(--gold-bright)}
.cn-stat__label{font-size:12px;color:var(--text-faint);margin-top:3px}

/* ---- panel (forged-panel frame with gilt corner brackets) ---- */
.cn-panel{position:relative;background:var(--leather);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}
.cn-panel__corner{position:absolute;width:14px;height:14px;pointer-events:none;opacity:.7}
.cn-panel__corner--tl{top:6px;left:6px;border-top:2px solid var(--gold);border-left:2px solid var(--gold)}
.cn-panel__corner--br{bottom:6px;right:6px;border-bottom:2px solid var(--gold);border-right:2px solid var(--gold)}

/* ---- signup form ---- */
.cn-signup{padding:26px 26px 24px}
.cn-eyebrow{font-family:var(--font-display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.cn-h2{font-family:var(--font-display);font-weight:700;font-size:25px;margin:0 0 18px;line-height:1.1;color:var(--text)}
.cn-h2--lg{font-size:26px;margin-bottom:12px}
.cn-label{display:block;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);margin-bottom:7px}
.cn-label--block{margin-bottom:9px}
.cn-label__opt{text-transform:none;letter-spacing:0}
.cn-input{display:block;width:100%;min-height:46px;padding:0 13px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--obsidian);color:var(--text);font-family:var(--font-ui);font-size:14.5px;margin:0 0 18px}
.cn-input::placeholder{color:var(--text-faint)}
.cn-input--last{margin-bottom:20px}
.cn-input.is-invalid{border-color:var(--blood-bright)}

.cn-seats{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.cn-seat{display:flex;align-items:center;gap:11px;width:100%;min-height:56px;padding:10px 13px;border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-ui);border:1px solid var(--border-strong);background:var(--leather);color:var(--text);text-align:left}
.cn-seat:hover{background:var(--leather-raised)}
.cn-seat.is-picked{border-color:var(--seat-border);background:linear-gradient(180deg,rgba(200,162,74,.12),var(--leather))}
.cn-seat__dot{width:9px;height:9px;flex:none;border-radius:50%;background:var(--seat-color)}
.cn-seat--plus .cn-seat__dot{border-radius:2px}
.cn-seat__text{flex:1;text-align:left;min-width:0}
.cn-seat__title{display:block;font-size:14px;font-weight:600;color:var(--text)}
.cn-seat__sub{font-size:11.5px;color:var(--text-faint)}
.cn-seat__check{color:var(--gold-bright);font-size:13px;visibility:hidden}
.cn-seat.is-picked .cn-seat__check{visibility:visible}

.cn-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

.cn-captcha{margin:0 0 18px;min-height:78px;overflow-x:auto;overflow-y:hidden}
.cn-captcha-note{font-size:11px;line-height:1.5;color:var(--text-faint);margin:0 0 14px}
.grecaptcha-badge{visibility:hidden}

.cn-submit{display:block;width:100%;min-height:50px;border-radius:var(--r-sm);font-family:var(--font-ui);font-weight:700;font-size:14.5px;cursor:not-allowed;border:1px solid var(--border-strong);background:var(--leather);color:var(--text-faint);opacity:.75}
.cn-submit.is-ready{cursor:pointer;border-color:var(--bronze);background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#22190a;opacity:1}
.cn-submit.is-ready:hover{filter:brightness(1.06)}
.cn-submit.is-busy{cursor:progress;opacity:.7}
.cn-error{margin-top:12px;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--blood);background:rgba(161,46,38,.14);color:var(--text);font-size:13px;line-height:1.5}
.cn-note{font-size:12px;color:var(--text-faint);margin-top:12px;line-height:1.5}

.cn-sent{text-align:center;padding:14px 0}
.cn-seal{width:74px;height:74px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 36% 30%,#b23b2e,#701c15);border:2px solid var(--gold);box-shadow:0 0 0 2px rgba(112,28,21,.5),var(--glow)}
.cn-seal span{font-family:var(--font-display);font-weight:700;font-size:24px;color:#f4e6c8}
.cn-sent .cn-eyebrow{margin-bottom:7px}
.cn-sent__p{font-family:var(--font-serif);font-size:16px;line-height:1.6;color:var(--text-muted);margin:0 0 8px}
.cn-sent__p b{color:var(--text);overflow-wrap:anywhere}
.cn-sent__p--faint{font-size:15px;color:var(--text-faint);margin-bottom:22px}
.cn-btn-secondary{min-height:44px;padding:0 20px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--leather-raised);color:var(--text);font-family:var(--font-ui);font-weight:600;font-size:13.5px;cursor:pointer}
.cn-btn-secondary:hover{border-color:var(--border-gold)}

/* ---- sections ---- */
.cn-section{margin-top:56px}
.cn-section--status{margin-top:44px}
.cn-section__head{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.cn-section__title{font-family:var(--font-display);font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
.cn-section__rule{flex:1;height:1px;background:linear-gradient(90deg,var(--border-strong),transparent)}
.cn-grid{display:grid;gap:16px}
.cn-grid--pillars{grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr))}
.cn-grid--status{grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr))}

.cn-card{padding:20px}
.cn-card--lg{padding:22px}
.cn-card__head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cn-card__head--lg{margin-bottom:14px}
.cn-card__title{font-family:var(--font-display);font-size:19px;color:var(--text)}
.cn-card__body{font-family:var(--font-serif);font-size:14.5px;line-height:1.55;color:var(--text-muted);margin:0 0 12px}
.cn-pillar-icon{width:30px;height:30px;flex:none;border-radius:var(--r-sm);border:1px solid;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:14px}
.cn-list{display:flex;flex-direction:column;gap:6px}
.cn-list__item{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.45;color:var(--text-muted)}
.cn-list__mark{font-size:11px;margin-top:3px}

.cn-status{display:flex;flex-direction:column;gap:9px}
.cn-status__row{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--r-sm);background:var(--leather);border:1px solid var(--border)}
.cn-status__dot{width:8px;height:8px;flex:none;border-radius:50%}
.cn-status__label{flex:1;font-size:13.5px;color:var(--text)}
.cn-status__state{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-align:right}

.cn-prose{font-family:var(--font-serif);font-size:15px;line-height:1.6;color:var(--text-muted);margin:0 0 14px}
.cn-prose b{color:var(--text)}
.cn-prose--faint{font-style:italic;font-size:14.5px;line-height:1.55;color:var(--text-faint);margin:0}

/* ---- footer ---- */
.cn-footer{border-top:1px solid var(--border);background:var(--obsidian)}
.cn-footer__inner{max-width:1080px;margin:0 auto;padding:24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cn-footer__inner img{width:26px;height:26px;display:block}
.cn-footer__name{font-family:var(--font-display);font-size:14px;letter-spacing:.14em}
.cn-footer__legal{margin-left:auto;font-size:12px;color:var(--text-faint);max-width:620px;line-height:1.6}
@media (max-width:640px){.cn-footer__legal{margin-left:0}}

/* ---- plain pages / 404 ---- */
.cn-main--plain{max-width:720px}
.cn-article__title{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,4vw,40px);margin:0 0 18px;color:var(--text)}
.cn-article__body{font-family:var(--font-serif);font-size:17px;line-height:1.7;color:var(--text-muted)}
