/* Security+ Prep: the app's own palette (ios/SecPlus/Resources/Assets.xcassets, Theme/DesignSystem.swift).
   Teal = SY0-801 and "do this next", indigo = SY0-701, one colour per domain, green only means correct,
   amber only means "under the line". Exhibits are a dark console block in both schemes.
   Type: IBM Plex Sans + IBM Plex Mono (Google Fonts). */
:root{
  --canvas:#F3F5F4;--surface:#FFFFFF;--sunken:#EBEFEE;--line:#DCE3E1;
  --ink:#0F1B2A;--muted:#5B6876;
  --accent:#0E8C7A;--accent-strong:#0A7464;--on-accent:#FFFFFF;
  --v801:#0E8C7A;--v701:#4C5FD5;
  --ok:#1E9E5A;--bad:#D9534F;--floor:#D98A1C;
  --code:#0E1621;--code-2:#162130;--code-line:#22303F;--code-text:#D6E2EC;--code-muted:#8E9EAE;
  --code-kw:#6FD3C1;--code-lit:#F2C66D;
  --d1:#3D6FD9;--d2:#C2417A;--d3:#7A5AE0;--d4:#1F8FB8;--d5:#B7841C;
  --radius:22px;
  --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --canvas:#0B1117;--surface:#141C25;--sunken:#1B2531;--line:#243140;
    --ink:#E7EDF3;--muted:#93A1AF;
    --accent:#2FC1AA;--accent-strong:#2FC1AA;--on-accent:#0B1117;
    --v801:#2FC1AA;--v701:#8796F2;
    --ok:#3CCB7F;--bad:#F07A6F;--floor:#F2B54E;
    --code:#070C12;--code-2:#0F1822;--code-line:#1E2A37;
    --d1:#7097F0;--d2:#EE7EAD;--d3:#A994F5;--d4:#5CC2E6;--d5:#E5B654;
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;
  overflow-wrap:break-word;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{color:var(--accent-strong);text-underline-offset:3px}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
@media (min-width:720px){.wrap{padding:0 24px}}
.mono{font-family:var(--mono)}
.num{font-variant-numeric:tabular-nums}
.v801{color:var(--v801)}.v701{color:var(--v701)}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* header */
.top{position:sticky;top:0;z-index:20;background:var(--canvas);background:color-mix(in srgb,var(--canvas) 90%,transparent);
  backdrop-filter:saturate(1.3) blur(12px);-webkit-backdrop-filter:saturate(1.3) blur(12px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;height:58px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);text-decoration:none;white-space:nowrap;letter-spacing:-.01em}
.brand svg{flex:none;width:30px;height:30px}
.top nav{display:flex;gap:18px;overflow-x:auto;scrollbar-width:none}
.top nav::-webkit-scrollbar{display:none}
.top nav a{color:var(--muted);font-weight:500;font-size:15px;text-decoration:none;white-space:nowrap}
.top nav a:hover{color:var(--ink)}
@media (max-width:719px){.top nav .opt{display:none}}

/* buttons */
.btns{display:flex;gap:10px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 20px;border-radius:14px;
  font:600 16px/1.2 var(--sans);text-decoration:none;border:0;cursor:pointer}
.btn.primary{background:var(--accent-strong);color:var(--on-accent)}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn.ghost:hover{border-color:var(--muted)}
.btn.soon{background:var(--surface);color:var(--ink);border:1.5px dashed var(--line);cursor:default}
.btn svg{flex:none}
.small{font-size:14px;color:var(--muted)}

/* eyebrow and chips */
.eyebrow{font:500 13px/1.4 var(--mono);color:var(--muted);letter-spacing:.02em;margin:0 0 14px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.chip{display:inline-flex;align-items:center;gap:6px;border-radius:10px;padding:4px 10px;font:500 13px/1.4 var(--mono)}
.chip.v801{background:color-mix(in srgb,var(--v801) 13%,transparent)}
.chip.v701{background:color-mix(in srgb,var(--v701) 13%,transparent)}
.chip.plain{background:var(--sunken);color:var(--muted)}

/* hero */
.hero{padding:40px 0 48px}
.hero .grid{display:grid;gap:36px;align-items:center}
@media (min-width:960px){.hero{padding:72px 0 64px}.hero .grid{grid-template-columns:1fr 1fr;gap:56px}}
h1{font-size:clamp(34px,8vw,56px);line-height:1.1;letter-spacing:-.025em;font-weight:700;margin:0 0 18px}
h1 .v801{display:inline}
.lede{font-size:clamp(17px,2.3vw,19px);color:var(--muted);margin:0 0 26px;max-width:34em}
.hero .small{margin:14px 0 0}

/* the console question card */
.console{background:var(--code);color:var(--code-text);border-radius:var(--radius);padding:18px;width:100%;max-width:520px;justify-self:center;
  box-shadow:0 24px 60px -28px rgba(15,27,42,.55)}
@media (prefers-color-scheme:dark){.console{border:1px solid var(--line);box-shadow:none}}
.console .bar{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;justify-content:space-between;margin:0 0 12px;font:500 12px/1.4 var(--mono);color:var(--code-muted)}
.console .obj{color:var(--code-kw);background:rgba(111,211,193,.12);padding:3px 8px;border-radius:8px}
.console .vers span{margin-left:6px}
.console pre{margin:0 0 12px;background:var(--code-2);border:1px solid var(--code-line);border-radius:12px;padding:12px 14px;
  font:400 12.5px/1.65 var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--code-text)}
.console pre .k{color:var(--code-kw)}.console pre .l{color:var(--code-lit)}
.console .stem{margin:0 0 12px;font-size:15px;line-height:1.5}
.console ol{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px}
.console li{border:1px solid var(--code-line);border-radius:10px;padding:8px 12px;font-size:14px;line-height:1.4;color:var(--code-muted)}
.console li.right{border-color:#3CCB7F;color:var(--code-text);background:rgba(60,203,127,.10);display:flex;gap:8px;align-items:flex-start}
.console li.right svg{flex:none;color:#3CCB7F;margin-top:1px}
.console .why{margin:0;font-size:13.5px;line-height:1.55;color:var(--code-muted)}
.console .why b{color:var(--code-text);font-weight:600}

/* timeline */
.timeline{list-style:none;margin:40px 0 0;padding:0;display:grid;gap:10px}
@media (min-width:820px){.timeline{grid-template-columns:1fr 1.25fr 1fr}}
.timeline li{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;position:relative}
.timeline li::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:0 4px 4px 0;background:var(--line)}
.timeline .t801::before{background:var(--v801)}
.timeline .t701::before{background:var(--v701)}
.timeline .both::before{background:linear-gradient(var(--v801) 50%,var(--v701) 50%)}
.timeline .d{display:block;font:500 13px/1.4 var(--mono);color:var(--muted);margin-bottom:2px}
.timeline strong{display:block;font-weight:600}
.timeline span.s{font-size:14px;color:var(--muted)}

/* sections */
section{padding:56px 0}
@media (min-width:960px){section{padding:80px 0}}
h2{font-size:clamp(26px,4.4vw,38px);line-height:1.2;letter-spacing:-.02em;font-weight:700;margin:0 0 12px}
h3{letter-spacing:-.01em}
.intro{color:var(--muted);font-size:17px;margin:0 0 32px;max-width:40em}
.band{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* exam format tiles */
.format{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 36px}
@media (min-width:820px){.format{grid-template-columns:repeat(4,1fr)}}
.format div{background:var(--canvas);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.format b{display:block;font:600 clamp(22px,4vw,30px)/1.15 var(--mono);letter-spacing:-.02em}
.format span{font-size:14px;color:var(--muted)}

/* domain weights: 801 vs 701 */
.weights{list-style:none;margin:0;padding:0;display:grid;gap:12px}
@media (min-width:820px){.weights{grid-template-columns:1fr 1fr}}
.weights li{background:var(--canvas);border:1px solid var(--line);border-radius:16px;padding:16px}
.weights h3{display:flex;gap:10px;align-items:baseline;font-size:16.5px;line-height:1.35;margin:0 0 4px;font-weight:600}
.weights h3 .n{flex:none;font:600 13px/1 var(--mono);color:#fff;border-radius:7px;padding:5px 7px;align-self:center}
.weights .alt{font-size:13.5px;color:var(--muted);margin:0 0 6px}
.wrow{display:grid;grid-template-columns:72px 1fr 44px;align-items:center;gap:10px;margin-top:8px}
.wrow .lbl{font:500 12.5px/1 var(--mono)}
.wrow .track{height:12px;border-radius:6px;background:var(--sunken);overflow:hidden}
.wrow .track i{display:block;height:100%;border-radius:6px}
.wrow.r801 .track i{background:var(--v801)}
.wrow.r701 .track i{background:var(--v701)}
.wrow .val{font:600 14px/1 var(--mono);text-align:right}
.delta{display:inline-block;margin-top:10px;font:500 12.5px/1.4 var(--mono);color:var(--muted);background:var(--sunken);border-radius:8px;padding:3px 8px}
.weights li.note{display:flex;flex-direction:column;justify-content:center;gap:10px;background:transparent;border-style:dashed}
.weights li.note p{margin:0;color:var(--muted);font-size:15px}

/* item types */
.types{display:grid;gap:14px}
@media (min-width:720px){.types{grid-template-columns:1fr 1fr}}
.type{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.band .type{background:var(--canvas)}
.type h3{font-size:18px;margin:0 0 4px}
.type .tag{font:500 12px/1.4 var(--mono);color:var(--muted);margin:0 0 12px}
.type p.q{margin:0 0 12px;font-size:15px}
.type.mcq{display:flex;flex-direction:column;gap:12px}
.type.mcq p{margin:0;color:var(--muted);font-size:15px}
.type.mcq h3{margin:0}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:6px;counter-reset:s}
.steps li{counter-increment:s;display:flex;gap:10px;align-items:center;background:var(--sunken);border-radius:10px;padding:7px 10px;font-size:14px;line-height:1.35}
.steps li::before{content:counter(s);flex:none;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;
  font:600 12px/1 var(--mono);background:var(--accent-strong);color:var(--on-accent)}
.pairs{margin:0;display:grid;gap:6px}
.pairs div{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;font-size:13.5px;line-height:1.3}
.pairs dt,.pairs dd{margin:0;background:var(--sunken);border-radius:10px;padding:7px 10px}
.pairs dd{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.pairs .arrow{color:var(--muted);font-family:var(--mono)}
.buckets{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.buckets div{background:var(--sunken);border-radius:10px;padding:8px;min-width:0}
.buckets b{display:block;font:600 11.5px/1.3 var(--mono);color:var(--muted);margin:0 0 6px;text-transform:uppercase;letter-spacing:.03em}
.buckets span{display:block;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:4px 6px;margin-top:4px;font:500 12.5px/1.3 var(--mono)}
.band .buckets span{background:var(--canvas)}

/* features */
.features{display:grid;gap:14px}
@media (min-width:640px){.features{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.features{grid-template-columns:repeat(4,1fr)}}
.feat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.feat .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;margin-bottom:12px;color:var(--accent-strong);
  background:color-mix(in srgb,var(--accent) 13%,transparent)}
.feat .ic.i701{color:var(--v701);background:color-mix(in srgb,var(--v701) 13%,transparent)}
.feat .ic.amber{color:var(--floor);background:color-mix(in srgb,var(--floor) 14%,transparent)}
.feat h3{font-size:18px;line-height:1.35;margin:0 0 6px}
.feat p{margin:0;color:var(--muted);font-size:15.5px}
.meter{margin:14px 0 0}
.meter .track{position:relative;height:10px;border-radius:5px;background:var(--sunken)}
.meter .track i{position:absolute;inset:0 auto 0 0;border-radius:5px;background:var(--floor)}
.meter .track u{position:absolute;top:-4px;bottom:-4px;left:60%;width:2px;border-radius:2px;background:var(--ink);opacity:.55}
.meter .l{margin-top:8px;font:500 12.5px/1.5 var(--mono);color:var(--muted)}
.meter .l span{display:block}

/* mock */
.mock{display:grid;gap:28px;align-items:center}
@media (min-width:960px){.mock{grid-template-columns:1fr 1fr;gap:56px}}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.ticks li{display:flex;gap:12px;align-items:flex-start}
.ticks li svg{flex:none;margin-top:3px;color:var(--accent-strong)}
.result{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.result .top-l{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2px 12px;font:500 12.5px/1.4 var(--mono);color:var(--muted);margin:0 0 10px}
.result .score{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 4px}
.result .score b{font:600 52px/1 var(--mono);letter-spacing:-.03em}
.result .score span{color:var(--muted);font-size:15px}
.result .pass{display:inline-flex;align-items:center;gap:6px;font:600 13px/1 var(--mono);color:var(--ok);background:color-mix(in srgb,var(--ok) 13%,transparent);border-radius:8px;padding:5px 8px}
.scale{position:relative;margin:18px 0 6px;height:12px;border-radius:6px;background:var(--sunken)}
.scale i{position:absolute;inset:0 auto 0 0;border-radius:6px;background:var(--accent)}
.scale u{position:absolute;top:-5px;bottom:-5px;left:81.25%;width:2px;background:var(--ink);border-radius:2px}
.scale-l{position:relative;height:18px;font:500 12px/1.4 var(--mono);color:var(--muted)}
.scale-l span{position:absolute;top:0}
.scale-l .a{left:0}.scale-l .b{left:81.25%;transform:translateX(-50%)}.scale-l .c{right:0}
.dom{display:grid;gap:9px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.dom div{display:grid;grid-template-columns:1fr 40px;grid-template-areas:"n n" "t v";gap:4px 10px;align-items:center;font-size:13.5px;line-height:1.3}
.dom div>span:first-child{grid-area:n}.dom .track{grid-area:t}.dom .v{grid-area:v}
@media (min-width:720px){.dom div{grid-template-columns:1fr 110px 40px;grid-template-areas:"n t v"}}
.dom .track{height:8px;border-radius:4px;background:var(--sunken);overflow:hidden}
.dom .track i{display:block;height:100%;border-radius:4px}
.dom .v{font:600 13px/1 var(--mono);text-align:right}
.dom .weak{color:var(--muted);font-size:13px;margin:4px 0 0}

/* price */
.plans{display:grid;gap:16px}
@media (min-width:820px){.plans{grid-template-columns:1fr 1fr}}
.plan{border-radius:24px;padding:26px;border:1px solid var(--line);background:var(--canvas)}
.plan.pro{background:var(--code);color:var(--code-text);border-color:transparent}
@media (prefers-color-scheme:dark){.plan.pro{border-color:var(--line)}}
.plan .tag{font:500 13px/1.4 var(--mono);color:var(--muted);margin:0}
.plan.pro .tag{color:var(--code-kw)}
.plan h3{font-size:24px;margin:4px 0 6px;letter-spacing:-.02em}
.plan .price{font:600 40px/1.1 var(--mono);letter-spacing:-.03em;margin:6px 0 2px}
.plan .sub{margin:0 0 16px;color:var(--muted);font-size:15px}
.plan.pro .sub{color:var(--code-muted)}
.plan ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.plan li{display:flex;gap:10px;align-items:flex-start}
.plan li svg{flex:none;margin-top:4px;color:var(--accent-strong)}
.plan.pro li svg{color:var(--code-kw)}
.versus{display:grid;gap:10px;margin:18px 0 0}
@media (min-width:820px){.versus{grid-template-columns:1fr 1fr}}
.versus div{display:flex;gap:12px;align-items:flex-start;border-radius:16px;padding:14px 16px;border:1px solid var(--line);font-size:15px}
.versus div svg{flex:none;margin-top:3px}
.versus .no{color:var(--muted)}
.versus .no svg{color:var(--bad)}
.versus .yes svg{color:var(--ok)}
.versus b{color:var(--ink);font-weight:600}

/* honest note */
.honest{display:grid;gap:14px;background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:var(--radius);padding:24px}
.honest h2{font-size:clamp(22px,3.6vw,30px);margin:0}
.honest p{margin:0;color:var(--muted)}

/* faq */
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin:0 0 10px;padding:0 18px}
.faq summary{cursor:pointer;list-style:none;font-weight:600;padding:16px 28px 16px 0;position:relative;font-size:16.5px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:12px;font:400 22px/1.2 var(--mono);color:var(--muted)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{margin:0 0 16px;color:var(--muted)}

/* closing */
.closing{text-align:center}
.closing .btns{justify-content:center}
.closing .mark{width:72px;height:72px;margin:0 auto 18px;display:block}
.closing .intro{margin-left:auto;margin-right:auto}

/* article (guide, legal) */
.doc{padding:36px 0 64px}
.doc .wrap{max-width:780px}
.crumbs{font-size:14px;color:var(--muted);margin:0 0 18px}
.crumbs a{color:var(--muted)}
.doc h1{font-size:clamp(30px,6vw,44px)}
.doc h2{font-size:clamp(22px,4vw,28px);margin:44px 0 12px}
.doc h3{font-size:19px;margin:28px 0 8px}
.doc .meta{color:var(--muted);font-size:14px;margin:-6px 0 26px}
.doc ul,.doc ol{padding-left:1.25em}
.doc li{margin:5px 0}
.tbl{overflow-x:auto;margin:16px 0 8px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.tbl table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
.tbl th,.tbl td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);font-size:15px;vertical-align:top}
@media (min-width:720px){.tbl th,.tbl td{padding:12px 16px}}
.tbl tr:last-child td{border-bottom:0}
.tbl th{font-size:13.5px;color:var(--muted);font-weight:600;background:var(--sunken)}
.tbl td.n{font-family:var(--mono);white-space:nowrap}
.tbl .up{color:var(--accent-strong)}.tbl .down{color:var(--v701)}
.note{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin:20px 0}
.note p{margin:0}
.note p+p{margin-top:6px}
.cta-card{margin:44px 0 0;background:var(--code);color:var(--code-text);border-radius:24px;padding:26px}
@media (prefers-color-scheme:dark){.cta-card{border:1px solid var(--line)}}
.cta-card h2{margin:0 0 8px;color:var(--code-text);font-size:24px}
.cta-card p{color:var(--code-muted);margin:0 0 18px}
.cta-card .btn.soon{background:transparent;color:var(--code-text);border-color:var(--code-line)}
.cta-card .btn.ghost{color:var(--code-text);border-color:var(--code-line)}

/* footer */
footer{border-top:1px solid var(--line);padding:30px 0 40px;font-size:14px;color:var(--muted)}
footer .wrap{display:grid;gap:12px}
footer nav{display:flex;gap:16px;flex-wrap:wrap}
footer a{color:var(--muted)}
footer .tm{max-width:52em}
