@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Montserrat:wght@700;800&display=swap";:root{--engine-ink:#1f2030;--engine-muted:#77798b;--engine-line:#e5e4ec;--engine-purple:#7342ee;--engine-green:#28c779;--engine-yellow:#ffc83d}.engine-lab-page{min-height:100svh;color:var(--engine-ink);box-sizing:border-box;background:radial-gradient(circle at 9% 8%,#7950ff1f,#0000 28%),radial-gradient(circle at 91% 7%,#ffc7461f,#0000 25%),radial-gradient(circle at 88% 88%,#37cddc1c,#0000 28%),#fbfbfd;padding:24px clamp(18px,4vw,64px) 40px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.engine-lab-header{justify-content:space-between;align-items:center;max-width:1440px;height:52px;margin:0 auto;display:flex}.engine-brand{color:var(--engine-ink);letter-spacing:-.05em;font-size:clamp(22px,2vw,30px);text-decoration:none}.engine-brand strong{font-weight:800}.engine-profile{align-items:center;gap:10px;display:flex}.engine-profile>div{width:42px;height:42px}.engine-profile span{display:grid}.engine-profile strong{font-size:14px}.engine-profile small{color:var(--engine-muted);font-size:11px}.engine-lab-toolbar{justify-content:space-between;align-items:end;gap:20px;max-width:1100px;margin:28px auto 10px;display:flex}.engine-demo-picker{grid-template-columns:44px minmax(240px,460px) 44px;align-items:end;gap:10px;display:grid}.engine-demo-picker>button{width:44px;height:44px;color:var(--engine-ink);cursor:pointer;background:#ffffffd1;border:1px solid #dedde7;border-radius:50%;font-size:20px}.engine-demo-picker label{gap:5px;display:grid}.engine-demo-picker label>span{color:var(--engine-purple);letter-spacing:.16em;font-size:9px;font-weight:800}.engine-demo-picker select{width:100%;height:44px;color:var(--engine-ink);background:#ffffffdb;border:1px solid #dedde7;border-radius:14px;padding:0 38px 0 14px;font:650 13px inherit}.engine-device-picker{background:#e9e8f0bf;border-radius:13px;padding:4px;display:flex}.engine-device-picker button{color:#777987;cursor:pointer;background:0 0;border:0;border-radius:10px;min-height:36px;padding:0 14px;font-weight:700}.engine-device-picker button.is-active{color:var(--engine-ink);background:#fff;box-shadow:0 2px 10px #231f3314}.engine-lab-progress{background:#e8e7ee;border-radius:999px;max-width:1100px;height:3px;margin:12px auto 20px;overflow:hidden}.engine-lab-progress span{border-radius:inherit;background:linear-gradient(90deg,#7141ef,#9465ff);height:100%;transition:width .35s;display:block}.engine-preview-wrap{margin:0 auto;transition:max-width .35s}.engine-preview-wrap.device-fluid{max-width:1100px}.engine-preview-wrap.device-tablet{max-width:820px}.engine-preview-wrap.device-phone{max-width:390px}.engine-preview-surface{background:#ffffffdb;border:1px solid #dad8e4e6;border-radius:28px;height:min(680px,100svh - 245px);min-height:540px;transition:height .35s;overflow:hidden;box-shadow:0 24px 70px #31294e17}.device-phone .engine-preview-surface{border-radius:34px;height:min(760px,100svh - 220px);min-height:620px}.interaction-engine{background:radial-gradient(circle at 15% 10%,#7648f60f,#0000 32%),radial-gradient(circle at 88% 12%,#ffc63b0f,#0000 28%),#fff;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100%;display:grid;overflow:hidden}.engine-copy{text-align:center;padding:clamp(24px,5vh,48px) 24px 12px}.engine-copy>span{color:var(--engine-purple);letter-spacing:.18em;font-size:9px;font-weight:850;display:block}.engine-copy h1{letter-spacing:-.045em;margin:8px 0 4px;font-size:clamp(25px,3.1vw,42px);line-height:1.05}.engine-copy p{max-width:560px;color:var(--engine-muted);margin:0 auto;font-size:clamp(13px,1.5vw,17px);line-height:1.4}.engine-stage{place-items:center;min-height:0;padding:clamp(10px,2.5vh,26px) clamp(16px,4vw,54px);display:grid;overflow:hidden}.engine-actions{border-top:1px solid #efedf3;grid-template-columns:110px 1fr 110px;align-items:center;gap:12px;min-height:78px;padding:12px clamp(20px,4vw,48px) 18px;display:grid}.engine-reset{color:#8a8996;cursor:pointer;background:0 0;border:0;min-height:48px;font-weight:700}.engine-check{background:var(--engine-yellow);color:#27231b;cursor:pointer;border:0;border-radius:18px;justify-self:end;width:66px;height:54px;font-size:24px;font-weight:900;transition:transform .16s,background .2s;box-shadow:0 8px 20px #ffc1263d}.engine-check:hover{transform:translateY(-2px)}.engine-check:active{transform:scale(.97)}.engine-result{color:#777987;justify-self:center;align-items:center;gap:8px;font-weight:750;display:flex}.engine-result i{background:#ecebf1;border-radius:50%;place-items:center;width:28px;height:28px;font-style:normal;display:grid}.engine-result.is-correct{color:#15985a}.engine-result.is-correct i{color:#fff;background:var(--engine-green)}.engine-result.is-retry{color:#9a6d00}.engine-contract-error{text-align:center;place-content:center;gap:8px;min-height:100%;padding:30px;display:grid}.engine-contract-error span{color:#a44}.engine-choice-grid{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:clamp(12px,2vw,22px);width:min(680px,100%);display:grid}.engine-choice-grid.compact{grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:12px;width:min(460px,100%)}.engine-choice-grid>button,.engine-piece-tray>button{cursor:pointer;touch-action:manipulation;background:#ffffffeb;border:1.5px solid #e2e0e9;border-radius:24px;place-items:center;min-width:74px;min-height:92px;transition:transform .18s,border-color .18s,box-shadow .18s,opacity .18s;display:grid;position:relative}.engine-choice-grid.compact>button{border-radius:20px;min-height:72px}.engine-choice-grid>button:hover,.engine-piece-tray>button:hover{border-color:#cabef9;transform:translateY(-3px);box-shadow:0 12px 25px #4f37a01a}.engine-choice-grid>button.is-selected,.engine-piece-tray>button.is-armed,.engine-choice-grid>button.is-armed{border-color:var(--engine-purple);box-shadow:0 0 0 3px #7342ee1f}.engine-choice-grid>button.is-paired{opacity:.38}.engine-checkmark{background:var(--engine-purple);color:#fff;opacity:0;border-radius:50%;place-items:center;width:23px;height:23px;transition:all .18s;display:grid;position:absolute;top:8px;right:8px;transform:scale(.6)}.is-selected>.engine-checkmark{opacity:1;transform:scale(1)}.engine-visual-item{--tone-a:#bca3ff;--tone-b:#7140e8;filter:drop-shadow(0 10px 11px #37286e26);justify-content:center;align-items:center;gap:5px;width:74px;height:74px;display:inline-flex}.engine-visual-item.is-compact{width:48px;height:48px}.engine-visual-item>i{background:linear-gradient(145deg,var(--tone-a),var(--tone-b));border-radius:15px;width:60%;height:60%;display:block;box-shadow:inset 0 1px 1px #ffffffa6}.engine-visual-item.tone-purple{--tone-a:#b498ff;--tone-b:#7040e8}.engine-visual-item.tone-blue{--tone-a:#91b9ff;--tone-b:#4778e7}.engine-visual-item.tone-cyan{--tone-a:#85ebed;--tone-b:#20bcca}.engine-visual-item.tone-yellow{--tone-a:#ffe17b;--tone-b:#f5b819}.engine-visual-item.tone-pink{--tone-a:#ffa7d6;--tone-b:#e75da6}.engine-visual-item.tone-green{--tone-a:#83e2b2;--tone-b:#24bd75}.engine-visual-item.tone-neutral{--tone-a:#e2e3e8;--tone-b:#adb0ba;filter:none}.engine-visual-item.shape-circle>i{border-radius:50%}.engine-visual-item.shape-triangle>i{clip-path:polygon(50% 4%,96% 91%,4% 91%);border-radius:0}.engine-visual-item.shape-diamond>i{border-radius:8px;transform:rotate(45deg)scale(.76)}.engine-visual-item.shape-hexagon>i{clip-path:polygon(25% 6%,75% 6%,100% 50%,75% 94%,25% 94%,0 50%);border-radius:0}.engine-visual-item.shape-star>i{clip-path:polygon(50% 0,62% 35%,100% 50%,62% 65%,50% 100%,38% 65%,0 50%,38% 35%);border-radius:0}.engine-visual-item.shape-arrow>i{clip-path:polygon(0 34%,58% 34%,58% 8%,100% 50%,58% 92%,58% 66%,0 66%);border-radius:0}.engine-visual-item.shape-bar{align-items:end}.engine-visual-item.shape-bar>i{width:12px;height:calc(18% + var(--bar-index,0) * 8%);border-radius:6px;min-height:18px}.engine-visual-item.shape-dot{flex-wrap:wrap;align-content:center}.engine-visual-item.shape-dot>i{border-radius:50%;width:20%;height:20%}.engine-placement{gap:clamp(18px,4vh,36px);width:min(760px,100%);display:grid}.engine-piece-tray{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;min-height:106px;display:flex}.engine-piece-tray>button{touch-action:none;background:0 0;min-height:84px}.engine-zone-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;display:grid}.engine-zone{color:#777987;cursor:pointer;background:#f9f9fcc7;border:2px dashed #d8d6e2;border-radius:28px;align-content:center;justify-items:center;gap:10px;min-height:145px;transition:all .18s;display:grid}.engine-zone.is-ready{background:#faf8ff;border-color:#9b78f5;transform:scale(1.012)}.engine-zone>strong{font-size:13px}.engine-zone>div{justify-content:center;align-items:center;gap:3px;min-height:52px;display:flex}.engine-zone>div>span{cursor:pointer}.engine-zone.shape-circle{border-radius:999px}.engine-placement.is-venn .engine-zone-grid{grid-template-columns:repeat(3,1fr);gap:0}.engine-placement.is-venn .engine-zone{aspect-ratio:1;border-style:solid;border-width:2px;min-width:0}.engine-placement.is-venn .engine-zone:nth-child(2){transform:translate(-16%)}.engine-placement.is-venn .engine-zone:nth-child(3){border-color:#28c77980;transform:translate(-32%)}.engine-drag-ghost{z-index:9999;pointer-events:none;opacity:.9;position:fixed;transform:translate(-50%,-50%)scale(1.08)}.engine-sequence-board,.engine-pattern-board{gap:28px;width:min(720px,100%);display:grid}.engine-slots,.engine-model-sequence{justify-content:center;align-items:center;gap:10px;min-height:92px;display:flex}.engine-slots>button,.engine-model-sequence>i{color:#b0aeba;cursor:pointer;background:#fbfbfd;border:1.5px dashed #cbc8d6;border-radius:20px;place-items:center;width:clamp(58px,8vw,82px);height:clamp(66px,9vw,90px);font-weight:800;display:grid}.engine-slots>button.is-filled{background:#fff;border-style:solid;border-color:#d9d3ee}.engine-slots>button>span:not(.engine-visual-item){font-size:13px}.engine-model-sequence{border-bottom:1px solid #eeecf2;min-height:62px;padding-bottom:18px}.engine-model-sequence>i{border-radius:15px;width:46px;height:46px}.engine-pattern-board .engine-piece-tray{min-height:78px}.engine-pair-board{gap:22px;width:min(650px,100%);display:grid}.engine-pair-lines{justify-content:center;gap:12px;min-height:32px;display:flex}.engine-pair-lines span{color:#858493;align-items:center;gap:6px;font-size:11px;display:flex}.engine-pair-lines i{width:22px;height:22px;color:var(--engine-purple);background:#eee9ff;border-radius:50%;place-items:center;font-style:normal;font-weight:800;display:grid}.engine-transform-board{justify-items:center;gap:30px;display:grid}.engine-transform-target{background:linear-gradient(145deg,#faf9fd,#f1eff7);border-radius:42px;place-items:center;width:190px;height:190px;display:grid;position:relative}.engine-transform-target>.engine-visual-item:first-child{opacity:.42;transform:rotate(90deg)scaleX(-1)}.engine-transform-target>span{place-items:center;transition:transform .3s cubic-bezier(.2,.8,.2,1);display:grid;position:absolute}.engine-tool-row{gap:12px;display:flex}.engine-tool-row button{cursor:pointer;background:#fff;border:1px solid #dedce7;border-radius:18px;grid-template-columns:28px 1fr;align-items:center;gap:4px;width:96px;min-height:64px;padding:0 12px;display:grid}.engine-tool-row svg{fill:none;width:28px;stroke:var(--engine-purple);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.engine-tool-row small{color:#5e5d6a;font-weight:750}.engine-path-board{--engine-columns:3;grid-template-columns:repeat(var(--engine-columns),1fr);gap:clamp(18px,5vw,40px);width:min(480px,100%);display:grid;position:relative}.engine-path-board>button{aspect-ratio:1;cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:relative}.engine-path-board>button:after{content:"";z-index:0;background:#dfdde6;width:calc(100% + 30px);height:4px;position:absolute;top:50%;left:58%}.engine-path-board>button:nth-child(3n):after,.engine-path-board>button:last-child:after{display:none}.engine-path-board .engine-visual-item{z-index:1;width:58px;height:58px;transition:transform .2s;position:relative}.engine-path-board>button.is-on-path .engine-visual-item{transform:scale(1.12)}.engine-path-board>button.is-on-path:after{background:var(--engine-green)}.engine-path-board>button.is-blocked{opacity:.5;cursor:not-allowed}.engine-zoom-board{justify-items:center;gap:24px;width:min(620px,100%);display:grid}.engine-zoom-window{background:radial-gradient(circle,#fff,#f5f3fa);border:1px solid #e1dfe8;border-radius:34px;place-items:center;width:min(420px,100%);height:210px;display:grid;overflow:hidden}.engine-zoom-window>div{justify-content:space-around;width:260px;transition:transform .2s;display:flex}.engine-zoom-window button{cursor:pointer;background:0 0;border:0}.engine-zoom-window button.is-selected{outline:3px solid var(--engine-purple);border-radius:50%}.engine-zoom-board label{align-items:center;gap:14px;width:min(380px,90%);display:flex}.engine-zoom-board label svg{fill:none;width:28px;stroke:var(--engine-purple);stroke-width:2px}.engine-zoom-board input,.engine-simulation-board input,.engine-resource-board input{width:100%;accent-color:var(--engine-purple);min-height:38px}.engine-predict-board{justify-items:center;gap:18px;width:min(560px,100%);display:grid}.engine-machine{background:#f5f2fc;border-radius:34px;place-items:center;width:190px;height:118px;display:grid;position:relative;overflow:hidden}.engine-machine>span{transition:transform .5s cubic-bezier(.2,.8,.2,1)}.engine-machine.has-run>span{transform:rotate(90deg)translateY(-12px)}.engine-machine>i{background:var(--engine-yellow);opacity:0;border-radius:50%;width:10px;height:10px;position:absolute;top:24px;right:30px}.engine-machine.has-run>i{animation:.55s engine-pop}.engine-run{color:#fff;cursor:pointer;background:#29292d;border:0;border-radius:18px;justify-content:center;align-items:center;gap:8px;min-width:150px;min-height:52px;font-weight:800;display:flex}.engine-run:disabled{opacity:.3}.engine-run svg{fill:currentColor;width:20px}.engine-balance-board{gap:4px;width:min(700px,100%);display:grid}.engine-balance{place-items:end center;height:90px;display:grid;position:relative}.engine-balance>i{clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);background:#42434b;width:8px;height:64px}.engine-balance>b{width:min(520px,86%);height:5px;transform:rotate(var(--balance-angle));background:#42434b;border-radius:99px;transition:transform .3s;position:absolute;bottom:44px}.engine-balance>b:before,.engine-balance>b:after{content:"";border:3px solid #777987;border-top:0;border-radius:0 0 24px 24px;width:110px;height:32px;position:absolute;top:8px}.engine-balance>b:before{left:-12px}.engine-balance>b:after{right:-12px}.engine-balance-board .engine-placement{display:block}.engine-balance-board .engine-piece-tray{min-height:80px}.engine-balance-board .engine-zone-grid{grid-template-columns:1fr 1fr}.engine-balance-board .engine-zone{background:0 0;border:0;min-height:105px}.engine-balance-values{color:#777987;justify-content:space-around;font-weight:850;display:flex}.engine-simulation-board{justify-items:center;gap:24px;width:min(570px,100%);display:grid}.engine-bar-compare{gap:18px;width:100%;display:grid}.engine-bar-compare>span{--bar-value:50%;width:var(--bar-value);background:linear-gradient(90deg,#ddd9ea,#c5bfd6);border-radius:14px;height:45px;transition:width .18s;display:block}.engine-bar-compare>span.is-live{background:linear-gradient(90deg,#7b4af0,#9d75f7)}.engine-simulation-board>strong{width:64px;height:52px;color:var(--engine-purple);background:#f1edff;border-radius:17px;place-items:center;font-size:24px;display:grid}.engine-matrix-board{justify-items:center;gap:28px;display:grid}.engine-matrix{background:#f7f6fa;border-radius:28px;grid-template-rows:repeat(2,88px);grid-template-columns:repeat(3,88px);gap:8px;padding:12px;display:grid}.engine-matrix>*{background:#fff;border-radius:18px;place-items:center;display:grid}.engine-missing{color:var(--engine-purple);border:2px dashed #c9baf8;font-size:28px;font-weight:850}.engine-resource-board{justify-items:center;gap:25px;width:min(560px,100%);display:grid}.engine-resource-total{grid-template-columns:repeat(10,1fr);gap:7px;width:100%;display:grid}.engine-resource-total i{aspect-ratio:1;background:#6f42e7;border-radius:8px;transition:background .2s,transform .2s}.engine-resource-total i.is-second{background:#34c7cd}.engine-resource-total i:hover{transform:translateY(-3px)}.engine-resource-labels{justify-content:space-around;width:100%;display:flex}.engine-resource-labels span{align-items:center;gap:8px;display:flex}.engine-resource-labels b{font-size:24px}.engine-lab-inspector{background:#e7e5ed;border:1px solid #e7e5ed;border-radius:18px;grid-template-columns:repeat(5,1fr);gap:1px;max-width:1100px;margin:16px auto 0;display:grid;overflow:hidden}.engine-lab-inspector>div{background:#ffffffeb;align-content:center;gap:3px;min-width:0;min-height:58px;padding:0 14px;display:grid}.engine-lab-inspector span{color:#9694a1;letter-spacing:.14em;font-size:8px;font-weight:850}.engine-lab-inspector strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.engine-lab-inspector strong.is-good{color:#14975a}.engine-lab-inspector details{background:#fff;grid-column:1/-1;padding:11px 15px}.engine-lab-inspector summary{cursor:pointer;color:#676674;font-size:11px;font-weight:750}.engine-lab-inspector ol{flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.engine-lab-inspector li{background:#f4f2f8;border-radius:9px;gap:5px;padding:6px 9px;font-size:10px;display:flex}.engine-lab-inspector li span{letter-spacing:0;font-weight:600}.engine-lab-inspector details p{color:#9997a2;margin:9px 0 0;font-size:11px}@keyframes engine-pop{0%{opacity:0;transform:scale(.2)}45%{opacity:1;transform:scale(1.5)}to{opacity:0;transform:translate(16px,-16px)scale(.5)}}@media (width<=760px){.engine-lab-page{padding:14px 10px 28px}.engine-lab-header{padding:0 8px}.engine-profile span{display:none}.engine-lab-toolbar{margin-top:18px;display:grid}.engine-demo-picker{grid-template-columns:42px minmax(0,1fr) 42px}.engine-device-picker{justify-self:center}.engine-device-picker button{padding:0 10px;font-size:11px}.engine-preview-surface{border-radius:24px;height:min(680px,100svh - 250px);min-height:560px}.engine-copy{padding:23px 15px 8px}.engine-copy h1{font-size:27px}.engine-copy p{font-size:13px}.engine-stage{padding:8px 14px}.engine-actions{grid-template-columns:80px 1fr 80px;min-height:68px;padding:8px 14px 12px}.engine-check{width:62px;height:52px}.engine-result span{font-size:11px}.engine-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:330px}.engine-choice-grid.count-5{grid-template-columns:repeat(3,minmax(0,1fr))}.engine-choice-grid>button{border-radius:19px;min-width:0;min-height:78px}.engine-visual-item{width:56px;height:56px}.engine-visual-item.is-compact{width:40px;height:40px}.engine-piece-tray{flex-wrap:nowrap;gap:6px;min-height:82px}.engine-piece-tray>button{border-radius:17px;min-width:60px;min-height:68px}.engine-zone-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.engine-zone{border-radius:22px;min-height:116px;padding:6px}.engine-zone>div{flex-wrap:wrap}.engine-placement.is-venn .engine-zone-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.engine-placement.is-venn .engine-zone{min-height:auto;padding:4px}.engine-placement.is-venn .engine-zone>strong{font-size:9px}.engine-slots{gap:5px}.engine-slots>button{border-radius:16px;width:60px;height:66px}.engine-model-sequence{gap:4px}.engine-transform-target{width:155px;height:155px}.engine-path-board{gap:12px 22px;max-width:310px}.engine-path-board .engine-visual-item{width:48px;height:48px}.engine-balance{transform:scale(.85)}.engine-balance-board .engine-piece-tray{margin-top:-8px}.engine-matrix{grid-template-rows:repeat(2,70px);grid-template-columns:repeat(3,70px)}.engine-lab-inspector{border-radius:15px;grid-template-columns:repeat(2,1fr)}.engine-lab-inspector>div:nth-child(2){grid-column:span 2}}@media (prefers-reduced-motion:reduce){.interaction-engine *,.engine-lab-page *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{color:#20212a;font-synthesis:none;text-rendering:optimizelegibility;--purple:#6622cf;--purple-soft:#f2ebff;--cyan:#00ccfe;--yellow:#ffd24c;--green:#2cc970;--ink:#20212a;--muted:#777986;--line:#e8e6ec;--surface:#fff;--shadow:0 28px 80px #3d235c1c;background:#f8f5fb;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{min-height:100dvh;overflow-x:hidden}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.tutor-page{background:radial-gradient(circle at 3% 96%,#ffd24c33,#0000 27%),radial-gradient(circle at 96% 8%,#00ccfe24,#0000 27%),linear-gradient(135deg,#fbf5f8 0%,#f6f4ff 56%,#f2faff 100%);place-items:center;height:100dvh;padding:clamp(14px,3.2vw,42px);display:grid;overflow:hidden}.public-site{color:#25212d;background:radial-gradient(circle at 86% 16%,#00ccfe21,#0000 24%),radial-gradient(circle at 4% 96%,#ffd24c33,#0000 25%),linear-gradient(145deg,#fffafb 0%,#f9f7ff 58%,#f2fbff 100%);min-height:100dvh;overflow:hidden}.public-nav{justify-content:space-between;align-items:center;width:min(1220px,100% - 48px);height:84px;margin:0 auto;display:flex}.public-brand{color:#292431;align-items:center;gap:12px;font-family:Montserrat,Inter,sans-serif;font-size:18px;font-weight:800;text-decoration:none;display:inline-flex}.public-brand b{color:var(--purple)}.brand-mark{color:#fff;background:linear-gradient(135deg,var(--purple),#8e58ea);border-radius:12px 16px;place-items:center;width:38px;height:38px;display:grid;transform:rotate(45deg);box-shadow:0 8px 22px #6622cf3b}.brand-mark>span{font-size:16px;transform:rotate(-45deg)}.brand-mark.small{border-radius:9px 12px;width:30px;height:30px}.brand-mark.small>span{font-size:12px}.kody-character{-webkit-user-select:none;user-select:none;flex:none;display:block;position:relative}.kody-character img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.kody-character-avatar{background:linear-gradient(145deg,#f4edff,#e8faff);border:1px solid #6622cf1f;border-radius:15px;width:44px;height:44px;overflow:hidden;box-shadow:0 8px 20px #6622cf26}.kody-character-avatar img{width:78px;max-width:none;height:auto;position:absolute;top:2px;left:50%;transform:translate(-50%)}.kody-character-hero,.kody-character-celebration{filter:drop-shadow(0 18px 20px #431b7533);width:132px;height:182px}.public-nav-actions{align-items:center;gap:28px;display:flex}.nav-link,.nav-login{color:#68636e;font-size:13px;font-weight:700;text-decoration:none}.nav-login{color:#3b3542;text-align:center;background:#ffffffb3;border:1px solid #dcd6e4;border-radius:999px;min-width:94px;padding:11px 18px}.landing-hero{grid-template-columns:minmax(400px,.87fr) minmax(530px,1.13fr);align-items:center;gap:clamp(42px,6vw,90px);width:min(1220px,100% - 48px);min-height:calc(100dvh - 170px);margin:0 auto;padding:66px 0 78px;display:grid}.hero-copy{z-index:2;position:relative}.eyebrow{color:#675d70;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:9px;font-size:11px;font-weight:800;display:inline-flex}.eyebrow i{background:var(--green);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #2cc9701f}.hero-copy h1{letter-spacing:-.045em;margin:20px 0;font-family:Montserrat,Inter,sans-serif;font-size:clamp(42px,5vw,68px);line-height:1.02}.hero-copy h1 em{color:var(--purple);font-style:normal}.hero-lead{color:#6a6570;max-width:560px;margin:0;font-size:17px;line-height:1.65}.hero-signup{margin-top:34px}.hero-signup>label{color:#4f4857;margin:0 0 9px 3px;font-size:12px;font-weight:800;display:block}.phone-control{background:#ffffffe6;border:1px solid #ddd7e4;border-radius:17px;align-items:center;max-width:570px;min-height:62px;padding:6px 6px 6px 15px;display:flex;box-shadow:0 15px 40px #33234514}.phone-control>span{color:#4b4551;white-space:nowrap;border-right:1px solid #e6e1e9;padding-right:13px;font-size:13px;font-weight:700}.phone-control input{color:#25212d;background:0 0;border:0;outline:0;flex:1;min-width:0;padding:0 14px;font-size:15px}.phone-control input::placeholder{color:#aaa4b0}.phone-control button{color:#fff;background:linear-gradient(135deg,var(--purple),#7c3fe0);cursor:pointer;border:0;border-radius:12px;min-height:49px;padding:0 19px;font-size:13px;font-weight:800;box-shadow:0 8px 20px #6622cf38}.phone-control button span{margin-left:8px}.hero-signup small{color:#85808b;margin:11px 0 0 3px;font-size:11px;display:block}.hero-signup small b{color:var(--green)}.hero-product{perspective:1200px;min-width:0;position:relative}.hero-product>.kody-character-hero{z-index:3;width:145px;height:200px;position:absolute;bottom:-38px;left:-72px;transform:rotate(-4deg)}.preview-window{background:#fff;border:1px solid #43355317;border-radius:24px;overflow:hidden;transform:rotateY(-3deg)rotateX(1deg);box-shadow:0 35px 80px #442b5f26}.preview-top{color:#8b8790;border-bottom:1px solid #f0edf2;grid-template-columns:28px 1fr 28px;align-items:center;height:45px;padding:0 16px;font-size:15px;display:grid}.preview-top i{background:#ece9ee;border-radius:99px;justify-self:center;width:54%;height:5px}.preview-top i b{border-radius:inherit;background:var(--green);width:37%;height:100%;display:block}.preview-body{grid-template-columns:31% 69%;height:425px;display:grid}.preview-chat{background:#fcfbfd;border-right:1px solid #ece9ee;padding:20px 14px}.preview-kody{align-items:center;gap:9px;font-size:10px;display:flex}.preview-kody .kody-character-avatar{border-radius:10px;width:30px;height:30px}.preview-kody .kody-character-avatar img{width:52px}.preview-chat>p{color:#514b56;background:#fff;border:1px solid #e9e5ec;border-radius:13px 13px 13px 4px;margin:24px 0 5px;padding:12px;font-size:10px;line-height:1.5}.preview-chat>button{color:#837d88;background:0 0;border:0;padding:5px;font-size:8px;font-weight:700}.preview-thinking{color:#98929d;align-items:center;gap:4px;margin-top:125px;font-size:8px;display:flex}.preview-thinking i{background:#9f74e7;border-radius:50%;width:4px;height:4px}.preview-activity{flex-direction:column;align-items:center;padding:28px 28px 18px;display:flex}.preview-activity>span{color:var(--purple);letter-spacing:.12em;font-size:7px;font-weight:800}.preview-activity h2{margin:6px 0 5px;font-family:Montserrat,Inter,sans-serif;font-size:17px}.preview-activity .fraction-stage{flex:1;gap:9px;width:100%}.preview-activity .fraction-visual{width:185px}.preview-activity .fraction-controls{gap:5px}.preview-activity .fraction-controls button{border-radius:8px;width:30px;height:30px;font-size:9px}.preview-check{color:#25202c;background:var(--yellow);border:0;border-radius:10px;width:52%;min-height:34px;font-size:9px;font-weight:800}.floating-note{color:#4c4652;background:#fffffff2;border:1px solid #5c4a6d14;border-radius:12px;padding:11px 15px;font-size:10px;font-weight:800;position:absolute;box-shadow:0 13px 35px #3e2a521f}.note-one{top:44px;right:-18px}.note-two{bottom:40px;left:-28px}.trust-strip{border-top:1px solid #4f425b1f;grid-template-columns:repeat(3,1fr);width:min(1050px,100% - 48px);margin:-20px auto 50px;padding:24px 0;display:grid}.trust-strip article{border-right:1px solid #4f425b1a;gap:14px;padding:0 30px;display:flex}.trust-strip article:last-child{border:0}.trust-strip article>span{color:#b194e2;font-family:Montserrat,sans-serif;font-size:11px;font-weight:800}.trust-strip b{font-size:13px}.trust-strip p{color:#817b86;margin:4px 0 0;font-size:11px}.access-page{background:radial-gradient(circle at 80% 15%,#00ccfe21,#0000 25%),radial-gradient(circle at 12% 88%,#ffd24c2e,#0000 24%),#faf7fc;grid-template-rows:auto 1fr auto;place-items:center;min-height:100dvh;padding:30px;display:grid}.access-brand{justify-self:start}.access-card{text-align:center;background:#fffffff0;border:1px solid #4a3b5a17;border-radius:25px;width:min(440px,100%);padding:38px;box-shadow:0 28px 70px #3e28551f}.access-card>.kody-character-avatar{border-radius:22px;width:68px;height:68px;margin:0 auto 18px}.access-card>.kody-character-avatar img{width:112px;top:3px}.access-icon{color:#fff;background:var(--purple);border-radius:15px;place-items:center;width:48px;height:48px;margin:0 auto 18px;display:grid;box-shadow:0 10px 24px #6622cf38}.access-step{letter-spacing:.13em;font-weight:800;color:var(--purple)!important;margin:0 0 8px!important;font-size:9px!important}.access-card h1{letter-spacing:-.03em;margin:0;font-family:Montserrat,Inter,sans-serif;font-size:28px}.access-card>p{color:#76717b;max-width:330px;margin:12px auto 25px;font-size:13px;line-height:1.55}.access-card form{text-align:left}.access-card label{color:#4f4856;margin:0 0 8px 2px;font-size:11px;font-weight:800;display:block}.access-phone{background:#fff;border:1px solid #ded8e4;border-radius:14px;align-items:center;height:54px;display:flex}.access-phone span{border-right:1px solid #e7e2ea;padding:0 13px;font-size:13px;font-weight:700}.access-phone input{background:0 0;border:0;outline:0;flex:1;min-width:0;padding:0 13px;font-size:15px}.access-card form>button{color:#fff;background:linear-gradient(135deg,var(--purple),#7e42dd);cursor:pointer;border:0;border-radius:14px;width:100%;min-height:52px;margin-top:13px;font-size:13px;font-weight:800;box-shadow:0 10px 24px #6622cf33}.access-card form>button:disabled,.billing-button:disabled{opacity:.48;cursor:default;box-shadow:none}.access-card form>.text-action{color:#746d7b;min-height:36px;box-shadow:none;background:0 0;margin-top:6px}.otp-input{color:#2d2733;text-align:center;letter-spacing:.3em;background:#fff;border:1px solid #ded8e4;border-radius:14px;outline:0;width:100%;height:60px;padding:0 14px;font-family:Montserrat,Inter,sans-serif;font-size:25px;font-weight:800}.otp-input:focus,.access-phone:focus-within{border-color:#ae8cde;box-shadow:0 0 0 4px #6622cf14}.development-code{text-align:center;background:#f5f1fb;border-radius:8px;padding:7px;color:#635b69!important;margin:8px 0 0!important;font-size:10px!important}.access-error{background:#fff0ed;border-radius:10px;padding:9px 11px;color:#9c3f39!important;margin:13px 0 0!important;font-size:10px!important}.access-card>small{color:#96909a;margin-top:17px;font-size:9px;line-height:1.5;display:block}.access-help{color:#827c88;font-size:11px}.access-help a{color:var(--purple);font-weight:700}.subscription-loading{color:#77717d;font-size:13px}.subscription-card .access-icon{color:#3e2d05;background:var(--yellow)}.billing-note{background:#f5f2f8;border-radius:10px;padding:9px;margin:0 0 13px!important;font-size:10px!important}.billing-note.success{background:#eaf9f0;color:#16643c!important}.continue-tutor,.billing-button{cursor:pointer;border:0;border-radius:14px;place-items:center;width:100%;min-height:52px;margin-top:9px;font-size:13px;font-weight:800;text-decoration:none;display:grid}.continue-tutor{color:#25202c;background:var(--yellow)}.billing-button{color:#fff;background:linear-gradient(135deg,var(--purple),#7e42dd);box-shadow:0 10px 24px #6622cf33}.logout-link{color:#7e7784;cursor:pointer;background:0 0;border:0;font-size:11px;text-decoration:underline}.family-page{color:#292430;background:radial-gradient(circle at 85% 8%,#00ccfe1f,#0000 25%),radial-gradient(circle at 8% 92%,#ffd24c26,#0000 24%),#faf8fc;min-height:100dvh;padding:0 28px 48px}.family-header{justify-content:space-between;align-items:center;width:min(1180px,100%);height:88px;margin:0 auto;display:flex}.family-header>div{color:#817b86;align-items:center;gap:18px;font-size:10px;display:flex}.family-header button{color:#625b68;cursor:pointer;background:#ffffffb8;border:1px solid #e4dfe8;border-radius:999px;padding:9px 14px;font-size:10px;font-weight:750}.family-shell{background:#ffffffed;border:1px solid #4a3b5a14;border-radius:30px;width:min(1180px,100%);margin:0 auto;padding:46px;box-shadow:0 28px 75px #3e28551a}.family-heading{border-bottom:1px solid #eeeaf1;justify-content:space-between;align-items:center;min-height:180px;padding:10px 8px 34px;display:flex}.family-heading>div{max-width:690px}.family-heading h1{letter-spacing:-.045em;margin:9px 0 12px;font:800 clamp(29px,4vw,47px)/1.08 Montserrat,Inter,sans-serif}.family-heading p{color:#77717b;margin:0;font-size:13px;line-height:1.55}.family-heading>.kody-character-hero{width:100px;height:135px;margin-right:42px}.family-eyebrow,.family-profiles header span{color:var(--purple);letter-spacing:.15em;font-size:8px;font-weight:850}.family-notice{color:#655e6a;background:#f4f1f7;border-radius:12px;margin:20px 0 0;padding:12px 15px;font-size:10px}.family-notice.success{color:#18613d;background:#eaf8ef}.family-notice.error{color:#9c3f39;background:#fff0ed}.family-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,.72fr);gap:42px;padding-top:34px;display:grid}.family-profiles header{justify-content:space-between;align-items:start;gap:20px;min-height:48px;display:flex}.family-profiles h2,.family-membership h2{letter-spacing:-.03em;margin:5px 0 0;font:800 20px/1.2 Montserrat,Inter,sans-serif}.family-profiles header a{color:var(--purple);background:var(--purple-soft);border-radius:999px;padding:9px 13px;font-size:9px;font-weight:800;text-decoration:none}.family-profile-list{gap:10px;margin-top:16px;display:grid}.family-profile-list>button{color:#322c38;text-align:left;cursor:pointer;background:#fcfbfd;border:1px solid #e9e4ed;border-radius:19px;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:88px;padding:12px 16px 12px 12px;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid}.family-profile-list>button:hover{background:#fff;border-color:#c9b5e6;transform:translateY(-1px);box-shadow:0 12px 28px #462d5c14}.family-profile-list>button:disabled{opacity:.52;cursor:default;box-shadow:none;transform:none}.family-profile-list .learner-avatar{border-radius:18px;width:62px;height:62px}.family-profile-list>button>span{flex-direction:column;gap:5px;min-width:0;display:flex}.family-profile-list b{font-size:13px}.family-profile-list small{color:#817a86;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.family-profile-list em{color:var(--purple);white-space:nowrap;align-items:center;gap:10px;font-size:9px;font-style:normal;font-weight:800;display:flex}.family-profile-list em i{color:#fff;background:var(--purple);border-radius:50%;place-items:center;width:28px;height:28px;font-style:normal;display:grid}.family-empty{text-align:center;background:#fcfbfd;border:1px dashed #ddd4e5;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;min-height:235px;margin-top:16px;padding:30px;display:flex}.family-empty .learner-avatar{border-radius:19px;width:64px;height:64px}.family-empty h3{margin:12px 0 6px;font-size:14px}.family-empty p{color:#817a86;margin:0;font-size:10px}.family-empty a{color:#fff;background:var(--purple);border-radius:999px;margin-top:16px;padding:11px 19px;font-size:9px;font-weight:800;text-decoration:none}.family-membership{background:linear-gradient(160deg,#fbf8ff,#fff);border:1px solid #e7e0ec;border-radius:23px;align-self:start;padding:28px}.membership-status{color:#167446;letter-spacing:.04em;background:#eaf8ef;border-radius:999px;align-items:center;gap:7px;padding:7px 10px;font-size:8px;font-weight:850;display:inline-flex}.membership-status i{background:#27bd70;border-radius:50%;width:6px;height:6px}.membership-status.expired{color:#8b5e15;background:#fff4dc}.membership-status.expired i{background:#e7a92c}.family-membership h2{margin-top:17px;font-size:23px}.family-membership>p{color:#77717b;margin:11px 0 18px;font-size:11px;line-height:1.6}.family-membership .billing-button{margin-top:0}.family-membership>small{color:#97919b;margin-top:14px;font-size:8px;line-height:1.5;display:block}@media (width<=980px){.landing-hero{text-align:center;grid-template-columns:1fr;padding-top:42px}.hero-lead,.phone-control{margin-inline:auto}.hero-signup>label,.hero-signup small{text-align:left;max-width:570px;margin-inline:auto}.hero-product{text-align:left;width:min(680px,100%);margin:0 auto}}@media (width<=620px){.public-nav{width:calc(100% - 30px);height:70px}.public-brand{font-size:15px}.public-nav-actions{gap:9px}.nav-link{display:none}.nav-login{min-width:78px;padding:9px 14px}.landing-hero{gap:55px;width:calc(100% - 30px);min-height:0;padding:40px 0 65px}.hero-copy h1{margin-top:17px;font-size:clamp(37px,12vw,52px)}.hero-lead{font-size:15px}.phone-control{flex-wrap:wrap;gap:8px;padding:10px}.phone-control>span{width:88px}.phone-control input{width:calc(100% - 96px);min-height:40px}.phone-control button{width:100%}.preview-body{grid-template-columns:1fr;height:375px}.hero-product>.kody-character-hero,.preview-chat{display:none}.preview-activity{padding:22px 15px 14px}.preview-activity .fraction-visual{width:175px}.floating-note{font-size:9px}.note-one{right:-5px}.note-two{bottom:22px;left:-5px}.trust-strip{grid-template-columns:1fr;width:calc(100% - 30px);margin-top:0}.trust-strip article{border-bottom:1px solid #4f425b1a;border-right:0;padding:17px 4px}.access-page{padding:20px 15px}.access-card{padding:32px 20px}.family-page{padding:0 14px 26px}.family-header{height:72px}.family-header>div>span{display:none}.family-shell{border-radius:23px;padding:24px 17px 20px}.family-heading{min-height:0;padding:8px 3px 24px}.family-heading>.kody-character-hero{flex:0 0 62px;width:62px;height:88px;margin:0 3px 0 14px}.family-heading h1{font-size:28px}.family-heading p{font-size:10px}.family-grid{grid-template-columns:1fr;gap:25px;padding-top:24px}.family-profiles header{align-items:center}.family-profiles h2{font-size:17px}.family-profile-list>button{grid-template-columns:56px minmax(0,1fr) 28px;gap:10px;min-height:82px;padding:11px}.family-profile-list .learner-avatar{width:56px;height:56px}.family-profile-list em{font-size:0}.family-profile-list em i{font-size:11px}.family-profile-list small{max-width:190px}.family-membership{padding:23px 20px}}.learning-shell{background:var(--surface);width:min(1360px,100%);height:min(850px,100dvh - clamp(28px,6.4vw,84px));min-height:0;box-shadow:var(--shadow);border:1px solid #261f300d;border-radius:28px;grid-template:68px minmax(0,1fr)/minmax(286px,25%) minmax(0,1fr);transition:grid-template-columns .28s cubic-bezier(.2,.72,.25,1);display:grid;position:relative;overflow:hidden}.topbar{border-bottom:1px solid #f3f1f5;grid-column:1/-1;grid-template-columns:48px minmax(150px,1fr) auto;align-items:center;gap:22px;padding:0 22px;display:grid}.icon-button{color:#7d7c86;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:42px;height:42px;font-size:24px;display:grid}.icon-button:hover,.icon-button:focus-visible{color:var(--ink);background:#f5f3f7;outline:none}.top-actions{justify-content:flex-end;align-items:center;gap:7px;display:flex}.settings-trigger svg{fill:none;stroke:currentColor;stroke-width:1.55px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.time-budget{color:#5d5564;text-align:center;font-variant-numeric:tabular-nums;background:#f4f1f6;border-radius:999px;min-width:66px;padding:7px 10px;font-size:10px;font-weight:800}.time-budget.is-finished{color:#8e413b;background:#fff0ed}.progress-track{background:#f0eff2;border-radius:999px;justify-self:center;width:min(480px,62%);height:7px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg,#27cb71,#55d98f);height:100%;transition:width .3s;display:block}.chat-panel{z-index:3;border-right:1px solid var(--line);background:#fcfbfd;flex-direction:column;min-width:0;min-height:0;padding:22px 18px 18px;transition:opacity .2s,padding .28s,border-color .2s;display:flex;position:relative}.chat-heading{align-items:center;gap:11px;padding:0 3px 18px;display:flex}.chat-heading .kody-character-avatar{flex-basis:44px;width:44px;height:44px}.chat-heading strong{font-family:Montserrat,Inter,sans-serif;font-size:14px;display:block}.chat-heading small{color:var(--muted);margin-top:2px;font-size:11px;display:block}.chat-close{color:#7b7781;cursor:pointer;background:#f1eff3;border:0;border-radius:50%;flex:0 0 32px;place-items:center;width:32px;height:32px;margin-left:auto;font-size:19px;line-height:1;display:grid}.chat-close:hover,.chat-close:focus-visible{color:var(--purple);background:var(--purple-soft);outline:0}.kody-mark{background:linear-gradient(135deg, var(--purple), #8d5ce8);border-radius:13px 18px;flex:0 0 42px;place-items:center;width:42px;height:42px;display:grid;position:relative;transform:rotate(45deg);box-shadow:0 7px 20px #6622cf38}.kody-mark span{color:#fff;font-family:Montserrat,sans-serif;font-size:19px;font-weight:800;transform:rotate(-45deg)}.learner-avatar{background:linear-gradient(145deg,#fff,#f2ecfb);border-radius:19px;flex:0 0 56px;place-items:center;width:56px;height:56px;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 22px #452a5b1c}.learner-avatar img{object-fit:contain;filter:drop-shadow(0 5px 7px #371e5021);width:92%;height:92%;display:block}.message-list{overscroll-behavior:contain;scrollbar-width:thin;flex-direction:column;flex:auto;gap:12px;min-height:0;padding:5px 3px 18px;display:flex;overflow-y:auto}.message{width:fit-content;max-width:94%;animation:.22s ease-out message-in}.message p{border:1px solid var(--line);background:#fff;border-radius:15px 15px 15px 5px;margin:0;padding:11px 13px;font-size:13px;line-height:1.45;box-shadow:0 5px 15px #1c192209}.message.learner{align-self:flex-end}.message.learner p{background:var(--purple-soft);border-color:#e3d5ff;border-radius:15px 15px 5px}.message.tutor.is-listenable{cursor:pointer;outline:none}.message.tutor.is-listenable p{transition:color .18s,border-color .18s,background .18s,box-shadow .18s,transform .18s}.message.tutor.is-listenable:hover p,.message.tutor.is-listenable:focus-visible p{background:#faf6ff;border-color:#cdb5f6;box-shadow:0 7px 20px #6622cf17}.message.tutor.is-playing p{color:#5620a7;background:linear-gradient(135deg,#f2e9ff,#fbf8ff);border-color:#aa7ce9;transform:translateY(-1px);box-shadow:0 0 0 3px #6622cf1a,0 9px 24px #6622cf1f}.thinking{color:#8a8790;align-items:center;gap:4px;padding:8px 5px;font-size:11px;display:flex}.thinking span{background:#9d79db;border-radius:50%;width:5px;height:5px;animation:1.1s ease-in-out infinite pulse}.thinking span:nth-child(2){animation-delay:.13s}.thinking span:nth-child(3){margin-right:4px;animation-delay:.26s}.chat-input{border:1px solid var(--line);background:#fff;border-radius:15px;align-items:center;gap:8px;min-height:47px;padding:6px 6px 6px 14px;display:flex}.chat-input:focus-within{border-color:#bda2ec;box-shadow:0 0 0 3px #6622cf14}.chat-input input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:12px}.chat-input input::placeholder{color:#aaa8b1}.chat-input button{color:#fff;background:var(--purple);cursor:pointer;border:0;border-radius:11px;flex:0 0 34px;width:34px;height:34px;font-size:17px;font-weight:800}.chat-input button:disabled{opacity:.35;cursor:default}.chat-input .voice-button{color:var(--purple);background:#f1eaff;place-items:center;display:grid}.chat-input .voice-button svg{width:19px;height:19px;display:block}.chat-input .voice-button.is-listening{color:#fff;background:#d84b73;animation:1.15s ease-in-out infinite voice-pulse}.chat-input.is-recording{background:linear-gradient(135deg,#242426,#38383a);border-color:#4a4850;border-radius:999px;gap:7px;min-width:0;padding:5px;box-shadow:0 8px 22px #16141933}.chat-input.is-recording:focus-within{border-color:#4a4850;box-shadow:0 8px 22px #16141933}.chat-input .voice-record-cancel,.chat-input .voice-record-send{border-radius:50%;flex:0 0 36px;place-items:center;width:36px;height:36px;display:grid}.chat-input .voice-record-cancel{color:#fff;background:#66666a;font-size:22px;font-weight:400}.chat-input .voice-record-send{color:#fff;background:linear-gradient(145deg,#3dc1bf,#6ccfc2);font-size:20px}.voice-record-wave{flex:1;justify-content:space-around;align-items:center;gap:2px;min-width:0;height:34px;display:flex;overflow:hidden}.voice-record-wave i{transform-origin:50%;background:linear-gradient(#b9da68,#45bdbb);border-radius:999px;width:3px;min-width:2px;max-height:29px;animation:.78s ease-in-out infinite alternate voice-wave;display:block}.chat-error{color:#a84646;margin:8px 4px 0;font-size:10px;line-height:1.3}.activity-panel{background:#fff;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;padding:clamp(18px,2.5vw,34px);display:grid;overflow:hidden}.activity-copy{text-align:center}.activity-copy span{color:var(--purple);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:800}.activity-copy h1{color:#25232b;margin:7px 0 0;font-family:Montserrat,Inter,sans-serif;font-size:clamp(17px,2vw,25px);font-weight:700}.visually-hidden{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.instruction-replay{color:#7137df;cursor:pointer;background:#fff;border:1px solid #ddd8e8;border-radius:50%;place-items:center;width:36px;height:36px;margin:7px auto 0;font-size:16px;display:grid;box-shadow:0 6px 16px #4f2f7d14}.instruction-replay:hover{background:#f8f4ff;border-color:#8a52ee}.activity-stage{contain:layout size;place-items:center;min-width:0;max-width:100%;min-height:0;max-height:100%;padding:16px 0;display:grid;position:relative;overflow:hidden}.time-limit-card{z-index:5;text-align:center;background:#fffffff7;border:1px solid #e7dff0;border-radius:24px;flex-direction:column;align-items:center;width:min(430px,100% - 28px);padding:30px;display:flex;box-shadow:0 24px 65px #30203e26}.activity-stage>.time-limit-card{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.time-limit-card .kody-character-avatar{width:68px;height:68px;margin-bottom:10px}.time-limit-card h2{letter-spacing:-.035em;margin:4px 0 8px;font:800 24px Montserrat,Inter,sans-serif}.time-limit-card p{color:#766f7b;margin:0;font-size:12px;line-height:1.55}.time-limit-card a{color:#fff;background:var(--purple);border-radius:999px;margin-top:20px;padding:12px 23px;font-size:11px;font-weight:800;text-decoration:none}.diagnostic-time-limit{place-self:center}.time-context-warning{z-index:12;color:#72520d;text-align:center;background:#fff8e7;border:1px solid #f0d49d;border-radius:12px;width:min(480px,100% - 28px);padding:11px 15px;font-size:10px;font-weight:700;position:absolute;top:78px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #3e2d121a}.tool-frame{background:#fff;border:0;border-radius:19px;width:100%;max-width:100%;height:100%;max-height:100%}.fraction-stage{grid-template-rows:minmax(0,1fr) auto;justify-items:center;gap:14px;width:min(560px,86%);height:100%;max-height:100%;display:grid;overflow:hidden}.fraction-visual{aspect-ratio:1;width:auto;max-width:100%;height:min(100%,330px)}.fraction-visual svg{filter:drop-shadow(0 14px 22px #37254f14);width:100%;height:100%;overflow:visible}.fraction-visual polygon{fill:#fff;stroke:#312b3b;stroke-width:1.15px;cursor:pointer;transform-box:fill-box;transform-origin:50%;transition:fill .17s,stroke .17s,filter .17s,transform .17s}.fraction-visual polygon:hover{fill:#f5efff;transform:scale(.985)}.fraction-visual polygon.is-selected{fill:#a875ed;stroke:#5b23aa}.fraction-visual .is-highlighted polygon{stroke:#ffae16;stroke-width:2.1px;filter:drop-shadow(0 0 4px #ffae168c)}.fraction-visual text{fill:#51495e;text-anchor:middle;pointer-events:none;font-size:6px;font-weight:800}.fraction-visual polygon.is-selected+text{fill:#fff}.fraction-controls{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.fraction-controls button{color:#4f4a56;cursor:pointer;background:#fff;border:1px solid #dedbe3;border-radius:12px;width:44px;height:44px;font-weight:800;transition:all .16s}.fraction-controls button:hover{background:#faf7ff;border-color:#ad8fdf}.fraction-controls button.active{border-color:var(--purple);color:#fff;background:var(--purple);box-shadow:0 6px 16px #6622cf33}.attribute-activity{align-content:center;justify-items:center;width:min(690px,94%);height:min(100%,320px);max-height:100%;display:grid;overflow:hidden}.attribute-grid{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;height:100%;display:grid}.attribute-grid button{color:#6d36d0;cursor:pointer;background:linear-gradient(145deg,#fffffffa,#f7f4fbeb);border:2px solid #5c487417;border-radius:23px;place-items:center;min-width:0;min-height:0;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 24px #33244312,inset 0 1px #fff}.attribute-grid button:hover,.attribute-grid button:focus-visible{background:#fff;border-color:#d8c8ef;outline:0;transform:translateY(-3px);box-shadow:0 14px 30px #3d2a4d17}.attribute-grid button.is-selected{border-color:var(--purple);background:linear-gradient(145deg,#fff,#f5edff);box-shadow:0 12px 27px #6622cf21}.attribute-grid button.is-highlighted{animation:1.15s ease-in-out infinite alternate attribute-glow}.attribute-grid button>i{opacity:0;color:#fff;background:var(--purple);border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-style:normal;transition:opacity .16s,transform .16s;display:grid;position:absolute;top:9px;right:9px;transform:scale(.7);box-shadow:0 5px 12px #6622cf40}.attribute-grid button.is-selected>i{opacity:1;transform:scale(1)}.attribute-shape{filter:drop-shadow(0 10px 12px #32263d24);width:90px;height:90px;transition:transform .16s;overflow:visible}.attribute-grid button:hover .attribute-shape{transform:scale(1.04)}.attribute-shape.size-small{width:64px;height:64px}.attribute-shape.color-purple{color:#7d38dc}.attribute-shape.color-blue{color:#3475dd}.attribute-shape.color-yellow{color:#f4b923}.attribute-shape.color-cyan{color:#16b9c8}.attribute-shape.color-pink{color:#e85da7}.attribute-grid.layout-orbit{background:radial-gradient(#6f3ddc0e,#0000 62%);border-radius:32px;grid-template-rows:repeat(2,minmax(84px,1fr));grid-template-columns:repeat(8,minmax(0,1fr));gap:10px 8px;min-height:188px;position:relative}.attribute-grid.layout-orbit button{aspect-ratio:1;background:linear-gradient(145deg,#fffffffc,#f6f2fbf0);border-radius:30px;place-self:center;width:min(100%,126px);height:auto;position:relative}.attribute-grid.layout-orbit button:first-child{grid-area:1/1/auto/3}.attribute-grid.layout-orbit button:nth-child(2){grid-area:1/3/auto/5}.attribute-grid.layout-orbit button:nth-child(3){grid-area:1/5/auto/7}.attribute-grid.layout-orbit button:nth-child(4){grid-area:1/7/auto/9}.attribute-grid.layout-orbit button:nth-child(5){grid-area:2/2/auto/4}.attribute-grid.layout-orbit button:nth-child(6){grid-area:2/4/auto/6}.attribute-grid.layout-orbit button:nth-child(7){grid-area:2/6/auto/8}.attribute-grid.layout-trail{background:linear-gradient(165deg,#0000 25%,#6343b31a 25.5% 26%,#0000 26.5% 73%,#6343b31a 73.5% 74%,#0000 74.5%);grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));column-gap:18px;position:relative}.attribute-grid.layout-trail button:nth-child(2n){transform:translateY(10px)}.attribute-grid.layout-trail button:nth-child(odd){transform:translateY(-8px)}.attribute-grid.layout-trail button:hover,.attribute-grid.layout-trail button:focus-visible{transform:translateY(-4px)scale(1.02)}.attribute-grid.layout-shelves{background:linear-gradient(#0000 47%,#e1d9ec 47.5% 49%,#0000 49.5% 96%,#e1d9ec 96.5% 98%,#0000 98.5%);padding:4px 8px}.attribute-grid.layout-shelves button{background:linear-gradient(#fff,#faf8fc);border-radius:16px 16px 8px 8px}.attribute-grid.layout-constellation{background:radial-gradient(circle at 18% 22%,#c9b8ff 0 2px,#0000 3px),radial-gradient(circle at 72% 18%,#8edff0 0 2px,#0000 3px),radial-gradient(circle at 50% 78%,#ffd56f 0 2px,#0000 3px);grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 18px}.attribute-grid.layout-constellation button{background:#ffffffbd;border-color:#ece7f2;border-radius:50%}.attribute-grid.layout-constellation button:nth-child(2),.attribute-grid.layout-constellation button:nth-child(6){transform:translateY(12px)}.attribute-grid.layout-constellation button:nth-child(4){transform:translateY(-8px)}.logic-choice-activity{align-content:center;gap:22px;width:min(760px,96%);height:min(100%,360px);display:grid;overflow:hidden}.logic-rule-examples{background:linear-gradient(145deg,#fff,#faf7ff);border:1px solid #e4dfeb;border-radius:24px;justify-content:center;align-items:center;gap:20px;width:min(430px,80%);margin:0 auto;padding:12px 18px;display:flex}.logic-rule-examples>div{place-items:center;width:82px;height:82px;display:grid}.logic-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.logic-choice-grid button{min-width:0;min-height:132px;color:var(--ink);cursor:pointer;background:#ffffffd6;border:2px solid #e2dce9;border-radius:24px;align-content:center;place-items:center;gap:12px;padding:16px 12px;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;display:grid;position:relative}.logic-choice-grid button:hover,.logic-choice-grid button:focus-visible{border-color:#cdb9ec;outline:0;transform:translateY(-3px);box-shadow:0 14px 30px #3d2a4d17}.logic-choice-grid button.is-selected{border-color:var(--purple);background:linear-gradient(145deg,#fff,#f4ecff);box-shadow:0 12px 27px #6622cf21}.logic-choice-grid button.is-highlighted{animation:1.15s ease-in-out infinite alternate attribute-glow}.logic-choice-grid button>strong{font-size:14px;line-height:1.25}.logic-choice-grid button>i{opacity:0;color:#fff;background:var(--purple);border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-style:normal;transition:opacity .16s,transform .16s;display:grid;position:absolute;top:10px;right:10px;transform:scale(.7)}.logic-choice-grid button.is-selected>i{opacity:1;transform:scale(1)}.logic-rule-mark{color:#7650df;background:linear-gradient(145deg,#eee8ff,#fff);border-radius:16px;place-items:center;width:52px;height:52px;font-size:31px;display:grid}.relation-diagram{width:96px;height:54px;display:block;position:relative}.relation-diagram b,.relation-diagram i{background:#7c50df1a;border:3px solid #7750df;border-radius:50%;width:50px;height:50px;position:absolute}.relation-diagram b{top:2px;left:8px}.relation-diagram i{top:2px;right:8px}.relation-diagram.nested b{width:82px;left:7px}.relation-diagram.nested i{background:#21be8433;border-color:#22b982;width:30px;height:30px;top:13px;right:24px}.relation-diagram.overlap b{left:8px}.relation-diagram.overlap i{right:8px}.relation-diagram.separate b{left:0}.relation-diagram.separate i{right:0}.logic-complete-card{text-align:center;flex-direction:column;align-items:center;width:min(440px,100% - 20px);display:flex}.logic-complete-card .kody-character-celebration{width:105px;height:140px}.logic-complete-card>span{color:var(--purple);letter-spacing:.14em;margin-top:4px;font-size:9px;font-weight:850}.logic-complete-card h2{letter-spacing:-.04em;margin:8px 0;font:800 clamp(25px,3vw,36px) Montserrat,Inter,sans-serif}.logic-complete-card p{color:#77707c;margin:0;font-size:12px;line-height:1.55}.logic-complete-card a{color:#fff;background:var(--purple);border-radius:999px;margin-top:20px;padding:13px 24px;font-size:11px;font-weight:800;text-decoration:none}.activity-exit{border-radius:999px;place-items:center;min-height:44px;padding:0 27px;font-size:12px;font-weight:800;text-decoration:none;display:grid}@keyframes attribute-glow{0%{border-color:#d7c5ed;box-shadow:0 0 #6622cf0f}to{border-color:#8a51dc;box-shadow:0 0 0 6px #6622cf17}}.route-overview-page{background:radial-gradient(at 10% 4%,#7748dc1f,#0000 34%),radial-gradient(at 91% 7%,#ffd24c1f,#0000 31%),radial-gradient(at 88% 94%,#00ccfe1a,#0000 35%),radial-gradient(at 13% 92%,#8e53e20e,#0000 30%),#fff;place-items:stretch stretch;padding:0}.route-overview-shell{width:100%;height:100dvh;min-height:650px;box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-rows:90px 58px auto minmax(0,1fr) 130px;display:grid;overflow:hidden}.route-overview-nav{align-items:center;padding:0 clamp(34px,5vw,76px);display:flex}.route-overview-topbar{border-bottom:1px solid #f1eef3;grid-template-columns:70px 1fr 70px;align-items:center;padding:0 28px;display:grid}.route-overview-topbar>button{color:#77717e;cursor:pointer;background:0 0;border:0;border-radius:50%;width:42px;height:42px;font-size:27px}.route-overview-topbar>button:hover{color:var(--purple);background:var(--purple-soft)}.route-overview-profile{justify-self:center;align-items:center;gap:9px;display:flex}.route-overview-profile .learner-avatar{border-radius:13px;flex-basis:39px;width:39px;height:39px}.route-overview-profile b,.route-overview-profile small{display:block}.route-overview-profile b{font-size:11px}.route-overview-profile small{color:#918b95;margin-top:2px;font-size:8px}.route-overview-percent{color:#169854;justify-self:end;font:800 12px Montserrat,Inter,sans-serif}.route-overview-intro{text-align:center;padding:0 34px 18px}.route-overview-eyebrow{color:#878392;letter-spacing:.17em;font-size:9px;font-weight:850}.route-overview-intro h1{letter-spacing:-.045em;margin:12px 0 7px;font:800 clamp(31px,3.5vw,46px) Montserrat,Inter,sans-serif}.route-overview-intro>p{color:#797783;max-width:590px;margin:0 auto;font-size:13px;line-height:1.55}.route-overview-total{width:min(430px,80%);margin:20px auto 0}.route-overview-total>i{background:#e9edf0;border-radius:999px;height:6px;display:block;overflow:hidden}.route-overview-total>i span{border-radius:inherit;background:linear-gradient(90deg,#22ba69,#52d98e);height:100%;display:block}.route-overview-total small{color:#777582;margin-top:8px;font-size:9px;font-weight:700;display:block}.logic-map{grid-template-columns:245px minmax(0,1fr);align-items:center;gap:clamp(38px,5vw,72px);width:min(1080px,100% - 70px);min-height:0;margin:0 auto;padding:8px 0 12px;display:grid;overflow:auto}.logic-map-current{text-align:center}.logic-map-orbit{background:radial-gradient(circle,#ffffffeb 0 46%,#7b4cdd14 47% 70%,#0000 71%);border-radius:50%;place-items:center;width:154px;height:154px;margin:0 auto 14px;display:grid;position:relative}.logic-map-orbit:before{content:"";background:linear-gradient(145deg,#712fde14,#00ccfe0a);border-radius:50%;position:absolute;inset:0}.logic-map-orbit:after{content:none}.logic-map-orbit .learner-avatar{filter:drop-shadow(0 13px 15px #42246b29);border-radius:34px;width:104px;height:104px}.logic-map-current>span{color:#858090;letter-spacing:.17em;text-transform:uppercase;font-size:9px;font-weight:850}.logic-map-current h2{letter-spacing:-.035em;max-width:220px;margin:10px auto 6px;font:800 22px/1.22 Montserrat,Inter,sans-serif}.logic-map-current p{color:#7d7986;margin:0;font-size:11px}.logic-map-current>i{background:#e9edf0;border-radius:999px;width:164px;height:6px;margin:14px auto 0;display:block;overflow:hidden}.logic-map-current>i span{border-radius:inherit;background:linear-gradient(90deg,#22ba69,#52d98e);height:100%;display:block}.mastery-state{color:#766f7b;letter-spacing:.04em;background:#f5f3f6;border-radius:999px;width:max-content;margin:8px auto 0;padding:5px 9px;font-size:7px;font-weight:800;display:block}.mastery-state.is-autonomous,.mastery-state.is-consolidated{color:#147a43;background:#eaf8f0}.logic-map ol{gap:17px;margin:0;padding:0;list-style:none;display:grid;position:relative}.logic-map li{grid-template-columns:155px minmax(0,1fr);align-items:center;gap:21px;min-height:53px;display:grid;position:relative}.logic-family-label{text-align:right}.logic-family-label b,.logic-family-label small{display:block}.logic-family-label b{color:#292936;font-size:12px}.logic-family-label small{color:#888593;margin-top:4px;font-size:9px}.logic-family-path{--path-progress:0%;z-index:2;direction:ltr;grid-template-columns:repeat(6,minmax(34px,1fr));align-items:center;min-width:0;display:grid;position:relative}.logic-map li.is-reverse .logic-family-path{direction:rtl}.logic-family-path:before,.logic-family-path:after{content:"";z-index:-1;background:#d9d9e2;border-radius:999px;width:83.3333%;height:3px;position:absolute;top:50%;left:8.33333%;transform:translateY(-50%)}.logic-family-path:after{width:var(--path-progress);background:#27bd6d}.logic-map li.is-reverse .logic-family-path:after{left:auto;right:8.33333%}.logic-family-path>span{justify-self:center;place-items:center;display:grid}.logic-family-path i{color:#74727f;background:#ffffffc2;border:1.5px solid #b9b8c5;border-radius:50%;place-items:center;width:42px;height:42px;font-size:11px;font-style:normal;font-weight:800;display:grid;box-shadow:0 2px #30263906}.logic-family-path .is-current i{color:#fff;background:linear-gradient(145deg,#8b53ed,#6530d7);border:7px solid #e4d8ff;width:50px;height:50px;box-shadow:0 9px 22px #6630d745}.logic-family-path .is-completed i{color:#fff;background:#27bd6d;border-color:#27bd6d}.logic-turn{z-index:1;pointer-events:none;border:3px solid #d9d9e2;border-left:0;border-radius:0 999px 999px 0;width:20px;height:calc(100% + 17px);position:absolute;top:50%;right:calc(8.33333% - 34.6667px)}.logic-map li.is-reverse .logic-turn{border:3px solid #d9d9e2;border-right:0;border-radius:999px 0 0 999px;left:calc(8.33333% + 141.333px);right:auto}.logic-map li.is-complete-family .logic-turn{border-color:#27bd6d}.route-overview-footer{border-top:0;flex-direction:column;justify-content:flex-start;align-items:center;gap:15px;padding:10px 34px 22px;display:flex}.route-overview-footer>button{color:#fff;cursor:pointer;background:linear-gradient(120deg,#222,#3a3a3a);border:0;border-radius:999px;justify-content:center;align-items:center;gap:20px;min-width:345px;min-height:66px;padding:0 30px;font-size:16px;font-weight:850;display:flex;box-shadow:0 13px 28px #19191c2e}.route-overview-footer>button:hover{transform:translateY(-1px)}.route-overview-footer>button span{font-size:22px}.activity-footer{border-top:1px solid #f0eef2;grid-template-columns:minmax(0,1fr) minmax(180px,auto) minmax(0,1fr);align-items:center;gap:18px;padding-top:15px;display:grid}.feedback{min-height:22px;color:var(--muted);text-align:center;grid-column:2;font-size:12px;line-height:1.45}.feedback.success{color:#147a43;font-weight:700}.feedback.error{color:#aa4c38}.activity-buttons{grid-column:3;justify-self:end;gap:9px;display:flex}.activity-buttons button{cursor:pointer;border-radius:13px;min-height:44px;padding:0 22px;font-size:12px;font-weight:800}.secondary-action{color:#3f3b46;background:#f5f4f6;border:1px solid #dedbe3}.primary-action{color:#19151f;background:linear-gradient(180deg, #ffdb63, var(--yellow));border:0;min-width:150px;box-shadow:0 7px 17px #e1ae1536}.primary-action:disabled{color:#929098;box-shadow:none;cursor:default;background:#e7e6e9}.primary-action.awaiting-reply{color:#fff;background:linear-gradient(135deg,#6622cf,#8b4be1);box-shadow:0 8px 20px #6622cf38}.secondary-action:hover,.secondary-action:focus-visible,.primary-action:hover,.primary-action:focus-visible{outline:none;transform:translateY(-1px)}.mobile-chat-trigger,.chat-backdrop,.desktop-chat-trigger{display:none}.boot-screen{min-height:100dvh;color:var(--muted);background:#f8f5fb;place-content:center;justify-items:center;gap:14px;display:grid}.boot-screen .kody-character-avatar{border-radius:23px;width:72px;height:72px}.boot-screen .kody-character-avatar img{width:120px}.boot-mark{color:#fff;background:var(--purple);border-radius:18px;place-items:center;width:55px;height:55px;font-family:Montserrat,sans-serif;font-weight:800;display:grid;transform:rotate(45deg)}.boot-screen p{margin:0;font-size:14px}.error-screen button{color:#fff;background:var(--purple);border:0;border-radius:12px;min-height:44px;padding:0 18px;font-weight:700}@keyframes pulse{0%,70%,to{opacity:.28;transform:translateY(0)}35%{opacity:1;transform:translateY(-2px)}}@keyframes message-in{0%{opacity:0;transform:translateY(4px)}}@keyframes voice-wave{0%{opacity:.6;transform:scaleY(.35)}45%{opacity:1;transform:scaleY(1)}to{opacity:.72;transform:scaleY(.58)}}@media (width>=768px){.learning-shell.chat-collapsed{grid-template-columns:0 minmax(0,1fr)}.learning-shell.chat-collapsed .chat-panel{opacity:0;pointer-events:none;border-right-color:#0000;padding-inline:0;overflow:hidden}.learning-shell.chat-collapsed .desktop-chat-trigger{z-index:5;color:#4b4552;cursor:pointer;background:#fffffff5;border:1px solid #ded5ea;border-radius:50%;place-items:center;width:66px;height:66px;padding:5px;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid;position:absolute;bottom:20px;left:18px;box-shadow:0 12px 30px #34234629}.learning-shell.chat-collapsed .desktop-chat-trigger:hover,.learning-shell.chat-collapsed .desktop-chat-trigger:focus-visible{border-color:#bca1eb;outline:0;transform:translateY(-2px);box-shadow:0 14px 30px #4a26732e}.desktop-chat-trigger .kody-character-avatar{border-radius:50%;flex-basis:54px;width:54px;height:54px}.desktop-chat-trigger .kody-character-avatar img{width:86px}.desktop-chat-trigger.awaiting-reply{animation:1.15s ease-in-out infinite voice-pulse;border:3px solid #8e54ed!important}}@media (width<=900px){.learning-shell{grid-template-columns:260px minmax(0,1fr)}.activity-panel{padding-inline:20px}.activity-footer{grid-template-columns:1fr;gap:10px}.feedback{grid-column:1}.activity-buttons{grid-column:1;justify-content:flex-end;justify-self:end}}@media (height<=760px) and (width>=768px){.learning-shell{grid-template-rows:58px minmax(0,1fr);min-height:0}.topbar{padding-inline:18px}.chat-panel{padding-block:18px 15px}.activity-panel{padding-block:18px}.activity-stage{padding-block:8px}.fraction-stage{gap:12px}.fraction-visual{width:min(250px,56%)}.fraction-controls button{width:38px;height:38px}.activity-footer{padding-top:10px}}@media (width<=767px){body{overflow:hidden}.tutor-page{background:#fff;place-items:stretch stretch;padding:0}.learning-shell{width:100%;height:100dvh;min-height:0;box-shadow:none;border:0;border-radius:0;grid-template:56px minmax(0,1fr)/1fr}.topbar{grid-area:1/1;grid-template-columns:40px 1fr auto;gap:8px;padding:0 10px}.icon-button{width:40px;height:40px}.progress-track{width:74%}.time-budget{min-width:56px;padding-inline:7px;font-size:9px}.top-actions .icon-button{display:none}.top-actions .settings-trigger{display:grid}.activity-panel{grid-area:2/1;padding:14px 14px 10px}.activity-copy span{display:none}.activity-copy h1{margin-top:0;font-size:clamp(16px,4.6vw,20px)}.activity-stage{padding:8px 0}.fraction-stage{gap:8px;width:100%;height:100%}.fraction-visual{width:auto;max-width:63vw;height:min(100%,245px)}.fraction-controls{gap:6px}.fraction-controls button{border-radius:11px;width:42px;height:42px}.attribute-activity{width:100%;height:100%;max-height:280px}.attribute-grid{grid-template-columns:repeat(3,1fr);gap:7px}.attribute-grid button{border-radius:17px;min-height:0}.attribute-shape{width:min(64px,16vw,10dvh);height:min(64px,16vw,10dvh)}.attribute-shape.size-small{width:min(45px,12vw,7.5dvh);height:min(45px,12vw,7.5dvh)}.attribute-grid button>i{width:20px;height:20px;font-size:10px;top:6px;right:6px}.logic-choice-activity{gap:10px;width:100%;height:100%}.logic-rule-examples{border-radius:17px;gap:10px;padding:7px 12px}.logic-rule-examples>div{width:min(58px,15vw,9dvh);height:min(58px,15vw,9dvh)}.logic-choice-grid{gap:7px}.logic-choice-grid button{border-radius:17px;gap:7px;min-height:min(118px,18dvh);padding:10px 6px}.logic-choice-grid button>strong{font-size:12px}.relation-diagram{transform:scale(.78)}.activity-footer{flex-direction:column;align-items:stretch;gap:8px;padding-top:9px;display:flex}.feedback{text-align:center;min-height:17px;font-size:11px}.activity-buttons{width:100%}.activity-buttons button{flex:1;padding-inline:9px}.secondary-action{display:none}.primary-action{width:100%}.mobile-chat-trigger{z-index:6;left:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:62px;height:62px;color:var(--ink);cursor:pointer;background:#fffffff5;border:1px solid #ded5ea;border-radius:50%;place-items:center;padding:5px;display:grid;position:absolute;box-shadow:0 12px 30px #3423462e}.mobile-chat-trigger .kody-character-avatar{border-radius:50%;flex-basis:50px;width:50px;height:50px}.mobile-chat-trigger .kody-character-avatar img{width:80px}.mobile-chat-trigger.awaiting-reply{border:3px solid #8e54ed;animation:1.15s ease-in-out infinite voice-pulse}.chat-backdrop{z-index:8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1f172a40;border:0;display:block;position:fixed;inset:0}.chat-panel{z-index:9;height:min(72dvh,620px);padding:15px 14px calc(14px + env(safe-area-inset-bottom));visibility:hidden;border:0;border-radius:24px 24px 0 0;transition:transform .25s,visibility .25s;position:fixed;inset:auto 0 0;transform:translateY(104%);box-shadow:0 -20px 60px #21162f29}.chat-panel.is-open{visibility:visible;transform:translateY(0)}.chat-heading{padding-bottom:12px}.chat-close{flex-basis:40px;width:40px;height:40px;font-size:22px}.message p{font-size:13px}.chat-input{min-height:50px}.route-overview-page{height:auto;min-height:100dvh;overflow:auto}.route-overview-shell{width:100%;height:auto;min-height:100dvh;box-shadow:none;border:0;border-radius:0;grid-template-rows:68px 48px auto auto 96px;overflow:visible}.route-overview-nav{padding:0 17px}.route-overview-intro{padding:4px 20px 10px}.route-overview-intro h1{margin-top:7px;font-size:27px}.route-overview-intro>p{font-size:9px}.route-overview-total{width:85%;margin-top:12px}.logic-map{grid-template-columns:1fr;align-items:start;gap:18px;width:calc(100% - 28px);padding:12px 0 20px;overflow:visible}.logic-map-current{text-align:left;grid-template-rows:auto auto auto auto auto;grid-template-columns:70px minmax(0,1fr);align-items:center;column-gap:14px;display:grid}.logic-map-orbit{grid-row:1/6;width:66px;height:66px;margin:0}.logic-map-orbit .learner-avatar{border-radius:15px;width:46px;height:46px}.logic-map-current h2{margin:3px 0;font-size:14px}.logic-map-current .mastery-state{margin:5px 0 0}.logic-map-current>i{width:100%;margin:6px 0 0}.logic-map ol{gap:11px}.logic-map li{grid-template-columns:76px minmax(0,1fr);gap:14px;min-height:40px}.logic-family-label b{font-size:8px}.logic-family-label small{font-size:6px}.logic-family-path{grid-template-columns:repeat(6,minmax(24px,1fr))}.logic-family-path i{width:25px;height:25px;font-size:7px}.logic-family-path .is-current i{border-width:4px;width:32px;height:32px}.logic-turn{width:15px;height:calc(100% + 11px);right:calc(8.33333% - 22.5px)}.logic-map li.is-reverse .logic-turn{left:calc(8.33333% + 67.5px)}.route-overview-footer{padding:7px 15px calc(12px + env(safe-area-inset-bottom));gap:6px}.route-overview-footer>button{width:100%;min-width:0;min-height:50px;font-size:12px}.route-overview-footer>small{font-size:8px}}@media (width<=380px),(height<=660px) and (width<=767px){.learning-shell{grid-template-rows:50px minmax(0,1fr)}.activity-panel{padding-top:8px}.activity-copy h1{font-size:15px}.fraction-visual{width:auto;max-width:55vw;height:min(100%,205px)}.fraction-controls button{width:38px;height:38px}.attribute-grid button{min-height:0}.attribute-shape{width:min(54px,15vw,9dvh);height:min(54px,15vw,9dvh)}.attribute-shape.size-small{width:min(39px,11vw,6.5dvh);height:min(39px,11vw,6.5dvh)}.activity-footer{padding-top:6px}.activity-buttons button{min-height:40px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.welcome-page{background:radial-gradient(at 10% 4%,#7748dc1f,#0000 34%),radial-gradient(at 91% 7%,#ffd24c1f,#0000 31%),radial-gradient(at 88% 94%,#00ccfe1a,#0000 35%),radial-gradient(at 13% 92%,#8e53e20e,#0000 30%),#fff;place-items:stretch stretch;padding:0}.welcome-shell{width:100%;height:100dvh;min-height:620px;box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-rows:88px minmax(0,1fr) 116px;display:grid;overflow:hidden}.welcome-topbar{grid-template-columns:42px minmax(180px,1fr) 42px;align-items:center;gap:18px;width:min(760px,100% - 44px);margin:0 auto;display:grid}.welcome-icon-button{color:#77717e;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:42px;height:42px;font-size:30px;line-height:1;display:grid}.welcome-icon-button:hover{color:var(--purple);background:var(--purple-soft)}.welcome-icon-button.sound{font-size:17px;font-weight:800}.welcome-icon-button.sound.active{color:var(--purple)}.welcome-progress{align-items:center;gap:5px;display:flex}.welcome-progress i{background:#ece9ef;border-radius:999px;flex:1;min-width:12px;height:7px;transition:background .22s,transform .22s}.welcome-progress i.active{background:linear-gradient(90deg,#20b968,#52d78d)}.welcome-step{place-items:center;width:min(900px,100% - 40px);min-height:0;margin:0 auto;padding:10px 0;animation:.3s cubic-bezier(.2,.75,.3,1) welcome-in;display:grid;overflow:auto}.welcome-intro{text-align:center;max-width:480px}.welcome-intro .kody-character-hero{margin:0 auto}.welcome-intro h1{letter-spacing:-.045em;margin:28px 0 8px;font:800 clamp(29px,3.3vw,42px) Montserrat,Inter,sans-serif}.welcome-intro p{color:#77717d;max-width:430px;margin:0 auto;font-size:15px;line-height:1.55}.welcome-kody{color:#fff;background:linear-gradient(145deg,var(--purple) 10%,#8b4ee6 62%,var(--cyan));border-radius:25px 34px;place-items:center;width:86px;height:86px;margin:0 auto;display:grid;position:relative;transform:rotate(45deg);box-shadow:0 18px 40px #6622cf45}.welcome-kody:after{content:"";border-radius:inherit;border:1px solid #ffffff3d;position:absolute;inset:7px}.welcome-kody>span{z-index:2;font:800 31px Montserrat,Inter,sans-serif;transform:rotate(-45deg)}.welcome-kody>i,.welcome-kody>b{background:var(--yellow);border-radius:50%;width:14px;height:14px;position:absolute;transform:rotate(-45deg)}.welcome-kody>i{top:14px;right:-4px}.welcome-kody>b{background:var(--cyan);width:9px;height:9px;bottom:-3px;left:8px}.welcome-kody.small{border-radius:17px 23px;flex:0 0 56px;width:56px;height:56px;box-shadow:0 10px 26px #6622cf36}.welcome-kody.small>span{font-size:20px}.welcome-kody.small>i{width:9px;height:9px}.welcome-kody.small>b{width:6px;height:6px}.welcome-question{align-self:center;width:100%;max-width:800px}.wizard-heading{align-items:center;gap:25px;width:min(650px,100%);margin:0 auto 58px;display:flex}.wizard-heading .kody-character-avatar{border-radius:19px;width:58px;height:58px;margin:0}.wizard-heading .kody-character-avatar img{width:96px}.wizard-heading h1{letter-spacing:-.035em;margin:0;font:800 clamp(22px,2.3vw,31px) Montserrat,Inter,sans-serif}.wizard-heading p{color:#7c7582;margin:7px 0 0;font-size:12px;line-height:1.5}.welcome-name-field{gap:9px;width:min(500px,100%);margin:0 auto;display:grid}.welcome-name-field span{color:#5f5765;font-size:11px;font-weight:800}.welcome-name-field input{color:#2d2733;background:#fff;border:2px solid #ddd7e3;border-radius:16px;outline:0;height:66px;padding:0 20px;font-size:18px}.welcome-name-field input:focus{border-color:var(--purple);box-shadow:0 0 0 5px #6622cf14}.avatar-question .wizard-heading{margin-bottom:26px}.avatar-choice-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;width:min(720px,100%);margin:0 auto;display:grid}.avatar-choice-grid button{color:#38313d;cursor:pointer;background:#f8f7f9;border:2px solid #0000;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:165px;padding:15px 7px 12px;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;display:flex;position:relative}.avatar-choice-grid button:hover{background:#fff;transform:translateY(-3px)}.avatar-choice-grid button.selected{background:linear-gradient(155deg,#fff,#edfbf3);border-color:#23b96b;box-shadow:0 12px 27px #199c5821}.avatar-choice-grid .learner-avatar{background:#fff;border-radius:24px;flex-basis:78px;width:78px;height:78px}.avatar-choice-grid b{margin-top:10px;font-size:11px}.avatar-choice-grid small{color:#918a95;margin-top:3px;font-size:7px}.avatar-choice-grid button>span:last-child{color:#fff;opacity:0;background:#20b968;border-radius:50%;place-items:center;width:20px;height:20px;font-size:10px;font-weight:900;transition:opacity .15s,transform .15s;display:grid;position:absolute;top:9px;right:9px;transform:scale(.7)}.avatar-choice-grid button.selected>span:last-child{opacity:1;transform:scale(1)}.welcome-card-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.welcome-card-grid button,.audio-choice-grid button{color:#363039;cursor:pointer;background:#f8f7f9;border:2px solid #0000;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:196px;padding:22px 15px;transition:transform .16s,border-color .16s,box-shadow .16s,background .16s;display:flex}.welcome-card-grid button:hover,.audio-choice-grid button:hover{background:#fbf9ff;transform:translateY(-3px)}.welcome-card-grid button.selected,.audio-choice-grid button.selected{border-color:var(--purple);background:linear-gradient(160deg,#faf7ff,#f0e7ff);box-shadow:0 13px 30px #6622cf1f}.welcome-card-grid button>i{width:60px;height:60px;color:var(--purple);background:#fff;border-radius:19px;place-items:center;font-size:27px;font-style:normal;display:grid;box-shadow:0 9px 24px #38274914}.welcome-card-grid button>b,.audio-choice-grid button>b{margin-top:17px;font-size:12px}.welcome-card-grid button>small,.audio-choice-grid button>small{color:#89828e;margin-top:6px;font-size:9px;line-height:1.4}.goal-cards button>i{color:#6f36d5;background:linear-gradient(145deg,#fff,#f3edff);border:1px solid #6622cf14}.goal-cards button:nth-child(2)>i{color:#266dcc;background:linear-gradient(145deg,#fff,#edf5ff)}.goal-cards button:nth-child(3)>i{color:#a26709;background:linear-gradient(145deg,#fff,#fff6de)}.goal-cards button:nth-child(4)>i{color:#087d87;background:linear-gradient(145deg,#fff,#e9fbfc)}.goal-cards svg{width:34px;height:34px;display:block}.audio-choice-grid{grid-template-columns:repeat(3,1fr);gap:14px;width:min(720px,100%);margin:0 auto;display:grid}.audio-choice-grid button{min-height:225px}.audio-choice-grid button>em{color:var(--purple);margin-top:13px;font-size:9px;font-style:normal;font-weight:800}.audio-orbit{color:#fff;background:linear-gradient(145deg,var(--purple),#a06aed);border-radius:50%;place-items:center;width:74px;height:74px;font-size:28px;font-weight:800;display:grid;box-shadow:0 0 0 12px #f0e8ff,0 14px 28px #6622cf33}.audio-orbit svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;width:38px;height:38px}.audio-orbit.calm{background:linear-gradient(145deg,#3e62c8,#6d8de7);box-shadow:0 0 0 12px #eaf0ff,0 14px 28px #3752a92e}.audio-orbit.quiet{color:#5b5362;background:#fff;font-size:18px;box-shadow:0 0 0 12px #eeecef,0 14px 28px #30253914}.voice-disclosure{color:#8a8490;text-align:center;margin:16px 0 0;font-size:10px}.settings-backdrop{z-index:40;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#1f19263d;place-items:center;padding:18px;animation:.16s ease-out fade-in;display:grid;position:fixed;inset:0}.tutor-settings{background:#fff;border:1px solid #ffffffbf;border-radius:28px;width:min(660px,100%);max-height:calc(100dvh - 36px);overflow:auto;box-shadow:0 28px 80px #23192e33}.tutor-settings>header{border-bottom:1px solid #efebf2;justify-content:space-between;align-items:center;padding:24px 27px 18px;display:flex}.tutor-settings>header span{color:var(--purple);letter-spacing:.16em;font-size:8px;font-weight:850}.tutor-settings>header h2{letter-spacing:-.035em;margin:4px 0 0;font:800 24px Montserrat,Inter,sans-serif}.tutor-settings>header button{color:#716b76;cursor:pointer;background:#f5f3f6;border:0;border-radius:50%;width:38px;height:38px;font-size:24px}.settings-section{padding:22px 27px 16px}.settings-section h3{margin:0;font:750 14px Montserrat,Inter,sans-serif}.settings-section>p{color:var(--muted);margin:5px 0 17px;font-size:10px}.settings-voice-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.settings-voice-grid article{background:#faf9fb;border:1.5px solid #e9e5ec;border-radius:19px;min-width:0;padding:5px;transition:border-color .15s,background .15s,box-shadow .15s}.settings-voice-grid article.selected{border-color:var(--purple);background:#f8f3ff;box-shadow:0 9px 24px #6622cf1a}.voice-select{width:100%;min-height:126px;color:var(--ink);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;padding:13px 8px 8px;display:flex}.voice-select>span{color:#fff;background:linear-gradient(145deg,var(--purple),#9d67eb);border-radius:15px;place-items:center;width:46px;height:46px;display:grid}.voice-select>span.text-only{color:#5b5362;background:#eeecef;font-weight:800}.voice-select svg{fill:none;stroke:currentColor;stroke-width:2.1px;stroke-linecap:round;width:25px;height:25px}.voice-select b{margin-top:10px;font-size:11px}.voice-select small{color:var(--muted);margin-top:4px;font-size:9px}.voice-preview{width:100%;color:var(--purple);cursor:pointer;background:0 0;border:0;border-top:1px solid #ebe6ef;padding:9px 5px;font-size:8px;font-weight:850}.settings-toggle{background:#fcfbfd;border:1px solid #ece7f0;border-radius:16px;justify-content:space-between;align-items:center;gap:18px;margin:2px 27px 20px;padding:15px 17px;display:flex}.settings-toggle b,.settings-toggle small{display:block}.settings-toggle b{font-size:11px}.settings-toggle small{color:var(--muted);margin-top:4px;font-size:9px;line-height:1.4}.settings-toggle input{width:39px;height:22px;accent-color:var(--purple);cursor:pointer}.tutor-settings>footer{justify-content:flex-end;padding:0 27px 24px;display:flex}.tutor-settings>footer button{color:#fff;background:linear-gradient(135deg,var(--purple),#8d4be1);cursor:pointer;border:0;border-radius:999px;min-width:150px;padding:12px 24px;font-weight:800}.age-picker{grid-template-columns:62px minmax(150px,1fr) 62px;align-items:center;gap:16px;width:min(450px,100%);margin:0 auto;display:grid}.age-picker>button{width:62px;height:62px;color:var(--purple);cursor:pointer;background:#f8f5fd;border:1px solid #e1dce5;border-radius:18px;font-size:29px}.age-picker label{border:2px solid var(--purple);background:linear-gradient(145deg,#fff,#faf6ff);border-radius:22px;justify-content:center;align-items:center;gap:9px;height:112px;display:flex;box-shadow:0 16px 35px #6622cf1a}.age-picker input{color:#2d2733;text-align:right;background:0 0;border:0;outline:0;width:82px;font:800 42px Montserrat,Inter,sans-serif}.age-picker label span{color:#716978;font-size:13px;font-weight:700}.grade-cards button>i{color:#3b64c9;background:linear-gradient(145deg,#fff,#edf3ff);border-radius:12px;width:82px;font-family:Georgia,serif;font-size:22px}.grade-cards button:nth-child(2)>i{color:var(--purple);background:linear-gradient(145deg,#fff,#f2eaff)}.grade-cards button:nth-child(3)>i{color:#bd3d96;background:linear-gradient(145deg,#fff,#fff0fa)}.grade-cards button:nth-child(4)>i{color:#117d8d;background:linear-gradient(145deg,#fff,#eafcff)}.confidence-question .wizard-heading{margin-bottom:15px}.confidence-graphic{background:#fff;border:1px solid #ece8ef;border-radius:24px;width:300px;height:240px;margin:0 auto 17px;padding:10px;box-shadow:0 16px 38px #34284217}.confidence-graphic svg{width:100%;height:100%}.confidence-graphic line{stroke:#2d2931;stroke-width:2px}.confidence-graphic path{fill:#2d2931}.confidence-graphic circle{fill:var(--purple)}.confidence-graphic text{fill:#4a444f;font-size:13px;font-weight:700}.confidence-options{justify-content:center;gap:9px;display:flex}.confidence-options button{color:#514a57;cursor:pointer;background:#f8f7f9;border:1px solid #e1dce5;border-radius:999px;min-height:44px;padding:0 20px;font-size:11px;font-weight:800}.confidence-options button.selected{border-color:var(--purple);color:var(--purple);background:var(--purple-soft);box-shadow:inset 0 0 0 1px var(--purple)}.welcome-footer{align-content:center;place-items:center;padding:8px 20px 24px;display:grid}.welcome-footer p{color:#a3423c;margin:0 0 7px;font-size:10px}.welcome-continue{color:#fff;background:linear-gradient(135deg,var(--purple),#8750df);cursor:pointer;border:0;border-radius:16px;width:min(340px,100%);min-height:54px;font-size:13px;font-weight:800;box-shadow:0 12px 28px #6622cf38}.welcome-continue:disabled{color:#aaa4ad;box-shadow:none;cursor:default;background:#eeecef}.onboarding-shell{grid-template-columns:minmax(270px,29%) minmax(0,1fr)}.onboarding-topbar{grid-template-columns:48px minmax(150px,1fr) 48px}.onboarding-count{color:#8a8490;text-align:center;font-size:11px;font-weight:800}.onboarding-guide{border-right:1px solid var(--line);background:linear-gradient(#fdfcff,#faf8fd);flex-direction:column;min-height:0;padding:26px 22px;display:flex}.onboarding-message{margin-top:34px}.onboarding-message>p{color:#46404b;background:#fff;border:1px solid #e8e3ec;border-radius:18px 18px 18px 6px;margin:0;padding:16px 17px;font-size:13px;line-height:1.62;box-shadow:0 9px 28px #2c1f390d}.privacy-note{color:#837b89;background:#f2ebff8c;border:1px solid #6622cf14;border-radius:15px;gap:11px;margin-top:auto;padding:14px;font-size:10px;line-height:1.45;display:flex}.privacy-note>span{width:28px;height:28px;color:var(--purple);background:#fff;border-radius:50%;flex:0 0 28px;place-items:center;font-size:17px;display:grid}.privacy-note p{margin:0}.privacy-note b{color:#5a5261}.onboarding-guide .diagnostic-chat-list{margin-top:18px;padding-bottom:12px}.onboarding-guide .diagnostic-chat-list .message{max-width:100%}.onboarding-guide .diagnostic-chat-input{flex:none}.onboarding-guide .privacy-note{margin-top:14px}.onboarding-workspace{background:#fff;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;padding:clamp(22px,3.2vw,46px);display:grid;overflow:hidden}.learner-profile-form{flex-direction:column;justify-content:center;align-self:center;width:min(720px,100%);height:100%;margin:0 auto;display:flex}.profile-form-heading>span,.diagnostic-heading>span,.result-eyebrow{color:var(--purple);letter-spacing:.14em;font-size:9px;font-weight:800}.profile-form-heading h1,.diagnostic-heading h1,.diagnostic-complete h1{color:#242129;letter-spacing:-.04em;margin:8px 0 7px;font-family:Montserrat,Inter,sans-serif;font-size:clamp(24px,3vw,38px)}.profile-form-heading p,.diagnostic-heading p{color:#817a86;margin:0;font-size:12px;line-height:1.5}.profile-fields{grid-template-columns:.65fr 1.35fr;gap:12px;margin-top:26px;display:grid}.profile-field{gap:7px;min-width:0;display:grid}.profile-field.wide{grid-column:1/-1}.profile-field>span,.goal-selector legend{color:#5e5765;font-size:10px;font-weight:800}.profile-field input,.profile-field select{color:#2e2933;background:#fff;border:1px solid #e1dce5;border-radius:13px;outline:0;width:100%;height:51px;padding:0 14px;font-size:13px}.profile-field input:focus,.profile-field select:focus{border-color:#aa87df;box-shadow:0 0 0 4px #6622cf14}.goal-selector{border:0;grid-template-columns:1fr 1fr;gap:9px;margin:22px 0 0;padding:0;display:grid}.goal-selector legend{margin-bottom:9px}.goal-selector button{text-align:left;color:#514a56;cursor:pointer;background:#fff;border:1px solid #e4e0e7;border-radius:14px;align-items:center;gap:10px;min-height:60px;padding:10px 12px;transition:border-color .16s,background .16s,transform .16s;display:flex}.goal-selector button:hover{border-color:#cbb6ea;transform:translateY(-1px)}.goal-selector button.selected{background:#f7f2ff;border-color:#9468d8;box-shadow:inset 0 0 0 1px #9468d8}.goal-selector i{background:#fff;border:2px solid #cbc5d0;border-radius:50%;flex:0 0 17px;width:17px;height:17px;box-shadow:inset 0 0 0 4px #fff}.goal-selector button.selected i{border-color:var(--purple);background:var(--purple)}.goal-selector b,.goal-selector small{display:block}.goal-selector b{color:#3c3641;font-size:11px}.goal-selector small{color:#8c8591;margin-top:3px;font-size:9px;line-height:1.3}.profile-continue{color:#fff;background:linear-gradient(135deg,var(--purple),#8751df);cursor:pointer;border:0;border-radius:14px;align-self:flex-end;min-height:52px;margin-top:22px;padding:0 22px;font-size:12px;font-weight:800;box-shadow:0 12px 28px #6622cf38}.profile-continue span{margin-left:14px}.profile-continue:disabled{opacity:.4;cursor:default;box-shadow:none}.diagnostic-heading{text-align:center}.diagnostic-heading h1{font-size:clamp(19px,2.4vw,30px)}.diagnostic-stage{place-items:center;min-width:0;min-height:0;padding:10px 0;transition:opacity .15s,transform .15s;display:grid}.diagnostic-stage.is-working{opacity:.65;transform:scale(.992)}.diagnostic-footer{border-top:1px solid #f0edf2;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;min-height:74px;padding-top:14px;display:grid}.diagnostic-footer>span{color:#918a96;font-size:10px}.diagnostic-footer .primary-action{border-radius:999px;min-width:220px;min-height:52px;padding:0 32px;font-size:13px}.diagnostic-interactive{place-items:center;gap:12px;width:min(780px,100%);max-height:100%;animation:.38s cubic-bezier(.2,.75,.3,1) diagnostic-in;display:grid}.diagnostic-slider{accent-color:#3267dc;cursor:grab;width:min(560px,82%);height:28px}.diagnostic-slider:active{cursor:grabbing}.answer-orb{color:#2658c9;background:#f5f8ff;border:1px solid #dce3f5;border-radius:18px;place-items:center;min-width:88px;height:58px;padding:0 18px;font-family:Montserrat,Inter,sans-serif;font-size:26px;font-weight:800;display:grid;box-shadow:0 12px 32px #2856ba17}.number-line-graphic{width:min(760px,100%);max-height:220px;overflow:visible}.axis-line{stroke:#171a20;stroke-width:5px;stroke-linecap:round}.axis-arrow{fill:#171a20}.tick-line{stroke:#3d4148;stroke-width:4px}.tick-label{fill:#474b53;text-anchor:middle;font-size:20px;font-weight:600}.guide-line{stroke:#89a8ef;stroke-width:4px;stroke-dasharray:8 9}.moving-point{fill:#3267dc;stroke:#fff;stroke-width:7px;transition:cx .12s}.marble-graphic{width:min(700px,100%);max-height:410px}.chart-grid line,.coordinate-grid line{stroke:#e6e7eb;stroke-width:2px}.relation-line{fill:none;stroke:#3567d8;stroke-width:5px}.relation-dot{fill:#3567d8;stroke:#fff;stroke-width:3px}.axis-title{fill:#252932;letter-spacing:.08em;font-size:15px;font-weight:800}.beaker-outline{fill:none;stroke:#15171c;stroke-width:6px;stroke-linecap:round}.beaker-water{fill:#9db3f3;opacity:.86;transition:d .22s}.marble-ball circle{fill:#f052bf;stroke:#d6389f;stroke-width:2px}.marble-ball path{fill:none;stroke:#ff9bdd;stroke-width:6px;stroke-linecap:round}.marble-ball{animation:.32s both marble-pop}.beaker-value{fill:#2e5ecb;text-anchor:middle;font:800 23px Montserrat,Inter,sans-serif}.fraction-grid-interactive{gap:18px}.fraction-readout{color:#746d79;align-items:baseline;gap:7px;display:flex}.fraction-readout b{color:var(--purple);font:800 30px Montserrat,Inter,sans-serif}.fraction-readout span{font-size:13px;font-weight:700}.diagnostic-fraction-grid{aspect-ratio:1.5;background:#fff;border:3px solid #29252e;border-radius:8px;gap:7px;width:min(430px,70vw);padding:7px;display:grid;box-shadow:0 18px 35px #30253e14}.diagnostic-fraction-grid button{cursor:pointer;background:#fff;border:2px solid #37313d;border-radius:4px;min-width:0;min-height:0;padding:0;overflow:hidden}.diagnostic-fraction-grid button span{opacity:0;background:linear-gradient(145deg,#9b70eb,#7d4ad8);width:100%;height:100%;transition:transform .2s cubic-bezier(.2,.8,.2,1),opacity .18s;display:block;transform:scale(0)}.diagnostic-fraction-grid button.selected span{opacity:1;transform:scale(1)}.interaction-caption{color:#948e98;margin:0;font-size:10px}.sequence-track{justify-content:center;align-items:center;gap:clamp(7px,2vw,18px);width:100%;display:flex}.sequence-node{align-items:center;gap:clamp(7px,2vw,18px);display:flex}.sequence-node span{color:#325ec2;background:#f8faff;border:2px solid #dfe3ed;border-radius:20px;place-items:center;width:clamp(58px,9vw,82px);height:clamp(58px,9vw,82px);font:800 clamp(20px,3vw,30px) Montserrat,Inter,sans-serif;display:grid;box-shadow:0 10px 25px #254ea412}.sequence-node i{color:#a7a8ae;font-size:24px;font-style:normal}.sequence-node.answer span{background:#edf3ff;border-color:#8fa9e5;box-shadow:0 0 0 7px #4a70c914}.angle-graphic{width:min(720px,100%);max-height:420px;overflow:visible}.angle-base,.angle-ray{fill:none;stroke:#171920;stroke-width:8px;stroke-linecap:round}.angle-ray{stroke:#3467d8;transition:d .1s linear}.angle-arc{fill:#ffc75473;stroke:#e6a51b;stroke-width:4px}.angle-origin{fill:#3467d8}.angle-value{fill:#272a31;text-anchor:middle;font:800 42px Montserrat,Inter,sans-serif}.reflection-graphic{width:min(720px,100%);max-height:360px}.mirror-line{stroke:#16191e;stroke-width:5px;stroke-dasharray:10 9}.source-shape{fill:#6f4cdca6;stroke:#6035bd;stroke-width:4px}.ghost-shape{fill:#3168da47;stroke:#3267d8;stroke-width:4px;transform-box:fill-box;transform-origin:50%;transition:transform .3s cubic-bezier(.2,.75,.3,1)}.reflection-options{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;display:flex}.reflection-options button{color:#4a4e57;cursor:pointer;background:#fff;border:1px solid #dfe1e7;border-radius:12px;min-height:44px;padding:0 15px;font-size:11px;font-weight:750}.reflection-options button.selected{color:#2456be;background:#eef4ff;border-color:#386bd8;box-shadow:inset 0 0 0 1px #386bd8}.logic-glyph{filter:drop-shadow(0 9px 11px #32234421);width:76px;height:76px;overflow:visible}.logic-glyph>g:first-child>*{stroke:#2d1f3a38;stroke-width:2px}.glyph-detail{fill:#fff;stroke:#fff;stroke-width:6px;stroke-linecap:round;opacity:.88}.glyph-detail.dots{stroke:none}.visual-pattern-interactive{gap:30px}.visual-sequence{justify-content:center;align-items:center;gap:clamp(5px,1.4vw,14px);display:flex}.visual-sequence-step{align-items:center;gap:clamp(5px,1.4vw,14px);display:flex}.visual-sequence-step>i{background:#d8d3dd;border-radius:99px;width:20px;height:2px}.visual-missing{color:#7134cc;background:linear-gradient(145deg,#fbf9ff,#f3ecff);border:2px dashed #bda9d9;border-radius:24px;place-items:center;width:82px;height:82px;font:800 29px Montserrat,Inter,sans-serif;display:grid}.visual-choice-row{justify-content:center;gap:13px;display:flex}.visual-choice-row button,.odd-one-grid button{cursor:pointer;background:#faf9fb;border:2px solid #0000;border-radius:23px;place-items:center;width:124px;height:116px;transition:all .17s;display:grid;position:relative;box-shadow:0 9px 24px #3527410e}.visual-choice-row button:hover,.odd-one-grid button:hover{background:#fff;border-color:#d6c7e9;transform:translateY(-3px)}.visual-choice-row button.selected,.odd-one-grid button.selected{background:#f7f2ff;border-color:#7640d2;box-shadow:0 0 0 5px #7640d214,0 14px 30px #4929621a}.visual-choice-row button>span,.odd-one-grid button>span{opacity:0;color:#fff;background:#2abb69;border-radius:50%;place-items:center;width:23px;height:23px;font-size:11px;font-weight:850;transition:all .17s;display:grid;position:absolute;top:8px;right:8px;transform:scale(.6)}.visual-choice-row button.selected>span,.odd-one-grid button.selected>span{opacity:1;transform:scale(1)}.odd-one-interactive{gap:22px}.odd-one-grid{grid-template-columns:repeat(4,1fr);gap:14px;width:min(650px,100%);display:grid}.odd-one-grid button{width:100%;height:150px}.odd-one-grid button>small{color:#9c94a1;font-size:9px;font-weight:800;position:absolute;top:11px;left:13px}.odd-one-grid .logic-glyph{width:88px;height:88px}.path-choice-interactive{gap:10px}.path-choice-graphic{width:min(720px,100%);max-height:300px;overflow:visible}.path-field{fill:#fbfcff;stroke:#ebe8ef;stroke-width:2px}.path-grid line{stroke:#eef0f4;stroke-width:2px;stroke-dasharray:5 10}.path-choice-graphic polyline{--path-color:#7b4bdd;fill:none;stroke:var(--path-color);stroke-width:7px;stroke-linecap:round;stroke-linejoin:round;opacity:.52;cursor:pointer;transition:all .18s}.path-choice-graphic polyline:hover,.path-choice-graphic polyline.selected{opacity:1;stroke-width:10px;filter:drop-shadow(0 5px 5px color-mix(in srgb,var(--path-color) 25%,transparent))}.path-obstacle circle{fill:#ffedf0;stroke:#e75569;stroke-width:3px}.path-obstacle path{fill:none;stroke:#d4465a;stroke-width:4px;stroke-linecap:round}.path-start circle{fill:#7843d7}.path-start text{fill:#fff;text-anchor:middle;font:800 21px Montserrat,Inter,sans-serif}.path-goal{fill:#ffc93c;stroke:#df9e12;stroke-width:3px}.path-choice-buttons{justify-content:center;gap:10px;display:flex}.path-choice-buttons button{--path-color:#7b4bdd;color:#55505a;cursor:pointer;background:#f5f3f6;border:2px solid #0000;border-radius:999px;min-width:110px;min-height:43px;padding:0 18px;font-size:10px;font-weight:800}.path-choice-buttons button.selected{border-color:var(--path-color);color:var(--path-color);background:#fff;box-shadow:0 7px 18px #34264114}.visual-matrix-interactive{gap:22px}.visual-matrix{background:linear-gradient(145deg,#fff,#faf8fc);border:1px solid #e8e3ed;border-radius:26px;grid-template-columns:repeat(2,1fr);gap:9px;width:250px;padding:10px;display:grid;box-shadow:0 17px 38px #33254017}.visual-matrix-cell{aspect-ratio:1;background:#f5f3f7;border-radius:18px;place-items:center;display:grid}.visual-matrix-cell:nth-child(2),.visual-matrix-cell:nth-child(3){background:#eef9fb}.visual-matrix-cell.missing{color:#7134cc;background:linear-gradient(145deg,#fbf9ff,#f3ecff);border:2px dashed #bda9d9}.visual-matrix-cell.missing span{font:800 29px Montserrat,Inter,sans-serif}.visual-matrix-cell .logic-glyph{width:72px;height:72px}.matrix-options button{height:105px}.diagnostic-complete{text-align:center;width:min(670px,100%);margin:auto;animation:.45s ease-out diagnostic-in}.result-orbit{place-items:center;width:100px;height:100px;margin:0 auto 22px;display:grid;position:relative}.result-orbit>span{z-index:2;color:#fff;background:linear-gradient(135deg,#31c872,#1eaa5a);border-radius:50%;place-items:center;width:64px;height:64px;font-size:29px;font-weight:800;display:grid;box-shadow:0 14px 35px #24b56440}.result-orbit i,.result-orbit b{border:1px solid #31c87238;border-radius:50%;animation:5s linear infinite orbit;position:absolute;inset:5px}.result-orbit i:after,.result-orbit b:after{content:"";background:#ffd24c;border-radius:50%;width:9px;height:9px;position:absolute;top:4px;left:12px}.result-orbit b{animation-duration:7s;animation-direction:reverse;inset:-6px}.result-orbit b:after{background:#00ccfe;inset:auto 8px 16px auto}.diagnostic-complete h1{font-size:clamp(29px,4vw,44px)}.diagnostic-complete>p{color:#746d79;width:min(520px,100%);margin:0 auto;font-size:13px;line-height:1.6}.result-columns{text-align:left;grid-template-columns:1fr 1fr;gap:12px;margin:27px 0 0;display:grid}.result-columns article{background:#fcfbfd;border:1px solid #e8e4eb;border-radius:16px;min-height:120px;padding:16px}.result-columns span,.result-columns b{display:block}.result-columns span{color:#8a838e;letter-spacing:.07em;text-transform:uppercase;margin-bottom:10px;font-size:9px;font-weight:800}.result-columns b{color:#46404b;margin-top:7px;font-size:11px}.diagnostic-complete .profile-continue{margin-inline:auto}.diagnostic-complete>small{color:#9a939e;margin-top:13px;font-size:9px;display:block}.diagnostic-loading{text-align:center;color:#847d88;place-self:center;font-size:12px}.diagnostic-loading span{border:4px solid #eee9f4;border-top-color:var(--purple);border-radius:50%;width:45px;height:45px;margin:0 auto 12px;animation:.8s linear infinite spin;display:block}.onboarding-error{color:#9c3f39;text-align:center;font-size:11px}.result-character{width:112px;height:145px;margin:0 auto 12px;position:relative}.result-character .kody-character-celebration{width:100%;height:100%}.result-character>span{color:#fff;background:var(--green);border:4px solid #fff;border-radius:50%;place-items:center;width:38px;height:38px;font-size:18px;font-weight:800;display:grid;position:absolute;bottom:11px;right:2px;box-shadow:0 8px 18px #22a45a38}.route-picker-shell{grid-template-rows:90px 58px auto minmax(0,1fr) 116px;height:100dvh;min-height:620px;overflow:hidden}.route-picker-shell.has-routes{grid-template-rows:90px 58px auto minmax(0,1fr)}.route-global-header{justify-content:space-between;align-items:center;width:100%;padding:0 clamp(34px,5vw,76px);display:flex}.route-brand{color:#23232e;letter-spacing:-.055em;align-items:baseline;gap:5px;display:flex}.route-brand b{font:800 clamp(20px,2vw,28px) Montserrat,Inter,sans-serif}.route-brand span{font-size:clamp(19px,1.9vw,27px);font-weight:400}.route-profile{align-items:center;gap:12px;display:flex}.route-profile .learner-avatar{border-radius:50%;flex-basis:48px;width:48px;height:48px}.route-profile span,.route-profile b,.route-profile small{display:block}.route-profile b{font-size:13px}.route-profile small{color:#777583;margin-top:2px;font-size:11px}.route-picker-nav{grid-template-columns:48px 1fr 48px;align-items:center;padding:0 clamp(34px,5vw,76px);display:grid}.route-back{color:#34343e;cursor:pointer;background:#ffffff80;border:1px solid #dcdbe4;border-radius:50%;place-items:center;width:44px;height:44px;font-size:23px;display:grid}.route-back:hover{background:#fff;border-color:#ae9ad3}.route-step-progress{justify-self:center;gap:8px;width:154px;display:flex}.route-step-progress i{background:#dddee5;border-radius:99px;flex:1;height:7px}.route-step-progress i.active{background:linear-gradient(90deg,#6622cf,#8a43ee);box-shadow:0 4px 12px #6622cf2e}.route-picker-heading{text-align:center;padding:13px 28px 20px}.route-picker-heading>span{color:var(--purple);letter-spacing:.15em;font-size:9px;font-weight:850}.route-picker-heading h1{letter-spacing:-.045em;margin:8px 0;font:800 clamp(28px,3vw,42px) Montserrat,Inter,sans-serif}.route-picker-heading p{color:#5f5d6a;max-width:590px;margin:0 auto;font-size:15px;line-height:1.55}.area-heading{padding-top:clamp(15px,2.5vh,30px)}.area-picker-stage{grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;gap:28px;width:min(920px,100% - 48px);min-height:0;margin:0 auto;padding:clamp(14px,2.5vh,30px) 0 18px;display:grid;overflow:auto}.area-card{color:#292936;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;min-width:0;min-height:322px;padding:0 0 8px;transition:transform .2s;display:flex;position:relative}.area-card:hover,.area-card:focus-visible{outline:0;transform:translateY(-4px)}.area-illustration{aspect-ratio:1.12;background:#ffffff6b;border:1.5px solid #dedee7;border-radius:30px;place-items:center;width:100%;transition:border-color .2s,background .2s,box-shadow .2s;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffffd9}.area-illustration svg{width:82%;height:82%;display:block}.area-card>b{margin-top:18px;font:800 clamp(16px,1.7vw,22px) Montserrat,Inter,sans-serif}.area-card .area-selected-check{color:#fff;opacity:0;background:linear-gradient(145deg,#8a43ef,#6622cf);border-radius:50%;place-items:center;width:35px;height:35px;font-size:17px;font-style:normal;font-weight:850;transition:opacity .18s,transform .18s;display:grid;position:absolute;top:18px;right:18px;transform:scale(.7);box-shadow:0 8px 18px #6622cf40}.area-card.selected .area-illustration{background:linear-gradient(145deg,#ffffffa8,#f2ebffb8);border-color:#7129e2;box-shadow:0 0 0 2px #7129e20f,0 18px 40px #4e2f7314}.area-card.selected .area-selected-check{opacity:1;transform:scale(1)}.area-card:disabled{opacity:.58;cursor:wait;transform:none}.area-picker-footer{justify-content:center;align-items:flex-start;padding:6px 24px 25px;display:flex}.area-picker-footer button{color:#fff;cursor:pointer;background:linear-gradient(120deg,#222,#3a3a3a);border:0;border-radius:999px;width:min(370px,100% - 32px);min-height:70px;font-size:16px;font-weight:800;box-shadow:0 13px 28px #19191c2e}.area-picker-footer button:disabled{color:#aaa8ae;box-shadow:none;cursor:default;background:#e7e6e9}.route-area-list{min-height:0;padding:0 34px 40px;overflow:auto}.route-area-list>section{width:min(1050px,100%);margin:0 auto 24px}.route-area-list h2{color:#4a434e;margin:0 0 10px;font:800 13px Montserrat,Inter,sans-serif}.route-area-list.is-filtered{padding-top:clamp(12px,2.5vh,28px)}.route-area-list.is-filtered>section{margin-bottom:0}.route-card-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:13px;display:grid}.route-card{text-align:left;color:#39333e;cursor:pointer;background:#fcfbfd;border:1px solid #e9e4ec;border-radius:22px;grid-template-rows:auto 1fr;grid-template-columns:62px minmax(0,1fr) 32px;align-items:center;gap:8px 17px;min-width:0;min-height:164px;padding:23px;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s;display:grid}.route-card:hover,.route-card:focus-visible{background:#fff;border-color:#cdb8ec;outline:0;transform:translateY(-3px);box-shadow:0 16px 34px #39284817}.route-card:disabled{opacity:.6;cursor:wait;transform:none}.route-card>i{color:#6d35ce;background:linear-gradient(145deg,#f7f2ff,#ece1ff);border-radius:19px;grid-row:1/3;place-items:center;width:62px;height:62px;font-style:normal;display:grid}.route-card>i svg{width:34px;height:34px;display:block}.route-card>b{align-self:end;font:800 14px Montserrat,Inter,sans-serif}.route-card>small{color:#817a86;align-self:start;font-size:9px;line-height:1.48}.route-card>span{color:#726a78;background:#f2eff4;border-radius:50%;grid-area:1/3/3;place-items:center;width:30px;height:30px;font-size:14px;transition:color .18s,background .18s,transform .18s;display:grid}.route-card:hover>span{color:#fff;background:var(--purple);transform:translate(2px)}.route-card-numbers-operations>i{color:#2568c8;background:linear-gradient(145deg,#f4f8ff,#e4efff)}.route-card-fractions-proportions>i{color:#6d35ce;background:linear-gradient(145deg,#f7f2ff,#ece1ff)}.route-card-geometry-space>i{color:#b33b8d;background:linear-gradient(145deg,#fff5fb,#ffe8f6)}.route-card-visual-algebra>i{color:#087c88;background:linear-gradient(145deg,#f1fcfd,#dff7f9)}.route-card-data-probability>i{color:#9b6a0c;background:linear-gradient(145deg,#fffbf0,#fff1cc)}.route-card-computational-thinking>i{color:#6d35ce;background:linear-gradient(145deg,#f7f2ff,#ece1ff)}.route-card-python-step-by-step>i{color:#087c88;background:linear-gradient(145deg,#f1fcfd,#dff7f9)}.profile-picker-page{background:radial-gradient(at 10% 4%,#7748dc1f,#0000 34%),radial-gradient(at 91% 7%,#ffd24c1f,#0000 31%),radial-gradient(at 88% 94%,#00ccfe1a,#0000 35%),radial-gradient(at 13% 92%,#8e53e20e,#0000 30%),#fff;place-items:center;padding:0;display:grid}.profile-picker-card{width:100%;min-height:100dvh;box-shadow:none;text-align:center;background:0 0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;padding:48px max(24px,50vw - 425px);display:flex}.profile-picker-card>.kody-character-hero{width:90px;height:120px;margin-bottom:12px}.profile-picker-card h1{letter-spacing:-.04em;margin:8px 0;font:800 clamp(27px,3vw,39px) Montserrat,Inter,sans-serif}.profile-picker-card>p{color:#7d7682;margin:0;font-size:12px}.profile-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;margin:28px 0;display:grid}.profile-card-grid button{color:#3b3540;cursor:pointer;background:#faf8fcd6;border:1px solid #e6e0ea;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;min-height:155px;padding:18px;display:flex}.profile-card-grid button:hover{background:#fff;border-color:#bba0e2;box-shadow:0 12px 28px #462d5c17}.profile-card-grid i{color:#fff;background:linear-gradient(145deg,var(--purple),#9458e7);border-radius:50%;place-items:center;width:56px;height:56px;font-size:22px;font-style:normal;font-weight:850;display:grid}.profile-card-grid b{margin-top:12px;font-size:12px}.profile-card-grid small{color:#8d8692;margin-top:4px;font-size:9px}.profile-card-grid .add-profile-card{border-style:dashed}.profile-card-grid .add-profile-card i{color:var(--purple);background:var(--purple-soft)}.profile-picker-card>a,.manage-profiles-link{color:var(--purple);font-size:11px;font-weight:750;text-decoration:none}.manage-profiles-link{margin:12px 0 2px;display:inline-block}.profile-card-grid .learner-avatar{border-radius:22px;flex-basis:70px;width:70px;height:70px}@keyframes diagnostic-in{0%{opacity:0;transform:translateY(8px)scale(.99)}}@keyframes voice-pulse{50%{box-shadow:0 0 0 7px #d84b7321}}@keyframes welcome-in{0%{opacity:0;transform:translateY(10px)scale(.995)}}@keyframes marble-pop{0%{opacity:0;transform:translateY(-18px)scale(.7)}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=767px){.welcome-page{background:#fff;padding:0}.welcome-shell{width:100%;height:100dvh;min-height:0;box-shadow:none;border:0;border-radius:0;grid-template-rows:62px minmax(0,1fr) 88px}.welcome-topbar{grid-template-columns:38px minmax(100px,1fr) 38px;gap:9px;width:calc(100% - 24px)}.welcome-icon-button{width:38px;height:38px}.welcome-progress{gap:3px}.welcome-progress i{min-width:5px;height:5px}.welcome-step{align-items:start;width:calc(100% - 32px);padding:15px 0}.welcome-intro{align-self:center;margin:auto}.welcome-intro h1{margin-top:25px;font-size:30px}.welcome-intro p{font-size:13px}.welcome-intro .kody-character-hero{width:115px;height:158px}.welcome-question{align-self:start;padding-top:4px}.wizard-heading{gap:16px;margin-bottom:28px}.wizard-heading h1{font-size:21px}.wizard-heading p{font-size:10px}.wizard-heading .kody-character-avatar{border-radius:16px;flex-basis:48px;width:48px;height:48px}.wizard-heading .kody-character-avatar img{width:82px}.welcome-name-field input{height:58px;font-size:16px}.avatar-question .wizard-heading{margin-bottom:16px}.avatar-choice-grid{grid-template-columns:repeat(3,1fr);gap:8px}.avatar-choice-grid button{border-radius:16px;min-height:128px;padding:10px 5px 8px}.avatar-choice-grid .learner-avatar{border-radius:19px;flex-basis:62px;width:62px;height:62px}.avatar-choice-grid b{margin-top:6px;font-size:9px}.avatar-choice-grid small{font-size:6px}.welcome-card-grid{grid-template-columns:1fr 1fr;gap:9px}.welcome-card-grid button{min-height:155px;padding:14px 10px}.welcome-card-grid button>i{border-radius:14px;width:48px;height:48px;font-size:21px}.welcome-card-grid button>b{margin-top:12px;font-size:10px}.welcome-card-grid button>small{font-size:8px}.audio-choice-grid{gap:7px}.audio-choice-grid button{border-radius:16px;min-height:176px;padding:13px 6px}.audio-orbit{width:52px;height:52px;box-shadow:0 0 0 7px #f0e8ff,0 10px 20px #6622cf29}.audio-orbit.calm{box-shadow:0 0 0 7px #eaf0ff,0 10px 20px #3752a926}.audio-orbit.quiet{box-shadow:0 0 0 7px #eeecef,0 10px 20px #3025390f}.audio-orbit svg{width:28px;height:28px}.audio-choice-grid button>b{margin-top:13px;font-size:9px}.audio-choice-grid button>small{font-size:7px}.audio-choice-grid button>em{margin-top:8px;font-size:7px}.settings-backdrop{align-items:end;padding:0}.tutor-settings{border-radius:25px 25px 0 0;width:100%;max-height:88dvh}.tutor-settings>header{padding:20px 18px 15px}.settings-section{padding:19px 18px 14px}.settings-voice-grid{gap:7px}.settings-voice-grid article{border-radius:16px}.voice-select{min-height:115px;padding-inline:3px}.voice-select b{text-align:center;font-size:9px}.voice-select small{text-align:center;font-size:7px}.voice-preview{font-size:7px}.settings-toggle{margin-inline:18px}.tutor-settings>footer{padding:0 18px 20px}.tutor-settings>footer button{width:100%}.age-picker{grid-template-columns:52px minmax(130px,1fr) 52px;gap:10px}.age-picker>button{width:52px;height:52px}.age-picker label{height:98px}.age-picker input{width:72px;font-size:36px}.confidence-question .wizard-heading{margin-bottom:8px}.confidence-graphic{width:min(270px,75vw);height:215px;margin-bottom:12px}.confidence-options{flex-wrap:wrap;gap:7px}.confidence-options button{min-height:40px;padding-inline:14px;font-size:9px}.welcome-footer{padding:7px 16px calc(14px + env(safe-area-inset-bottom))}.welcome-continue{min-height:50px}.onboarding-page{overflow:auto}.onboarding-shell{grid-template:56px auto minmax(0,1fr)/1fr;height:auto;min-height:100dvh;overflow:visible}.onboarding-topbar{grid-row:1}.onboarding-guide{border:0;border-bottom:1px solid var(--line);grid-row:2;padding:13px 16px}.onboarding-guide .chat-heading{padding:0}.onboarding-guide .chat-heading small,.privacy-note{display:none}.onboarding-guide .kody-character-avatar{border-radius:12px;flex-basis:36px;width:36px;height:36px}.onboarding-guide .kody-character-avatar img{width:64px}.onboarding-message{margin:10px 0 0}.onboarding-message>p{border-radius:13px 13px 13px 5px;padding:10px 12px;font-size:11px;line-height:1.45}.onboarding-workspace{min-height:590px;padding:22px 16px calc(22px + env(safe-area-inset-bottom));grid-row:3;overflow:visible}.diagnostic-shell{grid-template:56px minmax(0,1fr)/1fr;height:100dvh;min-height:0;overflow:hidden}.diagnostic-shell .diagnostic-guide{z-index:9;height:min(72dvh,620px);padding:15px 14px calc(14px + env(safe-area-inset-bottom));visibility:hidden;background:linear-gradient(#fdfcff,#faf8fd);border:0;border-radius:24px 24px 0 0;transition:transform .25s,visibility .25s;position:fixed;inset:auto 0 0;transform:translateY(104%);box-shadow:0 -20px 60px #21162f29}.diagnostic-shell .diagnostic-guide.is-open{visibility:visible;transform:translateY(0)}.diagnostic-shell .diagnostic-guide .diagnostic-chat-list{min-height:0;margin-top:14px;overflow:auto}.diagnostic-shell .onboarding-workspace{grid-row:2;min-height:0;padding:17px 16px 12px;overflow:auto}.learner-profile-form{justify-content:flex-start}.profile-form-heading h1{font-size:25px}.profile-fields{margin-top:18px}.goal-selector{grid-template-columns:1fr;margin-top:18px}.goal-selector button{min-height:54px}.profile-continue{align-self:stretch;width:100%}.diagnostic-heading h1{font-size:20px}.diagnostic-heading p{font-size:10px}.diagnostic-stage{min-height:330px;padding:4px 0}.diagnostic-footer{text-align:center;grid-template-columns:1fr;gap:7px}.diagnostic-footer .primary-action{width:100%}.diagnostic-slider{width:88%}.marble-graphic{max-height:310px}.number-line-graphic{max-height:180px}.angle-graphic{max-height:300px}.reflection-graphic{max-height:280px}.reflection-options button{min-height:40px;padding-inline:11px;font-size:9px}.visual-pattern-interactive{gap:20px}.visual-sequence{gap:3px;width:100%}.visual-sequence-step{gap:3px}.logic-glyph{width:52px;height:52px}.visual-sequence-step>i{width:8px}.visual-missing{border-radius:17px;width:56px;height:56px;font-size:22px}.visual-choice-row{gap:7px;width:100%}.visual-choice-row button{border-radius:18px;width:min(29vw,105px);height:96px}.visual-choice-row button .logic-glyph{width:62px;height:62px}.odd-one-grid{grid-template-columns:repeat(2,1fr);gap:8px}.odd-one-grid button{border-radius:18px;height:112px}.odd-one-grid .logic-glyph{width:68px;height:68px}.path-choice-graphic{max-height:270px}.path-choice-buttons{gap:6px;width:100%}.path-choice-buttons button{flex:1;min-width:0;padding:0 8px;font-size:8px}.visual-matrix{border-radius:22px;gap:7px;width:210px;padding:8px}.visual-matrix-cell{border-radius:15px}.visual-matrix-cell .logic-glyph{width:60px;height:60px}.matrix-options button{height:90px}.result-columns{grid-template-columns:1fr}.result-columns article{min-height:0}.diagnostic-complete{padding-top:10px}.route-picker-page{overflow:hidden}.route-picker-shell,.route-picker-shell.has-routes{grid-template-rows:68px 48px auto minmax(0,1fr) 96px;height:100dvh;min-height:0}.route-picker-shell.has-routes{grid-template-rows:68px 48px auto minmax(0,1fr)}.route-global-header{padding:0 17px}.route-brand{gap:3px}.route-brand b{font-size:18px}.route-brand span{font-size:17px}.route-profile{gap:7px}.route-profile .learner-avatar{flex-basis:37px;width:37px;height:37px}.route-profile b{font-size:10px}.route-profile small{font-size:8px}.route-picker-nav{grid-template-columns:38px 1fr 38px;padding:0 17px}.route-back{width:36px;height:36px;font-size:19px}.route-step-progress{gap:5px;width:105px}.route-step-progress i{height:5px}.route-picker-heading{padding:9px 18px 13px}.route-picker-heading h1{font-size:25px}.route-picker-heading p{font-size:11px}.area-heading{padding-top:8px}.area-picker-stage{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:8px;width:calc(100% - 24px);padding:10px 0 14px;overflow:visible}.area-card{min-height:174px;padding-bottom:5px}.area-illustration{aspect-ratio:.9;border-radius:19px}.area-illustration svg{width:94%;height:94%}.area-card>b{margin-top:10px;font-size:10px}.area-card .area-selected-check{width:25px;height:25px;font-size:12px;top:7px;right:7px}.area-picker-footer{padding:5px 17px calc(16px + env(safe-area-inset-bottom))}.area-picker-footer button{width:100%;min-height:54px;font-size:13px}.route-area-list{padding:0 16px 30px}.route-card-grid{grid-template-columns:1fr}.route-card{border-radius:18px;grid-template-columns:52px minmax(0,1fr) 28px;gap:6px 12px;min-height:126px;padding:16px}.route-card>i{border-radius:16px;width:52px;height:52px}.route-card>i svg{width:29px;height:29px}.route-card>b{font-size:12px}.route-card>small{font-size:8px}.route-card>span{width:27px;height:27px;font-size:12px}.profile-picker-page{padding:0}.profile-picker-card{border-radius:0;min-height:100dvh;padding:28px 18px}.profile-card-grid{grid-template-columns:1fr 1fr}.profile-card-grid button{min-height:140px}}@media (height<=720px) and (width>=768px){.onboarding-workspace,.onboarding-guide{padding-block:18px}.onboarding-message{margin-top:18px}.profile-form-heading h1{font-size:27px}.profile-fields{margin-top:17px}.goal-selector{margin-top:15px}.goal-selector button{min-height:52px}.profile-continue{min-height:46px;margin-top:14px}.diagnostic-stage{padding-block:2px}.marble-graphic,.angle-graphic{max-height:300px}.reflection-graphic{max-height:270px}.path-choice-graphic{max-height:245px}.path-choice-interactive{gap:5px}}@media (width>=768px) and (width<=1024px){.route-overview-shell{grid-template-rows:76px 50px auto minmax(0,1fr) 108px}.route-overview-nav{padding-inline:28px}.route-overview-intro{padding:0 24px 13px}.route-overview-intro h1{font-size:36px}.route-overview-intro>p{font-size:11px}.logic-map{grid-template-columns:190px minmax(0,1fr);gap:24px;width:calc(100% - 38px)}.logic-map-orbit{width:116px;height:116px}.logic-map-orbit .learner-avatar{border-radius:25px;width:78px;height:78px}.logic-map-current h2{max-width:180px;font-size:18px}.logic-map li{grid-template-columns:112px minmax(0,1fr);gap:14px}.logic-family-label b{font-size:9px}.logic-family-label small{font-size:7px}.logic-family-path i{width:34px;height:34px;font-size:9px}.logic-family-path .is-current i{border-width:5px;width:42px;height:42px}.logic-turn{width:17px;right:calc(8.33333% - 27.5px)}.logic-map li.is-reverse .logic-turn{left:calc(8.33333% + 98.5px)}}@media (width>=768px) and (height<=760px){.route-overview-shell{grid-template-rows:64px 40px auto minmax(0,1fr) 84px;min-height:0}.route-global-header{padding-inline:34px}.route-profile .learner-avatar{flex-basis:38px;width:38px;height:38px}.route-overview-nav{padding-inline:34px}.route-back{width:34px;height:34px;font-size:18px}.route-overview-intro{padding:0 24px 7px}.route-overview-eyebrow{font-size:7px}.route-overview-intro h1{margin:4px 0;font-size:31px}.route-overview-intro>p{font-size:9px}.route-overview-total{width:min(360px,70%);margin-top:9px}.route-overview-total small{margin-top:4px;font-size:7px}.logic-map{grid-template-columns:190px minmax(0,1fr);gap:30px;width:min(980px,100% - 48px);padding:3px 0 5px;overflow:hidden}.logic-map-current{align-self:center}.logic-map-orbit{width:94px;height:94px;margin-bottom:6px}.logic-map-orbit .learner-avatar{border-radius:21px;width:66px;height:66px}.logic-map-current>span{font-size:7px}.logic-map-current h2{max-width:175px;margin:4px auto 3px;font-size:16px}.logic-map-current p{font-size:8px}.logic-map-current>i{width:130px;height:4px;margin-top:7px}.mastery-state{margin-top:4px;padding:3px 7px;font-size:6px}.logic-map ol{align-self:center;gap:5px}.logic-map li{grid-template-columns:125px minmax(0,1fr);gap:13px;min-height:35px}.logic-family-label b{font-size:8px}.logic-family-label small{margin-top:1px;font-size:6px}.logic-family-path i{width:29px;height:29px;font-size:7px}.logic-family-path .is-current i{border-width:5px;width:37px;height:37px}.logic-turn{border-width:2px;width:14px;height:calc(100% + 5px);right:calc(8.33333% - 25.5px)}.logic-map li.is-reverse .logic-turn{border-width:2px;left:calc(8.33333% + 112.5px)}.route-overview-footer{gap:5px;padding:4px 24px 10px}.route-overview-footer>button{min-width:280px;min-height:48px;font-size:12px}.route-overview-footer>small{font-size:8px}}.route-overview-page{height:auto;min-height:100dvh;overflow:auto}.route-overview-hero{text-align:center;flex-direction:column;align-items:center;padding:0 24px 20px;display:flex}.route-overview-hero>h1{letter-spacing:-.05em;margin:10px 0 24px;font:800 clamp(32px,3.7vw,48px) Montserrat,Inter,sans-serif}.route-hero-avatar{background:radial-gradient(circle,#fffffff2 0 45%,#7949dc17 46% 72%,#7949dc09 73%);border-radius:50%;place-items:center;width:204px;height:204px;display:grid}.route-hero-avatar .learner-avatar{filter:drop-shadow(0 15px 18px #3e22632e);border-radius:45px;width:146px;height:146px}.route-hero-step{color:#797685;letter-spacing:.2em;margin-top:13px;font-size:10px;font-weight:850}.route-overview-hero>h2{letter-spacing:-.045em;max-width:560px;margin:9px 0 4px;font:800 clamp(27px,3vw,39px)/1.05 Montserrat,Inter,sans-serif}.route-overview-hero>p{color:#6f6c79;margin:3px 0 0;font-size:16px}.route-hero-actions{align-items:flex-start;gap:28px;margin-top:20px;display:flex}.route-start-button{color:#fff;cursor:pointer;background:linear-gradient(120deg,#222,#3b3b3b);border:0;border-radius:999px;justify-content:center;align-items:center;gap:22px;min-width:325px;min-height:66px;padding:0 30px;font-size:17px;font-weight:850;display:flex;box-shadow:0 13px 28px #19191c2e}.route-start-button span{font-size:24px;font-weight:400}.route-listen-button{color:#5f5d69;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;min-width:82px;padding:0;font-size:12px;display:flex}.route-listen-button i{background:#ffffff94;border:1px solid #cbc9d4;border-radius:50%;place-items:center;width:58px;height:58px;font-style:normal;display:grid}.route-listen-button svg{width:30px;height:30px}.route-listen-button.is-playing i{color:#fff;background:#6e31d5;border-color:#6e31d5}.route-family-explorer{min-width:0;padding:0 0 10px}.route-family-explorer>header{justify-content:space-between;align-items:flex-end;width:calc(100% - clamp(34px,8vw,100px));margin:0 auto 13px;display:flex}.route-family-explorer>header h2{letter-spacing:-.04em;margin:0;font:800 clamp(20px,2.2vw,29px) Montserrat,Inter,sans-serif}.route-family-explorer>header p{color:#777482;margin:4px 0 0;font-size:13px}.family-carousel-arrows{gap:15px;display:flex}.family-carousel-arrows button{color:#22232d;cursor:pointer;background:#ffffff8c;border:1px solid #cbc9d4;border-radius:50%;place-items:center;width:52px;height:52px;font-size:33px;line-height:1;display:grid}.family-carousel-arrows button:disabled{color:#b7b5bf;cursor:default;background:#ffffff47}.route-family-rail{scroll-snap-type:x mandatory;scrollbar-width:none;gap:18px;width:100%;padding:0 clamp(34px,4.5vw,66px) 7px;scroll-padding-left:clamp(34px,4.5vw,66px);display:flex;overflow-x:auto}.route-family-rail::-webkit-scrollbar{display:none}.route-family-rail article{scroll-snap-align:start;cursor:pointer;background:#ffffff8a;border:1px solid #d5d3dc;border-radius:20px;flex:0 0 min(500px,54vw);grid-template-columns:125px minmax(0,1fr) 38px;align-items:center;gap:20px;min-height:158px;padding:20px 27px;transition:border-color .18s,background .18s,transform .18s;display:grid;box-shadow:inset 0 1px #fffc}.route-family-rail article:hover{background:#ffffffd1;border-color:#ab9cc9;transform:translateY(-2px)}.route-family-rail article.is-current{background:linear-gradient(145deg,#ffffffd1,#f5f0ffb3);border-color:#9d82d2}.route-family-rail article>svg{filter:drop-shadow(0 9px 10px #382a5221);width:115px;height:95px}.route-family-rail article>div{min-width:0}.route-family-rail h3{letter-spacing:-.035em;margin:0;font:800 18px Montserrat,Inter,sans-serif}.route-family-rail b{color:#777482;margin-top:7px;font-size:13px;font-weight:500;display:block}.route-family-rail article>div span{color:#777482;margin-top:14px;font-size:11px;display:block}.route-family-rail article.is-current>div span{color:#6c30d1;font-weight:750}.route-family-rail article.is-complete>div span{color:#17854a;font-weight:750}.route-family-rail article>i{color:#373642;font-size:31px;font-style:normal;font-weight:300}.family-carousel-dots{justify-content:center;gap:9px;margin-top:9px;display:flex}.family-carousel-dots button{cursor:pointer;background:#dbd9e1;border:0;border-radius:50%;width:10px;height:10px;padding:0}.family-carousel-dots button.active{background:#7240dd;transform:scale(1.12)}.route-overview-footer{justify-content:center;align-items:center;min-height:70px;padding:14px 24px 20px;display:flex}.route-overview-footer>small{color:#777482;font-size:11px}@media (width>=768px) and (height<=820px){.route-overview-shell{grid-template-rows:68px 42px auto auto 48px}.route-overview-nav{padding-inline:34px}.route-overview-hero{padding-bottom:12px}.route-overview-hero>h1{margin:4px 0 10px;font-size:32px}.route-hero-avatar{width:112px;height:112px}.route-hero-avatar .learner-avatar{border-radius:25px;width:78px;height:78px}.route-hero-step{margin-top:6px;font-size:7px}.route-overview-hero>h2{margin-top:4px;font-size:25px}.route-overview-hero>p{font-size:11px}.route-hero-actions{gap:17px;margin-top:10px}.route-start-button{min-width:275px;min-height:49px;font-size:12px}.route-listen-button i{width:43px;height:43px}.route-listen-button svg{width:23px;height:23px}.route-listen-button{gap:3px;font-size:8px}.route-family-explorer>header{margin-bottom:7px}.route-family-explorer>header h2{font-size:18px}.route-family-explorer>header p{font-size:9px}.family-carousel-arrows button{width:37px;height:37px;font-size:24px}.route-family-rail article{border-radius:16px;flex-basis:min(410px,45vw);grid-template-columns:82px minmax(0,1fr) 25px;gap:13px;min-height:112px;padding:11px 18px}.route-family-rail article>svg{width:78px;height:65px}.route-family-rail h3{font-size:13px}.route-family-rail b{margin-top:4px;font-size:9px}.route-family-rail article>div span{margin-top:7px;font-size:8px}.route-family-rail article>i{font-size:22px}.family-carousel-dots{margin-top:4px}.family-carousel-dots button{width:7px;height:7px}.route-overview-footer{min-height:48px;padding:7px 20px 10px}.route-overview-footer>small{font-size:8px}}@media (width<=767px){.route-overview-shell{grid-template-rows:68px 46px auto auto 55px}.route-overview-nav{padding-inline:17px}.route-overview-hero{padding:0 17px 18px}.route-overview-hero>h1{margin:5px 0 16px;font-size:29px}.route-hero-avatar{width:142px;height:142px}.route-hero-avatar .learner-avatar{border-radius:31px;width:98px;height:98px}.route-hero-step{margin-top:9px;font-size:8px}.route-overview-hero>h2{max-width:330px;margin-top:6px;font-size:27px}.route-overview-hero>p{font-size:12px}.route-hero-actions{align-items:center;gap:12px;width:100%;margin-top:16px}.route-start-button{flex:1;gap:12px;min-width:0;min-height:54px;padding:0 18px;font-size:12px}.route-start-button span{font-size:19px}.route-listen-button{gap:3px;min-width:56px;font-size:8px}.route-listen-button i{width:46px;height:46px}.route-listen-button svg{width:24px;height:24px}.route-family-explorer>header{width:calc(100% - 34px);margin-bottom:10px}.route-family-explorer>header h2{font-size:20px}.route-family-explorer>header p{font-size:10px}.family-carousel-arrows{gap:7px}.family-carousel-arrows button{width:38px;height:38px;font-size:24px}.route-family-rail{gap:10px;padding-inline:17px;scroll-padding-left:17px}.route-family-rail article{border-radius:17px;flex-basis:calc(100vw - 44px);grid-template-columns:86px minmax(0,1fr) 24px;gap:10px;min-height:125px;padding:13px 15px}.route-family-rail article>svg{width:80px;height:68px}.route-family-rail h3{font-size:13px}.route-family-rail b{margin-top:4px;font-size:9px}.route-family-rail article>div span{margin-top:8px;font-size:8px}.route-family-rail article>i{font-size:21px}.family-carousel-dots{gap:7px;margin-top:6px}.family-carousel-dots button{width:7px;height:7px}.route-overview-footer{min-height:55px;padding:11px 17px calc(14px + env(safe-area-inset-bottom))}.route-overview-footer>small{font-size:8px}}.native-logic{align-content:center;justify-items:center;gap:clamp(10px,2vh,20px);width:min(820px,100%);height:100%;max-height:460px;display:grid;overflow:hidden}.logic-piece-board{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(9px,1.5vw,18px);width:min(760px,100%);display:flex}.logic-piece-board>button{appearance:none;cursor:pointer;touch-action:manipulation;background:#ffffffe0;border:2px solid #e2e3ec;border-radius:24px;min-width:clamp(76px,9vw,112px);min-height:clamp(78px,12vh,122px);padding:9px;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s;box-shadow:0 10px 30px #2b254b12}.logic-piece-board>button:hover:not(:disabled),.logic-piece-board>button.is-armed{border-color:#7c3aed;transform:translateY(-4px);box-shadow:0 15px 36px #6431d226}.logic-piece-board>button.is-selected{background:#f7f3ff;border-color:#7438ec;box-shadow:0 0 0 4px #7438ec1a}.logic-piece-board>button.is-highlighted{animation:1.05s ease-in-out infinite logicPulse}.logic-piece-board>button:disabled{cursor:default;opacity:.58}.logic-tile{color:#262630;place-items:center;gap:7px;display:grid}.logic-tile>i{background:linear-gradient(145deg,color-mix(in srgb,var(--tile-main,#7c3aed) 68%,white),var(--tile-main,#7c3aed));width:clamp(42px,6vw,68px);height:clamp(42px,6vw,68px);filter:drop-shadow(0 8px 9px color-mix(in srgb,var(--tile-main,#7c3aed) 24%,transparent));border-radius:13px;font-style:normal;display:block}.logic-tile>small{color:#555766;max-width:102px;font-size:clamp(11px,1.2vw,14px);font-weight:750;line-height:1.15}.logic-tile.tone-purple{--tile-main:#7c3aed}.logic-tile.tone-blue{--tile-main:#4975e9}.logic-tile.tone-cyan{--tile-main:#15b8c8}.logic-tile.tone-yellow{--tile-main:#f2b521}.logic-tile.tone-pink{--tile-main:#e85ba7}.logic-tile.tone-green{--tile-main:#29bf7b}.logic-tile.tone-neutral{--tile-main:#77798a}.logic-tile.shape-circle>i{border-radius:50%}.logic-tile.shape-square>i,.logic-tile.shape-tile>i{border-radius:13px}.logic-tile.shape-triangle>i{clip-path:polygon(50% 5%,96% 92%,4% 92%);border-radius:0}.logic-tile.shape-diamond>i{clip-path:polygon(50% 2%,98% 50%,50% 98%,2% 50%);border-radius:0}.logic-tile.shape-hexagon>i{clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%);border-radius:0}.logic-tile.is-compact{text-align:left;grid-template-columns:auto 1fr;display:inline-grid}.logic-tile.is-compact>i{width:34px;height:34px;font-size:25px}.logic-tile.is-compact>small{font-size:12px}.logic-model{color:#6b647a;background:#f5f2ff;border-radius:18px;justify-content:center;align-items:center;gap:10px;padding:8px 16px;display:flex}.logic-model>span{letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:850}.logic-sequence{scrollbar-width:none;background:linear-gradient(110deg,#f7f4ff,#f5fbff);border:1px dashed #cdc4e9;border-radius:22px;justify-content:center;align-items:center;gap:7px;width:min(700px,100%);min-height:62px;padding:8px 12px;display:flex;overflow-x:auto}.logic-sequence button{background:#fff;border:0;border-radius:14px;flex:none;align-items:center;gap:5px;padding:5px 9px;display:flex;box-shadow:0 5px 14px #352d5514}.logic-sequence button>b{color:#6d35df}.logic-empty-sequence{align-items:center;gap:12px;display:flex}.logic-empty-sequence i{background:#ffffff8c;border:2px dashed #c9c4d7;border-radius:12px;width:46px;height:38px}.logic-zones{grid-template-columns:repeat(2,1fr);gap:14px;width:min(680px,100%);display:grid}.logic-zones button{color:#30313b;text-align:left;background:#fbfbfd;border:2px dashed #cfd2df;border-radius:22px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-height:82px;padding:14px 20px;display:grid}.logic-zones button.is-ready{cursor:pointer;background:#f8f5ff;border-style:solid;border-color:#7c3aed}.logic-zones .zone-symbol{color:#7840dd;font-size:34px}.logic-zones small{color:#838594}.logic-pairs{color:#7141da;align-items:center;gap:8px;min-height:24px;font-weight:800;display:flex}.logic-pairs>i{background:#c9b7ef;border-radius:99px;width:24px;height:3px}.logic-pairs>span{background:#f2ebff;border-radius:50%;place-items:center;min-width:24px;height:24px;display:grid}.logic-live-rule{color:#277557;background:#f0fbf6;border-radius:999px;align-items:center;gap:9px;padding:7px 14px;font-size:12px;font-weight:750;display:flex}.logic-live-rule>i{background:#2acb83;border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 5px #2acb8321}.logic-live-rule>b{color:#159660}@keyframes logicPulse{50%{transform:translateY(-5px)scale(1.045);box-shadow:0 0 0 8px #7c3aed1f}}@media (width<=767px){.native-logic{gap:8px;max-height:100%}.logic-piece-board{gap:8px}.logic-piece-board>button{border-radius:18px;min-width:66px;min-height:68px;padding:6px}.logic-tile>i{width:38px;height:38px;font-size:27px}.logic-tile>small{max-width:72px;font-size:10px}.logic-zones{gap:8px}.logic-zones button{border-radius:17px;grid-template-columns:auto 1fr;min-height:66px;padding:8px 11px}.logic-zones button small{display:none}.logic-zones .zone-symbol{font-size:26px}.logic-sequence{justify-content:flex-start;min-height:52px;padding:5px 8px}.logic-model{padding:5px 9px}.logic-model>span{display:none}}@media (height<=680px){.native-logic{gap:6px;max-height:330px}.logic-piece-board>button{min-height:62px}.logic-tile>i{width:34px;height:34px;font-size:25px}.logic-tile>small{font-size:10px}}.audio-permission-page{background:radial-gradient(at 10% 4%,#7748dc1f,#0000 34%),radial-gradient(at 91% 7%,#ffd24c1f,#0000 31%),radial-gradient(at 88% 94%,#00ccfe1a,#0000 35%),#fff;place-items:center;min-height:100dvh;padding:24px;display:grid}.audio-permission-card{text-align:center;flex-direction:column;align-items:center;width:min(520px,100%);display:flex}.audio-permission-card .kody-character-hero{width:112px;height:150px}.audio-permission-card>span{color:#6f32d5;letter-spacing:.18em;margin-top:10px;font-size:9px;font-weight:850}.audio-permission-card h1{letter-spacing:-.045em;margin:9px 0 7px;font:800 clamp(27px,4vw,38px) Montserrat,Inter,sans-serif}.audio-permission-card p{color:#716d79;max-width:450px;margin:0;font-size:13px;line-height:1.6}.audio-enable-button{color:#fff;cursor:pointer;background:linear-gradient(120deg,#222,#3a3a3a);border:0;border-radius:999px;width:min(330px,100%);min-height:58px;margin-top:24px;font-weight:850;box-shadow:0 12px 27px #19191c2b}.audio-enable-button:disabled{opacity:.65}.audio-skip-button{color:#77717d;cursor:pointer;background:0 0;border:0;margin-top:13px;padding:8px 14px;font-size:11px;font-weight:700}.audio-permission-card>small{color:#a4443e;max-width:410px;margin-top:12px;font-size:10px;line-height:1.45}.pwa-install-card{z-index:70;color:#302a37;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;border:1px solid #56426a21;border-radius:22px;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:12px;width:min(440px,100% - 36px);min-height:92px;padding:14px 14px 14px 13px;animation:.25s ease-out welcome-in;display:grid;position:fixed;bottom:18px;right:18px;box-shadow:0 20px 60px #301f412e}.pwa-install-card>img{border-radius:17px;width:60px;height:60px}.pwa-install-card b{font:800 13px Montserrat,Inter,sans-serif}.pwa-install-card p{color:#746e79;margin:5px 0 0;font-size:9px;line-height:1.45}.pwa-install-card p strong{color:#4b4351}.pwa-dismiss{color:#736c78;cursor:pointer;background:#fff;border:1px solid #e0dbe5;border-radius:50%;place-items:center;width:28px;height:28px;font-size:18px;display:grid;position:absolute;top:-9px;right:-7px;box-shadow:0 5px 14px #32233f1a}.pwa-install-action{color:#fff;cursor:pointer;background:#6f32d5;border:0;border-radius:999px;min-height:40px;padding:0 16px;font-size:9px;font-weight:850}@media (width<=600px){.audio-permission-page{padding:20px}.audio-permission-card .kody-character-hero{width:92px;height:126px}.audio-permission-card h1{font-size:28px}.audio-permission-card p{font-size:11px}.audio-enable-button{min-height:54px}.pwa-install-card{right:10px;bottom:calc(10px + env(safe-area-inset-bottom));border-radius:18px;grid-template-columns:50px minmax(0,1fr) auto;gap:9px;width:calc(100% - 20px);min-height:82px}.pwa-install-card>img{border-radius:14px;width:50px;height:50px}.pwa-install-action{padding-inline:12px}}.route-overview-page{min-height:100dvh;overflow:hidden}.route-overview-shell{grid-template-rows:82px 62px minmax(0,1fr) 112px;height:100dvh;min-height:650px;overflow:hidden}.route-overview-nav{z-index:2;position:relative}.route-journey-layout{grid-template-columns:minmax(300px,.75fr) minmax(620px,1.65fr);align-items:center;gap:clamp(42px,5vw,82px);width:min(1350px,100% - clamp(70px,9vw,142px));min-width:0;min-height:0;margin:0 auto;display:grid}.route-journey-layout .route-overview-hero{text-align:center;align-items:center;min-width:0;padding:0}.route-journey-layout .route-overview-hero>h1{max-width:390px;margin:7px 0 24px;font-size:clamp(38px,4vw,56px);line-height:1.02}.route-journey-layout .route-hero-avatar{width:clamp(190px,21vw,292px);height:clamp(190px,21vw,292px)}.route-journey-layout .route-hero-avatar .learner-avatar{border-radius:31%;width:68%;height:68%}.route-journey-layout .route-hero-step{margin-top:15px}.route-journey-layout .route-overview-hero>h2{max-width:390px;margin-top:10px;font-size:clamp(27px,2.8vw,40px);line-height:1.06}.route-journey-layout .route-overview-hero>p{max-width:340px;font-size:clamp(13px,1.35vw,17px);line-height:1.42}.route-journey-layout .route-family-explorer{flex-direction:column;justify-content:center;align-self:stretch;min-width:0;padding:0;display:flex}.route-journey-layout .route-family-explorer>h2{text-align:left;letter-spacing:-.045em;margin:0 0 clamp(14px,2vh,25px);font:800 clamp(28px,3vw,42px) Montserrat,Inter,sans-serif}.route-family-map{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;row-gap:clamp(12px,2vh,24px);width:100%;min-width:0;display:grid}.route-family-map article{text-align:center;color:#242530;flex-direction:column;align-items:center;min-width:0;display:flex}.route-family-map article:first-child{grid-column:1/3}.route-family-map article:nth-child(2){grid-column:3/5}.route-family-map article:nth-child(3){grid-column:5/7}.route-family-map article:nth-child(4){grid-column:2/4}.route-family-map article:nth-child(5){grid-column:4/6}.route-family-ring{aspect-ratio:1;background:conic-gradient(from 0deg,#2fc878 0 var(--family-progress),#d2d5dc var(--family-progress) 360deg);cursor:pointer;border:0;border-radius:50%;place-items:center;width:clamp(132px,13vw,194px);padding:5px;transition:transform .18s,box-shadow .18s;animation:5.4s ease-in-out infinite route-family-float;display:grid;position:relative;box-shadow:0 12px 28px #3026400e}.route-family-map article:nth-child(2) .route-family-ring{animation-duration:5.9s;animation-delay:-1.1s}.route-family-map article:nth-child(3) .route-family-ring{animation-duration:5.1s;animation-delay:-2.4s}.route-family-map article:nth-child(4) .route-family-ring{animation-duration:6.2s;animation-delay:-3.2s}.route-family-map article:nth-child(5) .route-family-ring{animation-duration:5.7s;animation-delay:-4.1s}.route-family-ring:hover,.route-family-ring:focus-visible{outline:0;transform:translateY(-3px);box-shadow:0 16px 34px #422c5e21,0 0 0 4px #6a30d114}.route-family-icon{background:#ffffffe3;border-radius:50%;place-items:center;width:100%;height:100%;transition:filter .2s,background .2s,box-shadow .2s;display:grid;box-shadow:inset 0 0 0 1px #fffc}.route-family-icon svg{filter:drop-shadow(0 10px 10px #362a4d21);width:64%;height:64%;overflow:visible}.route-family-map article.is-current .route-family-icon{background:linear-gradient(145deg,#fffffffa,#f5effff5);box-shadow:inset 0 0 0 2px #8051e8}.route-family-map article.is-pending .route-family-icon{background:#f9f9fab8}.route-family-map article.is-pending .route-family-icon svg{filter:grayscale()contrast(.72)opacity(.55)drop-shadow(0 7px 8px #2d2d3114)}.route-family-map h3{letter-spacing:-.035em;max-width:190px;margin:9px 0 0;font:800 clamp(14px,1.4vw,19px)/1.1 Montserrat,Inter,sans-serif}.route-family-map article>span{color:#898794;margin-top:4px;font-size:clamp(11px,1.05vw,15px)}.route-family-map article.is-current>span{color:#7340db;font-weight:800}.route-family-map article.is-complete>span{color:#188b50;font-weight:800}.route-overview-footer{flex-direction:column;gap:13px;min-height:112px;padding:4px 24px 18px}.route-overview-footer>.route-start-button{width:min(360px,100% - 48px);min-width:0;min-height:72px;padding-inline:20px}.route-overview-footer>small{font-size:12px}@keyframes route-family-float{0%,to{translate:0;rotate:-.25deg}50%{translate:0 -5px;rotate:.25deg}}@media (prefers-reduced-motion:reduce){.route-family-ring{animation:none}}@media (width>=768px) and (height<=820px){.route-overview-shell{grid-template-rows:64px 46px minmax(0,1fr) 88px;min-height:0}.route-journey-layout{grid-template-columns:minmax(240px,.7fr) minmax(530px,1.65fr);gap:34px;width:min(1160px,100% - 64px)}.route-journey-layout .route-overview-hero>h1{margin:3px 0 8px;font-size:33px}.route-journey-layout .route-hero-avatar{width:118px;height:118px}.route-journey-layout .route-hero-step{margin-top:5px;font-size:7px}.route-journey-layout .route-overview-hero>h2{margin-top:4px;font-size:23px}.route-journey-layout .route-overview-hero>p{font-size:10px}.route-journey-layout .route-family-explorer>h2{margin-bottom:7px;font-size:27px}.route-family-map{row-gap:6px}.route-family-ring{width:102px;padding:4px}.route-family-map h3{max-width:145px;margin-top:4px;font-size:11px}.route-family-map article>span{margin-top:2px;font-size:8px}.route-overview-footer{gap:5px;min-height:88px;padding:3px 20px 10px}.route-overview-footer>.route-start-button{min-height:56px;font-size:12px}.route-overview-footer>small{font-size:8px}}.activity-buttons{justify-content:flex-end}.activity-buttons .activity-primary-action{border-radius:19px;place-items:center;width:88px;min-width:88px;min-height:60px;padding:0;font-size:29px;line-height:1;display:grid}.activity-buttons .activity-primary-action.is-check{color:#28221a;background:linear-gradient(#ffe178,#ffc83d);box-shadow:0 9px 20px #e1ae153d}.activity-buttons .activity-primary-action.is-advance,.activity-buttons .activity-primary-action.awaiting-reply{color:#fff;background:linear-gradient(#42d58a,#20b968);box-shadow:0 9px 20px #1fad623d}.activity-buttons .activity-primary-action>span{display:block;transform:translateY(-1px)}.activity-buttons .why-action{color:#4f4955;min-width:112px;min-height:54px;box-shadow:none;background:#f5f4f6;border:1px solid #e3dfe7;border-radius:18px;padding:0 22px;font-size:13px;font-weight:800}.activity-buttons .why-action:hover,.activity-buttons .why-action:focus-visible{color:#6826c8;background:#faf7ff;border-color:#cbb9e9;outline:0;transform:translateY(-1px)}.activity-buttons .why-action:disabled{opacity:.45;cursor:default;transform:none}@media (width<=767px){.activity-buttons .activity-primary-action{border-radius:18px;width:100%;min-width:0;min-height:62px;font-size:30px}.activity-buttons.has-why{grid-template-columns:minmax(0,1fr) 82px;gap:9px;display:grid}.activity-buttons.has-why .why-action{border-radius:18px;width:100%;min-width:0;min-height:58px}.activity-buttons.has-why .activity-primary-action{width:82px;min-width:82px;min-height:58px}}@media (width>=768px) and (width<=1050px){.route-journey-layout{grid-template-columns:minmax(230px,.72fr) minmax(440px,1.4fr);gap:28px;width:calc(100% - 54px)}.route-journey-layout .route-overview-hero>h1{font-size:34px}.route-family-ring{width:clamp(102px,14vw,142px)}.route-family-map h3{font-size:12px}}@media (width<=767px){.route-overview-page{overflow:auto}.route-overview-shell{grid-template-rows:66px 48px auto 102px;height:auto;min-height:100dvh;overflow:visible}.route-journey-layout{width:calc(100% - 30px);display:block}.route-journey-layout .route-overview-hero{padding:0 0 28px}.route-journey-layout .route-overview-hero>h1{max-width:320px;margin:4px 0 13px;font-size:34px}.route-journey-layout .route-hero-avatar{width:136px;height:136px}.route-journey-layout .route-hero-step{margin-top:8px}.route-journey-layout .route-overview-hero>h2{max-width:320px;font-size:26px}.route-journey-layout .route-overview-hero>p{font-size:12px}.route-journey-layout .route-family-explorer{padding:0 0 18px}.route-journey-layout .route-family-explorer>h2{text-align:center;margin:0 0 18px;font-size:27px}.route-family-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.route-family-map article:nth-child(n){grid-column:auto}.route-family-map article:nth-child(5){grid-column:1/3;justify-self:center;width:50%}.route-family-ring{width:min(37vw,148px)}.route-family-map h3{max-width:145px;font-size:13px}.route-family-map article>span{font-size:10px}.route-overview-footer{z-index:5;min-height:102px;padding:8px 15px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(#fff0,#fffffff5 22%);position:sticky;bottom:0}.route-overview-footer>.route-start-button{width:calc(100% - 44px);min-height:62px;font-size:13px}.route-overview-footer>small{font-size:8px}}
