/* VedOS Academy landing. VedOS brand system v1.0 (brand_guide/project):
   Dusk Temple for the hero and closing band, Sandstone Temple for content.
   Cormorant Garamond for display and italic accents, DM Sans for UI. */
:root{
  --paper:#E5D8BD;--paper-raised:#EFE3CB;--paper-hi:#F4EBD7;--paper-deep:#D8C9AA;
  --ink:#2B1C0D;--ink-soft:#5E462C;--ink-mute:#7A6249;--line:rgba(43,28,13,.16);--line-hi:rgba(43,28,13,.28);
  --brand:#C2410C;--brand-hover:#9A3412;--brand-deep:#7C2D12;--brand-dusk:#EA580C;
  --dusk:#1A0F1F;--dusk-raised:#251529;--dusk-deep:#0F0716;--ivory:#F5EDD7;--ivory-soft:#C9B89A;--sand-gold:#E8B871;
  --display:'Cormorant Garamond',Georgia,'Times New Roman',serif;--ui:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --r:14px;--gutter:clamp(18px,5vw,64px);
  color-scheme:light;font:16px/1.6 var(--ui);color:var(--ink);background:var(--paper);font-synthesis:none;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:
  radial-gradient(circle at 1px 1px,rgba(43,28,13,.07) .6px,transparent 1px) 0 0/9px 9px,
  var(--paper)}
img{max-width:100%;display:block}
a{color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;background:var(--brand);color:#FAF6E6;padding:8px 14px;border-radius:8px;z-index:20;text-decoration:none}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--sand-gold);outline-offset:3px;border-radius:6px}
em{font-family:var(--display);font-style:italic;font-weight:500}
.eyebrow{font:700 11px/1.2 var(--ui);letter-spacing:.18em;text-transform:uppercase;color:var(--brand);margin:0 0 14px;display:flex;align-items:center;gap:8px}
h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-.01em;margin:0}
h2{font-size:clamp(34px,4.4vw,54px);line-height:1.05;margin-bottom:14px}
h2 em{color:var(--brand)}
.section-lede{color:var(--ink-soft);font-size:17px;max-width:56ch;margin:0 0 28px}
.fine{font-size:12.5px;line-height:1.6;color:var(--ink-mute);margin:10px 0 0}
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:10px;padding:14px 20px;background:var(--brand);color:#FAF6E6;font:600 15px/1.2 var(--ui);text-decoration:none;cursor:pointer;transition:background .15s,transform .15s;white-space:nowrap}
.btn-primary:hover{background:var(--brand-hover)}.btn-primary:active{transform:translateY(1px)}
button:disabled{opacity:.6;cursor:wait}

/* header (sits on the Dusk hero) */
.top{position:absolute;inset:0 0 auto;z-index:5;display:flex;align-items:center;gap:28px;padding:22px var(--gutter);color:var(--ivory)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--brand-dusk)}
.mark{width:40px;height:40px;flex:none}
.wordmark{font:500 24px/1 var(--display);color:var(--ivory);letter-spacing:.005em}
.wordmark i{color:var(--brand-dusk);font-style:italic}.wordmark b{font-weight:500;font-style:italic;color:var(--sand-gold)}
.top nav{display:flex;gap:26px;margin-left:auto;font-size:14px;font-weight:500}
.top nav a{text-decoration:none;color:var(--ivory-soft)}.top nav a:hover{color:var(--ivory)}
.invite-link{margin-left:auto;font-size:14px;font-weight:600;text-decoration:none;border:1px solid rgba(245,237,215,.28);border-radius:999px;padding:8px 16px;color:var(--ivory)}
.invite-link:hover{border-color:var(--sand-gold)}

/* hero: Dusk Temple with the oil-lamp radial at the bottom */
.hero{position:relative;color:var(--ivory);padding:140px var(--gutter) 90px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(28px,5vw,72px);align-items:center;
  background:
    radial-gradient(900px 600px at 50% 112%,rgba(234,88,12,.22),transparent 65%),
    radial-gradient(700px 500px at 92% 0%,rgba(220,38,38,.10),transparent 65%),
    radial-gradient(700px 600px at -10% 40%,rgba(184,155,217,.08),transparent 65%),
    radial-gradient(circle at 1px 1px,rgba(245,237,215,.07) .5px,transparent 1px) 0 0/9px 9px,
    linear-gradient(180deg,var(--dusk) 0%,var(--dusk-deep) 100%)}
