@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-normal.Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-normal.ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--bg: #f6ead4;--bg-elev: #fff8ea;--bg-elev-2: #f1ddbd;--paper: #fffaf0;--paper-warm: #f4ead8;--ink: #2a1810;--text: #2a1810;--text-dim: #745d4b;--text-faint: #9a8068;--border: #dec7a7;--border-strong: #c9a87f;--line: var(--border);--muted: var(--text-dim);--terracotta: #c75b39;--saffron: #e8a33d;--azulejo: #1f7a8c;--olive: #6b7d4e;--rioja: #7c2d3a;--accent: var(--terracotta);--accent-2: var(--azulejo);--accent-grad: linear-gradient(135deg, #e8a33d 0%, #d8733e 46%, #c75b39 100%);--good: #447645;--bad: #b73e36;--warn: #b66f16;--shadow: 0 14px 36px rgba(79, 43, 19, .12);--shadow-soft: 0 8px 24px rgba(79, 43, 19, .08);--radius: 22px;--radius-sm: 14px;--radius-lg: 28px;--radius-pill: 999px;--tap: 48px;--maxw: 560px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--nav-h: 68px;--font-body: "Inter Variable", Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-display: "Fraunces Variable", "Fraunces", "Iowan Old Style", Georgia, Cambria, serif;--tile-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%231f7a8c' stroke-opacity='.22' stroke-width='1.4'%3E%3Cpath d='M48 6c12 18 24 30 42 42-18 12-30 24-42 42C36 72 24 60 6 48 24 36 36 24 48 6Z'/%3E%3Cpath d='M48 20c8 12 16 20 28 28-12 8-20 16-28 28-8-12-16-20-28-28 12-8 20-16 28-28Z'/%3E%3Ccircle cx='48' cy='48' r='6'/%3E%3C/g%3E%3C/svg%3E")}html[data-theme=dark]{color-scheme:dark;--bg: #1a1410;--bg-elev: #241b15;--bg-elev-2: #312419;--paper: #2a2018;--paper-warm: #241b15;--ink: #f7ecd8;--text: #f7ecd8;--text-dim: #d1bda1;--text-faint: #9e836a;--border: #4b3828;--border-strong: #6d4d32;--good: #9fc27a;--bad: #ff8a75;--warn: #f0b45e;--shadow: 0 18px 48px rgba(0, 0, 0, .26);--shadow-soft: 0 10px 28px rgba(0, 0, 0, .18)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 18% -8%,color-mix(in srgb,var(--saffron) 24%,transparent) 0 240px,transparent 320px),radial-gradient(circle at 105% 8%,color-mix(in srgb,var(--azulejo) 16%,transparent) 0 190px,transparent 290px),linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--bg) 88%,var(--terracotta) 12%));color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:var(--tile-pattern);background-size:96px 96px;opacity:.06;mask-image:linear-gradient(180deg,black,transparent 52%);z-index:-1}a{color:var(--azulejo);text-decoration:none;font-weight:700}a:hover{color:var(--terracotta)}h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;font-weight:600;line-height:1.08;letter-spacing:-.025em;margin:0 0 .42em;text-wrap:pretty}h1{font-size:clamp(2.1rem,8vw,3.35rem);font-weight:640}h2{font-size:clamp(1.35rem,5vw,2rem)}h3{font-size:1.12rem}p{margin:0 0 1em;text-wrap:pretty}.app{max-width:var(--maxw);margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.app-header{padding:calc(var(--safe-top) + 14px) 18px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.12rem;font-weight:850;letter-spacing:-.03em;color:var(--text)}.brand img{width:32px;height:32px;filter:drop-shadow(0 4px 8px rgba(79,43,19,.18))}.brand:after{content:"habla";font-family:var(--font-body);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);border-left:1px solid var(--border);padding-left:10px}.header-actions{display:flex;align-items:center;gap:8px}.theme-toggle{min-height:40px;min-width:44px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--paper) 86%,transparent);color:var(--text);box-shadow:var(--shadow-soft);font:inherit;font-weight:800}.main{flex:1;padding:0 18px calc(var(--nav-h) + 24px + var(--safe-bottom))}.recall-command-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 18px 14px}.recall-command-strip a{min-width:0;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon title" "icon deck";gap:0 8px;align-items:center;padding:12px;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--paper) 90%,white 10%),color-mix(in srgb,var(--paper-warm) 82%,var(--saffron) 18%));box-shadow:var(--shadow-soft),inset 0 1px color-mix(in srgb,white 58%,transparent);color:var(--text)}.recall-command-strip a:hover{transform:translateY(-2px);border-color:var(--terracotta)}.recall-command-strip span{grid-area:icon;color:var(--terracotta);font-weight:900}.recall-command-strip strong{grid-area:title;font-size:.86rem;line-height:1}.recall-command-strip em{grid-area:deck;font-size:.62rem;color:var(--text-faint);font-style:normal;letter-spacing:.08em;text-transform:uppercase}@media(max-width:480px){.recall-command-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;overflow:visible}.recall-command-strip a{min-width:0;padding:11px 8px;border-radius:16px;gap:0 6px}.recall-command-strip strong{font-size:.78rem}.recall-command-strip em{font-size:.55rem;letter-spacing:.055em}}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:9px 10px calc(9px + var(--safe-bottom));background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 72%,transparent),color-mix(in srgb,var(--paper) 96%,transparent)),radial-gradient(circle at 50% 0,color-mix(in srgb,var(--saffron) 18%,transparent),transparent 190px);backdrop-filter:blur(22px) saturate(1.22);-webkit-backdrop-filter:blur(22px) saturate(1.22);border-top:1px solid color-mix(in srgb,var(--border) 64%,transparent);box-shadow:0 -14px 38px #4f2b131f}.tabbar-inner{max-width:var(--maxw);margin:0 auto;min-height:var(--nav-h);display:flex;align-items:stretch;gap:5px;overflow:visible}.tab{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-faint);font-size:.68rem;font-weight:850;line-height:1;letter-spacing:-.01em;min-width:0;min-height:58px;border-radius:18px;border:1px solid transparent;transition:transform .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}.tab svg{width:21px;height:21px;stroke-width:2}.tab span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab:before{content:"";position:absolute;inset:6px 11px auto;height:3px;border-radius:999px;background:var(--accent-grad);opacity:0;transform:scaleX(.45);transition:opacity .18s ease,transform .18s ease}.tab:active{transform:translateY(1px) scale(.985)}.tab[aria-current=page]{color:var(--text);background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 88%,white 6%),color-mix(in srgb,var(--saffron) 12%,var(--paper)));border-color:color-mix(in srgb,var(--border) 70%,var(--saffron) 30%);box-shadow:0 8px 20px #4f2b1314,inset 0 1px #ffffff6b}.tab[aria-current=page]:before{opacity:1;transform:scaleX(1)}.tab[aria-current=page] svg{stroke:var(--terracotta);fill:color-mix(in srgb,var(--saffron) 16%,transparent)}.card{position:relative;background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 96%,white 4%),var(--bg-elev));border:1px solid color-mix(in srgb,var(--border) 88%,white 12%);border-radius:var(--radius);padding:18px;margin-bottom:14px;box-shadow:var(--shadow-soft);overflow:hidden}.card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--accent-grad);opacity:.72}.card-tile:after,.hero-card:after,.notebook-card:after{content:"";position:absolute;inset:auto -24px -24px auto;width:150px;height:150px;background-image:var(--tile-pattern);background-size:72px 72px;opacity:.13;transform:rotate(10deg);pointer-events:none}.card-tight{padding:14px}.hero-card{padding:24px;min-height:230px;background:radial-gradient(circle at 84% 8%,color-mix(in srgb,var(--saffron) 26%,transparent),transparent 34%),linear-gradient(145deg,color-mix(in srgb,var(--paper) 98%,white 2%),color-mix(in srgb,var(--paper-warm) 78%,var(--saffron) 22%))}.spanish-kicker{display:inline-flex;align-items:center;gap:8px;margin-bottom:10px;color:var(--rioja);font-weight:850;letter-spacing:.11em;text-transform:uppercase;font-size:.74rem}.spanish-phrase{font-family:var(--font-display);font-size:clamp(2.4rem,12vw,4.2rem);line-height:.92;letter-spacing:-.055em}.ritual-copy{color:var(--text-dim);font-weight:600;max-width:32ch}.mosaic-row{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.mosaic-tile{aspect-ratio:1;border-radius:9px;border:1px solid color-mix(in srgb,var(--azulejo) 35%,var(--border));background:var(--tile-pattern),linear-gradient(135deg,color-mix(in srgb,var(--azulejo) 18%,var(--paper)),color-mix(in srgb,var(--saffron) 18%,var(--paper)));background-size:58px 58px,auto}.mosaic-tile.mastered{background-color:var(--azulejo);filter:saturate(1.25)}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.small{font-size:.85rem}.center{text-align:center}.display{font-family:var(--font-display)}.btn{-webkit-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:12px 18px;border-radius:var(--radius-pill);border:1px solid var(--border);background:color-mix(in srgb,var(--paper) 80%,var(--bg-elev-2) 20%);color:var(--text);font:inherit;font-weight:800;cursor:pointer;touch-action:manipulation;user-select:none;transition:transform .12s ease,opacity .15s ease,box-shadow .18s ease,background .18s ease}.btn:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}a:focus-visible,button:focus-visible,.btn:focus-visible,.tab:focus-visible,.seg-btn:focus-visible,[data-theme-toggle]:focus-visible{outline:3px solid color-mix(in srgb,var(--azulejo) 55%,transparent);outline-offset:2px}.btn-block{width:100%}.btn-primary{background:var(--accent-grad);border-color:transparent;color:#32170b;box-shadow:0 12px 26px color-mix(in srgb,var(--terracotta) 24%,transparent)}.btn-danger{border-color:color-mix(in srgb,var(--bad) 50%,var(--border));color:var(--bad)}.btn-ghost{background:transparent;box-shadow:none}.btn-lg{min-height:58px;font-size:1.08rem}.btn-small{min-height:38px;padding:8px 13px;font-size:.85rem}.btn-row{display:flex;flex-wrap:wrap;gap:10px}.btn-row>.btn{flex:1}.input{-webkit-appearance:none;appearance:none;width:100%;min-height:var(--tap);padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:color-mix(in srgb,var(--paper) 72%,var(--bg) 28%);color:var(--text);font:inherit;font-size:16px;box-shadow:inset 0 1px #fff3}.input:focus{outline:3px solid color-mix(in srgb,var(--azulejo) 22%,transparent);border-color:var(--azulejo)}label.field{display:block;margin-bottom:14px}label.field>span{display:block;margin-bottom:6px;font-size:.85rem;color:var(--text-dim);font-weight:750}.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:850;background:color-mix(in srgb,var(--paper) 70%,var(--bg-elev-2) 30%);color:var(--text-dim);border:1px solid var(--border)}.pill-good{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,var(--border))}.pill-bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--border))}.pill-warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,var(--border))}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{background:color-mix(in srgb,var(--paper) 82%,var(--bg-elev-2) 18%);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 10px;text-align:center;box-shadow:var(--shadow-soft)}.stat .num{font-family:var(--font-display);font-size:1.95rem;line-height:1;font-weight:900;color:var(--terracotta)}.stat .lbl{margin-top:4px;font-size:.68rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.07em;font-weight:850}.alert{border-radius:var(--radius-sm);padding:12px 14px;font-size:.9rem;border:1px solid var(--border);background:color-mix(in srgb,var(--paper) 76%,var(--bg-elev-2) 24%);margin-bottom:14px}.alert-error,.alert-danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--border));background:color-mix(in srgb,var(--bad) 10%,var(--paper))}.alert-ok{color:var(--good);border-color:color-mix(in srgb,var(--good) 45%,var(--border));background:color-mix(in srgb,var(--good) 10%,var(--paper))}.speak-mode-picker{gap:16px}.session-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.session-mode-choice{min-height:290px;display:flex;flex-direction:column;justify-content:space-between;gap:18px;color:inherit;text-decoration:none;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.session-mode-choice:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow)}.session-mode-choice h2{margin:0 0 8px}.session-mode-choice p{margin:0}.session-mode-fsrs{border-color:color-mix(in srgb,var(--good) 58%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--good) 7%,var(--paper)),var(--paper))}.session-mode-free{border-style:dashed}@media(max-width:760px){.session-mode-grid{grid-template-columns:1fr}.session-mode-choice{min-height:0}}.recall-shell{min-height:calc(100dvh - var(--safe-top) - 80px);display:flex;flex-direction:column}.voice-card{flex:1;display:flex;flex-direction:column;justify-content:center;padding:28px 20px;border-radius:30px}.mic-orb{width:118px;height:118px;margin:8px auto 16px;border-radius:46% 54% 56% 44%/52% 43% 57% 48%;display:grid;place-items:center;background:var(--accent-grad);color:#32170b;box-shadow:0 18px 42px color-mix(in srgb,var(--terracotta) 28%,transparent);animation:breathe 2.2s ease-in-out infinite}.mic-orb svg{width:48px;height:48px}.waveform{display:flex;align-items:end;justify-content:center;gap:5px;height:40px;margin:8px 0}.waveform span{width:6px;border-radius:999px;background:var(--azulejo);animation:wave .9s ease-in-out infinite alternate;opacity:.86}.waveform span:nth-child(1){height:12px;animation-delay:0ms}.waveform span:nth-child(2){height:28px;animation-delay:90ms}.waveform span:nth-child(3){height:18px;animation-delay:.16s}.waveform span:nth-child(4){height:34px;animation-delay:.23s}.waveform span:nth-child(5){height:16px;animation-delay:.31s}.timer-num{font-family:var(--font-display);font-size:4rem;font-weight:900;line-height:.9;color:var(--terracotta)}.ole-burst{font-family:var(--font-display);font-weight:900;font-size:clamp(3rem,14vw,4.6rem);line-height:1;margin-bottom:2px;background:var(--sunset-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 8px 20px color-mix(in srgb,var(--terracotta) 30%,transparent));animation:olePop .62s cubic-bezier(.2,1.3,.4,1) both}@keyframes olePop{0%{transform:scale(.5) rotate(-6deg);opacity:0}60%{transform:scale(1.12) rotate(2deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.tile-board .field,.notebook-card .field{margin-bottom:0}.tile-board .input{border-radius:16px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack>*+*{margin-top:12px}.gap-small>*+*{margin-top:6px}.spacer{flex:1}.hidden{display:none!important}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-player{width:100%;margin-top:8px;accent-color:var(--terracotta)}.code-block{white-space:pre-wrap;overflow-x:auto;padding:12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:color-mix(in srgb,var(--bg) 78%,var(--paper) 22%);color:var(--text-dim);font-size:.85rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.seg{display:flex;gap:4px;padding:4px;background:color-mix(in srgb,var(--paper) 72%,var(--bg-elev-2) 28%);border:1px solid var(--border);border-radius:var(--radius-pill)}.seg-btn{appearance:none;flex:1;min-height:40px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text-dim);font:inherit;font-weight:800;cursor:pointer;touch-action:manipulation}.seg-btn.active{background:var(--paper);color:var(--text);box-shadow:var(--shadow-soft)}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--bg-elev-2);border-top-color:var(--terracotta);animation:spin .8s linear infinite;margin:0 auto}.spinner-sm{width:18px;height:18px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--terracotta) 55%,transparent)}70%{box-shadow:0 0 0 12px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes breathe{0%,to{transform:scale(1) rotate(-1deg)}50%{transform:scale(1.035) rotate(1deg)}}@keyframes wave{to{transform:scaleY(.45);opacity:.46}}@media(min-width:700px){:root{--maxw: 680px}.main{padding-left:22px;padding-right:22px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.home-hero{position:relative;isolation:isolate;overflow:hidden;min-height:260px}.hero-glow{position:absolute;inset:auto -12% -42% 28%;height:220px;background:radial-gradient(circle at 30% 40%,color-mix(in srgb,var(--saffron) 58%,transparent),transparent 46%),radial-gradient(circle at 70% 30%,color-mix(in srgb,var(--azulejo) 36%,transparent),transparent 42%);filter:blur(8px);z-index:-1}.hero-copy{max-width:38rem;font-size:clamp(1rem,3vw,1.2rem)}.mosaic-strip{display:grid;grid-template-columns:repeat(6,minmax(28px,1fr));gap:8px;margin-top:8px}.mosaic-strip span{min-height:18px;border-radius:999px;background:linear-gradient(135deg,color-mix(in srgb,var(--paper) 88%,white),color-mix(in srgb,var(--saffron) 35%,var(--paper))),var(--tile-pattern);box-shadow:inset 0 0 0 1px var(--line),var(--shadow-soft)}.mosaic-strip span:nth-child(2n){background-color:color-mix(in srgb,var(--azulejo) 18%,var(--paper))}.mosaic-strip span:nth-child(3n){background-color:color-mix(in srgb,var(--terracotta) 20%,var(--paper))}.ritual-panel{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:16px;padding:18px;border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--terracotta) 28%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--paper) 94%,white),color-mix(in srgb,var(--saffron) 11%,var(--paper))),var(--tile-pattern);box-shadow:var(--shadow)}.voice-orb-small{width:72px;height:72px;flex:0 0 72px}.metric-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.metric-card{position:relative;overflow:hidden;padding:14px;min-height:104px;border-radius:var(--radius);border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 82%,white);box-shadow:var(--shadow-soft)}.metric-card:after{content:"";position:absolute;width:72px;height:72px;right:-28px;bottom:-28px;border-radius:50%;background:color-mix(in srgb,var(--saffron) 28%,transparent)}.metric-card.hot:after{background:color-mix(in srgb,var(--terracotta) 32%,transparent)}.metric-card.cool:after{background:color-mix(in srgb,var(--azulejo) 26%,transparent)}.metric-card .num{font-family:var(--font-display);font-size:clamp(2rem,9vw,3.2rem);line-height:.9;color:var(--ink)}.metric-card .lbl{margin-top:10px;color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.action-card{position:relative;display:grid;gap:6px;min-height:132px;padding:16px;border-radius:var(--radius);color:var(--ink);text-decoration:none;border:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 90%,white),color-mix(in srgb,var(--bg-elev) 6%,var(--paper))),var(--tile-pattern);box-shadow:var(--shadow-soft);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.action-card:hover,.action-card:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--terracotta) 42%,var(--line))}.action-card span{color:var(--terracotta);font-size:.72rem;font-weight:900;letter-spacing:.18em}.action-card strong{font-family:var(--font-display);font-size:1.25rem}.action-card small{color:var(--muted);line-height:1.35}.compact-card{padding:14px}@media(max-width:560px){.ritual-panel{grid-template-columns:1fr}.voice-orb-small{width:64px;height:64px}.metric-board{grid-template-columns:1fr 1fr 1fr;gap:8px}.metric-card{min-height:96px;padding:12px 10px}.metric-card .lbl{font-size:.68rem;letter-spacing:.08em}.action-grid{grid-template-columns:1fr}}:root{--magenta: #c13f6f;--caribe: #00a0b0;--maize: #f6c85f;--cobalt: #1d4e89;--leaf: #4f8a5b;--night: #21111b;--sunset-grad: linear-gradient(135deg, #f6c85f 0%, #e86f3a 34%, #c13f6f 68%, #1d4e89 100%);--latin-grad: linear-gradient(135deg, #00a0b0 0%, #1f7a8c 42%, #4f8a5b 100%)}body{background:radial-gradient(circle at 8% 8%,color-mix(in srgb,var(--maize) 38%,transparent) 0 160px,transparent 280px),radial-gradient(circle at 108% 0%,color-mix(in srgb,var(--magenta) 24%,transparent) 0 190px,transparent 320px),radial-gradient(circle at 70% 92%,color-mix(in srgb,var(--caribe) 20%,transparent) 0 210px,transparent 360px),linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--bg) 76%,var(--terracotta) 24%))}.app-header{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 92%,transparent),transparent);backdrop-filter:blur(10px)}.brand:after{content:"sabor lab";color:var(--magenta);white-space:nowrap}.mode-toggle{flex:0 0 auto;width:20px;height:20px;accent-color:var(--terracotta)}@media(max-width:360px){.app-header,.brand{gap:8px}.brand:after{padding-left:8px;font-size:.58rem;letter-spacing:.075em}.theme-toggle{min-width:0;padding-inline:11px}.session-launch-card{padding:16px}.session-launch-card.stack>*+*{margin-top:8px}.session-launch-card .spanish-phrase{font-size:2.2rem!important}.session-launch-card>.muted{line-height:1.35}.session-launch-card>.alert{padding:12px}}.hero-showpiece{position:relative;isolation:isolate;overflow:hidden;min-height:auto;padding:22px;margin-bottom:14px;border-radius:32px;border:1px solid color-mix(in srgb,var(--border) 70%,white 30%);background:linear-gradient(145deg,color-mix(in srgb,var(--paper) 96%,white),color-mix(in srgb,var(--paper-warm) 70%,var(--maize))),var(--tile-pattern);box-shadow:0 24px 70px #4e231a29}.hero-showpiece:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--terracotta) 18%,transparent),transparent 30%,color-mix(in srgb,var(--caribe) 14%,transparent)),repeating-linear-gradient(135deg,transparent 0 14px,color-mix(in srgb,var(--azulejo) 8%,transparent) 14px 15px);opacity:.82;pointer-events:none;z-index:-2}.hero-showpiece:after{content:"";position:absolute;width:280px;height:280px;right:-120px;top:-120px;border-radius:50%;background:conic-gradient(from 20deg,var(--maize),var(--terracotta),var(--magenta),var(--cobalt),var(--caribe),var(--maize));filter:blur(2px);opacity:.14;z-index:-1}.hero-ambient{position:absolute;border-radius:50%;filter:blur(22px);opacity:.34;pointer-events:none;z-index:-1}.hero-ambient-one{width:180px;height:180px;left:-70px;bottom:46px;background:var(--latin-grad)}.hero-ambient-two{width:160px;height:160px;right:40px;bottom:-60px;background:var(--sunset-grad)}.hero-topline{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.hero-topline span,.flavor-badge{display:inline-flex;align-items:center;min-height:30px;padding:6px 10px;border-radius:999px;color:color-mix(in srgb,var(--ink) 86%,black);font-size:.72rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase;background:color-mix(in srgb,var(--paper) 72%,white);border:1px solid color-mix(in srgb,var(--border) 70%,white);box-shadow:var(--shadow-soft)}.hero-copy-block{min-height:auto;justify-content:center;padding:4px 0 2px}.hero-copy-block h1{font-size:clamp(2.45rem,10vw,4.45rem);max-width:9ch;margin-bottom:10px;text-shadow:0 12px 30px rgba(83,39,18,.12)}.hero-copy{max-width:31rem;font-size:clamp(1.02rem,3.3vw,1.22rem)}.hero-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.hero-chips span{padding:8px 11px;border-radius:999px;color:#fff;font-size:.78rem;font-weight:900;background:var(--night);box-shadow:0 10px 22px #1f0d0c29}.hero-chips span:nth-child(2){background:var(--terracotta)}.hero-chips span:nth-child(3){background:var(--caribe)}.hero-chips span:nth-child(4){background:var(--magenta)}.hero-chips span:nth-child(5){background:var(--leaf)}.mission-card{position:relative;display:grid;grid-template-columns:116px 1fr;gap:18px;overflow:hidden;padding:18px;border-radius:30px;background:radial-gradient(circle at 88% 8%,color-mix(in srgb,var(--region-accent, var(--maize)) 24%,transparent),transparent 160px),linear-gradient(135deg,color-mix(in srgb,var(--night) 96%,var(--cobalt)),color-mix(in srgb,var(--rioja) 82%,black));color:#fff8ea;box-shadow:0 22px 58px #21111b3d}.mission-card .muted,.mission-card .spanish-kicker{color:#fff8eac7}.mission-card h2{color:#fff8ea;max-width:15ch;line-height:.98}.mission-card:after{content:"";position:absolute;inset:0;background-image:var(--tile-pattern);opacity:.08;pointer-events:none}.mission-mosaic{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;align-content:start;padding:10px;border-radius:22px;background:linear-gradient(180deg,#fff8ea17,#fff8ea09);border:1px solid rgba(255,248,234,.18);box-shadow:inset 0 1px #ffffff1f,0 16px 30px #00000029}.m-tile{aspect-ratio:1;border-radius:6px;background:#fff8ea1a;box-shadow:inset 0 0 0 1px #fff8ea14}.m-tile.filled{background:var(--tile-pattern),linear-gradient(135deg,var(--maize),var(--terracotta));background-size:24px 24px,auto;box-shadow:0 4px 10px #0000002e}.m-tile-label{grid-column:1 / -1;margin-top:3px;text-align:center;color:#fff8ead1;font-weight:900;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.flavor-badge{color:var(--night);background:linear-gradient(135deg,var(--maize),color-mix(in srgb,var(--paper) 38%,var(--maize)));border:1px solid rgba(255,255,255,.26);box-shadow:0 8px 18px #00000029,inset 0 1px #ffffff57}.mission-content{position:relative;z-index:1}.mission-content .btn-ghost{color:#fff8ea;border-color:#fff8ea9e;background:#fff8ea14}.mission-content .btn-ghost:hover{background:#fff8ea29}.btn-azul{background:var(--latin-grad);color:#fff;border-color:transparent}.score-strip{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:14px;border-radius:26px;background:color-mix(in srgb,var(--paper) 88%,white);border:1px solid var(--border);box-shadow:var(--shadow-soft)}.score-ring{width:92px;height:92px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at center,var(--paper) 0 54%,transparent 55%),conic-gradient(var(--terracotta) var(--pct, 0%),color-mix(in srgb,var(--border) 70%,transparent) 0);box-shadow:inset 0 0 0 1px var(--border)}.score-ring strong{font-family:var(--font-display);font-size:1.45rem;line-height:1}.score-ring span{font-size:.65rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.1em;font-weight:900}.metric-board-pop .metric-card{transform:translateZ(0);border-color:color-mix(in srgb,var(--border) 72%,white)}.metric-icon{position:absolute;right:10px;top:8px;font-size:1.1rem;filter:drop-shadow(0 4px 6px rgba(0,0,0,.1))}.metric-card.rhythm:after{background:color-mix(in srgb,var(--caribe) 28%,transparent)}.action-grid-pop .action-card{min-height:146px;background:var(--paper)}.action-grid-pop .action-card:after{content:"";position:absolute;inset:auto 10px 10px auto;width:54px;height:54px;border-radius:18px;opacity:.18;background:var(--terracotta);transform:rotate(12deg)}.action-card-red{--card-pop: var(--terracotta)}.action-card-blue{--card-pop: var(--caribe)}.action-card-gold{--card-pop: var(--maize)}.action-card-green{--card-pop: var(--leaf)}.action-grid-pop .action-card span{color:var(--card-pop)}.action-grid-pop .action-card:after{background:var(--card-pop)}@media(max-width:640px){.hero-showpiece{min-height:auto;padding:16px;border-radius:28px}.hero-copy-block{min-height:auto}.hero-copy-block h1{max-width:12ch}.mission-card{grid-template-columns:1fr}.mission-mosaic{grid-template-columns:repeat(8,1fr)}.mission-mosaic .m-tile-label{grid-column:1 / -1}.score-strip{grid-template-columns:1fr}.score-ring{width:82px;height:82px}}.grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.progress-card{gap:14px}.progress-row{display:grid;gap:7px}.progress-track{width:100%;height:14px;border-radius:var(--radius-pill);overflow:hidden;background:color-mix(in srgb,var(--border) 55%,transparent);border:1px solid var(--border)}.progress-track>span{display:block;height:100%;min-width:0;border-radius:inherit;background:var(--accent-grad);transition:width .18s ease}@media(max-width:620px){.grid-two{grid-template-columns:1fr}}.mic-timer-ring{--pct: 100%;--ring-color: var(--good);position:relative;width:clamp(142px,42vw,190px);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 50% 50%,var(--paper) 0 58%,transparent 59%),conic-gradient(var(--ring-color) var(--pct),color-mix(in srgb,var(--border) 60%,transparent) 0);box-shadow:0 20px 50px #4f2b132e,inset 0 0 0 1px var(--border);transition:background .12s linear,transform .18s ease}.mic-timer-ring:after{content:"";position:absolute;inset:12px;border-radius:inherit;border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);pointer-events:none}.mic-timer-ring[style*="--pct: 6"],.mic-timer-ring[style*="--pct: 5"],.mic-timer-ring[style*="--pct: 4"]{--ring-color: var(--saffron)}.mic-timer-ring.danger{--ring-color: var(--rioja);animation:ritual-urgency .62s ease-in-out infinite alternate}.mic-timer-ring .mic-orb{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;color:var(--paper);background:var(--accent-grad);box-shadow:inset 0 -12px 20px #7c2d3a2e,0 10px 24px #7c2d3a3d}.mic-timer-ring .mic-orb svg{width:34px;height:34px}.mic-timer-ring .timer-num{position:absolute;bottom:20px;font-family:var(--font-display);font-size:clamp(1.8rem,8vw,2.8rem);font-variation-settings:"opsz" 72,"wght" 780;line-height:1;color:var(--ink)}.waveform.live{display:flex;align-items:center;justify-content:center;gap:7px;height:54px;min-height:54px}.waveform.live span{display:block;width:9px;height:48px;transform-origin:center;border-radius:999px;background:linear-gradient(180deg,var(--azulejo),var(--saffron),var(--terracotta));transition:transform 70ms linear,opacity 70ms linear}.petal-burst{position:absolute;inset:0;overflow:visible;pointer-events:none}.petal-burst span{--angle: calc(var(--i, 0) * 20deg);position:absolute;left:50%;top:42%;width:9px;height:18px;border-radius:999px 999px 999px 2px;background:var(--terracotta);opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.6);animation:petal-pop .9s ease-out forwards}.petal-burst span:nth-child(3n){background:var(--saffron)}.petal-burst span:nth-child(3n+1){background:var(--azulejo)}.petal-burst span:nth-child(1){--i: 1}.petal-burst span:nth-child(2){--i: 2}.petal-burst span:nth-child(3){--i: 3}.petal-burst span:nth-child(4){--i: 4}.petal-burst span:nth-child(5){--i: 5}.petal-burst span:nth-child(6){--i: 6}.petal-burst span:nth-child(7){--i: 7}.petal-burst span:nth-child(8){--i: 8}.petal-burst span:nth-child(9){--i: 9}.petal-burst span:nth-child(10){--i: 10}.petal-burst span:nth-child(11){--i: 11}.petal-burst span:nth-child(12){--i: 12}.petal-burst span:nth-child(13){--i: 13}.petal-burst span:nth-child(14){--i: 14}.petal-burst span:nth-child(15){--i: 15}.petal-burst span:nth-child(16){--i: 16}.petal-burst span:nth-child(17){--i: 17}.petal-burst span:nth-child(18){--i: 18}.btn{transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.btn:active{transform:scale(.97);box-shadow:none;filter:saturate(1.05)}.stack>.card,.action-grid>*,.metric-board>*{animation:card-rise .36s ease both}.stack>.card:nth-child(2){animation-delay:40ms}.stack>.card:nth-child(3){animation-delay:80ms}.stack>.card:nth-child(4){animation-delay:.12s}@keyframes ritual-urgency{0%{transform:scale(1)}to{transform:scale(1.025)}}@keyframes petal-pop{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.45)}14%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateY(-150px) scale(1)}}@keyframes card-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.mic-timer-ring.danger,.petal-burst span,.stack>.card,.action-grid>*,.metric-board>*{animation:none!important}.btn,.waveform.live span{transition:none!important}}html[data-theme=dark]{--bg: #18100c;--bg-elev: #24170f;--bg-elev-2: #352315;--paper: #2a1b12;--paper-warm: #21150f;--ink: #fff0d2;--text: #fff0d2;--text-dim: #d9bd94;--text-faint: #a88965;--border: #5a3b25;--border-strong: #8b5f35;--accent-grad: linear-gradient(135deg, #f0b45e 0%, #c75b39 52%, #7c2d3a 100%)}html[data-region=madrid],.tile-talavera{--tile-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96'%3E%3Cg fill='none' stroke='%231f7a8c' stroke-opacity='.24' stroke-width='1.5'%3E%3Cpath d='M48 6c12 18 24 30 42 42-18 12-30 24-42 42C36 72 24 60 6 48 24 36 36 24 48 6Z'/%3E%3Ccircle cx='48' cy='48' r='8'/%3E%3C/g%3E%3C/svg%3E")}html[data-region=buenos-aires],.tile-andalusian{--tile-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cg fill='none' stroke='%237c2d3a' stroke-opacity='.22' stroke-width='1.6'%3E%3Cpath d='M45 8a37 37 0 0 1 37 37 37 37 0 0 1-37 37A37 37 0 0 1 8 45 37 37 0 0 1 45 8Z'/%3E%3Cpath d='M45 8v74M8 45h74'/%3E%3C/g%3E%3C/svg%3E")}html[data-region=san-juan],.tile-caribbean{--tile-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96'%3E%3Cg fill='none' stroke='%23e8a33d' stroke-opacity='.24' stroke-width='1.8'%3E%3Cpath d='M0 64c24-22 48 22 96 0M0 32c24-22 48 22 96 0'/%3E%3Ccircle cx='24' cy='24' r='7'/%3E%3Ccircle cx='72' cy='72' r='7'/%3E%3C/g%3E%3C/svg%3E")}.hero-region-stage{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}.region-orbit{position:absolute;width:148px;height:92px;border-radius:28px;opacity:.34;background:linear-gradient(135deg,color-mix(in srgb,var(--region-accent, var(--terracotta)) 40%,transparent),transparent),var(--tile-pattern);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--region-accent, var(--accent)) 34%,transparent)}.region-orbit:before{content:"";position:absolute;left:22px;right:22px;bottom:22px;height:34px;border:8px solid currentColor;border-top:0;opacity:.25}.region-orbit.madrid{--region-accent: #c75b39;right:-28px;top:40px;transform:rotate(-8deg)}.region-orbit.cdmx{--region-accent: #1f7a8c;left:-45px;bottom:36px;transform:rotate(10deg)}.region-orbit.medellin{--region-accent: #6b7d4e;right:54px;bottom:-34px;transform:rotate(4deg)}.region-art{color:var(--region-accent, var(--accent));width:100%;max-width:260px;height:auto;flex:0 0 auto;filter:drop-shadow(0 12px 22px rgba(79,43,19,.12))}.region-art.small{max-width:132px}.mission-card{position:relative;overflow:hidden}.mission-region-art{position:absolute;right:-34px;top:-16px;width:190px;opacity:.22}.region-card-strip{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;overflow-x:auto;padding-bottom:3px}.region-mini-card{min-width:126px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--paper) 84%,var(--region-accent) 8%);box-shadow:var(--shadow-soft);display:grid;gap:6px}.region-mini-card strong{color:var(--text)}.region-mini-card small{color:var(--text-dim)}.source-region-card{position:relative;overflow:hidden}.source-region-card>.region-art{position:absolute;right:-16px;top:-20px;opacity:.16}.passport-hero{position:relative;overflow:hidden;min-height:270px;background:linear-gradient(135deg,color-mix(in srgb,var(--paper) 82%,var(--region-accent) 12%),var(--paper))}.passport-hero .region-art{position:absolute;right:-26px;top:-8px;opacity:.28;max-width:320px}.passport-progress{display:inline-flex;align-items:baseline;gap:8px;width:fit-content;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--paper) 82%,transparent)}.passport-progress strong{font-family:var(--font-display);font-size:1.8rem;line-height:1}.stamp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(152px,1fr));gap:12px}.stamp-card{position:relative;min-height:210px;padding:14px;border-radius:24px;border:1px dashed var(--border-strong);background:color-mix(in srgb,var(--paper) 88%,var(--region-accent, var(--accent)) 6%);overflow:hidden;box-shadow:var(--shadow-soft)}.stamp-card .region-art{width:118px;opacity:.82}.stamp-card.locked{filter:grayscale(.88);opacity:.62;background:color-mix(in srgb,var(--paper) 92%,var(--ink) 4%)}.stamp-card.locked .region-art{opacity:.22}.stamp-card.earned{border-style:solid;border-color:color-mix(in srgb,var(--accent) 50%,var(--border))}.stamp-card.just-earned{animation:stamp-press .88s cubic-bezier(.2,1.4,.3,1)}.stamp-seal{position:absolute;right:12px;top:12px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:3px double currentColor;color:var(--region-accent, var(--accent));transform:rotate(-11deg);font-weight:900}.stamp-card h3{margin-top:8px}.stamp-card p{color:var(--text-dim);font-size:.9rem;margin-bottom:6px}.stamp-card small{color:var(--text-faint);font-weight:800}.state-illo{width:96px;height:76px;position:relative;margin-inline:auto}.state-stamp{position:absolute;width:42px;height:42px;left:27px;top:7px;border-radius:12px;background:var(--accent-grad);transform:rotate(-8deg);box-shadow:0 10px 20px #4f2b1329}.state-stamp:after{content:"";position:absolute;inset:11px;border:2px solid var(--paper);border-radius:50%}.state-bag{position:absolute;left:18px;right:18px;bottom:2px;height:34px;border-radius:10px;border:3px solid var(--azulejo);background:color-mix(in srgb,var(--paper) 88%,var(--azulejo) 8%)}.state-bag:before{content:"";position:absolute;left:20px;top:-14px;width:20px;height:14px;border:3px solid var(--azulejo);border-bottom:0;border-radius:10px 10px 0 0}.state-spark{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--saffron);animation:petal-pop 1.2s ease infinite}.state-spark.one{right:8px;top:10px}.state-spark.two{left:5px;top:28px;animation-delay:.18s;background:var(--terracotta)}.state-loading .state-stamp{animation:stamp-press 1s ease-in-out infinite}.mini-loading{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--paper) 78%,transparent);color:var(--text-dim);font-size:.86rem}.mini-loading .state-illo{width:42px;height:34px;margin:0;transform:scale(.55);transform-origin:left center}.ole-burst.soft{font-size:clamp(1.8rem,10vw,3rem);color:var(--azulejo)}@keyframes stamp-press{0%{transform:translateY(-8px) rotate(-8deg) scale(1.08);filter:saturate(1.2)}45%{transform:translateY(7px) rotate(-8deg) scale(.94)}70%{transform:translateY(0) rotate(-8deg) scale(1.02)}to{transform:translateY(0) rotate(-8deg) scale(1)}}@media(prefers-reduced-motion:reduce){.stamp-card.just-earned,.state-loading .state-stamp,.state-spark{animation:none!important}}.tabbar-primary{justify-content:space-between;overflow:visible}.tabbar-primary .tab{flex:1 1 0;min-width:0}.tab-speak{transform:none;min-height:58px;border-radius:20px;color:var(--paper);background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.36),transparent 38px),var(--accent-grad);border-color:color-mix(in srgb,var(--terracotta) 56%,white 20%);box-shadow:0 10px 24px #c75b3940,inset 0 1px #ffffff52}.tab-speak:before{background:#ffffffb8;opacity:.58;transform:scaleX(.72)}.tab-speak:active{transform:translateY(1px) scale(.985)}.tab-speak svg{color:var(--paper)}.tab-speak[aria-current=page]{color:var(--paper);background:linear-gradient(135deg,var(--rioja),var(--terracotta) 54%,var(--saffron))}.tab-speak[aria-current=page] svg{stroke:currentColor;fill:transparent}.tab-more{flex:1 1 0;position:relative;min-width:0;display:flex;align-self:stretch;margin:0;padding:0}.tab-more summary{list-style:none;cursor:pointer;width:100%;min-height:58px;margin:0;padding:0;box-sizing:border-box}.tab-more summary::-webkit-details-marker{display:none}.tab-more-trigger{align-self:stretch}.tab-more-trigger svg{transform:translateY(0);stroke-width:2.25}.tab-more-trigger span{transform:translateY(0)}.tab-more[open] summary.tab,.tab-more summary.tab[aria-current=page]{color:var(--text);background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 88%,white 6%),color-mix(in srgb,var(--azulejo) 10%,var(--paper)));border-color:color-mix(in srgb,var(--border) 70%,var(--azulejo) 30%)}.tab-more[open] summary.tab:before,.tab-more summary.tab[aria-current=page]:before{opacity:1;transform:scaleX(1)}.tab-more-menu{position:absolute;right:8px;bottom:calc(100% + 14px);min-width:185px;padding:10px;display:grid;gap:6px;border:1px solid color-mix(in srgb,var(--border) 82%,white 10%);border-radius:22px;background:radial-gradient(circle at 86% 0,color-mix(in srgb,var(--azulejo) 14%,transparent),transparent 92px),color-mix(in srgb,var(--paper) 95%,transparent);box-shadow:0 18px 44px #4f2b1329;backdrop-filter:blur(20px) saturate(1.15)}.tab-more:not([open]) .tab-more-menu{display:none}.tab-more-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:15px;color:var(--text);font-weight:850}.tab-more-item svg{width:20px;height:20px}.tab-more-item[aria-current=page],.tab-more-item:hover{background:color-mix(in srgb,var(--saffron) 18%,transparent);color:var(--terracotta)}.passport-book{position:relative;display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:0;padding:12px;border-radius:32px;background:linear-gradient(135deg,#7c2d3a,#1f7a8c 48%,#c75b39);box-shadow:0 22px 50px #4f2b132e;overflow:hidden}.passport-book:before{content:"";position:absolute;inset:8px;border-radius:26px;border:1px solid rgba(255,250,240,.28);pointer-events:none}.passport-spine{position:absolute;top:12px;bottom:12px;left:34%;width:16px;border-radius:999px;background:linear-gradient(90deg,#0000002e,#ffffff38,#0000001f);z-index:2}.passport-page-sheet{min-height:420px;padding:20px;background:radial-gradient(circle at 18% 10%,color-mix(in srgb,var(--saffron) 16%,transparent),transparent 130px),var(--tile-pattern),color-mix(in srgb,var(--paper) 96%,#f3d9a6 4%);background-size:auto,90px 90px,auto;border:1px solid color-mix(in srgb,var(--border) 80%,white 12%)}.intro-page{border-radius:24px 4px 4px 24px;display:flex;flex-direction:column;justify-content:space-between}.stamps-page{border-radius:4px 24px 24px 4px;padding-left:28px}.passport-page-label{width:fit-content;padding:7px 10px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim);font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.passport-mini-stats{display:grid;gap:8px;margin-top:18px}.passport-mini-stats span{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--paper) 74%,transparent);color:var(--text-dim)}.passport-mini-stats strong{color:var(--text);font-family:var(--font-display);font-size:1.35rem}.stamps-page .stamp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.stamp-card{isolation:isolate;background:linear-gradient(135deg,color-mix(in srgb,var(--paper) 82%,var(--region-accent) 12%),color-mix(in srgb,var(--paper) 94%,transparent)),radial-gradient(circle at 12px 12px,color-mix(in srgb,var(--region-accent) 26%,transparent) 0 2px,transparent 3px);background-size:auto,18px 18px}.stamp-card:before{content:"";position:absolute;inset:8px;border:2px solid color-mix(in srgb,var(--region-accent, var(--accent)) 54%,transparent);border-radius:inherit;opacity:.58;pointer-events:none}.stamp-card:after{content:"";position:absolute;inset:-20px;background:radial-gradient(circle,color-mix(in srgb,var(--region-accent, var(--accent)) 12%,transparent),transparent 58%);z-index:-1}.stamp-shape-1{border-radius:34px 18px;transform:rotate(.6deg)}.stamp-shape-2{border-radius:18px 34px;transform:rotate(-.7deg)}.stamp-shape-3{clip-path:polygon(8% 0,92% 0,100% 10%,100% 90%,92% 100%,8% 100%,0 90%,0 10%)}.stamp-date{display:inline-block;margin-top:4px;padding:3px 7px;border:1px solid currentColor;border-radius:999px;color:var(--region-accent, var(--accent));font-size:.62rem;font-weight:950;letter-spacing:.08em;transform:rotate(-3deg)}.stamp-card.locked:before{border-style:dashed;opacity:.28}.stamp-card.locked .stamp-date{color:var(--text-faint)}.passport-next-stamp{padding:10px 12px;border-radius:16px;background:color-mix(in srgb,var(--paper) 12%,transparent);border:1px solid rgba(255,248,234,.22);color:#fff8ea;font-weight:800}.route-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.route-card{position:relative;min-height:124px;display:flex;flex-direction:column;justify-content:space-between;gap:8px;padding:14px;border:1px solid var(--border);border-radius:22px;background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 94%,white 4%),var(--paper));box-shadow:var(--shadow-soft);color:var(--text);overflow:hidden}.route-card:after{content:"";position:absolute;right:-18px;bottom:-22px;width:74px;height:74px;border-radius:24px;background:var(--card-pop, var(--azulejo));opacity:.14;transform:rotate(15deg)}.route-card span{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--azulejo) 14%,var(--paper));color:var(--azulejo);font-weight:950}.route-card strong{font-family:var(--font-display);font-size:1.08rem;line-height:1.05}.route-card small{color:var(--text-dim);font-weight:700}.route-card.urgent{--card-pop: var(--terracotta);border-color:color-mix(in srgb,var(--terracotta) 34%,var(--border))}.route-card.urgent span{background:color-mix(in srgb,var(--terracotta) 16%,var(--paper));color:var(--terracotta)}.route-card.done{--card-pop: var(--olive)}.route-card.done span{background:color-mix(in srgb,var(--olive) 16%,var(--paper));color:var(--olive)}.lesson-drill-card{border-color:color-mix(in srgb,var(--azulejo) 18%,var(--border))}.lesson-section-progress{display:grid;gap:8px;padding:12px;border-radius:18px;background:color-mix(in srgb,var(--azulejo) 8%,var(--paper));border:1px solid color-mix(in srgb,var(--azulejo) 18%,var(--border))}.lesson-win-banner{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-radius:18px;background:color-mix(in srgb,var(--saffron) 14%,var(--paper));border:1px solid color-mix(in srgb,var(--saffron) 28%,var(--border));font-weight:850}.lesson-win-banner.all-clear{background:linear-gradient(135deg,color-mix(in srgb,var(--olive) 18%,var(--paper)),color-mix(in srgb,var(--saffron) 13%,var(--paper)))}.lesson-complete-callout{display:grid;gap:4px;padding:18px;border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--olive) 20%,var(--paper)),color-mix(in srgb,var(--saffron) 16%,var(--paper)));border:1px solid color-mix(in srgb,var(--olive) 28%,var(--border));box-shadow:var(--shadow-soft)}.lesson-prompt-card{transition:border-color .18s ease,transform .18s ease,background .18s ease}.lesson-prompt-card.grade-pass{border-color:color-mix(in srgb,var(--olive) 48%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--olive) 8%,var(--paper)),var(--paper))}.lesson-prompt-card.grade-partial{border-color:color-mix(in srgb,var(--saffron) 54%,var(--border))}.lesson-prompt-card.grade-fail{border-color:color-mix(in srgb,var(--terracotta) 44%,var(--border))}.seal-chip{padding:4px 8px;border-radius:999px;background:color-mix(in srgb,var(--olive) 14%,var(--paper));color:var(--olive);font-weight:950}.journey-card{background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 92%,var(--azulejo) 6%),var(--paper))}.heatmap-wall{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;padding:4px}.heat-tile{aspect-ratio:1;border-radius:9px;border:1px solid color-mix(in srgb,var(--border) 72%,transparent);background:color-mix(in srgb,var(--paper) 82%,var(--border) 18%);box-shadow:inset 0 0 0 1px #ffffff29}.heat-tile.level-1{background:color-mix(in srgb,var(--azulejo) 30%,var(--paper))}.heat-tile.level-2{background:color-mix(in srgb,var(--olive) 42%,var(--paper))}.heat-tile.level-3{background:color-mix(in srgb,var(--saffron) 58%,var(--paper))}.heat-tile.level-4{background:color-mix(in srgb,var(--terracotta) 72%,var(--paper))}.journey-arc{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;color:var(--text-dim);font-weight:800;font-size:.8rem}.journey-arc i{height:10px;border-radius:999px;background:linear-gradient(90deg,var(--terracotta) var(--pct),color-mix(in srgb,var(--border) 62%,transparent) 0);position:relative;overflow:hidden}.journey-arc i:after{content:"✈";position:absolute;left:calc(var(--pct) - 10px);top:-9px;color:var(--rioja);font-style:normal;font-size:18px}@media(max-width:520px){.route-board{grid-template-columns:repeat(2,minmax(0,1fr))}.route-card{min-height:112px;padding:12px}.passport-book{grid-template-columns:1fr;padding:10px}.passport-spine{inset:50% 12px auto;width:auto;height:12px}.intro-page{border-radius:22px 22px 4px 4px;min-height:260px}.stamps-page{border-radius:4px 4px 22px 22px;padding-left:20px;min-height:0}.stamps-page .stamp-grid{grid-template-columns:1fr}.tabbar{padding-inline:7px}.tabbar-inner{gap:3px}.tabbar-primary .tab{font-size:.59rem;min-height:56px;border-radius:16px}.tab svg{width:20px;height:20px}.tab-speak{transform:none}}.pattern-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.pattern-card,.pattern-hero{border-color:color-mix(in srgb,var(--accent, #d97706) 28%,var(--border))}.pattern-frame{width:fit-content;padding:.35rem .65rem;border-radius:999px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:color-mix(in srgb,var(--gold, #f59e0b) 18%,transparent);border:1px dashed color-mix(in srgb,var(--gold, #f59e0b) 55%,var(--border))}.pattern-drill-row{display:grid;gap:.75rem;padding:.9rem;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--card),white 5%)}.pattern-unlock-teaser{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.daily-home{--daily-forest: var(--forest);--daily-moss: var(--accent);--daily-lime: var(--sun);--daily-canvas: var(--bg);--daily-paper: var(--paper);--daily-soft: var(--bg-elev-2);--daily-line: var(--border);--daily-muted: var(--text-dim);--daily-shadow: var(--shadow);display:grid;gap:clamp(22px,3vw,34px);width:100%;max-width:1180px;margin:0 auto;padding:8px 0 24px;color:var(--text, var(--daily-forest))}.daily-home svg{width:1.25rem;height:1.25rem;flex:0 0 auto}.daily-page-header,.daily-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.daily-page-header{padding:6px 2px 0}.daily-page-header h1{margin:4px 0 0;color:var(--text, var(--daily-forest));font-size:clamp(2.35rem,4vw,3.65rem);font-weight:560;line-height:.96;letter-spacing:-.052em}.daily-eyebrow,.daily-hero-kicker{display:block;color:var(--daily-moss);font-size:.69rem;font-weight:850;letter-spacing:.15em;line-height:1.2;text-transform:uppercase}.daily-date{flex:0 0 auto;padding-bottom:7px;color:var(--daily-muted);font-size:.82rem;font-weight:680;letter-spacing:.01em}.daily-hero{position:relative;isolation:isolate;overflow:hidden;padding:clamp(22px,4.2vw,48px);border:1px solid color-mix(in srgb,var(--sun) 60%,var(--border));border-radius:clamp(25px,3vw,36px);background:var(--hero-bg);color:var(--hero-ink);box-shadow:0 8px color-mix(in srgb,var(--sun) 30%,transparent)}.daily-hero:before,.daily-hero:after{content:"";position:absolute;z-index:-1;pointer-events:none}.daily-hero:before{top:-120px;right:-100px;width:260px;height:260px;border:28px solid color-mix(in srgb,var(--coral) 36%,transparent);border-radius:50%;box-shadow:0 0 0 20px color-mix(in srgb,var(--sun) 30%,transparent)}.daily-hero:after{right:0;bottom:0;width:144px;height:48px;background:var(--tile-pattern);opacity:.6}.daily-hero-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,250px);align-items:center;gap:clamp(28px,6vw,76px)}.daily-hero-copy{position:relative;z-index:1;max-width:700px}.daily-hero-kicker{color:var(--hero-ink)}.daily-hero-copy h2{max-width:16ch;margin:12px 0 14px;color:var(--hero-ink);font-size:clamp(2.15rem,4vw,3.5rem);font-weight:510;line-height:.98;letter-spacing:-.05em}.daily-hero-copy>p{max-width:56ch;margin:0;color:var(--hero-muted);font-size:clamp(.9rem,1.5vw,1.01rem);line-height:1.65}.daily-primary-action{width:min(100%,390px);min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:clamp(22px,3vw,30px);padding:11px 13px 11px 20px;border:1px solid var(--ocean);border-radius:18px;background:var(--ocean);color:#fff;box-shadow:0 4px #094871;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.daily-primary-action:hover{background:#0d598e;color:#fff;box-shadow:0 6px #094871;transform:translateY(-2px)}.daily-primary-action:focus-visible,.daily-mode-card:focus-visible,.daily-focus-grid a:focus-visible{outline:3px solid var(--text);outline-offset:3px}.daily-primary-action>span{display:grid;gap:1px;min-width:0}.daily-primary-action strong{font-size:.96rem;font-weight:850;line-height:1.25}.daily-primary-action small{color:#e6f5ff;font-size:.67rem;font-weight:760;letter-spacing:.08em;text-transform:uppercase}.daily-primary-action>svg{width:2.5rem;height:2.5rem;padding:9px;border-radius:50%;background:var(--sun);color:var(--forest)}.daily-goal-panel{position:relative;z-index:1;display:grid;justify-items:center;gap:13px;padding:22px 18px 19px;border:1px solid color-mix(in srgb,var(--hero-ink) 16%,transparent);border-radius:25px;background:var(--hero-panel);text-align:center}.daily-goal-ring{position:relative;width:158px;height:158px;display:grid;place-items:center}.daily-goal-ring svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.daily-goal-ring circle{fill:none;stroke-width:7}.daily-goal-ring-track{stroke:color-mix(in srgb,var(--hero-ink) 15%,var(--hero-panel))}.daily-goal-ring-value{stroke:var(--accent-2);stroke-linecap:round;transition:stroke-dasharray .3s ease}.daily-goal-panel.is-unavailable .daily-goal-ring-value{stroke:color-mix(in srgb,var(--hero-ink) 25%,var(--hero-panel))}.daily-goal-ring>span{display:grid;justify-items:center;line-height:1}.daily-goal-ring strong{color:var(--hero-ink);font-family:var(--font-body);font-variant-numeric:tabular-nums;font-size:2.45rem;font-weight:600;letter-spacing:-.06em}.daily-goal-ring small{margin-top:7px;color:var(--hero-muted);font-size:.66rem;font-weight:780;letter-spacing:.1em;text-transform:uppercase}.daily-goal-copy{display:grid;gap:3px}.daily-goal-copy>span,.daily-goal-copy>small{color:var(--hero-muted);font-size:.66rem;font-weight:760;letter-spacing:.1em;text-transform:uppercase}.daily-goal-copy strong{color:var(--hero-ink);font-size:.84rem;line-height:1.3}.daily-scheduling-note{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:11px;margin-top:clamp(24px,4vw,38px);padding-top:18px;border-top:1px solid color-mix(in srgb,var(--hero-ink) 18%,transparent);color:var(--hero-muted)}.daily-scheduling-note svg{width:1rem;height:1rem;margin-top:2px;color:var(--hero-ink)}.daily-scheduling-note p{max-width:86ch;margin:0;font-size:.73rem;line-height:1.55}.daily-scheduling-note strong{color:var(--hero-ink)}.daily-modes,.daily-more{display:grid;gap:15px}.daily-section-heading{padding:0 2px}.daily-section-heading h2{margin:5px 0 0;color:var(--text, var(--daily-forest));font-size:clamp(1.55rem,2.6vw,2.2rem);font-weight:560;letter-spacing:-.035em}.daily-section-note{flex:0 0 auto;padding-bottom:5px;color:var(--daily-muted);font-size:.75rem;font-weight:630}.daily-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.daily-mode-card{--mode-accent: var(--accent);position:relative;overflow:hidden;min-width:0;min-height:252px;display:flex;flex-direction:column;padding:clamp(18px,2.5vw,25px);border:1px solid var(--daily-line);border-radius:24px;background:var(--sky-soft);color:var(--text, var(--daily-forest));box-shadow:0 9px 30px #182b250d;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.daily-mode-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--mode-accent)}.daily-mode-card.learn{--mode-accent: var(--coral);background:var(--coral-soft)}.daily-mode-card.practice{--mode-accent: var(--sun);background:var(--sun-soft)}.daily-mode-card:hover{border-color:color-mix(in srgb,var(--mode-accent) 72%,var(--daily-line));color:var(--text, var(--daily-forest));box-shadow:var(--daily-shadow);transform:translateY(-3px)}.daily-mode-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.daily-mode-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--daily-soft);color:var(--daily-moss)}.daily-mode-card.learn .daily-mode-icon{background:var(--paper);color:var(--accent-2)}.daily-mode-tag{padding:5px 8px;border:1px solid var(--daily-line);border-radius:999px;color:var(--daily-muted);font-size:.61rem;font-weight:840;letter-spacing:.09em;line-height:1;text-transform:uppercase}.daily-mode-value{margin-top:19px;color:var(--text, var(--daily-forest));font-family:var(--font-display);font-size:clamp(2.7rem,5vw,4rem);font-weight:590;line-height:.85;letter-spacing:-.065em}.daily-mode-word{font-size:clamp(2.15rem,4vw,3rem);line-height:1}.daily-mode-copy{margin-top:17px}.daily-mode-copy h3{margin:0 0 6px;color:var(--text, var(--daily-forest));font-size:1.22rem;font-weight:600}.daily-mode-copy p{margin:0;color:var(--daily-muted);font-size:.76rem;line-height:1.55}.daily-mode-action{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:17px;color:var(--daily-moss);font-size:.75rem;font-weight:820}.daily-mode-action svg{width:1rem;height:1rem;transition:transform .16s ease}.daily-mode-card:hover .daily-mode-action svg,.daily-focus-grid a:hover .daily-resource-arrow{transform:translate(3px)}.daily-habit-card{display:grid;grid-template-columns:minmax(250px,.85fr) minmax(420px,1.15fr);align-items:center;gap:clamp(22px,4vw,54px);padding:clamp(20px,3.5vw,34px);border:1px solid var(--daily-line);border-radius:27px;background:var(--daily-paper);box-shadow:0 10px 34px #182b250e}.daily-habit-copy{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:15px}.daily-habit-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:var(--sun-soft);color:var(--daily-moss)}.daily-habit-copy h2{margin:5px 0 6px;color:var(--text, var(--daily-forest));font-size:clamp(1.35rem,2.5vw,1.85rem);font-weight:570}.daily-habit-copy p{margin:0;color:var(--daily-muted);font-size:.76rem;line-height:1.55}.daily-habit-week-wrap{min-width:0}.habit-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(5px,1vw,10px)}.habit-day{min-width:0;display:grid;justify-items:center;gap:6px;color:var(--daily-muted)}.habit-day time{font-size:.63rem;font-weight:840;line-height:1;text-transform:uppercase}.habit-day-state{width:38px;max-width:100%;aspect-ratio:1;display:grid;place-items:center;border:1px solid var(--daily-line);border-radius:50%;background:var(--daily-soft)}.habit-day-state svg{width:1rem;height:1rem}.habit-day-state i{width:7px;height:7px;border-radius:50%;background:var(--daily-moss)}.habit-day.active .habit-day-state{border-color:color-mix(in srgb,var(--daily-moss) 42%,var(--daily-line));background:color-mix(in srgb,var(--daily-moss) 10%,var(--daily-paper))}.habit-day.goal .habit-day-state{border-color:var(--daily-moss);background:var(--daily-moss);color:var(--on-accent)}.habit-day.today .habit-day-state{outline:2px solid var(--daily-lime);outline-offset:3px}.habit-day strong{color:var(--text, var(--daily-forest));font-size:.68rem;font-variant-numeric:tabular-nums;line-height:1}.habit-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 15px;margin-top:13px;color:var(--daily-muted);font-size:.62rem;font-weight:650}.habit-legend span{display:inline-flex;align-items:center;gap:5px}.habit-legend i{width:7px;height:7px;border:1px solid var(--daily-moss);border-radius:50%}.habit-legend i.active{background:color-mix(in srgb,var(--daily-moss) 22%,var(--daily-paper))}.habit-legend i.goal{background:var(--daily-moss)}.habit-week-unavailable{padding:17px 18px;border:1px dashed var(--daily-line);border-radius:16px;color:var(--daily-muted);font-size:.76rem;line-height:1.5;text-align:center}.daily-source-count{flex:0 0 auto;margin-bottom:4px;padding:6px 10px;border:1px solid var(--daily-line);border-radius:999px;background:var(--daily-paper);color:var(--daily-moss);font-size:.67rem;font-weight:780}.daily-source-count.is-unavailable{color:var(--daily-muted)}.daily-focus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.daily-focus-grid a{min-width:0;min-height:94px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:15px;border:1px solid var(--daily-line);border-radius:18px;background:var(--daily-paper);color:var(--text, var(--daily-forest));text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.daily-focus-grid a:hover{border-color:var(--daily-moss);color:var(--text, var(--daily-forest));box-shadow:0 12px 30px #182b2514;transform:translateY(-2px)}.daily-focus-grid a>svg:first-child{width:1.35rem;height:1.35rem;color:var(--daily-moss)}.daily-focus-grid a>span{min-width:0;display:grid;gap:2px}.daily-focus-grid strong{overflow:hidden;color:var(--text, var(--daily-forest));font-size:.78rem;line-height:1.25;text-overflow:ellipsis}.daily-focus-grid small{color:var(--daily-muted);font-size:.64rem;font-weight:560;line-height:1.25}.daily-resource-arrow{width:.9rem!important;height:.9rem!important;color:var(--daily-muted);transition:transform .16s ease}.daily-deck-note{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;margin:0;color:var(--daily-muted);font-size:.66rem}.daily-deck-note>span{font-weight:760;letter-spacing:.08em;text-transform:uppercase}.daily-deck-note strong{color:var(--text, var(--daily-forest));font-weight:700}.daily-deck-note i{width:3px;height:3px;border-radius:50%;background:var(--daily-muted)}.daily-loading-header{min-height:80px;display:grid;align-content:end;justify-items:start;gap:9px}.daily-loading-card{min-height:410px;display:grid;align-content:center;gap:17px;padding:clamp(24px,4vw,46px);border:1px solid var(--daily-line);border-radius:32px;background:var(--daily-forest)}.daily-loading-line{width:54%;height:18px;border-radius:7px;background:#f7f8f21f;animation:daily-pulse 1.2s ease-in-out infinite alternate}.daily-loading-header .daily-loading-line{background:var(--daily-line)}.daily-loading-line.short{width:72px;height:10px}.daily-loading-line.date{width:min(320px,78%);height:42px}.daily-loading-line.wide{width:min(650px,86%);height:62px}.daily-loading-line.button{width:min(360px,70%);height:64px;margin-top:12px;border-radius:18px;background:#d7f56833}.daily-error-card{max-width:720px;display:grid;justify-items:start;gap:12px;margin:8vh auto 0;padding:clamp(25px,5vw,48px);border:1px solid var(--daily-line);border-radius:28px;background:var(--daily-paper);box-shadow:var(--daily-shadow)}.daily-error-card h1{margin:0;color:var(--text, var(--daily-forest));font-size:clamp(2rem,6vw,3.4rem)}.daily-error-card p{margin:0 0 6px;color:var(--daily-muted)}.daily-error-icon{width:48px;height:48px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--bad) 32%,var(--daily-line));border-radius:14px;background:color-mix(in srgb,var(--bad) 8%,var(--daily-paper));color:var(--bad)}.daily-error-card .btn-primary{border-color:var(--daily-forest);background:var(--daily-forest);color:#fff;box-shadow:none}@keyframes daily-pulse{0%{opacity:.5}to{opacity:1}}.alert-success{color:var(--good);border-color:color-mix(in srgb,var(--good) 45%,var(--border));background:color-mix(in srgb,var(--good) 10%,var(--paper))}.source-card-manager{padding-top:4px}.source-phrase-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.source-phrase-card{transition:opacity .18s ease,border-color .18s ease}.source-phrase-card.is-removed{opacity:.62;border-style:dashed}.source-delete-button{justify-self:start}.remove-confirm{display:grid;gap:10px;padding:13px;border:1px solid color-mix(in srgb,var(--bad) 34%,var(--border));border-radius:17px;background:color-mix(in srgb,var(--bad) 7%,var(--paper))}.remove-confirm p{margin:0;color:var(--text-dim);font-size:.84rem}@media(max-width:900px){.daily-habit-card{grid-template-columns:1fr}.daily-habit-copy{max-width:620px}.daily-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.daily-page-header,.daily-section-heading{align-items:flex-start}.daily-page-header{display:grid;gap:8px}.daily-date{grid-row:1;padding:0}.daily-page-header>div{grid-row:2}.daily-hero-main{grid-template-columns:1fr;gap:25px}.daily-goal-panel{grid-template-columns:auto minmax(0,1fr);justify-items:start;padding:15px 18px;text-align:left}.daily-goal-ring{width:108px;height:108px}.daily-goal-ring strong{font-size:1.85rem}.daily-goal-copy{align-self:center}.daily-mode-grid{grid-template-columns:1fr}.daily-mode-card{min-height:0}.daily-mode-value{margin-top:15px;font-size:2.55rem}.daily-mode-word{font-size:2.1rem}.daily-section-note{max-width:18ch;text-align:right}}@media(max-width:430px){.daily-home{gap:21px;padding-top:2px}.daily-page-header h1{font-size:2.55rem}.daily-hero{padding:20px;border-radius:25px}.daily-hero:before{width:190px;height:190px}.daily-hero-copy h2{max-width:15ch;margin-top:10px;font-size:2.15rem}.daily-primary-action{width:100%;min-height:62px;padding-left:17px}.daily-goal-panel{gap:14px;padding:13px;border-radius:20px}.daily-goal-ring{width:92px;height:92px}.daily-goal-ring circle{stroke-width:8}.daily-goal-ring strong{font-size:1.6rem}.daily-goal-ring small{margin-top:4px;font-size:.56rem}.daily-goal-copy>span,.daily-goal-copy>small{font-size:.58rem}.daily-goal-copy strong{font-size:.76rem}.daily-scheduling-note{margin-top:22px;padding-top:15px}.daily-section-heading{gap:12px}.daily-section-note{display:none}.daily-mode-grid{gap:9px}.daily-mode-card{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-areas:"top value" "copy copy" "action action";padding:17px;border-radius:20px}.daily-mode-topline{grid-area:top}.daily-mode-topline .daily-mode-tag{position:absolute;right:17px;top:18px}.daily-mode-icon{width:37px;height:37px}.daily-mode-value,.daily-mode-word{grid-area:value;align-self:center;min-width:0;margin:0 0 0 8px;padding-right:74px;overflow:hidden;font-size:2.05rem;text-overflow:ellipsis}.daily-mode-copy{grid-area:copy;margin-top:14px}.daily-mode-copy h3{font-size:1.15rem}.daily-mode-action{grid-area:action;margin-top:0;padding-top:13px}.daily-habit-card{gap:22px;padding:18px;border-radius:22px}.daily-habit-icon{width:39px;height:39px}.habit-week{gap:4px}.habit-day{gap:5px}.habit-day-state{width:31px}.habit-legend{justify-content:flex-start;gap:7px 11px}.daily-focus-grid{gap:8px}.daily-focus-grid a{min-height:96px;grid-template-columns:auto minmax(0,1fr);gap:9px;padding:13px;border-radius:16px}.daily-resource-arrow{display:none}.daily-focus-grid small{font-size:.6rem}.daily-source-count{max-width:14ch;text-align:center}.source-phrase-heading{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.daily-primary-action,.daily-mode-card,.daily-mode-action svg,.daily-focus-grid a,.daily-resource-arrow,.daily-goal-ring-value,.source-phrase-card{transition:none}.daily-loading-line{animation:none}}:root{--bg: #fffaf0;--bg-elev: #ffffff;--bg-elev-2: #e9f5fa;--paper: #ffffff;--paper-warm: #fff3d8;--ink: #183b4b;--text: #183b4b;--text-dim: #51656b;--text-faint: #5b6c70;--border: #e5dcc9;--border-strong: #a0b8c1;--accent: #1266a1;--on-accent: #ffffff;--accent-2: #a33f2f;--sun: #ffd34d;--coral: #e96b50;--ocean: #1266a1;--sky-soft: #e9f5fa;--coral-soft: #fff0e5;--sun-soft: #fff3bc;--hero-bg: #ffd969;--hero-ink: #183b4b;--hero-muted: #435450;--hero-panel: #fff5cf;--lime: var(--sun);--forest: #183b4b;--terracotta: var(--accent-2);--azulejo: var(--accent);--saffron: var(--sun);--olive: #177365;--rioja: #a33f2f;--good: #177365;--bad: #b2343c;--warn: #8a5412;--accent-grad: var(--accent);--shadow: 0 12px 34px #a05d1712;--shadow-soft: 0 5px 18px #a05d1708;--radius: 20px;--radius-lg: 28px;--radius-sm: 12px;--nav-h: 64px;--maxw: 1200px;--sidebar-w: 236px;--card: var(--paper);--gold: var(--lime);--tile-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%231266a1' stroke-width='1.5' stroke-opacity='.18'%3E%3Cpath d='M24 2Q24 24 46 24Q24 24 24 46Q24 24 2 24Q24 24 24 2Z'/%3E%3Ccircle cx='24' cy='24' r='6'/%3E%3C/g%3E%3C/svg%3E")}html[data-theme=dark]{--bg: #112c40;--bg-elev: #193b50;--bg-elev-2: #234b63;--paper: #193b50;--paper-warm: #283e4b;--ink: #fff5df;--text: #fff5df;--text-dim: #c1d5de;--text-faint: #b7ccd6;--border: #375970;--border-strong: #64879a;--accent: #91d7ed;--on-accent: #112c40;--accent-2: #ffb199;--sky-soft: #234b63;--coral-soft: #4a3639;--sun-soft: #443e25;--hero-bg: #28475b;--hero-ink: #fff5df;--hero-muted: #d1dde4;--hero-panel: #193b50;--olive: #84dac0;--rioja: #ffb199;--good: #84dac0;--bad: #ffadb0;--warn: #ffd083;--shadow: 0 16px 48px #00000030;--shadow-soft: none}html{scroll-padding-top:24px}body{background:var(--bg);line-height:1.6}body:before{display:none}h1,h2,h3{color:var(--text);font-weight:520;letter-spacing:-.045em}h1{font-size:clamp(2.25rem,4.4vw,3.7rem);line-height:1.06}h2{font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15}h3{font-family:var(--font-body);font-weight:650;letter-spacing:-.02em}a{color:var(--accent);font-weight:600}a:hover{color:var(--text)}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary,input,select,textarea{touch-action:manipulation}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}svg{flex-shrink:0}img,video{max-width:100%}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.skip-link{position:fixed;top:-100px;left:16px;z-index:999;padding:12px 18px;background:var(--lime);color:var(--forest);border-radius:8px}.skip-link:focus{top:16px}.app{width:auto;max-width:none;margin:0 0 0 var(--sidebar-w);min-height:100dvh}.app-header{min-height:88px;width:100%;max-width:var(--maxw);margin-inline:auto;padding:22px clamp(24px,3.5vw,56px);gap:16px}.brand{display:none;font-size:1.6rem;font-weight:600;letter-spacing:-.045em}.brand:after{display:none}.brand img{width:34px;height:34px;filter:none}.studio-breadcrumb{display:flex;align-items:center;gap:14px;font-size:.79rem;color:var(--text-dim)}.studio-breadcrumb strong{font-weight:550;color:var(--text)}.studio-breadcrumb>span:nth-child(2){color:var(--border-strong)}.header-actions{gap:16px;margin-left:auto}.language-label{font-size:.7rem;font-weight:650;letter-spacing:.12em;color:var(--text-dim)}.language-label span{padding-inline:5px;color:var(--accent)}.theme-toggle{display:grid;place-items:center;width:44px;min-height:44px;padding:10px;border:1px solid var(--border);background:var(--sun-soft);box-shadow:none;cursor:pointer}.theme-toggle:hover{background:var(--bg-elev-2)}.theme-toggle svg{width:19px;height:19px}.theme-sun{display:none}html[data-theme=dark] .theme-sun{display:block}html[data-theme=dark] .theme-moon{display:none}.main{width:100%;max-width:var(--maxw);margin-inline:auto;padding:18px clamp(24px,3.5vw,56px) 64px;min-width:0}.main:focus{outline:none}.main>*{min-width:0}.app-focused{margin-left:0}.app-focused .brand{display:flex}.app-focused .studio-breadcrumb{display:none}.studio-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);display:flex;flex-direction:column;padding:34px 20px 22px;border-right:1px solid var(--border);border-top:5px solid var(--sun);background:var(--paper);z-index:40;overflow-y:auto}.studio-wordmark{display:flex;align-items:center;gap:10px;padding:0 10px 36px;color:var(--text);font:560 1.9rem/1 var(--font-display);letter-spacing:-.05em}.studio-wordmark small{display:block;margin-top:8px;color:var(--text-dim);font:550 .52rem/1.2 var(--font-body);letter-spacing:.14em}.nav-group-label{margin:0 12px 10px;color:var(--text-dim);font-size:.62rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}.nav-group-divider{padding-top:30px}.studio-navigation>a,.sidebar-settings{display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 13px;margin-bottom:4px;color:var(--text-dim);border-radius:10px;font-size:.84rem;font-weight:500;transition:background .15s ease,color .15s ease}.studio-navigation svg,.sidebar-settings svg{width:19px;height:19px;stroke-width:1.6}.studio-navigation>a:hover,.sidebar-settings:hover{background:var(--bg);color:var(--text)}.studio-navigation>a[aria-current=page],.sidebar-settings[aria-current=page]{background:var(--sky-soft);color:var(--accent);font-weight:650}.studio-navigation i{display:block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:auto}.studio-sidebar-footer{margin-top:auto;padding-top:32px}.sidebar-note{margin:0 8px 26px;padding:26px 14px 20px;border:1px solid var(--border);border-radius:24px 24px 12px 12px;background:var(--tile-pattern) top / 48px 48px repeat-x,var(--paper-warm)}.sidebar-note>span{display:block;margin-top:20px;font:560 2.3rem/1 var(--font-display);color:var(--accent-2)}.sidebar-note p{font-size:.78rem;color:var(--text-dim);line-height:1.65;margin:10px 0 0}.tabbar{display:none}.card,.hero-card,.notebook-card,.card-tile,.route-card{background:var(--paper);border-color:var(--border);box-shadow:none}.card{padding:24px;margin-bottom:16px}.card:before,.card-tile:after,.hero-card:after,.notebook-card:after{display:none}.hero-card{min-height:0}.stack{gap:18px}.btn{border-radius:12px;background:var(--paper);font-size:.88rem;font-weight:620;border-color:var(--border);min-height:46px;padding:12px 18px;box-shadow:none;line-height:1.35}.btn:hover{box-shadow:none;background:var(--bg-elev-2);border-color:var(--border-strong);transform:translateY(-1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 3px color-mix(in srgb,var(--accent) 65%,var(--forest))}.btn-primary:hover{background:var(--accent);color:var(--on-accent);border-color:var(--accent);filter:brightness(1.07)}.btn-ghost{background:transparent;border-color:transparent}.btn-danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--border))}.btn-lg{min-height:52px;font-size:.95rem}.btn-small{min-height:40px;font-size:.78rem}.btn:disabled{transform:none;filter:none}.input{background:var(--paper);box-shadow:none;border-radius:10px}.pill{font-weight:600;font-size:.65rem;padding:5px 9px;letter-spacing:.015em;background:var(--bg)}.stat{background:var(--paper);box-shadow:none;padding-block:18px}.stat .num{font-family:var(--font-body);font-weight:550;font-variant-numeric:tabular-nums}.stat .lbl{font-weight:550;font-size:.65rem}.alert{border-radius:12px;font-size:.86rem}.spanish-kicker,.eyebrow{color:var(--accent);font-size:.65rem;font-weight:650;letter-spacing:.15em;text-transform:uppercase}.page-intro{display:grid;gap:10px;margin:8px 0 30px;max-width:740px}.page-intro h1{margin:0}.page-intro p{margin:0;font-size:.96rem;max-width:58ch;color:var(--text-dim)}.page-intro .eyebrow{display:flex;align-items:center;gap:8px}.page-intro .eyebrow:before{content:"";width:12px;height:12px;background:var(--sun);border:2px solid var(--accent-2);border-radius:50%}.page-intro-aside{display:flex;gap:16px;align-items:center;justify-content:space-between}.empty-state{padding:36px 24px}.segmented,.segmented-control{background:var(--bg-elev-2);border-radius:12px;box-shadow:none}.seg-btn{border-radius:9px;font-weight:600;min-height:44px}.lesson-section-progress,.lesson-win-banner,.lesson-complete-callout{background:var(--bg-elev-2);box-shadow:none;border-radius:14px}.lesson-prompt-card.grade-fail{border-color:var(--bad)}.lesson-prompt-card.grade-pass{background:color-mix(in srgb,var(--good) 5%,var(--paper))}.pattern-frame{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px}.pattern-drill-row{background:var(--paper)}.row{min-width:0}.row>*{min-width:0}.small{line-height:1.55}.speak-mode-picker{gap:24px}.speak-mode-picker .page-intro{margin-bottom:0}.session-mode-grid{gap:18px;align-items:stretch}.session-mode-choice{min-height:326px;padding:24px;margin:0;gap:24px;border-radius:22px}.session-mode-choice:hover{box-shadow:var(--shadow);border-color:var(--accent)}.session-mode-choice h2{font-size:1.9rem;margin-bottom:12px}.session-mode-choice p{font-size:.86rem;line-height:1.65;margin-bottom:0}.session-mode-choice>.row{align-items:flex-start;gap:10px;flex-wrap:wrap}.session-mode-choice>.row>strong{font-size:.76rem;font-weight:600}.session-mode-fsrs{background:var(--sky-soft);border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.session-mode-fsrs .pill{background:var(--paper);color:var(--accent)}.session-mode-learn{background:var(--coral-soft)}.session-mode-free{background:var(--sun-soft)}.session-mode-note{color:var(--text-dim);font-size:.78rem;max-width:75ch;margin:0}.session-launch-card{max-width:640px;margin:18px auto;padding:36px;gap:24px}.session-launch-card>p{max-width:48ch;margin-inline:auto}.session-launch-card .spanish-phrase{font-size:clamp(2.6rem,6vw,4rem)!important}.recall-shell{max-width:720px;margin-inline:auto}.recall-shell>.row{padding-inline:4px}.recall-shell>.row .btn{min-height:44px!important}.voice-card{padding:32px clamp(20px,4vw,44px);gap:18px;border-radius:28px}.recall-cue{width:100%;padding:8px 0 20px;border-bottom:1px solid var(--border)}.recall-cue>.eyebrow{margin-bottom:16px}.recall-cue h2{font-size:clamp(1.7rem,4.5vw,2.7rem);line-height:1.2;text-wrap:pretty}.recall-cue>p:last-child{margin-top:14px!important}.mic-timer-ring{width:148px;height:148px;margin:0 auto;box-shadow:none}.mic-timer-ring .mic-orb{position:absolute;top:19px;width:26px;height:26px;background:transparent;color:var(--accent);box-shadow:none}.mic-timer-ring .mic-orb svg{width:22px;height:22px}.mic-timer-ring .timer-num{top:49px;bottom:auto;font-family:var(--font-body);font-size:2.65rem;font-weight:600;font-variant-numeric:tabular-nums}.waveform.live{max-width:190px;height:32px;min-height:32px}.waveform.live span{background:var(--accent);width:6px;height:32px}.recording-help{max-width:48ch}.capture-wait{max-width:620px;margin:30px auto;padding:46px 24px;min-height:240px;align-content:center}.capture-wait h2{margin-bottom:4px}.capture-wait p{max-width:40ch;margin-inline:auto}.written-shell{max-width:900px;margin-inline:auto}.written-shell .written-hero{background:var(--sky-soft);border:1px solid var(--border);box-shadow:none;padding:28px 32px}.written-shell .written-hero:after{border-color:var(--sun);opacity:.65;pointer-events:none}.written-shell .writing-mark{background:var(--accent);color:var(--on-accent);box-shadow:none;border-radius:13px}.written-modes{grid-template-columns:repeat(3,minmax(0,1fr))}.written-modes legend{grid-column:1 / -1}.written-shell .written-modes label{padding:16px}.written-card{box-shadow:none}@media(min-width:1500px){:root{--sidebar-w: 260px}.studio-sidebar{padding-inline:26px}}@media(max-width:1100px)and (min-width:901px){:root{--sidebar-w: 208px}.studio-sidebar{padding-inline:12px}.session-mode-grid{grid-template-columns:1fr}.session-mode-choice{min-height:0}}@media(max-width:900px){.studio-sidebar,.studio-breadcrumb{display:none}.app{margin-left:0}.brand{display:flex}.app-header{min-height:76px;padding:calc(16px + var(--safe-top)) 24px 16px}.main{padding:10px 24px calc(104px + var(--safe-bottom));max-width:760px}.tabbar{display:block;padding:6px max(10px,env(safe-area-inset-left)) calc(6px + var(--safe-bottom));background:var(--paper);border-top:1px solid var(--border);box-shadow:0 -4px 20px #172b2506;backdrop-filter:none;-webkit-backdrop-filter:none}.tabbar-inner{max-width:600px;min-height:56px;gap:5px}.tabbar-primary .tab,.tab-more summary{min-height:56px;border-radius:12px;font-size:.63rem;font-weight:550;gap:5px;color:var(--text-dim);background:transparent;border-color:transparent;box-shadow:none}.tab svg{width:21px;height:21px;stroke-width:1.7}.tab:before{display:none}.tabbar .tab[aria-current=page],.tab-more[open] summary.tab,.tab-more summary.tab[aria-current=page]{color:var(--accent);background:var(--bg-elev-2);border-color:transparent;box-shadow:none}.tab[aria-current=page] svg{fill:none;stroke:currentColor}.tabbar .tab-speak,.tabbar .tab-speak[aria-current=page]{color:var(--forest);background:var(--lime);border-color:transparent;box-shadow:none}.tab-speak svg{color:inherit}.tab-more-menu{right:0;bottom:calc(100% + 16px);min-width:238px;max-width:calc(100vw - 30px);border-radius:18px;padding:14px;background:var(--paper);border-color:var(--border);box-shadow:var(--shadow);backdrop-filter:none}.tab-more-menu .nav-group-label{margin:5px 10px 8px}.tab-more-item{min-height:46px;padding:11px 10px;font-size:.84rem;font-weight:550;border-radius:9px}.tab-more-item[aria-current=page],.tab-more-item:hover{background:var(--bg-elev-2);color:var(--accent)}.page-intro{margin:10px 0 26px}.page-intro p{font-size:.89rem}.session-mode-grid{grid-template-columns:1fr;gap:14px}.session-mode-choice{min-height:0;gap:22px}.session-mode-choice h2{font-size:1.75rem}.session-launch-card{margin-top:8px;padding:26px}.written-modes{grid-template-columns:1fr}}@media(max-width:480px){.app-header,.main{padding-inline:20px}.header-actions{gap:12px}.brand{font-size:1.6rem}.language-label{font-size:.6rem}.theme-toggle{width:44px;min-height:44px}.card{padding:20px}.voice-card{padding:22px 18px;gap:14px}.recall-cue{padding-top:0;padding-bottom:14px}.recall-cue h2{font-size:1.7rem}.mic-timer-ring{width:120px;height:120px}.mic-orb{width:72px;height:72px}.mic-orb svg{width:28px;height:28px}.timer-num{font-size:1.9rem}.session-launch-card{padding:24px 20px}.written-shell .written-hero{padding:24px}.btn-row{gap:8px}.pill{max-width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.pull-refresh{--pull: 0px;align-items:center;color:var(--text-dim);display:flex;font:700 .78rem/1 var(--font-sans, system-ui, sans-serif);gap:.45rem;justify-content:center;left:0;opacity:0;pointer-events:none;position:fixed;right:0;top:max(.55rem,env(safe-area-inset-top));transform:translateY(calc(var(--pull) - 56px));transition:opacity .12s ease,transform .12s ease;z-index:1000}.pull-refresh.is-pulling,.pull-refresh.is-refreshing{opacity:1}.pull-refresh.is-ready .pull-refresh__icon{transform:rotate(180deg)}.pull-refresh__icon{font-size:1.05rem;transition:transform .15s ease}.pull-refresh.is-refreshing .pull-refresh__icon{animation:pull-refresh-spin .65s linear infinite}@keyframes pull-refresh-spin{to{transform:rotate(360deg)}}@media(pointer:fine){.pull-refresh{display:none}}@media(prefers-reduced-motion:reduce){.pull-refresh,.pull-refresh__icon{transition:none}.pull-refresh.is-refreshing .pull-refresh__icon{animation:none}}
