/* Ezra Learning — public site (v2). Brand: blue bar, white logo, soft sky ground. */
:root{
  --blue:#2F6BFF; --blue-2:#1E4FD8; --blue-3:#153C9E; --sky:#E8F0FF; --sky-2:#D6E3FF; --ground:#F6F8FF; --white:#fff;
  --ink:#0B1230; --ink-2:#414A6B; --ink-3:#6F7896; --line:#DCE3F2; --line-2:#C7D2EA;
  --amber:#F5B335; --amber-soft:#FFF3D6; --green:#22A06B; --green-soft:#DDF5EA; --coral:#F26B4E; --coral-soft:#FDE4DE; --purple:#9B5DE5; --teal:#00B4D8;
  --shadow:0 1px 2px rgba(11,18,48,.05),0 18px 40px -24px rgba(30,79,216,.35);
  --shadow-lg:0 2px 4px rgba(11,18,48,.06),0 36px 70px -30px rgba(30,79,216,.45);
  --r:20px; --sans:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif; --serif:"Fraunces","Iowan Old Style",Georgia,serif;
  --toph:84px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--ground);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.025em;line-height:1.08}
h1{font-size:clamp(2.3rem,5.2vw,4.2rem)} h2{font-size:clamp(1.8rem,3.4vw,2.6rem)} h3{font-size:1.25rem;letter-spacing:-.015em}
p{margin:0} a{color:inherit} button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
img,svg{max-width:100%} .ic{width:1.15em;height:1.15em;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em}
.wrap{max-width:1180px;margin:0 auto;padding-inline:24px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.eyebrow::before{content:"";width:26px;height:3px;border-radius:2px;background:var(--amber)}
.lead{font-size:1.2rem;color:var(--ink-2);line-height:1.6;max-width:36em}
.muted{color:var(--ink-3)} .small{font-size:.9rem} .center{text-align:center} .center .lead{margin-inline:auto} .center .eyebrow::before{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 24px;border-radius:14px;font-weight:800;text-decoration:none;transition:transform .12s,box-shadow .2s,filter .15s;white-space:nowrap}
.btn:hover{transform:translateY(-1px)} .btn:active{transform:translateY(1px)}
.btn.primary{background:var(--blue);color:#fff;box-shadow:0 10px 24px -10px rgba(47,107,255,.7)}.btn.primary:hover{filter:brightness(1.06)}
.btn.amber{background:var(--amber);color:var(--ink)} .btn.white{background:#fff;color:var(--blue);box-shadow:var(--shadow)}
.btn.ghost{background:#fff;border:2px solid var(--line-2);color:var(--ink)}.btn.ghost:hover{border-color:var(--blue);color:var(--blue)}
.btn.lg{padding:17px 30px;font-size:1.08rem;border-radius:16px}
.btn .ic{width:19px;height:19px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:.78rem;font-weight:800;background:var(--sky);color:var(--blue)}
.chip.green{background:var(--green-soft);color:var(--green)} .chip.amber{background:var(--amber-soft);color:#8A5A00} .chip.coral{background:var(--coral-soft);color:#B8412C}

/* ---------- header ---------- */
.top{position:relative;z-index:40;background:linear-gradient(90deg,#2F6BFF,#3B7BFF);color:#fff;box-shadow:0 2px 14px rgba(47,107,255,.35)}
.top .wrap{display:flex;align-items:center;gap:30px;height:var(--toph)}
.logo{display:flex;align-items:center;text-decoration:none;padding-left:6px}
.logo img{height:36px;width:auto;display:block}
.links{display:flex;gap:4px;margin-left:auto}
.links a{padding:10px 13px;border-radius:11px;font-weight:700;font-size:.96rem;white-space:nowrap;color:rgba(255,255,255,.9);text-decoration:none}
.links a:hover{background:rgba(255,255,255,.14);color:#fff}
.links a[aria-current="page"]{background:rgba(255,255,255,.2);color:#fff}
.top .btn{padding:11px 20px;border-radius:12px}
.top .btn.start{background:var(--amber);color:var(--ink);box-shadow:0 8px 20px -8px rgba(0,0,0,.45),inset 0 -2px 0 rgba(0,0,0,.12);border-radius:999px;padding:12px 22px;font-size:1rem}.top .btn.start:hover{filter:brightness(1.05);transform:translateY(-1px)}.top .btn.start .ic{width:18px;height:18px}
.menu{display:none;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.16);place-items:center;margin-left:auto}
.menu .ic{width:24px;height:24px}
@media (max-width:960px){.links{display:none;position:absolute;left:0;right:0;top:var(--toph);background:var(--blue-2);flex-direction:column;padding:12px 20px 18px;gap:2px;box-shadow:0 20px 30px -20px rgba(0,0,0,.5)}.links.open{display:flex}.links a{padding:13px 14px;font-size:1.05rem}.top .btn.start{display:none}.menu{display:grid}.top .wrap{gap:14px}}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding:72px 0 44px}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:84px;align-items:center}.hero .wrap>*{min-width:0}
.hero h1{margin-top:18px}
.hero h1 em{font-style:normal;color:var(--blue);position:relative;white-space:nowrap}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.18em;background:var(--amber);border-radius:4px;opacity:.55;z-index:-1}
.hero .lead{margin-top:20px}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.proof{display:flex;gap:18px;flex-wrap:wrap;margin-top:26px;color:var(--ink-2);font-weight:700;font-size:.92rem}
.proof span{display:inline-flex;align-items:center;gap:7px}.proof .ic{color:var(--green)}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none;animation:drift 18s ease-in-out infinite}
.blob.b1{width:520px;height:520px;background:#CFE0FF;top:-180px;right:-120px}
.blob.b2{width:360px;height:360px;background:#FFE9B8;bottom:-160px;left:-120px;animation-delay:-7s;animation-duration:22s}
.blob.b3{width:280px;height:280px;background:#D9F5E8;top:40%;left:38%;animation-delay:-12s;animation-duration:26s;opacity:.45}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,-24px) scale(1.06)}66%{transform:translate(-22px,18px) scale(.96)}}
@media (max-width:900px){.hero{padding:40px 0 20px}.hero .wrap{grid-template-columns:1fr;gap:30px}.hero .wrap>*{min-width:0}.hero h1 em{white-space:normal}.hero h1{font-size:clamp(2rem,9vw,3rem)}}
@media (prefers-reduced-motion:reduce){.blob{animation:none}*{transition-duration:.01ms!important}}

/* the live practice card in the hero */
.trycard{background:#fff;border-radius:26px;box-shadow:var(--shadow-lg);padding:22px 24px 20px;position:relative;animation:bob 7s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.trycard .tchead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.trycard .tchead .chip{margin-left:auto}
.trycard .q{font-size:1.28rem;font-weight:800;margin-top:14px;line-height:1.35}
.trycard .work{margin-top:16px;min-height:150px}
.trycard .tcfoot{display:flex;gap:10px;align-items:center;margin-top:16px;flex-wrap:wrap}
.trycard .tcfoot .hint{color:var(--ink-3);font-size:.9rem;flex:1;min-width:120px}
.praise{position:absolute;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.82);border-radius:26px;z-index:3;animation:pop .35s cubic-bezier(.2,.9,.3,1.3) both}
.praise b{background:var(--green);color:#fff;font-size:2rem;padding:18px 34px;border-radius:20px;box-shadow:0 20px 40px -18px rgba(34,160,107,.7)}
@keyframes pop{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}
.cf{position:absolute;top:-10px;width:9px;height:13px;border-radius:2px;animation:cfall 1.3s ease-in both;z-index:4}
@keyframes cfall{to{transform:translateY(420px) rotate(520deg);opacity:0}}
.shake{animation:shake .4s}
@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}

/* demo widgets (self-contained) */
.tiles{display:flex;gap:10px;flex-wrap:wrap}
.tile{min-width:56px;height:52px;padding:0 16px;border-radius:12px;border:3px solid var(--line-2);background:#fff;font-size:1.25rem;font-weight:800;cursor:pointer;transition:transform .12s,border-color .15s;user-select:none;touch-action:none}
.tile:hover{border-color:var(--blue);transform:translateY(-2px)} .tile.sel{border-color:var(--blue);background:var(--sky)}
.jtray{display:flex;gap:8px;flex-wrap:wrap;min-height:64px;padding:8px;border-radius:14px;background:var(--sky);border:2px dashed var(--line-2);margin-bottom:12px}
.jtray .jslot{width:96px;height:48px;border-radius:10px;border:2px dashed var(--line-2);background:#fff}
.jtray .jslot .tile{width:100%;height:100%;min-width:0;padding:0;border-width:2px;font-size:1.05rem}
.fbar{display:grid;gap:6px;border:3px solid var(--ink);border-radius:12px;padding:5px;background:#fff;max-width:420px}
.fbar button{height:64px;border-radius:8px;background:var(--sky);border:1px solid var(--line)}
.fbar button.on{background:var(--blue);border-color:var(--blue)}
.groups{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}
.basket{width:118px;min-height:118px;border-radius:50%;border:3px dashed var(--line-2);display:flex;flex-wrap:wrap;gap:5px;align-content:center;justify-content:center;padding:14px;position:relative;background:#fff;transition:border-color .15s}
.basket.over{border-color:var(--blue);background:var(--sky)}
.basket i,.pile i{width:22px;height:22px;border-radius:50%;background:var(--coral);border:2px solid #fff;box-shadow:0 2px 4px rgba(0,0,0,.2);display:block}
.pile{display:flex;gap:6px;flex-wrap:wrap;width:150px;padding:12px;border-radius:14px;background:var(--sky);min-height:60px;align-content:flex-start}
.pile i{cursor:grab;touch-action:none}
.drag-ghost{position:fixed;z-index:100;pointer-events:none;transform:translate(-50%,-50%)}
.nl{width:100%}.nl svg{width:100%;height:auto;touch-action:none;user-select:none;display:block}
.stampw{display:grid;gap:14px}
.stampw .sent{display:flex;flex-wrap:wrap;align-items:center;gap:2px;font-size:1.5rem;font-weight:800;line-height:1.4}
.stampw .gap{width:20px;height:34px;border-bottom:3px dashed var(--line-2);margin:0 3px;display:inline-grid;place-items:end center;cursor:pointer;color:var(--blue)}
.stampw .gap.sel{border-color:var(--blue);background:var(--sky);border-radius:6px}
.stampw .gap.filled{border-bottom-color:transparent}
.stampw .bank{display:flex;gap:10px}
.stampw .bank .tile{min-width:52px;font-size:1.5rem}
.balw{display:grid;gap:12px}
.balw svg{width:100%;max-width:520px;height:auto;display:block;overflow:visible}
.balw .beam{transform-origin:260px 96px;transition:transform .5s cubic-bezier(.3,1.4,.5,1)}
.balw .weights{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.weight{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:10px 10px 6px 6px;background:var(--ink);color:#fff;font-weight:800;font-size:1.15rem;cursor:pointer;position:relative;border:0}
.weight::before{content:"";position:absolute;top:-8px;left:14px;width:18px;height:10px;border:3px solid var(--ink);border-bottom:0;border-radius:8px 8px 0 0}
.weight.small{width:38px;height:38px;font-size:.95rem}
.onpan{font-weight:700;color:var(--ink-2)}

/* ---------- sections ---------- */
section{padding:72px 0}
.band{background:#fff}
.band-sky{background:linear-gradient(180deg,var(--sky) 0%,var(--ground) 100%)}
.band-blue{background:linear-gradient(120deg,#2F6BFF 0%,#1E4FD8 100%);color:#fff}
.band-blue .eyebrow{color:#FFD27A}.band-blue .eyebrow::before{background:#FFD27A}.band-blue .lead{color:rgba(255,255,255,.88)}.band-blue .muted{color:rgba(255,255,255,.7)}
.sechead{max-width:720px;margin-bottom:34px}.sechead h2{margin-top:14px}.sechead .lead{margin-top:14px}
.sechead.center{margin-inline:auto;text-align:center}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
@media (max-width:1000px){.grid3,.grid4,.grid5{grid-template-columns:repeat(2,1fr)}.hero .wrap{gap:44px}}
@media (max-width:640px){.grid2,.grid3,.grid4,.grid5{grid-template-columns:1fr}}
.card{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:26px}
.card h3{margin-top:10px}.card p{margin-top:8px;color:var(--ink-2)}
.card .icn{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--sky);color:var(--blue)}
.card .icn .ic{width:24px;height:24px}
.lift{transition:transform .2s,box-shadow .2s}.lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}

/* stats strip */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stat{background:#fff;border-radius:18px;padding:22px 24px;box-shadow:var(--shadow);text-align:center}
.stat b{display:block;font-size:2.4rem;letter-spacing:-.03em;color:var(--blue);line-height:1;font-variant-numeric:tabular-nums}
.stat span{display:block;margin-top:8px;font-weight:700;color:var(--ink-2);font-size:.92rem}
@media (max-width:800px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.stats{gap:12px}.stat{padding:20px 12px}.stat b{font-size:2rem}}   /* "540,764" fits a 390 px phone */

/* lesson player */
.player{background:#fff;border-radius:26px;box-shadow:var(--shadow-lg);overflow:hidden;display:grid;grid-template-columns:1.35fr 1fr}
.player .stage{position:relative;background:#0F1633;aspect-ratio:1040/572;align-self:start;width:100%;min-width:0}
.player .stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s}
.player .stage img.on{opacity:1}
.player .side{padding:24px 26px;display:grid;align-content:start;gap:12px;min-width:0}
.player .side h3{font-size:1.4rem}
.player .say{color:var(--ink-2);line-height:1.55;min-height:4.6em;font-size:1.02rem}
.player .ctrl{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pbtn{width:56px;height:56px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 10px 22px -10px rgba(47,107,255,.8)}
.pbtn .ic{width:26px;height:26px}
.marks{display:flex;gap:6px;flex-wrap:wrap}
.mark{width:26px;height:26px;border-radius:50%;background:var(--sky);font-size:.72rem;font-weight:800;color:var(--ink-2);display:grid;place-items:center}
.mark.done{background:var(--green);color:#fff}.mark.on{background:var(--amber);color:var(--ink)}
.player .pick{display:flex;gap:8px;flex-wrap:wrap}
.player .pick button{padding:7px 12px;border-radius:999px;background:var(--sky);font-weight:700;font-size:.85rem;color:var(--ink-2)}
.player .pick button.on{background:var(--blue);color:#fff}
@media (max-width:860px){.player{grid-template-columns:1fr}}

/* hear it demo */
.hear{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.pics{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.pic{background:#fff;border-radius:16px;padding:14px 10px 10px;box-shadow:var(--shadow);display:grid;justify-items:center;gap:6px;cursor:pointer;transition:transform .15s;border:3px solid transparent}
.pic:hover{transform:translateY(-3px)} .pic.playing{border-color:var(--blue)}
.pic svg{width:44px;height:44px;stroke:var(--ink);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pic span{font-weight:800;font-size:.9rem}
.pic .spk{width:26px;height:26px;border-radius:50%;background:var(--sky);color:var(--blue);display:grid;place-items:center}.pic .spk .ic{width:14px;height:14px}
.passage{background:#fff;border-radius:18px;padding:22px 24px;box-shadow:var(--shadow);border-left:6px solid var(--blue);font-family:var(--serif);font-size:1.15rem;line-height:1.65}
.passage h4{font-family:var(--sans);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px;display:flex;align-items:center;gap:10px}
.hearit{margin-left:auto;display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line-2);border-radius:999px;padding:5px 12px;font:inherit;font-family:var(--sans);font-size:.82rem;font-weight:800;letter-spacing:0;text-transform:none;color:var(--ink);background:#fff}
.hearit:hover,.hearit.playing{border-color:var(--blue);color:var(--blue)}
.passage p+p{margin-top:10px}
@media (max-width:860px){.hear{grid-template-columns:1fr}.pics{grid-template-columns:repeat(3,1fr)}}

/* subjects */
.subj{display:grid;gap:10px;padding:24px;border-radius:var(--r);background:#fff;box-shadow:var(--shadow);border-top:6px solid var(--c)}
.subj .icn{width:46px;height:46px;border-radius:13px;background:color-mix(in srgb,var(--c) 14%,#fff);color:var(--c);display:grid;place-items:center}
.subj .icn .ic{width:24px;height:24px}
.subj b{font-size:1.15rem}.subj small{color:var(--ink-3);font-weight:700}

/* standard */
.rules{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.rules .card ul{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.rules .card li{display:flex;gap:10px;align-items:flex-start;color:var(--ink-2)}
.rules .card li .ic{margin-top:4px;flex:none}
.rules .always li .ic{color:var(--green)}.rules .never li .ic{color:var(--coral)}
@media (max-width:760px){.rules{grid-template-columns:1fr}}

/* verse */
.verse{background:#fff;border-radius:26px;padding:40px 44px;box-shadow:var(--shadow);display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center}
.verse .ic{width:44px;height:44px;color:var(--amber)}
.verse p{font-family:var(--serif);font-size:1.5rem;line-height:1.45;font-weight:500}
.verse small{display:block;margin-top:12px;font-weight:800;color:var(--blue);font-family:var(--sans)}
@media (max-width:640px){.verse{grid-template-columns:1fr;padding:28px}}

/* pricing */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:860px;margin:0 auto}
.plan{background:#fff;border-radius:26px;box-shadow:var(--shadow);padding:30px;position:relative;border:3px solid transparent}
.plan.hi{border-color:var(--amber)}
.plan .price{font-size:3rem;font-weight:800;letter-spacing:-.03em;margin-top:8px}.plan .price small{font-size:1rem;color:var(--ink-3);letter-spacing:0}
.plan ul{list-style:none;padding:0;margin:18px 0 22px;display:grid;gap:10px;color:var(--ink-2)}
.plan li{display:flex;gap:9px;align-items:flex-start}.plan li .ic{color:var(--green);margin-top:4px;flex:none}
.plan .tag{position:absolute;top:-16px;left:28px}
@media (max-width:700px){.plans{grid-template-columns:1fr}}

/* curriculum browser */
.subtabs{display:flex;gap:8px;flex-wrap:wrap}
.subtabs a{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:#fff;box-shadow:var(--shadow);font-weight:800;text-decoration:none;color:var(--ink-2)}
.subtabs a.on{background:var(--c,var(--blue));color:#fff}
.gradebar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:16px}
.gradebar a{padding:8px 14px;border-radius:999px;background:var(--sky);font-weight:800;font-size:.9rem;text-decoration:none;color:var(--ink-2)}
.gradebar a.on{background:var(--c,var(--blue));color:#fff}.gradebar span.off{padding:8px 14px;border-radius:999px;color:var(--line-2);font-weight:800;font-size:.9rem}
.topics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}
.topic{background:#fff;border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.topic>button{width:100%;text-align:left;padding:16px 18px;display:grid;gap:6px}
.topic .tn{font-weight:800;display:flex;gap:8px;align-items:flex-start}.topic .tn .code{color:var(--c,var(--blue));flex:none}
.topic .tm{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:.82rem;color:var(--ink-3);font-weight:700}
.topic ul{margin:0;padding:0 18px 16px;list-style:none;display:none;gap:6px;color:var(--ink-2);font-size:.92rem}
.topic.open ul{display:grid}
.topic li{display:flex;gap:8px}.topic li::before{content:"•";color:var(--c,var(--blue));font-weight:800}
@media (max-width:900px){.topics{grid-template-columns:1fr 1fr}}@media (max-width:600px){.topics{grid-template-columns:1fr}}

/* faq, about, standard */
.faq{max-width:820px;margin:0 auto;display:grid;gap:10px}
.faq details{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:0 22px}
.faq summary{cursor:pointer;font-weight:800;padding:18px 0;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center}
.faq summary::-webkit-details-marker{display:none}.faq summary .ic{color:var(--blue);transition:transform .2s}.faq details[open] summary .ic{transform:rotate(180deg)}
.faq p{padding:0 0 20px;color:var(--ink-2)}
.pagehero{padding:64px 0 24px}.pagehero h1{margin-top:14px;max-width:16em}.pagehero .lead{margin-top:16px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:s}
.step{background:#fff;border-radius:18px;padding:22px;box-shadow:var(--shadow)}
.step b{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;font-size:1rem}
.step h3{margin-top:12px}.step p{margin-top:6px;color:var(--ink-2);font-size:.95rem}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}@media (max-width:560px){.steps{grid-template-columns:1fr}}
.quote{font-family:var(--serif);font-size:1.5rem;line-height:1.45;max-width:30em}
.srcs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.src{background:#fff;border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}.src b{display:block}.src span{color:var(--ink-3);font-size:.85rem}.src p{color:var(--ink-2);font-size:.92rem;margin-top:4px}
@media (max-width:700px){.srcs{grid-template-columns:1fr}}
.notice{background:#fff;border-radius:18px;padding:22px 26px;box-shadow:var(--shadow);border-left:6px solid var(--amber);color:var(--ink-2);max-width:860px;margin:30px auto 0}
.notice b{color:var(--ink)}

/* struck-through old price */
.was{color:var(--ink-3);font-weight:700;font-size:.62em;margin-right:.18em;text-decoration-thickness:.12em;text-decoration-color:var(--coral);vertical-align:.12em}
.band-blue .was{color:rgba(255,255,255,.6)}
.plan .price .was{font-size:.5em;vertical-align:.5em;margin-right:.3em}

/* Scripture fill-the-blank */
.versew .vtext{font-family:var(--serif);font-size:1.45rem;line-height:1.55;font-weight:500}
.vblank{display:inline-block;min-width:5.2em;height:1.55em;vertical-align:-.25em;border-bottom:3px dashed var(--line-2);border-radius:6px;font:inherit;font-weight:700;color:var(--blue);background:var(--sky);padding:0 .35em;line-height:1.4;text-align:center;transition:background .15s}
.vblank.filled{border-bottom-color:var(--blue);background:#fff}
.versew .vref{display:inline-flex;align-items:center;gap:7px;margin:12px 0 14px;font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.versew .vref .ic{color:var(--amber);width:18px;height:18px}
.tile.used{opacity:.35;border-style:dashed;transform:none}

/* bad apple */
.apgrid{align-items:center}
.apples{position:relative;display:grid;gap:14px}
.apples svg{width:100%;height:auto;display:block;user-select:none}
.apples .apple{cursor:pointer}.apples .apple:hover path{filter:brightness(1.08)}
.apples .apple.rot{animation:rotpulse 1.5s ease-in-out infinite}
@keyframes rotpulse{50%{opacity:.75}}
.apples .astat{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.apples .astat b{flex:1;min-width:200px;color:var(--ink-2);font-size:.98rem}
.apples .praise{border-radius:var(--r)}

/* tactile quotes */
.tq p.q{font-family:var(--serif);font-size:1.22rem;line-height:1.45;margin-top:14px;color:var(--ink)}
.tq small{display:block;margin-top:12px;color:var(--ink-3);font-weight:700;font-size:.85rem;line-height:1.4}
.tq .icn{color:var(--amber);background:var(--amber-soft)}

/* standard: full-width lead, tactile boxes with a verse, line-drawing demo, plain list */
.pagehero .lead.wide{max-width:none;font-size:1.12rem}
.tqv{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
.tqv .ic{width:22px;height:22px;color:var(--amber);margin-top:2px}
.tqv p{font-family:var(--serif);font-size:1.02rem;line-height:1.45;color:var(--ink-2);margin:0}
.tqv small{display:block;margin-top:6px;font-weight:800;color:var(--blue);font-size:.8rem}
.plainlist{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px;color:var(--ink-2)}
.plainlist li{display:flex;gap:10px;align-items:flex-start}.plainlist li .ic{color:var(--green);margin-top:4px;flex:none}
.drawd{display:grid;gap:14px}
.drawd .board{position:relative;background:var(--ground);border-radius:18px;display:grid;place-items:center;padding:22px;min-height:260px}
.drawd .big{width:200px;height:200px;stroke:var(--ink);fill:none;stroke-width:.8;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.drawd .big.go *{stroke-dasharray:1;stroke-dashoffset:1;animation:drawin .9s ease-out forwards}
@keyframes drawin{to{stroke-dashoffset:0}}
.drawd .lbl{position:absolute;left:16px;top:14px;font-weight:800;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.drawd .pics.small{grid-template-columns:repeat(5,1fr);gap:8px}
.drawd .pics.small .pic{padding:8px;border-radius:12px}.drawd .pics.small .pic svg{width:30px;height:30px}.drawd .pic.on{border-color:var(--blue)}
.drawd .dfoot{display:flex;gap:10px;flex-wrap:wrap}

/* about: scripture-in-every-subject slides */
.sslides{display:grid;gap:12px}
.stabs{display:flex;gap:8px;flex-wrap:wrap}
.stabs button{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;background:#fff;box-shadow:var(--shadow);font-weight:800;font-size:.88rem;color:var(--ink-2)}
.stabs button.on{background:var(--c);color:#fff}
.sstage{background:linear-gradient(120deg,#0B1230,#1B2450);border-radius:22px;padding:26px 28px;color:#fff;min-height:330px;box-shadow:var(--shadow-lg)}
.sslide{display:grid;gap:14px;animation:pop .35s ease both}
.sslide .shead{display:flex;justify-content:space-between;align-items:center;gap:10px}.sslide .shead .muted{color:rgba(255,255,255,.6)}
.sslide h3{font-size:1.5rem;color:#fff}
.sverse{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;background:rgba(255,255,255,.08);border-radius:14px;padding:14px 16px}
.sverse .ic{width:26px;height:26px;color:var(--amber);grid-row:span 2}
.sverse p{font-family:var(--serif);font-size:1.12rem;line-height:1.45}.sverse small{font-weight:800;color:var(--amber);font-size:.82rem}
.srow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:1.6rem;font-weight:800}
.spics{display:flex;gap:6px}.spics i{display:grid;place-items:center;width:46px;height:46px;border-radius:10px;background:#fff}.spics svg{width:32px;height:32px;stroke:var(--ink);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.srow .ans{font-size:2.4rem;color:var(--amber)}
.sbig{font-size:1.7rem;font-weight:700;line-height:1.35}.sbig mark{background:var(--amber);color:var(--ink);border-radius:6px;padding:0 6px}
.scap{color:rgba(255,255,255,.8)}
.stimeline{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;font-weight:800;position:relative;padding-top:18px}
.stimeline::before{content:"";position:absolute;left:10%;right:10%;top:6px;height:4px;border-radius:2px;background:rgba(255,255,255,.3)}
.stimeline span{background:rgba(255,255,255,.08);border-radius:12px;padding:12px 8px;font-size:1.05rem}.stimeline small{display:block;font-weight:600;color:rgba(255,255,255,.7);font-size:.78rem;margin-top:4px}
.stimeline span.hi{background:var(--amber);color:var(--ink)}.stimeline span.hi small{color:var(--ink-2)}
.smap svg{width:100%;max-width:420px;height:auto;display:block;border-radius:12px}
.sdots{display:flex;gap:6px;justify-content:center}.sdots i{width:9px;height:9px;border-radius:50%;background:var(--line-2);cursor:pointer}.sdots i.on{background:var(--blue)}

/* footer */
footer{background:linear-gradient(120deg,#153C9E,#1E4FD8);color:rgba(255,255,255,.85);padding:56px 0 34px;border-top:1px solid rgba(255,255,255,.25)}
footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px}
footer .logo img{height:34px}footer p{margin-top:12px;max-width:30em}
footer h4{color:#fff;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}
footer a{display:block;color:rgba(255,255,255,.85);text-decoration:none;padding:4px 0;font-weight:600}footer a:hover{color:#fff}
footer .fine{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.2);padding-top:18px;font-size:.85rem;color:rgba(255,255,255,.7);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
@media (max-width:760px){footer .wrap{grid-template-columns:1fr}}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}.rv.d4{transition-delay:.32s}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:50}.toast.show{opacity:1}

/* free Scripture Copywork Books (#/books) and the home teaser */
.bshelf{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:14px}
.bcover{margin:0;display:grid;gap:8px;justify-items:center;text-align:center}
.bcover img,.bcover .bph{width:100%;height:auto;aspect-ratio:340/440;border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(11,18,48,.08),0 14px 26px -16px rgba(30,79,216,.45);border:1px solid var(--line);display:block}
.bcover .bph{display:grid;place-items:center;color:var(--blue)}
.bcover figcaption b{display:block;font-size:.95rem}.bcover figcaption span{display:block;font-size:.76rem;font-weight:700;color:var(--ink-3)}
.bshelf .bcover:hover img{transform:translateY(-3px)}.bshelf .bcover img{transition:transform .2s}
.bformgrid{display:grid;grid-template-columns:1fr minmax(0,460px);gap:44px;align-items:start}
.bform form{display:grid;gap:10px}
.bform label{font-weight:800;font-size:.92rem}
.bform input,.bform select{font:inherit;font-size:1.05rem;padding:13px 14px;border-radius:12px;border:2px solid var(--line-2);background:#fff;color:var(--ink);width:100%;min-width:0}
.bform input:focus,.bform select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px var(--sky)}
.bform .btn{margin-top:6px;width:100%}.bform .btn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}
.bform .berr{color:#B8412C;font-weight:700;font-size:.9rem;min-height:0}.bform .berr:empty{display:none}
.bform h3{font-size:1.3rem}.bform h3+p{margin-top:-6px}
.bfield{position:relative}.bfield input{padding-right:52px}
.btick{position:absolute;right:12px;top:50%;width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;opacity:0;transform:translateY(-50%) scale(.5);transition:opacity .2s,transform .25s cubic-bezier(.3,1.6,.5,1);pointer-events:none}
.btick .ic{width:17px;height:17px;stroke-width:3}
.bfield.ok .btick{opacity:1;transform:translateY(-50%) scale(1)}.bfield.ok input{border-color:var(--green)}.bfield.ok input:focus{box-shadow:0 0 0 4px var(--green-soft)}
.bhero h1{font-size:clamp(2.2rem,4.6vw,3.5rem)}.bhero .bformgrid{align-items:center}.bhero .plainlist{margin-top:22px}
@media (max-width:860px){.bhero .bformgrid{display:flex;flex-direction:column;align-items:stretch;gap:0}.bhero .bformgrid>div:first-child{display:contents}.bhero .bform{order:1;margin-top:24px}.bhero .plainlist{order:2;margin-top:26px}}   /* phones: the form right under the opening paragraph */
/* "How a week works": a real page with a ring where the circle zooms in */
.bhero h1,#howweek h2,.bdl h1{text-wrap:balance}
.hwlist{display:grid;gap:48px;max-width:960px;margin:0 auto}
.hw{display:grid;grid-template-columns:380px 1fr;gap:44px;align-items:center}
.hw.flip{grid-template-columns:1fr 380px}.hw.flip .hwz{order:2}
.hwz{--s:230px;--pw:150px;position:relative;width:380px;height:250px}
.hwpage{position:absolute;left:0;top:30px;width:var(--pw);height:calc(var(--pw)*1.2941);background:#fff;border-radius:6px;border:1px solid var(--line);box-shadow:0 1px 2px rgba(11,18,48,.08),0 14px 26px -16px rgba(30,79,216,.45);transform:rotate(-3deg)}
.hwpage img{width:100%;height:100%;display:block;border-radius:6px}
.hwring{position:absolute;width:calc(var(--pw)/var(--z));height:calc(var(--pw)/var(--z));left:calc(var(--pw)*var(--px) - var(--pw)/var(--z)/2);top:calc(var(--pw)*1.2941*var(--py) - var(--pw)/var(--z)/2);border:2.5px solid var(--amber);border-radius:50%;box-shadow:0 0 0 999px rgba(11,18,48,.06)}
.hwpage{overflow:hidden}
.hwc{position:absolute;right:6px;top:6px;width:var(--s);height:var(--s);border-radius:50%;overflow:hidden;background:#fff;box-shadow:0 0 0 6px #fff,0 0 0 9px var(--amber),0 24px 44px -18px rgba(30,79,216,.55)}
.hwc img{position:absolute;max-width:none;height:auto;width:calc(var(--s)*var(--z));left:calc(var(--s)/2 - var(--s)*var(--z)*var(--px));top:calc(var(--s)/2 - var(--s)*var(--z)*1.2941*var(--py))}
.nw{white-space:nowrap}.hwtext h3{margin-top:14px;font-size:1.45rem}.hwtext p{margin-top:10px;color:var(--ink-2)}.hwtext small{display:block;margin-top:12px;color:var(--ink-3);font-weight:700;font-size:.8rem}
@media (max-width:820px){.hw,.hw.flip{grid-template-columns:1fr;gap:20px}.hw.flip .hwz{order:0}.hwz{margin:0 auto}}
@media (max-width:420px){.hwz{--s:206px;--pw:122px;width:330px;height:226px}.hwpage{top:40px}}
/* #/books/download: the nine books as cards */
.bdl h1{max-width:18em}
.bdlgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.bdlcard{display:grid;grid-template-columns:92px 1fr;gap:18px;align-items:center;padding:18px}
.bdlcard img{width:92px;height:auto;border-radius:6px;border:1px solid var(--line);box-shadow:0 10px 20px -14px rgba(30,79,216,.5);display:block}
.bdlcard h3{font-size:1.2rem}.bdlcard .bk{margin-top:2px;font-size:.84rem;font-weight:700;color:var(--ink-3)}.bdlcard .bmeta{margin:6px 0 12px;font-size:.84rem;color:var(--ink-2)}
.bdlcard .btn{padding:10px 16px}.bdlcard .btn .ic{transform:rotate(90deg)}
@media (max-width:1000px){.bdlgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bdlgrid{grid-template-columns:1fr}}
.booksteaser .btgrid{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.bfan{position:relative;display:block;height:300px;text-decoration:none;color:inherit}
.bfan>span{position:absolute;top:10px;width:180px;transition:transform .25s}
.bfan .bcover figcaption{display:none}
.bfan .f0{left:calc(50% - 250px);transform:rotate(-8deg)}.bfan .f1{left:calc(50% - 90px);top:0;z-index:2}.bfan .f2{left:calc(50% + 70px);transform:rotate(8deg)}
.bfan:hover .f0{transform:rotate(-11deg) translateX(-8px)}.bfan:hover .f2{transform:rotate(11deg) translateX(8px)}
@media (max-width:1000px){.bshelf{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:860px){.bformgrid,.booksteaser .btgrid{grid-template-columns:1fr}.bfan{height:250px}.bfan>span{width:150px}.bfan .f0{left:calc(50% - 205px)}.bfan .f1{left:calc(50% - 75px)}.bfan .f2{left:calc(50% + 55px)}}
@media (max-width:560px){.bshelf{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.bfan{height:200px}.bfan>span{width:118px}.bfan .f0{left:calc(50% - 160px)}.bfan .f1{left:calc(50% - 59px)}.bfan .f2{left:calc(50% + 42px)}}

/* the top bar has room for six links on desktop: "Free books" shows in the phone/tablet menu only (desktop reaches it from the home page and the footer) */
.links a.menuonly{display:none}
@media (max-width:960px){.links a.menuonly{display:block}}
