/* 1 Minute Spanish pages (maestra.sh/1-minute-spanish/). The builder (scripts/build-one-minute.mjs) appends Catrina's sprite
 * CSS and her colour tokens (from packages/web/src/catrina-art.ts) after this file. Light and dark follow the system. */
:root{--surface:#fcfaff;--card:#fff;--ink:#3e304b;--muted:#6c5d77;--primary:#74528b;--wash:#f1e8fa;--line:#e6dcee;--hi:#ffe9b8;--lvl:#236c46;--sans:Figtree,system-ui,-apple-system,"Segoe UI",sans-serif;--serif:Literata,Georgia,"Times New Roman",serif}
@media (prefers-color-scheme:dark){:root{--surface:#1c1622;--card:#221b29;--ink:#eee6f3;--muted:#a898b3;--primary:#8a62ad;--wash:#2d2337;--line:#3a2f45;--hi:#5a4720}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--sans);line-height:1.5}
a{color:var(--primary)}
a:focus-visible,button:focus-visible,[role=button]:focus-visible,input:focus-visible,#stage:focus-visible{outline:3px solid #c7a2e4;outline-offset:2px}
.sitehead{max-width:760px;margin:0 auto;padding:14px 16px;display:flex;justify-content:space-between;align-items:center}
.logo{font-family:var(--serif);font-weight:600;font-size:20px;color:var(--ink);text-decoration:none}.logo small{font-family:var(--sans);font-size:12px;color:var(--muted);font-weight:600;margin-left:6px}
.open{font-size:14px;font-weight:700;color:var(--primary);text-decoration:none;border:1px solid var(--line);background:var(--card);padding:8px 16px;border-radius:999px}
main{max-width:760px;margin:0 auto;padding:0 16px 96px}
.crumbs{font-size:13px;color:var(--muted);margin:4px 0 12px}.crumbs a{text-decoration:none}
h1{font-family:var(--serif);font-weight:600;font-size:clamp(26px,5vw,36px);line-height:1.12;margin:6px 0 4px;letter-spacing:-.01em}
h2{font-family:var(--serif);font-weight:600;font-size:22px;margin:28px 0 8px}
.lede{color:var(--muted);margin:0 0 14px}
.meta{color:var(--muted);font-size:14px}
.lvl{display:inline-block;background:var(--lvl);color:#fff;border-radius:999px;padding:3px 11px;font-size:14px;font-weight:800;letter-spacing:.06em;line-height:1.2;margin-left:8px;vertical-align:middle;text-shadow:0 1px 0 rgba(0,0,0,.25);text-decoration:none}
.cat-hero{display:flex;gap:16px;align-items:center;margin:6px 0 16px}.cat-hero .cat{flex:0 0 92px;height:92px}.cat-hero .cat svg{width:100%;height:100%}
/* level chips */
.levels{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.levels a,.levels span{font-size:14px;font-weight:800;letter-spacing:.04em;color:#fff;padding:6px 14px;border-radius:999px;text-decoration:none}
.levels span.soon{background:transparent;color:var(--muted);border:2px dashed;padding:4px 12px}.levels span.soon small{font-weight:600;font-size:11px;letter-spacing:0}
.levels a[aria-current=page]{box-shadow:0 0 0 3px var(--surface),0 0 0 5px currentColor;outline:0}
/* search + episode list */
.search input{width:100%;font:inherit;font-size:16px;padding:12px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink)}
.count{font-size:13px;color:var(--muted);margin:10px 0 8px}
.list{display:flex;flex-direction:column;gap:10px;padding:0;margin:0;list-style:none}
.ep a{display:flex;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:12px 14px;text-decoration:none;color:inherit}
.ep a:hover{border-color:var(--primary)}
.badge{flex:0 0 auto;text-align:center;color:#fff;border-radius:14px;padding:6px 10px;min-width:64px;font-weight:800;line-height:1.15;text-shadow:0 1px 0 rgba(0,0,0,.2)}
.badge small{display:block;font-size:11px;letter-spacing:.06em}.badge b{font-size:20px}
.ep h3{font-family:var(--serif);font-weight:600;font-size:19px;margin:0 0 2px;line-height:1.2}
.ep .w{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.ep .w span{font-size:12px;background:var(--wash);color:var(--primary);font-weight:700;border-radius:999px;padding:2px 9px}
.ep .go{margin-left:auto;color:var(--primary);font-weight:800}
.none{background:var(--wash);border-radius:20px;padding:18px;text-align:center;color:var(--muted)}
/* the player */
.stagewrap{display:flex;flex-direction:column;align-items:center;gap:12px;margin:14px 0}
.stage{position:relative;width:360px;max-width:100%;height:640px;border-radius:28px;overflow:hidden;background:linear-gradient(170deg,var(--wash),var(--surface) 55%);border:1px solid var(--line);box-shadow:0 12px 40px rgba(62,48,75,.18);user-select:none}
.stage .top{position:absolute;left:0;right:0;top:44px;display:flex;justify-content:space-between;align-items:center;padding:0 20px}
.brand{font-weight:800;letter-spacing:.08em;font-size:12px;color:var(--primary)}
.brand .lvl{color:#fff;font-size:14px;margin-left:8px}
.day{font-size:12px;color:var(--muted);background:var(--card);border:1px solid var(--line);padding:3px 9px;border-radius:999px}
.prog{position:absolute;left:20px;right:20px;top:30px;display:flex;gap:3px}
.prog i{flex:1;height:4px;border-radius:2px;background:var(--line);overflow:hidden;cursor:pointer;position:relative}
.prog i b{position:absolute;inset:0;transform-origin:left;transform:scaleX(0);background:var(--primary)}
.prog i.say b{background:#d77ce0}.prog i.gap{flex:0 0 6px;background:none;cursor:default}
.chip{position:absolute;left:20px;top:106px;font-size:11px;font-weight:800;letter-spacing:.1em;padding:4px 10px;border-radius:999px;background:var(--primary);color:#fff}
.chip.phr{background:#8a4fb0}.chip.you{background:#a63fb5}
.dots{position:absolute;right:20px;top:110px;display:flex;gap:7px;justify-content:flex-end}
.dots u{width:13px;height:13px;border-radius:50%;background:var(--dot,var(--primary));transition:transform .25s,opacity .25s}
.dots u.gone{transform:scale(0);opacity:0}
#card{position:absolute;left:22px;right:22px;top:140px;bottom:196px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px}
.big{font-size:40px;font-weight:800;line-height:1.08;animation:rise .45s both}
.sub{font-size:17px;color:var(--muted);animation:rise .45s .12s both}
.en{font-weight:800;transition:font-size .35s,color .35s;line-height:1.15}
.word .en{font-size:46px}.word.rev .en{font-size:22px;color:var(--muted);font-weight:600}
.phrase .en{font-size:27px}.phrase.rev .en{font-size:17px;color:var(--muted);font-weight:600}
.es{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;font-weight:800;opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s;line-height:1.15}
div.es{cursor:default}
.rev .es{opacity:1;transform:none}
.word .es{font-size:54px}.word .es small{font-size:.5em;font-weight:600;color:var(--muted);margin-right:.25em}
.phrase .es,.prompt .es{font-size:30px}
.ph{font-size:17px;color:var(--primary);font-weight:700;letter-spacing:.04em;opacity:0;transition:opacity .3s .1s}
.rev .ph{opacity:1}
.sc{font-size:24px;font-weight:800;line-height:1.2}.mn{font-size:16px;color:var(--muted);line-height:1.3}
.prompt .es{margin-top:10px}
mark{background:var(--hi);color:inherit;border-radius:7px;padding:0 5px}
.cta{margin-top:12px;display:inline-block;background:var(--primary);color:#fff;font-weight:700;padding:10px 18px;border-radius:999px;font-size:15px;text-decoration:none}
.daynav{display:flex;gap:8px;justify-content:center;margin-top:12px}
.navbtn{font-size:14px;font-weight:700;border:1px solid var(--line);background:var(--card);color:var(--primary);padding:8px 14px;border-radius:999px;text-decoration:none}
.navbtn[aria-disabled=true]{opacity:.4}
#cat{position:absolute;right:16px;bottom:150px;width:104px;height:104px;pointer-events:none}
#cat svg{width:100%;height:100%}
.foot{position:absolute;left:20px;bottom:150px;font-size:12px;font-weight:700;color:#fff;background:var(--primary);padding:6px 11px;border-radius:999px;text-decoration:none}
.poster{position:absolute;inset:0;background:color-mix(in srgb,var(--surface) 70%,transparent);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:5}
.poster button{width:84px;height:84px;border-radius:50%;border:0;background:var(--primary);color:#fff;font-size:34px;cursor:pointer;box-shadow:0 8px 24px rgba(116,82,139,.4)}
.ctl{display:flex;gap:10px;align-items:center}
.ctl button{border:1px solid var(--line);background:var(--card);color:var(--ink);width:44px;height:44px;border-radius:50%;font-size:18px;cursor:pointer}
.ctl .go{background:var(--primary);color:#fff;border-color:var(--primary)}
.ctl #b-speed{font-size:13px;font-weight:700}
.paused .cat,.paused .cat *{animation-play-state:paused!important}
.under{max-width:360px;margin:0 auto;display:flex;flex-direction:column;gap:12px;align-items:center}
.under .days{display:flex;gap:8px;width:100%;justify-content:space-between}
/* transcript */
.transcript{margin-top:8px}
.transcript dt{font-weight:800;margin-top:10px}.transcript dd{margin:2px 0 0;color:var(--muted)}
.transcript ul{margin:4px 0 0;padding-left:20px}
.transcript li{margin:3px 0}
.transcript .es{opacity:1;transform:none;font-weight:700;color:var(--ink);cursor:text}
.appbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--card);border-top:1px solid var(--line);padding:10px 16px;display:flex;gap:12px;align-items:center;justify-content:center;box-shadow:0 -6px 20px rgba(62,48,75,.12)}
.appbar span{font-size:14px;color:var(--muted)}.appbar a{background:var(--primary);color:#fff;text-decoration:none;font-weight:700;font-size:15px;padding:9px 18px;border-radius:999px;white-space:nowrap}
footer{max-width:760px;margin:0 auto;padding:10px 16px 100px;color:var(--muted);font-size:13px}
noscript .ns{background:var(--wash);border-radius:16px;padding:12px 16px;margin:12px 0;text-align:center;color:var(--muted)}
@media (max-width:520px){.appbar span{display:none}.appbar a{flex:1;text-align:center}.cat-hero{flex-direction:column;text-align:center}}
@keyframes rise{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Catrina: packages/web/src/catrina-art.ts, verbatim */
:root{--cat-line:#7a5b70;--cat-eye:#3e304b;--cat-gloss:#7d6a92;--cat-fur:#fff8ef;--cat-orange:#ec9f57;--cat-patch:#5e4a6b;--cat-ear:#f6bcc4;--cat-nose:#e88a9c;--cat-cheek:#f4a0b0;--cat-scarf:#74528b;--cat-bell:#e3a33c;--cat-whisker:rgba(122,91,112,.55);--cat-book:#4e6b91;--cat-page:#ffffff;--cat-pageline:#ddd2e5;--cat-gold:#8a6424;--cat-prop:#3e304b}@media (prefers-color-scheme:dark){:root{--cat-line:#3a2b40;--cat-eye:#2a1f33;--cat-gloss:#6f5d86;--cat-fur:#f6ece1;--cat-orange:#eea865;--cat-patch:#6a557a;--cat-ear:#efaab6;--cat-nose:#ec93a5;--cat-cheek:#ef93a6;--cat-scarf:#9a72bd;--cat-bell:#e9b45c;--cat-whisker:rgba(238,230,243,.4);--cat-book:#98b6dc;--cat-page:#2b2333;--cat-pageline:#4a3d55;--cat-gold:#d8b36c;--cat-prop:#d9cde3}}
.cat{overflow:visible;--_line:#7a5b70;--_eye:#3e304b;--_gloss:#7d6a92;--_fur:#fff8ef;--_orange:#ec9f57;--_patch:#5e4a6b;--_ear:#f6bcc4;--_nose:#e88a9c;--_cheek:#f4a0b0;--_scarf:#74528b;--_bell:#e3a33c;--_whisker:rgba(122,91,112,.55);--_book:#4e6b91;--_page:#ffffff;--_pageline:#ddd2e5;--_gold:#8a6424;--_prop:#3e304b}@media (prefers-color-scheme:dark){.cat{--_line:#3a2b40;--_eye:#2a1f33;--_gloss:#6f5d86;--_fur:#f6ece1;--_orange:#eea865;--_patch:#6a557a;--_ear:#efaab6;--_nose:#ec93a5;--_cheek:#ef93a6;--_scarf:#9a72bd;--_bell:#e9b45c;--_whisker:rgba(238,230,243,.4);--_book:#98b6dc;--_page:#2b2333;--_pageline:#4a3d55;--_gold:#d8b36c;--_prop:#d9cde3}}.cat .ln{stroke:var(--cat-line,var(--_line));stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.cat .ink{stroke:var(--cat-eye,var(--_eye));fill:none;stroke-linecap:round;stroke-linejoin:round}.cat .soft{stroke:var(--cat-line,var(--_line));fill:none;stroke-linecap:round;stroke-linejoin:round}.cat .fur{fill:var(--cat-fur,var(--_fur))}.cat .org{fill:var(--cat-orange,var(--_orange))}.cat .pat{fill:var(--cat-patch,var(--_patch))}.cat .ear{fill:var(--cat-ear,var(--_ear))}.cat .nose{fill:var(--cat-nose,var(--_nose))}.cat .cheek{fill:var(--cat-cheek,var(--_cheek))}.cat .col{fill:var(--cat-scarf,var(--_scarf))}.cat .bell{fill:var(--cat-bell,var(--_bell))}.cat .eye{fill:var(--cat-eye,var(--_eye))}.cat .gl{fill:var(--cat-gloss,var(--_gloss))}.cat .hi{fill:#fff}.cat .fs{stroke:var(--cat-fur,var(--_fur))}.cat .os{stroke:var(--cat-orange,var(--_orange))}.cat .ps{stroke:var(--cat-patch,var(--_patch))}.cat .wh{stroke:var(--cat-whisker,var(--_whisker));stroke-width:1.2;stroke-linecap:round;fill:none}.cat .bk{fill:var(--cat-book,var(--_book))}.cat .pg{fill:var(--cat-page,var(--_page))}.cat .pl{stroke:var(--cat-pageline,var(--_pageline));stroke-width:1.6;stroke-linecap:round;fill:none}.cat .prop{stroke:var(--cat-prop,var(--_prop));fill:none;stroke-linecap:round;stroke-linejoin:round}.cat .propf{fill:var(--cat-prop,var(--_prop))}.cat .accs{stroke:var(--cat-scarf,var(--_scarf));fill:none;stroke-linecap:round;stroke-linejoin:round}.cat .golds{stroke:var(--cat-gold,var(--_gold));fill:none;stroke-linecap:round}.cat .eyes{transform-box:fill-box;transform-origin:center;animation:cat-blink 4.6s infinite}@keyframes cat-blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}@media (prefers-reduced-motion:reduce){.cat,.cat *{animation:none!important}}
.k-welcome .arm{transform-box:view-box;transform-origin:82px 96px;animation:k-wave 3s ease-in-out infinite}@keyframes k-wave{0%,50%,100%{transform:rotate(0)}8%,28%{transform:rotate(-17deg)}18%,38%{transform:rotate(11deg)}}.k-welcome .head{transform-box:view-box;transform-origin:60px 76px;animation:k-welcome-head 3s ease-in-out infinite}@keyframes k-welcome-head{0%,56%,100%{transform:rotate(0)}14%,40%{transform:rotate(-4deg)}}
.k-reading .head{transform-box:view-box;transform-origin:60px 76px;animation:k-read-head 3.2s ease-in-out infinite}@keyframes k-read-head{0%,100%{transform:rotate(-3.5deg)}48%{transform:rotate(3.5deg)}56%{transform:rotate(-3.5deg)}}.k-reading .leaf{transform-box:view-box;transform-origin:60px 108px;animation:k-leaf 3.2s cubic-bezier(.45,0,.3,1) infinite}@keyframes k-leaf{0%,56%{transform:scaleX(1) skewY(0)}66%{transform:scaleX(.02) skewY(-6deg)}76%,100%{transform:scaleX(-1) skewY(0)}}
.k-listening .earr{transform-box:view-box;transform-origin:82px 30px;animation:k-flick 2.4s ease-out infinite}@keyframes k-flick{0%,28%,48%,100%{transform:rotate(0)}32%,40%{transform:rotate(-15deg)}36%,44%{transform:rotate(2deg)}}.k-listening .w1{animation:k-wave-in 2.4s ease-in-out infinite}.k-listening .w2{animation:k-wave-in 2.4s ease-in-out -.3s infinite}@keyframes k-wave-in{0%,100%{opacity:.25}30%{opacity:1}60%{opacity:.25}}
.k-thinking .tail{transform-box:view-box;transform-origin:84px 108px;animation:k-curl 3.6s ease-in-out infinite}@keyframes k-curl{0%,100%{transform:rotate(0)}40%{transform:rotate(-9deg)}60%{transform:rotate(-6deg)}}.k-thinking .bubble{transform-box:fill-box;transform-origin:0% 100%;animation:k-bubble 3.6s ease-out infinite}@keyframes k-bubble{0%,6%{opacity:0;transform:translateY(4px) scale(.6)}14%,84%{opacity:1;transform:none}94%,100%{opacity:0;transform:translateY(-3px)}}.k-thinking .arm{transform-box:view-box;transform-origin:82px 96px;animation:k-tap 3.6s ease-in-out infinite}@keyframes k-tap{0%,100%,50%{transform:rotate(0)}56%,66%{transform:rotate(-3deg)}61%{transform:rotate(1deg)}}
.k-celebrate .all{transform-box:view-box;transform-origin:60px 118px;animation:k-hop 2.4s cubic-bezier(.3,.6,.4,1) infinite}@keyframes k-hop{0%,62%,100%{transform:none}6%{transform:scale(1.04,.95)}17%{transform:translateY(-13px) scale(.98,1.03)}28%{transform:scale(1.05,.94)}34%{transform:none}42%{transform:translateY(-6px)}50%{transform:scale(1.02,.97)}56%{transform:none}}.k-celebrate .shadow{transform-box:view-box;transform-origin:60px 118px;animation:k-shadow 2.4s cubic-bezier(.3,.6,.4,1) infinite}@keyframes k-shadow{0%,28%,56%,100%{transform:none}17%{transform:scale(.7)}42%{transform:scale(.85)}}.k-celebrate .tail{transform-box:view-box;transform-origin:84px 108px;animation:k-tailup 2.4s ease-in-out infinite}@keyframes k-tailup{0%,100%{transform:rotate(0)}20%{transform:rotate(-6deg)}45%{transform:rotate(4deg)}}
.k-review .cf{transform-box:view-box;transform-origin:136px 99px;animation:k-cf 3.2s ease-in-out infinite}.k-review .cb{transform-box:view-box;transform-origin:136px 99px;animation:k-cb 3.2s ease-in-out infinite}@keyframes k-cf{0%,30%{transform:scaleX(1)}38%,92%{transform:scaleX(0)}100%{transform:scaleX(1)}}@keyframes k-cb{0%,38%{transform:scaleX(0)}46%,84%{transform:scaleX(1)}92%,100%{transform:scaleX(0)}}.k-review .head{transform-box:fill-box;transform-origin:50% 100%;animation:k-nod 3.2s ease-in-out infinite}@keyframes k-nod{0%,48%,64%,100%{transform:none}54%{transform:rotate(-4deg) translateY(1.4px)}}
.k-sleeping .breath{transform-box:view-box;transform-origin:100px 117px;animation:k-breathe 4s ease-in-out infinite}@keyframes k-breathe{0%,100%{transform:none}50%{transform:scale(1.012,1.04)}}.k-sleeping .z1{animation:k-z 4s ease-out infinite}.k-sleeping .z2{animation:k-z 4s ease-out -2s infinite}@keyframes k-z{0%{opacity:0;transform:translate(4px,6px)}25%{opacity:.8}70%,100%{opacity:0;transform:translate(-3px,-8px)}}
.k-offline .plug{transform-box:view-box;transform-origin:111px 94px;animation:k-plug 3.6s ease-in-out infinite}@keyframes k-plug{0%,24%{transform:translate(14px,-12px) rotate(-6deg)}31%{transform:translate(4px,-3px) rotate(14deg)}36%,88%{transform:none;opacity:1}93%{opacity:0;transform:none}95%{opacity:0;transform:translate(14px,-12px) rotate(-6deg)}100%{opacity:1;transform:translate(14px,-12px) rotate(-6deg)}}.k-offline .arm{transform-box:view-box;transform-origin:82px 96px;animation:k-bat 3.6s ease-in-out infinite}@keyframes k-bat{0%,8%{transform:rotate(58deg)}18%{transform:rotate(30deg)}24%{transform:rotate(38deg)}28%{transform:rotate(26deg)}40%,84%{transform:rotate(0)}96%,100%{transform:rotate(58deg)}}.k-offline .head{transform-box:view-box;transform-origin:60px 76px;animation:k-shrug 3.6s ease-in-out infinite}@keyframes k-shrug{0%,30%,96%,100%{transform:rotate(-6deg)}42%,84%{transform:rotate(0)}}.k-offline .earl{transform-box:view-box;transform-origin:38px 30px;animation:k-earl 3.6s ease-in-out infinite}.k-offline .earr{transform-box:view-box;transform-origin:82px 30px;animation:k-earr 3.6s ease-in-out infinite}@keyframes k-earl{0%,34%,90%,100%{transform:none}44%,80%{transform:rotate(-12deg)}}@keyframes k-earr{0%,34%,90%,100%{transform:none}44%,80%{transform:rotate(12deg)}}
.k-teacher .arm{animation:k-point 2.8s ease-in-out infinite}@keyframes k-point{0%,16%,32%,100%{transform:none}8%,24%{transform:translate(3px,-1px)}}.k-teacher .head{transform-box:view-box;transform-origin:60px 76px;animation:k-teacher-head 2.8s ease-in-out infinite}@keyframes k-teacher-head{0%,100%{transform:rotate(0)}40%,80%{transform:rotate(3deg)}}
.k-window .tail{transform-box:view-box;transform-origin:131px 127px;animation:k-swing 4s ease-in-out infinite}@keyframes k-swing{0%,100%{transform:rotate(7deg)}50%{transform:rotate(-9deg)}}.k-window .p1{transform-box:view-box;transform-origin:48px 130px;animation:k-sway 4s ease-in-out infinite}.k-window .p2{transform-box:view-box;transform-origin:200px 130px;animation:k-sway 4s ease-in-out -1.4s infinite}@keyframes k-sway{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1.4deg)}}.k-window .shim{animation:k-shim 4s ease-in-out infinite}@keyframes k-shim{0%,100%{opacity:.35;transform:none}50%{opacity:.7;transform:translateX(2px)}}.k-window .wearl{transform-box:view-box;transform-origin:104px 70px;animation:k-wear 4s ease-out infinite}@keyframes k-wear{0%,60%,74%,100%{transform:none}64%,70%{transform:rotate(-12deg)}67%{transform:rotate(2deg)}}
