@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-400.woff2) format("woff2")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-700.woff2) format("woff2")}:root{--bg: #e9f5fc;--surface: #fff;--primary: #4caf50;--primary-dark: #3b8e3f;--secondary: #2f80ed;--accent: #ffc53d;--danger: #e4572e;--text: #14395c;--muted: #6e8ca3;--border: #cfe4f2;--radius: 20px;--shadow: 0 4px 0 rgba(20, 57, 92, .13);--gutter: 16px;--app-max: 100%}@media(min-width:720px){:root{--gutter: 24px;--app-max: 760px}}@media(min-width:1100px){:root{--app-max: 900px}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:ui-rounded,SF Pro Rounded,Segoe UI Variable Display,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overscroll-behavior:none}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}.word{font-family:Atkinson Hyperlegible,Verdana,sans-serif;letter-spacing:.02em}.screen{min-height:100dvh;height:100dvh;display:flex;background:var(--bg);overflow:hidden;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}.app-shell{width:100%;max-width:var(--app-max);margin-inline:auto;min-height:0;display:flex;flex-direction:column;position:relative}.scroll-area{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.tappable{transition:transform 90ms ease,box-shadow 90ms ease,opacity 90ms ease}.tappable:active:not(:disabled){transform:translateY(2px) scale(.985)}.tappable:focus-visible{outline:4px solid var(--secondary);outline-offset:3px}.plain-button{border:0;padding:0;background:none}.top-bar{min-height:74px;display:flex;align-items:center;gap:10px;padding:10px var(--gutter);flex-shrink:0}.top-bar h1{flex:1;min-width:0;margin:0;font-size:clamp(18px,5vw,25px);font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-bar-spacer{width:54px}.icon-button{width:54px;height:54px;min-width:54px;padding:0;display:grid;place-items:center;border:0;border-radius:50%;color:#fff;font-size:26px;font-weight:900;box-shadow:0 3px #14395c38}.star-counter{min-height:48px;display:inline-flex;align-items:center;gap:6px;padding:6px 14px 6px 10px;border:3px solid var(--accent);border-radius:999px;background:#fff6dc;color:#8a6100;font-size:18px;font-weight:900}.star-counter>span{color:var(--accent);text-shadow:0 1px #c58d00}.sky-decoration{position:fixed;inset:0 0 auto;height:150px;pointer-events:none;opacity:.65;background:radial-gradient(ellipse at 12% 20%,white 0 10%,transparent 11%),radial-gradient(ellipse at 84% 8%,white 0 13%,transparent 14%)}.home-content{position:relative;z-index:1;padding:14px var(--gutter) 28px}.home-actions{display:flex;justify-content:space-between;align-items:center}.brand-block{margin:14px auto 24px;text-align:center}.brand-logo{display:block;width:min(34vw,17vh,128px);aspect-ratio:1;margin:0 auto}.linguo-label{margin:3px 0 0!important;color:var(--secondary)!important;font-size:13px!important;font-weight:900!important;letter-spacing:.28em}.brand-block h1{margin:0;color:var(--text);font-size:clamp(34px,10vw,48px);line-height:1.05;letter-spacing:-.03em}.brand-block>p:last-child{margin:8px 0 0;color:var(--muted);font-size:17px;font-weight:700}.mode-list{display:grid;gap:14px}.mode-card{width:100%;min-height:100px;display:flex;align-items:center;gap:14px;padding:12px 14px;border:4px solid;border-radius:var(--radius);background:var(--surface);color:var(--text);box-shadow:var(--shadow);text-align:left}.mode-card>span:nth-child(2){min-width:0;display:grid;gap:3px;flex:1}.mode-card strong{font-size:clamp(20px,5.8vw,24px);font-weight:900}.mode-card small{color:var(--muted);font-size:15px;line-height:1.25;font-weight:650}.mode-icon{width:66px;height:66px;flex-shrink:0;display:grid;place-items:center;border-radius:18px;font-size:21px;font-weight:1000;letter-spacing:-.1em}.mode-arrow{font-size:38px;font-weight:700;color:var(--muted)}.home-note{margin:22px 0 0;text-align:center;color:var(--muted);font-size:14px;font-weight:700}.page-content{padding:0 var(--gutter) 32px;display:grid;align-content:start;gap:14px}.panel{padding:16px;border:3px solid var(--border);border-radius:var(--radius);background:var(--surface)}.panel h2{margin:0 0 10px;font-size:20px}.panel-help,.privacy-note{margin:0 0 12px;color:var(--muted);font-size:14px;line-height:1.4;font-weight:650}.privacy-note{padding:4px 12px;text-align:center}.setting-row{width:100%;min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 2px;border:0;border-top:2px solid #edf4f8;background:transparent;color:var(--text);text-align:left}.setting-row>span:first-child{display:grid;gap:3px}.setting-row strong{font-size:17px}.setting-row small{color:var(--muted);font-size:13px;line-height:1.3;font-weight:600}.switch{width:58px;height:34px;flex-shrink:0;padding:4px;border-radius:999px;background:#c5d5df;transition:background .16s ease}.switch span{display:block;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #14395c40;transition:transform .16s ease}.switch-on{background:var(--primary)}.switch-on span{transform:translate(24px)}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.choice-button{min-height:76px;display:grid;place-items:center;gap:0;padding:8px;border:3px solid var(--border);border-radius:16px;background:#f8fcfe;color:var(--text)}.choice-button strong{font-size:25px}.choice-button small{color:var(--muted);font-size:12px;font-weight:700}.choice-active{border-color:var(--primary);background:#eaf8eb}.progress-hero{display:flex;align-items:center;justify-content:center;gap:14px;border-color:var(--accent);background:#fffaf0}.progress-hero>span{font-size:52px}.progress-hero div{display:grid}.progress-hero strong{font-size:34px;color:#8a6100}.progress-hero small{color:var(--muted);font-weight:700}.stats-card h2{color:var(--secondary)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stats-grid span{min-height:74px;display:grid;place-items:center;align-content:center;border-radius:14px;background:#f2f8fc}.stats-grid strong{font-size:24px}.stats-grid small{color:var(--muted);font-size:12px;font-weight:700}.page-note{margin:0;text-align:center}.big-button{min-height:64px;padding:0 26px;border:0;border-radius:999px;color:#fff;font-size:18px;font-weight:900;box-shadow:0 4px #14395c3b}.big-button:disabled{background:#c6d6e2!important;color:#f8fbfd;box-shadow:none}.big-button-secondary{border:3px solid var(--border);background:var(--surface);color:var(--text);box-shadow:0 3px #14395c1f}.button-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.game-actions{display:flex;gap:8px}.text-toggle{width:54px;height:54px;border:3px solid var(--border);border-radius:50%;background:#fff;color:var(--muted);font-family:Atkinson Hyperlegible,sans-serif;font-size:19px;font-weight:900}.text-toggle-on{border-color:var(--secondary);background:#eaf3ff;color:var(--secondary)}.game-content{flex:1;min-height:0;overflow-y:auto;padding:0 var(--gutter) max(18px,env(safe-area-inset-bottom));display:flex;flex-direction:column}.round-progress{display:flex;align-items:center;gap:10px;margin-bottom:8px}.round-progress-track{flex:1;height:13px;border-radius:99px;overflow:hidden;background:#dbeaf3}.round-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--primary);transition:width .24s ease}.round-progress b{color:var(--muted);font-size:14px}.prompt-button{width:100%;min-height:54px;margin:0 0 10px;padding:6px 12px;border:0;background:transparent;color:var(--text);text-align:center;font-size:clamp(17px,4.7vw,21px);font-weight:900}.prompt-button span{margin-right:5px}.order-layout{display:grid;gap:12px}.sequence-slots,.card-pool,.first-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sequence-slot{min-width:0;min-height:clamp(116px,30vw,210px);position:relative;display:grid;place-items:center;border:3px dashed #9fc5dd;border-radius:17px;background:#ffffff8c;overflow:hidden}.sequence-slot-filled{border-style:solid;border-color:var(--secondary);background:#fff}.slot-number{position:absolute;top:5px;left:6px;z-index:2;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--secondary);color:#fff;font-size:14px;font-weight:900;box-shadow:0 2px #14395c33}.slot-empty{max-width:72px;color:var(--muted);font-size:12px;line-height:1.2;text-align:center;font-weight:700}.card-pool{min-height:clamp(112px,28vw,190px)}.card-space{border:2px dashed rgba(110,140,163,.22);border-radius:17px}.image-card{min-width:0;min-height:112px;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:stretch;padding:5px;border:3px solid var(--border);border-radius:17px;background:#fff;color:var(--text);box-shadow:var(--shadow);overflow:hidden}.image-card img{display:block;width:100%;min-height:0;aspect-ratio:1;object-fit:contain;border-radius:12px;background:#fff;pointer-events:none}.image-card .word{min-height:30px;display:grid;place-items:center;padding:3px 2px;font-size:clamp(11px,3.1vw,14px);line-height:1.1;font-weight:700;text-align:center}.image-card-compact{width:100%;height:100%;min-height:0;border:0;border-radius:14px;box-shadow:none}.image-card-compact img{max-height:145px}.first-board{margin-block:auto;align-items:center}.first-board .image-card{min-height:clamp(128px,36vw,260px)}.image-card-wrong{border-color:var(--danger);opacity:.58;filter:grayscale(.25)}.image-card-correct{border-color:var(--primary);box-shadow:0 0 0 5px #4caf5033}.image-card-hint{border-color:var(--accent);animation:pulse-ring 1.25s ease-in-out infinite}.card-state{position:absolute;top:7px;right:7px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--danger);color:#fff;font-size:20px;font-weight:900}.card-state-correct{background:var(--primary)}.game-footer{margin-top:auto;padding-top:10px}.feedback,.feedback-placeholder{min-height:48px;margin-bottom:8px}.feedback{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border:3px solid;border-radius:15px;font-size:15px;font-weight:800;text-align:center}.feedback-success{border-color:var(--primary);background:#eaf8eb;color:#286b2c}.feedback-error{border-color:#f2a58e;background:#fff0eb;color:#9e381a}.feedback span{font-size:22px}.game-buttons{display:flex;justify-content:center;gap:9px}.game-buttons .big-button{flex:1;max-width:280px;padding-inline:14px}.completion-screen{flex:1;min-height:0;display:grid;place-items:center;align-content:center;padding:24px;text-align:center}.completion-stars{color:var(--accent);font-size:clamp(42px,14vw,72px);letter-spacing:.1em}.completion-screen h2{margin:16px 0 4px;font-size:clamp(28px,8vw,42px)}.completion-screen p{margin:0 0 24px;color:var(--muted);font-size:18px;font-weight:700}.completion-actions{display:grid;gap:12px;width:min(100%,360px)}.modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#14395c8c}.parent-gate{width:min(100%,420px);padding:24px;border:4px solid var(--border);border-radius:24px;background:#fff;text-align:center;box-shadow:0 18px 60px #14395c47}.parent-icon{font-size:38px}.parent-gate h2{margin:6px 0}.parent-gate p{color:var(--muted);font-weight:700}.parent-gate label{display:flex;justify-content:center;align-items:center;gap:10px;margin:16px 0;font-size:24px;font-weight:900}.parent-gate input{width:92px;height:58px;border:3px solid var(--secondary);border-radius:14px;color:var(--text);font-size:24px;font-weight:900;text-align:center}.parent-gate .gate-error{margin:-8px 0 12px;color:var(--danger)}@keyframes float-y{50%{transform:translateY(-7px)}}@keyframes pulse-ring{50%{box-shadow:0 0 0 7px #ffc53d57}}.anim-float{animation:float-y 2.8s ease-in-out infinite}body.focus-mode .anim-float,body.focus-mode .image-card-hint{animation:none}body.focus-mode .sky-decoration{display:none}@media(orientation:landscape)and (max-height:600px){.top-bar{min-height:62px;padding-block:5px}.icon-button,.text-toggle{width:48px;height:48px;min-width:48px}.game-content{display:grid;grid-template-columns:1fr}.sequence-slot{min-height:118px}.card-pool{min-height:112px}.feedback,.feedback-placeholder{min-height:42px}}@media(max-width:380px){:root{--gutter: 10px}.top-bar{gap:6px}.icon-button,.text-toggle{width:48px;height:48px;min-width:48px}.game-actions,.sequence-slots,.card-pool,.first-board{gap:5px}.image-card,.sequence-slot{border-radius:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.story-content{padding:0 var(--gutter) 28px}.story-prompt{margin:0 0 14px;text-align:center;font-size:clamp(17px,4.4vw,21px);font-weight:700}.story-strip{display:grid;grid-template-columns:1fr;gap:12px;margin:0 0 18px;padding:0;list-style:none;counter-reset:passo}@media(min-width:620px){.story-strip{grid-template-columns:repeat(3,1fr)}}.story-card{position:relative;display:grid;gap:6px;width:100%;padding:10px;border:3px solid var(--border, #cfe4f2);border-radius:var(--radius, 18px);background:#fff}.story-card img{width:100%;aspect-ratio:1 / 1;object-fit:contain}.story-number{position:absolute;top:6px;left:6px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--primary, #2f80ed);color:#fff;font-weight:800;font-size:18px}.story-caption{font-size:15px;font-weight:700;text-align:center}.story-actions{display:grid;gap:10px;max-width:420px;margin:0 auto}.story-note{margin:16px auto 0;max-width:420px;text-align:center;font-size:14px;opacity:.75}
