/* The Yarn Math — "Berry" theme. Same structure as Pantry Math, warm berry palette. */
:root{
  --bg:#fcf6f4; --surface:#ffffff; --ink:#3b1730; --muted:#74536a; --line:#f0dbe3;
  --accent:#b3306e; --accent-ink:#ffffff; --soft:#fbe3ec; --hl:#ffc94a;
  --result:#9c2a60; --result-ink:#fff4f8; --rline:rgba(255,255,255,.22);
  --hero-bg:#f8d9e4; --hero-ink:#3b1730; --hero-muted:#6b4560; --art:#ecbfd0;
  --blob1:#ffc94a; --blob2:#b3306e; --blob3:#4fb3a6; --blob-ink:#3b1730; --chip:#ffffff; --b2-ink:#ffffff;
  --display:"Baloo 2","Nunito Sans",system-ui,sans-serif; --dw:800; --body:"Nunito Sans",system-ui,sans-serif;
  --radius:28px; --rsm:16px; --shadow:0 12px 32px -14px rgba(120,30,70,.28);
  color-scheme:light;
}
@media (max-width:720px),(prefers-color-scheme:dark){:root:not(.light){
  --bg:#1a1016; --surface:#251820; --ink:#f7e8ef; --muted:#c3a3b5; --line:#3a2632;
  --accent:#f27fb2; --accent-ink:#2a0a19; --soft:#3d1f30; --chip:#2e1e28; --b2-ink:#2a0a19;
  --result:#4c1d36; --result-ink:#fff0f6; --rline:rgba(255,255,255,.14);
  --hero-bg:#2c1623; --hero-ink:#f7e8ef; --hero-muted:#d4b2c4; --art:#3f2533;
  --blob2:#f27fb2; --shadow:0 14px 32px -16px rgba(0,0,0,.65); color-scheme:dark;}}
:root.dark{
  --bg:#1a1016; --surface:#251820; --ink:#f7e8ef; --muted:#c3a3b5; --line:#3a2632;
  --accent:#f27fb2; --accent-ink:#2a0a19; --soft:#3d1f30; --chip:#2e1e28; --b2-ink:#2a0a19;
  --result:#4c1d36; --result-ink:#fff0f6; --rline:rgba(255,255,255,.14);
  --hero-bg:#2c1623; --hero-ink:#f7e8ef; --hero-muted:#d4b2c4; --art:#3f2533;
  --blob2:#f27fb2; --shadow:0 14px 32px -16px rgba(0,0,0,.65); color-scheme:dark;}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 var(--body)}
img{max-width:100%}
a{color:var(--accent)}
.wrap{max-width:1100px;margin:0 auto;padding-inline:20px}
h1,h2,h3{text-wrap:balance}
:focus-visible{outline:3px solid var(--hl);outline-offset:2px}

/* top bar */
.bar{background:var(--hero-bg);color:var(--hero-ink)}
.bar .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:16px}
.logo{display:flex;align-items:center;gap:10px;font:var(--dw) 1.45rem/1 var(--display);color:inherit;text-decoration:none}
.logo .mk{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--blob1);color:var(--blob-ink)}
.logo .mk svg{width:26px;height:26px}
.bar small{font-weight:600;font-size:.85rem;color:var(--hero-muted)}
.bar small a{color:inherit;text-decoration:none}
.bar-r{display:flex;align-items:center;gap:12px}
.mode{display:flex;align-items:center;gap:6px;font:700 .85rem var(--body);color:var(--hero-ink);background:var(--chip);border:1px solid var(--line);border-radius:999px;padding:7px 12px;cursor:pointer}
.mode svg{width:18px;height:18px}
@media (max-width:420px){.bar small{display:none}}

/* hero */
.hero{background:var(--hero-bg);color:var(--hero-ink);padding-bottom:64px;position:relative;border-radius:0 0 48px 48px}
.hero-in{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:32px;align-items:center;padding-block:28px 40px}
.kicker{display:inline-block;font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;background:var(--chip);color:var(--accent);padding:6px 14px;border-radius:999px;margin:0 0 18px}
.hero h1{font:var(--dw) clamp(2.4rem,7vw,4.4rem)/1.02 var(--display);margin:0 0 18px;letter-spacing:-.015em}
.hero h1 em{font-style:normal;background:linear-gradient(transparent 62%,var(--blob1) 62%);padding-inline:.06em;color:inherit}
.hero p.sub{font-size:1.15rem;color:var(--hero-muted);margin:0;max-width:48ch}
.hero-art{position:relative;aspect-ratio:1;width:100%;max-width:360px;justify-self:center}
.hero-art .b{position:absolute;border-radius:50%;display:grid;place-items:center;box-shadow:var(--shadow)}
.hero-art .b svg{width:56%;height:56%}
.hero-art .b1{inset:4% 30% 30% 4%;background:var(--blob1);color:var(--blob-ink)}
.hero-art .b2{inset:42% 2% 4% 46%;background:var(--blob2);color:var(--b2-ink)}
.hero-art .b3{inset:56% 58% 6% 6%;background:var(--blob3);color:#ffffff}
@media (max-width:720px){.hero-in{grid-template-columns:1fr}.hero-art{display:none}.hero{padding-bottom:48px}}
.hero.small{padding-bottom:40px}
.hero.small .hero-in{grid-template-columns:1fr;padding-block:20px 20px}
.hero.small h1{font-size:clamp(2rem,5.5vw,3.2rem)}

/* tiles */
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:-40px;position:relative;z-index:2}
@media (max-width:980px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.tile.feat{grid-column:span 3}}
@media (max-width:560px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tile.feat{grid-column:span 2}}
.tile{display:grid;gap:8px;align-content:start;background:var(--surface);color:var(--ink);text-decoration:none;border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);min-width:0}
.tile .ic{width:44px;height:44px;border-radius:18px}
.tile b{font:var(--dw) 1.05rem/1.2 var(--display)}
.tile span{font-size:.85rem;color:var(--muted);line-height:1.35}
.tile.feat{grid-column:span 2;background:var(--accent);color:var(--accent-ink);border-color:var(--accent);grid-template-columns:auto 1fr;align-items:center;column-gap:14px}
.tile.feat .ic{width:56px;height:56px;grid-row:span 2;background:rgba(255,255,255,.18);color:var(--accent-ink)}
.tile.feat b{font-size:1.25rem}.tile.feat span{color:inherit;opacity:.88}
@media (prefers-reduced-motion:no-preference){.tile{transition:transform .18s}.tile:hover{transform:translateY(-4px)}}
.ic{display:grid;place-items:center;border-radius:50%;background:var(--soft);color:var(--accent);flex:none}
.ic svg{width:60%;height:60%}

