.ca-page{--ca-ink: #0A0A0A;--ca-muted: #5F6368;--ca-line: #E4DBCB;--ca-paper: #F3E8D5;--ca-card: #FFFFFF;--ca-brand: #6B1F2A;--ca-accent: #00B894;--ca-accent-dark: #0E9C7E;--ca-night: #0B1622;--ca-radius: 18px;background:var(--ca-paper);color:var(--ca-ink);font-family:var(--font-primary, "Montserrat", system-ui, sans-serif)}.ca-wrap{width:min(1180px,100% - 40px);margin-inline:auto}.ca-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.8rem 1.4rem;border-radius:999px;border:1.5px solid transparent;font:600 .95rem/1.1 var(--font-primary, "Montserrat", system-ui, sans-serif);cursor:pointer;text-decoration:none;transition:transform .16s ease,background .2s ease,box-shadow .2s ease,color .2s ease}.ca-btn:active{transform:translateY(1px)}.ca-btn:focus-visible{outline:3px solid var(--ca-accent);outline-offset:3px}.ca-btn-primary{background:var(--ca-brand);color:#fff;box-shadow:0 6px 20px #6b1f2a40}.ca-btn-primary:hover{background:#85273a;box-shadow:0 10px 26px #6b1f2a4d}.ca-btn-primary:disabled{background:#c9bfb2;box-shadow:none;cursor:not-allowed;color:#fff}.ca-btn-ghost{background:transparent;color:var(--ca-ink);border-color:var(--ca-line)}.ca-btn-ghost:hover{background:#fff;border-color:#c9bfb2}.ca-btn-quiz{background:var(--ca-accent);color:#06231c}.ca-btn-quiz:hover{background:#04a184;color:#fff}.ca-btn-danger{background:#b3261e;color:#fff}.ca-btn-wide{width:min(340px,100%)}.ca-link-btn{background:none;border:0;padding:.4rem .2rem;color:var(--ca-muted);font:500 .85rem/1 var(--font-primary, "Montserrat", system-ui, sans-serif);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.ca-link-btn:hover{color:var(--ca-ink)}.ca-hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(1200px 620px at 78% 42%,#123244,#0b1622 62%,#070e16);padding:clamp(5rem,9vw,7.5rem) 0 clamp(3rem,6vw,5rem)}.ca-hero:after{content:"";position:absolute;inset:auto 0 0;height:120px;background:linear-gradient(to bottom,rgba(243,232,213,0),var(--ca-paper));pointer-events:none}.ca-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center}.ca-badge{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1.1rem;padding:.42rem .9rem;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.04em;background:#00b89424;color:#6fe9c9;border:1px solid rgba(0,184,148,.32)}.ca-hero h1{font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);font-size:clamp(2.2rem,1.4rem + 3.4vw,4rem);line-height:1.04;letter-spacing:-.02em;margin:0 0 1rem;color:#fff}.ca-hero h1 em{font-style:normal;color:#6fe9c9}.ca-hero-lead{font-size:clamp(1rem,.95rem + .3vw,1.2rem);line-height:1.6;color:#ffffffd1;margin:0 0 1.6rem;max-width:46ch}.ca-hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}.ca-hero-cta .ca-btn-primary{background:var(--ca-accent);color:#06231c;box-shadow:0 10px 30px #00b8944d}.ca-hero-cta .ca-btn-primary:hover{background:#55efc4;color:#06231c}.ca-hero-cta .ca-btn-ghost{color:#fff;border-color:#ffffff4d}.ca-hero-cta .ca-btn-ghost:hover{background:#ffffff1a;border-color:#ffffff8c}.ca-hero-facts{display:flex;flex-wrap:wrap;gap:1.4rem;margin:1.8rem 0 0;padding:0;list-style:none}.ca-hero-facts li{font-size:.84rem;color:#ffffff9e}.ca-hero-facts strong{display:block;font-size:1.35rem;color:#fff;font-weight:700;line-height:1.2}.ca-globe-wrap{position:relative;aspect-ratio:1;width:100%;max-width:520px;margin-inline:auto}#ca-globe{width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y}#ca-globe.is-grabbing{cursor:grabbing}.ca-globe-wrap.is-static:after{content:"";position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#163a48,#0a1622 70%);border:1px solid rgba(0,184,148,.3)}.ca-globe-hint{position:absolute;left:50%;bottom:-.4rem;transform:translate(-50%);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#fff6}.ca-resume{display:flex;align-items:center;gap:1rem;margin-top:1.8rem;padding:.9rem 1.1rem;border-radius:16px;text-decoration:none;color:#fff;background:#ffffff12;border:1px solid rgba(255,255,255,.16);transition:background .2s ease,transform .2s ease}.ca-resume:hover{background:#ffffff1f;transform:translateY(-2px)}.ca-resume-flags{display:inline-flex;align-items:center;gap:.35rem;flex:none}.ca-resume-arrow{opacity:.55;font-size:.85rem}.ca-resume-text{display:flex;flex-direction:column;gap:.12rem;min-width:0}.ca-resume-text strong{font-size:.95rem}.ca-resume-text span{font-size:.82rem;color:#ffffffad}.ca-resume-go{margin-left:auto;font-size:1.2rem;opacity:.7}.ca-flag{width:24px;height:16px;flex:none;border-radius:3px;overflow:hidden;box-shadow:0 0 0 1px #0000001f;display:inline-block;vertical-align:middle}.ca-page-dark{--ca-ink: #F4F1EA;--ca-muted: rgba(244, 241, 234, .64);--ca-line: rgba(255, 255, 255, .13);--ca-paper: #0B1622;--ca-card: #13232F}.ca-page-dark .ca-section-alt{background:#0e1c28}.ca-page-dark .ca-tile-icon{background:color-mix(in srgb,var(--cat, #0F766E) 30%,#0B1622);color:color-mix(in srgb,var(--cat, #0F766E) 45%,#fff)}.ca-page-dark .ca-steps li:before{background:var(--ca-accent);color:#06231c}.ca-page-dark .ca-related a{background:var(--ca-card);color:var(--ca-ink)}.ca-page-dark .ca-related a:hover{border-color:var(--ca-accent);color:#6fe9c9}.ca-page-dark .ca-btn-ghost{color:var(--ca-ink)}.ca-page-dark .ca-btn-ghost:hover{background:#ffffff14;border-color:#fff6}.ca-page-dark .ca-btn-primary{background:var(--ca-accent);color:#06231c;box-shadow:0 8px 24px #00b89447}.ca-page-dark .ca-btn-primary:hover{background:#55efc4;color:#06231c}.ca-page-dark .ca-link-btn:hover{color:var(--ca-ink)}.ca-page-dark .ca-faq summary:after{color:var(--ca-muted)}.ca-page-dark .ca-section:last-of-type{background:linear-gradient(to bottom,transparent 55%,var(--ca-paper-out, #F3E8D5))}.ca-section{padding:clamp(3rem,6vw,5rem) 0}.ca-section-alt{background:#fff}.ca-section h2{font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem);line-height:1.15;margin:0 0 .6rem;letter-spacing:-.015em}.ca-section-lead{color:var(--ca-muted);max-width:62ch;margin:0 0 2rem;line-height:1.65}.ca-cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.ca-tile{background:var(--ca-card);border:1px solid var(--ca-line);border-radius:var(--ca-radius);padding:1.3rem;display:flex;flex-direction:column;gap:.5rem}.ca-tile-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--cat, #0F766E) 12%,#fff);color:var(--cat, #0F766E)}.ca-tile-icon svg{width:22px;height:22px}.ca-tile h3{font-size:1.05rem;margin:.2rem 0 0}.ca-tile p{margin:0;font-size:.88rem;color:var(--ca-muted);line-height:1.55}.ca-tile ul{margin:.35rem 0 0;padding-left:1.05rem;font-size:.82rem;color:var(--ca-muted);line-height:1.7}.ca-steps{counter-reset:s;display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:0;padding:0;list-style:none}.ca-steps li{position:relative;padding-left:3.2rem}.ca-steps li:before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff;background:var(--ca-brand)}.ca-steps h3{margin:.35rem 0 .3rem;font-size:1rem}.ca-steps p{margin:0;font-size:.88rem;color:var(--ca-muted);line-height:1.6}.ca-faq details{background:var(--ca-card);border:1px solid var(--ca-line);border-radius:14px;padding:1rem 1.2rem;margin-bottom:.7rem}.ca-faq summary{font-weight:600;cursor:pointer;list-style:none}.ca-faq summary::-webkit-details-marker{display:none}.ca-faq summary:after{content:"+";float:right;font-weight:400;font-size:1.3rem;line-height:1;color:var(--ca-muted)}.ca-faq details[open] summary:after{content:"−"}.ca-faq p{margin:.7rem 0 0;color:var(--ca-muted);line-height:1.65;font-size:.92rem}.ca-related{display:flex;flex-wrap:wrap;gap:.6rem}.ca-related a{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1rem;border-radius:999px;background:#fff;border:1px solid var(--ca-line);color:var(--ca-ink);text-decoration:none;font-size:.88rem;font-weight:500}.ca-related a:hover{border-color:var(--ca-brand);color:var(--ca-brand)}body.ca-modal-open{overflow:hidden}.ca-modal{position:fixed;inset:0;z-index:3000;display:grid;place-items:end center;--ca-ink: #0A0A0A;--ca-muted: #5F6368;--ca-line: #E4DBCB;--ca-paper: #F3E8D5;--ca-card: #FFFFFF;color:var(--ca-ink)}.ca-modal[hidden]{display:none}.ca-modal-backdrop{position:absolute;inset:0;background:#080e169e;opacity:0;transition:opacity .2s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ca-modal.is-open .ca-modal-backdrop{opacity:1}.ca-modal-card{position:relative;width:min(760px,100%);max-height:min(88vh,780px);display:flex;flex-direction:column;background:var(--ca-paper, #F3E8D5);color:#0a0a0a;border-radius:22px 22px 0 0;padding:1.4rem clamp(1rem,3vw,1.9rem) 0;transform:translateY(14px);opacity:0;transition:transform .22s cubic-bezier(.2,.8,.25,1),opacity .22s ease;box-shadow:0 -20px 60px #00000059}.ca-modal.is-open .ca-modal-card{transform:none;opacity:1}@media(min-width:700px){.ca-modal{place-items:center}.ca-modal-card{border-radius:22px}}.ca-modal-card h2{font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);font-size:1.5rem;margin:0 0 1rem}.ca-modal-x{position:absolute;top:.8rem;right:.8rem;width:38px;height:38px;border-radius:50%;border:1.5px solid #C9BFB2;background:#fff;color:var(--ca-ink);cursor:pointer;display:grid;place-items:center;box-shadow:0 2px 8px #00000014}.ca-modal-x svg{width:18px;height:18px}.ca-modal-x:hover{background:var(--ca-ink);border-color:var(--ca-ink);color:#fff}.ca-modal-body{overflow:auto;flex:1;padding-bottom:.6rem;-webkit-overflow-scrolling:touch}.ca-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.9rem 0 1.1rem;border-top:1px solid var(--ca-line);background:var(--ca-paper, #F3E8D5)}.ca-modal-hint{margin:0;font-size:.8rem;color:var(--ca-muted)}.ca-step{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin:0 0 .7rem}.ca-step-learn{margin-top:1.3rem}.ca-step-label{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ca-muted)}.ca-chosen{display:inline-flex;align-items:center;gap:.55rem;padding:.5rem .8rem;border-radius:999px;background:#fff;border:1.5px solid var(--ca-line);cursor:pointer;font:600 .92rem/1 var(--font-primary, "Montserrat", system-ui, sans-serif)}.ca-chosen:hover{border-color:var(--ca-brand)}.ca-chosen-edit{font-weight:500;font-size:.78rem;color:var(--ca-brand);text-decoration:underline;text-underline-offset:2px}.ca-search{display:flex;align-items:center;gap:.5rem;flex:1;min-width:180px;background:#fff;border:1.5px solid var(--ca-line);border-radius:999px;padding:.4rem .9rem}.ca-search svg{width:16px;height:16px;color:var(--ca-muted);flex:none}.ca-search input{flex:1;min-width:0;border:0;background:none;font:400 .9rem/1.4 var(--font-primary, "Montserrat", system-ui, sans-serif);padding:.35rem 0}.ca-search input:focus{outline:none}.ca-search:focus-within{border-color:var(--ca-brand)}.ca-grid{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(178px,1fr))}.ca-lang{position:relative;display:flex;align-items:center;gap:.55rem;text-align:left;padding:.65rem .75rem;border-radius:12px;border:1.5px solid var(--ca-line);background:#fff;cursor:pointer;min-height:52px;transition:border-color .15s ease,transform .12s ease,box-shadow .15s ease}.ca-lang:hover{border-color:#c4b7a4;transform:translateY(-1px);box-shadow:0 4px 14px #0000000f}.ca-lang.is-on{border-color:var(--ca-brand);box-shadow:0 0 0 2px #6b1f2a29}.ca-lang-name,.ca-pair-name{text-transform:capitalize}.ca-lang-txt{display:flex;flex-direction:column;gap:.05rem;min-width:0}.ca-lang-name{font-size:.86rem;font-weight:600;line-height:1.22;overflow-wrap:anywhere}.ca-lang-native{font-size:.71rem;color:var(--ca-muted);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ca-lang-tick{position:absolute;top:.3rem;right:.45rem;color:var(--ca-brand);font-size:.8rem;opacity:0;transition:opacity .15s ease}.ca-lang.is-on .ca-lang-tick{opacity:1}.ca-empty{color:var(--ca-muted);font-size:.9rem;padding:1rem 0}.ca-train-hero{padding:clamp(4.5rem,8vw,6rem) 0 1.4rem}.ca-train-hero h1{font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);font-size:clamp(1.8rem,1.3rem + 2vw,2.6rem);line-height:1.1;margin:.5rem 0 .4rem;letter-spacing:-.015em}.ca-train-hero p{margin:0;color:var(--ca-muted);max-width:56ch;line-height:1.6}.ca-app{width:min(1180px,100% - 32px);margin:0 auto clamp(3rem,6vw,5rem)}.ca-page.ca-focus .ca-train-hero,.ca-page-train[data-ca-view=cat] .ca-train-hero{display:none}.ca-page-train[data-ca-view=cat] happychef-nav,.ca-page-train[data-ca-view=train] happychef-nav,.ca-page-train[data-ca-view=quiz] happychef-nav,.ca-page-train[data-ca-view=result] happychef-nav{display:none}.ca-page-train[data-ca-view=train] .hc-footer,.ca-page-train[data-ca-view=quiz] .hc-footer{display:none}.ca-app.is-focus{width:min(780px,100% - 32px);padding-top:clamp(4.5rem,8vw,6rem)}.ca-page-train[data-ca-view=cat] .ca-app{display:flex;flex-direction:column;padding-top:clamp(2rem,5vw,3.5rem);min-height:calc(100svh - 7rem)}.ca-state{text-align:center;padding:4rem 1rem;color:var(--ca-muted)}.ca-state-err p{color:#b3261e}.ca-spinner{display:inline-block;width:28px;height:28px;margin-bottom:.8rem;border-radius:50%;border:3px solid var(--ca-line);border-top-color:var(--ca-brand);animation:ca-spin .8s linear infinite}@keyframes ca-spin{to{transform:rotate(360deg)}}.ca-appbar{display:flex;align-items:center;justify-content:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}.ca-back{display:inline-flex;align-items:center;gap:.4rem;background:none;border:0;padding:.5rem 0;color:var(--ca-muted);font:500 .88rem/1 var(--font-primary, "Montserrat", system-ui, sans-serif);text-decoration:none;cursor:pointer}.ca-pair{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .9rem;border-radius:999px;background:#fff;border:1.5px solid var(--ca-line);cursor:pointer;font:600 .86rem/1 var(--font-primary, "Montserrat", system-ui, sans-serif)}.ca-pair:hover{border-color:var(--ca-brand)}.ca-pair-arrow{color:var(--ca-muted)}.ca-pair-edit{margin-left:.3rem;font-weight:500;font-size:.76rem;color:var(--ca-brand);text-decoration:underline;text-underline-offset:2px}@media(max-width:560px){.ca-pair-name{display:none}}.ca-overall{background:#fff;border:1px solid var(--ca-line);border-radius:var(--ca-radius);padding:1.1rem 1.3rem;margin-bottom:1.8rem}.ca-overall-top{display:flex;align-items:center;gap:1rem}.ca-overall-count{margin:0;font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);line-height:1}.ca-overall-count strong{font-size:2.4rem;color:var(--ca-brand)}.ca-overall-count span{font-size:1.1rem;color:var(--ca-muted);margin-left:.2rem}.ca-overall-txt{margin:0;font-size:.92rem;line-height:1.5}.ca-overall-txt span{color:var(--ca-muted);font-size:.82rem}.ca-bar{height:7px;border-radius:999px;background:#e9e0d1;overflow:hidden}.ca-bar i{display:block;height:100%;border-radius:999px;background:var(--cat, var(--ca-accent));transition:width .5s cubic-bezier(.2,.8,.25,1)}.ca-bar-lg{height:10px;margin-top:.9rem}.ca-overall .ca-bar i{background:linear-gradient(90deg,var(--ca-brand),#A63B4C)}.ca-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ca-ccards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.ca-ccard{position:relative;overflow:hidden;border-radius:22px;padding:1.4rem 1.4rem 1.15rem;background:color-mix(in srgb,var(--cat) 9%,#fff);border:1px solid color-mix(in srgb,var(--cat) 18%,#fff);display:flex;flex-direction:column;gap:.9rem;transition:box-shadow .2s ease,transform .2s ease}.ca-ccard:hover{box-shadow:0 14px 34px color-mix(in srgb,var(--cat) 22%,transparent);transform:translateY(-2px)}.ca-ccard-blob{position:absolute;top:-58px;right:-46px;width:176px;height:176px;border-radius:50%;background:color-mix(in srgb,var(--cat) 14%,#fff);pointer-events:none}.ca-ccard-open{position:relative;display:block;width:100%;text-align:left;border:0;background:none;padding:0;cursor:pointer;font:inherit;color:inherit}.ca-ccard-open:after{content:"";position:absolute;inset:-1.4rem -1.4rem -1.15rem}.ca-ccard-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;color:#fff;background:linear-gradient(145deg,color-mix(in srgb,var(--cat) 78%,#fff),var(--cat));box-shadow:0 6px 16px color-mix(in srgb,var(--cat) 34%,transparent)}.ca-ccard-icon svg{width:27px;height:27px}.ca-ccard-meta{display:block;margin-top:.95rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--cat) 80%,#000)}.ca-ccard-title{display:block;margin-top:.3rem;font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);font-size:1.35rem;line-height:1.2;font-weight:700}.ca-ccard-desc{display:block;margin-top:.3rem;font-size:.88rem;line-height:1.45;color:var(--ca-muted)}.ca-ctiles{position:relative;display:flex;gap:.45rem;flex-wrap:wrap}.ca-ctile{width:40px;height:40px;flex:none;border-radius:12px;cursor:pointer;font:inherit;font-weight:700;font-size:.95rem;display:grid;place-items:center;color:color-mix(in srgb,var(--cat) 85%,#000);background:#fff;border:1.5px solid color-mix(in srgb,var(--cat) 22%,#fff);transition:transform .15s ease,background-color .15s ease,border-color .15s ease}.ca-ctile:hover{transform:translateY(-2px);border-color:var(--cat)}.ca-ctile.is-part{border-color:color-mix(in srgb,var(--cat) 55%,#fff);box-shadow:inset 0 -4px color-mix(in srgb,var(--cat) 30%,#fff)}.ca-ctile.is-done{background:var(--cat);border-color:var(--cat);color:#fff}.ca-ccard-go{position:relative;align-self:flex-start;margin-top:auto;padding:0;border:0;background:none;cursor:pointer;font:inherit;font-weight:700;font-size:.92rem;color:color-mix(in srgb,var(--cat) 85%,#000)}.ca-ccard-go span{transition:transform .18s ease;display:inline-block}.ca-ccard:hover .ca-ccard-go span{transform:translate(4px)}.ca-ccard.is-complete .ca-ccard-icon:after{content:"✓"}.ca-catpage{display:grid;gap:1.3rem;align-items:start}@media(min-width:900px){.ca-catpage{grid-template-columns:minmax(280px,350px) minmax(0,1fr);flex:1}}.ca-cathead{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;overflow:hidden;border-radius:22px;padding:1.5rem;background:color-mix(in srgb,var(--cat) 9%,#fff);border:1px solid color-mix(in srgb,var(--cat) 18%,#fff)}.ca-cathead-txt{width:100%;min-width:0;order:2}.ca-cathead h2{font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);font-size:1.75rem;margin:.5rem 0 0;line-height:1.12}.ca-cathead p{margin:.35rem 0 0;font-size:.94rem;color:var(--ca-muted);line-height:1.55}.ca-cathead-prog{max-width:none;margin-top:1.1rem}.ca-cathead-prog span{display:block;font-size:.78rem;font-weight:700;color:color-mix(in srgb,var(--cat) 80%,#000);margin-bottom:.35rem}.ca-back{border:0;background:none;padding:0;cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;color:var(--ca-muted)}.ca-back:hover{color:var(--ca-ink)}.ca-catart{width:150px;height:164px;flex:none;color:var(--cat);order:1;align-self:center}.ca-catart svg{width:100%;height:100%;overflow:visible}@media(max-width:899px){.ca-cathead{flex-direction:row;align-items:center;gap:1.2rem}.ca-catart{order:2;width:104px;height:114px}.ca-cathead-txt{order:1}}@media(max-width:640px){.ca-catart{width:88px;height:96px}.ca-cathead{padding:1.1rem}}.ca-art-pan{animation:ca-toss 3.4s ease-in-out infinite;transform-origin:62px 54px}.ca-art-flame{animation:ca-flame 1.5s ease-in-out infinite alternate;transform-origin:32px 84px}.ca-art-w{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;animation:ca-rise 3s ease-out infinite;animation-delay:var(--d, 0s)}.ca-art-crate{animation:ca-settle 4s ease-in-out infinite;transform-origin:44px 84px}.ca-art-drop{animation:ca-drop 4s cubic-bezier(.35,1.5,.5,1) infinite;animation-delay:var(--d, 0s)}.ca-art-knife{animation:ca-chop 2.2s cubic-bezier(.4,0,.3,1) infinite;transform-origin:14px 55px}.ca-art-slice rect{animation:ca-slide 2.2s ease-out infinite;animation-delay:var(--d, 0s)}.ca-art-cloche{animation:ca-lift 4.4s ease-in-out infinite;transform-origin:44px 74px}.ca-art-tick{stroke-dasharray:22;stroke-dashoffset:22;animation:ca-tick 4s ease-out infinite;animation-delay:var(--d, 0s)}@keyframes ca-toss{0%,68%,to{transform:rotate(0)}78%{transform:rotate(-13deg) translateY(-4px)}88%{transform:rotate(4deg)}}@keyframes ca-flame{0%{transform:scaleY(.86) scaleX(1.04);opacity:.8}to{transform:scaleY(1.1) scaleX(.94);opacity:1}}@keyframes ca-rise{0%{opacity:0;transform:translateY(6px)}25%{opacity:.85}to{opacity:0;transform:translateY(-16px)}}@keyframes ca-settle{0%,to{transform:translateY(0)}50%{transform:translateY(2px) scaleY(.99)}}@keyframes ca-drop{0%{opacity:0;transform:translateY(-26px)}18%,82%{opacity:1;transform:translateY(0)}to{opacity:1;transform:translateY(0)}}@keyframes ca-chop{0%,to{transform:rotate(0)}40%{transform:rotate(-22deg)}62%,72%{transform:rotate(2deg)}}@keyframes ca-slide{0%,45%{opacity:0;transform:translate(0)}60%{opacity:1;transform:translate(-3px)}to{opacity:1;transform:translate(-3px)}}@keyframes ca-lift{0%,to{transform:translateY(0)}45%,62%{transform:translateY(-13px)}}@keyframes ca-tick{0%,10%{stroke-dashoffset:22}32%,92%{stroke-dashoffset:0}to{stroke-dashoffset:22}}.ca-sets{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fill,minmax(196px,1fr))}.ca-catpage .ca-sets{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(232px,1fr))}@media(min-width:900px){.ca-catpage .ca-sets{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(180px,1fr);height:100%}}.ca-catpage .ca-set{min-height:180px;padding:1.3rem;border-radius:18px;justify-content:space-between}.ca-catpage .ca-set-actions{margin-top:0}.ca-catpage .ca-set-name{font-size:1.05rem}.ca-catpage .ca-ringwrap{width:58px;height:58px}.ca-catpage .ca-ring-num{font-size:.95rem}.ca-set{position:relative;background:#fff;border:1px solid var(--ca-line);border-radius:16px;padding:.95rem .95rem .85rem;display:flex;flex-direction:column;gap:.55rem;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.ca-set:hover{border-color:color-mix(in srgb,var(--cat) 45%,var(--ca-line));box-shadow:0 8px 22px #00000012;transform:translateY(-2px)}.ca-set.is-done{border-color:color-mix(in srgb,var(--cat) 50%,#fff);background:color-mix(in srgb,var(--cat) 5%,#fff)}.ca-set-top{display:flex;align-items:baseline;gap:.5rem}.ca-set-idx{font-size:.74rem;font-weight:700;color:var(--cat);flex:none}.ca-set-name{margin:0;font-size:.95rem;line-height:1.25}.ca-set-mid{display:flex;align-items:center;gap:.7rem}.ca-ringwrap{position:relative;width:46px;height:46px;flex:none}.ca-ring{width:100%;height:100%;transform:rotate(-90deg)}.ca-ring-bg{fill:none;stroke:#ede4d6;stroke-width:3}.ca-ring-fg{fill:none;stroke:var(--cat, var(--ca-accent));stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.2,.8,.25,1)}.ca-ring-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;white-space:nowrap;font-size:.82rem;font-weight:700;color:var(--ca-ink)}.ca-ring-num small{font-size:.62rem;color:var(--ca-muted);font-weight:500}.ca-ring-num .ca-check{color:var(--cat);font-size:1.15rem}.ca-set-state{margin:0;font-size:.78rem;color:var(--ca-muted);line-height:1.35}.ca-set-best{margin:0;font-size:.76rem;font-weight:600;color:#8a6d1f}.ca-set-best span{color:#e0a62b}.ca-set-best-empty{visibility:hidden}.ca-set-actions{display:flex;gap:.4rem;margin-top:auto}.ca-set-actions .ca-btn{flex:1;min-height:40px;padding:.5rem .6rem;font-size:.82rem;border-radius:10px}.ca-set-flag{position:absolute;top:-9px;right:-9px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:.95rem;font-weight:700;color:#fff;background:var(--cat);box-shadow:0 3px 10px #0003;animation:ca-pop .45s cubic-bezier(.2,1.4,.4,1) both}@keyframes ca-pop{0%{transform:scale(0)}to{transform:scale(1)}}.ca-reset-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:2rem}.ca-reset-ask{font-size:.88rem}.ca-reset-row .ca-btn{min-height:38px;padding:.45rem 1rem;font-size:.82rem}.ca-studybar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ca-studytitle{margin:0;text-align:center;line-height:1.25}.ca-studytitle span{display:block;font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:var(--cat);font-weight:700}.ca-studytitle strong{font-size:1.05rem}.ca-swap{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .7rem;border-radius:999px;border:1.5px solid var(--ca-line);background:#fff;cursor:pointer;font-size:.8rem}.ca-swap:hover{border-color:var(--cat)}.ca-swap-icon{color:var(--ca-muted)}.ca-count{text-align:center;font-size:.82rem;color:var(--ca-muted);margin:.6rem 0 1.2rem}.ca-stage{outline:none}.ca-scene{perspective:1400px;width:min(560px,100%);margin:0 auto}.ca-card{position:relative;width:100%;aspect-ratio:3 / 2;min-height:220px;transform-style:preserve-3d;cursor:pointer;transition:transform .62s cubic-bezier(.2,.85,.25,1)}.ca-card.is-flipped{transform:rotateY(180deg)}.ca-card:focus-visible{outline:3px solid var(--ca-accent);outline-offset:6px;border-radius:22px}.ca-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:22px;padding:1.6rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.55rem;box-shadow:0 14px 40px #140f0a21;border:1px solid var(--ca-line);background:#fff;text-align:center}.ca-face-back{transform:rotateY(180deg);background:linear-gradient(160deg,#12303f,#0b1b26);border-color:#ffffff1f;color:#fff}.ca-face-lang{display:inline-flex;align-items:center;gap:.4rem;font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;font-weight:700;color:var(--ca-muted)}.ca-face-back .ca-face-lang{color:#fff9}.ca-word{font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);font-size:clamp(1.5rem,1rem + 2.8vw,2.6rem);line-height:1.15;font-weight:700;letter-spacing:-.01em;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.ca-roman{font-size:.95rem;color:var(--ca-muted);font-style:italic}.ca-face-back .ca-roman{color:#ffffff9e}.ca-tap{position:absolute;bottom:1rem;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:#b4a896}.ca-speak{position:absolute;bottom:.9rem;right:.9rem;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:#ffffff1a;color:#fff;cursor:pointer;display:grid;place-items:center}.ca-speak svg{width:20px;height:20px}.ca-speak:hover{background:#fff3}.ca-study-actions{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem}.ca-keys{text-align:center;font-size:.74rem;color:#a99b87;margin:1rem 0 0}.ca-done,.ca-result{background:#fff;border:1px solid var(--ca-line);border-radius:var(--ca-radius);box-shadow:0 10px 30px #140f0a0f;width:min(560px,100%);margin-inline:auto}.ca-done{text-align:center;padding:2.4rem 1.6rem 2rem}.ca-done-mark{display:grid;place-items:center;width:74px;height:74px;margin:0 auto 1rem;border-radius:50%;background:var(--ca-accent);color:#fff;font-size:2.2rem;animation:ca-pop .5s cubic-bezier(.2,1.4,.4,1) both}.ca-done h2{font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);font-size:1.6rem;margin:0 0 .5rem}.ca-done p{color:var(--ca-muted);margin:0 auto 1.6rem;max-width:46ch;line-height:1.6}.ca-done-actions{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}.ca-quiz-bar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;font-size:.84rem;font-weight:600}.ca-quiz-count{color:var(--ca-muted)}.ca-quiz-timer{font-variant-numeric:tabular-nums;background:#fff;border:1px solid var(--ca-line);border-radius:999px;padding:.25rem .7rem}.ca-quiz-score{color:var(--ca-accent-dark)}.ca-q{text-align:center;margin:1.6rem auto 1.3rem;max-width:620px}.ca-q-label{margin:0 0 .5rem;font-size:.85rem;color:var(--ca-muted)}.ca-q-word{margin:0;font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);font-size:clamp(1.5rem,1rem + 2.6vw,2.5rem);line-height:1.15;font-weight:700;overflow-wrap:anywhere}.ca-q .ca-roman{margin:.3rem 0 0}.ca-options{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));max-width:720px;margin:0 auto}.ca-opt{display:flex;align-items:center;gap:.7rem;text-align:left;min-height:60px;padding:.8rem 1rem;border-radius:14px;border:1.5px solid var(--ca-line);background:#fff;cursor:pointer;font:600 1rem/1.3 var(--font-primary, "Montserrat", system-ui, sans-serif);transition:border-color .15s ease,background .15s ease,transform .12s ease}.ca-opt:hover:not(:disabled){border-color:var(--ca-brand);transform:translateY(-1px)}.ca-opt:disabled{cursor:default}.ca-opt-key{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;flex:none;background:#f1e9da;color:var(--ca-muted);font-size:.75rem;font-weight:700}.ca-opt-txt{min-width:0;overflow-wrap:anywhere}.ca-opt.is-correct{border-color:#0e9c7e;background:#e7f8f2}.ca-opt.is-correct .ca-opt-key{background:#0e9c7e;color:#fff}.ca-opt.is-wrong{border-color:#b3261e;background:#fdecea}.ca-opt.is-wrong .ca-opt-key{background:#b3261e;color:#fff}.ca-opt.is-dim{opacity:.45}.ca-feedback{text-align:center;min-height:1.6rem;margin:1.1rem 0 .8rem;font-size:.95rem;font-weight:600}.ca-feedback.is-good{color:#0e9c7e}.ca-feedback.is-bad{color:#b3261e}.ca-stage>.ca-btn-wide{display:block;margin:0 auto}.ca-result{position:relative;overflow:hidden;text-align:center;padding:2rem 1.6rem 1.8rem}.ca-result-ring{position:relative;width:128px;height:128px;margin:0 auto 1rem}.ca-result-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ca-result-ring .ca-ring-fg{stroke:var(--cat, var(--ca-accent));stroke-width:3.2}.ca-result-ring span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;white-space:nowrap;font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);font-size:2.1rem;font-weight:700}.ca-result-ring small{font-size:1rem;color:var(--ca-muted)}.ca-result h2{font-family:var(--font-display, "Bricolage Grotesque", system-ui, sans-serif);font-size:1.6rem;margin:0 0 .4rem}.ca-result-line{margin:0 0 .5rem;color:var(--ca-muted);font-size:.92rem}.ca-badge-new{display:inline-block;margin:0 0 1rem;padding:.3rem .8rem;border-radius:999px;background:#fff3d0;color:#8a6d1f;font-size:.8rem;font-weight:700}.ca-review{list-style:none;margin:1.2rem auto 1.6rem;padding:0;max-width:520px;text-align:left;display:grid;gap:.3rem}.ca-review li{display:grid;grid-template-columns:22px 1fr 1fr;gap:.6rem;align-items:center;padding:.5rem .7rem;border-radius:10px;background:#fff;border:1px solid var(--ca-line);font-size:.86rem}.ca-review li.is-no{border-color:#f0c8c4;background:#fdf4f3}.ca-review-mark{font-weight:700}.ca-review li.is-ok .ca-review-mark{color:#0e9c7e}.ca-review li.is-no .ca-review-mark{color:#b3261e}.ca-review-q{color:var(--ca-muted);overflow-wrap:anywhere}.ca-review-a{font-weight:600;overflow-wrap:anywhere}.ca-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.ca-result>*:not(.ca-confetti){position:relative;z-index:1}.ca-confetti i{position:absolute;left:50%;top:22%;width:8px;height:12px;border-radius:2px;background:hsl(var(--h) 78% 58%);animation:ca-fall 1.5s cubic-bezier(.25,.6,.4,1) var(--d) both}@keyframes ca-fall{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--x),220px) rotate(var(--r));opacity:0}}@media(max-width:900px){.ca-hero-grid{grid-template-columns:1fr}.ca-globe-wrap{order:-1;max-width:320px}.ca-hero-lead{max-width:none}.ca-cathead{flex-direction:column-reverse;align-items:flex-start}.ca-cathead-prog{max-width:none;width:100%}}@media(max-width:520px){.ca-modal-foot{flex-direction:column-reverse;align-items:stretch;gap:.6rem}.ca-modal-go{width:100%}.ca-modal-hint{text-align:center}.ca-sets{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.ca-set-actions{flex-direction:column}.ca-card{aspect-ratio:auto;min-height:260px}.ca-options{grid-template-columns:1fr}.ca-review li{grid-template-columns:20px 1fr}.ca-review-a{grid-column:2}}@media(prefers-reduced-motion:reduce){.ca-card,.ca-bar i,.ca-ring-fg{transition:none!important}.ca-set-flag,.ca-done-mark,.ca-confetti i,.ca-catart *{animation:none!important}.ca-art-tick{stroke-dashoffset:0!important}.ca-spinner{animation-duration:2s}}
