@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer reset;@layer theme{:root,:host{--font-sans:var(--font-sans);--font-serif:var(--font-serif);--font-mono:var(--font-mono);--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:var(--font-display)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}[data-astryx-theme]{isolation:isolate;background:radial-gradient(ellipse 70% 60% at 90% 5%, var(--blob-1) 0%, transparent 55%), radial-gradient(ellipse 60% 70% at 5% 95%, var(--blob-2) 0%, transparent 55%), radial-gradient(ellipse 50% 50% at 50% 50%, var(--blob-3) 0%, transparent 65%), var(--canvas);min-height:100vh;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--dur-slow) var(--ease-smooth), color var(--dur-slow) var(--ease-smooth);font-size:15px;line-height:1.6;display:block;position:relative}[data-astryx-theme]:before{z-index:0;opacity:.012;mix-blend-mode:multiply;pointer-events:none;content:"";background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='.55'/%3E%3C/svg%3E");position:fixed;inset:0}[data-astryx-theme][data-theme=dark]{background:radial-gradient(ellipse 65% 55% at 88% 8%, var(--blob-1) 0%, transparent 60%), radial-gradient(ellipse 55% 65% at 8% 92%, var(--blob-2) 0%, transparent 60%), var(--canvas)}[data-astryx-theme][data-theme=dark]:before{opacity:.016;mix-blend-mode:soft-light}input,select,textarea{font-family:inherit}::placeholder{color:var(--subtle)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-xs)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}}@layer astryx-base,astryx-theme,components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-3{inset:calc(var(--spacing) * 3)}.-top-1{top:calc(var(--spacing) * -1)}.-top-16{top:calc(var(--spacing) * -16)}.top-0{top:0}.top-1\/2{top:50%}.top-5{top:calc(var(--spacing) * 5)}.top-8{top:calc(var(--spacing) * 8)}.-right-1{right:calc(var(--spacing) * -1)}.-right-3{right:calc(var(--spacing) * -3)}.-right-16{right:calc(var(--spacing) * -16)}.right-0{right:0}.right-5{right:calc(var(--spacing) * 5)}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-0{bottom:0}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.-mt-2{margin-top:calc(var(--spacing) * -2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-auto{margin-top:auto}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[4\/5\]{aspect-ratio:4/5}.aspect-square{aspect-ratio:1}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-28{height:calc(var(--spacing) * 28)}.h-36{height:calc(var(--spacing) * 36)}.h-52{height:calc(var(--spacing) * 52)}.h-64{height:calc(var(--spacing) * 64)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-80{max-height:calc(var(--spacing) * 80)}.min-h-0{min-height:0}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-36{min-height:calc(var(--spacing) * 36)}.min-h-56{min-height:calc(var(--spacing) * 56)}.min-h-60{min-height:calc(var(--spacing) * 60)}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[120px\]{max-width:120px}.max-w-\[360px\]{max-width:360px}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-11{min-width:calc(var(--spacing) * 11)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-\[16px\]{min-width:16px}.flex-1{flex:1}.flex-none{flex:none}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[10px\]{border-radius:10px}.rounded-\[25px\]{border-radius:25px}.rounded-\[32px\]{border-radius:32px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.bg-transparent{background-color:#0000}.object-cover{object-fit:cover}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[28px\]{font-size:28px}.text-\[42px\]{font-size:42px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-pre-line{white-space:pre-line}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.active\:cursor-grabbing:active{cursor:grabbing}@media (min-width:480px){.min-\[480px\]\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.min-\[480px\]\:flex-col{flex-direction:column}.min-\[480px\]\:items-start{align-items:flex-start}.min-\[480px\]\:gap-2\.5{gap:calc(var(--spacing) * 2.5)}}@media (min-width:40rem){.sm\:shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:justify-center{justify-content:center}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:text-center{text-align:center}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}@media (min-width:48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[1\.1fr_1\.9fr\]{grid-template-columns:1.1fr 1.9fr}}@media (min-width:64rem){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:max-h-\[calc\(100vh-140px\)\]{max-height:calc(100vh - 140px)}.lg\:max-h-\[calc\(100vh-180px\)\]{max-height:calc(100vh - 180px)}.lg\:max-h-\[calc\(100vh-280px\)\]{max-height:calc(100vh - 280px)}.lg\:max-h-\[calc\(100vh-320px\)\]{max-height:calc(100vh - 320px)}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1fr\)_400px\]{grid-template-columns:minmax(0,1fr) 400px}.lg\:overflow-y-auto{overflow-y:auto}.lg\:p-8{padding:calc(var(--spacing) * 8)}.lg\:pb-8{padding-bottom:calc(var(--spacing) * 8)}}}:root{--radius-xs:6px;--radius-btn:12px;--radius-card:18px;--radius-sharp:10px;--radius-pill:999px;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-snappy:cubic-bezier(.2, 0, 0, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--dur-fast:.12s;--dur-normal:.22s;--dur-slow:.38s;--dur-enter:.45s}[data-astryx-theme]{--font-sans:var(--font-family-body);--font-serif:var(--font-family-body);--font-mono:var(--font-family-code);--font-display:var(--font-family-heading);--canvas:#e8dcc7;--paper:#eedfc6;--paper-fold:#dcc9a8;--surface:#e5d3b5;--well:#dcc9a8;--ink:#2f382b;--ink-2:#4f5b48;--muted:#66715f;--subtle:#7b8474;--accent:#606c38;--accent-2:#8b9d83;--accent-ink:#e8dcc7;--on-brand:#e8dcc7;--teal:#4f7c68;--teal-2:#8b9d83;--amber:#c08e3a;--amber-2:#d4b895;--orange:#c66b3d;--success:#52734a;--success-bg:var(--success)}@supports (color:color-mix(in lab, red, red)){[data-astryx-theme]{--success-bg:color-mix(in srgb, var(--success) 16%, transparent)}}[data-astryx-theme]{--danger:#a84f36;--destructive:#a84f36;--danger-bg:var(--danger)}@supports (color:color-mix(in lab, red, red)){[data-astryx-theme]{--danger-bg:color-mix(in srgb, var(--danger) 16%, transparent)}}[data-astryx-theme]{--xp:#7b6285;--xp-2:#66516f;--xp-bg:var(--xp)}@supports (color:color-mix(in lab, red, red)){[data-astryx-theme]{--xp-bg:color-mix(in srgb, var(--xp) 16%, transparent)}}[data-astryx-theme]{--border:#b7a98d;--border-soft:#cdbb9b;--border-focus:var(--accent)}@supports (color:color-mix(in lab, red, red)){[data-astryx-theme]{--border-focus:color-mix(in srgb, var(--accent) 45%, transparent)}}[data-astryx-theme]{--shadow-xs:var(--shadow-low);--shadow-sm:var(--shadow-low);--shadow:var(--shadow-med);--shadow-lg:var(--shadow-med);--shadow-xl:var(--shadow-high);--glow-accent:0 4px 20px var(--accent)}@supports (color:color-mix(in lab, red, red)){[data-astryx-theme]{--glow-accent:0 4px 20px color-mix(in srgb, var(--accent) 32%, transparent)}}[data-astryx-theme]{--glow-teal:0 4px 20px var(--teal)}@supports (color:color-mix(in lab, red, red)){[data-astryx-theme]{--glow-teal:0 4px 20px color-mix(in srgb, var(--teal) 30%, transparent)}}[data-astryx-theme]{--glow-xp:0 4px 20px var(--xp)}@supports (color:color-mix(in lab, red, red)){[data-astryx-theme]{--glow-xp:0 4px 20px color-mix(in srgb, var(--xp) 32%, transparent)}}[data-astryx-theme][data-theme=dark]{--canvas:#151a16;--paper:#232b24;--paper-fold:#2b342c;--surface:#1c231d;--well:#2b342c;--ink:#e4e8dc;--ink-2:#b7c0af;--muted:#a3ad9c;--subtle:#7e8979;--accent:#9ead72;--accent-2:#b6c58a;--accent-ink:#1d241a;--on-brand:#1d241a;--teal:#79a995;--teal-2:#5f8977;--amber:#d2a65a;--amber-2:#e1be7d;--orange:#d58a66;--success:#88b875;--success-bg:var(--success)}@supports (color:color-mix(in lab, red, red)){[data-astryx-theme][data-theme=dark]{--success-bg:color-mix(in srgb, var(--success) 16%, transparent)}}[data-astryx-theme][data-theme=dark]{--danger:#d58a66;--destructive:#d58a66;--danger-bg:var(--danger)}@supports (color:color-mix(in lab, red, red)){[data-astryx-theme][data-theme=dark]{--danger-bg:color-mix(in srgb, var(--danger) 16%, transparent)}}[data-astryx-theme][data-theme=dark]{--xp:#be9ac7;--xp-2:#d0b3d7;--xp-bg:var(--xp)}@supports (color:color-mix(in lab, red, red)){[data-astryx-theme][data-theme=dark]{--xp-bg:color-mix(in srgb, var(--xp) 16%, transparent)}}[data-astryx-theme][data-theme=dark]{--border:#3c493d;--border-soft:#313d33;--border-focus:var(--accent)}@supports (color:color-mix(in lab, red, red)){[data-astryx-theme][data-theme=dark]{--border-focus:color-mix(in srgb, var(--accent) 52%, transparent)}}.form-control-scope,:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=hidden]):not([type=button]):not([type=submit]),textarea,select){border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--well);color:var(--ink);caret-color:var(--accent);transition:background-color var(--dur-fast) var(--ease-smooth), border-color var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth)}.form-control-scope:hover,:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=hidden]):not([type=button]):not([type=submit]),textarea,select):hover{box-shadow:inset 0 0 0 1px var(--accent)}@supports (color:color-mix(in lab, red, red)){.form-control-scope:hover,:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=hidden]):not([type=button]):not([type=submit]),textarea,select):hover{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent)}}.form-control-scope:focus,:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=hidden]):not([type=button]):not([type=submit]),textarea,select):focus{box-shadow:inset 0 1px 0 var(--glass-rim-highlight), 0 0 0 3px var(--border-focus);outline:none;border-color:var(--border-focus)!important}@supports (color:color-mix(in lab, red, red)){.form-control-scope:focus,:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=hidden]):not([type=button]):not([type=submit]),textarea,select):focus{box-shadow:inset 0 1px 0 var(--glass-rim-highlight), 0 0 0 3px color-mix(in srgb, var(--border-focus) 26%, transparent)}}.form-control-scope:where(:user-invalid,[aria-invalid=true]),:where(input,textarea,select):where(:user-invalid,[aria-invalid=true]){box-shadow:0 0 0 3px var(--danger);border-color:var(--danger)!important}@supports (color:color-mix(in lab, red, red)){.form-control-scope:where(:user-invalid,[aria-invalid=true]),:where(input,textarea,select):where(:user-invalid,[aria-invalid=true]){box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 18%, transparent)}}.form-control-scope:disabled,:where(input,textarea,select):disabled{cursor:not-allowed;opacity:.56;box-shadow:none}.form-control-scope:-webkit-autofill{-webkit-text-fill-color:var(--ink);caret-color:var(--accent);box-shadow:inset 0 0 0 1000px var(--well)}:where(input,textarea,select):-webkit-autofill{-webkit-text-fill-color:var(--ink);caret-color:var(--accent);box-shadow:inset 0 0 0 1000px var(--well)}.filter-chip{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--well);min-height:36px;color:var(--muted);white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-smooth), border-color var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth), color var(--dur-fast) var(--ease-smooth);font-size:.8125rem;font-weight:700}.filter-chip:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.filter-chip:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}}.filter-chip:hover{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.filter-chip:hover{background:color-mix(in srgb, var(--accent) 9%, var(--well))}}.filter-chip[data-active=true]{background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:var(--glow-accent);color:var(--accent-ink);border-color:#0000}.segmented-control-option{white-space:nowrap;min-height:44px}.segmented-control-option:focus-visible{box-shadow:0 0 0 3px var(--border-focus);outline:none}.progress-journey{isolation:isolate}.progress-journey-marker{z-index:2;border:2px solid var(--paper);background:var(--accent);width:11px;height:11px;box-shadow:0 0 0 3px var(--border-focus), var(--shadow-xs);transition:left var(--dur-slow) var(--ease-smooth);border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.progress-journey-checkpoint{background:var(--border);border-radius:50%;width:5px;height:5px;position:absolute;top:50%;transform:translate(-50%,-50%)}.progress-journey-checkpoint-mid{left:50%}.progress-journey-checkpoint-end{left:calc(100% - 2px)}.answer-option[data-selected=true]{box-shadow:0 0 0 3px var(--border-focus), inset 0 1px 0 var(--glass-rim-highlight);transform:translate(3px)}.answer-feedback-panel{border-left:3px solid var(--danger);border-radius:var(--radius-card);background:var(--danger-bg);animation:answer-feedback-enter var(--dur-slow) var(--ease-spring) both;padding:16px}.answer-feedback-panel[data-correct=true]{border-color:var(--success);background:var(--success-bg)}.lesson-completion-summary{gap:16px;display:grid;position:relative}.lesson-completion-heading{align-items:center;gap:14px;display:flex}.lesson-completion-heading h2{color:var(--ink);font-family:var(--font-display);font-size:1.25rem;line-height:1.2}.lesson-completion-heading p{color:var(--muted);margin-top:3px;font-size:.78rem}.lesson-completion-score-wrap{flex:none;place-items:center;display:grid;position:relative}.lesson-completion-score{--lesson-score:0%;border:1px solid var(--border);background:radial-gradient(circle, var(--paper) 58%, transparent 60%), conic-gradient(var(--accent) var(--lesson-score), var(--well) 0);width:82px;height:68px;color:var(--danger);animation:lesson-score-pop .52s var(--ease-spring) both;border-radius:22px;flex:none;justify-content:center;align-items:baseline;padding-top:13px;display:flex}.lesson-completion-score[data-strong=true]{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.lesson-completion-score[data-strong=true]{border-color:color-mix(in srgb, var(--success) 32%, var(--border))}}.lesson-completion-score[data-strong=true]{color:var(--success)}.lesson-completion-score strong{font-family:var(--font-mono);font-size:1.9rem;line-height:1}.lesson-completion-score span{opacity:.68;font-size:.7rem;font-weight:700}.lesson-completion-passport{border:1px dashed var(--accent);align-items:center;gap:12px;min-height:72px;padding:12px;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.lesson-completion-passport{border:1px dashed color-mix(in srgb, var(--accent) 38%, var(--border))}}.lesson-completion-passport{background:linear-gradient(135deg, var(--paper), var(--paper)), var(--paper);border-radius:18px}@supports (color:color-mix(in lab, red, red)){.lesson-completion-passport{background:linear-gradient(135deg, color-mix(in srgb, var(--paper) 90%, var(--accent)), var(--paper)), var(--paper)}}.lesson-completion-passport{overflow:hidden}.lesson-completion-passport[data-strong=true]{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.lesson-completion-passport[data-strong=true]{border-color:color-mix(in srgb, var(--success) 42%, var(--border))}}.lesson-completion-stamp{width:76px;height:52px;color:var(--accent);text-align:center;animation:passport-stamp-land .64s var(--ease-spring) .12s both;border:2px solid;border-radius:12px;flex:none;align-content:center;place-items:center;display:grid;transform:rotate(-3deg)}.lesson-completion-passport[data-strong=true] .lesson-completion-stamp{color:var(--success)}.lesson-completion-stamp span{text-transform:uppercase;margin-top:2px;font-size:9px;font-weight:900}.lesson-completion-passport-copy{gap:2px;min-width:0;display:grid}.lesson-completion-passport-copy strong{color:var(--ink);font-size:13px}.lesson-completion-passport-copy span{color:var(--muted);font-size:11px;line-height:1.35}.lesson-completion-spark{color:var(--amber);margin-left:auto;animation:1.6s ease-in-out infinite stamp-spark}.lesson-completion-growth{border:1px solid var(--border-soft);background:var(--well);border-radius:16px;gap:7px;padding:11px 12px;display:grid}@supports (color:color-mix(in lab, red, red)){.lesson-completion-growth{background:color-mix(in srgb, var(--well) 86%, transparent)}}.lesson-completion-growth-copy{justify-content:space-between;align-items:center;gap:12px;display:flex}.lesson-completion-growth-copy span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.lesson-completion-growth-copy strong{color:var(--ink);font-family:var(--font-mono);font-size:13px}.lesson-completion-growth-track{background:var(--paper);height:8px;box-shadow:inset 0 0 0 1px var(--border-soft);border-radius:999px;overflow:hidden}.lesson-completion-growth-track span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--amber), var(--success));height:100%;animation:lesson-growth-fill .76s var(--ease-spring) both;display:block}.lesson-completion-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.lesson-completion-metrics>div{background:var(--well);min-height:72px;color:var(--muted);border-radius:14px;align-content:center;place-items:center;gap:2px;display:grid}.lesson-completion-metrics svg{color:var(--accent)}.lesson-completion-metrics strong{color:var(--ink);font-family:var(--font-mono);font-size:.95rem}.lesson-completion-metrics span{font-size:.65rem;font-weight:700}.lesson-completion-actions{flex-wrap:wrap;gap:8px;display:flex}.lesson-completion-link{flex:1;min-width:190px;text-decoration:none}.lesson-next-action{border:1px solid var(--accent);align-items:center;gap:12px;padding:12px;display:flex}@supports (color:color-mix(in lab, red, red)){.lesson-next-action{border:1px solid color-mix(in srgb, var(--accent) 34%, var(--border))}}.lesson-next-action{background:var(--paper);border-radius:18px}@supports (color:color-mix(in lab, red, red)){.lesson-next-action{background:color-mix(in srgb, var(--paper) 86%, var(--accent))}}.lesson-next-action[data-kind=retry]{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.lesson-next-action[data-kind=retry]{border-color:color-mix(in srgb, var(--danger) 28%, var(--border))}}.lesson-next-action[data-kind=retry]{background:var(--paper)}@supports (color:color-mix(in lab, red, red)){.lesson-next-action[data-kind=retry]{background:color-mix(in srgb, var(--paper) 88%, var(--danger))}}.lesson-next-action-icon{background:var(--well);width:38px;height:38px;color:var(--accent);border-radius:14px;flex:none;place-items:center;display:grid}.lesson-next-action[data-kind=retry] .lesson-next-action-icon{color:var(--danger)}.lesson-next-action-copy{flex:1;gap:1px;min-width:0;display:grid}.lesson-next-action-copy span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.lesson-next-action-copy strong{color:var(--ink);font-size:13px}.lesson-next-action-copy p{color:var(--muted);margin:0;font-size:11px;line-height:1.35}.lesson-next-action-link{flex:none;text-decoration:none}.speaking-feedback-passport,.writing-feedback-passport,.dictation-completion-passport{border:1px dashed var(--accent);align-items:center;gap:12px;width:100%;padding:12px;display:flex}@supports (color:color-mix(in lab, red, red)){.speaking-feedback-passport,.writing-feedback-passport,.dictation-completion-passport{border:1px dashed color-mix(in srgb, var(--accent) 38%, var(--border))}}.speaking-feedback-passport,.writing-feedback-passport,.dictation-completion-passport{background:linear-gradient(135deg, var(--paper), var(--paper)), var(--paper);border-radius:18px}@supports (color:color-mix(in lab, red, red)){.speaking-feedback-passport,.writing-feedback-passport,.dictation-completion-passport{background:linear-gradient(135deg, color-mix(in srgb, var(--paper) 90%, var(--accent)), var(--paper)), var(--paper)}}.speaking-feedback-passport,.writing-feedback-passport,.dictation-completion-passport{text-align:left}.speaking-feedback-passport[data-strong=true],.writing-feedback-passport[data-strong=true],.dictation-completion-card[data-strong=true] .dictation-completion-passport{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.speaking-feedback-passport[data-strong=true],.writing-feedback-passport[data-strong=true],.dictation-completion-card[data-strong=true] .dictation-completion-passport{border-color:color-mix(in srgb, var(--success) 42%, var(--border))}}.speaking-feedback-stamp,.writing-feedback-stamp,.dictation-completion-stamp{width:74px;height:50px;color:var(--accent);text-align:center;animation:passport-stamp-land .64s var(--ease-spring) both;border:2px solid;border-radius:13px;flex:none;align-content:center;place-items:center;display:grid;transform:rotate(-3deg)}.speaking-feedback-passport[data-strong=true] .speaking-feedback-stamp,.writing-feedback-passport[data-strong=true] .writing-feedback-stamp,.dictation-completion-card[data-strong=true] .dictation-completion-stamp{color:var(--success)}.speaking-feedback-stamp span,.writing-feedback-stamp span,.dictation-completion-stamp span{text-transform:uppercase;margin-top:2px;font-size:8px;font-weight:900;line-height:1.1}.speaking-feedback-passport svg:last-child,.writing-feedback-passport svg:last-child{color:var(--amber);animation:1.6s ease-in-out infinite stamp-spark}.dictation-completion-card{position:relative;overflow:hidden}.dictation-completion-passport>div:last-child{gap:2px;min-width:0;display:grid}.dictation-completion-passport strong{color:var(--ink);font-size:13px}.dictation-completion-passport small{color:var(--muted);font-size:11px}.page-transition-shell{isolation:isolate;position:relative}.page-transition-ribbon{z-index:70;background:var(--route-ribbon,linear-gradient(90deg, var(--accent), var(--amber), var(--teal)));width:100%;height:3px;box-shadow:0 0 18px var(--accent);position:fixed;top:0;left:0}@supports (color:color-mix(in lab, red, red)){.page-transition-ribbon{box-shadow:0 0 18px color-mix(in srgb, var(--accent) 30%, transparent)}}.page-transition-ribbon{opacity:0;pointer-events:none;transform:scaleX(0)}.page-transition-shell[data-route-group=learn]{--route-ribbon:linear-gradient(90deg, var(--accent), var(--amber))}.page-transition-shell[data-route-group=social]{--route-ribbon:linear-gradient(90deg, var(--teal), var(--success))}.page-transition-shell[data-route-group=progress]{--route-ribbon:linear-gradient(90deg, var(--amber), var(--accent))}.page-transition-shell[data-route-group=settings]{--route-ribbon:linear-gradient(90deg, var(--muted), var(--accent))}.review-loading-card{background:linear-gradient(135deg, var(--paper), var(--paper)), var(--paper);overflow:hidden}@supports (color:color-mix(in lab, red, red)){.review-loading-card{background:linear-gradient(135deg, color-mix(in srgb, var(--paper) 92%, var(--accent)), var(--paper)), var(--paper)}}.review-loading-stack{text-align:center;justify-items:center;gap:8px;display:grid}.review-loading-card-face{border:1px solid var(--accent);align-content:center;place-items:center;gap:8px;width:92px;height:124px;display:grid}@supports (color:color-mix(in lab, red, red)){.review-loading-card-face{border:1px solid color-mix(in srgb, var(--accent) 32%, var(--border))}}.review-loading-card-face{background:var(--paper);box-shadow:var(--shadow-sm);color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;transform-origin:bottom;animation:review-card-sort 1.45s var(--ease-smooth) infinite;border-radius:16px;font-size:10px;font-weight:900}.review-session-passport{border:1px dashed var(--success);align-items:center;gap:12px;width:100%;padding:12px;display:flex}@supports (color:color-mix(in lab, red, red)){.review-session-passport{border:1px dashed color-mix(in srgb, var(--success) 42%, var(--border))}}.review-session-passport{background:linear-gradient(135deg, var(--paper), var(--paper)), var(--paper);border-radius:18px}@supports (color:color-mix(in lab, red, red)){.review-session-passport{background:linear-gradient(135deg, color-mix(in srgb, var(--paper) 90%, var(--success)), var(--paper)), var(--paper)}}.review-session-stamp{border:2px solid var(--success);width:78px;height:52px;color:var(--success);text-align:center;animation:passport-stamp-land .64s var(--ease-spring) both;border-radius:13px;flex:none;align-content:center;place-items:center;display:grid;transform:rotate(-4deg)}.review-session-stamp span{text-transform:uppercase;margin-top:2px;font-size:8px;font-weight:900;line-height:1.1}.review-card-rating{pointer-events:none}.review-card-rating[data-review-rating=again]{animation:review-card-again .28s var(--ease-smooth) both}.review-card-rating[data-review-rating=hard]{animation:review-card-hard .28s var(--ease-smooth) both}.review-card-rating[data-review-rating=good],.review-card-rating[data-review-rating=easy]{animation:review-card-clear .3s var(--ease-spring) both}.review-rating-button{isolation:isolate}.review-rating-button:after{z-index:-1;border-radius:inherit;opacity:0;transition:opacity var(--dur-fast) var(--ease-smooth), transform var(--dur-fast) var(--ease-smooth);content:"";background:currentColor;position:absolute;inset:9px}.review-rating-button:hover:after{opacity:.08;transform:scale(1.08)}.review-rating-receipt{border:1px dashed var(--accent);justify-content:center;align-items:center;gap:9px;min-height:40px;padding:8px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.review-rating-receipt{border:1px dashed color-mix(in srgb, var(--accent) 32%, var(--border))}}.review-rating-receipt{background:var(--paper);border-radius:14px}@supports (color:color-mix(in lab, red, red)){.review-rating-receipt{background:color-mix(in srgb, var(--paper) 86%, transparent)}}.review-rating-receipt{color:var(--muted);text-align:center;animation:review-receipt-rise .26s var(--ease-spring) both}.review-rating-receipt span{color:var(--ink);font-size:12px;font-weight:900}.review-rating-receipt small{color:var(--muted);font-size:11px;line-height:1.2}.review-rating-receipt[data-rating=good],.review-rating-receipt[data-rating=easy]{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.review-rating-receipt[data-rating=good],.review-rating-receipt[data-rating=easy]{border-color:color-mix(in srgb, var(--success) 42%, var(--border))}}.speaking-recorder-card{transition:border-color var(--dur-normal) var(--ease-smooth), box-shadow var(--dur-normal) var(--ease-smooth)}.speaking-recorder-card[data-status=recording]{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.speaking-recorder-card[data-status=recording]{border-color:color-mix(in srgb, var(--danger) 36%, var(--glass-border))}}.speaking-recorder-card[data-status=recording]{box-shadow:var(--glass-shadow), 0 0 28px var(--danger)}@supports (color:color-mix(in lab, red, red)){.speaking-recorder-card[data-status=recording]{box-shadow:var(--glass-shadow), 0 0 28px color-mix(in srgb, var(--danger) 10%, transparent)}}.speaking-recorder-card[data-status=sending]{border-color:var(--teal)}@supports (color:color-mix(in lab, red, red)){.speaking-recorder-card[data-status=sending]{border-color:color-mix(in srgb, var(--teal) 36%, var(--glass-border))}}.speaking-capture-status{border:1px solid var(--border-soft);background:var(--well);border-radius:999px;grid-template-columns:auto auto;align-items:center;gap:2px 8px;max-width:min(100%,360px);margin-top:16px;padding:9px 12px;display:inline-grid}@supports (color:color-mix(in lab, red, red)){.speaking-capture-status{background:color-mix(in srgb, var(--well) 82%, transparent)}}.speaking-capture-status{text-align:left}.speaking-capture-dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 4px var(--accent);border-radius:50%;grid-row:span 2}@supports (color:color-mix(in lab, red, red)){.speaking-capture-dot{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 12%, transparent)}}.speaking-recorder-card[data-status=recording] .speaking-capture-dot{background:var(--danger);box-shadow:0 0 0 4px var(--danger)}@supports (color:color-mix(in lab, red, red)){.speaking-recorder-card[data-status=recording] .speaking-capture-dot{box-shadow:0 0 0 4px color-mix(in srgb, var(--danger) 14%, transparent)}}.speaking-recorder-card[data-status=recording] .speaking-capture-dot{animation:.95s ease-in-out infinite capture-dot-pulse}.speaking-recorder-card[data-status=sending] .speaking-capture-dot{background:var(--teal);box-shadow:0 0 0 4px var(--teal)}@supports (color:color-mix(in lab, red, red)){.speaking-recorder-card[data-status=sending] .speaking-capture-dot{box-shadow:0 0 0 4px color-mix(in srgb, var(--teal) 14%, transparent)}}.speaking-recorder-card[data-status=sending] .speaking-capture-dot{animation:1.1s ease-in-out infinite capture-dot-pulse}.speaking-capture-status strong{color:var(--ink);font-size:12px;line-height:1.1}.speaking-capture-status small{color:var(--muted);font-size:11px;line-height:1.25}.speaking-waveform[data-status=sending] i{background:var(--teal);animation:.52s ease-in-out infinite alternate waveform-breathe}.speaking-waveform[data-status=error] i{background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.speaking-waveform[data-status=error] i{background:color-mix(in srgb, var(--danger) 46%, var(--well))}}.speaking-record-button[data-status=recording]{animation:1.25s ease-in-out infinite record-button-pulse}.achievements-page{width:min(100%,1120px);margin-inline:auto;padding-inline:clamp(0px,2vw,10px)}.achievements-page-header{max-width:720px;margin-bottom:24px}.achievements-page-grid{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);align-items:start;gap:18px;display:grid}.achievements-page-panel,.achievements-page-panel>*{min-width:0}.achievements-page-panel-wide{grid-column:1/-1}.badge-grid-card{overflow:hidden}.badge-grid{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:12px;display:grid}.badge-grid-item{min-width:0;height:100%}.badge-loading{min-height:112px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:8px;font-size:12px;font-weight:700;display:grid}.badge-loading span{border:2px solid var(--amber);width:48px;height:34px;color:var(--amber);animation:badge-loading-stamp 1.1s var(--ease-smooth) infinite;border-radius:12px;place-items:center;display:grid;transform:rotate(-4deg)}.badge-loading span:before{content:"";border:2px solid;border-radius:999px;width:18px;height:12px}.badge-tile{cursor:pointer;width:100%;height:100%;min-height:158px;transition:border-color var(--dur-normal) var(--ease-smooth), box-shadow var(--dur-normal) var(--ease-smooth), transform var(--dur-normal) var(--ease-spring);overflow:hidden}.badge-tile[data-complete=false]{opacity:.86;border-style:dashed!important}.badge-tile[data-complete=false]>div:first-child{filter:saturate(.72)}.badge-tile:hover{border-color:var(--amber)!important}@supports (color:color-mix(in lab, red, red)){.badge-tile:hover{border-color:color-mix(in srgb, var(--amber) 42%, var(--border))!important}}.badge-tile:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.badge-tile:focus-visible{outline:3px solid var(--border-focus);outline-offset:3px}.badge-tile-name,.badge-tile-description{overflow-wrap:anywhere;-webkit-box-orient:vertical;width:100%;min-width:0;display:-webkit-box;overflow:hidden}.badge-tile-name{-webkit-line-clamp:2;min-height:30px;color:var(--ink);font-size:12px;font-weight:800;line-height:1.22}.badge-tile-description{-webkit-line-clamp:2;min-height:28px;color:var(--muted);margin-top:3px;font-size:10px;line-height:1.35}.badge-progress-count{color:var(--subtle);font-family:var(--font-mono);margin-top:6px;font-size:9px;font-weight:800}.badge-progress-track{background:var(--paper);width:100%;height:5px;box-shadow:inset 0 0 0 1px var(--border-soft);border-radius:999px;margin-top:6px;display:block;overflow:hidden}.badge-progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--amber), var(--accent));height:100%;transition:width var(--dur-slow) var(--ease-smooth);display:block}.checkin-control{border:1px solid var(--border-soft);background:var(--well);min-height:64px;box-shadow:var(--shadow-sm);border-radius:18px;align-items:center;gap:12px;padding:12px 14px;display:flex}.checkin-control[data-error=true]{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.checkin-control[data-error=true]{border-color:color-mix(in srgb, var(--danger) 34%, var(--border))}}.checkin-control[data-error=true]{background:var(--paper)}@supports (color:color-mix(in lab, red, red)){.checkin-control[data-error=true]{background:color-mix(in srgb, var(--paper) 88%, var(--danger))}}.checkin-control-icon{background:var(--accent);width:38px;height:38px;color:var(--accent-ink);border-radius:14px;flex:none;place-items:center;display:grid}.checkin-control[data-error=true] .checkin-control-icon{background:var(--danger)}@supports (color:color-mix(in lab, red, red)){.checkin-control[data-error=true] .checkin-control-icon{background:color-mix(in srgb, var(--danger) 14%, var(--paper))}}.checkin-control[data-error=true] .checkin-control-icon{color:var(--danger)}.checkin-retry{border:1px solid var(--border-soft);background:var(--paper);width:34px;height:34px;color:var(--muted);cursor:pointer;border-radius:12px;flex:none;place-items:center;display:grid}.dashboard-checkin-week-card{overflow:hidden}.dashboard-week-cell-button{border:1px solid var(--border-soft);color:var(--accent);cursor:pointer}.dashboard-week-cell-button:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dashboard-week-cell-button:hover{border-color:color-mix(in srgb, var(--accent) 42%, var(--border))}}.dashboard-week-cell-button:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm), inset 0 0 0 2px var(--border-focus)!important}.dashboard-week-cell-button:disabled{cursor:wait;opacity:.72}.dashboard-checkin-error{border:1px solid var(--danger);justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:8px 10px;display:flex}@supports (color:color-mix(in lab, red, red)){.dashboard-checkin-error{border:1px solid color-mix(in srgb, var(--danger) 28%, var(--border))}}.dashboard-checkin-error{background:var(--paper);border-radius:12px}@supports (color:color-mix(in lab, red, red)){.dashboard-checkin-error{background:color-mix(in srgb, var(--paper) 88%, var(--danger))}}.dashboard-checkin-error{color:var(--muted);font-size:11px}.dashboard-checkin-error button{background:var(--well);color:var(--ink);cursor:pointer;border:0;border-radius:999px;flex:none;padding:5px 9px;font-size:11px;font-weight:800}.badge-detail-backdrop{z-index:90;background:var(--ink);place-items:center;padding:18px;display:grid;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.badge-detail-backdrop{background:color-mix(in srgb, var(--ink) 34%, transparent)}}.badge-detail-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.badge-detail-modal{width:min(100%,460px);animation:badge-reveal-enter .52s var(--ease-spring) both;border-radius:24px;gap:14px;padding:22px;display:grid;position:relative}.badge-detail-close{border:1px solid var(--border-soft);background:var(--well);width:30px;height:30px;color:var(--muted);cursor:pointer;border-radius:11px;place-items:center;display:grid;position:absolute;top:12px;right:12px}.badge-detail-stamp{border:2px solid var(--amber);width:96px;height:66px;color:var(--amber);text-align:center;animation:passport-stamp-land .64s var(--ease-spring) both;border-radius:16px;align-content:center;place-items:center;display:grid;transform:rotate(-5deg)}.badge-detail-stamp span{text-transform:uppercase;margin-top:2px;font-size:8px;font-weight:900}.badge-detail-copy small{color:var(--amber);font-family:var(--font-mono);font-size:10px;font-weight:900}.badge-detail-copy h3{color:var(--ink);font-family:var(--font-display);margin-top:3px;font-size:24px;line-height:1.08}.badge-detail-copy p{color:var(--muted);margin-top:6px;font-size:12px}.badge-detail-facts{gap:8px;display:grid}.badge-detail-facts div{border:1px solid var(--border-soft);background:var(--well);border-radius:14px;grid-template-columns:18px minmax(84px,auto) minmax(0,1fr);align-items:center;gap:8px;padding:10px;display:grid}@supports (color:color-mix(in lab, red, red)){.badge-detail-facts div{background:color-mix(in srgb, var(--well) 84%, transparent)}}.badge-detail-facts svg{color:var(--accent)}.badge-detail-facts span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.badge-detail-facts strong{color:var(--ink);font-size:12px;line-height:1.25}.achievement-milestone-card{background:radial-gradient(circle at 92% 8%, var(--amber), transparent 28%), linear-gradient(135deg, var(--paper), var(--paper));position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.achievement-milestone-card{background:radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--amber) 13%, transparent), transparent 28%), linear-gradient(135deg, color-mix(in srgb, var(--paper) 92%, var(--accent)), var(--paper))}}.achievement-milestone-hero{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;align-items:center;gap:13px;padding-bottom:14px;display:flex}.achievement-milestone-hero-icon{border:2px solid var(--amber);width:54px;height:54px;color:var(--amber);animation:passport-stamp-land .64s var(--ease-spring) both;border-radius:16px;flex:none;place-items:center;display:grid;transform:rotate(-4deg)}.achievement-milestone-cta{border:1px solid var(--accent);flex:none;align-items:center;gap:6px;max-width:100%;min-height:38px;margin-left:auto;padding:8px 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.achievement-milestone-cta{border:1px solid color-mix(in srgb, var(--accent) 32%, var(--border))}}.achievement-milestone-cta{background:var(--well);color:var(--accent);white-space:nowrap;border-radius:13px;font-size:12px;font-weight:900;text-decoration:none}.achievement-milestone-cta svg{transition:transform var(--dur-fast) var(--ease-smooth)}.achievement-milestone-cta:hover svg{transform:translate(3px)}.achievement-milestone-note{color:var(--muted);margin-top:10px;font-size:11px;font-weight:700}.achievement-milestone-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.achievement-milestone-tile{border:1px solid var(--border-soft);background:var(--paper);border-radius:18px;align-content:start;gap:8px;min-width:0;min-height:164px;padding:12px;display:grid}@supports (color:color-mix(in lab, red, red)){.achievement-milestone-tile{background:color-mix(in srgb, var(--paper) 84%, transparent)}}.achievement-milestone-tile{transition:border-color var(--dur-normal) var(--ease-smooth), box-shadow var(--dur-normal) var(--ease-smooth), transform var(--dur-normal) var(--ease-spring)}.achievement-milestone-tile[data-complete=true]{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.achievement-milestone-tile[data-complete=true]{border-color:color-mix(in srgb, var(--success) 34%, var(--border))}}.achievement-milestone-tile[data-complete=true]{background:linear-gradient(135deg, var(--paper), var(--paper)), var(--paper)}@supports (color:color-mix(in lab, red, red)){.achievement-milestone-tile[data-complete=true]{background:linear-gradient(135deg, color-mix(in srgb, var(--paper) 92%, var(--success)), var(--paper)), var(--paper)}}.achievement-milestone-tile-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.achievement-milestone-tile-icon{background:currentColor;border-radius:12px;flex:none;place-items:center;width:34px;height:34px;display:grid}@supports (color:color-mix(in lab, red, red)){.achievement-milestone-tile-icon{background:color-mix(in srgb, currentColor 12%, var(--well))}}.achievement-milestone-state{color:var(--muted);text-transform:uppercase;white-space:nowrap;flex:none;align-items:center;gap:4px;font-size:10px;font-weight:900;display:inline-flex}.achievement-milestone-tile[data-complete=true] .achievement-milestone-state{color:var(--success)}.achievement-milestone-tile h3{min-width:0;color:var(--ink);overflow-wrap:anywhere;font-size:13px;font-weight:900;line-height:1.2}.achievement-milestone-tile p{min-width:0;color:var(--muted);overflow-wrap:anywhere;font-size:11px;line-height:1.35}.achievement-milestone-count{color:var(--muted);font-family:var(--font-mono);justify-content:flex-end;align-items:baseline;gap:3px;font-size:10px;font-weight:800;display:flex}.achievement-milestone-count strong{color:var(--ink);font-size:15px}.achievement-timeline-card{background:radial-gradient(circle at 90% 12%, var(--amber), transparent 28%), linear-gradient(135deg, var(--paper), var(--paper));position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.achievement-timeline-card{background:radial-gradient(circle at 90% 12%, color-mix(in srgb, var(--amber) 13%, transparent), transparent 28%), linear-gradient(135deg, color-mix(in srgb, var(--paper) 92%, var(--accent)), var(--paper))}}.achievement-timeline-hero{flex-wrap:wrap;align-items:center;gap:13px;margin-bottom:14px;display:flex}.achievement-timeline-hero>.min-w-0{flex:220px}.achievement-timeline-map{border:1px dashed var(--amber);flex:none;place-items:center;width:48px;height:48px;display:grid}@supports (color:color-mix(in lab, red, red)){.achievement-timeline-map{border:1px dashed color-mix(in srgb, var(--amber) 52%, var(--border))}}.achievement-timeline-map{color:var(--amber);animation:passport-stamp-land .64s var(--ease-spring) both;border-radius:18px;transform:rotate(-3deg)}.achievement-timeline-cta{border:1px solid var(--border-soft);background:var(--well);max-width:100%;min-height:34px;color:var(--ink);white-space:nowrap;border-radius:999px;flex:none;justify-content:center;align-items:center;margin-left:auto;padding:0 12px;font-size:11px;font-weight:800;text-decoration:none;display:inline-flex}.achievement-timeline-list{gap:10px;display:grid}.achievement-timeline-step{border:1px solid var(--border-soft);background:var(--well);border-radius:18px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;min-width:0;min-height:70px;padding:10px;display:grid}@supports (color:color-mix(in lab, red, red)){.achievement-timeline-step{background:color-mix(in srgb, var(--well) 88%, transparent)}}.achievement-timeline-step[data-complete=true]{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.achievement-timeline-step[data-complete=true]{border-color:color-mix(in srgb, var(--success) 34%, var(--border))}}.achievement-timeline-node{background:var(--paper);width:34px;height:34px;color:var(--amber);border-radius:13px;place-items:center;display:grid}.achievement-timeline-step[data-complete=true] .achievement-timeline-node{color:var(--success)}.achievement-timeline-copy{gap:7px;min-width:0;display:grid}.achievement-timeline-copy>div{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;display:flex}.achievement-timeline-copy strong{min-width:0;color:var(--ink);overflow-wrap:anywhere;font-size:13px}.achievement-timeline-copy span{color:var(--muted);white-space:nowrap;flex:none;font-size:11px;font-weight:700}.achievement-timeline-count{color:var(--muted);font-family:var(--font-mono);white-space:nowrap;flex:none;align-items:center;gap:5px;font-size:10px;font-weight:900;display:inline-flex}@media (hover:hover) and (pointer:fine){.achievement-milestone-tile:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.achievement-milestone-tile:hover{border-color:color-mix(in srgb, var(--accent) 34%, var(--border))}}.achievement-milestone-tile:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}}.daily-recap-card{position:relative;overflow:hidden}.daily-recap-heading{align-items:flex-start;gap:12px;display:flex}.daily-recap-icon{border:2px solid var(--accent);width:42px;height:42px;color:var(--accent);animation:passport-stamp-land .64s var(--ease-spring) both;border-radius:14px;flex:none;place-items:center;display:grid;transform:rotate(-4deg)}.daily-recap-progress{background:var(--well);border-radius:999px;height:8px;margin-top:14px;overflow:hidden}.daily-recap-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--amber), var(--teal));height:100%;transition:width var(--dur-slow) var(--ease-smooth);display:block}.weekly-share-card{z-index:3;border:1px dashed var(--accent);grid-template-columns:minmax(0,1fr) minmax(0,.8fr) auto;align-items:center;gap:8px;margin-top:12px;padding:10px;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.weekly-share-card{border:1px dashed color-mix(in srgb, var(--accent) 32%, var(--border))}}.weekly-share-card{background:linear-gradient(135deg, var(--paper), var(--paper)), var(--paper);border-radius:16px}@supports (color:color-mix(in lab, red, red)){.weekly-share-card{background:linear-gradient(135deg, color-mix(in srgb, var(--paper) 90%, var(--accent)), var(--paper)), var(--paper)}}.weekly-share-card div{gap:1px;min-width:0;display:grid}.weekly-share-card span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:800}.weekly-share-card strong{color:var(--ink);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.weekly-share-copy{min-width:76px}.daily-recap-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.daily-recap-stat{border:1px solid var(--border-soft);background:var(--well);border-radius:14px;align-content:center;place-items:center;gap:3px;min-height:72px;display:grid}@supports (color:color-mix(in lab, red, red)){.daily-recap-stat{background:color-mix(in srgb, var(--well) 84%, transparent)}}.daily-recap-stat strong{color:var(--ink);font-family:var(--font-mono);font-size:17px;line-height:1}.daily-recap-stat span{color:var(--muted);font-size:10px;font-weight:800}.dashboard-smart-action-link{display:block}.dashboard-smart-action{align-items:center;gap:14px;display:flex;position:relative;overflow:hidden}.dashboard-smart-action:after{background:linear-gradient(90deg, var(--accent), var(--amber), var(--teal));content:"";transform-origin:0;height:3px;transition:transform var(--dur-normal) var(--ease-spring);border-radius:3px 3px 0 0;position:absolute;inset:auto 18px 0;transform:scaleX(.34)}.dashboard-smart-action-icon{background:var(--accent);border-radius:16px;flex:none;place-items:center;width:46px;height:46px;display:grid}@supports (color:color-mix(in lab, red, red)){.dashboard-smart-action-icon{background:color-mix(in srgb, var(--accent) 13%, var(--well))}}.dashboard-smart-action-icon{color:var(--accent);box-shadow:inset 0 1px 0 var(--glass-rim-highlight)}.dashboard-smart-action-metric{border:1px dashed var(--accent);justify-items:center;gap:2px;min-width:74px;padding:9px 10px;display:grid}@supports (color:color-mix(in lab, red, red)){.dashboard-smart-action-metric{border:1px dashed color-mix(in srgb, var(--accent) 34%, var(--border))}}.dashboard-smart-action-metric{color:var(--ink);border-radius:16px}.dashboard-smart-action-metric span{color:var(--muted);text-align:center;font-size:10px;font-weight:800}.dashboard-smart-action-cta{color:var(--accent);flex:none;align-items:center;gap:6px;font-size:12px;font-weight:900;display:inline-flex}.dashboard-smart-action-cta svg{transition:transform var(--dur-fast) var(--ease-smooth)}.dashboard-smart-action:hover:after{transform:scaleX(1)}.dashboard-smart-action:hover .dashboard-smart-action-cta svg{transform:translate(3px)}.drill-recovery-stamp{z-index:14;border:2px solid var(--success);background:var(--paper);border-radius:16px;gap:2px;max-width:min(260px,100% - 28px);padding:10px 12px;display:grid;position:absolute;top:14px;right:14px}@supports (color:color-mix(in lab, red, red)){.drill-recovery-stamp{background:color-mix(in srgb, var(--paper) 92%, transparent)}}.drill-recovery-stamp{box-shadow:var(--shadow-sm);color:var(--success);animation:passport-stamp-land .62s var(--ease-spring) both;transform:rotate(-2deg)}.drill-queue-card{position:relative}.drill-recovery-stamp span{text-transform:uppercase;font-size:11px;font-weight:900}.drill-recovery-stamp small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.25;overflow:hidden}.challenge-result-card{background:linear-gradient(135deg, var(--paper), var(--paper)), var(--paper);position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.challenge-result-card{background:linear-gradient(135deg, color-mix(in srgb, var(--paper) 90%, var(--accent)), var(--paper)), var(--paper)}}.challenge-result-card[data-tone=win]{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.challenge-result-card[data-tone=win]{border-color:color-mix(in srgb, var(--success) 38%, var(--border))}}.challenge-result-card[data-tone=loss]{border-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.challenge-result-card[data-tone=loss]{border-color:color-mix(in srgb, var(--amber) 38%, var(--border))}}.challenge-result-heading{align-items:center;gap:13px;display:flex}.challenge-result-trophy{width:52px;height:52px;color:var(--amber);animation:passport-stamp-land .62s var(--ease-spring) both;border:2px solid;border-radius:16px;flex:none;place-items:center;display:grid;transform:rotate(-4deg)}.challenge-result-card[data-tone=win] .challenge-result-trophy{color:var(--success)}.challenge-result-scoreboard{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px;display:grid}.challenge-result-scoreboard div{border:1px solid var(--border-soft);background:var(--well);border-radius:16px;align-content:center;place-items:center;gap:2px;min-height:74px;display:grid}.challenge-result-scoreboard span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:800}.challenge-result-scoreboard strong{color:var(--ink);font-family:var(--font-mono);font-size:22px;line-height:1}.state-panel{position:relative;overflow:hidden}.state-panel:after{border:1px dashed var(--accent);width:62px;height:42px;position:absolute;bottom:12px;right:18px}@supports (color:color-mix(in lab, red, red)){.state-panel:after{border:1px dashed color-mix(in srgb, var(--accent) 28%, var(--border))}}.state-panel:after{opacity:.28;content:"";pointer-events:none;border-radius:12px;transform:rotate(-6deg)}.state-panel-icon{animation:state-panel-icon-rise .62s var(--ease-spring) both}.state-panel-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.state-panel-actions a{text-decoration:none}.state-panel-coach,.badge-empty-coach{border:1px dashed var(--accent);justify-content:center;align-items:center;gap:10px;width:min(100%,360px);margin-top:14px;padding:10px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.state-panel-coach,.badge-empty-coach{border:1px dashed color-mix(in srgb, var(--accent) 28%, var(--border))}}.state-panel-coach,.badge-empty-coach{background:var(--well);border-radius:18px}@supports (color:color-mix(in lab, red, red)){.state-panel-coach,.badge-empty-coach{background:color-mix(in srgb, var(--well) 82%, transparent)}}.state-panel-coach,.badge-empty-coach{text-align:left}.state-panel-coach .mascot-assistant-figure,.state-panel-coach .mascot-expression,.badge-empty-coach .mascot-assistant-figure,.badge-empty-coach .mascot-expression{filter:drop-shadow(0 8px 10px #0509062e);flex:none;width:52px;height:62px}.state-panel-coach span,.badge-empty-coach span{color:var(--muted);font-size:11px;font-weight:700;line-height:1.35}.social-loading-panel,.challenge-loading{border:1px solid var(--border-soft);background:var(--paper);border-radius:20px;align-content:center;place-items:center;gap:8px;min-height:160px;padding:28px;display:grid}@supports (color:color-mix(in lab, red, red)){.social-loading-panel,.challenge-loading{background:color-mix(in srgb, var(--paper) 84%, transparent)}}.social-loading-panel,.challenge-loading{text-align:center}.social-loading-orbits{width:54px;height:54px;margin-bottom:2px;position:relative}.social-loading-orbits span{border:1px solid var(--accent);position:absolute;inset:9px}@supports (color:color-mix(in lab, red, red)){.social-loading-orbits span{border:1px solid color-mix(in srgb, var(--accent) 36%, transparent)}}.social-loading-orbits span{color:var(--accent);border-radius:50%;animation:1.4s linear infinite social-orbit}.social-loading-orbits span:nth-child(2){border-color:var(--amber);inset:15px}@supports (color:color-mix(in lab, red, red)){.social-loading-orbits span:nth-child(2){border-color:color-mix(in srgb, var(--amber) 46%, transparent)}}.social-loading-orbits span:nth-child(2){color:var(--amber);animation-duration:1.9s;animation-direction:reverse}.social-loading-orbits span:nth-child(3){border-color:var(--teal);color:var(--teal);animation-duration:1.1s;inset:23px}.social-loading-orbits span:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;position:absolute;top:-3px;left:50%;transform:translate(-50%)}.challenge-loading{min-height:120px;color:var(--muted);font-size:12px;font-weight:700}.challenge-loading>span{border:2px solid var(--accent);place-items:center;width:44px;height:44px;display:grid}@supports (color:color-mix(in lab, red, red)){.challenge-loading>span{border:2px solid color-mix(in srgb, var(--accent) 34%, var(--border))}}.challenge-loading>span{border-radius:50%;animation:1.2s linear infinite challenge-target-spin}.challenge-loading>span:before{border:2px solid var(--amber);content:"";border-radius:50%;width:16px;height:16px}.challenge-row{transition:border-color var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth), transform var(--dur-fast) var(--ease-smooth);flex-wrap:wrap;position:relative}.challenge-row[data-complete=true]{border-color:var(--success)!important}@supports (color:color-mix(in lab, red, red)){.challenge-row[data-complete=true]{border-color:color-mix(in srgb, var(--success) 34%, var(--border))!important}}.challenge-row[data-complete=true]{background:linear-gradient(135deg, var(--well), var(--well))!important}@supports (color:color-mix(in lab, red, red)){.challenge-row[data-complete=true]{background:linear-gradient(135deg, color-mix(in srgb, var(--well) 88%, var(--success)), var(--well))!important}}.challenge-row-stamp,.dictation-challenge-stamp{width:fit-content;color:var(--success);text-transform:uppercase;animation:passport-stamp-land .52s var(--ease-spring) both;border:1px solid;border-radius:999px;align-items:center;gap:5px;font-size:10px;font-weight:900;display:inline-flex}.challenge-row-stamp{margin-left:auto;padding:4px 7px}.dictation-challenge-card{transition:border-color var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth), transform var(--dur-fast) var(--ease-smooth);position:relative}.dictation-challenge-card[data-complete=true]{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.dictation-challenge-card[data-complete=true]{border-color:color-mix(in srgb, var(--success) 36%, var(--border))}}.dictation-challenge-card[data-complete=true]{background:linear-gradient(135deg, var(--paper), var(--paper)), var(--paper)}@supports (color:color-mix(in lab, red, red)){.dictation-challenge-card[data-complete=true]{background:linear-gradient(135deg, color-mix(in srgb, var(--paper) 92%, var(--success)), var(--paper)), var(--paper)}}.dictation-challenge-stamp{padding:5px 8px;transform:rotate(-2deg)}@media (hover:hover) and (pointer:fine){.challenge-row:hover,.dictation-challenge-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}}@media (max-width:920px){.achievements-page{width:min(100%,760px)}.achievements-page-grid{grid-template-columns:1fr}.achievements-page-panel-wide{grid-column:auto}}@media (max-width:560px){.achievements-page{padding-inline:0}.badge-grid{grid-template-columns:repeat(auto-fit,minmax(126px,1fr))}.achievement-timeline-cta,.achievement-milestone-cta{width:100%;margin-left:0}.achievement-timeline-step{grid-template-columns:34px minmax(0,1fr);align-items:start}.achievement-timeline-copy>div{gap:3px;display:grid}.achievement-timeline-copy span{white-space:normal}.achievement-timeline-count{grid-column:2;justify-self:start}.challenge-row{align-items:flex-start}.challenge-row>.flex-1{flex-basis:calc(100% - 44px)}}@keyframes review-card-sort{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-7px)rotate(2deg)}}@keyframes review-card-again{0%{opacity:1;transform:translate(0)rotate(0)}45%{opacity:.86;transform:translate(-8px)rotate(-1.6deg)}to{opacity:0;transform:translate(14px)rotate(2deg)scale(.98)}}@keyframes review-card-hard{0%{opacity:1;transform:translateY(0)rotate(0)}38%{opacity:.9;transform:translateY(5px)rotate(-1deg)}to{opacity:0;transform:translateY(18px)rotate(-2deg)scale(.98)}}@keyframes review-card-clear{0%{opacity:1;transform:translateY(0)rotate(0)scale(1)}45%{opacity:.96;transform:translateY(-8px)rotate(1deg)scale(1.012)}to{opacity:0;transform:translateY(-24px)rotate(3deg)scale(.985)}}@keyframes review-receipt-rise{0%{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes capture-dot-pulse{0%,to{opacity:.72;transform:scale(1)}50%{opacity:1;transform:scale(1.22)}}@keyframes record-button-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--danger) 26%, transparent)}50%{box-shadow:0 0 0 8px color-mix(in srgb, var(--danger) 0%, transparent)}}@keyframes badge-loading-stamp{0%,to{opacity:.78;transform:translateY(0)rotate(-4deg)}50%{opacity:1;transform:translateY(-5px)rotate(3deg)}}@keyframes badge-reveal-enter{0%{opacity:0;transform:translateY(10px)scale(.97)}}@keyframes state-panel-icon-rise{0%{opacity:0;transform:translateY(8px)scale(.92)}}@keyframes social-orbit{to{transform:rotate(360deg)}}@keyframes challenge-target-spin{to{transform:rotate(360deg)}}@media (max-width:479px){.review-session-passport{align-items:flex-start}.review-session-stamp{width:66px;height:48px}.badge-unlock-overlay{width:auto;left:16px;right:16px}.badge-unlock-card{padding-right:38px}.badge-detail-modal{padding:18px}.badge-detail-facts div{grid-template-columns:18px minmax(0,1fr)}.badge-detail-facts strong{grid-column:2}.achievement-milestone-hero{flex-wrap:wrap;align-items:flex-start}.achievement-milestone-cta{margin-left:0}.achievement-milestone-grid{grid-template-columns:1fr}.weekly-share-card{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-share-copy{grid-column:1/-1;width:100%}.daily-recap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-smart-action{flex-wrap:wrap;align-items:flex-start}.dashboard-smart-action-metric{min-width:96px}.dashboard-smart-action-cta{justify-content:flex-end;width:100%}.challenge-result-heading{flex-wrap:wrap;align-items:flex-start}.challenge-result-heading .ui-button{margin-left:auto}.challenge-row>.flex-1{min-width:0}.challenge-row-stamp{margin-left:0}}@keyframes lesson-score-pop{0%{opacity:0;transform:scale(.88)}}@keyframes lesson-growth-fill{0%{transform-origin:0;transform:scaleX(0)}to{transform-origin:0;transform:scaleX(1)}}@keyframes passport-stamp-land{0%{opacity:0;transform:translateY(-12px)rotate(8deg)scale(1.14)}62%{opacity:1;transform:translateY(2px)rotate(-4deg)scale(.96)}to{opacity:1;transform:translateY(0)rotate(-3deg)scale(1)}}@keyframes stamp-spark{0%,to{opacity:.46;transform:rotate(0)scale(.94)}50%{opacity:1;transform:rotate(12deg)scale(1.08)}}.audio-waveform-bar{transform-origin:50%}.audio-waveform[data-playing=true] .audio-waveform-bar{animation:.62s ease-in-out infinite alternate waveform-breathe;animation-delay:calc(var(--wave-index,0) * -28ms)}@keyframes answer-feedback-enter{0%{opacity:0;transform:translateY(8px)scale(.99)}}@keyframes waveform-breathe{to{opacity:.62;transform:scaleY(.56)}}@media (prefers-reduced-motion:reduce){.progress-journey-marker,.answer-option,.answer-feedback-panel,.audio-waveform-bar,.lesson-completion-score,.lesson-completion-stamp,.lesson-completion-spark,.lesson-completion-growth-track span,.page-transition-ribbon,.review-loading-card-face,.review-session-stamp,.review-card-rating,.review-rating-button,.review-rating-receipt,.speaking-capture-dot,.speaking-waveform i,.speaking-record-button,.badge-loading span,.badge-tile,.badge-progress-track span,.badge-reveal,.badge-reveal-stamp,.badge-detail-modal,.badge-detail-stamp,.badge-unlock-card,.badge-unlock-stamp,.badge-unlock-spark,.achievement-milestone-hero-icon,.achievement-milestone-cta svg,.achievement-milestone-tile,.daily-recap-icon,.daily-recap-progress span,.weekly-share-card,.dashboard-smart-action,.dashboard-smart-action:after,.dashboard-smart-action-cta svg,.drill-recovery-stamp,.challenge-result-trophy,.state-panel-icon,.social-loading-orbits span,.challenge-loading>span,.challenge-row,.challenge-row-stamp,.dictation-challenge-card,.dictation-challenge-stamp,.speaking-feedback-stamp,.writing-feedback-stamp,.dictation-completion-stamp,.speaking-feedback-passport svg:last-child,.writing-feedback-passport svg:last-child{transform:none;transition:none!important;animation:none!important}}.mascot-assistant{z-index:45;pointer-events:none;flex-direction:column;align-items:flex-end;display:flex;position:fixed;bottom:18px;right:76px}.undo-toast{z-index:80;width:min(440px,100vw - 32px);animation:answer-feedback-enter var(--dur-slow) var(--ease-spring) both;border-radius:18px;align-items:center;gap:12px;padding:12px 14px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.undo-toast-action,.undo-toast-close{background:var(--well);min-height:36px;color:var(--accent);cursor:pointer;border:0;border-radius:11px;align-items:center;gap:5px;font-weight:700;display:inline-flex}.undo-toast-close{width:36px;color:var(--muted);justify-content:center}.badge-reveal{z-index:20;border:1px solid var(--amber);justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:16px}@supports (color:color-mix(in lab, red, red)){.badge-reveal{border:1px solid color-mix(in srgb, var(--amber) 36%, var(--border))}}.badge-reveal{background:linear-gradient(135deg, var(--paper), var(--paper)), var(--paper);border-radius:20px}@supports (color:color-mix(in lab, red, red)){.badge-reveal{background:linear-gradient(135deg, color-mix(in srgb, var(--paper) 90%, var(--amber)), color-mix(in srgb, var(--paper) 94%, transparent)), var(--paper)}}.badge-reveal{color:var(--ink);text-align:left;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:badge-reveal-enter .52s var(--ease-spring) both}.badge-reveal-stamp{border:2px solid var(--amber);width:82px;height:58px;color:var(--amber);text-align:center;animation:passport-stamp-land .64s var(--ease-spring) .12s both;border-radius:14px;flex:none;align-content:center;place-items:center;display:grid;transform:rotate(-5deg)}.badge-reveal-stamp span{color:currentColor;text-transform:uppercase;margin-top:2px;font-size:8px;font-weight:900}.badge-reveal small{color:var(--amber);text-transform:uppercase;font-size:10px;font-weight:900;display:block}.badge-reveal strong{color:var(--ink);margin-top:3px;font-size:15px;display:block}.badge-reveal div:last-child>span{max-width:280px;color:var(--muted);margin-top:3px;font-size:12px;line-height:1.35;display:block}.badge-empty-state a{text-decoration:none}.badge-unlock-overlay{z-index:80;top:max(18px, env(safe-area-inset-top));right:max(18px, env(safe-area-inset-right));pointer-events:none;width:min(360px,100vw - 32px);position:fixed}.badge-unlock-card{animation:badge-reveal-enter .52s var(--ease-spring) both;pointer-events:auto;border-radius:22px;align-items:center;gap:13px;padding:14px 42px 14px 14px;display:flex;position:relative;overflow:hidden}.badge-unlock-stamp{border:2px solid var(--amber);width:80px;height:58px;color:var(--amber);text-align:center;animation:passport-stamp-land .64s var(--ease-spring) 80ms both;border-radius:14px;flex:none;align-content:center;place-items:center;display:grid;transform:rotate(-5deg)}.badge-unlock-stamp span{text-transform:uppercase;margin-top:2px;font-size:8px;font-weight:900}.badge-unlock-copy{gap:2px;min-width:0;display:grid}.badge-unlock-copy small{color:var(--amber);text-transform:uppercase;font-size:10px;font-weight:900}.badge-unlock-copy strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.badge-unlock-copy span{color:var(--muted);font-family:var(--font-mono);font-size:10px;font-weight:800}.badge-unlock-spark{color:var(--amber);flex:none;animation:1.6s ease-in-out infinite stamp-spark}.badge-unlock-close{border:1px solid var(--border-soft);background:var(--well);width:26px;height:26px;color:var(--muted);cursor:pointer;border-radius:10px;place-items:center;display:grid;position:absolute;top:9px;right:9px}.mascot-assistant-figure{filter:drop-shadow(0 14px 18px #05090647);width:150px;height:190px;display:block;position:relative}.mascot-expression{perspective:600px;transform-origin:50% 100%;width:150px;height:190px;animation:3.8s ease-in-out infinite mascot-idle-breathe;overflow:hidden}.mascot-expression-image{object-fit:contain;object-position:bottom;transform-origin:50% 100%;width:100%;max-width:100%;height:100%;max-height:100%;animation:mascot-pose-reveal .62s var(--ease-spring) both;will-change:opacity, transform, filter;display:block;position:absolute;inset:0}@keyframes mascot-pose-reveal{0%{opacity:0;filter:blur(3px);transform:translateY(14px)rotateY(-14deg)scale(.92)}58%{opacity:1;filter:blur();transform:translateY(-3px)rotateY(3deg)scale(1.025)}to{opacity:1;filter:blur();transform:translateY(0)rotateY(0)scale(1)}}@keyframes mascot-idle-breathe{0%,to{transform:translateY(0)rotate(0)scale(1)}45%{transform:translateY(-3px)rotate(-.45deg)scale(1.012)}55%{transform:translateY(-3px)rotate(.35deg)scale(1.012)}}.mascot-figure-button{isolation:isolate;cursor:pointer;pointer-events:auto;transition:transform var(--dur-normal) var(--ease-spring), filter var(--dur-normal) var(--ease-smooth);background:0 0;border:0;padding:0;position:relative}.mascot-figure-button:before{z-index:-1;border:1px solid var(--accent);width:80%;height:28%;position:absolute;bottom:1%;right:10%}@supports (color:color-mix(in lab, red, red)){.mascot-figure-button:before{border:1px solid color-mix(in srgb, var(--accent) 28%, transparent)}}.mascot-figure-button:before{background:radial-gradient(ellipse, var(--accent), transparent 68%);border-radius:50%}@supports (color:color-mix(in lab, red, red)){.mascot-figure-button:before{background:radial-gradient(ellipse, color-mix(in srgb, var(--accent) 15%, transparent), transparent 68%)}}.mascot-figure-button:before{opacity:.5;transition:opacity var(--dur-fast) var(--ease-smooth), transform var(--dur-normal) var(--ease-spring);content:"";transform:scale(.82)}.mascot-figure-button:active:before{opacity:.95;transform:scale(1.18)}.mascot-name-tag{z-index:3;min-width:104px;color:var(--ink);text-align:left;opacity:0;transition:opacity var(--dur-fast) var(--ease-smooth), transform var(--dur-normal) var(--ease-spring);pointer-events:none;border-radius:13px 13px 3px;padding:7px 10px;display:grid;position:absolute;bottom:24px;right:calc(100% - 12px);transform:translate(8px)scale(.96)}.mascot-name-tag strong{font-size:12px;line-height:1.2}.mascot-name-tag small{color:var(--muted);font-size:10px;line-height:1.35}.mascot-menu-wrap{z-index:8;pointer-events:auto;position:absolute;bottom:146px;right:8px}.mascot-menu-trigger{z-index:5;border:1px solid var(--border-soft);background:var(--glass-bg);width:34px;height:34px;box-shadow:var(--shadow-sm);color:var(--muted);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;place-items:center;display:grid;position:relative}.mascot-menu-trigger:focus-visible{outline:3px solid var(--border-focus);outline-offset:2px}.mascot-menu{width:230px;color:var(--ink);animation:answer-feedback-enter var(--dur-normal) var(--ease-spring) both;border-radius:18px 18px 6px;gap:12px;padding:12px;display:grid;position:absolute;bottom:42px;right:0}.mascot-menu-label{color:var(--muted);margin-bottom:6px;font-size:11px;font-weight:700;display:block}.mascot-menu-options{grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;display:grid}.mascot-menu-options button{background:var(--well);min-height:34px;color:var(--muted);cursor:pointer;border:1px solid #0000;border-radius:10px;padding:5px 7px;font-size:11px;font-weight:700}.mascot-menu-options button[aria-checked=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.mascot-menu-options button:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.mascot-assistant[data-mascot-motion=reduced] .mascot-assistant-figure,.mascot-assistant[data-mascot-motion=reduced] .mascot-expression-image,.mascot-assistant[data-mascot-motion=reduced] .text-type-cursor{filter:none!important;transition:none!important;animation:none!important;transform:none!important}.mascot-figure-button:hover .mascot-name-tag,.mascot-figure-button:focus-visible .mascot-name-tag{opacity:1;transform:translate(0)scale(1)}.mascot-expression[data-mood=correct] .mascot-expression-image{filter:drop-shadow(0 0 12px var(--success))}@supports (color:color-mix(in lab, red, red)){.mascot-expression[data-mood=correct] .mascot-expression-image{filter:drop-shadow(0 0 12px color-mix(in srgb, var(--success) 34%, transparent))}}.mascot-expression[data-mood=incorrect] .mascot-expression-image{filter:drop-shadow(0 0 10px var(--danger))}@supports (color:color-mix(in lab, red, red)){.mascot-expression[data-mood=incorrect] .mascot-expression-image{filter:drop-shadow(0 0 10px color-mix(in srgb, var(--danger) 24%, transparent))}}.mascot-expression[data-mood=hint] .mascot-expression-image{filter:drop-shadow(0 0 10px var(--accent))}@supports (color:color-mix(in lab, red, red)){.mascot-expression[data-mood=hint] .mascot-expression-image{filter:drop-shadow(0 0 10px color-mix(in srgb, var(--accent) 24%, transparent))}}.mascot-expression[data-mood=streak] .mascot-expression-image,.mascot-expression[data-mood=achievement] .mascot-expression-image{filter:drop-shadow(0 0 14px var(--amber))}@supports (color:color-mix(in lab, red, red)){.mascot-expression[data-mood=streak] .mascot-expression-image,.mascot-expression[data-mood=achievement] .mascot-expression-image{filter:drop-shadow(0 0 14px color-mix(in srgb, var(--amber) 34%, transparent))}}.mascot-figure-button:hover{filter:brightness(1.05);transform:translateY(-5px)rotate(-1deg)}.mascot-figure-button:focus-visible{outline:3px solid var(--border-focus);outline-offset:3px;border-radius:24px}.text-type-cursor{vertical-align:-.12em;background:currentColor;width:1px;height:1em;margin-left:2px;animation:.7s step-end infinite text-type-blink;display:inline-block}@keyframes text-type-blink{50%{opacity:0}}.mascot-caption{max-width:260px;color:var(--ink);pointer-events:auto;border-radius:18px 18px 4px;align-items:flex-start;gap:10px;margin:0 108px -18px 0;padding:12px 14px;font-size:13px;line-height:1.45;display:flex}.mascot-caption button{background:var(--well);width:28px;height:28px;color:var(--muted);cursor:pointer;border:0;border-radius:10px;flex:none;place-items:center;display:grid}@media (max-width:767px){.mascot-assistant{right:64px;bottom:calc(88px + env(safe-area-inset-bottom))}.mascot-assistant-figure,.mascot-expression{width:82px;height:108px}.mascot-caption{max-width:min(230px,100vw - 100px);margin:0 60px -8px 0;font-size:12px}.mascot-name-tag{display:none}.mascot-menu-wrap{bottom:78px;right:-4px}.mascot-menu{width:min(230px,100vw - 88px)}.mascot-expression-image{animation-duration:.46s}.undo-toast{bottom:calc(94px + env(safe-area-inset-bottom))}.lesson-completion-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-next-action{flex-wrap:wrap;align-items:flex-start}.lesson-next-action-link{width:100%}.lesson-completion-actions>*,.lesson-completion-link{flex-basis:100%;width:100%}}@media (prefers-reduced-motion:reduce){.mascot-assistant-figure,.mascot-expression-image{filter:none!important;animation:none!important;transform:none!important}}.filter-chip:focus-visible{box-shadow:0 0 0 3px var(--border-focus);outline:none}.filter-chip:disabled{cursor:not-allowed;opacity:.55}@media (max-width:767px){.ui-button,.filter-chip{min-height:44px}}.lift{transition:transform var(--dur-normal) var(--ease-spring), box-shadow var(--dur-normal) var(--ease-smooth)}.dashboard-week-cell,.dashboard-card-surface{transition:transform .36s var(--ease-spring), box-shadow .36s var(--ease-smooth), background-color .36s var(--ease-smooth), border-color .36s var(--ease-smooth)}.dashboard-reveal{transform-origin:top}.dashboard-card-surface{backface-visibility:hidden;transform-origin:50%;will-change:transform, box-shadow}.dashboard-stat-card{transform:translateZ(0)}.dashboard-vocabulary-action{isolation:isolate;overflow:hidden}.dashboard-vocabulary-action:after{background:radial-gradient(circle, var(--amber), transparent 66%);border-radius:50%;height:180%;position:absolute;inset:auto -12% -70% 36%}@supports (color:color-mix(in lab, red, red)){.dashboard-vocabulary-action:after{background:radial-gradient(circle, color-mix(in srgb, var(--amber) 16%, transparent), transparent 66%)}}.dashboard-vocabulary-action:after{opacity:.65;transition:opacity var(--dur-normal) var(--ease-smooth), transform var(--dur-slow) var(--ease-spring);content:"";pointer-events:none}.dashboard-section-heading{padding:4px 4px 0}.dashboard-next-action-title{color:var(--ink);font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(1.15rem,3vw,1.45rem);line-height:1.15}.dashboard-skill-card{isolation:isolate;overflow:hidden}.dashboard-skill-card:after{background:var(--skill-accent);opacity:.55;transform-origin:0;height:3px;transition:opacity .42s var(--ease-smooth), transform .76s var(--ease-smooth);content:"";border-radius:3px 3px 0 0;position:absolute;inset:auto 18px 0;transform:scaleX(.28)}.dashboard-card-arrow{transition:transform var(--dur-normal) var(--ease-spring)}@media (hover:hover) and (pointer:fine){.dashboard-week-cell:hover{box-shadow:var(--shadow-sm);transform:translateY(-3px)scale(1.025)}.dashboard-vocabulary-action:hover:after{opacity:1;transform:translate(-6%)scale(1.08)}.dashboard-skill-card:hover:after{opacity:1;transform:scaleX(1)}.dashboard-skill-card:hover .dashboard-card-arrow,.dashboard-vocabulary-action:hover .dashboard-card-arrow{transform:translate(4px)}}.dashboard-action-link:focus-visible{border-radius:var(--radius-card);outline:3px solid var(--border-focus);outline-offset:4px}.dashboard-action-link:focus-visible .dashboard-skill-card:after{opacity:1;transform:scaleX(1)}.speech-control-cluster{z-index:11;width:36px;height:36px;position:absolute;top:14px;right:14px}.speech-trigger{z-index:3;border:1px solid var(--accent);place-items:center;width:36px;height:36px;display:grid;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.speech-trigger{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border-soft))}}.speech-trigger{background:var(--accent);border-radius:50%}@supports (color:color-mix(in lab, red, red)){.speech-trigger{background:color-mix(in srgb, var(--accent) 14%, var(--glass-bg))}}.speech-trigger{box-shadow:inset 0 1px 0 var(--glass-rim-highlight);color:var(--accent);opacity:1;visibility:visible}.speech-trigger svg{z-index:1;color:var(--accent);opacity:1;display:block;position:relative}.speech-rate-control{z-index:1;border:1px solid var(--border-soft);background:var(--glass-bg);border-radius:13px;gap:2px;padding:3px;display:flex;position:absolute;top:0;right:38px}@supports (color:color-mix(in lab, red, red)){.speech-rate-control{background:color-mix(in srgb, var(--glass-bg) 88%, transparent)}}.speech-rate-control{box-shadow:inset 0 1px 0 var(--glass-rim-highlight), var(--shadow-sm);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transform-origin:100%;transition:opacity var(--dur-fast) var(--ease-smooth), transform var(--dur-normal) var(--ease-spring), visibility 0s linear var(--dur-normal);pointer-events:none;transform:translate(10px)scale(.97)}.speech-control-cluster:hover .speech-rate-control,.speech-control-cluster:focus-within .speech-rate-control{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translate(0)scale(1)}.speech-rate-option{min-width:34px;height:28px;color:var(--muted);font-family:var(--font-mono);cursor:pointer;transition:color var(--dur-fast) var(--ease-smooth), background-color var(--dur-fast) var(--ease-smooth), transform var(--dur-normal) var(--ease-spring);background:0 0;border:0;border-radius:9px;place-items:center;padding:0 6px;font-size:10px;font-weight:700;display:grid}.speech-rate-option:hover{color:var(--ink);background:var(--well)}.speech-rate-option[aria-checked=true]{background:var(--accent);color:var(--accent-ink);box-shadow:var(--glow-accent)}.speech-rate-option:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.listen-player-card{transition:border-color var(--dur-normal) var(--ease-smooth), box-shadow var(--dur-normal) var(--ease-smooth)}.listen-player-card[data-playing=true]{border-color:var(--teal)}@supports (color:color-mix(in lab, red, red)){.listen-player-card[data-playing=true]{border-color:color-mix(in srgb, var(--teal) 38%, var(--glass-border))}}.listen-player-card[data-playing=true]{box-shadow:var(--glass-shadow), 0 0 28px var(--teal)}@supports (color:color-mix(in lab, red, red)){.listen-player-card[data-playing=true]{box-shadow:var(--glass-shadow), 0 0 28px color-mix(in srgb, var(--teal) 12%, transparent)}}.listen-speed-control{border:1px solid var(--border-soft);background:var(--well);border-radius:12px;padding:3px}@supports (color:color-mix(in lab, red, red)){.listen-speed-control{background:color-mix(in srgb, var(--well) 72%, transparent)}}.listen-speed-option{color:var(--muted)}.listen-speed-option[aria-checked=true]{box-shadow:var(--glow-teal);background:var(--teal)!important;color:var(--on-brand)!important}.listen-speed-option:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.listen-fallback-note{background:var(--well);border-radius:10px;padding:5px 8px}@media (max-width:639px){.listen-player-meta{flex-direction:column;align-items:flex-start}.listen-speed-control{max-width:100%}}@media (max-width:479px){.speech-rate-option{min-width:31px;padding-inline:4px}}.lift:hover{box-shadow:var(--shadow-xl);transform:translateY(-3px)}.lift:active{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.learning-trail{background:radial-gradient(circle at 92% 8%, var(--accent), transparent 28%), linear-gradient(145deg, var(--paper), var(--paper));position:relative}@supports (color:color-mix(in lab, red, red)){.learning-trail{background:radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 28%), linear-gradient(145deg, color-mix(in srgb, var(--paper) 92%, var(--accent)), var(--paper))}}.learning-trail-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.learning-trail-heading h2{color:var(--ink);font-family:var(--font-display);margin-top:3px;font-size:clamp(21px,4vw,28px);line-height:1.08}.learning-trail-heading p{color:var(--muted);margin-top:5px;font-size:12px}.learning-trail-kicker{color:var(--accent);font-family:var(--font-mono);letter-spacing:.14em;font-size:9px;font-weight:800}.learning-trail-list{gap:9px;margin:0;padding:0;list-style:none;display:grid}.learning-trail-stop{grid-template-columns:28px minmax(0,1fr);align-items:stretch;gap:10px;display:grid;position:relative}.learning-trail-line{background:linear-gradient(var(--accent), var(--accent));width:2px;position:absolute;top:26px;bottom:-14px;left:13px}@supports (color:color-mix(in lab, red, red)){.learning-trail-line{background:linear-gradient(var(--accent), color-mix(in srgb, var(--accent) 18%, transparent))}}.learning-trail-stop:last-child .learning-trail-line{display:none}.learning-trail-number{z-index:1;border:1px solid var(--accent);align-self:center;place-items:center;width:28px;height:28px;display:grid}@supports (color:color-mix(in lab, red, red)){.learning-trail-number{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border))}}.learning-trail-number{background:var(--paper);color:var(--accent);font-family:var(--font-mono);box-shadow:var(--shadow-sm);border-radius:50%;font-size:10px;font-weight:900}.learning-trail-number[data-current=true]{background:var(--accent);color:var(--accent-ink);animation:1.8s ease-in-out infinite mission-node-pulse}.learning-trail-action{border:1px solid var(--border-soft);background:var(--paper);border-radius:17px;align-items:center;gap:11px;min-height:68px;padding:11px 13px;display:flex}@supports (color:color-mix(in lab, red, red)){.learning-trail-action{background:color-mix(in srgb, var(--paper) 86%, transparent)}}.learning-trail-action{color:inherit;transition:transform var(--dur-fast) var(--ease-smooth), border-color var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth);text-decoration:none}.learning-trail-action:hover{border-color:var(--accent);transform:translateY(-2px)}@supports (color:color-mix(in lab, red, red)){.learning-trail-action:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}}.learning-trail-action:hover{box-shadow:var(--shadow-md)}.learning-trail-action:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.learning-trail-icon{background:var(--accent);border-radius:12px;flex:none;place-items:center;width:34px;height:34px;display:grid}@supports (color:color-mix(in lab, red, red)){.learning-trail-icon{background:color-mix(in srgb, var(--accent) 12%, var(--well))}}.learning-trail-icon{color:var(--accent)}.learning-trail-action em{background:var(--accent);border-radius:999px;width:fit-content;margin-bottom:4px;padding:2px 6px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.learning-trail-action em{background:color-mix(in srgb, var(--accent) 10%, transparent)}}.learning-trail-action em{color:var(--accent);text-transform:uppercase;font-size:9px;font-style:normal;font-weight:900}.learning-trail-action strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.learning-trail-action small{color:var(--muted);margin-top:3px;font-size:10px;line-height:1.35;display:block}.learning-trail-arrow{color:var(--accent);transition:transform var(--dur-fast) var(--ease-smooth);flex:none}.learning-trail-action:hover .learning-trail-arrow{transform:translate(3px)}.learning-trail-passport{border:1px dashed var(--accent);align-items:center;gap:12px;margin-top:14px;padding:12px;display:flex}@supports (color:color-mix(in lab, red, red)){.learning-trail-passport{border:1px dashed color-mix(in srgb, var(--accent) 38%, var(--border))}}.learning-trail-passport{background:var(--paper);border-radius:18px}@supports (color:color-mix(in lab, red, red)){.learning-trail-passport{background:color-mix(in srgb, var(--paper) 82%, var(--accent))}}.learning-trail-passport{color:inherit;transition:transform var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth), border-color var(--dur-fast) var(--ease-smooth)}.learning-trail-passport:hover{border-color:var(--accent);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.learning-trail-passport-stamp{border:2px solid var(--accent);width:58px;height:40px;color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;border-radius:12px;flex:none;place-items:center;font-size:9px;font-weight:900;display:grid;transform:rotate(-4deg)}.learning-trail-passport-copy{flex:1;gap:1px;min-width:0;display:grid}.learning-trail-passport-copy strong{color:var(--ink);font-size:13px}.learning-trail-passport-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.learning-trail-passport svg{color:var(--accent)}@keyframes mission-node-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 34%, transparent)}50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--accent) 0%, transparent)}}@media (max-width:479px){.learning-trail-heading p{max-width:250px}.learning-trail-stop{grid-template-columns:24px minmax(0,1fr);gap:8px}.learning-trail-number{width:24px;height:24px}.learning-trail-line{left:11px}.learning-trail-action{min-height:64px;padding:10px}}@media (prefers-reduced-motion:reduce){.learning-trail-action,.learning-trail-arrow,.learning-trail-passport{transition:none}.learning-trail-action:hover,.learning-trail-action:hover .learning-trail-arrow,.learning-trail-passport:hover{transform:none}.learning-trail-number[data-current=true]{animation:none}}.passport-stamp-book{background:radial-gradient(circle at 92% 10%, var(--amber), transparent 26%), linear-gradient(135deg, var(--paper), var(--paper));position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.passport-stamp-book{background:radial-gradient(circle at 92% 10%, color-mix(in srgb, var(--amber) 12%, transparent), transparent 26%), linear-gradient(135deg, color-mix(in srgb, var(--paper) 92%, var(--accent)), var(--paper))}}.passport-stamp-book-heading{justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;margin-bottom:14px;display:flex}.passport-stamp-book-heading>div{min-width:0}.passport-stamp-empty{border:1px dashed var(--border);min-height:92px;color:var(--muted);border-radius:18px;align-items:center;gap:12px;padding:14px;display:flex}.passport-stamp-empty strong{color:var(--ink);font-size:13px;display:block}.passport-stamp-empty span{color:var(--muted);margin-top:2px;font-size:11px;display:block}.passport-stamp-latest{background:var(--well);max-width:100%;color:var(--muted);border-radius:999px;align-items:center;gap:7px;margin-bottom:13px;padding:6px 9px;font-size:11px;font-weight:700;display:inline-flex}.passport-stamp-latest span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.passport-stamp-grid{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;display:grid}.passport-stamp{border:2px solid var(--accent);align-content:center;place-items:center;gap:4px;min-height:88px;padding:10px;display:grid}@supports (color:color-mix(in lab, red, red)){.passport-stamp{border:2px solid color-mix(in srgb, var(--accent) 58%, var(--border))}}.passport-stamp{background:var(--paper);border-radius:16px}@supports (color:color-mix(in lab, red, red)){.passport-stamp{background:color-mix(in srgb, var(--paper) 86%, transparent)}}.passport-stamp{color:var(--accent);text-align:center;transform:rotate(var(--stamp-rotate,0deg));transition:transform var(--dur-normal) var(--ease-spring), box-shadow var(--dur-normal) var(--ease-smooth)}.passport-stamp strong{-webkit-line-clamp:2;min-width:0;color:var(--ink);overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:12px;line-height:1.2;display:-webkit-box;overflow:hidden}.passport-stamp span{color:var(--muted);font-family:var(--font-mono);font-size:9px;font-weight:800}.passport-stamp:hover{box-shadow:var(--shadow-sm);transform:rotate(0)translateY(-3px)}.passport-log{border-top:1px dashed var(--border);gap:8px;margin-top:14px;padding-top:13px;display:grid}.passport-log-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.passport-log-heading strong{color:var(--ink);font-size:13px}.passport-log-heading span{color:var(--muted);font-size:11px;font-weight:700}.passport-log-row{background:var(--well);border-radius:14px;align-items:center;gap:10px;min-width:0;padding:9px 10px;display:flex}@supports (color:color-mix(in lab, red, red)){.passport-log-row{background:color-mix(in srgb, var(--well) 86%, transparent)}}.passport-log-row{color:var(--success)}.passport-log-row[data-pending=true]{color:var(--amber)}.passport-log-row div{gap:1px;min-width:0;display:grid}.passport-log-row strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.passport-log-row span{color:var(--muted);overflow-wrap:anywhere;font-size:11px;line-height:1.3}@media (min-width:640px){.passport-stamp-grid{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}}@media (prefers-reduced-motion:reduce){.passport-stamp{transition:none;transform:none}.passport-stamp:hover{transform:none}.achievement-timeline-map,.achievement-timeline-step{transition:none;animation:none}}.progress-target-ring{--target-progress:0%;background:radial-gradient(circle, var(--paper) 57%, transparent 59%), conic-gradient(var(--accent) var(--target-progress), var(--well) 0);width:108px;height:108px;box-shadow:inset 0 0 0 1px var(--border-soft), var(--shadow-sm);color:var(--ink);text-align:center;border-radius:50%;flex:none;place-content:center;display:grid}.progress-target-ring strong{font-family:var(--font-display);font-size:25px;line-height:1}.progress-target-ring span{color:var(--muted);margin-top:4px;font-size:10px;font-weight:700}.progress-trail{border-bottom:1px solid var(--border-soft);align-items:end;gap:clamp(3px,1vw,9px);height:132px;display:flex}.progress-trail-day{flex-direction:column;flex:1 1 0;justify-content:end;align-items:center;gap:7px;min-width:0;height:100%;display:flex}.progress-trail-bar{background:linear-gradient(180deg, var(--accent), var(--accent));border-radius:9px 9px 3px 3px;width:min(100%,18px);min-height:2px}@supports (color:color-mix(in lab, red, red)){.progress-trail-bar{background:linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent) 62%, var(--amber)))}}.progress-trail-bar{transition:height var(--dur-normal) var(--ease-smooth)}.progress-trail-day small{height:18px;color:var(--muted);font-size:9px}@media (max-width:479px){.progress-target-ring{width:90px;height:90px}.progress-trail{gap:2px}}@media (prefers-reduced-motion:reduce){.progress-trail-bar{transition:none}}.onboarding-overlay{z-index:80;background:var(--ink);place-items:center;padding:20px;display:grid;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.onboarding-overlay{background:color-mix(in srgb, var(--ink) 42%, transparent)}}.onboarding-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.onboarding-dialog{border-radius:var(--radius-card);width:min(100%,620px);max-height:min(90vh,760px);box-shadow:var(--shadow-xl);padding:clamp(20px,4vw,32px);overflow-y:auto}.learning-preference-options{flex-wrap:wrap;gap:8px;display:flex}.learning-preference-options button{border:1px solid var(--border-soft);background:var(--well);min-height:42px;color:var(--muted);cursor:pointer;transition:transform var(--dur-fast) var(--ease-smooth), background-color var(--dur-fast) var(--ease-smooth), border-color var(--dur-fast) var(--ease-smooth);border-radius:13px;padding:8px 13px;font-size:12px;font-weight:700}.learning-preference-options button[aria-checked=true]{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.learning-preference-options button[aria-checked=true]{border-color:color-mix(in srgb, var(--accent) 56%, var(--border))}}.learning-preference-options button[aria-checked=true]{background:var(--accent);color:var(--accent-ink);box-shadow:var(--glow-accent)}.learning-preference-options button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}@media (max-width:479px){.onboarding-overlay{align-items:end;padding:0}.onboarding-dialog{border-radius:24px 24px 0 0;max-height:94vh}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--accent) 25%, var(--accent) 50%, var(--accent) 75%)}@supports (color:color-mix(in lab, red, red)){.skeleton{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 7%, var(--well)) 25%, color-mix(in srgb, var(--accent) 16%, var(--well)) 50%, color-mix(in srgb, var(--accent) 7%, var(--well)) 75%)}}.skeleton{border-radius:var(--radius-sharp);background-size:200% 100%;animation:1.6s linear infinite shimmer}@keyframes blob-drift-1{0%{transform:translate(0)scale(1)}to{transform:translate(45px,-28px)scale(1.1)}}@keyframes blob-drift-2{0%{transform:translate(0)scale(1)}to{transform:translate(-32px,40px)scale(.92)}}@keyframes blob-drift-3{0%{transform:translate(0)scale(1)rotate(0)}to{transform:translate(22px,22px)scale(1.08)rotate(18deg)}}@keyframes xp-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--xp) 45%, transparent)}70%{box-shadow:0 0 0 10px color-mix(in srgb, var(--xp) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--xp) 0%, transparent)}}@keyframes streak-glow{0%,to{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--accent) 60%, transparent))}50%{filter:drop-shadow(0 0 10px color-mix(in srgb, var(--accent) 90%, transparent))}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.motion-content{opacity:1!important;filter:none!important;transform:none!important}.spotlight-card:before{opacity:0!important}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
