@font-face{font-family:Fredoka;src:url(../fonts/fredoka-bold.ttf)format("truetype");font-style:normal;font-weight:400 700;font-display:swap}#app{position:relative;top:0;left:0}#background{z-index:-1;pointer-events:none;min-height:100dvh;position:fixed;inset:0}.page-bg-primary,.page-primary{background:var(--ww-background,#dcf3ef);margin:0}.page-bg-rekenen,.page-rekenen{background:#fff7b3;background:var(--gradient-rekenen)}.page-bg-taal,.page-taal{background:var(--gradient-taal)}.page-bg-playground,.page-playground{background:#ff6b6b;background:var(--gradient-playground)}.page-bg-secondary,.page-secondary{background-color:#4ecdc4}.themed-page-background{isolation:isolate;position:relative;background:0 0!important}.themed-page-background:before{z-index:-1;pointer-events:none;content:"";background:var(--page-background,transparent);min-height:100dvh;position:fixed;inset:0}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;height:100%;min-height:100%;font-size:16px}body{font-family:var(--font-family);background-color:var(--ww-background,#dcf3ef);color:var(--color-text);line-height:var(--line-height-normal);touch-action:pan-x pan-y;-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch;min-height:100vh;padding-top:var(--safe-area-top-adjusted);padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right);padding-bottom:var(--safe-area-inset-bottom);position:relative;overflow-x:hidden}div,h1,h2,h3,h4,h5,h6,p,span{-webkit-user-select:text;user-select:text}a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn:active,.game-button:active,.level-button:active,.profile-card:active,a:active,button:active,.btn:focus:not(:focus-visible),a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}@media (hover:hover) and (pointer:fine){.btn-ghost:hover,.btn-primary:hover,.btn-secondary:hover,.btn:hover,.emoji-option:hover,.game-button:hover,.level-card:hover,.profile-card:hover,.world-card:hover,a:hover,button:hover{cursor:pointer}}@media (hover:none){.btn:active,a:active,button:active{opacity:.8;transition:none;transform:scale(.95)}.btn-primary:active{filter:brightness(.9)}.game-button:active,.level-card:active,.profile-card:active,.world-card:active{transform:scale(.98)}}.glass-surface{background:var(--color-surface-glass);-webkit-backdrop-filter:blur(var(--blur-md))}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md)}.card-glass{padding:var(--spacing-lg)}.card-glass,.page-header{background:var(--color-surface-glass);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));border-radius:var(--radius-lg)}.page-header{margin-bottom:var(--spacing-xl);padding:var(--spacing-md);justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}.page-header h1{font-size:var(--font-size-3xl);color:var(--color-text-inverse);margin:0}.btn,.page-header h1{font-weight:var(--font-weight-semibold)}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-base);border:none;text-decoration:none;display:inline-flex}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover{background:var(--color-primary-dark);transform:translateY(-2px)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:var(--border-width-medium) solid var(--color-border)}.btn-secondary:hover{background:var(--color-border)}.btn-ghost{color:var(--color-text-inverse);background:#fff3}.btn-ghost:hover{background:#ffffff4d}.btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.form-group{margin-bottom:var(--spacing-lg)}.form-label{margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-inverse);display:block}.form-input,.form-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:var(--border-width-medium) solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-size-base);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-base)}.form-input:focus,.form-select:focus{border-color:var(--color-primary);outline:none}.modal-overlay{z-index:var(--z-modal);padding:var(--spacing-md);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface-glass);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));padding:var(--spacing-xl);border-radius:var(--radius-lg);width:100%;max-width:500px;animation:.3s ease-out slideInUp}.modal h2{margin-bottom:var(--spacing-lg);font-size:var(--font-size-2xl)}.coins,.modal h2{color:var(--color-text-inverse)}.coins{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);white-space:nowrap;background:#fff3;display:flex}.coin-icon{font-size:1.5rem}.coin-count{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-inverse)}.stat,.stat-card{align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));border-radius:var(--radius-md);display:flex}.stat-icon{font-size:2.5rem}.stat-value{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-text-inverse);margin:0}.stat-label{font-size:var(--font-size-sm);color:var(--color-text);text-transform:uppercase;letter-spacing:.05em;margin:0}.stat-item{gap:var(--spacing-sm);padding:var(--spacing-md);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:var(--radius-md);background:#ffffff80;border:1px solid #fffc;flex-direction:column;display:flex}.stat-item .stat-label{color:#666}.stat-item .stat-value{font-size:var(--font-size-2xl);color:var(--color-primary)}.container{z-index:0;margin:0 auto;position:relative}.game-button,.interactive-card,.world-card{padding:var(--spacing-lg);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transition:all var(--transition-base);cursor:pointer;border:3px solid #0000;position:relative}@media (width>=768px){.game-button,.interactive-card,.world-card{padding:var(--spacing-xl)}}.game-button:not(:disabled):hover,.interactive-card:hover,.world-card:not(.locked):hover{box-shadow:var(--shadow-xl);transform:translateY(-4px)}.game-button:disabled,.world-card.locked{opacity:.6;cursor:not-allowed}.button-content h2,.card-title,.world-header h2{font-size:var(--font-size-3xl);margin:0 0 var(--spacing-sm) 0;font-weight:var(--font-weight-semibold)}.button-content p,.card-description,.world-description{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg)}.progress-section{max-width:1000px;padding:var(--spacing-md);margin:0 auto}@media (width>=768px){.progress-section{padding:var(--spacing-lg)}}.progress-section h2{font-size:var(--font-size-3xl);color:var(--color-text-inverse);margin-bottom:var(--spacing-xl);text-align:center;max-width:100%}.progress-stats,.quick-stats,.stats-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}@media (width<=640px){.progress-stats,.quick-stats,.stats-grid{gap:var(--spacing-md);grid-template-columns:1fr}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus:not(:focus-visible),*,:focus{outline:none}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}button{cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none}.text-center{text-align:center}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-4{gap:2rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}.animate-fadeIn{animation:.3s ease-out fadeIn}.animate-slideInUp{animation:.4s ease-out slideInUp}.animate-bounce{animation:.6s ease-in-out infinite bounce}.animate-pulse{animation:2s ease-in-out infinite pulse}.animate-shake{animation:.5s ease-in-out shake}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.page-container{min-height:100vh;padding:var(--spacing-sm)}@media (width>=768px){.page-container{padding:var(--spacing-lg)}}.main-menu-page{min-height:100vh;padding:.75rem}@media (width>=768px){.main-menu-page{padding:1rem}}.emoji-grid{justify-content:center;gap:var(--spacing-sm);flex-wrap:wrap;padding:0;display:flex}.emoji-grid button{flex:60px;max-width:60px}.emoji-option{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);aspect-ratio:1;background:#fff3;border:2px solid #0000;justify-content:center;align-items:center;padding:.75rem .5rem;font-size:1.5rem;display:flex}@media (width>=768px){.emoji-option{font-size:1.8rem}}.emoji-option.selected,.emoji-option:hover{border-color:var(--color-primary);transform:scale(1.1)}.auth-card,.intro-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-lg);max-width:600px;margin:0 auto}@media (width>=768px){.auth-card,.intro-card{padding:var(--spacing-xl)}}.auth-header,.intro-header{text-align:center;margin-bottom:var(--spacing-xl)}.auth-header .intro-icon,.intro-header .intro-icon{margin-bottom:var(--spacing-md);font-size:4rem;display:block}.auth-header h2,.intro-header h2{font-size:var(--font-size-3xl);color:var(--color-text);margin:0}.intro-stats{gap:var(--spacing-md);margin:var(--spacing-xl) 0;grid-template-columns:repeat(2,1fr);display:grid}@media (width<=640px){.intro-stats{grid-template-columns:1fr}}.intro-story{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);color:var(--color-text);margin-bottom:var(--spacing-xl);text-align:center}.profiles-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;display:grid}@media (width>=768px){.profiles-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}}.profile-card{align-items:center;gap:var(--spacing-sm);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:2px solid #0000;flex-direction:column;padding:1rem;display:flex}@media (width>=768px){.profile-card{border:3px solid #0000;padding:1.5rem}}.profile-card:focus,.profile-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-4px)}.profile-card.create-new{border:3px dashed var(--color-border);opacity:.7}.profile-card.create-new:hover{opacity:1;border-color:var(--color-secondary)}.profile-emoji{font-size:3rem}.profile-emoji,.profile-name{color:var(--color-text-inverse)}.profile-name{font-size:1rem;font-weight:var(--font-weight-semibold)}.levels-grid,.worlds-grid{gap:var(--spacing-lg);grid-template-columns:1fr;display:grid}@media (width>=768px){.levels-grid,.worlds-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.levels-grid,.worlds-grid{grid-template-columns:repeat(3,1fr)}}.level-card,.world-card{padding:var(--spacing-lg);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transition:all var(--transition-base);cursor:pointer;color:inherit;border:3px solid #0000;text-decoration:none;position:relative}@media (width>=768px){.level-card,.world-card{padding:var(--spacing-xl)}}.level-card:not(.locked):hover,.world-card:not(.locked):hover{box-shadow:var(--shadow-xl);transform:translateY(-4px)}.level-card.locked,.world-card.locked{opacity:.6;cursor:not-allowed}.level-icon,.world-icon{margin-bottom:var(--spacing-md);font-size:3rem;display:block}.level-header h2,.world-header h2{font-size:var(--font-size-3xl);margin:0 0 var(--spacing-sm) 0;font-weight:var(--font-weight-semibold)}.level-description,.world-description{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg)}.btn-start-large{width:100%;padding:var(--spacing-lg) var(--spacing-xl);background:var(--gradient-primary);color:var(--color-text-inverse);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md);border:none}.btn-start-large:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn-start-large:active{transform:translateY(0)}.btn-icon{border-radius:var(--radius-full);cursor:pointer;width:2.5rem;height:2.5rem;transition:all var(--transition-base);font-size:var(--font-size-xl);background:#fff3;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon:hover{background:#ffffff4d;transform:scale(1.1)}.greeting-banner{width:100%;font-weight:var(--font-weight-semibold);color:var(--color-text-inverse);margin-bottom:var(--spacing-xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;font-size:2rem;display:flex}.greeting-banner .greeting-emoji{font-size:4rem}@media (width>=768px){.greeting-banner{flex-direction:row}.greeting-banner .greeting-emoji{font-size:2rem}}.error-message{border:2px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-weight:var(--font-weight-semibold);text-align:center;margin-bottom:var(--spacing-md);background:#fee;padding:1rem;animation:.4s shake}.admin-section{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-2xl);box-shadow:var(--shadow-lg);margin-bottom:var(--spacing-2xl)}.admin-section h2{margin-bottom:var(--spacing-lg);font-size:var(--font-size-2xl);color:var(--color-primary)}.admin-section h3{margin-bottom:var(--spacing-md);font-size:var(--font-size-xl);color:var(--color-primary)}.tassie-help-button{bottom:calc(var(--safe-area-inset-bottom,0px) + 1.5rem);right:calc(var(--safe-area-inset-right,0px) + 1rem);background:var(--ww-paper,#fffdf5);width:44px;height:44px;color:var(--ww-teal,#167c80);cursor:pointer;box-shadow:var(--ww-shadow);z-index:100;border:3px solid #fff;border-radius:1rem;justify-content:center;align-items:center;font-size:1.25rem;font-weight:700;transition:all .2s;display:flex;position:fixed}.tassie-help-button:hover{transform:scale(1.1);box-shadow:0 6px 20px #214f5522}.tassie-help-button:active{transform:scale(.95)}.tassie-help-button.small{border-width:2px;width:36px;height:36px;font-size:1rem}.game-page{min-height:100vh;padding:var(--spacing-md)}.game-center,.game-results{text-align:center;max-width:820px;margin:2rem auto}.game-content{text-align:center;width:min(100%,1100px);margin:2rem auto}.exercise-number{color:#fff;text-shadow:0 2px 4px #0003;margin-bottom:1rem;font-weight:600}.prompt-text{margin-bottom:1.5rem;font-size:1.25rem;font-weight:600;line-height:1.4}@media (width>=768px){.prompt-text{margin-bottom:2rem;font-size:1.5rem}}.prompt-math{margin-bottom:1.5rem;font-family:Courier New,monospace;font-size:2rem;font-weight:700}@media (width>=768px){.prompt-math{margin-bottom:2rem;font-size:2.5rem}}.prompt-emoji{margin-bottom:1.5rem;font-size:3rem}@media (width>=768px){.prompt-emoji{margin-bottom:2rem;font-size:4rem}}.prompt-visual{letter-spacing:.25rem;margin-bottom:1.5rem;font-size:2.5rem}@media (width>=768px){.prompt-visual{margin-bottom:2rem;font-size:3rem}}.game-options{grid-template-columns:repeat(var(--game-option-columns,2),minmax(0,1fr));gap:.75rem;margin-top:1.5rem;display:grid}@media (width<=600px){.game-options{grid-template-columns:1fr}}@media (width>=768px){.game-options{gap:1rem;margin-top:2rem}}.game-option{min-width:0;min-height:64px;color:var(--ww-ink);overflow-wrap:anywhere;font-size:1.25rem;font-weight:700;font-family:var(--font-family);background:var(--ww-answer-surface);border:2px solid var(--ww-answer-border);box-shadow:inset 0 1px 0 #fff,var(--ww-answer-shadow);cursor:pointer;border-radius:1.125rem;padding:1rem;transition:color .16s,background .16s,border-color .16s,box-shadow .16s,transform .16s}@media (width>=768px){.game-option{padding:1.5rem;font-size:1.5rem}}.game-option:hover:not(:disabled){color:#fff;background:var(--ww-action,var(--ww-teal));border-color:var(--ww-action,var(--ww-teal));box-shadow:0 5px 0 color-mix(in srgb,var(--ww-action,var(--ww-teal)) 75%,#173a40);transform:translateY(-2px)}.game-option:focus-visible{color:#fff;background:var(--ww-action,var(--ww-teal));border-color:var(--ww-action,var(--ww-teal));outline:4px solid var(--ww-gold);outline-offset:3px;box-shadow:0 5px 0 color-mix(in srgb,var(--ww-action,var(--ww-teal)) 75%,#173a40);transform:translateY(-2px)}.game-option:disabled{opacity:.6;cursor:not-allowed}.game-option:active:not(:disabled){transform:translateY(1px)}.results-card{text-align:center;background:#fff;border-radius:1.5rem;padding:2rem 1.5rem;box-shadow:0 8px 32px #0000001a}@media (width>=768px){.results-card{padding:3rem 2rem}}.results-card h1{margin-bottom:1rem;font-size:2rem}@media (width>=768px){.results-card h1{font-size:2.5rem}}.results-card .score{color:#4caf50;margin:1rem 0;font-size:3rem;font-weight:700}@media (width>=768px){.results-card .score{font-size:4rem}}.results-card p{color:#666;margin-bottom:1.5rem;font-size:1.25rem}@media (width>=768px){.results-card p{margin-bottom:2rem;font-size:1.5rem}}.results-card .coins-earned{color:#ff9800;margin:.5rem 0;font-size:1.5rem;font-weight:700}@media (width>=768px){.results-card .coins-earned{font-size:1.8rem}}.game-results.treasure-results{width:100%;max-width:1120px;margin-block:clamp(.75rem,2vh,1.5rem)}.results-card--treasure{background:#fffffff2;border:4px solid #ffffffb8;border-radius:clamp(1.5rem,3vw,2.25rem);width:100%;padding:clamp(1rem,2.5vw,1.75rem)}.results-card--treasure .result-score-strip{flex-wrap:wrap;justify-content:center;align-items:center;gap:.55rem;margin:0 0 .55rem;display:flex}.results-card--treasure .result-score-strip .attempts,.results-card--treasure .result-score-strip .coins-earned,.results-card--treasure .result-score-strip .score{color:#286050;background:#e7f7ec;border:3px solid #fff;border-radius:999px;justify-content:center;align-items:center;min-height:42px;margin:0;padding:.35rem .85rem;font-size:clamp(1rem,2vw,1.3rem);line-height:1;display:inline-flex;box-shadow:0 4px #214f551f}.results-card--treasure .result-score-strip .coins-earned{color:#9a5a00;background:#fff1bd}.results-card--treasure .result-score-strip .attempts{color:#4c4c85;background:#eeebff}.results-card--treasure.results-card--treasure>.reward-banner.reward-banner{border-width:2px;border-radius:999px;width:auto;min-height:54px;margin:.2rem auto 0;padding:.4rem .75rem;display:inline-flex;box-shadow:0 4px #704c1224}.results-card--treasure.results-card--treasure>.reward-banner.reward-banner .reward-emoji{font-size:2rem}@media (width<=620px){.results-card--treasure{padding:.65rem}.results-card--treasure .result-score-strip{gap:.35rem;margin-bottom:.35rem}.results-card--treasure .result-score-strip .attempts,.results-card--treasure .result-score-strip .coins-earned,.results-card--treasure .result-score-strip .score{border-width:2px;min-height:36px;padding:.25rem .65rem;font-size:.9rem}}.results-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.results-actions button{font-size:1.1rem;font-weight:700;font-family:var(--font-family);cursor:pointer;border:none;border-radius:.75rem;padding:.875rem 1.5rem;transition:all .2s}@media (width>=768px){.results-actions button{padding:1rem 2rem;font-size:1.2rem}}.results-actions button:hover{transform:scale(1.05)}.results-actions .btn-primary{color:#fff;background:#4caf50}.results-actions .btn-primary:hover{background:#43a047}.results-actions .btn-secondary{color:#333;background:#e0e0e0}.results-actions .btn-secondary:hover{background:#d0d0d0}.highlight-active{border-radius:var(--radius-md);scroll-margin:1rem;position:relative}:root{--safe-area-inset-top:env(safe-area-inset-top);--safe-area-inset-right:env(safe-area-inset-right);--safe-area-inset-bottom:env(safe-area-inset-bottom);--safe-area-inset-left:env(safe-area-inset-left);--safe-area-top-adjusted:max(5px, calc(env(safe-area-inset-top) - 5px));--color-primary:#667eea;--color-primary-dark:#5568d3;--color-primary-light:#8097f0;--color-primary-rgb:102, 126, 234;--color-secondary:#4ecdc4;--color-secondary-dark:#3db8af;--color-secondary-light:#6fd9d1;--color-secondary-rgb:78, 205, 196;--color-accent:#ffe66d;--color-accent-dark:#f0d45a;--color-accent-light:#fff080;--color-accent-rgb:255, 230, 109;--color-success:#06d6a0;--color-success-light:#4caf50;--color-success-rgb:6, 214, 160;--color-error:#ef476f;--color-error-light:#f44336;--color-error-rgb:239, 71, 111;--color-warning:orange;--color-warning-light:#f39c12;--color-warning-rgb:255, 165, 0;--color-info:#4ecdc4;--color-info-light:#3498db;--color-info-rgb:78, 205, 196;--color-bg:#fff8f0;--color-bg-alt:#f8f9fa;--color-surface:#fff;--color-surface-rgb:255, 255, 255;--color-surface-glass:var(--color-overlay-dark-medium);--color-surface-elevated:#fff;--color-text:#2d3142;--color-text-light:#5a6175;--color-text-inverse:#fff;--color-text-rgb:45, 49, 66;--color-border:#e8ded2;--color-border-light:#dee2e6;--color-divider:#e0e0e0;--color-overlay-light:#ffffff1a;--color-overlay-medium:#fff3;--color-overlay-strong:#ffffff4d;--color-overlay-opaque:#ffffff80;--color-overlay-solid:#ffffffb3;--color-overlay-bright:#fffc;--color-overlay-near-white:#fffffff2;--color-overlay-dark-light:#0000000d;--color-overlay-dark-medium:#0000001a;--color-overlay-dark-strong:#0003;--color-overlay-dark-opaque:#00000080;--color-overlay-dark-modal:#000000b3;--color-success-alpha-light:#06d6a033;--color-success-alpha-medium:#4caf50f2;--color-error-alpha-light:#ef476f33;--color-warning-alpha-light:#ff9800f2;--color-bg-error:#fff5f5;--color-bg-error-light:#fee;--color-bg-success:#d4edda;--color-bg-danger:#f8d7da;--color-bg-info:#e3f2fd;--color-bg-muted:#d4cabe;--color-bg-orange:#e67e22;--text-shadow-sm:2px 2px 4px #0000004d;--text-shadow-md:3px 3px 6px #0003;--text-shadow-lg:4px 4px 8px #00000040;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--font-family:"Fredoka", sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.75rem;--font-size-4xl:2rem;--font-size-5xl:2.5rem;--font-size-6xl:3rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.6;--shadow-color:0, 0, 0;--shadow-sm:0 2px 4px rgba(var(--shadow-color), .1);--shadow-md:0 4px 8px rgba(var(--shadow-color), .12);--shadow-lg:0 8px 16px rgba(var(--shadow-color), .15);--shadow-xl:0 12px 24px rgba(var(--shadow-color), .18);--shadow-2xl:0 10px 40px rgba(var(--shadow-color), .2);--shadow-focus:0 0 0 3px rgba(var(--color-primary-rgb), .1);--blur-sm:5px;--blur-md:10px;--blur-lg:20px;--opacity-disabled:.5;--opacity-hover:.8;--opacity-subtle:.6;--opacity-muted:.9;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-full:9999px;--border-width-thin:1px;--border-width-medium:2px;--border-width-thick:3px;--border-width-heavy:4px;--transition-fast:.15s ease-out;--transition-base:.25s ease-out;--transition-slow:.35s ease-out;--z-dropdown:1000;--z-modal:2000;--z-tooltip:3000;--z-notification:4000;--z-helper:4000;--gradient-primary:linear-gradient(135deg, #667eea, #764ba2);--gradient-secondary:linear-gradient(135deg, #4ecdc4, #e8f4f3);--gradient-accent:linear-gradient(135deg, #ffe66d, #fff8f0);--gradient-warm:linear-gradient(135deg, var(--color-accent) 0%, var(--color-secondary) 100%);--gradient-rekenen:linear-gradient(135deg, #66a6ff, #66a6ff 50%, #89f7fe);--gradient-playground:linear-gradient(135deg, #ff9f43, #feca57 50%, #ff6b6b);--gradient-taal:linear-gradient(135deg, var(--color-accent) 0%, var(--color-secondary) 100%);--gradient-success:linear-gradient(90deg, #4caf50, #8bc34a 50%, #ffc107);--gradient-world-green:linear-gradient(135deg, #a8e6cf, #e8f5e9);--gradient-world-blue:linear-gradient(135deg, #81c4e8, #e3f2fd);--gradient-world-yellow:linear-gradient(135deg, #ffd966, #fff3e0);--gradient-world-purple:linear-gradient(135deg, #e1bee7, #f3e5f5);--color-glass-bg:var(--color-overlay-dark-medium);--color-glass-text:var(--color-text-inverse);--color-muted-text:rgba(var(--color-surface-rgb), .8);--color-input-bg:var(--color-surface);--color-input-border:var(--color-border);--color-input-focus:var(--color-primary);--icon-sm:1.5rem;--icon-md:2.5rem;--icon-lg:3rem;--icon-xl:4rem;--ww-content-max:1120px;--ww-background:#dcf3ef;--ww-orbit:#ffffff4f;--ww-orbit-large-inner:clamp(170px, 24vmin, 260px);--ww-orbit-large-outer:calc(var(--ww-orbit-large-inner) + clamp(40px, 5vmin, 56px));--ww-orbit-small-inner:clamp(110px, 16vmin, 170px);--ww-orbit-small-outer:calc(var(--ww-orbit-small-inner) + clamp(34px, 4.5vmin, 48px));--ww-neutral-background:radial-gradient(circle at 105% 0, transparent 0 var(--ww-orbit-large-inner), var(--ww-orbit) calc(var(--ww-orbit-large-inner) + 1px) var(--ww-orbit-large-outer), transparent calc(var(--ww-orbit-large-outer) + 1px)), radial-gradient(circle at -5% 100%, transparent 0 var(--ww-orbit-small-inner), var(--ww-orbit) calc(var(--ww-orbit-small-inner) + 1px) var(--ww-orbit-small-outer), transparent calc(var(--ww-orbit-small-outer) + 1px)), var(--ww-background);--ww-paper:#fffdf5;--ww-ink:#214f55;--ww-muted:#47726e;--ww-teal:#167c80;--ww-focus:#58aa99;--ww-gold:#efbd51;--ww-line:#d3e7df;--ww-savings-surface:linear-gradient(140deg, #fff4bd, #fffdf3 66%);--ww-achievement-surface:linear-gradient(145deg, #f2eaff, #fff 68%);--ww-treasure-surface:linear-gradient(145deg, #dcf7ef, #fff 68%);--ww-radius:1.5rem;--ww-shadow:0 5px 0 #43696318}.ww-app-shell{min-height:calc(100dvh - var(--safe-area-top-adjusted) - var(--safe-area-inset-bottom));color:var(--ww-ink);--ww-action:var(--world-accent,var(--ww-teal));--ww-answer-surface:linear-gradient(145deg, color-mix(in srgb, var(--ww-action) 5%, #fff), color-mix(in srgb, var(--ww-action) 14%, #fff));--ww-answer-border:color-mix(in srgb, var(--ww-action) 35%, #fff);--ww-answer-shadow:0 4px 0 color-mix(in srgb, var(--ww-action) 18%, transparent)}.ww-app-shell:before{content:"";background:var(--page-background,var(--ww-background))}.ww-app-shell:before,.ww-game-scenery{z-index:-1;pointer-events:none;position:fixed;inset:0}.ww-app-shell:not([data-world]):before{background:var(--ww-neutral-background)}.ww-page{min-height:calc(100dvh - var(--safe-area-top-adjusted) - var(--safe-area-inset-bottom));padding:clamp(.9rem,3vw,2rem)}.ww-container{width:min(100%,1000px);margin-inline:auto}.ww-surface{border-radius:var(--ww-radius);border:3px solid #fff}.ww-button,.ww-icon-button,.ww-surface{color:var(--ww-ink);background:var(--ww-paper);box-shadow:var(--ww-shadow)}.ww-button,.ww-icon-button{min-height:48px;font:inherit;cursor:pointer;border:0;border-radius:1rem;justify-content:center;align-items:center;gap:.6rem;padding:.65rem 1rem;font-weight:700;text-decoration:none;transition:transform .16s,box-shadow .16s,outline-color .16s;display:inline-flex}.ww-button:hover:not(:disabled),.ww-icon-button:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px #214f5517}.ww-button:focus-visible,.ww-icon-button:focus-visible{outline:4px solid var(--ww-focus);outline-offset:3px;transform:translateY(-3px);box-shadow:0 8px #214f5517}.ww-button:disabled,.ww-icon-button:disabled{cursor:wait;opacity:.65}.ww-button:active:not(:disabled),.ww-icon-button:active:not(:disabled){transform:translateY(1px)}.ww-icon-button{min-width:48px;height:48px;padding:.5rem .8rem}.ww-button--primary{color:#fff;background:var(--ww-action,var(--ww-teal));box-shadow:0 4px 0 color-mix(in srgb,var(--ww-action,var(--ww-teal)) 75%,#173a40)}.ww-kicker{color:var(--ww-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:700}.ww-footer{justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;padding-bottom:3rem;display:flex}.ww-app-shell[data-game] .exercise-number{color:var(--ww-ink);text-shadow:none}.tassie-sprite{background-image:url(../sprites/tassie-atlas.webp);background-size:600% 600%}.tassie-sprite[data-tassie=happy]{background-position:0 0}.tassie-sprite[data-tassie=wink]{background-position:20% 0}.tassie-sprite[data-tassie=curious]{background-position:40% 0}.tassie-sprite[data-tassie=thinking]{background-position:60% 0}.tassie-sprite[data-tassie=surprised]{background-position:80% 0}.tassie-sprite[data-tassie=proud]{background-position:100% 0}.tassie-sprite[data-tassie=encouraging]{background-position:0 20%}.tassie-sprite[data-tassie=sleepy]{background-position:20% 20%}.tassie-sprite[data-tassie=joy]{background-position:40% 20%}.tassie-sprite[data-tassie=pleading]{background-position:60% 20%}.tassie-sprite[data-tassie=yummy]{background-position:80% 20%}.tassie-sprite[data-tassie=heart-eyes]{background-position:100% 20%}.tassie-sprite[data-tassie=loved]{background-position:0 40%}.tassie-sprite[data-tassie=cool]{background-position:20% 40%}.tassie-sprite[data-tassie=zany]{background-position:40% 40%}.tassie-sprite[data-tassie=tongue-wink]{background-position:60% 40%}.tassie-sprite[data-tassie=angry]{background-position:80% 40%}.tassie-sprite[data-tassie=dizzy]{background-position:100% 40%}.tassie-sprite[data-tassie=starstruck]{background-position:0 60%}.tassie-sprite[data-tassie=pensive]{background-position:20% 60%}.tassie-sprite[data-tassie=original]{background-position:40% 60%}.tassie-sprite[data-tassie=beach]{background-position:60% 60%}.tassie-sprite[data-tassie=forest]{background-position:80% 60%}.tassie-sprite[data-tassie=underwater]{background-position:100% 60%}.tassie-sprite[data-tassie=castle]{background-position:0 80%}.tassie-sprite[data-tassie=space]{background-position:20% 80%}.tassie-sprite[data-tassie=jungle]{background-position:40% 80%}.tassie-sprite[data-tassie=dinosaurs]{background-position:60% 80%}.tassie-sprite[data-tassie=jungle-binoculars]{background-position:80% 80%}.tassie-sprite[data-tassie=dinosaur-magnifier]{background-position:100% 80%}.tassie-sprite[data-tassie=castle-key]{background-position:0 100%}.tassie-sprite[data-tassie=toy-conductor]{background-position:20% 100%}.tassie-sprite[data-tassie=candy-chef]{background-position:40% 100%}.tassie-sprite[data-tassie=cyber-inventor]{background-position:60% 100%}.tassie-sprite[data-tassie=school-explorer]{background-position:80% 100%}.tassie-sprite{width:var(--tassie-size,96px);aspect-ratio:1;vertical-align:middle;pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:50% 85%;animation-duration:var(--tassie-duration,8s);animation-delay:var(--tassie-delay,0s);background-repeat:no-repeat;flex:none;animation-timing-function:ease-in-out;animation-iteration-count:infinite;display:inline-block}.tassie-sprite[data-motion=float]{animation-name:tassie-sprite-float}.tassie-sprite[data-motion=swim]{animation-name:tassie-sprite-swim}.tassie-sprite[data-motion=walk]{animation-name:tassie-sprite-walk}.tassie-sprite[data-motion=orbit]{animation-name:tassie-sprite-orbit}.tassie-sprite--paused{animation-play-state:paused}@keyframes tassie-sprite-float{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-8%)rotate(3deg)}}@keyframes tassie-sprite-swim{0%,to{transform:translate(-8%,2%)rotate(-7deg)}50%{transform:translate(8%,-8%)rotate(6deg)}}@keyframes tassie-sprite-walk{0%,to{transform:translate(-5%)rotate(-4deg)}25%,75%{transform:translateY(-4%)}50%{transform:translate(5%)rotate(4deg)}}@keyframes tassie-sprite-orbit{0%,to{transform:translate(-5%)rotate(-12deg)}50%{transform:translate(5%,-10%)rotate(12deg)}}@media (prefers-reduced-motion:reduce){.tassie-sprite{animation:none}}.install-prompt[data-v-76d61b01],.update-prompt[data-v-76d61b01]{z-index:9999;animation:.3s ease-out slideUp-76d61b01;position:fixed;bottom:2rem;right:2rem}@keyframes slideUp-76d61b01{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.install-content[data-v-76d61b01],.update-content[data-v-76d61b01]{border-radius:var(--radius-lg);box-shadow:0 10px 40px var(--color-overlay-dark-strong);background:#fff;align-items:center;gap:1rem;max-width:400px;padding:1.5rem;display:flex}.install-icon[data-v-76d61b01],.update-icon[data-v-76d61b01]{font-size:2rem}.install-text[data-v-76d61b01],.update-text[data-v-76d61b01]{flex:1}.install-text strong[data-v-76d61b01],.update-text strong[data-v-76d61b01]{color:var(--color-primary);margin-bottom:.25rem;display:block}.install-text p[data-v-76d61b01],.update-text p[data-v-76d61b01]{color:var(--color-text-light);margin:0;font-size:.9rem}.install-btn[data-v-76d61b01],.update-btn[data-v-76d61b01]{background:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-md);cursor:pointer;border:none;padding:.75rem 1.5rem;font-weight:600;transition:all .2s}.install-btn[data-v-76d61b01]:hover,.update-btn[data-v-76d61b01]:hover{background:var(--color-primary-dark);transform:translateY(-2px)}.dismiss-btn[data-v-76d61b01]{color:var(--color-text-light);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:.75rem 1rem;transition:all .2s}.dismiss-btn[data-v-76d61b01]:hover{border-color:var(--color-text);color:var(--color-text)}@media (width<=640px){.install-prompt[data-v-76d61b01],.update-prompt[data-v-76d61b01]{bottom:1rem;left:1rem;right:1rem}.install-content[data-v-76d61b01],.update-content[data-v-76d61b01]{text-align:center;flex-direction:column}.dismiss-btn[data-v-76d61b01],.install-btn[data-v-76d61b01],.update-btn[data-v-76d61b01]{width:100%}}.achievement-popup-overlay[data-v-86b11c42]{z-index:10000;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.achievement-popup[data-v-86b11c42]{text-align:center;background:#fff;border-radius:1.5rem;width:100%;max-width:320px;padding:2rem;animation:.5s ease-out bounce-in-86b11c42;box-shadow:0 20px 60px #0000004d}@keyframes bounce-in-86b11c42{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.popup-header[data-v-86b11c42]{justify-content:center;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.popup-header h2[data-v-86b11c42]{color:#333;margin:0;font-size:1.5rem}.popup-header .celebration[data-v-86b11c42]{font-size:1.5rem;animation:.5s ease-in-out infinite wiggle-86b11c42}@keyframes wiggle-86b11c42{0%,to{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}.badge-display[data-v-86b11c42]{margin:1rem 0}.badge-icon[data-v-86b11c42]{font-size:5rem;animation:.5s ease-out .3s both pop-scale-86b11c42;display:inline-block}@keyframes pop-scale-86b11c42{0%{transform:scale(0)}70%{transform:scale(1.2)}to{transform:scale(1)}}.badge-name[data-v-86b11c42]{color:#333;margin:0 0 .5rem;font-size:1.5rem}.badge-description[data-v-86b11c42]{color:#666;margin:0 0 1rem}.coin-bonus[data-v-86b11c42]{color:#f9a825;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700;animation:1s ease-in-out infinite pulse-86b11c42}@keyframes pulse-86b11c42{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.dismiss-btn[data-v-86b11c42]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:2rem;padding:.75rem 2rem;font-size:1.1rem;font-weight:700;transition:transform .2s}.dismiss-btn[data-v-86b11c42]:hover{transform:scale(1.05)}.achievement-popup-enter-active[data-v-86b11c42]{transition:opacity .3s}.achievement-popup-leave-active[data-v-86b11c42]{transition:opacity .2s}.achievement-popup-enter-from[data-v-86b11c42],.achievement-popup-leave-to[data-v-86b11c42]{opacity:0}@font-face{font-family:Fredoka Launch;src:url(../fonts/fredoka-bold.ttf)format("truetype");font-weight:700;font-display:block}.brand-launch[data-v-03a72cb0]{z-index:30000;color:#244f56;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#dcf3ef;place-items:center;display:grid;position:fixed;inset:0}.brand-launch__scenery[data-v-03a72cb0]{background:var(--ww-neutral-background);opacity:0;transform-origin:100% 0;position:absolute;inset:0;transform:scale(1.06)}.brand-launch__identity[data-v-03a72cb0]{aspect-ratio:4/5;z-index:1;width:min(72%,500px,62dvh);position:relative;container-type:inline-size}.brand-launch--android .brand-launch__identity[data-v-03a72cb0]{width:min(240px,72%,62dvh)}.brand-launch__tassie[data-v-03a72cb0]{z-index:1;-o-object-fit:contain;object-fit:contain;width:68%;height:62%;position:absolute;top:1%;left:16%}.brand-launch__name[data-v-03a72cb0]{text-align:center;width:100%;font:700 16.5cqw/.98 Fredoka Launch,sans-serif;position:absolute;top:65%}.brand-launch.is-playing[data-v-03a72cb0]{animation:1.15s both launch-reveal-app-03a72cb0}.brand-launch.is-playing .brand-launch__scenery[data-v-03a72cb0]{animation:.85s cubic-bezier(.22,1,.36,1) both launch-scenery-in-03a72cb0}.brand-launch.is-playing .brand-launch__name[data-v-03a72cb0]{animation:.62s both launch-name-away-03a72cb0}.brand-launch.is-playing .brand-launch__tassie[data-v-03a72cb0]{animation:1s ease-in-out both launch-tassie-handoff-03a72cb0}@media (orientation:landscape){.brand-launch--android .brand-launch__identity[data-v-03a72cb0]{width:min(218px,72%,62dvh)}}@media (width>=600px) and (height>=600px){.brand-launch--android .brand-launch__identity[data-v-03a72cb0]{width:min(360px,72%,62dvh)}}@media (width>=600px) and (height>=600px) and (orientation:landscape){.brand-launch--android .brand-launch__identity[data-v-03a72cb0]{width:min(320px,72%,62dvh)}}@keyframes launch-scenery-in-03a72cb0{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes launch-name-away-03a72cb0{0%,18%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-10%)}}@keyframes launch-tassie-handoff-03a72cb0{0%,55%{opacity:1;transform:translateY(0)rotate(0)}35%{transform:translateY(-3%)rotate(-3deg)}52%{transform:translateY(-1%)rotate(2deg)}to{opacity:0;transform:translateY(-2%)scale(.96)}}@keyframes launch-reveal-app-03a72cb0{0%,82%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.brand-launch.is-playing[data-v-03a72cb0],.brand-launch.is-playing .brand-launch__name[data-v-03a72cb0],.brand-launch.is-playing .brand-launch__scenery[data-v-03a72cb0],.brand-launch.is-playing .brand-launch__tassie[data-v-03a72cb0]{animation:none}}
