/* R-02: Montserrat, self-hosted (docs/vidya-b/09-architecture.md §5.2), in place of the Google Fonts stylesheet vidya-web
   linked (src/head.html:11-12; src/onboard.head.html:12-13; src/landing.html:10-11), so Google's font hosts leave the
   processor list and font-src is 'self'. These are the variable files Google serves for
   that request (family=Montserrat:ital,wght@0,300..700;1,300..500&display=swap): five unicode-range subsets per style,
   with the weight ranges the request declared (normal 300-700, italic 300-500), so a weight outside them renders as it
   did there. The woff2 files come from @fontsource-variable/montserrat 5.3.0 (Google Fonts v31; OFL-1.1, see
   public/fonts/OFL.txt) and are checked in under public/fonts; nothing loads them from npm or a CDN at run time.
   web/build.mjs puts these rules at the top of every page's stylesheet. */
/* cyrillic-ext */
@font-face{font-family:Montserrat;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/montserrat-cyrillic-ext-wght-normal.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
/* cyrillic */
@font-face{font-family:Montserrat;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/montserrat-cyrillic-wght-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
/* vietnamese */
@font-face{font-family:Montserrat;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/montserrat-vietnamese-wght-normal.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
/* latin-ext */
@font-face{font-family:Montserrat;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/montserrat-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* latin */
@font-face{font-family:Montserrat;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/montserrat-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* cyrillic-ext */
@font-face{font-family:Montserrat;font-style:italic;font-weight:300 500;font-display:swap;src:url(/fonts/montserrat-cyrillic-ext-wght-italic.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
/* cyrillic */
@font-face{font-family:Montserrat;font-style:italic;font-weight:300 500;font-display:swap;src:url(/fonts/montserrat-cyrillic-wght-italic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
/* vietnamese */
@font-face{font-family:Montserrat;font-style:italic;font-weight:300 500;font-display:swap;src:url(/fonts/montserrat-vietnamese-wght-italic.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
/* latin-ext */
@font-face{font-family:Montserrat;font-style:italic;font-weight:300 500;font-display:swap;src:url(/fonts/montserrat-latin-ext-wght-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* latin */
@font-face{font-family:Montserrat;font-style:italic;font-weight:300 500;font-display:swap;src:url(/fonts/montserrat-latin-wght-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}


:root{--bg:#F7F7F8;--surface:#FFFFFF;--line:#E6E6E9;--fg:#0B0C0E;--fg-2:#4A4D55;--fg-3:#5F626B;--glass:rgba(255,255,255,.66);--edge:rgba(255,255,255,.9);--shadow:0 1px 2px rgba(11,12,14,.05),0 18px 50px -18px rgba(11,12,14,.22);--accent:#0B0C0E;--on-accent:#FFFFFF;--amber:#9A6412;--ease:cubic-bezier(.2,.8,.2,1)}
:root[data-theme="dark"]{--bg:#0A0A0C;--surface:#111215;--line:#212329;--fg:#EDEEF0;--fg-2:#A7AAB2;--fg-3:#8A8E97;--glass:rgba(22,23,27,.62);--edge:rgba(255,255,255,.08);--shadow:0 1px 2px rgba(0,0,0,.4),0 24px 60px -20px rgba(0,0,0,.7);--accent:#F4F4F5;--on-accent:#0B0C0E;--amber:#E2B669}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0A0A0C;--surface:#111215;--line:#212329;--fg:#EDEEF0;--fg-2:#A7AAB2;--fg-3:#8A8E97;--glass:rgba(22,23,27,.62);--edge:rgba(255,255,255,.08);--shadow:0 1px 2px rgba(0,0,0,.4),0 24px 60px -20px rgba(0,0,0,.7);--accent:#F4F4F5;--on-accent:#0B0C0E;--amber:#E2B669}}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--fg);font-family:Montserrat,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body{display:flex;flex-direction:column;align-items:center;min-height:100dvh;padding:max(28px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom));overflow-x:hidden}
.aura{position:fixed;inset:-20% -10% auto;height:70vh;pointer-events:none;background:radial-gradient(60% 60% at 50% 0%,rgba(120,124,140,.16),transparent 70%);filter:blur(10px)}
.top{width:100%;max-width:980px;display:flex;align-items:center;justify-content:space-between;position:relative}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:.14em;font-size:13px}
.brand svg{width:28px;height:28px}
.theme{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);color:var(--fg);display:grid;place-items:center;cursor:pointer}
main{width:100%;max-width:980px;flex:1;display:flex;flex-direction:column;justify-content:center;gap:40px;padding:48px 0 24px;position:relative}
h1{margin:0;font-weight:300;font-size:clamp(34px,6vw,64px);line-height:1.04;letter-spacing:-.02em}
h1 em{font-style:italic;font-weight:300;color:var(--fg-2)}
.lede{margin:14px 0 0;max-width:560px;color:var(--fg-2);font-size:clamp(15px,1.6vw,17px);line-height:1.6}
.doors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:720px){.doors{grid-template-columns:1fr}}
.door{position:relative;display:flex;flex-direction:column;gap:10px;min-height:210px;padding:26px;border-radius:28px;background:var(--glass);backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);border:1px solid var(--line);box-shadow:var(--shadow),inset 0 1px 0 var(--edge);color:inherit;text-decoration:none;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.door:hover{transform:translateY(-3px)}
.door:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
.door .who{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}
.door .t{font-size:clamp(22px,2.4vw,28px);font-weight:400;letter-spacing:-.01em}
.door .s{color:var(--fg-2);font-size:14.5px;line-height:1.55;max-width:420px}
.door .go{margin-top:auto;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;height:44px;padding:0 18px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-weight:600;font-size:14px}
.orb{position:absolute;top:22px;right:22px;width:64px;height:64px;border-radius:50%;box-shadow:inset -10px -14px 22px rgba(0,0,0,.28),inset 8px 8px 18px rgba(255,255,255,.5),0 10px 30px -10px rgba(0,0,0,.35)}
.orb.s{background:radial-gradient(circle at 34% 30%,#EEF2FF,#AAB9EE 46%,#6A7DD6)}
.orb.p{background:radial-gradient(circle at 34% 30%,#FFF6E6,#E9CB95 46%,#C69650)}
@media (prefers-reduced-motion:reduce){.door{transition:none}.door:hover{transform:none}}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 22px;border-radius:999px;font:600 15px/1 Montserrat,system-ui,sans-serif;text-decoration:none;cursor:pointer;border:1px solid var(--line);transition:transform .4s var(--ease)}
.btn.primary{background:var(--accent);color:var(--on-accent);border-color:transparent}
.btn.ghost{background:var(--glass);color:var(--fg);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4)}
.btn:hover{transform:translateY(-1px)}
.btn:focus-visible,.signin:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
.topr{display:flex;align-items:center;gap:10px}
.signin{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;color:var(--fg);text-decoration:none;font-weight:600;font-size:14px}
.demo-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:-22px;color:var(--fg-3);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.demo-h span:last-child{letter-spacing:0;text-transform:none;font-weight:500}
@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn:hover{transform:none}}
