/* Product showcase: live HTML mock of the platform, replaces raster screenshots. */
.showcase{--ok:#3d8a57;--ok-bg:#e3f1e2;--wip:#b9821c;--wip-bg:#fbefd6;--miss:#b4553f;--miss-bg:#f8e5df;--blue:#2f6fb5;position:relative;padding:22px;border-radius:20px;background:radial-gradient(120% 90% at 100% 0,#eef3e4 0,#e4e9dd 55%,#dfe5d6 100%);border:1px solid #d6ddd0;isolation:isolate}
.showcase:before{content:'';position:absolute;inset:auto auto -40px -40px;width:220px;height:220px;border-radius:50%;border:1px solid #b8785333;z-index:-1}
.mock-stage{position:relative;width:100%;aspect-ratio:880/560;--s:1}
.mock-stage.compact{aspect-ratio:520/660}
.mock-scale{position:absolute;top:0;right:0;width:880px;height:560px;transform:scale(var(--s));transform-origin:top right}
.compact .mock-scale{width:520px;height:660px}
.mock-window{height:100%;display:flex;flex-direction:column;background:#fbfbf8;border-radius:12px;overflow:hidden;box-shadow:0 1px 0 #ffffff inset,0 24px 50px -18px #143f4340,0 2px 6px #143f4314;border:1px solid #cfd8cc;font-size:12px;line-height:1.6;color:var(--ink)}
.mock-bar{height:34px;flex:none;display:flex;align-items:center;gap:12px;padding:0 14px;background:#eef1ea;border-bottom:1px solid #dde3d9;direction:ltr}
.mock-bar .dots{display:flex;gap:6px}.mock-bar .dots i{width:9px;height:9px;border-radius:50%;background:#cdd6cf}
.mock-bar .dots i:first-child{background:#e5a99a}.mock-bar .dots i:nth-child(2){background:#e7cf8f}.mock-bar .dots i:nth-child(3){background:#a9cf9a}
.mock-address{flex:1;max-width:330px;margin:auto;height:20px;border-radius:6px;background:#fff;border:1px solid #dde3d9;font-size:10px;color:#7b8a85;display:flex;align-items:center;justify-content:center;gap:6px;direction:rtl}
.mock-address svg{width:10px;height:10px}
.mock-body{flex:1;display:flex;min-height:0}
.mock-side{width:168px;flex:none;background:var(--ink);color:#cfe0da;padding:16px 12px;display:flex;flex-direction:column;gap:3px}
.mock-brand{display:flex;align-items:center;gap:8px;padding:0 6px 14px;margin-bottom:6px;border-bottom:1px solid #ffffff1c;color:#fff;font-weight:700;font-size:15px}
.mock-brand img{width:20px;height:24px;filter:brightness(0) invert(1)}
.mock-nav{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:7px;font-size:11.5px;transition:background .35s,color .35s}
.mock-nav svg{width:15px;height:15px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.showcase[data-active=students] .nav-students,.showcase[data-active=team] .nav-team,.showcase[data-active=family] .nav-family,.showcase[data-active=quality] .nav-quality{background:#ffffff17;color:#fff;box-shadow:inset -3px 0 0 var(--mint)}
.mock-side-foot{margin-top:auto;padding:10px;border-radius:8px;background:#ffffff0e;font-size:10.5px;color:#b9cec8}
.mock-side-foot b{display:block;color:#fff;font-size:11.5px;font-weight:600}
.mock-main{flex:1;min-width:0;display:grid;padding:18px 20px;position:relative;overflow:hidden}
.mock-view{grid-area:1/1;min-width:0;display:flex;flex-direction:column;gap:12px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease,visibility 0s .45s}
.mock-view.active{opacity:1;visibility:visible;transform:none;transition:opacity .45s ease,transform .45s ease,visibility 0s}
.mv-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.mv-head h4{margin:0;font-size:17px;font-weight:700;line-height:1.4}
.mv-head p{margin:0;font-size:10.5px;color:var(--muted)}
.mv-actions{display:flex;gap:6px;flex:none}
.mv-btn{font-size:10.5px;font-weight:600;padding:6px 11px;border-radius:7px;border:1px solid #d3dbd1;background:#fff;white-space:nowrap}
.mv-btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.card{background:#fff;border:1px solid #e3e8e0;border-radius:10px;padding:12px 14px;box-shadow:0 1px 2px #143f430a}
.card-title{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;font-weight:700;margin-bottom:8px}
.card-title span{font-weight:500;color:var(--muted);font-size:10px}
.num{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}
/* Reveal choreography: items rise in with a stagger once their view is shown. */
.rise{transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 70ms + 80ms)}
.armed .mock-view:not(.is-in) .rise{opacity:0;transform:translateY(10px);transition:none}
.bar{height:7px;border-radius:9px;background:#edf0ea;overflow:hidden}
.bar i{display:block;height:100%;width:var(--v);border-radius:inherit;background:var(--c,var(--ink));transition:width 1.1s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 90ms + 200ms)}
.armed .mock-view:not(.is-in) .bar i{width:0;transition:none}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;padding:2px 9px;border-radius:20px;white-space:nowrap}
.chip:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.chip.ok{color:var(--ok);background:var(--ok-bg)}.chip.wip{color:var(--wip);background:var(--wip-bg)}.chip.miss{color:var(--miss);background:var(--miss-bg)}
/* Readiness view */
.rd-top{display:grid;grid-template-columns:1fr 210px;gap:12px}
.ring-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px}
.ring{position:relative;width:112px;height:112px}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:10}
.ring .track{stroke:#edf0ea}
.ring .val{stroke:url(#ringGrad);stroke-linecap:round;stroke-dasharray:283;stroke-dashoffset:calc(283 - 283 * var(--v) / 100);transition:stroke-dashoffset 1.4s cubic-bezier(.2,.7,.2,1) .25s}
.armed .mock-view:not(.is-in) .ring .val{stroke-dashoffset:283;transition:none}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:27px;font-weight:700;color:var(--wip)}
.ring-card small{font-size:10.5px;color:var(--muted)}
.ring-card strong{font-size:11.5px;color:var(--wip)}
.ring-legend{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;margin-top:4px}
.domains{display:grid;gap:9px}
.domain-row{display:grid;grid-template-columns:118px 1fr 74px;align-items:center;gap:10px;font-size:11px}
.domain-row b{font-weight:600}
.domain-row span{text-align:left;direction:ltr;color:var(--muted);font-size:10px}
.ind-list{display:grid;gap:0}
.ind{display:grid;grid-template-columns:52px 1fr auto auto;gap:10px;align-items:center;padding:8px 2px;border-top:1px solid #eef1ec;font-size:11px}
.ind:first-of-type{border-top:0}
.ind code{font:600 10px/1 var(--font);color:var(--copper);direction:ltr;text-align:right}
.ind em{font-style:normal;color:var(--muted);font-size:10px;display:flex;align-items:center;gap:4px}
.ind em svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.8}
/* Daily view */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tile{padding:11px 12px}
.tile small{display:block;font-size:10px;color:var(--muted)}
.tile b{display:block;font-size:22px;font-weight:700;line-height:1.35}
.tile i{font-style:normal;font-size:9.5px;font-weight:600}
.tile .up{color:var(--ok)}.tile .warn{color:var(--wip)}
.dy-cols{display:grid;grid-template-columns:1.25fr 1fr;gap:12px;flex:1;min-height:0}
.task{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:7px 0;border-top:1px solid #eef1ec;font-size:11px}
.task:first-of-type{border-top:0}
.task time{font-size:10px;color:var(--muted);direction:ltr;text-align:right}
.task p{margin:0;font-weight:600;line-height:1.45}
.task p small{display:block;font-weight:400;color:var(--muted);font-size:9.5px}
.who{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:9.5px;font-weight:700;color:var(--ink);background:var(--sage);border:2px solid #fff}
.check{width:16px;height:16px;border-radius:50%;display:inline-grid;place-items:center;background:var(--ok);color:#fff}
.check svg{width:10px;height:10px;stroke:#fff;fill:none;stroke-width:3}
.circ{padding:8px 0;border-top:1px solid #eef1ec;font-size:11px}
.circ:first-of-type{border-top:0}
.circ p{margin:0 0 5px;font-weight:600;line-height:1.45}
.circ div{display:flex;justify-content:space-between;font-size:9.5px;color:var(--muted);margin-top:4px}
/* Leader view */
.ld-cols{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;flex:1;min-height:0}
.chart-card{display:flex;flex-direction:column}.chart{position:relative;flex:1;min-height:150px}
.chart svg{width:100%;height:100%;overflow:visible}
.chart .grid line{stroke:#edf0ea;stroke-width:1;vector-effect:non-scaling-stroke}
.chart .area{fill:url(#areaGrad);transition:opacity .8s ease .9s}
.chart .line{vector-effect:non-scaling-stroke;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:640;stroke-dashoffset:0;transition:stroke-dashoffset 1.6s cubic-bezier(.3,.6,.2,1) .2s}
.chart-dot{position:absolute;left:3.75%;top:31.3%;width:11px;height:11px;margin:-5.5px;border-radius:50%;background:#fff;border:2.5px solid var(--copper);box-shadow:0 0 0 5px #b8785326;transition:opacity .3s 1.7s}
.chart-x{display:flex;justify-content:space-between;font-size:9.5px;color:#8a9894;margin-top:4px}
.armed .mock-view:not(.is-in) :is(.chart .area,.chart-dot,.chart-tip){opacity:0;transition:none}.armed .mock-view:not(.is-in) .chart .line{stroke-dashoffset:640;transition:none}
.chart-tip{position:absolute;top:calc(31.3% - 34px);left:0;background:var(--ink);color:#fff;font-size:10px;padding:3px 8px;border-radius:6px;transition:opacity .3s 1.8s}

.prio{display:grid;grid-template-columns:20px 1fr;gap:9px;padding:8px 0;border-top:1px solid #eef1ec;font-size:11px;align-items:start}
.prio:first-of-type{border-top:0}
.prio>b{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;background:var(--cream);color:var(--copper);font-size:10px}
.prio p{margin:0;font-weight:600;line-height:1.45}
.prio p small{display:block;font-weight:400;color:var(--muted);font-size:9.5px}
/* Floating notification that belongs to the active view. */
.mock-float{position:absolute;z-index:2;opacity:0;transform:translateY(14px) scale(.97);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.showcase[data-active=students] .float-students.show,.showcase[data-active=team] .float-team.show,.showcase[data-active=family] .float-family.show,.showcase[data-active=quality] .float-quality.show{opacity:1;transform:none;transition-delay:1.1s}
.toast{left:28px;bottom:-14px;display:flex;align-items:center;gap:10px;background:var(--mint);color:var(--ink);padding:10px 15px;border-radius:11px;box-shadow:0 16px 34px -10px #143f4350;font-size:12px;line-height:1.45}
.toast b{display:block;font-size:13px}
.toast .check{width:24px;height:24px;background:var(--ink)}
.toast .check svg{width:12px;height:12px}
.wa-msg{left:-6px;bottom:-18px;width:268px;background:#fff;border-radius:14px;box-shadow:0 22px 44px -14px #143f4366,0 0 0 1px #143f4312;overflow:hidden;font-size:11.5px;line-height:1.6}
.wa-msg header{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#0f5c4e;color:#fff;font-size:11.5px;font-weight:600}
.wa-msg header img{width:22px;height:22px;padding:4px;border-radius:50%;background:#fff}
.wa-msg header span{margin-inline-start:auto;font-weight:400;font-size:10px;opacity:.8}
.wa-msg .bubble{margin:10px;padding:9px 11px;background:#e7f5dc;border-radius:10px 2px 10px 10px}
.wa-msg .bubble b{display:block;margin-bottom:2px}
.wa-msg .bubble time{display:block;text-align:left;font-size:9px;color:#6b8478;direction:ltr}
.showcase .screenshot-caption{margin-top:16px;display:flex;justify-content:center;align-items:center;gap:8px}
.showcase .screenshot-caption:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--copper)}
/* Compact layout for phones: no sidebar, single column. */
.compact .mock-side,.compact .hide-compact{display:none}
.compact .mock-main{padding:16px}
.compact .mv-head{flex-wrap:wrap}
.compact .rd-top,.compact .dy-cols,.compact .ld-cols{grid-template-columns:1fr}
.compact .ring-card{flex-direction:row;justify-content:flex-start;gap:16px;text-align:right}
.compact .ring{width:92px;height:92px}
.compact .ring-legend{justify-content:flex-start}
.compact .tiles{grid-template-columns:repeat(2,1fr)}
.compact .toast{left:10px;bottom:-12px}
.compact .wa-msg{left:6px;bottom:-14px}
@media(max-width:580px){.showcase{padding:12px;border-radius:16px}}

/* Numerals: use the brand typeface everywhere instead of Arial. */
.step-number,.numbers b,.domain-btn b,.price strong,.criterion b,.lesson-art .duration,.lesson-art .lesson-count,.checkout-steps b,.payment-icons span,.faq summary:after{font-family:var(--font)!important;font-variant-numeric:tabular-nums}
.price strong{font-weight:600;letter-spacing:-2px}
.numbers b{font-weight:600}
.platform{overflow-x:clip}
.flag{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;padding:7px 0;border-top:1px solid #eef1ec;font-size:11px}
.flag:first-of-type{border-top:0}
.flag p{margin:0;font-weight:600;line-height:1.45}
.flag p small{display:block;font-weight:400;color:var(--muted);font-size:9.5px}
.showcase[data-active=students] .mock-nav.nav-students,.showcase[data-active=family] .mock-nav.nav-family,.showcase[data-active=team] .mock-nav.nav-team,.showcase[data-active=quality] .mock-nav.nav-quality{box-shadow:inset -3px 0 0 var(--accent,var(--mint))}
.showcase[data-active=students]{--accent:#8fb8e6}.showcase[data-active=team]{--accent:#e2b08f}.showcase[data-active=family]{--accent:#a9d6a0}.showcase[data-active=quality]{--accent:#ecd08a}