.hero .eyebrow{color:var(--sand-gold)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--brand-dusk);box-shadow:0 0 0 4px rgba(234,88,12,.22)}
h1{font-size:clamp(56px,7.2vw,104px);line-height:.95;letter-spacing:-.02em;margin-bottom:24px}
h1 em{color:var(--brand-dusk)}
.lede{font-size:clamp(17px,1.5vw,19px);color:var(--ivory-soft);max-width:44ch;margin:0 0 30px}
.waitlist{max-width:520px}
.wl-row{display:flex;gap:8px;padding:6px;border-radius:14px;background:rgba(245,237,215,.06);border:1px solid rgba(245,237,215,.16);backdrop-filter:blur(16px) saturate(140%)}
.wl-row:focus-within{border-color:rgba(232,184,113,.6)}
.wl-row input{flex:1;min-width:0;border:0;background:transparent;color:var(--ivory);font:16px/1.4 var(--ui);padding:10px 12px;outline:none}
.wl-row input::placeholder{color:#9A8A72}
.consent{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:14px;color:var(--ivory-soft);cursor:pointer}
.consent input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--brand-dusk);flex:none}
.wl-status{min-height:24px;margin:10px 0 0;font-size:14px;font-weight:500}
.wl-status.ok{color:#9FD6AA}.wl-status.err{color:#F28C82}
.hero .fine{color:#9A8A72}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.hero-shot{margin:0;position:relative}
.hero-shot img{border-radius:18px;border:1px solid rgba(245,237,215,.14);box-shadow:0 30px 80px rgba(15,7,22,.6),0 0 0 6px rgba(245,237,215,.04);aspect-ratio:16/10;object-fit:cover;width:100%;height:auto}
.hero-shot figcaption{font-size:12.5px;color:#9A8A72;margin-top:12px;text-align:right}

/* facts strip */
.facts{list-style:none;margin:0;padding:22px var(--gutter);display:grid;grid-template-columns:repeat(4,1fr);gap:16px;background:var(--paper-raised);border-bottom:1px solid var(--line)}
.facts li{display:flex;align-items:baseline;gap:10px;justify-content:center}
.facts b{font:500 34px/1 var(--display);color:var(--brand)}.facts span{font-size:14px;color:var(--ink-soft)}

/* sections */
.how,.subjects{padding:96px var(--gutter) 40px;max-width:1280px;margin:0 auto}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--r);padding:28px}
.card .num{font:italic 500 26px/1 var(--display);color:var(--brand)}
.card h3{font-size:28px;margin:14px 0 8px}.card p{margin:0;color:var(--ink-soft)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px;align-items:start}
.gallery figure{margin:0}
.gallery img{border-radius:12px;border:1px solid var(--line-hi);aspect-ratio:16/10;object-fit:cover;width:100%;height:auto;box-shadow:0 14px 34px rgba(43,28,13,.14)}
.gallery figcaption{font-size:13px;color:var(--ink-mute);margin-top:10px}
.subject-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.subject-grid li{position:relative;background:var(--paper-hi);border:1px solid var(--line);border-radius:var(--r);padding:24px 22px 20px;overflow:hidden}
.subject-grid li:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--c)}
.subject-grid h3{font-size:26px;margin-bottom:6px;color:var(--ink)}
.subject-grid p{margin:0 0 16px;color:var(--ink-soft);font-size:15px}
.subject-grid span{font:italic 500 18px/1 var(--display);color:var(--c)}

/* closing band: Dusk again */
.cta{margin:80px var(--gutter) 0;border-radius:22px;padding:64px clamp(24px,6vw,80px);text-align:center;color:var(--ivory);
  background:radial-gradient(700px 360px at 50% 120%,rgba(234,88,12,.28),transparent 70%),linear-gradient(180deg,var(--dusk-raised),var(--dusk))}
.cta h2 em{color:var(--brand-dusk)}
.cta p{color:var(--ivory-soft);max-width:52ch;margin:0 auto 26px;font-size:17px}

/* invitation */
.invite{padding:80px var(--gutter);display:grid;place-items:center}
.invite-card{width:min(560px,100%);background:var(--paper-raised);border:1px solid var(--line);border-radius:18px;padding:clamp(26px,4vw,42px);box-shadow:0 18px 50px rgba(43,28,13,.12)}
.invite-card h2{font-size:clamp(32px,3.6vw,42px)}
#signin-form label{display:block;font-size:13px;font-weight:700;margin:14px 0 8px}
.field{width:100%;padding:14px;border:1px solid var(--line-hi);border-radius:10px;background:var(--paper-hi);font:15px var(--ui);color:var(--ink);outline:none}
.field:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(194,65,12,.15)}
[hidden]{display:none!important}
.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:18px;padding:13px 16px;border:1px solid var(--line-hi);border-radius:999px;background:#fff;color:#1f1f1f;font:600 15px var(--ui);text-decoration:none}
.btn-google:hover{border-color:var(--ink-mute)}
.or{display:flex;align-items:center;gap:12px;margin:18px 0 0;color:var(--ink-mute);font-size:13px}.or::before,.or::after{content:'';flex:1;height:1px;background:var(--line)}
.linkish{border:0;background:none;padding:0;margin-top:6px;font:600 13.5px var(--ui);color:var(--brand-deep);cursor:pointer}
.code-field{display:flex;align-items:center;border:1px solid var(--line-hi);border-radius:10px;background:var(--paper-hi);overflow:hidden}
.code-field:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px rgba(194,65,12,.15)}
.code-field input{flex:1;min-width:0;padding:14px;border:0;outline:none;background:transparent;font:15px/1.5 ui-monospace,SFMono-Regular,monospace;color:var(--ink)}
.code-field input::placeholder{font:14px var(--ui);color:var(--ink-mute)}
.code-field button{flex:none;border:0;border-left:1px solid var(--line);margin-right:4px;padding:8px 12px;font:600 12px var(--ui);color:var(--brand-deep);background:transparent;cursor:pointer}
.enter{width:100%;justify-content:space-between;margin-top:14px}
#signin-status{min-height:22px;margin:10px 0 0;font-size:13.5px;color:var(--brand-deep)}
.access-help{margin-top:14px;font-size:13.5px;color:var(--ink-soft)}
.access-help summary{cursor:pointer;width:fit-content;color:var(--brand-deep);font-weight:600}
.access-help p{margin:10px 0;line-height:1.7}

.foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;padding:30px var(--gutter) 40px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:13.5px}
.foot p{margin:0}.foot .fine{margin-left:auto}
.brand.small .mark{width:28px;height:28px;color:var(--brand)}.brand.small .wordmark{font-size:19px;color:var(--ink)}.brand.small .wordmark i{color:var(--brand)}.brand.small .wordmark b{color:var(--brand-deep)}

/* sign-up popup (Sandstone) */
.signup{border:0;padding:0;border-radius:20px;width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 32px);background:var(--paper-raised);color:var(--ink);box-shadow:0 40px 100px rgba(15,7,22,.55)}
.signup::backdrop{background:rgba(15,7,22,.62);backdrop-filter:blur(3px)}
.signup form{position:relative;padding:clamp(22px,4vw,36px)}
.signup h2{font-size:clamp(30px,4vw,40px);margin-bottom:6px}.signup .sub{color:var(--ink-soft);margin:0 0 20px}
.signup .x{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--paper-hi);font-size:22px;line-height:1;color:var(--ink-soft);cursor:pointer}
.signup .grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.signup .grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--ink)}
.signup .opt{font-weight:400;color:var(--ink-mute)}
.signup input[type=text],.signup input[type=email],.signup select{font:15px/1.4 var(--ui);color:var(--ink);background:var(--paper-hi);border:1px solid var(--line-hi);border-radius:10px;padding:11px 12px;width:100%}
.signup input:focus,.signup select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(194,65,12,.15)}
.signup .agree{display:flex;gap:10px;align-items:flex-start;margin-top:16px;font-size:13.5px;color:var(--ink-soft);line-height:1.55}
.signup .agree input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--brand);flex:none}
.signup .agree a{color:var(--brand-deep)}
.signup .wl-status.err{color:#9B2C0A}.signup .wl-status.ok{color:#166534}
.signup .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}
.btn-ghost{border:1px solid var(--line-hi);background:transparent;border-radius:10px;padding:13px 18px;font:600 15px var(--ui);color:var(--ink-soft);cursor:pointer}
.waitlist .fine a,.foot a{color:inherit}
/* privacy page */
.doc{max-width:760px;margin:0 auto;padding:120px var(--gutter) 60px}.doc h1{font-size:clamp(44px,6vw,64px);color:var(--ink);margin-bottom:10px}
.doc h2{font-size:28px;margin:34px 0 8px}.doc p,.doc li{color:var(--ink-soft)}.doc ul{padding-left:20px}
.top.light{position:static;color:var(--ink);border-bottom:1px solid var(--line)}.top.light .wordmark{color:var(--ink)}.top.light .brand{color:var(--brand)}.top.light .wordmark b{color:var(--brand-deep)}.top.light .invite-link{color:var(--ink);border-color:var(--line-hi)}
.top.light + .doc{padding-top:48px}

@media (max-width:960px){
  .hero{grid-template-columns:1fr;padding-top:118px}
  .top nav{display:none}.invite-link{margin-left:auto}
  .cards,.gallery{grid-template-columns:1fr}
  .facts{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:520px){
  .top{padding-top:16px;gap:12px}.wordmark{font-size:20px}.mark{width:34px;height:34px}.invite-link{padding:7px 12px;font-size:13px}
  .wl-row{flex-direction:column;background:transparent;border:0;padding:0;backdrop-filter:none}
  .wl-row input{background:rgba(245,237,215,.07);border:1px solid rgba(245,237,215,.18);border-radius:10px;padding:13px 14px}
  .facts li{flex-direction:column;align-items:center;gap:2px;text-align:center}
  .signup .grid{grid-template-columns:1fr}.signup .actions{flex-direction:column-reverse}.signup .actions button{width:100%}
  .how,.subjects{padding-top:68px}.cta{margin-top:56px}.foot .fine{margin-left:0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
