@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:8px 18px calc(var(--nav-h) + var(--safe-bottom) + 28px)}.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;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))}.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)}.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}.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}