/* rail */
nav.rail{position:sticky;top:0;z-index:5;background:var(--bg);margin-top:28px;border-bottom:1px solid var(--line)}
nav.rail .wrap{display:flex;gap:8px;overflow-x:auto;padding-block:10px;scrollbar-width:none}
nav.rail a{white-space:nowrap;text-decoration:none;color:var(--ink);font-weight:700;font-size:.95rem;padding:8px 16px;border-radius:999px;background:var(--surface);border:1px solid var(--line)}
nav.rail a:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}

/* tools */
main{padding-block:36px 40px;display:grid;gap:64px}
section.tool{scroll-margin-top:76px}
.th{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.th .ic{width:54px;height:54px;border-radius:18px}
.eyebrow{font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
section.tool h2{font:var(--dw) clamp(1.7rem,3.6vw,2.3rem)/1.1 var(--display);margin:2px 0 0}
.lede{color:var(--muted);margin:8px 0 20px;max-width:62ch;font-size:1.05rem}
.panel{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
@media (max-width:760px){.panel{grid-template-columns:1fr}}
.inputs{padding:24px;display:grid;gap:16px;align-content:start;min-width:0}
.out{background:var(--result);color:var(--result-ink);padding:24px;min-width:0}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
label{display:grid;gap:6px;font-size:.92rem;font-weight:700;color:var(--ink)}
input,select{font:inherit;font-size:1.05rem;font-weight:400;color:var(--ink);background:var(--bg);border:2px solid var(--line);border-radius:var(--rsm);padding:10px 12px;width:100%;min-width:0}
input:focus,select:focus{border-color:var(--accent);outline:none}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{font:700 .9rem var(--body);border:2px solid var(--line);background:var(--surface);color:var(--ink);padding:7px 13px;border-radius:999px;cursor:pointer}
.chips button.on{background:var(--soft);border-color:var(--accent);color:var(--accent)}
.big{font:var(--dw) clamp(2.3rem,6vw,3.2rem)/1.05 var(--display);margin:6px 0 4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.big small{font:700 1.05rem var(--body);opacity:.75;margin-left:8px}
.olabel{font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:.75}
.olist{list-style:none;margin:16px 0 0;padding:0;font-size:1rem}
.olist li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--rline);font-variant-numeric:tabular-nums}
.olist li span:first-child{opacity:.8}
.olist li span:last-child{font-weight:700;text-align:right}
.instr{font:700 1.15rem/1.6 var(--body);margin:10px 0 0;background:rgba(255,255,255,.1);border-radius:var(--rsm);padding:14px 16px;overflow-wrap:anywhere}
.instr b{color:var(--hl)}
.strip{display:flex;gap:2px;margin-top:14px;height:18px}
.strip i{flex:1;background:rgba(255,255,255,.28);border-radius:3px}
.strip i.x{background:var(--hl)}
.note{font-size:.92rem;opacity:.85;margin:14px 0 0}
.err{color:var(--hl);font-weight:700}
.copy{margin-top:16px;font:700 .92rem var(--body);background:var(--hl);color:#1b1b1b;border:0;border-radius:999px;padding:9px 18px;cursor:pointer}
.faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px 32px;margin-top:26px}
.faq h3{font:var(--dw) 1.08rem/1.3 var(--display);margin:0 0 4px}
.faq p{margin:0;color:var(--muted);font-size:.98rem}
.more{margin-top:18px;font-weight:700}
.more a{text-decoration:none}
.ad{display:none}
table.ref{width:100%;border-collapse:collapse;font-size:.92rem;font-variant-numeric:tabular-nums}
table.ref td,table.ref th{padding:6px 8px;border-bottom:1px solid var(--rline);text-align:left}
table.ref th{font-weight:700;opacity:.75;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}
table.ref tr.hit td{color:var(--hl);font-weight:800}
.tw{overflow-x:auto}

/* articles */
article{max-width:760px;min-width:0}
main>*{min-width:0}
article h2{font:var(--dw) 1.6rem/1.2 var(--display);margin:34px 0 8px}
article h3{font:var(--dw) 1.2rem/1.3 var(--display);margin:24px 0 6px}
article p,article li{color:var(--ink)}
article .meta{color:var(--muted);font-size:.92rem}
article table{width:100%;border-collapse:collapse;font-size:.95rem;font-variant-numeric:tabular-nums;background:var(--surface);border-radius:var(--rsm);overflow:hidden}
article th,article td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
article th{background:var(--soft);font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}
.cta{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--accent);color:var(--accent-ink);border-radius:var(--radius);padding:18px 22px;margin:26px 0;box-shadow:var(--shadow)}
.cta b{font:var(--dw) 1.2rem/1.2 var(--display)}
.cta a{background:var(--hl);color:#1b1b1b;text-decoration:none;font-weight:800;border-radius:999px;padding:10px 18px;white-space:nowrap}
.guides{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.guides a{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--rsm);padding:14px 16px;text-decoration:none;color:var(--ink);font-weight:700}
.guides a span{display:block;font-weight:400;font-size:.9rem;color:var(--muted)}
.crumb{font-size:.9rem;margin:0 0 6px}
.crumb a{color:var(--hero-muted)}

footer{border-top:1px solid var(--line);padding-block:26px;color:var(--muted);font-size:.9rem}
footer nav{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:10px}
footer nav a{color:var(--muted)}

/* side art */
.art{position:fixed;top:0;bottom:0;width:calc((100vw - 1100px) / 2);display:none;flex-direction:column;justify-content:space-evenly;align-items:center;pointer-events:none;z-index:0;color:var(--art);padding-block:120px 100px}
.art.l{left:0}.art.r{right:0}
.art svg{width:min(110px,60%);height:auto}
.art svg:nth-child(odd){rotate:-8deg}.art svg:nth-child(even){rotate:7deg}
@media (min-width:1360px){.art{display:flex}}
@media (prefers-reduced-motion:no-preference){@keyframes bob{50%{translate:0 -8px}}.art svg{animation:bob 7s ease-in-out infinite}.art svg:nth-child(2){animation-delay:-2.3s}.art svg:nth-child(3){animation-delay:-4.6s}}
.bar,.hero,nav.rail,main,footer{position:relative;z-index:1}
nav.rail{z-index:5}
