/* learningonmyown.com — one stylesheet, no frameworks, no external calls. */
@font-face{font-family:Nunito;src:url(fonts/nunito-regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Nunito;src:url(fonts/nunito-bold.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Nunito;src:url(fonts/nunito-extrabold.woff2) format("woff2");font-weight:800 900;font-display:swap}

:root{
  --bg:#FBF8F3; --bg-2:#F3EEE5; --card:#FFFFFF; --ink:#1B2233; --muted:#55627A; --line:#E6DFD3;
  --brand:#0E7A56; --brand-bright:#12B886; --coral:#E8553F; --gold:#F5B417;
  --accent:var(--brand); --accent-ink:#FFFFFF; --accent-soft:#DDF3EA; --focus:#1B2233;
  --radius:22px; --shadow:0 1px 2px rgba(27,34,51,.06),0 10px 30px -12px rgba(27,34,51,.18);
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0F1521; --bg-2:#141C2A; --card:#182132; --ink:#EAF0F8; --muted:#A3B1C6; --line:#27324A;
  --brand:#2CD3A0; --brand-bright:#2CD3A0; --coral:#FF8676; --gold:#FFD35C;
  --accent:var(--brand); --accent-ink:#04231A; --accent-soft:#123E33; --focus:#FFD35C;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 30px -12px rgba(0,0,0,.6);
}}

/* Per-app skins (colours from each app's FlavorSkin) */
.theme-solvetrail{--accent:#0F6E60;--accent-ink:#fff;--accent-soft:#DCEFEA;--brass:#8A5E17}
.theme-quantroute{--accent:#5B45C9;--accent-ink:#fff;--accent-soft:#E7E3FB}
.theme-math-magician{--accent:#0E7A56;--accent-soft:#DDF3EA}
.theme-french{--accent:#2E2A63;--accent-ink:#F6F1E8;--accent-soft:#ECE7F6}
@media (prefers-color-scheme:dark){
  .theme-solvetrail{--accent:#37B79E;--accent-ink:#04231A;--accent-soft:#123E38;--brass:#DDB05A}
  .theme-quantroute{--accent:#9A8BF5;--accent-ink:#15112B;--accent-soft:#2A2350}
  .theme-french{--accent:#E8A13A;--accent-ink:#2A1A05;--accent-soft:#2E2A50}
  .theme-math-magician{--accent:#2CD3A0;--accent-ink:#04231A;--accent-soft:#123E33}
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.6 Nunito,ui-rounded,system-ui,sans-serif}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--accent)}
a:focus-visible,.btn:focus-visible,summary:focus-visible{outline:3px solid var(--focus,var(--gold));outline-offset:3px;border-radius:8px}
h1,h2,h3{line-height:1.12;letter-spacing:-.015em;margin:0 0 .5em;font-weight:800}
h1{font-size:clamp(2.1rem,6.5vw,3.6rem)}
h2{font-size:clamp(1.6rem,4.2vw,2.4rem)}
h3{font-size:1.2rem}
p{margin:0 0 1em}
.wrap{width:min(1120px,100% - 32px);margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--card);padding:8px 14px;border-radius:10px;z-index:10}
.skip:focus{left:16px}
.lede{font-size:clamp(1.1rem,2.4vw,1.3rem);color:var(--muted);max-width:38em}
.eyebrow{display:inline-block;font-weight:800;font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:.8rem}
.small{font-size:.875rem;color:var(--muted)}
section{padding:clamp(48px,8vw,96px) 0}

/* Header */
.site-head{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;flex-wrap:wrap;padding-block:8px}
.logo{display:flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;font-weight:700;font-size:1.1rem;color:var(--brand)}
.logo span{color:var(--ink)} .logo b,.foot-brand b{color:var(--brand);font-weight:800}
nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;max-width:100%}
nav a{color:var(--ink);text-decoration:none;font-weight:700;font-size:.95rem;padding:8px 12px;border-radius:999px;white-space:nowrap}
nav a:hover{background:var(--bg-2)}
/* Dark panels keep the gold focus ring; small phones: menu wraps so every link shows */
.card,.scene-hero,.scene-band,.phone{--focus:#FFD35C}
@media (max-width:600px){.site-head{position:static}nav{flex-wrap:wrap;overflow:visible;margin-inline:-8px}nav a{padding:6px 8px}}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font:inherit;font-weight:800;text-decoration:none;border-radius:999px;padding:14px 24px;min-height:48px}
.btn svg{width:20px;height:20px}
.btn-play{background:var(--ink);color:var(--bg)}
.btn-play:hover{transform:translateY(-1px)}
.btn-soon{background:var(--accent-soft);color:var(--ink);border:1.5px dashed color-mix(in srgb,var(--accent) 55%,transparent)}
.notify{display:inline-block;margin:10px 0 0 4px;font-weight:700;font-size:.95rem}
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.cta .notify{margin:0}
.pill{display:inline-block;background:var(--card);color:var(--ink);font-weight:800;font-size:.85rem;padding:6px 14px;border-radius:999px;box-shadow:var(--shadow)}

/* Home hero */
.home-hero{padding-top:clamp(40px,7vw,80px);padding-bottom:0;text-align:center;overflow:hidden}
.home-hero h1{max-width:15em;margin-inline:auto}
.home-hero h1 em{font-style:normal;color:var(--brand)}
.home-hero .lede{margin-inline:auto}
.parade{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(4px,2vw,24px);align-items:end;max-width:900px;margin:clamp(24px,5vw,48px) auto 0;padding-bottom:28px}
.parade::before{content:"";position:absolute;left:-5%;right:-5%;bottom:18px;height:3px;background:repeating-linear-gradient(90deg,var(--gold) 0 10px,transparent 10px 20px);opacity:.8}
.parade a{display:block;transition:transform .25s}
.parade a:hover{transform:translateY(-6px)}
.parade img{width:100%;filter:drop-shadow(0 10px 14px rgba(27,34,51,.18))}

/* Four-friends group picture */
.group-art{max-width:1120px;margin:clamp(16px,4vw,40px) auto 0}
.group-art img{width:100%;--fv:linear-gradient(to bottom,transparent 0,#000 18%,#000 88%,transparent 100%);--fh:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);-webkit-mask-image:var(--fv),var(--fh);-webkit-mask-composite:source-in;mask-image:var(--fv),var(--fh);mask-composite:intersect}
@media (max-width:600px){.group-art img{--fh:linear-gradient(#000,#000)}}
@media (max-width:600px){.group-art{margin-inline:-16px}}
/* Names under each animal in the group picture */
.guides-intro{margin:12px 0 10px;font-weight:700;color:var(--muted);text-align:center}
.guides{list-style:none;margin:0 auto;padding:0;max-width:1120px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.guides a{display:block;text-align:center;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:16px;padding:8px 10px;line-height:1.3}
.guides a:hover{border-color:var(--brand)}
.guides b{display:block;color:var(--brand);font-weight:800}
.guides span{display:block;font-size:.85rem;color:var(--muted)}
@media (min-width:760px){
  .guides-intro{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .guides{position:relative;display:block;height:64px;margin-top:-8px}
  .guides .g1{--x:15%}.guides .g2{--x:34.5%}.guides .g3{--x:52%}.guides .g4{--x:68%}
  .guides li{position:absolute;left:var(--x);transform:translateX(-50%);width:max-content;max-width:200px}
  .guides a{background:none;border:0;padding:4px 8px}
  .guides span{display:inline}.guides span+span::before{content:" · "}
  .guides a::before{content:"";display:block;width:2px;height:10px;margin:0 auto 4px;background:var(--gold);border-radius:2px}
}

/* App cards */
.cards{display:grid;gap:20px;grid-template-columns:1fr}
@media (min-width:760px){.cards{grid-template-columns:1fr 1fr}}
.card{position:relative;display:grid;grid-template-columns:1fr 132px;gap:12px;align-items:end;padding:28px;border-radius:var(--radius);color:#fff;overflow:hidden;box-shadow:var(--shadow);isolation:isolate}
.card h3{font-size:1.6rem;margin:0 0 .2em}
.card .for{font-weight:800;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:.85;margin-bottom:.6em}
.card p{opacity:.95}
.card .mascot{align-self:center;margin:0 -8px 0 0}
.card .row{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.card .more{color:inherit;font-weight:800}
.card .btn-soon{background:rgba(255,255,255,.14);color:inherit;border-color:rgba(255,255,255,.45)}
.card .notify{color:inherit;margin:0}
.card::after{content:"";position:absolute;inset:auto -40px -60px auto;width:240px;height:240px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.18),transparent);z-index:-1}
.card-math-magician{background:linear-gradient(150deg,#2F4FA8,#233C86)}
.card-solvetrail{background:linear-gradient(150deg,#13806F,#0E4C4A)}
.card-quantroute{background:linear-gradient(150deg,#3A2E8C,#15112B)}
.card-french{background:linear-gradient(150deg,#3A3478,#24204F)}
.card-french .for,.card-solvetrail .for{color:#F3C873;opacity:1}
@media (max-width:420px){.card{grid-template-columns:1fr 96px;padding:22px}.card .mascot{margin:0 -6px 0 0}}

/* Why grid */
.why{background:var(--bg-2)}
.why-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:28px}
.why-grid div{background:var(--card);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.why-grid svg{width:40px;height:40px;margin-bottom:12px}
.why-grid p{color:var(--muted);margin:0}

/* FAQ */
.faq{max-width:780px}
details{border-bottom:1px solid var(--line);padding:4px 0}
summary{cursor:pointer;font-weight:800;font-size:1.1rem;padding:16px 36px 16px 0;list-style:none;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:6px;top:10px;font-size:1.6rem;color:var(--accent);transition:transform .2s}
details[open] summary::after{transform:rotate(45deg)}
details p{color:var(--muted)}

/* App page hero */
.app-hero{display:grid;gap:32px;align-items:center;padding-top:clamp(32px,6vw,72px)}
@media (min-width:860px){.app-hero{grid-template-columns:1.1fr .9fr}}
.app-hero .icon-row{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.app-hero .icon-row img{width:64px;height:64px;border-radius:16px;box-shadow:var(--shadow)}
.app-hero .icon-row span{font-weight:800;color:var(--muted);font-size:.95rem;line-height:1.3}
.stage{position:relative;display:flex;justify-content:center;align-items:end;padding-bottom:8px}
.stage::before{content:"";position:absolute;inset:8% 4% 0;border-radius:40px;background:radial-gradient(120% 90% at 50% 100%,var(--accent-soft),transparent 70%)}
.stage .mascot img{width:100%}
.stage .mascot{position:absolute;left:0;bottom:0;width:min(34%,190px);z-index:2;filter:drop-shadow(0 10px 14px rgba(0,0,0,.18))}
.phone{position:relative;z-index:1;margin-left:18%;width:min(280px,64vw);border-radius:38px;padding:10px;background:#11151F;box-shadow:0 30px 60px -20px rgba(15,21,33,.45),inset 0 0 0 2px #2A3142}
.phone .slot{border-radius:29px;overflow:hidden;aspect-ratio:9/16;margin:0}
.phone .slot img{width:100%;height:100%;object-fit:cover}

/* Slots */
.slot{margin:0}
.slot-shot img{border-radius:18px}
.feature-media .slot-shot img{box-shadow:0 1px 2px rgba(27,34,51,.08),0 24px 48px -18px rgba(27,34,51,.35);outline:1px solid var(--line)}
.slot-todo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:20px;border:2.5px dashed var(--accent);border-radius:18px;background:repeating-linear-gradient(135deg,var(--accent-soft) 0 14px,transparent 14px 28px);color:var(--ink);min-height:240px;font-size:.95rem}
.slot-todo code{overflow-wrap:anywhere;word-break:normal;background:var(--card);padding:3px 8px;border-radius:6px;font-size:.85rem;}
.slot-todo span{color:var(--muted)}
.slot-empty{display:grid;place-items:center;background:linear-gradient(160deg,var(--accent-soft),var(--bg-2));border-radius:18px;min-height:240px}
.slot-empty img{opacity:.85;border-radius:16px}
.phone .slot-todo,.phone .slot-empty{aspect-ratio:9/16;min-height:0;border-radius:29px}
.slot-wide{min-height:140px}

/* Video */
.video{margin:0;position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#000}
.video video,.video img{width:100%;aspect-ratio:1024/500;object-fit:cover}
.video figcaption{padding:12px 18px;background:var(--card);color:var(--muted);font-size:.95rem;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.video-soon .pill{box-shadow:none;background:var(--accent-soft)}
.video-soon code{background:var(--bg-2);color:var(--ink);padding:2px 8px;border-radius:6px;font-size:.8rem}

/* Steps + features */
.steps{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));counter-reset:s;margin-top:24px}
.steps li{list-style:none;background:var(--card);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);counter-increment:s}
.steps li::before{content:counter(s);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:800;margin-bottom:12px}
.steps p{color:var(--muted);margin:0}
.steps{padding:0}
.feature{display:grid;gap:28px;align-items:center;padding:28px 0}
@media (min-width:760px){.feature{grid-template-columns:1fr 1fr}.feature:nth-child(even) .feature-media{order:-1}}
.feature-media{display:flex;justify-content:center}
.feature-media .slot{width:min(300px,78vw)}
.feature-media .slot-todo,.feature-media .slot-empty{aspect-ratio:9/16;min-height:0}
.feature p{color:var(--muted)}
.feature ul,.who ul{padding-left:1.2em;color:var(--muted)}

/* Trust box (SolveTrail parents) */
.trust{background:var(--accent-soft);border-radius:calc(var(--radius) + 6px);padding:clamp(24px,5vw,48px)}
.trust-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:20px}
.trust-grid div{background:var(--card);border-radius:16px;padding:18px 20px}
.trust-grid b{display:block;margin-bottom:4px}
.trust-grid span{color:var(--muted);font-size:.97rem}

/* Prices */
.prices{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:24px}
.price{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);padding:24px}
.price.best{border-color:var(--accent);box-shadow:var(--shadow)}
.price .amt{font-size:2rem;font-weight:800;margin:.2em 0}
.price .amt small{font-size:1rem;color:var(--muted);font-weight:700}
.price p{color:var(--muted);margin:0}
.price .tag{display:inline-block;background:var(--accent);color:var(--accent-ink);font-size:.75rem;font-weight:800;padding:3px 10px;border-radius:999px;letter-spacing:.04em}

/* Quotes */
.quote-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
blockquote{margin:0;background:var(--card);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
cite{color:var(--muted);font-style:normal;font-weight:700}

.final{text-align:center}
.final .cta{justify-content:center}

/* Footer */
.site-foot{background:var(--bg-2);border-top:1px solid var(--line);padding:48px 0 32px;font-size:.95rem}
.foot-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.foot-grid > div:first-child{grid-column:1/-1;max-width:420px}
.foot-grid h2{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.6em}
.foot-grid a{display:block;color:var(--ink);text-decoration:none;padding:3px 0}
.foot-grid a:hover{text-decoration:underline}
.foot-brand{font-weight:700;font-size:1.2rem;margin-bottom:.3em}
.disclaimer{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem}
.disclaimer p{margin:0 0 .5em}

/* Scene hero (QuantRoute): always dark, art behind the text */
.scene-hero{position:relative;isolation:isolate;overflow:hidden;background:#15112B;color:#F1EEFF;padding:0}
.scene-hero .scene-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;z-index:-1;opacity:.95}
.scene-hero .app-hero{padding-bottom:clamp(40px,7vw,80px)}
.scene-hero .lede,.scene-hero .icon-row span{color:#C9C2EE}
.scene-hero .btn-soon{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.4)}
.scene-hero .notify{color:#B6ABFF}
.scene-hero .stage::before{background:radial-gradient(120% 90% at 50% 100%,rgba(91,69,201,.35),transparent 70%)}

/* SolveTrail closing band */
.scene-band{position:relative;isolation:isolate;overflow:hidden;color:#fff;border-radius:calc(var(--radius) + 6px);padding:clamp(48px,9vw,110px) 24px;text-align:center}
.scene-band img.scene-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 100%;z-index:-1}
.scene-band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to bottom,rgba(7,58,50,.55),rgba(7,58,50,.15) 75%,transparent)}
.scene-band{padding-top:clamp(36px,6vw,64px);padding-bottom:clamp(110px,16vw,190px)}
.scene-band .btn-soon{background:#0B4F45;color:#fff;border:1.5px solid rgba(255,255,255,.55)}
.scene-band .notify{color:#fff;background:rgba(7,58,50,.7);padding:6px 12px;border-radius:999px}
.scene-band .cta{justify-content:center}

/* Support + 404 */
.support-hero{padding-top:clamp(32px,6vw,72px);padding-bottom:16px}
.contact-card{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:space-between;background:var(--accent-soft);border-radius:var(--radius);padding:24px 28px;margin-top:24px}
.contact-card h2{font-size:1.4rem;margin:0 0 .2em}
.contact-card p{margin:0;color:var(--muted)}
.contact-card .btn{font-size:clamp(.9rem,3.9vw,1.0625rem);padding-inline:20px}
@media (max-width:520px){.contact-card .btn{width:100%;justify-content:center}}
.faq + .faq{padding-top:0}
.notfound{text-align:center}
.notfound img{margin:0 auto 12px;width:200px}
.notfound .lede{margin-inline:auto}
.notfound .cta{justify-content:center}
