:root{--brand-50: #f4f2ff;--brand-100: #eae6ff;--brand-200: #d5ccff;--brand-300: #b5a6ff;--brand-400: #8f7bfa;--brand-500: #6e56f0;--brand-600: #5b43db;--brand-700: #4a35b8;--brand-800: #3b2b91;--brand-900: #2a2066;--gray-0: #ffffff;--gray-25: #fbfbfd;--gray-50: #f6f6fa;--gray-100: #eeeef4;--gray-200: #e3e3ec;--gray-300: #cfcfdb;--gray-400: #a3a3b5;--gray-500: #8a8aa0;--gray-600: #5e5e73;--gray-700: #43435a;--gray-800: #28283a;--gray-900: #15151f;--amber-50: #fff7e8;--amber-100: #feebc8;--amber-400: #fbbf24;--amber-500: #f59e0b;--amber-700: #b45309;--green-50: #ecfdf3;--green-100: #d1fadf;--green-600: #16a34a;--green-700: #15803d;--red-50: #fef2f2;--red-100: #fee2e2;--red-600: #dc2626;--red-700: #b91c1c;--sky-50: #eff6ff;--sky-100: #dbeafe;--sky-700: #1d4ed8;--rose-50: #fff1f3;--rose-100: #ffe0e6;--rose-700: #be123c;--bg: var(--gray-50);--surface: var(--gray-0);--surface-muted: var(--gray-25);--border: var(--gray-200);--border-strong: var(--gray-300);--text: var(--gray-900);--text-2: var(--gray-700);--muted: var(--gray-600);--subtle: var(--gray-500);--focus: 0 0 0 3px rgb(91 67 219 / .28);--font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-read: "Literata", "PT Serif", Georgia, serif;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.5rem;--fs-2xl: 1.875rem;--fs-display: clamp(2.25rem, 1.55rem + 2.8vw, 3.6rem);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--s-20: 80px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-full: 999px;--shadow-xs: 0 1px 2px rgb(21 21 31 / .04);--shadow-sm: 0 1px 3px rgb(21 21 31 / .06), 0 1px 2px rgb(21 21 31 / .03);--shadow-md: 0 6px 16px -4px rgb(21 21 31 / .08), 0 2px 4px -2px rgb(21 21 31 / .04);--shadow-lg: 0 24px 48px -16px rgb(42 32 102 / .22);--ease: cubic-bezier(.2, .8, .2, 1);--t-fast: .14s;--t-base: .22s;--sidebar-w: 256px;--content-max: 1120px;--c1: #7b5fd0;--c2: #2f9d63;--c3: #3f86bf;--c4: #a8791f;--c5: #d14a76;--ok-mark: #2f9d63;--warn-mark: #a8791f;--track: var(--brand-100);--grid: var(--gray-100);--card: var(--surface);--shell: var(--surface);--purple: var(--brand-600);--purple-deep: var(--brand-700);--purple-soft: var(--brand-50);--pink-ink: var(--rose-700);--green-ink: var(--green-700);--yellow-ink: var(--amber-700);--blue-ink: var(--sky-700);--radius: var(--r-lg);--radius-sm: var(--r-md);--radius-xl: var(--r-xl);--shadow: var(--shadow-md);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-base);line-height:1.55;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{margin:0 0 var(--s-2);color:var(--text);line-height:1.25;letter-spacing:-.015em;text-wrap:balance}h1{font-size:var(--fs-2xl);font-weight:700}h2{font-size:var(--fs-xl);font-weight:700}h3{font-size:var(--fs-lg);font-weight:650}h4{font-size:var(--fs-md);font-weight:650}p,ul,ol{margin:0 0 var(--s-3)}a{color:var(--brand-600)}img,svg{max-width:100%}strong{font-weight:600}::selection{background:var(--brand-100)}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:6px}.icon{flex:none;display:inline-block;vertical-align:middle}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}.nowrap{white-space:nowrap}.center-text{text-align:center}.error,.error-text{color:var(--red-700);font-weight:500}.notice,.ok{color:var(--green-700);font-weight:500}.warn{color:var(--amber-700)}.match{color:var(--brand-600);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.print-only{display:none}p.error,p.notice{padding:var(--s-2) var(--s-3);border-radius:var(--r-md);font-size:var(--fs-sm)}p.error{background:var(--red-50)}p.notice{background:var(--green-50)}.skip-link{position:fixed;top:var(--s-3);left:var(--s-3);z-index:100;padding:var(--s-2) var(--s-4);border-radius:var(--r-md);background:var(--gray-900);color:#fff;font-weight:600;text-decoration:none;transform:translateY(-160%);transition:transform var(--t-fast) var(--ease)}.skip-link:focus{transform:translateY(0)}.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:var(--s-6);padding:var(--s-5) var(--s-4);background:var(--surface);border-right:1px solid var(--border)}.sidebar-brand{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-1) var(--s-2);color:var(--text);font-size:1.0625rem;font-weight:700;letter-spacing:-.02em;text-decoration:none}.nav{display:grid;gap:2px}.nav-section{margin:var(--s-4) var(--s-3) var(--s-1);color:var(--subtle);font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.nav-item{position:relative;display:flex;align-items:center;gap:var(--s-3);min-height:40px;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);color:var(--text-2);font-weight:500;text-decoration:none;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.nav-item .icon{color:var(--subtle);transition:color var(--t-fast) var(--ease)}.nav-item:hover{background:var(--gray-50);color:var(--text)}.nav-item.active{background:var(--brand-50);color:var(--brand-700);font-weight:600}.nav-item.active .icon{color:var(--brand-600)}.sidebar-foot{margin-top:auto;display:grid;gap:var(--s-3)}.user-chip{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-lg)}.user-meta{min-width:0;flex:1;display:grid;line-height:1.3}.user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.user-role{color:var(--muted);font-size:var(--fs-xs)}.avatar{flex:none;width:36px;height:36px;display:grid;place-items:center;border-radius:var(--r-full);background:var(--brand-100);color:var(--brand-700);font-size:var(--fs-sm);font-weight:700}.avatar.lg{width:48px;height:48px;font-size:var(--fs-lg)}.xp-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-full);background:var(--amber-50);color:var(--amber-700);font-size:var(--fs-sm);font-weight:600;font-variant-numeric:tabular-nums}.xp-pill .icon{color:var(--amber-500)}.lang-switch-wrap{display:grid;gap:var(--s-1)}.lang-switch{display:inline-flex;width:max-content;padding:2px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface)}.lang-switch button{min-width:44px;min-height:32px;padding:0 var(--s-3);border:0;border-radius:var(--r-full);background:transparent;color:var(--muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.lang-switch button:hover:not(.on){color:var(--text)}.lang-switch button.on{background:var(--brand-600);color:#fff}.lang-switch button:focus-visible{outline:none;box-shadow:var(--focus)}.ai-lang{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin:0}.ai-lang select{width:auto;min-height:36px;padding-top:4px;padding-bottom:4px}.lang-badge{display:inline-flex;align-items:center;padding:1px 6px;border:1px solid var(--border-strong);border-radius:var(--r-sm);color:var(--text-2);font-size:.6875rem;font-weight:600;letter-spacing:.03em;line-height:1.5;white-space:nowrap}.main-col{min-width:0}.topbar{display:none}.content{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--s-8) var(--s-10) var(--s-16)}.page{animation:page-in var(--t-base) var(--ease) backwards}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-6)}.page-head h1,.page-head h2{margin:0}.page-head p{margin:var(--s-1) 0 0;color:var(--muted)}.eyebrow{display:inline-flex;align-items:center;gap:6px;margin-bottom:var(--s-2);color:var(--brand-600);font-size:var(--fs-sm);font-weight:600}.hero{display:flex;align-items:center;gap:var(--s-4);margin-bottom:var(--s-6);padding:var(--s-5) var(--s-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-xs)}.hero-emoji{flex:none;width:52px;height:52px;display:grid;place-items:center;border-radius:var(--r-lg);background:var(--brand-50);font-size:26px;line-height:1}.hero h2{margin:0 0 2px}.hero p{margin:0;color:var(--muted)}.hero .primary{margin-top:var(--s-3)}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}.btn,.primary,.secondary,.ghost,.danger,.small-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:42px;padding:0 var(--s-5);border:1px solid transparent;border-radius:var(--r-md);font-size:var(--fs-base);font-weight:600;line-height:1.2;text-align:center;text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.btn:active:not(:disabled),.primary:active:not(:disabled),.secondary:active:not(:disabled),.ghost:active:not(:disabled),.danger:active:not(:disabled),.small-btn:active:not(:disabled){transform:scale(.98)}.btn:focus-visible,.primary:focus-visible,.secondary:focus-visible,.ghost:focus-visible,.danger:focus-visible,.small-btn:focus-visible{outline:none;box-shadow:var(--focus)}.btn:disabled,.primary:disabled,.secondary:disabled,.ghost:disabled,.danger:disabled,.small-btn:disabled{opacity:.5;box-shadow:none}.btn-primary,.primary,.small-btn{background:var(--brand-600);color:#fff;box-shadow:var(--shadow-xs),inset 0 1px #ffffff1f}.btn-primary:hover:not(:disabled),.primary:hover:not(:disabled),.small-btn:hover:not(:disabled){background:var(--brand-700)}.btn-secondary,.secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled),.secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400)}.btn-ghost,.ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled),.ghost:hover:not(:disabled){background:var(--gray-100);color:var(--text)}.btn-danger,.danger{background:var(--surface);border-color:var(--red-100);color:var(--red-700)}.btn-danger:hover:not(:disabled),.danger:hover:not(:disabled){background:var(--red-50);border-color:var(--red-600)}.btn-sm,.small-btn{min-height:34px;padding:0 var(--s-3);font-size:var(--fs-sm);border-radius:10px}.btn-lg{min-height:50px;padding:0 var(--s-6);font-size:var(--fs-md)}.wide,.btn-block{width:100%}form .primary,.card>.primary,.card>.secondary,.auth .primary{margin-top:var(--s-4)}.link{display:inline-flex;align-items:center;gap:6px;padding:2px 0;border:0;background:none;color:var(--brand-600);font-weight:600;text-decoration:none;border-radius:4px;transition:color var(--t-fast) var(--ease)}.link:hover:not(:disabled){color:var(--brand-800);text-decoration:underline;text-underline-offset:3px}.link:disabled{color:var(--subtle);text-decoration:none}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--muted);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.icon-btn:hover:not(:disabled){background:var(--gray-100);color:var(--text)}.icon-btn:disabled{opacity:.4}.icon-btn.bordered{border-color:var(--border);background:var(--surface)}.btn-row,.timer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3)}.timer-actions{justify-content:center}label{display:block;margin:var(--s-4) 0 0;color:var(--text-2);font-size:var(--fs-sm);font-weight:600}input,textarea,select{width:100%;margin-top:6px;min-height:44px;padding:10px 14px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);color:var(--text);font:inherit;font-size:var(--fs-base);font-weight:400;box-shadow:var(--shadow-xs);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}textarea{min-height:96px;line-height:1.55;resize:vertical}select{cursor:pointer;appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235e5e73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}input::placeholder,textarea::placeholder{color:var(--gray-500)}input:hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--gray-400)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--brand-500);box-shadow:var(--focus)}input:disabled,textarea:disabled,select:disabled{background:var(--gray-50);color:var(--subtle)}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:0;margin:0;padding:0;accent-color:var(--brand-600);box-shadow:none}input[type=file]{padding:8px}fieldset{min-width:0;margin:0;padding:0;border:0}legend{padding:0}.field-hint{display:block;margin-top:6px;color:var(--muted);font-size:var(--fs-xs);font-weight:400}.check{display:flex;align-items:center;gap:var(--s-2);margin:var(--s-2) 0;font-weight:500}.check input{width:18px}.card{position:relative;margin:0 0 var(--s-4);padding:var(--s-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-xs)}.card>:last-child{margin-bottom:0}.card h3{margin-bottom:var(--s-2)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4)}.card-head h3{margin:0}a.card,.card-link{display:block;color:inherit;text-decoration:none;transition:transform var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease),border-color var(--t-base) var(--ease)}a.card:hover,.card-link:hover{transform:translateY(-2px);border-color:var(--gray-300);box-shadow:var(--shadow-md)}.small-card{padding:var(--s-4) 0;border-bottom:1px solid var(--border)}.card.small-card{padding:var(--s-4) var(--s-5);margin-bottom:var(--s-3);border-bottom:1px solid var(--border)}.small-card:last-child{border-bottom:0}.small-card p{margin:var(--s-1) 0}.alerts{background:var(--amber-50);border-color:var(--amber-100)}.section{margin-top:var(--s-10)}.narrow{max-width:720px}.section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s-2) var(--s-4);margin-bottom:var(--s-4)}.section-head h2,.section-head h3{margin:0}.section-head p{margin:0;color:var(--muted);font-size:var(--fs-sm)}.badge{display:inline-flex;align-items:center;gap:4px;margin-left:var(--s-2);padding:2px 8px;border-radius:var(--r-full);background:var(--gray-100);color:var(--text-2);font-size:var(--fs-xs);font-weight:600;line-height:1.5;vertical-align:middle;white-space:nowrap}.badge.brand{background:var(--brand-50);color:var(--brand-700)}.badge.amber{background:var(--amber-50);color:var(--amber-700)}.ok-badge,.badge.green{background:var(--green-50);color:var(--green-700)}.badge.red{background:var(--red-50);color:var(--red-700)}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:var(--s-3) 0}.tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-full);background:var(--gray-100);color:var(--text-2);font-size:var(--fs-xs);font-weight:500}.tag.hit{background:var(--brand-50);color:var(--brand-700)}.filters{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:var(--s-3) 0 var(--s-5)}.filter{display:inline-flex;align-items:center;min-height:36px;padding:0 var(--s-4);border:1px solid var(--border-strong);border-radius:var(--r-full);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);font-weight:500;white-space:nowrap;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.filter:hover{border-color:var(--gray-400);color:var(--text)}.filter.on{border-color:var(--gray-900);background:var(--gray-900);color:#fff}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-4);margin-bottom:var(--s-6)}.stat{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:var(--s-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-xs)}.stat .chip{order:0;width:36px;height:36px;display:grid;place-items:center;margin-bottom:var(--s-4);border-radius:10px;background:var(--brand-50);color:var(--brand-600);font-size:18px;line-height:1}.stat .cap{order:1;display:block;color:var(--muted);font-size:var(--fs-sm);font-weight:500}.stat .num{order:2;display:block;margin-top:2px;color:var(--text);font-size:1.75rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.stat .spark{order:3}.stat.k .chip{background:var(--rose-50);color:var(--rose-700)}.stat.y .chip{background:var(--amber-50);color:var(--amber-700)}.stat.b .chip{background:var(--sky-50);color:var(--sky-700)}.stat.g .chip{background:var(--green-50);color:var(--green-700)}.stat-foot{order:4;margin-top:var(--s-1);color:var(--muted);font-size:var(--fs-xs)}.progress{position:relative;height:8px;overflow:hidden;border-radius:var(--r-full);background:var(--gray-100)}.progress>span{display:block;height:100%;border-radius:inherit;background:var(--brand-600);transition:width .6s var(--ease)}.progress.amber>span{background:var(--amber-500)}.progress.green>span{background:var(--green-600)}.progress.sm{height:6px}.progress-dots{display:flex;gap:6px;margin-bottom:var(--s-5)}.progress-dots i{flex:1;height:4px;border-radius:2px;background:var(--gray-200);transition:background var(--t-base) var(--ease)}.progress-dots i.on{background:var(--brand-600)}.bar{font-family:ui-monospace,Cascadia Mono,monospace;letter-spacing:-1px;color:var(--brand-600)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table th,.table td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.table th{color:var(--muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}.table td{color:var(--text)}.table tbody tr{transition:background var(--t-fast) var(--ease)}.table tbody tr:hover{background:var(--gray-25)}.table tr:last-child td{border-bottom:0}.table td p{margin:2px 0 0}.card>.table{margin:calc(var(--s-2) * -1) 0}.table-wrap{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch}.empty{display:grid;justify-items:center;gap:var(--s-2);padding:var(--s-10) var(--s-6);border:1px dashed var(--border-strong);border-radius:var(--r-xl);background:var(--surface-muted);text-align:center}.empty-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:var(--s-2);border-radius:var(--r-lg);background:var(--brand-50);color:var(--brand-600)}.empty h3{margin:0}.empty p{max-width:44ch;margin:0;color:var(--muted)}.empty .btn,.empty .primary{margin-top:var(--s-3)}.center{min-height:60vh;display:grid;place-items:center;color:var(--muted)}.skeleton{position:relative;overflow:hidden;border-radius:var(--r-md);background:var(--gray-100)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgb(255 255 255 / .6),transparent);animation:shimmer 1.4s infinite}@keyframes shimmer{to{transform:translate(100%)}}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--s-5)}.skeleton-cover{aspect-ratio:3 / 4.2;border-radius:var(--r-md)}.skeleton-line{height:12px;margin-top:var(--s-3)}.skeleton-line.short{width:60%}.boot{min-height:100vh;display:grid;place-items:center;gap:var(--s-3);align-content:center;color:var(--muted)}.boot svg{animation:breathe 1.6s var(--ease) infinite}@keyframes breathe{50%{opacity:.55;transform:scale(.94)}}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:var(--s-6) var(--s-4);background:radial-gradient(60rem 30rem at 85% -10%,var(--brand-50),transparent 70%),var(--bg)}.auth{width:min(460px,100%);padding:var(--s-8);background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-lg)}.auth .logo{font-size:40px;line-height:1;margin-bottom:var(--s-3)}.auth h1{margin:0 0 var(--s-1);font-size:var(--fs-xl)}.auth>.link,.auth-foot{display:flex;justify-content:center;margin-top:var(--s-4)}.options{display:grid;gap:var(--s-3);margin:var(--s-5) 0}.option{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:56px;padding:var(--s-3) var(--s-4);border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--surface);color:var(--text);font-weight:500;text-align:left;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.option:after{content:"";width:18px;height:18px;flex:none;border:1.5px solid var(--gray-300);border-radius:var(--r-full);transition:all var(--t-fast) var(--ease)}.option:hover{border-color:var(--brand-400);background:var(--brand-50)}.option:hover:after{border-color:var(--brand-500);box-shadow:inset 0 0 0 4px var(--brand-500)}.option:active{transform:scale(.99)}.roles{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2);margin-top:var(--s-2)}.role{display:flex;align-items:center;gap:var(--s-2);min-height:48px;padding:var(--s-2) var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);font-weight:500;text-align:left;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.role .icon{color:var(--subtle)}.role:hover{border-color:var(--gray-400)}.role.active{border-color:var(--brand-500);background:var(--brand-50);color:var(--brand-700);box-shadow:inset 0 0 0 1px var(--brand-500)}.role.active .icon{color:var(--brand-600)}.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);background:var(--surface)}.login-main{display:grid;align-content:center;justify-items:center;padding:var(--s-10) var(--s-6)}.login-form{width:min(420px,100%)}.login-form .sidebar-brand{margin-bottom:var(--s-10);padding:0}.login-form h1{margin-bottom:var(--s-2)}.login-form>p{color:var(--muted)}.login-switch{margin-top:var(--s-6);color:var(--muted);text-align:center}.login-aside{position:relative;display:grid;align-content:center;padding:var(--s-16) var(--s-12);overflow:hidden;background:var(--brand-900);color:#fff}.login-aside:before{content:"";position:absolute;inset:auto -20% -40% auto;width:38rem;height:38rem;border-radius:50%;background:radial-gradient(closest-side,rgb(143 123 250 / .45),transparent)}.login-aside>*{position:relative}.login-aside h2{max-width:18ch;color:#fff;font-size:2rem;letter-spacing:-.025em}.login-aside p{max-width:44ch;color:#ffffffb8}.login-points{display:grid;gap:var(--s-4);margin:var(--s-8) 0 0;padding:0;list-style:none}.login-points li{display:flex;gap:var(--s-3);align-items:flex-start;color:#ffffffe6}.login-points .icon{margin-top:2px;color:var(--amber-400)}.login-back{position:absolute;top:var(--s-5);left:var(--s-5)}.lp{background:var(--surface);color:var(--text);overflow-x:hidden}.lp-container{width:min(1160px,100% - 2 * var(--s-6));margin:0 auto}.lp-nav{position:sticky;top:0;z-index:30;background:#ffffffd9;backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color var(--t-base) var(--ease)}.lp-nav.scrolled{border-bottom-color:var(--border)}.lp-nav-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);height:68px}.lp-links{display:flex;gap:var(--s-6)}.lp-links a{color:var(--text-2);font-size:var(--fs-sm);font-weight:500;text-decoration:none}.lp-links a:hover{color:var(--text)}.lp-actions{display:flex;align-items:center;gap:var(--s-2)}.lp-hero{position:relative;padding:var(--s-16) 0 var(--s-20)}.lp-hero:before{content:"";position:absolute;inset:-10% -10% auto;height:620px;background:radial-gradient(40rem 22rem at 78% 20%,var(--brand-50),transparent 70%),radial-gradient(28rem 16rem at 10% 0%,var(--amber-50),transparent 70%);pointer-events:none}.lp-hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:var(--s-12)}.lp-kicker{display:inline-flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-5);padding:6px 12px 6px 8px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);font-weight:500;box-shadow:var(--shadow-xs)}.lp-kicker .dot{width:22px;height:22px;display:grid;place-items:center;border-radius:var(--r-full);background:var(--brand-50);color:var(--brand-600)}.lp-hero h1{margin:0 0 var(--s-5);font-size:var(--fs-display);font-weight:750;letter-spacing:-.035em;line-height:1.06}.lp-hero h1 em{color:var(--brand-600);font-style:normal}.lp-lead{max-width:50ch;margin-bottom:var(--s-8);color:var(--muted);font-size:1.125rem;line-height:1.6}.lp-cta{display:flex;flex-wrap:wrap;gap:var(--s-3)}.lp-trust{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin-top:var(--s-8);color:var(--muted);font-size:var(--fs-sm)}.lp-trust span{display:inline-flex;align-items:center;gap:6px}.lp-trust .icon{color:var(--green-600)}.lp-visual{position:relative;min-height:460px}.lp-panel{position:absolute;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg)}.lp-panel-main{inset:20px 40px auto 0;padding:var(--s-5)}.lp-panel-main .lp-book{display:grid;grid-template-columns:92px 1fr;gap:var(--s-4);align-items:center}.lp-panel-main h4{margin:2px 0}.lp-chapters{display:grid;gap:var(--s-2);margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--border)}.lp-chapter{display:flex;align-items:center;gap:var(--s-3);font-size:var(--fs-sm)}.lp-chapter .state{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:var(--r-full);border:1.5px solid var(--gray-300)}.lp-chapter.done .state{border-color:var(--green-600);background:var(--green-600);color:#fff}.lp-chapter.now .state{border-color:var(--brand-600);box-shadow:inset 0 0 0 4px var(--brand-600)}.lp-chapter.done span:last-child{color:var(--muted)}.lp-panel-chat{right:0;bottom:30px;width:290px;padding:var(--s-4)}.lp-bubble{padding:10px 12px;border-radius:14px 14px 14px 4px;background:var(--gray-50);font-size:var(--fs-sm);line-height:1.5}.lp-bubble.me{margin:var(--s-2) 0 0 auto;width:fit-content;max-width:88%;border-radius:14px 14px 4px;background:var(--brand-600);color:#fff}.lp-who{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-2);font-size:var(--fs-xs);font-weight:600}.lp-who .avatar{width:26px;height:26px;font-size:12px}.lp-panel-streak{left:12px;bottom:0;display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4) var(--s-3) var(--s-3)}.lp-streak-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-md);background:var(--amber-50);color:var(--amber-500)}.lp-panel-streak strong{display:block;font-size:var(--fs-lg);line-height:1.1}.lp-days{display:flex;gap:4px;margin-top:6px}.lp-days i{width:16px;height:6px;border-radius:3px;background:var(--gray-200)}.lp-days i.on{background:var(--amber-500)}.lp-section{padding:var(--s-20) 0}.lp-section.alt{background:var(--gray-50);border-block:1px solid var(--border)}.lp-section-head{max-width:640px;margin:0 auto var(--s-12);text-align:center}.lp-section-head.left{margin-left:0;text-align:left}.lp-section-head h2{font-size:clamp(1.75rem,1.3rem + 1.6vw,2.5rem);letter-spacing:-.03em}.lp-section-head p{color:var(--muted);font-size:var(--fs-md)}.lp-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-5)}.lp-feature{padding:var(--s-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);transition:transform var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease)}.lp-feature:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.lp-feature-icon{width:44px;height:44px;display:grid;place-items:center;margin-bottom:var(--s-5);border-radius:var(--r-md);background:var(--brand-50);color:var(--brand-600)}.lp-feature-icon.amber{background:var(--amber-50);color:var(--amber-700)}.lp-feature-icon.green{background:var(--green-50);color:var(--green-700)}.lp-feature-icon.sky{background:var(--sky-50);color:var(--sky-700)}.lp-feature h3{font-size:var(--fs-md)}.lp-feature p{margin:0;color:var(--muted);font-size:var(--fs-sm)}.lp-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-5);counter-reset:step}.lp-step{position:relative;padding-top:var(--s-10)}.lp-step:before{counter-increment:step;content:counter(step);position:absolute;top:0;left:0;width:30px;height:30px;display:grid;place-items:center;border-radius:var(--r-full);background:var(--gray-900);color:#fff;font-size:var(--fs-sm);font-weight:600}.lp-step:after{content:"";position:absolute;top:15px;left:42px;right:-8px;height:1px;background:var(--border-strong)}.lp-step:last-child:after{display:none}.lp-step h3{font-size:var(--fs-md)}.lp-step p{margin:0;color:var(--muted);font-size:var(--fs-sm)}.lp-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:var(--s-16)}.lp-list{display:grid;gap:var(--s-5);margin:var(--s-6) 0 0;padding:0;list-style:none}.lp-list li{display:grid;grid-template-columns:36px 1fr;gap:var(--s-3)}.lp-list .lp-feature-icon{width:36px;height:36px;margin:0}.lp-list strong{display:block;margin-bottom:2px}.lp-list span{color:var(--muted);font-size:var(--fs-sm)}.lp-dash{padding:var(--s-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg)}.lp-dash-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s-4)}.lp-dash-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3);margin-bottom:var(--s-4)}.lp-kpi{padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md)}.lp-kpi span{display:block;color:var(--muted);font-size:var(--fs-xs)}.lp-kpi strong{font-size:var(--fs-xl);letter-spacing:-.02em}.lp-bars{display:grid;gap:var(--s-3)}.lp-bar-row{display:grid;grid-template-columns:110px 1fr 40px;align-items:center;gap:var(--s-3);font-size:var(--fs-sm)}.lp-bar-row b{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.lp-books{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s-5)}.lp-books .book-cover{transition:transform var(--t-base) var(--ease)}.lp-books figure{margin:0}.lp-books figure:hover .book-cover{transform:translateY(-4px) rotate(-1deg)}.lp-books figcaption{margin-top:var(--s-3);font-size:var(--fs-sm);font-weight:600;line-height:1.3}.lp-books figcaption span{display:block;color:var(--muted);font-weight:400}.lp-quote{max-width:820px;margin:0 auto;text-align:center}.lp-quote blockquote{margin:0 0 var(--s-5);font-family:var(--font-read);font-size:clamp(1.5rem,1.1rem + 1.4vw,2.1rem);line-height:1.35;letter-spacing:-.01em}.lp-quote cite{color:var(--muted);font-style:normal}.lp-habit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5);margin-top:var(--s-12)}.lp-habit div{padding:var(--s-5);border-radius:var(--r-xl);background:var(--gray-50);text-align:left}.lp-habit strong{display:block;margin-bottom:2px;font-size:1.75rem;letter-spacing:-.03em}.lp-habit span{color:var(--muted);font-size:var(--fs-sm)}.lp-final{padding:var(--s-16) var(--s-8);border-radius:28px;background:var(--brand-900);color:#fff;text-align:center;position:relative;overflow:hidden}.lp-final:before{content:"";position:absolute;inset:-50% 30% auto;height:500px;background:radial-gradient(closest-side,rgb(143 123 250 / .4),transparent)}.lp-final>*{position:relative}.lp-final h2{max-width:22ch;margin:0 auto var(--s-3);color:#fff;font-size:clamp(1.75rem,1.3rem + 1.6vw,2.5rem);letter-spacing:-.03em}.lp-final p{max-width:48ch;margin:0 auto var(--s-8);color:#ffffffb8}.lp-final .lp-cta{justify-content:center}.btn-light{background:#fff;color:var(--brand-800)}.btn-light:hover:not(:disabled){background:var(--brand-50)}.btn-outline-light{border-color:#ffffff4d;background:transparent;color:#fff}.btn-outline-light:hover:not(:disabled){border-color:#fff;background:#ffffff14}.lp-foot{padding:var(--s-10) 0;color:var(--muted);font-size:var(--fs-sm)}.lp-foot-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4)}.reveal{opacity:1}.js .reveal{opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease),transform .5s var(--ease)}.js .reveal.in{opacity:1;transform:none}.book-cover{position:relative;aspect-ratio:3 / 4.2;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:12% 10% 10% 16%;border-radius:6px 12px 12px 6px;color:#fff;box-shadow:0 1px 1px #00000014,0 10px 20px -8px #15151f59;isolation:isolate;container-type:inline-size}.book-cover:before{content:"";position:absolute;inset:0 auto 0 0;width:7%;background:linear-gradient(90deg,#00000047,#0000000d);z-index:-1}.book-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgb(255 255 255 / .18),transparent 40%);z-index:-1}.book-cover-title{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;font-size:clamp(.5rem,10.5cqi,1.45rem);font-weight:700;line-height:1.18;overflow-wrap:anywhere;letter-spacing:-.01em;text-shadow:0 1px 2px rgb(0 0 0 / .25)}.book-cover-author{font-size:clamp(.5rem,6.2cqi,.9rem);font-weight:500;opacity:.88;line-height:1.25}.book-cover.sm{padding:10% 8% 8% 14%;border-radius:4px 8px 8px 4px}.book-cover.sm .book-cover-title{-webkit-line-clamp:3}.book-cover.sm .book-cover-author{display:none}.book-cover-flag{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:var(--r-full);background:#ffffffeb;color:var(--brand-800);font-size:.625rem;font-weight:600;text-shadow:none}.home-greeting{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-6)}.home-greeting h1{margin:0;font-size:var(--fs-2xl)}.home-greeting p{margin:var(--s-1) 0 0;color:var(--muted)}.home-top{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--s-5);margin-bottom:var(--s-5)}.continue{display:grid;grid-template-columns:132px minmax(0,1fr);gap:var(--s-6);align-items:center;margin:0;padding:var(--s-6)}.continue h2{margin:var(--s-1) 0 2px;font-size:1.375rem}.continue-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-4);margin:var(--s-4) 0 var(--s-2);color:var(--muted);font-size:var(--fs-sm)}.continue-meta strong{color:var(--text)}.continue .btn-row{margin-top:var(--s-5)}.goal{display:flex;flex-direction:column;margin:0}.goal-body{display:flex;align-items:center;gap:var(--s-5);margin:var(--s-2) 0 var(--s-4)}.ring{position:relative;width:104px;height:104px;flex:none}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:10}.ring .ring-track{stroke:var(--gray-100)}.ring .ring-fill{stroke:var(--brand-600);stroke-linecap:round;transition:stroke-dashoffset .9s var(--ease)}.ring.done .ring-fill{stroke:var(--green-600)}.ring-label{position:absolute;inset:0;display:grid;place-content:center;text-align:center;line-height:1.1}.ring-label strong{font-size:1.5rem;letter-spacing:-.02em}.ring-label span{color:var(--muted);font-size:var(--fs-xs)}.goal .btn{margin-top:auto}.streak-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:var(--s-3)}.streak-day{display:grid;justify-items:center;gap:4px;color:var(--subtle);font-size:.6875rem;font-weight:500}.streak-day i{width:100%;max-width:28px;aspect-ratio:1;display:grid;place-items:center;border-radius:var(--r-full);background:var(--gray-100);color:#fff}.streak-day.on i{background:var(--amber-500)}.streak-day.today{color:var(--text);font-weight:700}.streak-day.today i{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--amber-400)}a.card.month-goal,.month-goal{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:var(--s-4);align-items:center;margin:0}.month-goal h3{margin:2px 0}.month-goal p{margin:0}.reader-card{display:flex;align-items:center;gap:var(--s-5)}.avatar-stage{flex:none;width:132px;height:132px;display:grid;place-items:center}.reader-avatar{display:block;max-width:100%}.avatar-meta{display:grid;gap:var(--s-2);min-width:0}.avatar-meta strong{font-size:var(--fs-lg)}.avatar-meta p{margin:0}.avatar-hand-picker{display:grid;gap:var(--s-2);margin-top:var(--s-2)}.avatar-hand-picker .filter{display:inline-flex;align-items:center;gap:var(--s-2)}.item-mark{display:block;flex:none}.avatar.avatar-figure{background:none;padding:0;overflow:hidden}@media(max-width:767px){.reader-card{flex-direction:column;align-items:flex-start}}.achievements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3)}@media(max-width:767px){.achievements{grid-template-columns:repeat(2,minmax(0,1fr))}}.achievement{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}.achievement-icon{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:var(--r-md);background:var(--amber-50);color:var(--amber-700)}.achievement strong{display:block;font-size:var(--fs-sm);line-height:1.3}.achievement span{color:var(--muted);font-size:var(--fs-xs)}.achievement.locked{background:var(--surface-muted)}.achievement.locked .achievement-icon{background:var(--gray-100);color:var(--subtle)}.achievement.locked strong{color:var(--muted)}.quick-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--s-3)}.quick-link{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--text);text-decoration:none;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.quick-link:hover{border-color:var(--gray-300);box-shadow:var(--shadow-sm)}.quick-link .icon:last-child{margin-left:auto;color:var(--subtle)}.quick-link strong{display:block;font-size:var(--fs-sm)}.quick-link span{color:var(--muted);font-size:var(--fs-xs)}.lib{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--s-6);align-items:start}.lib-main{min-width:0;display:grid;gap:var(--s-6)}.lib-main>section{display:grid;gap:var(--s-4)}.lib-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s-3)}.lib-top h2,.lib-top h1{margin:0}.lib-top p{margin:var(--s-1) 0 0}.assist-open,.assist-close{display:none}.lib-search{display:flex;align-items:center;gap:var(--s-2);min-height:48px;padding:0 var(--s-2) 0 var(--s-4);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.lib-search:focus-within{border-color:var(--brand-500);box-shadow:var(--focus)}.lib-search-icon{display:grid;color:var(--subtle);font-size:0}.lib-search input{flex:1;min-width:0;min-height:46px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;font-size:var(--fs-md)}.lib-search input:focus{box-shadow:none}.lib-search-clear{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--r-sm);background:var(--gray-100);color:var(--muted)}.lib-search-clear:hover{background:var(--gray-200);color:var(--text)}.genres{display:flex;gap:var(--s-2);overflow-x:auto;padding:2px 2px var(--s-2);margin:0 -2px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}.genres::-webkit-scrollbar{display:none}.genre{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 var(--s-4) 0 var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-full);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);font-weight:500;white-space:nowrap;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.genre:hover{border-color:var(--gray-400);color:var(--text)}.genre-icon{font-size:15px;line-height:1}.genre.on{border-color:var(--gray-900);background:var(--gray-900);color:#fff}.promo{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:var(--s-5);align-items:center;padding:var(--s-5) var(--s-6);background:var(--brand-50);border:1px solid var(--brand-100);border-radius:var(--r-xl);color:var(--text);text-decoration:none;transition:border-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease)}.promo:hover{border-color:var(--brand-200);box-shadow:var(--shadow-md)}.promo h3{margin:2px 0}.promo p{margin:0}.promo .small{color:var(--brand-700);font-weight:600}.promo-books{display:none}.promo-cta{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 var(--s-4);border-radius:var(--r-md);background:var(--brand-600);color:#fff;font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.row-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s-1) var(--s-3)}.row-head h2{margin:0;font-size:var(--fs-lg)}.row-head p{margin:0}.shelf{display:flex;gap:var(--s-5);overflow-x:auto;padding:var(--s-1) 2px var(--s-3);margin:0 -2px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}.shelf::-webkit-scrollbar{height:6px}.shelf::-webkit-scrollbar-thumb{border-radius:3px;background:var(--gray-300)}.shelf::-webkit-scrollbar-button{display:none}.shelf .bcard{flex:0 0 148px;scroll-snap-align:start}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--s-6) var(--s-5)}.bcard{display:grid;gap:2px;align-content:start;padding:0;color:var(--text);text-decoration:none;border-radius:var(--r-md)}.bcard .book-cover,.bcard .bcover{margin-bottom:var(--s-3);transition:transform var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease)}.bcard:hover .book-cover,.bcard:hover .bcover{transform:translateY(-4px);box-shadow:0 1px 1px #00000014,0 18px 28px -10px #15151f66}.bcard:focus-visible{outline-offset:4px}.bcard-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--fs-sm);font-weight:600;line-height:1.3}.bcard .muted.small{font-size:var(--fs-xs)}.bcard-foot{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:22px;margin-top:4px}.bcard-foot .badge{margin-left:0}.bcard-foot .match{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs)}.bcover{position:relative;aspect-ratio:3 / 4.2;border-radius:6px 12px 12px 6px;overflow:hidden}.lib-side{position:sticky;top:var(--s-6)}.assist{display:grid;gap:var(--s-3);padding:var(--s-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-sm)}.assist-head{display:flex;gap:var(--s-3);align-items:center;padding-bottom:var(--s-3);border-bottom:1px solid var(--border)}.assist-head p{margin:0}.assist-avatar{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:var(--r-md);background:var(--brand-50);font-size:18px}.assist-body{display:grid;align-content:start;gap:var(--s-2);max-height:44vh;overflow-y:auto;padding-right:2px}.bubble-books{display:flex;gap:var(--s-2);margin-top:var(--s-3);flex-wrap:wrap}.mini{display:grid;gap:4px;width:64px;color:var(--text);text-decoration:none}.mini-cover{height:88px;display:grid;place-items:center;border-radius:3px 6px 6px 3px;box-shadow:0 6px 12px -6px #15151f66;color:#fff;font-size:22px;font-weight:700;text-shadow:0 1px 3px rgb(0 0 0 / .3);transition:transform var(--t-fast) var(--ease)}.mini:hover .mini-cover{transform:translateY(-2px)}.mini-title{font-size:.6875rem;font-weight:600;line-height:1.25}.assist-quick{display:flex;flex-wrap:wrap;gap:6px}.assist-chip{min-height:32px;padding:0 var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-full);background:var(--surface);color:var(--text-2);font-size:var(--fs-xs);font-weight:500;transition:all var(--t-fast) var(--ease)}.assist-chip:hover{border-color:var(--brand-400);background:var(--brand-50);color:var(--brand-700)}.assist-input{display:flex;gap:var(--s-2)}.assist-input input{flex:1;min-width:0;margin:0;font-size:var(--fs-sm)}.assist-send{width:44px;flex:none;display:grid;place-items:center;border:0;border-radius:var(--r-md);background:var(--brand-600);color:#fff;transition:background var(--t-fast) var(--ease)}.assist-send:hover:not(:disabled){background:var(--brand-700)}.assist-send:disabled{opacity:.45}.assist-note{margin:0;font-size:var(--fs-xs)}.back{display:inline-flex;align-items:center;gap:6px;margin-bottom:var(--s-5);color:var(--muted);font-size:var(--fs-sm);font-weight:500;text-decoration:none}.back:hover{color:var(--text)}.book-hero{display:grid;grid-template-columns:200px minmax(0,1fr);gap:var(--s-8);align-items:start;margin-bottom:var(--s-8)}.book-hero h1{margin:var(--s-1) 0 var(--s-1);font-size:2rem;letter-spacing:-.025em}.book-hero .author{margin:0;color:var(--muted);font-size:var(--fs-md)}.book-blurb{max-width:62ch;margin:var(--s-5) 0 0;color:var(--text-2);font-size:var(--fs-md);line-height:1.65}.book-facts{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin-top:var(--s-5);padding-top:var(--s-5);border-top:1px solid var(--border);color:var(--muted);font-size:var(--fs-sm)}.book-facts span{display:inline-flex;align-items:center;gap:6px}.book-facts strong{color:var(--text)}.book-progress{display:grid;gap:var(--s-2);max-width:420px;margin-top:var(--s-5)}.book-progress-top{display:flex;justify-content:space-between;font-size:var(--fs-sm)}.inline-panel{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3)}.chapters{display:grid;gap:0;margin:0;padding:0;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden}.chapter{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:var(--s-4);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);transition:background var(--t-fast) var(--ease)}.chapter:last-child{border-bottom:0}.chapter:hover{background:var(--gray-25)}.chapter-num{width:32px;height:32px;display:grid;place-items:center;border:1.5px solid var(--gray-300);border-radius:var(--r-full);color:var(--muted);font-size:var(--fs-sm);font-weight:600}.chapter.done .chapter-num{border-color:var(--green-600);background:var(--green-600);color:#fff}.chapter.next .chapter-num{border-color:var(--brand-600);color:var(--brand-700);box-shadow:0 0 0 3px var(--brand-50)}.chapter strong{display:block}.chapter p{margin:2px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.modes{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);margin:var(--s-4) 0}.mode{display:grid;gap:var(--s-1);padding:var(--s-5);border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--surface);color:var(--text);text-align:left;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.mode:hover:not(:disabled){border-color:var(--brand-400);box-shadow:var(--shadow-md)}.mode.active{border-color:var(--brand-500);background:var(--brand-50)}.mode:disabled{opacity:.55}.mode-ico{width:40px;height:40px;display:grid;place-items:center;margin-bottom:var(--s-2);border-radius:var(--r-md);background:var(--brand-50);color:var(--brand-600);font-size:20px;line-height:1}.stepper{display:flex;align-items:center;gap:var(--s-2);margin:0;padding:0;list-style:none;color:var(--subtle);font-size:var(--fs-sm);font-weight:500}.stepper li{display:inline-flex;align-items:center;gap:var(--s-2)}.stepper li+li:before{content:"";width:24px;height:1px;margin-right:var(--s-1);background:var(--border-strong)}.stepper-dot{width:22px;height:22px;display:grid;place-items:center;border:1.5px solid var(--gray-300);border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600}.stepper li.current{color:var(--text);font-weight:600}.stepper li.current .stepper-dot{border-color:var(--brand-600);background:var(--brand-600);color:#fff}.stepper li.done{color:var(--muted)}.stepper li.done .stepper-dot{border-color:var(--green-600);background:var(--green-600);color:#fff}@media(max-width:479px){.stepper{flex-wrap:wrap;row-gap:var(--s-1)}.stepper li+li:before{width:12px}}.recap{background:var(--amber-50);border-color:var(--amber-100)}.keywords{display:grid;gap:var(--s-2);margin:var(--s-2) 0 0;padding:0;list-style:none}.keywords li{padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--gray-50);font-size:var(--fs-sm)}.keywords strong{color:var(--brand-700)}.purpose{margin-top:var(--s-5);padding:var(--s-4);border-left:3px solid var(--brand-600);border-radius:0 var(--r-md) var(--r-md) 0;background:var(--brand-50)}.purpose-label{display:inline-flex;align-items:center;gap:6px;color:var(--brand-700);font-size:var(--fs-xs);font-weight:700;letter-spacing:.02em;text-transform:uppercase}.purpose p{margin:var(--s-1) 0 0;font-size:var(--fs-md);font-weight:500}.timer-wrap{display:grid;justify-items:center;gap:var(--s-5);max-width:560px;margin:var(--s-6) auto;padding:var(--s-10) var(--s-6);background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-sm);text-align:center}.timer-wrap .purpose{width:100%;text-align:left}.timer{color:var(--text);font-size:clamp(3.5rem,2.5rem + 4vw,5.5rem);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1}.timer.done{color:var(--muted);font-size:2rem}.reader{display:grid;gap:var(--s-4);max-width:760px;margin:0 auto;padding-bottom:var(--s-8)}.reader-bar{position:sticky;top:var(--s-3);z-index:5;display:grid;gap:var(--s-2);padding:var(--s-3) var(--s-4);background:#ffffffeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.reader-bar-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.reader-clock{color:var(--text);font-size:var(--fs-lg);font-weight:700;font-variant-numeric:tabular-nums}.reader-clock.done{color:var(--muted)}.reader-tools{display:flex;align-items:center;gap:var(--s-1)}.reader-tools .link{min-width:36px;min-height:36px;justify-content:center;border-radius:var(--r-sm);color:var(--text-2);font-weight:600}.reader-tools .link:hover:not(:disabled){background:var(--gray-100);text-decoration:none}.reader-purpose{margin:0;padding:var(--s-2) var(--s-3)}.reader-purpose p{font-size:var(--fs-sm)}.reader-progress{height:4px;overflow:hidden;border-radius:4px;background:var(--gray-100)}.reader-progress span{display:block;height:100%;background:var(--brand-600);transition:width .3s var(--ease)}.resume{display:grid;gap:var(--s-3)}.daily-limit{margin:0 0 var(--s-3)}.reader-text{position:relative;overflow:hidden;padding:var(--s-10) clamp(var(--s-5),6vw,var(--s-16));border:1px solid var(--border);border-radius:var(--r-xl);background:#fffdf8;color:#2a2620;font-family:var(--font-read);line-height:1.8;user-select:none;-webkit-user-select:none}.reader-text.fs-0{font-size:1.0625rem}.reader-text.fs-1{font-size:1.25rem}.reader-text.fs-2{font-size:1.5rem}.reader-text p{margin:0 0 1.1em}.reader-text h3{margin:1.6em 0 .7em;font-family:var(--font)}.reader-text .verse{white-space:pre-line;font-style:italic}.reader-mark{position:absolute;inset:0;z-index:0;display:flex;flex-wrap:wrap;align-content:space-around;justify-content:space-around;gap:60px;transform:rotate(-24deg);opacity:.05;font-family:var(--font);font-size:14px;font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none}.reader-text>:not(.reader-mark){position:relative;z-index:1}.reader-end{height:1px}.reader.night .reader-text{background:#1b1a22;border-color:#2c2b36;color:#e6e1d8}.reader.night .reader-bar{background:#21202af0;border-color:#2c2b36}.reader.night .reader-clock,.reader.night .reader-tools .link{color:#ece8f7}.reader.night .reader-tools .link:hover:not(:disabled){background:#34324a}.reader.night .reader-bar .purpose{background:#2a2740}.reader.night .reader-bar .purpose p,.reader.night .reader-bar .purpose-label{color:#ece8f7}.reader.night .reader-progress{background:#34324a}.chat{display:grid;align-content:start;gap:var(--s-3);min-height:280px;max-height:56vh;margin:var(--s-5) 0;padding:var(--s-5);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl)}.bubble{max-width:78%;padding:10px 14px;border-radius:16px;font-size:var(--fs-base);line-height:1.55;white-space:pre-wrap;animation:bubble-in var(--t-base) var(--ease) both}@keyframes bubble-in{0%{opacity:0;transform:translateY(4px)}}.bubble p{margin:0}.bubble.me{justify-self:end;border-bottom-right-radius:4px;background:var(--brand-600);color:#fff}.bubble.ai,.bubble.bot{justify-self:start;border-bottom-left-radius:4px;background:var(--gray-100);color:var(--text)}.bubble.typing{color:var(--muted);letter-spacing:3px}.bubble.muted{color:var(--muted)}.composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-2);align-items:end;padding:var(--s-2);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.composer:focus-within{border-color:var(--brand-500);box-shadow:var(--focus)}.composer textarea{min-height:48px;margin:0;padding:var(--s-2);border:0;box-shadow:none;resize:none}.composer textarea:focus{box-shadow:none}.composer .primary{margin:0}.post{margin-bottom:var(--s-4);padding:var(--s-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-xs)}.post header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-3);margin-bottom:var(--s-3)}.post header strong{color:var(--text)}.post>p{margin-bottom:var(--s-4);font-size:var(--fs-md);line-height:1.65}.like{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 var(--s-3);border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums;transition:all var(--t-fast) var(--ease)}.like:hover{border-color:var(--rose-100);color:var(--rose-700)}.like.on{border-color:var(--rose-100);background:var(--rose-50);color:var(--rose-700)}.like:active{transform:scale(.95)}.campaign{display:block;background:var(--brand-50);border-color:var(--brand-100);color:inherit;text-decoration:none}.campaign h3{margin:var(--s-1) 0;color:var(--text)}.campaign p{margin:0}.debate-a{border-left:3px solid var(--c1)}.debate-b{border-left:3px solid var(--c3)}.rating-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3)}.rating-head h2{margin:0}.rating-head select{width:auto;margin:0}.rating-scroll{overflow-x:auto}.rating-table th.num,.rating-table td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.rating-table .rating-place{width:56px;font-weight:700;font-variant-numeric:tabular-nums}.rating-table tbody tr:nth-child(1) .rating-place{color:var(--amber-700)}.rating-table tr.mine td{background:var(--brand-50);color:var(--brand-800);font-weight:600}.rating-mine{margin:var(--s-4) 0 0;padding:var(--s-3);border-radius:var(--r-md);background:var(--gray-50);font-weight:500}.portfolio-head{margin-bottom:var(--s-5)}.portfolio-table td,.portfolio-table th{font-size:var(--fs-sm)}.teacher-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4);align-items:start;margin-bottom:var(--s-4)}.teacher-grid>.card{margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s-4)}@media(max-width:767px){.teacher-grid,.form-grid{grid-template-columns:1fr}}.code{display:inline-block;padding:2px 10px;border-radius:var(--r-sm);background:var(--brand-50);color:var(--brand-700);font-family:ui-monospace,Cascadia Mono,SFMono-Regular,monospace;font-size:1.375rem;font-weight:700;letter-spacing:.18em}.invite{display:block;margin:var(--s-2) 0;padding:var(--s-3);overflow-wrap:anywhere;border:1px solid var(--border);border-radius:var(--r-md);background:var(--gray-50);color:var(--text-2);font-family:ui-monospace,Cascadia Mono,monospace;font-size:var(--fs-xs)}.loan-row,.request-row,.prep-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--border)}.loan-row:last-child,.request-row:last-child,.prep-row:last-child{border-bottom:0}.loan-row p{margin:2px 0 0}.request-row .tags{margin:var(--s-1) 0 0}.prep-row{padding:var(--s-2) 0}.stock-free{color:var(--green-700);font-size:var(--fs-md)}.stock-out{color:var(--rose-700);font-size:var(--fs-md)}details>summary{cursor:pointer;color:var(--muted);font-size:var(--fs-sm);font-weight:500;list-style-position:inside}details>summary:hover{color:var(--text)}.prep-redo{margin-top:var(--s-4)}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:var(--s-4);color:var(--muted);font-size:var(--fs-sm);font-weight:500}.crumbs .link{padding:0;font-weight:500}.report-tabs{display:flex;gap:var(--s-2);overflow-x:auto;margin-bottom:var(--s-5);padding-bottom:var(--s-2);scrollbar-width:thin}.report-tabs .filter{flex:0 0 auto}.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--s-4);margin-bottom:var(--s-4)}.chart{min-width:0;padding:var(--s-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-xs)}.chart h4{margin:0 0 var(--s-3);font-size:var(--fs-base);font-weight:600}.chart svg,.meter svg{width:100%;height:auto;display:block}.donut-svg{max-width:210px;margin:0 auto}.axis{fill:var(--muted);font-size:11px;font-weight:500;font-variant-numeric:tabular-nums}.axis.strong{fill:var(--text);font-size:12px;font-weight:700}.donut-num{fill:var(--text);font-size:22px;font-weight:700;text-anchor:middle}.chart-legend{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);margin:var(--s-3) 0 0;padding:0;list-style:none;color:var(--muted);font-size:var(--fs-xs);font-weight:500}.chart-legend i{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:3px}.chart-legend i.key-line{width:14px;height:3px;border-radius:2px;vertical-align:middle}.chart-note{margin:var(--s-3) 0 0}.chart-table{margin-top:var(--s-3)}.no-data{margin:0;color:var(--muted);font-weight:500}.meters{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--s-4);margin-bottom:var(--s-5)}.meter{padding:var(--s-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-xs)}.meter-label{display:block;color:var(--muted);font-size:var(--fs-sm);font-weight:500}.meter-value{display:block;font-size:1.75rem;font-weight:700;letter-spacing:-.02em;line-height:1.25}.meter-value.none{color:var(--muted);font-size:var(--fs-md)}.meter-bar{height:14px;margin:var(--s-2) 0 var(--s-1)}.meter-foot{display:block}.top-bars{display:grid;gap:2px;margin:0;padding:0;list-style:none}.meter-row{display:grid;grid-template-columns:1fr 110px 62px;gap:var(--s-3);align-items:center;width:100%;padding:var(--s-2);border:0;border-radius:var(--r-sm);background:none;color:inherit;font:inherit;text-align:left}button.meter-row:hover{background:var(--gray-50)}.top-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.top-meter{height:10px}.top-value{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.spark{height:22px;margin-top:var(--s-2)}.pickable{cursor:pointer}.passport-wrap{min-height:100vh;display:grid;justify-items:center;align-content:start;gap:var(--s-4);padding:var(--s-8) var(--s-4) var(--s-10)}.passport{width:min(780px,100%);padding:var(--s-10);background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-md)}.passport-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-5);margin-bottom:var(--s-5);padding-bottom:var(--s-5);border-bottom:1px solid var(--border)}.passport-head h1{margin:var(--s-1) 0 var(--s-2);font-size:var(--fs-2xl)}.passport-kicker{margin:0;color:var(--brand-600);font-size:var(--fs-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase}.passport-qr{display:grid;justify-items:center;gap:var(--s-1);text-align:center}.passport-qr img{width:120px;height:120px}.passport-note{margin:var(--s-5) 0;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--gray-50);font-size:var(--fs-sm)}.passport-table td{vertical-align:top}.passport-summary{margin:var(--s-1) 0 0}.passport-foot{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--border)}.passport-actions{display:flex;align-items:center;gap:var(--s-4)}@media(max-width:1100px){.lib{grid-template-columns:1fr}.assist-open{display:inline-flex}.lib-side{position:fixed;inset:auto 0 0;z-index:60;max-height:88vh;overflow-y:auto;padding:var(--s-3) var(--s-3) calc(var(--s-4) + env(safe-area-inset-bottom));background:var(--surface);border-radius:24px 24px 0 0;box-shadow:0 -20px 40px #15151f2e;transform:translateY(101%);transition:transform var(--t-base) var(--ease)}.lib-side.open{transform:translateY(0)}.lib-side .assist{border:0;box-shadow:none;padding:var(--s-2)}.assist-close{display:grid;place-items:center;width:36px;height:36px;margin-left:auto;border:0;border-radius:var(--r-full);background:var(--gray-100);color:var(--muted)}.assist-body{max-height:42vh}.lp-features{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-books{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1023px){:root{--sidebar-w: 76px}.sidebar{align-items:center;padding:var(--s-5) var(--s-3)}.sidebar .sidebar-brand span,.nav-label,.nav-section,.user-meta,.xp-pill span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sidebar .sidebar-brand{padding:0}.nav{justify-items:center}.nav-item{justify-content:center;width:48px;height:48px;padding:0}.sidebar-foot{justify-items:center}.user-chip{padding:0;border:0;flex-direction:column}.xp-pill{padding:4px 8px}.sidebar .lang-switch{flex-direction:column;border-radius:var(--r-lg)}.sidebar .lang-switch button{min-width:48px;padding:0 var(--s-2);border-radius:var(--r-md)}.content{padding:var(--s-6) var(--s-6) var(--s-12)}.home-top,.login{grid-template-columns:1fr}.login-aside{display:none}.lp-hero-grid,.lp-split{grid-template-columns:1fr;gap:var(--s-10)}.lp-visual{max-width:560px;width:100%;margin:0 auto}.lp-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--s-8)}.lp-step:after{display:none}.lp-links{display:none}}@media(max-width:767px){body{font-size:var(--fs-base)}h1{font-size:1.625rem}h2{font-size:1.3125rem}.shell{grid-template-columns:1fr;padding-bottom:calc(68px + env(safe-area-inset-bottom))}.sidebar{position:fixed;inset:auto 0 0;z-index:40;height:auto;flex-direction:row;padding:0 var(--s-1) env(safe-area-inset-bottom);border-right:0;border-top:1px solid var(--border);background:#fffffff5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.sidebar .sidebar-brand,.sidebar-foot{display:none}.nav{display:flex;width:100%;justify-content:space-around;gap:0}.nav-item{flex:1;flex-direction:column;gap:3px;width:auto;height:64px;min-height:64px;border-radius:0;background:none!important;font-size:.6875rem;font-weight:500}.nav-item .nav-label{position:static;width:auto;height:auto;overflow:visible;clip:auto;max-width:72px;text-overflow:ellipsis;white-space:nowrap;overflow-x:hidden}.nav-item.active:before{content:"";position:absolute;top:0;left:30%;right:30%;height:2px;border-radius:0 0 2px 2px;background:var(--brand-600)}.nav-item.desktop-only{display:none}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);height:56px;padding:0 var(--s-4);background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.topbar .sidebar-brand{display:flex;padding:0;font-size:var(--fs-md)}.topbar .sidebar-brand span{position:static;width:auto;height:auto;overflow:visible;clip:auto}.topbar-right{display:flex;align-items:center;gap:var(--s-2)}.topbar .xp-pill span{position:static;width:auto;height:auto;clip:auto;overflow:visible}.content{padding:var(--s-5) var(--s-4) var(--s-8)}.hero{padding:var(--s-4);gap:var(--s-3)}.hero-emoji{width:44px;height:44px;font-size:22px}.stats{grid-template-columns:1fr 1fr;gap:var(--s-3)}.stat{padding:var(--s-4)}.stat .chip{margin-bottom:var(--s-3)}.stat .num{font-size:1.5rem}.card{padding:var(--s-5);border-radius:var(--r-lg)}.table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.table th,.table td{padding:10px;white-space:nowrap}.home-greeting h1{font-size:1.5rem}.continue{grid-template-columns:92px minmax(0,1fr);gap:var(--s-4);padding:var(--s-5)}.continue h2{font-size:var(--fs-lg)}.continue .btn-row .btn{flex:1}.month-goal{grid-template-columns:52px minmax(0,1fr)}.month-goal>.btn{grid-column:1 / -1}.promo{grid-template-columns:56px minmax(0,1fr);padding:var(--s-4)}.promo-cta{grid-column:1 / -1;justify-content:center}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5) var(--s-4)}.shelf .bcard{flex-basis:128px}.book-hero{grid-template-columns:112px minmax(0,1fr);gap:var(--s-5)}.book-hero h1{font-size:1.5rem}.book-hero .book-blurb,.book-hero .book-facts,.book-hero .btn-row{grid-column:1 / -1}.modes{grid-template-columns:1fr}.chapter{grid-template-columns:32px minmax(0,1fr);padding:var(--s-4)}.chapter>:last-child{grid-column:2;justify-self:start}.bubble{max-width:88%}.chat{max-height:none;padding:var(--s-4)}.reader-text{padding:var(--s-6) var(--s-5);border-radius:var(--r-lg)}.reader-bar{top:64px}.timer-wrap{padding:var(--s-8) var(--s-4)}.code{font-size:1.125rem}.auth{padding:var(--s-6) var(--s-5);border-radius:var(--r-xl)}.roles{grid-template-columns:1fr 1fr}.lp-nav-inner{height:60px}.lp-actions .btn-ghost{display:none}.lp-hero{padding:var(--s-10) 0 var(--s-12)}.lp-lead{font-size:var(--fs-md)}.lp-cta .btn{flex:1 1 auto}.lp-visual{min-height:0;display:grid}.lp-panel{position:relative;inset:auto}.lp-panel-chat{width:auto;margin:-20px 0 0 14%}.lp-panel-streak{width:fit-content;margin:-16px 0 0 4px}.lp-section{padding:var(--s-16) 0}.lp-features,.lp-steps,.lp-habit{grid-template-columns:1fr}.lp-books{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}.lp-dash-kpis{grid-template-columns:1fr 1fr 1fr}.lp-bar-row{grid-template-columns:84px 1fr 36px}.lp-final{padding:var(--s-12) var(--s-5);border-radius:20px}.passport{padding:var(--s-6) var(--s-4)}.passport-head{flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.js .reveal{opacity:1;transform:none}}@media print{@page{size:A4 portrait;margin:12mm}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{background:#fff}.no-print,.sidebar,.topbar,.skip-link,.report-tabs,.filters,.check,button,.small-btn{display:none!important}.print-only{display:block!important}.shell{display:block;min-height:0;padding:0}.content{max-width:none;padding:0}.page{animation:none}.hero{border:0;border-radius:0;box-shadow:none;padding:var(--s-2) 0}.report-grid{grid-template-columns:1fr 1fr;gap:8mm}.meters{grid-template-columns:repeat(3,1fr);gap:6px}.stats{grid-template-columns:repeat(4,1fr);gap:6px}.card,.chart,.meter,.stat{box-shadow:none;padding:10px}.chart svg{max-height:60mm}.chart-table{display:none}.card,.stat,.chart,.meter,.table tr,.passport-table tr{break-inside:avoid}h3{break-after:avoid}.report-page-break{break-before:page}.passport-wrap{padding:0;min-height:0}.passport{width:100%;border:0;border-radius:0;box-shadow:none;padding:0}a[href]:after{content:""}}.cup-rules{margin-top:var(--s-5)}.cup-rules summary{cursor:pointer;color:var(--text-2);font-size:var(--fs-sm)}.cup-rules ul{margin:var(--s-2) 0 0;padding-left:var(--s-5);display:grid;gap:var(--s-1)}.login-brand-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3)}.pdf-status{margin:var(--s-4) 0;padding:var(--s-4);background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--r-lg)}.pdf-status p{margin:0 0 var(--s-2)}.pdf-chapters{list-style:none;margin:var(--s-3) 0 0;padding:0}.pdf-chapter{margin-bottom:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}.pdf-chapter.has-problem{border-color:var(--red-600)}.pdf-chapter-head{display:flex;align-items:center;gap:var(--s-2)}.pdf-chapter-head input{flex:1;min-width:0;font-weight:600}.pdf-chapter-n{color:var(--muted);font-variant-numeric:tabular-nums}.pdf-chapter p.small{margin:var(--s-2) 0}.pdf-preview{color:var(--text-2);white-space:pre-line;overflow-wrap:anywhere;max-height:7.5em;overflow:hidden}.pdf-chapter textarea{width:100%;font-family:var(--font-read);line-height:1.55}.pdf-actions{flex-wrap:wrap;gap:var(--s-2)}.pipeline{list-style:none;margin:var(--s-4) 0;padding:0;display:grid;gap:2px}.pipeline-step{position:relative;display:grid;grid-template-columns:28px 1fr;column-gap:var(--s-2);align-items:baseline;padding:4px 0}.pipeline-step:not(:last-child):after{content:"";position:absolute;left:13px;top:26px;bottom:-6px;width:2px;background:var(--border)}.pipeline-icon{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:var(--r-full);background:var(--gray-100);color:var(--muted);font-size:var(--fs-sm);font-weight:700}.pipeline-step.done .pipeline-icon{background:var(--green-50);color:var(--green-700)}.pipeline-step.active .pipeline-icon{background:var(--brand-50);color:var(--brand-700)}.pipeline-step.warn .pipeline-icon{background:var(--amber-50);color:var(--amber-700)}.pipeline-step.failed .pipeline-icon{background:var(--red-50);color:var(--red-700)}.pipeline-label{font-weight:600}.pipeline-step.pending .pipeline-label{color:var(--muted);font-weight:500}.pipeline-note{grid-column:2;color:var(--muted);font-size:var(--fs-sm);overflow-wrap:anywhere}.pdf-draft-head{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}.pdf-cover{width:44px;height:60px;flex:none;border-radius:var(--r-sm);background:linear-gradient(150deg,#6e56f0,#2a2066)}.pdf-save{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap}.pdf-save.saved{color:var(--green-700)}.pdf-save.error{color:var(--red-700)}.pdf-summary{display:grid;grid-template-columns:minmax(110px,max-content) 1fr;gap:var(--s-2) var(--s-4);margin:var(--s-4) 0 0;align-items:center}.pdf-summary dt{color:var(--muted);font-size:var(--fs-sm)}.pdf-summary dd{margin:0;min-width:0;overflow-wrap:anywhere}.pdf-summary input,.pdf-summary select{width:100%;max-width:420px}.pdf-summary input.needs-input{border-color:var(--red-600)}.pdf-issues{margin-top:var(--s-4);display:grid;gap:var(--s-2)}.pdf-issue{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);font-size:var(--fs-sm);background:var(--amber-50);color:var(--amber-700)}.pdf-issue.error{background:var(--red-50);color:var(--red-700)}.pdf-chapter .pdf-issue{margin:var(--s-2) 0}.pdf-chapter.has-warning{border-color:var(--amber-400)}.pdf-materials{margin:var(--s-2) 0;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--surface-muted)}.pdf-materials summary{cursor:pointer;font-weight:600;font-size:var(--fs-sm)}.pdf-materials ul{margin:0 0 var(--s-2);padding-left:var(--s-5)}.secondary-actions{margin-top:var(--s-2)}.pdf-unfinished{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}.pdf-unfinished li{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;padding:var(--s-2) var(--s-3);border:1px solid var(--border);border-radius:var(--r-md)}.pdf-attach{margin-top:var(--s-4)}.pdf-attach summary{cursor:pointer;font-weight:600}.pdf-attach label.btn input{display:none}@media(max-width:560px){.pdf-summary{grid-template-columns:1fr;gap:2px}.pdf-summary dd{margin-bottom:var(--s-2)}}.student-id{display:inline-flex;flex-direction:column;line-height:1.25;min-width:0}.student-id.inline{flex-direction:row;align-items:baseline;gap:6px}.student-name{font-weight:600;overflow-wrap:anywhere}.student-name.missing{font-weight:500;color:var(--amber-700);font-style:italic}.student-nick{color:var(--muted);font-size:var(--fs-sm)}.student-open{all:unset;cursor:pointer;display:inline-block;border-radius:var(--r-sm)}.student-open:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.student-open:hover .student-name{text-decoration:underline}.identity-row td{background:var(--surface-muted)}.identity-card{display:grid;gap:var(--s-2);padding:var(--s-3) 0}.identity-card-head{display:flex;align-items:baseline;gap:var(--s-3);flex-wrap:wrap}.identity-card-head .student-name{font-size:var(--fs-md)}.identity-stats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);font-size:var(--fs-sm)}.name-editor{margin:var(--s-2) 0;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.roster-filters{margin:var(--s-2) 0 var(--s-3);align-items:center}.roster-filters input[type=search]{flex:1 1 240px;min-width:0}.table-scroll{overflow-x:auto}[data-kind]{--ach: var(--brand-600);--ach-soft: var(--brand-50)}[data-kind=streak],[data-kind=record]{--ach: var(--amber-700);--ach-soft: var(--amber-50)}[data-kind=xp]{--ach: #a16207;--ach-soft: #fefce8}[data-kind=minutes]{--ach: var(--sky-700);--ach-soft: var(--sky-50)}[data-kind=challenge]{--ach: var(--green-700);--ach-soft: var(--green-50)}.unlock-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s-4);margin-bottom:var(--s-6);padding:var(--s-5);border:1px solid var(--border);border-radius:var(--r-xl);background:radial-gradient(120% 140% at 100% 0%,rgb(110 86 240 / .14),transparent 60%),var(--surface);box-shadow:var(--shadow-md);animation:unlock-in .42s var(--ease) both}.unlock-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r-lg);background:var(--ach-soft);color:var(--ach)}.unlock-text{display:grid;gap:2px;min-width:0}.unlock-text strong{font-size:var(--fs-lg);line-height:1.35;overflow-wrap:anywhere}@keyframes unlock-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}@media(max-width:767px){.unlock-banner{grid-template-columns:auto 1fr}.unlock-actions{grid-column:1 / -1}.unlock-actions .btn{flex:1 1 auto}}.ach-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s-3)}.ach-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s-3);min-width:0;padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}.ach-item strong{min-width:0;font-size:var(--fs-sm);line-height:1.35;overflow-wrap:anywhere}.ach-item-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-md);background:var(--ach-soft);color:var(--ach)}.ach-item.locked{background:var(--surface-muted)}.ach-item.locked .ach-item-icon{background:var(--gray-100);color:var(--subtle)}.ach-item-next{display:grid;gap:6px;min-width:0}.ach-item.locked>.small{font-variant-numeric:tabular-nums;white-space:nowrap}.book-done{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);margin:var(--s-4) 0;padding:var(--s-4);border-radius:var(--r-lg);background:var(--green-50)}.book-done>div{display:grid;gap:2px;min-width:0}.book-done strong{overflow-wrap:anywhere}.card.book-done{background:radial-gradient(120% 140% at 100% 0%,rgb(22 163 74 / .1),transparent 60%),var(--surface)}.share-dialog{width:min(960px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:none;border-radius:var(--r-xl);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.share-dialog::backdrop{background:#0a081e9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.share-dialog[open]{animation:unlock-in .26s var(--ease) both}.share-body{display:grid;gap:var(--s-4);padding:var(--s-5)}.share-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}.share-head h2{margin:4px 0 0;font-size:var(--fs-xl);overflow-wrap:anywhere}.share-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-6);align-items:start}.share-preview{display:grid;justify-items:center;gap:var(--s-2)}.share-preview canvas{display:block;height:min(68dvh,620px);width:auto;aspect-ratio:9 / 16;border-radius:22px;background:#120d33;box-shadow:0 18px 40px -12px #120d338c}.share-actions{display:grid;gap:var(--s-4);align-content:start;min-width:0}.share-actions section{display:grid;gap:var(--s-2)}.share-actions h3{margin:0;font-size:var(--fs-md)}.share-actions textarea{width:100%;margin-top:4px}.share-lang{display:grid;gap:6px}.share-hint{margin:0}.share-feed{padding-top:var(--s-4);border-top:1px solid var(--border)}.share-progress{display:grid;gap:6px}.share-progress progress{width:100%;height:8px;accent-color:var(--brand-600)}.share-privacy{display:flex;gap:6px;margin:0}.share-privacy svg{flex:none;margin-top:2px}@media(max-width:767px){.share-dialog{width:100vw;max-height:100dvh;height:100dvh;margin:0;border-radius:0}.share-body{padding:var(--s-4)}.share-grid{grid-template-columns:minmax(0,1fr);gap:var(--s-4)}.share-preview canvas{height:min(56dvh,520px);max-width:100%}.share-actions .btn{min-height:48px}}.ach-mini{display:grid;gap:var(--s-3);margin:var(--s-2) 0 var(--s-3);padding:var(--s-5);border-radius:var(--r-xl);background:radial-gradient(110% 120% at 100% 0%,rgb(124 92 255 / .45),transparent 60%),linear-gradient(160deg,#1d1550,#0d0b24);color:#fff;overflow:hidden}.ach-mini-hero{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:var(--s-3)}.ach-mini-icon{grid-row:span 2;display:grid;place-items:center;width:48px;height:48px;border-radius:var(--r-lg);background:#ffffff1a;color:#fcd34d}.ach-mini[data-kind=books] .ach-mini-icon,.ach-mini[data-kind=book] .ach-mini-icon{color:#c4b5fd}.ach-mini[data-kind=minutes] .ach-mini-icon{color:#7dd3fc}.ach-mini[data-kind=challenge] .ach-mini-icon{color:#86efac}.ach-mini-value{font-size:clamp(2rem,1.4rem + 3vw,2.75rem);font-weight:800;line-height:1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.ach-mini-book{font-family:var(--font-read);font-size:var(--fs-xl);font-weight:500;line-height:1.25;overflow-wrap:anywhere}.ach-mini-label{color:#ebe8ffb8;font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.ach-mini-stats{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:0;padding:0;list-style:none}.ach-mini-stats li{padding:6px 12px;border:1px solid rgb(255 255 255 / .14);border-radius:var(--r-full);background:#ffffff0f;color:#ebe8ffcc;font-size:var(--fs-sm)}.ach-mini-stats strong{color:#fff;font-variant-numeric:tabular-nums}.ach-mini-phrase{margin:0;font-family:var(--font-read);font-style:italic;font-size:var(--fs-md);line-height:1.5}.post-type{display:block;margin-bottom:var(--s-2);color:var(--brand-700);font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.post-type .muted{font-weight:500;letter-spacing:0;text-transform:none}.my-posts{display:grid;gap:var(--s-3);margin-bottom:var(--s-4)}.notice-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);font-weight:500}.notice-bar span{flex:1 1 220px}.notice-bar.is-ok{background:var(--green-50);color:var(--green-700)}.notice-bar.is-warn{background:var(--amber-50);color:var(--amber-700)}.my-posts-card>summary,.recommend-card>summary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);color:var(--text);list-style:none}.my-posts-card>summary::-webkit-details-marker,.recommend-card>summary::-webkit-details-marker{display:none}.my-posts-card>summary h2,.recommend-card>summary h2{margin:0;font-size:var(--fs-lg)}.my-posts-card[open]>summary,.recommend-card[open]>summary{margin-bottom:var(--s-3)}.recommend-card{margin-bottom:var(--s-4)}.recommend-card select,.recommend-card textarea{width:100%;margin-top:4px}.my-post{padding:var(--s-4) 0;border-top:1px solid var(--border)}.my-post>p{margin:var(--s-2) 0}.status-chip{display:inline-flex;align-items:center;gap:6px;margin-bottom:var(--s-2);padding:4px 10px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:700}.status-chip.pending{background:var(--amber-50);color:var(--amber-700)}.status-chip.approved{background:var(--green-50);color:var(--green-700)}.status-chip.rejected{background:var(--red-50);color:var(--red-700)}.status-chip.removed{background:var(--gray-100);color:var(--muted)}.my-post-edit{display:grid;gap:var(--s-2)}.my-post-edit textarea{width:100%}.moderation{grid-column:1 / -1}.mod-tabs{margin:var(--s-3) 0}.mod-count{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:var(--r-full);background:var(--amber-400);color:var(--gray-900);font-size:var(--fs-xs);font-weight:700}.mod-item{display:grid;gap:var(--s-2);padding:var(--s-4) 0;border-top:1px solid var(--border)}.mod-item.flagged{margin:0 calc(var(--s-3) * -1);padding:var(--s-4) var(--s-3);border-radius:var(--r-md);background:var(--red-50)}.mod-item-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s-1) var(--s-3)}.mod-item>p{margin:0;overflow-wrap:anywhere}.mod-item .ach-mini{max-width:520px}.mod-flags{display:flex;flex-wrap:wrap;gap:var(--s-2)}.mod-flags:empty{display:none}.mod-flags .badge{margin-left:0}.mod-reject{display:grid;gap:var(--s-2);max-width:420px}.mod-reject select{width:100%;margin-top:4px}@media(prefers-reduced-motion:reduce){.unlock-banner,.share-dialog[open]{animation:none}}.tr-tabs{margin-top:0}.tr-current h2{margin:var(--s-2) 0 var(--s-3);font-size:var(--fs-xl)}.tr-current .book-progress-top{display:flex;justify-content:space-between;margin-bottom:var(--s-2)}.tr-cal{display:grid;gap:var(--s-3)}.tr-cal-grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(10px,18px);gap:4px}.tr-cal-week{display:grid;grid-template-rows:repeat(7,1fr);gap:4px}.tr-cal-day{display:inline-block;aspect-ratio:1;min-width:12px;border-radius:4px;background:var(--gray-100)}.tr-cal-day.l1{background:var(--amber-100)}.tr-cal-day.l2{background:var(--amber-400)}.tr-cal-day.l3{background:var(--amber-500)}.tr-cal-day.l4{background:var(--amber-700)}.tr-cal-day.read{box-shadow:inset 0 0 0 1px #b4530959}.tr-cal-day.future{background:transparent;box-shadow:inset 0 0 0 1px var(--gray-100)}.tr-cal-day.today{outline:2px solid var(--brand-500);outline-offset:1px}.tr-cal-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tr-cal-legend .tr-cal-day{width:12px;min-width:12px}.tr-cal-count{margin-left:auto;font-weight:600;color:var(--amber-700)}.tr-league-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--s-3);margin-bottom:var(--s-3)}.tr-league-controls select{display:block;margin-top:4px}.tr-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s-2);margin-bottom:var(--s-4)}.tr-metric{display:flex;align-items:flex-start;gap:var(--s-2);padding:var(--s-2) var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text-2);text-align:left}.tr-metric>span{display:grid;line-height:1.25}.tr-metric.on{border-color:var(--brand-500);background:var(--brand-50);color:var(--brand-800)}.tr-league-table tr.me td{background:var(--brand-50)}.tr-league-table td .badge{margin-left:var(--s-2)}.tr-rank{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:var(--r-full);background:var(--gray-100);font-weight:700;font-size:var(--fs-sm)}.tr-rank.top1{background:var(--amber-400);color:var(--gray-900)}.tr-rank.top2{background:var(--gray-300);color:var(--gray-900)}.tr-rank.top3{background:var(--amber-100);color:var(--amber-700)}.tr-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s-3);margin:0;padding:0;list-style:none}.tr-badge{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:var(--s-3);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-muted);opacity:.85}.tr-badge.on{border-color:var(--amber-400);background:var(--amber-50);opacity:1}.tr-badge p{margin:2px 0 var(--s-2)}.tr-badge-icon{font-size:1.6rem;line-height:1;filter:grayscale(1)}.tr-badge.on .tr-badge-icon{filter:none}.tr-badge-got{display:inline-flex;align-items:center;gap:4px;color:var(--green-700)}.tr-composer{display:grid;gap:var(--s-3)}.tr-composer select,.tr-composer textarea,.tr-recommend textarea,.tr-edit textarea,.tr-challenge-form input,.tr-challenge-form select,.tr-challenge-form textarea{width:100%;margin-top:4px}.tr-composer label>span:last-child{display:block;margin-top:4px}.tr-check{display:flex;align-items:center;gap:var(--s-2);margin:4px 0;font-size:var(--fs-sm)}.tr-check input{width:auto;margin:0}.tr-targets{margin:0 0 var(--s-3);padding:0;border:0}.tr-recommend{display:grid;gap:var(--s-2);margin-top:var(--s-3)}.tr-feed-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:var(--s-6);align-items:start}.tr-post-body{display:grid;gap:var(--s-2)}.tr-post-headline{margin:0;font-weight:600}.tr-post-text{margin:0;white-space:pre-line;overflow-wrap:anywhere}.tr-post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin:0}.tr-post.from-school{border-color:var(--amber-400)}.tr-post-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-2)}.tr-notes .card-head h3{display:inline-flex;align-items:center;gap:var(--s-2)}.tr-note-list{display:grid;gap:var(--s-2);margin:0;padding:0;list-style:none}.tr-note-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--green-50);font-size:var(--fs-sm)}.tr-note-list li.warn{background:var(--amber-50)}.tr-edit{display:grid;gap:var(--s-2)}.tr-recs{margin-top:0}.tr-rec-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s-3);margin:0;padding:0;list-style:none}a.tr-rec{display:grid;gap:4px;height:100%}.tr-rec p{margin:var(--s-1) 0 0}.tr-rec-read{display:inline-flex;align-items:center;gap:4px;color:var(--green-700)}.tr-school-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-4)}.tr-school-grid>div{display:grid;gap:2px}.tr-big{font-size:var(--fs-xl);line-height:1.2}.tr-sub{display:flex;align-items:center;gap:var(--s-2);margin:var(--s-5) 0 var(--s-2)}.tr-challenges{display:grid;gap:var(--s-3);margin:0;padding:0;list-style:none}.tr-challenge{display:grid;gap:var(--s-2);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md)}.tr-challenge p{margin:0}.tr-challenge-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-2)}.tr-challenge-row{display:grid;gap:4px}.tr-challenge-form>summary,.tr-rules>summary{display:flex;align-items:center;gap:var(--s-2);list-style:none;cursor:pointer}.tr-challenge-form>summary::-webkit-details-marker,.tr-rules>summary::-webkit-details-marker{display:none}.tr-challenge-form>summary h3,.tr-rules>summary h3{margin:0}.tr-challenge-form[open]>summary,.tr-rules[open]>summary{margin-bottom:var(--s-3)}.tr-challenge-form[open]{display:grid;gap:var(--s-3)}.tr-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}.tr-rules ul{margin:0;padding-left:var(--s-5);line-height:1.6}.tr-history{margin:0;padding-left:var(--s-5);color:var(--text-2)}.tr-policy,.tr-config{margin:var(--s-2) 0;padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-muted)}.tr-policy summary,.tr-config summary{cursor:pointer}.tr-config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s-3);margin:var(--s-3) 0}.tr-config-grid input{width:100%;margin-top:4px}.tr-books{display:grid;gap:var(--s-3);margin:0;padding:0;list-style:none}.tr-book{display:grid;gap:var(--s-3)}.tr-book p{margin:2px 0 0}.tr-book-head{display:flex;justify-content:space-between;gap:var(--s-3)}.tr-book-teacher{display:grid;gap:var(--s-3)}.tr-award{display:grid;gap:var(--s-1);margin:var(--s-4) 0 0;padding:var(--s-3);border-radius:var(--r-md);background:var(--brand-50);list-style:none}.tr-award li{display:flex;justify-content:space-between;gap:var(--s-3)}.tr-award-badge{color:var(--amber-700)}@media(max-width:1023px){.tr-feed-layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:767px){.tr-school-grid,.tr-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.tr-form-row{grid-template-columns:minmax(0,1fr)}.tr-badge{grid-template-columns:auto 1fr}.tr-badge>button{grid-column:2;justify-self:start}.tr-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}}.auto-import{margin-bottom:var(--s-6)}.auto-form{display:grid;gap:var(--s-3)}.auto-form select,.auto-form input{width:100%;margin-top:4px}.auto-row{display:grid;grid-template-columns:2fr 2fr 1fr;gap:var(--s-3)}.auto-files{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s-3)}.auto-drop{display:grid;justify-items:center;gap:6px;padding:var(--s-5) var(--s-4);border:2px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface-muted);color:var(--text-2);text-align:center;overflow-wrap:anywhere}.auto-drop:hover:not(:disabled){border-color:var(--brand-400);background:var(--brand-50)}.auto-local{display:grid;gap:6px}.auto-job{display:grid;gap:var(--s-3)}.auto-job-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-2)}.auto-summary{display:grid;gap:4px;margin:0;padding:var(--s-3);border-radius:var(--r-md);background:var(--green-50);color:var(--green-700);list-style:none}.auto-problems ul,.auto-jobs ul{margin:var(--s-2) 0 0;padding-left:var(--s-5)}.auto-jobs li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin:4px 0}.auto-jobs summary,.auto-problems summary{cursor:pointer}.audio-reader{display:grid;gap:var(--s-2)}.audio-bar{position:sticky;top:64px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);padding:var(--s-2) var(--s-3);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.audio-btn{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);color:var(--text);font-size:var(--fs-xs);font-weight:700}.audio-btn:disabled{opacity:.45}.audio-main{min-width:52px;min-height:52px;border-color:var(--brand-600);background:var(--brand-600);color:#fff}.audio-clock{font-variant-numeric:tabular-nums;color:var(--muted)}.audio-speed select{min-height:36px}.audio-volume{display:inline-flex;align-items:center;gap:6px}.audio-volume input{width:90px}.audio-follow{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.audio-follow input{width:auto;margin:0}.audio-hint{margin:0}.audio-text [data-w]{border-radius:4px;cursor:pointer}.audio-text [data-w].speaking{background:var(--amber-100);box-shadow:0 2px 0 var(--amber-500);color:var(--gray-900)}.reader.night .audio-text [data-w].speaking{background:#f59e0b59;color:#fff}.tasks{display:grid;gap:var(--s-3);margin:0;padding:0;list-style:none}.task{display:grid;gap:var(--s-2)}.task h3{margin:0;font-size:var(--fs-md);line-height:1.45}.task.ok{border-color:var(--green-600)}.task.part{border-color:var(--amber-500)}.task.bad{border-color:var(--red-600)}.task-kind{color:var(--brand-700);font-weight:600}.task-options{display:grid;gap:var(--s-2)}.task-option{display:flex;align-items:flex-start;gap:var(--s-2);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer}.task-option input{width:auto;margin:3px 0 0}.task-option.right{border-color:var(--green-600);background:var(--green-50)}.task-option.wrong{border-color:var(--red-600);background:var(--red-50)}.task textarea{width:100%}.task-order{display:grid;gap:var(--s-2);margin:0;padding-left:var(--s-5)}.task-order li{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding:var(--s-2) var(--s-3);border:1px solid var(--border);border-radius:var(--r-md)}.task-order.done li{border-color:var(--green-600)}.task-feedback{display:grid;gap:4px;padding:var(--s-3);border-radius:var(--r-md);background:var(--surface-muted)}.task-feedback p{margin:0}.task-feedback blockquote{display:flex;gap:6px;margin:0;color:var(--text-2);font-style:italic}.task-result{display:grid;justify-items:start;gap:var(--s-2)}.task-score{font-size:var(--fs-2xl);color:var(--brand-700)}.class-skills{grid-column:1 / -1}.skill-bars{display:grid;gap:6px;margin:0 0 var(--s-4);padding:0;list-style:none}.skill-bars li{display:grid;grid-template-columns:minmax(140px,220px) 1fr 48px;align-items:center;gap:var(--s-3)}.skill-track{height:10px;border-radius:var(--r-full);background:var(--gray-100);overflow:hidden}.skill-track span{display:block;height:100%;border-radius:inherit;background:var(--gray-300)}.skill-track span.low{background:var(--red-600)}.skill-track span.mid{background:var(--amber-500)}.skill-track span.high{background:var(--green-600)}@media(max-width:767px){.auto-row{grid-template-columns:minmax(0,1fr)}.audio-bar{top:auto;bottom:calc(64px + env(safe-area-inset-bottom));position:sticky}.audio-volume{display:none}.audio-follow{margin-left:0}.skill-bars li{grid-template-columns:minmax(0,1fr) 70px 40px}}.school-life .sl-head{margin-bottom:var(--s-2)}.sl-filters{margin-top:var(--s-2)}@media(max-width:767px){.sl-filters{flex-wrap:nowrap;overflow-x:auto;margin-right:calc(-1 * var(--s-4));padding-right:var(--s-4);scrollbar-width:none}.sl-filters::-webkit-scrollbar{display:none}}.sl-grid{display:grid;gap:var(--s-5);align-items:start}@media(min-width:1100px){.sl-grid{grid-template-columns:minmax(0,1fr) 280px}.sl-aside{position:sticky;top:var(--s-6)}}.sl-feed{display:grid;gap:var(--s-3);min-width:0}.sl-card{padding:var(--s-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-xs);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.sl-card:hover{border-color:var(--border-strong)}.sl-card-head{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-3)}.sl-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-3);min-width:0}.sl-avatar{width:40px;height:40px}.sl-icon{display:grid;flex:none;place-items:center;width:40px;height:40px;border-radius:var(--r-full);background:var(--sky-50);color:var(--sky-700)}.sl-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--r-full);background:var(--brand-50);color:var(--brand-700);font-size:var(--fs-xs);font-weight:600}.tone-green .sl-badge{background:var(--green-50);color:var(--green-700)}.tone-amber .sl-badge{background:var(--amber-50);color:var(--amber-700)}.tone-rose .sl-badge{background:var(--rose-50);color:var(--rose-700)}.tone-news .sl-badge{background:var(--sky-50);color:var(--sky-700)}.sl-main{display:flex;gap:var(--s-4);align-items:flex-start}.sl-main .sl-cover{flex:none;width:56px}.sl-line{margin:0 0 var(--s-1);font-size:var(--fs-md);line-height:1.5;color:var(--text)}.sl-quote{margin:var(--s-2) 0 0;padding:var(--s-2) var(--s-3);border-left:3px solid var(--rose-100);background:var(--surface-muted);border-radius:0 var(--r-md) var(--r-md) 0;color:var(--text-2);font-size:var(--fs-sm);line-height:1.55;overflow-wrap:anywhere}.sl-action{display:inline-flex;align-items:center;gap:6px;margin-top:var(--s-2);min-height:32px;color:var(--brand-600);font-size:var(--fs-sm);font-weight:600;text-decoration:none}.sl-action:hover{text-decoration:underline}.sl-news h3{margin:0 0 var(--s-2);font-size:var(--fs-lg);line-height:1.35;overflow-wrap:anywhere}.sl-date{display:inline-flex;align-items:center;gap:6px;margin:0 0 var(--s-3);color:var(--sky-700);font-size:var(--fs-sm);font-weight:600}.sl-image{margin:0 0 var(--s-3);overflow:hidden;border-radius:var(--r-lg);background:var(--surface-muted);aspect-ratio:16 / 9}.sl-image img{display:block;width:100%;height:100%;object-fit:cover}.sl-body{margin:0;white-space:pre-line;line-height:1.6;overflow-wrap:anywhere}.sl-more{margin-top:var(--s-1);font-size:var(--fs-sm)}.sl-author{margin:var(--s-3) 0 0}.sl-new{position:sticky;top:var(--s-3);z-index:2;justify-self:center;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 var(--s-4);border:0;border-radius:var(--r-full);background:var(--brand-600);color:#fff;font-weight:600;box-shadow:var(--shadow-md);cursor:pointer}.sl-new svg{transform:rotate(-90deg)}.sl-new:hover{background:var(--brand-700)}.sl-foot{display:grid;justify-items:center;gap:var(--s-2);padding:var(--s-2) 0 var(--s-4);text-align:center}.sl-skeleton{display:flex;gap:var(--s-3);align-items:center;margin-bottom:var(--s-3)}.sl-aside h3{display:flex;align-items:center;gap:6px;font-size:var(--fs-md)}.sl-events{display:grid;gap:var(--s-3);margin:0;padding:0;list-style:none}.sl-events li{display:grid;gap:2px;padding-left:var(--s-3);border-left:3px solid var(--sky-100)}@media(max-width:479px){.sl-card{padding:var(--s-4)}.sl-main .sl-cover{width:44px}}.ann-form{display:grid;gap:var(--s-3)}.ann-form label{display:grid;gap:4px}.ann-row{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.ann-image{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.ann-image img{width:160px;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--r-md);border:1px solid var(--border)}.ann-image label.btn{display:inline-flex;cursor:pointer}.ann-list-title{margin:var(--s-5) 0 var(--s-2);font-size:var(--fs-sm);color:var(--text-2)}.ann-list{display:grid;gap:var(--s-2);margin:0;padding:0;list-style:none}.ann-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-lg)}.ann-list li>div:first-child{display:grid;gap:2px;min-width:0}.pw-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-2);margin:var(--s-4) 0 var(--s-5);padding:0;list-style:none;counter-reset:none}.pw-steps li{display:flex;align-items:center;gap:var(--s-2);padding-bottom:var(--s-2);border-bottom:3px solid var(--border);color:var(--muted);font-size:var(--fs-sm);min-width:0}.pw-steps li.on{border-color:var(--brand-500);color:var(--text);font-weight:600}.pw-steps li.done{border-color:var(--green-600)}.pw-num{display:grid;flex:none;place-items:center;width:24px;height:24px;border-radius:var(--r-full);background:var(--surface-muted);font-size:var(--fs-xs);font-weight:700}.pw-steps li.on .pw-num{background:var(--brand-600);color:#fff}.pw-steps li.done .pw-num{background:var(--green-600);color:#fff}.pw-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:479px){.pw-steps{display:flex}.pw-steps li{flex:1 1 0}.pw-steps li.on{flex:3 1 0}.pw-steps li:not(.on) .pw-label{display:none}}.pw-body{display:grid;gap:var(--s-4)}.pw-field{display:grid;gap:4px;margin:0;padding:0;border:0;min-width:0}.pw-field input,.pw-field select{min-height:48px;font-size:var(--fs-md)}.pw-field-title{font-weight:600;color:var(--text)}.pw-code{font-family:var(--font-mono, ui-monospace, monospace);letter-spacing:.18em;font-size:var(--fs-lg)!important;text-transform:uppercase}.pw-school{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--green-100);border-radius:var(--r-lg);background:var(--green-50);color:var(--green-700)}.pw-school div{display:grid;gap:2px}.pw-school strong{color:var(--text);font-size:var(--fs-md)}.pw-relations{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.pw-child{display:grid;gap:var(--s-3);margin:0;padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);min-width:0}.pw-child legend{display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-2);font-weight:700}.pw-child-school{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin:0}.pw-other{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-2);align-items:end}.pw-child-grid{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.pw-status{display:flex;align-items:center;gap:6px;margin:0}.pw-add{justify-self:start}.pw-privacy,.pd-privacy{display:flex;gap:6px;align-items:flex-start;margin:0}.pw-results{display:grid;gap:var(--s-2);margin:0;padding:0;list-style:none}.pw-results li{display:flex;gap:var(--s-2);align-items:flex-start;padding:var(--s-3);border-radius:var(--r-md);line-height:1.5}.pw-results li.ok{background:var(--green-50);color:var(--green-700)}.pw-results li.fail{background:var(--red-50);color:var(--red-700, #b91c1c)}.pw-results li svg{flex:none;margin-top:2px}.pp-verify{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.pp-list,.prq-list{display:grid;gap:var(--s-2);margin:0;padding:0;list-style:none}.pp-list li,.prq-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg)}.pp-list li>div,.prq-who{display:grid;gap:4px;min-width:0}.pp-list .badge{justify-self:start;display:inline-flex;align-items:center;gap:4px}.prq-approved{margin-top:var(--s-4)}.prq-approved summary{cursor:pointer;margin-bottom:var(--s-2)}.pd-head{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}.pd-head h3{margin:0}.pd-head p{margin:2px 0 0}.pd-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:var(--s-2)}@media(max-width:767px){.pd-stats{grid-template-columns:1fr 1fr}}.pd-sub{margin:var(--s-5) 0 var(--s-2);font-size:var(--fs-md)}.pd-books{display:grid;gap:var(--s-3);margin:0;padding:0;list-style:none}.pd-books li{display:flex;gap:var(--s-3);align-items:center}.pd-books li>div:last-child{display:grid;gap:2px;min-width:0}.pd-cover{flex:none;width:44px}.pd-done{display:inline-flex;align-items:center;gap:4px;color:var(--green-700)}.pd-loading{display:grid;gap:var(--s-2)}.pr-form{display:grid;gap:var(--s-3);margin-top:var(--s-2)}.pr-form button{justify-self:start}.pr-history{display:grid;gap:var(--s-2);margin:0 0 var(--s-4);padding:0;list-style:none}.pr-history li{display:grid;grid-template-columns:96px auto minmax(0,1fr);gap:var(--s-3);align-items:baseline}@media(max-width:479px){.pr-history li{grid-template-columns:1fr;gap:2px}}.pread-locked{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.pread-books{display:grid;gap:var(--s-3);margin:0;padding:0;list-style:none}.pread-books li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg)}.pread-books li>div{display:grid;gap:4px;flex:1 1 220px;min-width:0}.pread-how ol{display:grid;gap:var(--s-2);margin:0;padding-left:var(--s-5)}.pl-list{display:grid;gap:var(--s-2);margin:0;padding:0;list-style:none}.pl-list li{display:grid;grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"rank name xp" "rank meta xp";align-items:center;gap:2px var(--s-3);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-lg)}.pl-list li.me{border-color:var(--brand-300);background:var(--brand-50)}.pl-list li.pl-gap{display:block;border:0;padding:0 var(--s-3);color:var(--muted);text-align:center}.pl-rank{grid-area:rank;font-weight:800;font-size:var(--fs-lg);color:var(--brand-600);text-align:center}.pl-name{grid-area:name;display:flex;align-items:center;gap:var(--s-2);font-weight:600;min-width:0}.pl-meta{grid-area:meta}.pl-xp{grid-area:xp;font-variant-numeric:tabular-nums}.room-page{--room-night: #0d1524;--room-panel: rgba(13, 21, 36, .82);--room-panel-solid: #131e33;--room-line: rgba(226, 232, 245, .12);--room-ink: #eef1f6;--room-muted: #9ba7bb;--room-lamp: #f3b65c;--room-lamp-ink: #2b1a04;--room-live: #4cc3a6;position:relative;height:min(860px,calc(100dvh - 170px));min-height:540px;border-radius:var(--r-xl);overflow:hidden;background:var(--room-night);color:var(--room-ink);isolation:isolate}.room-page .muted{color:var(--room-muted)}.room-scene{position:absolute;inset:0;z-index:0}.room-stage,.room-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y}.room-scene-flat,.room-scene-loading{background:radial-gradient(120% 80% at 70% 30%,#2a2033 0%,var(--room-night) 60%)}.room-tags{position:absolute;inset:0;pointer-events:none;overflow:hidden}.room-tag{position:absolute;left:0;top:0;padding:3px 9px;border-radius:var(--r-full);background:#0a101cb8;border:1px solid var(--room-line);color:var(--room-ink);font-size:12px;font-weight:600;white-space:nowrap;will-change:transform}.room-tag strong,.room-tag span{display:block;text-align:center}.room-tag strong{font-weight:700}.room-tag span{font-size:10px;font-weight:500;opacity:.85;max-width:140px;overflow:hidden;text-overflow:ellipsis}.room-tag{border-radius:10px}.room-tag.me{background:var(--room-lamp);color:var(--room-lamp-ink);border-color:transparent}.room-hud{position:absolute;top:var(--s-3);left:var(--s-4);right:var(--s-4);z-index:1;display:flex;flex-direction:column;gap:var(--s-2);max-width:520px;margin:0 auto;pointer-events:none}.room-hud>*{pointer-events:auto}.room-goal,.room-panel,.room-sheet{background:var(--room-panel);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--room-line)}.room-goal{border-radius:var(--r-lg);padding:12px 14px;display:grid;gap:8px}.room-goal-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.room-goal-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--room-muted);font-weight:700}.room-goal-num{font-variant-numeric:tabular-nums;font-weight:700}.room-bar{height:6px;border-radius:var(--r-full);background:#ffffff14;overflow:hidden}.room-bar i{display:block;height:100%;background:linear-gradient(90deg,#d9913a,var(--room-lamp));border-radius:inherit;transition:width .6s var(--ease)}.room-chips{display:flex;gap:6px;flex-wrap:wrap}.room-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--r-full);background:var(--room-panel);border:1px solid var(--room-line);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.room-chip svg{color:var(--room-lamp)}.room-view{padding:2px;gap:2px}.room-view button{border:0;background:transparent;color:var(--room-muted);font:inherit;padding:3px 9px;border-radius:var(--r-full);cursor:pointer}.room-view button[aria-pressed=true]{background:var(--room-panel-solid);color:var(--room-ink)}.room-dot{width:7px;height:7px;border-radius:50%;background:#4cc3a6;box-shadow:0 0 0 3px #4cc3a62e;flex:none}.room-panel{border-radius:var(--r-lg);padding:10px 14px;max-height:34vh;overflow:auto}.room-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.room-list li{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm)}.room-list li.me strong{background:var(--room-lamp);color:var(--room-lamp-ink);padding:1px 8px;border-radius:var(--r-full)}.room-list li.paused{opacity:.6}.room-list-mark{width:22px;text-align:center}.room-sheet{position:absolute;left:var(--s-4);right:var(--s-4);bottom:var(--s-4);z-index:1;max-width:520px;margin:0 auto;border-radius:var(--r-xl);padding:14px;display:grid;gap:12px}.room-tabs{display:flex;gap:6px;background:#ffffff0d;border-radius:12px;padding:4px}.room-tabs button{flex:1;min-width:0;border:0;background:transparent;border-radius:9px;padding:8px 6px;font:inherit;font-size:13px;font-weight:600;color:var(--room-muted);cursor:pointer}.room-tabs button[aria-pressed=true]{background:var(--room-panel-solid);color:var(--room-ink)}.room-tabs button:disabled{opacity:.4;cursor:not-allowed}.room-name{font-size:12px;color:var(--room-muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.room-book{display:flex;align-items:center;gap:12px}.room-cover{flex:none;width:42px;height:58px;border-radius:4px 6px 6px 4px;display:grid;place-items:center;background:#8a3d2f;font-weight:700;font-size:13px;color:#ffffffeb;box-shadow:inset 3px 0 #00000040}.room-book-text{flex:1;min-width:0;display:grid}.room-book-text strong,.room-book-text span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-sheet .btn-ghost{color:var(--room-muted);border:1px solid var(--room-line)}.room-sheet .btn-primary{background:var(--room-lamp);color:var(--room-lamp-ink);border-color:transparent}.room-sheet a{color:var(--room-lamp)}.room-picker{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:180px;overflow:auto}.room-picker button{width:100%;text-align:left;border:1px solid var(--room-line);background:transparent;color:var(--room-ink);font:inherit;border-radius:10px;padding:8px 10px;cursor:pointer}.room-picker button[aria-pressed=true]{border-color:var(--room-lamp)}.room-hint{margin:0;text-align:center}.room-page :focus-visible{outline:2px solid var(--room-lamp);outline-offset:2px}.room-strip{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 14px;border-radius:var(--r-lg);background:#131e33;color:#eef1f6;font-size:var(--fs-sm)}.room-strip-name{display:inline-flex;align-items:center;gap:6px;font-weight:600}.room-strip-count{color:#9ba7bb}.room-strip-clock{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-variant-numeric:tabular-nums;font-weight:700}.room-strip-clock.paused{color:#f3b65c}.room-sounds{display:flex;gap:4px;flex-basis:100%}.room-sound{flex:1;border:1px solid rgba(226,232,245,.16);background:transparent;color:#9ba7bb;font:inherit;font-size:12px;font-weight:600;border-radius:10px;padding:5px 4px;cursor:pointer}.room-sound[aria-pressed=true]{border-color:#f3b65c;color:#f3b65c;background:#f3b65c1a}.room-summary{display:grid;gap:var(--s-3)}.room-summary h2{margin:0}.room-summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3);text-align:center}.room-summary-stats>div{display:grid;gap:2px;padding:var(--s-3);border-radius:var(--r-lg);background:var(--surface-muted)}.room-summary-stats strong{font-size:var(--fs-xl);font-variant-numeric:tabular-nums}.room-now{display:inline-flex;align-items:center;gap:5px;margin-left:8px;font-size:12px;color:var(--green-700)}.room-teacher-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.room-teacher-list li{display:flex;justify-content:space-between;gap:8px;font-size:var(--fs-sm)}.room-goal-form{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.room-goal-form input{width:120px}.coin-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-full);background:var(--amber-50);color:var(--amber-700);font-weight:700;font-variant-numeric:tabular-nums}.coin-badge svg{color:var(--amber-500)}.room-chip.coin-badge{background:var(--room-panel);color:var(--room-ink);padding:5px 10px}.home-greeting-actions{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}.session-duration{display:grid;gap:6px}.session-duration-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--room-muted);font-weight:700}.session-duration-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.session-duration-row button{display:grid;gap:2px;justify-items:center;border:1px solid var(--room-line);background:transparent;color:var(--room-ink);font:inherit;font-size:13px;font-weight:600;border-radius:10px;padding:8px 4px;cursor:pointer;min-width:0}.session-duration-row button small{font-size:10px;font-weight:500;color:var(--room-muted);line-height:1.15;text-align:center;overflow-wrap:anywhere;max-width:100%}.session-duration-row button[aria-pressed=true]{border-color:var(--room-lamp);background:#f3b65c1f;color:var(--room-lamp)}.session-ring{position:relative;width:min(220px,60vw);aspect-ratio:1;margin:0 auto}.session-ring svg{width:100%;height:100%}.session-ring-track{fill:none;stroke:var(--track);stroke-width:8}.session-ring-bar{fill:none;stroke:var(--brand-500);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.session-ring.paused .session-ring-bar{stroke:var(--amber-500)}.session-ring-text{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.session-ring-text strong{font-size:2.4rem;font-variant-numeric:tabular-nums;line-height:1.1}.session-ring-text span{color:var(--muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.still-dialog{width:min(360px,calc(100vw - 32px));padding:0;border:none;border-radius:var(--r-xl);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.still-dialog::backdrop{background:#0a081e9e}.still-body{display:grid;gap:var(--s-3);justify-items:center;text-align:center;padding:var(--s-6) var(--s-5)}.still-body h2,.still-body p{margin:0}.still-body svg{color:var(--brand-500)}.room-summary-coins strong{display:inline-flex;align-items:center;justify-content:center;gap:4px;color:var(--amber-700)}@media(prefers-reduced-motion:reduce){.session-ring-bar{transition:none}}.room-seat{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.room-seat-text{display:inline-flex;align-items:center;gap:6px;font-size:13px}.room-seat-text svg{color:#4cc3a6}.room-sheet .room-sit{background:#2f9d63;color:#fff;border-color:transparent;font-weight:700}.room-sheet .room-sit:disabled{opacity:.45}.room-map-btn{margin-left:auto;display:inline-flex;align-items:center;gap:4px;border:1px solid var(--room-line);background:transparent;color:var(--room-ink);font:inherit;font-size:12px;font-weight:600;border-radius:var(--r-full);padding:4px 10px;cursor:pointer}.room-map-btn[aria-expanded=true]{border-color:var(--room-lamp);color:var(--room-lamp)}.room-sheet{max-height:calc(100% - 2 * var(--s-4));overflow-y:auto;overscroll-behavior:contain}.map-picker{display:grid;gap:8px}.map-picker-head{display:flex;align-items:center;justify-content:space-between}.map-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.map-card{width:100%;display:grid;justify-items:center;gap:4px;padding:6px 4px 8px;border:1px solid var(--room-line);border-radius:12px;background:#ffffff0a;color:var(--room-ink);font:inherit;font-size:12px;text-align:center;cursor:pointer}.map-card[aria-pressed=true]{border-color:var(--room-lamp)}.map-card.locked{cursor:not-allowed}.map-card.locked .map-art{filter:grayscale(.85) brightness(.6)}.map-art{width:100%;aspect-ratio:4 / 3;border-radius:8px;display:grid;place-items:center;color:#ffffffe6}.map-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:1px 6px;border-radius:var(--r-full);background:#ffffff1a;color:var(--room-muted)}.map-badge.open{background:#2f9d6340;color:#7fe0ae}.map-rule{color:var(--room-muted)!important;line-height:1.25}.map-rule em{display:block;font-style:normal}.room-sound.preferred{border-style:dashed}@media(max-width:767px){.map-list{grid-template-columns:repeat(2,minmax(0,1fr))}}a.coin-badge,a.room-chip-link{text-decoration:none}a.room-chip-link{color:var(--room-ink)}.hero-page{display:grid;gap:var(--s-4)}.hero-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap}.hero-head h1{margin:0;font-size:var(--fs-2xl)}.hero-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s-4);align-items:start}.hero-preview{position:relative;border-radius:var(--r-xl);background:linear-gradient(180deg,#dfe8fb,#c4d3f3);overflow:hidden;display:grid}.hero-stage{width:100%;height:min(560px,70vh);touch-action:pan-y;cursor:grab}.hero-stage canvas{display:block;width:100%!important;height:100%!important}.hero-stage-flat{display:grid;place-items:center;padding:var(--s-5);text-align:center;cursor:default}.hero-tryon{position:absolute;top:var(--s-3);left:var(--s-3);margin:0;padding:4px 10px;border-radius:var(--r-full);background:var(--surface);box-shadow:var(--shadow-sm)}.hero-drag{position:absolute;bottom:var(--s-2);left:0;right:0;margin:0;text-align:center}.hero-panel{display:grid;gap:var(--s-3)}.hero-tabs{display:flex;gap:6px;padding:4px;border-radius:var(--r-md);background:var(--surface-muted)}.hero-tabs button{flex:1;border:0;background:transparent;font:inherit;font-weight:700;padding:9px 6px;border-radius:9px;color:var(--muted);cursor:pointer}.hero-tabs button[aria-selected=true]{background:var(--brand-600);color:#fff}.hero-slots{display:grid;gap:var(--s-3)}.hero-slot{display:grid;gap:6px}.hero-slot-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.hero-chips{display:flex;flex-wrap:wrap;gap:6px}.hero-chips button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm);font-weight:600;padding:5px 10px;border-radius:var(--r-full);cursor:pointer;min-height:36px}.hero-chips button img{width:26px;height:26px;border-radius:50%;background:#dfe8fb}.hero-chips button[aria-pressed=true]{border-color:var(--brand-500);background:var(--brand-50);color:var(--brand-700)}.hero-chip-shop{border-style:dashed!important;color:var(--brand-600)!important}.hero-save{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-3);flex-wrap:wrap}.hero-shop{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}.hero-card{position:relative;width:100%;display:grid;justify-items:center;gap:4px;padding:10px 6px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;transition:border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.hero-card:hover{border-color:var(--brand-300);transform:translateY(-1px)}.hero-card.rare{border-color:var(--amber-400);background:linear-gradient(180deg,var(--amber-50),var(--surface) 60%)}.hero-card img,.hero-thumb-empty{width:72px;height:72px;border-radius:var(--r-md);background:#e6edfb}.hero-thumb-empty{display:block}.hero-card-name{font-size:12px;font-weight:600;text-align:center;line-height:1.2}.hero-card-price{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;color:var(--amber-700);font-variant-numeric:tabular-nums}.hero-card-price svg{color:var(--amber-500)}.hero-rare{position:absolute;top:6px;right:6px;font-size:10px;font-weight:700;padding:1px 6px;border-radius:var(--r-full);background:var(--amber-500);color:#2b1a04}.hero-open{margin:0;text-align:center}.hero-buy-row{justify-content:center}.hero-choose{display:grid;gap:var(--s-3);text-align:center;max-width:560px;margin:0 auto}.hero-choose h1,.hero-choose p{margin:0}.hero-choose-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}.hero-choose-card{display:grid;justify-items:center;gap:var(--s-2);padding:var(--s-4);border:2px solid var(--border);border-radius:var(--r-xl);background:linear-gradient(180deg,#e6edfb,var(--surface));font:inherit;color:var(--text);cursor:pointer}.hero-choose-card:hover{border-color:var(--brand-400)}.hero-choose-card img,.hero-choose-card .hero-thumb-empty{width:140px;height:140px}@media(max-width:767px){.hero-grid{grid-template-columns:minmax(0,1fr)}.hero-stage{height:52vh}}:root{--game-navy: #1b2350;--game-navy-2: #2c2f7a;--game-gold: #ffcf4a;--game-gold-ink: #6b4500;--game-mint: #4cc3a6;--game-radius: 24px;--game-shadow: 0 18px 40px -18px rgb(27 35 80 / .55);--game-pop: cubic-bezier(.34, 1.56, .64, 1)}.game-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-4);align-items:center;padding:var(--s-5);margin-bottom:var(--s-5);border-radius:var(--game-radius);color:#fff;background:radial-gradient(26rem 14rem at 12% 0%,rgb(255 207 74 / .22),transparent 70%),radial-gradient(22rem 16rem at 100% 100%,rgb(76 195 166 / .25),transparent 70%),linear-gradient(135deg,var(--game-navy) 0%,var(--game-navy-2) 100%);box-shadow:var(--game-shadow)}.game-hero-pet{display:grid;place-items:center;width:136px;height:136px;border-radius:50%;background:radial-gradient(circle at 50% 60%,#ffffff2e,#ffffff0a 70%)}.game-hero-main{display:grid;gap:8px;min-width:0}.game-hero h1{margin:0;font-size:var(--fs-xl);line-height:1.2;color:#fff}.game-bubble{position:relative;margin:0;padding:8px 12px;border-radius:14px;background:#ffffff1f;color:#eef1ff;font-size:var(--fs-sm);animation:bubble-in .36s var(--game-pop) both}.game-chips{display:flex;flex-wrap:wrap;gap:6px}.game-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--r-full);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;background:#ffffff24}.game-chip.level svg{color:var(--game-gold)}.game-chip.xp{background:#ffcf4a33;color:#fff3c4}.game-level-bar{height:10px;border-radius:var(--r-full);background:#ffffff24;overflow:hidden}.game-level-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--game-gold),#ff9f43);transform-origin:left;animation:game-grow .9s var(--ease) both}.game-level-note{margin:0;font-size:12px;color:#c9cff5}.game-hero-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.game-hero-actions .coin-badge{background:#ffcf4af2;color:var(--game-gold-ink)}.game-hero-actions .coin-badge svg{color:var(--game-gold-ink)}.game-hero-btn{background:#ffffff1f;color:#fff;border:1px solid rgb(255 255 255 / .18)}.game-hero-btn:hover{background:#fff3}@keyframes game-grow{0%{transform:scaleX(0)}}.companion{display:block;overflow:visible}.companion g{transform-box:fill-box}.comp-shadow{fill:#0000002e}.comp-body,.comp-head{transform-origin:50% 100%;animation:comp-breathe 3.2s ease-in-out infinite}.comp-head{animation-delay:.15s}.comp-tail{transform-origin:0% 100%;animation:comp-wag 2.6s ease-in-out infinite}.comp-eyes{transform-origin:50% 50%;animation:comp-blink 5s infinite}.mood-sleepy .comp-body,.mood-sleepy .comp-head{animation-duration:5s}.mood-sleepy .comp-eyes{animation:none}.mood-sleepy .comp-tail{animation-duration:6s}.mood-cheer .comp-all{transform-origin:50% 100%;animation:comp-hop .62s var(--game-pop) 3}.mood-cheer .comp-tail{animation-duration:.7s}.comp-sparkles{animation:comp-twinkle 1.2s ease-in-out infinite;transform-origin:50% 50%}.comp-z{animation:comp-z 2.6s ease-in-out infinite}@keyframes comp-breathe{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(-1.5px) scaleY(1.015)}}@keyframes comp-wag{0%,to{transform:rotate(-6deg)}50%{transform:rotate(8deg)}}@keyframes comp-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes comp-hop{0%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-14px) scale(1.04,.97)}}@keyframes comp-twinkle{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}@keyframes comp-z{0%{opacity:0;transform:translateY(6px)}40%{opacity:1}to{opacity:0;transform:translate(8px,-10px)}}.game-quests{display:grid;gap:var(--s-3);border-radius:var(--game-radius)}.game-quest-count{padding:3px 10px;border-radius:var(--r-full);background:var(--brand-50);color:var(--brand-700);font-weight:800;font-variant-numeric:tabular-nums}.game-quest-count.all{background:var(--green-100);color:var(--green-700)}.game-quest-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.game-quest-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-radius:16px;background:var(--surface-muted);border:1px solid transparent;transition:transform var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.game-quest-list li:active{transform:scale(.99)}.game-quest-list li.done{background:var(--green-50);border-color:var(--green-100)}.game-quest-list li.just{animation:quest-pop .7s var(--game-pop) both}.game-quest-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--brand-100);color:var(--brand-700)}.done .game-quest-icon{background:var(--green-600);color:#fff}.just .game-quest-icon{animation:quest-check .6s var(--game-pop) .12s both}.game-quest-body{display:grid;gap:3px;min-width:0}.game-quest-body strong{font-size:var(--fs-sm);line-height:1.25}.game-quest-reward{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--amber-700)}.game-quest-bar{height:6px;border-radius:var(--r-full);background:var(--gray-200);overflow:hidden}.game-quest-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand-500),var(--game-mint));transform-origin:left;animation:game-grow .8s var(--ease) both}.done .game-quest-bar i{background:var(--green-600)}.game-quest-go{background:var(--brand-600);color:#fff;min-height:36px}.game-quest-done{font-size:12px;font-weight:800;color:var(--green-700)}@keyframes quest-pop{0%{transform:scale(.96)}60%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes quest-check{0%{transform:scale(.4) rotate(-20deg)}to{transform:scale(1) rotate(0)}}.game-world{display:grid;gap:var(--s-3);margin-bottom:var(--s-6);border-radius:var(--game-radius);background:radial-gradient(30rem 12rem at 50% 120%,rgb(76 195 166 / .18),transparent 70%),var(--surface)}.game-path{position:relative;list-style:none;margin:0;padding:8px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.game-path:before{content:"";position:absolute;top:42px;left:12.5%;right:12.5%;border-top:4px dashed var(--brand-200)}.game-node{position:relative;display:grid;justify-items:center;gap:4px;text-align:center}.game-node-btn{border:0;padding:0;background:none;cursor:pointer;border-radius:50%;transition:transform var(--t-fast) var(--game-pop)}.game-node-btn:not(:disabled):active{transform:scale(.93)}.game-node-btn:disabled{cursor:not-allowed}.game-node-art{display:grid;place-items:center;width:68px;height:68px;border-radius:50%;color:#fff;border:4px solid #fff;box-shadow:0 8px 18px -8px #1b235099}.game-node.locked .game-node-art{filter:grayscale(.9) brightness(.75)}.game-node.current .game-node-art{border-color:var(--game-gold);animation:node-pulse 2.4s ease-in-out infinite}.game-node.done .game-node-art:after{content:""}.game-node.unlocking .game-node-art{animation:node-unlock .9s var(--game-pop) both}.game-node-name{font-size:12px;font-weight:700;line-height:1.2}.game-node-rule{font-size:11px;color:var(--muted)}.game-node.current .game-node-rule{color:var(--amber-700);font-weight:700}@keyframes node-pulse{0%,to{box-shadow:0 0 #ffcf4a8c,0 8px 18px -8px #1b235099}50%{box-shadow:0 0 0 10px #ffcf4a00,0 8px 18px -8px #1b235099}}@keyframes node-unlock{0%{transform:scale(.6) rotate(-12deg);filter:grayscale(1)}60%{transform:scale(1.12) rotate(4deg)}to{transform:scale(1) rotate(0);filter:none}}.confetti{position:fixed;inset:0;z-index:60;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-12px;width:8px;height:12px;border-radius:2px;animation:confetti-fall 1.3s cubic-bezier(.2,.7,.4,1) both}@keyframes confetti-fall{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--drift),70vh) rotate(var(--spin));opacity:0}}.game-toasts{position:fixed;z-index:61;top:16px;right:16px;display:grid;gap:8px;max-width:min(360px,calc(100vw - 32px));pointer-events:none}.game-toast{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:16px;font-weight:700;font-size:var(--fs-sm);color:#fff;background:var(--game-navy);box-shadow:var(--game-shadow);animation:toast-in .42s var(--game-pop) both,toast-out .3s ease-in 3.2s forwards}.game-toast.tone-gold{background:linear-gradient(135deg,#ffb933,#ff8a3d);color:#3b2200}.game-toast.tone-green{background:linear-gradient(135deg,#2f9d63,#4cc3a6)}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px) scale(.92)}}@keyframes toast-out{to{opacity:0;transform:translateY(-8px)}}.levelup-dialog{width:min(380px,calc(100vw - 32px));padding:0;border:0;border-radius:28px;overflow:hidden;color:#fff;background:linear-gradient(160deg,var(--game-navy-2),var(--game-navy));box-shadow:var(--game-shadow)}.levelup-dialog::backdrop{background:#0a081eb3}.levelup-dialog[open]{animation:unlock-in .32s var(--game-pop) both}.levelup-body{position:relative;display:grid;justify-items:center;gap:8px;padding:var(--s-6) var(--s-5) var(--s-5);text-align:center}.levelup-body h2{margin:0;color:#fff;font-size:var(--fs-2xl)}.levelup-body p{margin:0 0 8px;color:#c9cff5!important}.levelup-eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--game-gold)}.levelup-glow{position:absolute;top:-40%;left:50%;width:360px;height:360px;margin-left:-180px;background:conic-gradient(from 0deg,rgb(255 207 74 / .35),transparent 25%,rgb(255 207 74 / .35) 50%,transparent 75%,rgb(255 207 74 / .35));border-radius:50%;animation:glow-spin 12s linear infinite;pointer-events:none}.levelup-body>*:not(.levelup-glow){position:relative}@keyframes glow-spin{to{transform:rotate(360deg)}}.room-summary{position:relative}.room-summary-hero{display:flex;align-items:center;gap:var(--s-3)}.game-quests,.game-world{transition:transform var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease)}@media(max-width:767px){.game-hero{grid-template-columns:minmax(0,1fr);padding:var(--s-4)}.game-hero-pet{position:absolute;top:8px;right:8px;width:84px;height:84px}.game-hero-pet .companion{width:84px;height:84px}.game-hero h1{font-size:1.15rem;padding-right:84px}.game-bubble{margin-right:76px}.game-hero-actions .btn{flex:1 1 auto}.game-node-art{width:54px;height:54px;border-width:3px}.game-path:before{top:35px}.game-toasts{top:auto;bottom:calc(84px + env(safe-area-inset-bottom));left:16px;right:16px;max-width:none}}html.game-lite .comp-body,html.game-lite .comp-head,html.game-lite .comp-tail,html.game-lite .comp-sparkles,html.game-lite .comp-z,html.game-lite .game-node.current .game-node-art,html.game-lite .levelup-glow{animation:none}html.game-lite .confetti{display:none}@media(prefers-reduced-motion:reduce){.confetti{display:none}.comp-body,.comp-head,.comp-tail,.comp-eyes,.comp-sparkles,.comp-z,.game-node.current .game-node-art,.levelup-glow{animation:none!important}}.sound-toggle{min-width:36px;justify-content:center}.sound-toggle[aria-pressed=true]{color:var(--game-gold)}.victory{position:relative;display:grid;gap:var(--s-4)}.victory-top{position:relative;display:grid;justify-items:center;gap:6px;padding:var(--s-5) var(--s-4) var(--s-4);border-radius:var(--game-radius);text-align:center;color:#fff;background:radial-gradient(20rem 10rem at 50% 0%,rgb(255 207 74 / .3),transparent 70%),linear-gradient(160deg,var(--game-navy-2),var(--game-navy));overflow:hidden}.victory-top h2{margin:0;color:#fff;font-size:var(--fs-xl)}.victory-sound{position:absolute;top:10px;right:10px;background:#ffffff1f;color:#fff;border:1px solid rgb(255 255 255 / .2)}.victory-eyebrow{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--game-gold)}.victory-chapter{margin:0;color:#c9cff5;font-size:var(--fs-sm)}.victory-rewards{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.victory-reward{position:relative;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r-full);font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.victory-reward.xp{background:var(--brand-50);color:var(--brand-700)}.victory-reward.coin{background:var(--amber-50);color:var(--amber-700)}.go .victory-reward{animation:reward-in .5s var(--game-pop) 1.25s both}.go .victory-reward.coin{animation-delay:1.5s}@keyframes reward-in{0%{opacity:0;transform:translateY(12px) scale(.85)}}.victory-coin-drop{position:absolute;inset:0;pointer-events:none}.victory-coin-drop i{position:absolute;top:-6px;left:calc(30% + var(--i) * 18%);color:var(--amber-500);opacity:0}.go .victory-coin-drop i{animation:coin-drop .7s cubic-bezier(.3,0,.6,1) calc(1.6s + var(--i) * .12s) both}@keyframes coin-drop{0%{opacity:0;transform:translateY(-36px) rotate(0)}30%{opacity:1}to{opacity:0;transform:translateY(10px) rotate(200deg)}}.victory-strengths{list-style:none;margin:0;padding:0;display:grid;gap:8px}.victory-strengths li{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:14px;background:var(--green-50)}.victory-strengths li svg{flex:none;margin-top:2px;color:var(--green-700)}.go .victory-strengths li{animation:reward-in .42s var(--ease) calc(1.9s + var(--i) * .15s) both}.victory-shelf{display:grid;gap:10px;padding:var(--s-4);border-radius:18px;background:linear-gradient(160deg,#fff7e3,#fde8c4)}.victory-shelf-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#7a4a10}.victory-shelf-head span{margin-left:auto;font-weight:800;font-variant-numeric:tabular-nums}.victory-shelf-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;align-items:end;height:46px;padding:0 6px 6px;border-bottom:6px solid #8a5a2a;border-radius:0 0 4px 4px}.victory-shelf-row i{height:60%;border-radius:3px 3px 0 0;background:#8a5a2a26}.victory-shelf-row i.on{height:100%;background:linear-gradient(180deg,#c0503a,#8a3d2f)}.victory-shelf-row i.on:nth-child(3n+2){background:linear-gradient(180deg,#3e64a8,#2d4f86)}.victory-shelf-row i.on:nth-child(3n){background:linear-gradient(180deg,#3c8d7a,#2e5d52)}.go .victory-shelf{animation:reward-in .5s var(--game-pop) 2.2s both}.go .victory-shelf-row i.new{animation:book-slide .8s var(--game-pop) 2.5s both}@keyframes book-slide{0%{transform:translateY(-60px) rotate(-25deg);opacity:0}to{transform:none;opacity:1}}.victory-unlock{display:flex;align-items:center;gap:10px;font-weight:700;color:#7a4a10}.victory-lock{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--game-gold);color:#3b2200}.go .victory-lock{animation:lock-open .9s var(--game-pop) 3s both}@keyframes lock-open{0%{transform:scale(.6)}30%{transform:rotate(-18deg) scale(1.1)}55%{transform:rotate(14deg) scale(1.1)}to{transform:none}}.victory-actions{display:flex;flex-wrap:wrap;gap:10px}.victory-actions .btn{flex:1 1 200px;justify-content:center}.go .victory-next{animation:next-nudge 1.6s ease-in-out 3.4s 2}@keyframes next-nudge{0%,to{transform:none}50%{transform:translate(4px)}}@media(prefers-reduced-motion:reduce){.go .victory-reward,.go .victory-coin-drop i,.go .victory-strengths li,.go .victory-shelf,.go .victory-shelf-row i.new,.go .victory-lock,.go .victory-next{animation:none!important;opacity:1}.victory-coin-drop{display:none}}html.game-lite .go .victory-coin-drop,html.game-lite .go .victory-next{display:none}.flame{display:inline-block;overflow:visible;flex:none}.flame-body{transform-box:fill-box;transform-origin:50% 100%}.flame-core{transform-box:fill-box;transform-origin:50% 100%;animation:flame-flicker 1.4s ease-in-out infinite}.flame-4 .flame-core,.flame-5 .flame-core{animation-duration:1s}.flame-aura{animation:comp-twinkle 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 50%}@keyframes flame-flicker{0%,to{transform:scale(1)}40%{transform:scale(.92,1.08) skew(-3deg)}70%{transform:scale(1.05,.95) skew(2deg)}}.game-chip.streak{background:#ff8a3d33;color:#ffe2c4}.levelup-gear{margin:0!important;padding:6px 12px;border-radius:var(--r-full);background:#ffcf4a2e;color:#fff3c4!important;font-weight:700;animation:reward-in .5s var(--game-pop) .4s both}.cpath{display:grid;gap:var(--s-3);margin-top:var(--s-5);border-radius:var(--game-radius);background:radial-gradient(28rem 10rem at 50% 120%,rgb(110 86 240 / .12),transparent 70%),var(--surface)}.cpath-row{position:relative;list-style:none;margin:0;padding:26px 4px 6px;display:flex;gap:10px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x proximity;overscroll-behavior-x:contain}.cpath-node{position:relative;flex:0 0 86px;display:grid;justify-items:center;scroll-snap-align:center}.cpath-node:not(:last-child):after{content:"";position:absolute;top:22px;left:calc(50% + 24px);width:calc(100% - 38px);border-top:4px dashed var(--brand-200)}.cpath-node.done:not(:last-child):after{border-top-style:solid;border-color:var(--game-gold)}.cpath-btn{display:grid;justify-items:center;gap:4px;color:inherit;text-decoration:none}.cpath-dot{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;font-weight:800;background:var(--gray-100);color:var(--muted);border:3px solid #fff;box-shadow:0 6px 14px -8px #1b235080;transition:transform var(--t-fast) var(--game-pop)}.cpath-btn:active .cpath-dot{transform:scale(.92)}.cpath-node.done .cpath-dot{background:linear-gradient(135deg,#ffcf4a,#ff9f43);color:#3b2200}.cpath-node.next .cpath-dot{background:var(--brand-600);color:#fff;border-color:var(--game-gold);animation:node-pulse 2.4s ease-in-out infinite}.cpath-title{font-size:11px;line-height:1.2;text-align:center;max-width:84px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cpath-here{position:absolute;top:-22px;white-space:nowrap;font-size:10px;font-weight:800;padding:2px 8px;border-radius:var(--r-full);background:var(--game-gold);color:var(--game-gold-ink);animation:here-bob 1.8s ease-in-out infinite}@keyframes here-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.trophy{display:grid;gap:var(--s-3);margin-bottom:var(--s-6);border-radius:var(--game-radius);background:linear-gradient(180deg,var(--surface),#fff7e8)}.trophy-count{font-weight:800;color:var(--amber-700);font-variant-numeric:tabular-nums}.trophy-shelf{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;align-items:end;padding:10px 10px 0;border-bottom:8px solid #8a5a2a;border-radius:6px 6px 4px 4px;background:linear-gradient(180deg,transparent 60%,rgb(138 90 42 / .08))}.trophy-slot{height:64px;border:2px dashed rgb(138 90 42 / .25);border-bottom:0;border-radius:4px 4px 0 0}.trophy-spine{display:flex;align-items:center;justify-content:center;height:92px;border-radius:4px 4px 0 0;background:#8a3d2f;box-shadow:inset 3px 0 #0003,inset -2px 0 #ffffff1f;color:#ffffffeb;text-decoration:none;overflow:hidden;transition:transform var(--t-fast) var(--game-pop)}.trophy-spine:nth-child(odd){height:84px}.trophy-spine:hover,.trophy-spine:focus-visible{transform:translateY(-6px)}.trophy-spine span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;font-weight:700;max-height:86%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trophy-spine.new{animation:book-slide .8s var(--game-pop) calc(.3s + var(--i) * .05s) both}@media(max-width:767px){.trophy-shelf{gap:3px;padding:8px 6px 0}.trophy-spine{height:78px}.trophy-spine:nth-child(odd){height:70px}.trophy-slot{height:52px}.trophy-spine span{font-size:9px}}@media(prefers-reduced-motion:reduce){.flame-core,.flame-aura,.cpath-node.next .cpath-dot,.cpath-here,.trophy-spine.new,.levelup-gear{animation:none!important}}html.game-lite .flame-core,html.game-lite .flame-aura,html.game-lite .cpath-here,html.game-lite .cpath-node.next .cpath-dot{animation:none}.yurt{display:block;overflow:visible}.yurt-part.built{transform-box:fill-box;transform-origin:50% 100%;animation:yurt-build .9s var(--game-pop) both}@keyframes yurt-build{0%{opacity:0;transform:translateY(-24px) scale(.85)}to{opacity:1;transform:none}}.yurt-smoke circle{animation:yurt-smoke 3s ease-in-out infinite}.yurt-smoke circle:nth-child(2){animation-delay:1.2s}@keyframes yurt-smoke{0%{opacity:0;transform:translateY(6px)}40%{opacity:.9}to{opacity:0;transform:translateY(-10px)}}.yurt-card{display:grid;gap:var(--s-3);margin-bottom:var(--s-6);border-radius:var(--game-radius);background:linear-gradient(180deg,#eaf6ff,#f6fbef)}.yurt-body{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr);gap:var(--s-4);align-items:center}.yurt-body .yurt{width:100%;height:auto}.yurt-mini{display:inline-flex;flex:none;width:44px;height:30px;margin-right:6px}.yurt-mini .yurt{width:44px;height:30px}.room-goal-row{align-items:center}@media(max-width:767px){.yurt-body{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}.yurt-body .yurt{max-width:240px}}.room-emote{position:absolute;left:50%;bottom:100%;margin-bottom:4px;font-size:22px;line-height:1;opacity:0;transform:translate(-50%,6px) scale(.6);pointer-events:none}.room-tag{position:absolute}.room-emote.show{animation:emote-pop 6s var(--game-pop) both}@keyframes emote-pop{0%{opacity:0;transform:translate(-50%,6px) scale(.6)}8%{opacity:1;transform:translate(-50%,-2px) scale(1.15)}14%,85%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-8px) scale(.9)}}.room-emotes{display:inline-flex;gap:4px}.room-emotes button{border:1px solid var(--room-line);background:#ffffff0f;border-radius:10px;font-size:18px;line-height:1;padding:5px 8px;cursor:pointer;transition:transform var(--t-fast) var(--game-pop)}.room-emotes button:active:not(:disabled){transform:scale(.88)}.room-emotes button:disabled{opacity:.35;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.yurt-part.built,.yurt-smoke circle{animation:none!important}.room-emote.show{animation:none;opacity:1;transform:translate(-50%)}}html.game-lite .yurt-smoke circle{animation:none}.game-hero{--enter: 0}.home-top>:nth-child(1){--enter: 1}.home-top>:nth-child(2){--enter: 2}.game-world{--enter: 3}.yurt-card{--enter: 4}.trophy{--enter: 5}.hero-preview{--enter: 0}.hero-panel{--enter: 1}.cpath{--enter: 0}.game-hero,.home-top>*,.game-world,.yurt-card,.trophy,.hero-preview,.hero-panel,.cpath{animation:game-rise .56s var(--game-pop) calc(var(--enter, 0) * 70ms) both}@keyframes game-rise{0%{opacity:0;transform:translateY(18px) scale(.98)}}:is(.game-hero,.game-quests,.game-world,.victory,.room-summary,.hero-page,.room-sheet,.levelup-body,.still-body,.cpath,.trophy) :is(.btn,.coin-badge,.hero-card,.map-card,.hero-chips button,.session-duration-row button){transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),transform .42s var(--game-pop)}:is(.game-hero,.game-quests,.game-world,.victory,.room-summary,.hero-page,.room-sheet,.levelup-body,.still-body,.cpath,.trophy) :is(.btn,.coin-badge,.hero-card,.map-card,.hero-chips button,.session-duration-row button):active:not(:disabled){transform:scale(.93);transition-duration:var(--t-fast),var(--t-fast),var(--t-fast),var(--t-fast),90ms}.game-chip.xp.gain{animation:xp-glow 1.6s ease-out .3s both}@keyframes xp-glow{0%{box-shadow:0 0 #ffcf4a00}25%{box-shadow:0 0 0 6px #ffcf4a73;transform:scale(1.08)}to{box-shadow:0 0 0 14px #ffcf4a00;transform:scale(1)}}.game-quest-icon{position:relative}.just .game-quest-icon:before,.just .game-quest-icon:after{content:"★";position:absolute;left:50%;top:50%;font-size:14px;color:var(--game-gold);pointer-events:none;opacity:0}.just .game-quest-icon:before{animation:star-burst-l .9s ease-out .25s both}.just .game-quest-icon:after{animation:star-burst-r .9s ease-out .33s both}@keyframes star-burst-l{0%{opacity:1;transform:translate(-50%,-50%) scale(.4)}to{opacity:0;transform:translate(-190%,-170%) scale(1.2) rotate(-40deg)}}@keyframes star-burst-r{0%{opacity:1;transform:translate(-50%,-50%) scale(.4)}to{opacity:0;transform:translate(90%,-190%) scale(1.1) rotate(35deg)}}.levelup-dialog,.still-dialog{opacity:1;transform:none;transition:opacity .22s ease,transform .32s var(--game-pop),overlay .32s allow-discrete,display .32s allow-discrete}.levelup-dialog:not([open]),.still-dialog:not([open]){opacity:0;transform:translateY(14px) scale(.92)}@starting-style{.levelup-dialog[open],.still-dialog[open]{opacity:0;transform:translateY(14px) scale(.92)}}.levelup-dialog::backdrop,.still-dialog::backdrop{transition:background-color .26s ease,overlay .26s allow-discrete,display .26s allow-discrete}@starting-style{.levelup-dialog[open]::backdrop,.still-dialog[open]::backdrop{background-color:#0a081e00}}.levelup-dialog[open]{animation:none}@media(prefers-reduced-motion:reduce){.game-hero,.home-top>*,.game-world,.yurt-card,.trophy,.hero-preview,.hero-panel,.cpath,.game-chip.xp.gain,.just .game-quest-icon:before,.just .game-quest-icon:after{animation:none!important}.levelup-dialog,.still-dialog{transition:none}}html.game-lite .game-chip.xp.gain{animation:none}.mobile-only{display:none}@media(max-width:767px){.mobile-only{display:flex}.room-page{height:calc(100dvh - 150px - env(safe-area-inset-bottom));min-height:480px;border-radius:var(--r-lg)}.room-hud{left:var(--s-3);right:var(--s-3)}.room-sheet{left:var(--s-3);right:var(--s-3);bottom:var(--s-3);gap:10px}.room-hint{display:none}}@media(prefers-reduced-motion:reduce){.room-bar i{transition:none}}.school-pending{max-width:560px;margin:var(--s-10) auto;display:grid;gap:var(--s-3);text-align:center;justify-items:center}.school-pending h1{font-size:var(--fs-2xl);margin:0}.school-pending-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--amber-50, #fffbeb);color:var(--amber-700, #b45309)}.school-pending-card{width:100%;text-align:left;display:grid;gap:var(--s-4)}.school-pending-card dl{margin:0;display:grid;gap:var(--s-2)}.school-pending-card dl>div{display:flex;justify-content:space-between;gap:var(--s-3)}.school-pending-card dt{color:var(--muted)}.school-pending-card dd{margin:0;font-weight:600;text-align:right}.school-pending-steps{list-style:none;margin:0;padding:var(--s-3) 0 0;border-top:1px solid var(--border);display:grid;gap:var(--s-2)}.school-pending-steps li{display:flex;align-items:center;gap:var(--s-2);color:var(--muted)}.school-pending-steps li.done{color:var(--green-700, #15803d)}.school-pending-steps li.current{color:var(--text);font-weight:600}.school-applications{border-color:var(--amber-300, #fcd34d)}:root{--sat: 0px}html.native{--sat: env(safe-area-inset-top, 0px)}html.native body{padding-top:var(--sat)}html.native body:before{content:"";position:fixed;inset:0 0 auto;z-index:1000;height:var(--sat);background:var(--surface);pointer-events:none}html.native .sidebar,html.native .lp-nav{top:var(--sat)}html.native .sidebar{height:calc(100vh - var(--sat))}html.native .reader-bar,html.native .sl-new{top:calc(var(--s-3) + var(--sat))}@media(min-width:1101px){html.native .lib-side,html.native .sl-aside{top:calc(var(--s-6) + var(--sat))}}html.native .audio-bar{top:calc(64px + var(--sat))}@media(max-width:767px){html.native .topbar{top:var(--sat)}html.native .sidebar{top:auto;height:auto}html.native .audio-bar{top:auto}html.native .share-dialog{padding-top:var(--sat)}}.room-page{--glass: rgb(17 24 62 / .74);--glass-strong: rgb(15 21 54 / .9);--glass-line: rgb(170 190 255 / .22);--glass-gold: rgb(255 214 140 / .38);--teal: #3fd6c8;--gold-1: #ffd75a;--gold-2: #f5a524;height:min(900px,calc(100dvh - 130px));background:radial-gradient(120% 90% at 70% 10%,#3a2c7a,#1b1d4a 45%,#0e1230)}.room-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.room-decor{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.room-owl{position:absolute;left:7%;top:46%;filter:drop-shadow(0 10px 14px rgb(0 0 0 / .45))}.owl-head{transform-box:fill-box;transform-origin:50% 90%;animation:owl-tilt 6s ease-in-out infinite}.owl-eyes{transform-box:fill-box;transform-origin:50% 50%;animation:comp-blink 4.6s infinite 1.2s}@keyframes owl-tilt{0%,to{transform:rotate(0)}45%{transform:rotate(-7deg)}60%{transform:rotate(4deg)}}.room-hero{position:absolute;left:24%;bottom:9%;display:grid;justify-items:center}.room-hero .companion{position:relative;z-index:1;filter:drop-shadow(0 8px 10px rgb(0 0 0 / .4))}.room-hero-pin{display:grid;place-items:center;width:44px;height:44px;margin-bottom:4px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:linear-gradient(135deg,var(--gold-1),var(--gold-2));color:#3b2200;box-shadow:0 0 22px #ffc850b3;animation:pin-bob 2.4s ease-in-out infinite}.room-hero-pin svg{transform:rotate(45deg)}@keyframes pin-bob{0%,to{translate:0 0}50%{translate:0 -6px}}.room-hero-ring{width:150px;height:46px;margin-top:-30px;border-radius:50%;border:3px solid rgb(255 214 120 / .85);background:radial-gradient(closest-side,rgb(255 210 110 / .55),rgb(255 190 80 / .1) 70%,transparent);box-shadow:0 0 30px #ffc85a8c;animation:ring-glow 3s ease-in-out infinite}@keyframes ring-glow{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.room-spark{position:absolute;left:calc(6% + var(--i) * 10.5%);top:calc(18% + var(--i) * 6.5%);width:5px;height:5px;border-radius:50%;background:#ffe9a8;box-shadow:0 0 10px 2px #ffd678b3;opacity:0;animation:spark-float 7s ease-in-out infinite;animation-delay:calc(var(--i) * -.8s)}.room-spark:nth-child(3n){background:#c9d8ff;box-shadow:0 0 10px 2px #96b4ffb3}@keyframes spark-float{0%{opacity:0;transform:translateY(20px) scale(.6)}30%,70%{opacity:.9}to{opacity:0;transform:translateY(-50px) scale(1)}}.room-hud{max-width:660px;gap:10px;z-index:2}.room-goal{display:flex;align-items:center;gap:14px;padding:12px 18px;border-radius:18px;background:var(--glass);border:1px solid var(--glass-line);box-shadow:0 12px 30px -12px #0009,inset 0 1px #ffffff14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.room-goal-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;color:#fff;background:linear-gradient(135deg,#5b7cf0,#3a4fc4);box-shadow:inset 0 1px #ffffff40}.room-goal-main{flex:1;min-width:0;display:grid;gap:8px}.room-goal-label{display:inline-flex;align-items:center;gap:6px;font-size:15px;letter-spacing:0;text-transform:none;color:#f2f4ff}.room-goal-label svg{color:var(--gold-1);fill:currentColor}.room-goal-num{font-size:17px;color:#fff}.room-bar{height:6px;background:#ffffff1f}.room-bar i{background:linear-gradient(90deg,var(--teal),#8af3e8);box-shadow:0 0 10px #3fd6c899}.room-chips{justify-content:center;gap:8px}.room-chip,.room-chip.coin-badge{height:40px;padding:0 14px;gap:8px;font-size:14px;border-radius:var(--r-full);background:var(--glass);border:1px solid var(--glass-line);color:#f2f4ff;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.room-chip svg{color:#c7d2ff}.room-chip.coin-badge svg{color:var(--gold-1)}.room-view{padding:3px}.room-view button{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;font-size:14px;color:#c9d1f5}.room-view button[aria-pressed=true]{background:linear-gradient(135deg,#5b7cf0,#4057d6);color:#fff;box-shadow:0 4px 12px -4px #4057d6cc}.room-view button[aria-pressed=true] svg{color:#fff}.room-settings-btn{position:absolute;z-index:3;top:16px;right:16px;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--glass-line);background:var(--glass);color:#e8ecff;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .42s var(--game-pop)}.room-settings-btn:active{transform:scale(.9) rotate(30deg)}.room-settings-btn[aria-expanded=true]{border-color:var(--glass-gold);color:var(--gold-1)}.room-settings{position:absolute;z-index:3;top:72px;right:16px;width:min(360px,calc(100% - 32px));max-height:calc(100% - 96px);overflow-y:auto;display:grid;gap:10px;padding:14px;border-radius:18px;background:var(--glass-strong);border:1px solid var(--glass-line);color:var(--room-ink);box-shadow:0 18px 40px -16px #000000b3;animation:game-rise .36s var(--game-pop) both}.room-sheet{left:auto;right:24px;bottom:24px;margin:0;width:min(560px,calc(100% - 48px));max-width:none;padding:20px;gap:14px;border-radius:24px;z-index:2;background:radial-gradient(30rem 12rem at 100% 0%,rgb(255 210 120 / .08),transparent 70%),var(--glass-strong);border:1px solid var(--glass-gold);box-shadow:0 24px 50px -20px #000000bf,inset 0 1px #ffffff14;overflow:visible;animation:sheet-in .6s var(--game-pop) .12s both}@keyframes sheet-in{0%{opacity:0;transform:translateY(28px) scale(.97)}}.room-sheet.confirmed{animation:sheet-confirm 1s ease-out both}@keyframes sheet-confirm{0%{box-shadow:0 0 #3fd6c8b3,0 24px 50px -20px #000000bf}to{box-shadow:0 0 0 18px #3fd6c800,0 24px 50px -20px #000000bf}}.room-sheet-head{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;padding-right:120px}.room-sheet-head h2{margin:0;font-size:1.2rem;color:#fff}.room-sheet-head p{margin:2px 0 0;font-size:var(--fs-sm);color:#b9c2e6}.room-sheet-icon{display:grid;place-items:center;width:60px;height:60px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#6c8cff,#3a4fc4);box-shadow:0 8px 18px -8px #4664e6e6,inset 0 1px #ffffff4d}.room-sheet-pet{position:absolute;right:-6px;top:-64px;display:flex;align-items:flex-start}.room-sheet-bubble{position:absolute;right:64px;top:52px;white-space:nowrap;padding:6px 10px;border-radius:12px 12px 4px;background:#fffaf0;color:#2b2240;font-size:12px;font-weight:700;box-shadow:0 6px 14px -6px #00000080;animation:bubble-in .42s var(--game-pop) .8s both}.room-book{gap:14px;padding:10px;border-radius:16px;background:#ffffff0d;border:1px solid var(--glass-line)}.room-cover{width:66px;height:92px;padding:6px;border-radius:6px 10px 10px 6px;border:2px solid rgb(255 214 140 / .55);box-shadow:0 8px 16px -8px #000000b3,inset 4px 0 #0003;place-items:end center;overflow:hidden}.room-cover span{font-size:9px;line-height:1.15;text-align:center;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.room-book-text strong{font-size:1.05rem;color:#fff}.room-book-text span{color:#b9c2e6}.room-book-text span.muted{color:var(--room-muted)}.session-duration-label{color:#9fa9d6}.session-duration-row{gap:10px}.session-duration-row button{min-height:50px;border-radius:14px;background:#ffffff0d;border-color:var(--glass-line);color:#e8ecff;font-size:15px}.session-duration-row button[aria-pressed=true]{border-color:var(--gold-1);color:var(--gold-1);background:#ffd25a1a;animation:dur-glow .7s ease-out}@keyframes dur-glow{0%{box-shadow:0 0 #ffd25aa6}to{box-shadow:0 0 0 12px #ffd25a00}}.room-sheet .btn-primary.room-start{min-height:58px;border-radius:16px;font-size:1.12rem;font-weight:800;color:#2a1700;background:linear-gradient(180deg,var(--gold-1) 0%,var(--gold-2) 100%);box-shadow:0 12px 26px -10px #f5a524d9,inset 0 2px #ffffff73,inset 0 -3px #aa640059}.room-sheet .btn-primary.room-start:hover:not(:disabled){filter:brightness(1.05)}.room-sheet .btn-primary.room-start:disabled{opacity:.55}@media(max-width:1100px){.room-owl{display:none}.room-hero{left:6%;bottom:auto;top:30%}}@media(max-width:767px){.room-page{height:calc(100dvh - 140px - env(safe-area-inset-bottom));min-height:600px}.room-hud{left:12px;right:66px}.room-goal{padding:10px 12px;gap:10px}.room-goal-icon{width:34px;height:34px}.room-goal-label{font-size:13px}.room-goal-num{font-size:14px}.room-chips{justify-content:flex-start;gap:6px}.room-chip,.room-chip.coin-badge{height:34px;padding:0 10px;font-size:12px}.room-view button{height:28px;padding:0 10px;font-size:12px}.room-settings-btn{top:12px;right:12px;width:44px;height:44px}.room-settings{top:64px;right:12px}.room-sheet{left:12px;right:12px;bottom:12px;width:auto;padding:14px;gap:10px;border-radius:20px;max-height:62%;overflow-y:auto}.room-sheet-head{padding-right:70px;gap:10px}.room-sheet-icon{width:44px;height:44px}.room-sheet-head h2{font-size:1.05rem}.room-sheet-pet{top:-8px;right:-4px}.room-sheet-pet .companion{width:58px;height:58px}.room-sheet-bubble{display:none}.room-cover{width:50px;height:70px}.session-duration-row button{min-height:46px}.room-hero{left:4%;top:34%;transform:scale(.75);transform-origin:left top}.room-spark:nth-child(n+6){display:none}}@media(prefers-reduced-motion:reduce){.owl-head,.owl-eyes,.room-hero-pin,.room-hero-ring,.room-spark,.room-sheet,.room-sheet.confirmed,.room-sheet-bubble,.session-duration-row button[aria-pressed=true]{animation:none!important}.room-spark{display:none}}html.game-lite .room-spark,html.game-lite .owl-head,html.game-lite .room-hero-ring{animation:none}html.game-lite .room-spark{display:none}@media(min-width:768px){main.content:has(.room-page){max-width:none;padding:14px 14px 14px 0}main.content:has(.room-page) .room-page{height:calc(100dvh - 28px);min-height:600px}}.room-goal-num{white-space:nowrap}@media(max-width:767px){.room-sheet .btn-primary.room-start{position:sticky;bottom:0;z-index:2;box-shadow:0 -10px 18px #0e102cd9,0 6px 18px #f5a52459}}.room-page.is-hall{container-type:size}.room-art{--w: max(100cqw, calc(100cqh * var(--ar)));--h: max(100cqh, calc(100cqw / var(--ar)));position:absolute;z-index:0;width:var(--w);height:var(--h);left:calc((100cqw - var(--w)) * var(--fx));top:calc((100cqh - var(--h)) * var(--fy))}.room-art .room-backdrop{object-fit:fill}.room-art-layer{position:absolute;inset:0;pointer-events:none}.room-lamp{position:absolute;width:9%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:radial-gradient(closest-side,rgb(255 205 120 / .5),rgb(255 170 70 / .16) 55%,transparent);mix-blend-mode:screen;animation:lamp-breathe 4.2s ease-in-out infinite;animation-delay:calc(var(--i) * -.7s)}@keyframes lamp-breathe{0%,to{opacity:.5;scale:.92}50%{opacity:1;scale:1.05}}.room-art-hero{position:absolute;translate:-50% -100%;display:grid;justify-items:center}.room-art-hero .room-hero-pin{margin-bottom:clamp(70px,13cqh,140px)}.room-art-hero .room-hero-ring{margin-top:0;translate:0 50%;width:clamp(110px,11cqw,170px);height:clamp(34px,3.6cqw,54px);mix-blend-mode:screen}.room-tag{position:absolute;translate:-50% -100%;max-width:130px;padding:4px 10px;border-radius:999px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;color:#fff;background:#141846b8;border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:tag-in .5s ease-out both}.room-tag:before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 8px var(--teal)}.room-tag.paused:before{background:#9aa3c7;box-shadow:none}@keyframes tag-in{0%{opacity:0;translate:-50% -80%}}.room-page.is-hall:has(.room-art):after{content:"";position:absolute;inset:0 0 auto;height:160px;z-index:1;pointer-events:none;background:linear-gradient(rgb(14 14 46 / .45),transparent)}@media(max-width:767px){.room-tag{font-size:11px;max-width:96px}.room-lamp:nth-child(n+4){display:none}}@media(prefers-reduced-motion:reduce){.room-lamp,.room-tag{animation:none!important}}html.game-lite .room-lamp{animation:none}@media(max-width:767px){.room-page.is-hall:has(.room-art){--art-h: clamp(380px, 112vw, 520px);container-type:inline-size;height:auto;min-height:0;overflow:clip;display:flex;flex-direction:column}.room-page.is-hall:has(.room-art) .room-art{--w: max(100cqw, calc(var(--art-h) * var(--ar)));position:relative;flex:none;width:var(--w);height:var(--art-h);left:auto;top:auto;margin-left:calc((100cqw - var(--w)) * var(--fx))}.room-page.is-hall:has(.room-art) .room-art-hero .room-hero-pin{margin-bottom:64px}.room-page.is-hall:has(.room-art) .room-sheet{position:relative;inset:auto;margin:-56px 12px 12px;width:auto;max-height:none;overflow:visible}.room-page.is-hall:has(.room-art) .room-sheet .btn-primary.room-start{bottom:calc(76px + env(safe-area-inset-bottom))}.room-page.is-hall:has(.room-art) .room-decor{bottom:auto;height:var(--art-h)}}@media(min-width:768px)and (max-width:1100px){.room-page.is-hall:has(.room-art) .room-sheet{width:min(420px,calc(100% - 48px))}}@media(min-width:768px)and (max-width:1100px){.room-page.is-hall:has(.room-art) .room-sheet{max-height:calc(100% - 220px);overflow-y:auto}.room-page.is-hall:has(.room-art) .room-sheet .btn-primary.room-start{position:sticky;bottom:0;z-index:2}.room-page.is-hall:has(.room-art) .room-sheet-bubble{display:none}}@media(min-width:1101px){.room-page.is-hall:has(.room-art) .room-sheet{max-height:calc(100% - 200px);overflow-y:auto}.room-page.is-hall:has(.room-art) .room-sheet .btn-primary.room-start{position:sticky;bottom:0;z-index:2}}.room-spot{position:absolute;translate:-50% -50%;display:block;padding:0;border:0;border-radius:22px;background:transparent;color:inherit;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:box-shadow .2s ease,background-color .2s ease}.room-spot:after{content:"";position:absolute;left:50%;top:6%;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#fff6d6;box-shadow:0 0 0 4px #ffd67859,0 0 14px 4px #ffc85aa6;animation:spot-ping 2.6s ease-in-out infinite}.room-spot-hero:after{display:none}@keyframes spot-ping{0%,to{scale:.8;opacity:.75}50%{scale:1.15;opacity:1}}.room-spot:hover,.room-spot:focus-visible{outline:none;background:#ffdc8c1f;box-shadow:0 0 0 2px #ffd678d9,0 0 26px 4px #ffc85a73}.room-spot:active{scale:.97}.room-spot-label{position:absolute;left:50%;bottom:calc(100% + 8px);translate:-50% 4px;padding:5px 10px;border-radius:999px;white-space:nowrap;font-size:12px;font-weight:700;color:#fff;background:#141846d9;border:1px solid var(--glass-gold);opacity:0;pointer-events:none;transition:opacity .18s ease,translate .18s ease}.room-spot:hover .room-spot-label,.room-spot:focus-visible .room-spot-label{opacity:1;translate:-50% 0}.room-owl-tip{position:absolute;z-index:2;translate:-30% calc(-100% - 10px);width:max-content;max-width:min(260px,70cqw);margin:0;padding:10px 14px;border-radius:16px 16px 16px 4px;background:#fffaf0;color:#2b2240;font-size:13px;font-weight:600;line-height:1.35;box-shadow:0 10px 22px -10px #0009;animation:bubble-in .38s var(--game-pop) both}@media(hover:none){.room-spot-label{opacity:.92;translate:-50% 0;font-size:11px}}@media(prefers-reduced-motion:reduce){.room-spot:after,.room-owl-tip{animation:none!important}}html.game-lite .room-spot:after{animation:none}.room-book .book-cover.room-cover{flex:none;width:66px;height:92px;aspect-ratio:auto;box-sizing:border-box;padding:8px 6px 6px 10px;font-size:9px}@media(max-width:767px){.room-book .book-cover.room-cover{width:50px;height:70px}}@media(min-width:768px){.room-page.is-hall:has(.room-art) .room-sheet-head{padding-right:84px}.room-page.is-hall:has(.room-art) .room-sheet-pet{top:-4px;right:-2px}.room-page.is-hall:has(.room-art) .room-sheet-pet .companion{width:66px;height:66px}.room-page.is-hall:has(.room-art) .room-sheet-bubble{right:70px;top:-2px;animation:bubble-in .42s var(--game-pop) .8s both,bubble-out .4s ease 6s forwards}}@keyframes bubble-out{to{opacity:0;visibility:hidden}}@media(max-width:767px){.room-page.is-hall:has(.room-art) .room-art{margin-left:calc((100cqw - var(--w)) * min(var(--fx),.18))}.room-owl-tip{translate:-12% 72px;border-radius:4px 16px 16px;max-width:min(240px,64cqw)}}.trophy-case{position:relative;padding:14px 14px 0;border-radius:14px 14px 8px 8px;background:radial-gradient(120% 90% at 50% 0%,rgb(255 210 140 / .28),transparent 60%),linear-gradient(180deg,#5a3a22,#3e2716);box-shadow:inset 0 0 0 3px #7a4f2c,inset 0 10px 24px -10px #0009}.trophy-case .trophy-shelf{padding:0 4px;border-bottom:0;background:none;min-height:104px}.trophy-case:after{content:"";display:block;height:12px;margin:0 -14px;border-radius:0 0 8px 8px;background:linear-gradient(180deg,#c58a4e 0 3px,#8a5a2a 3px 100%);box-shadow:0 6px 10px -6px #00000080}.trophy-case .trophy-slot{position:relative;display:grid;place-items:end center;padding-bottom:6px;border-color:#ffd69638;background:#ffd6960a}.trophy-slot small{font-size:10px;font-weight:700;letter-spacing:.02em;color:#ffe2b48c;text-transform:lowercase}.trophy-case .trophy-spine{position:relative;box-shadow:inset 3px 0 #00000040,inset -2px 0 #ffffff24,0 4px 8px -4px #0009}.trophy-current{height:98px;transform:rotate(-6deg) translateY(-4px);transform-origin:50% 100%;outline:2px solid rgb(255 214 120 / .85);outline-offset:1px;filter:saturate(.75) brightness(.9)}.trophy-case .trophy-current:hover,.trophy-case .trophy-current:focus-visible{transform:rotate(-3deg) translateY(-10px)}.trophy-fill{position:absolute;inset:auto 0 0;height:var(--pct);background:linear-gradient(0deg,#ffd6788c,#ffd67826);pointer-events:none;transition:height .9s var(--game-pop)}.trophy-badge{position:absolute;top:4px;left:50%;translate:-50% 0;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:800;color:#3b2200;background:linear-gradient(135deg,#ffd75a,#f5a524);box-shadow:0 2px 6px #00000059;white-space:nowrap}.trophy-current span{position:relative;z-index:1}.trophy-note{display:flex;align-items:center;gap:6px;margin:0}@media(max-width:767px){.trophy-case{padding:12px 8px 0}.trophy-case:after{margin:0 -8px}.trophy-case .trophy-shelf{min-height:88px}.trophy-current{height:82px}.trophy-slot small{font-size:8px}.trophy-badge{font-size:8px;padding:1px 4px}}@media(prefers-reduced-motion:reduce){.trophy-fill{transition:none}}.game-world{background:radial-gradient(34rem 14rem at 50% 130%,rgb(255 200 110 / .22),transparent 70%),radial-gradient(28rem 12rem at 10% -20%,rgb(124 92 255 / .12),transparent 70%),var(--surface)}.game-path:before{display:none}.game-node-btn{position:relative;z-index:1}.game-node-art.has-art{color:transparent}.game-node.locked .game-node-art.has-art{color:#fff}.game-node.done .game-node-art,.game-node.current .game-node-art{box-shadow:0 0 0 3px #ffd67859,0 8px 18px -8px #1b235099}.game-seg{--art: 68px;position:absolute;top:calc(var(--art) / 2);left:calc(50% + var(--art) / 2 - 4px);width:calc(100% + 8px - var(--art) + 8px);height:6px;translate:0 -50%;border-radius:999px;background:repeating-linear-gradient(90deg,var(--brand-200) 0 8px,transparent 8px 14px)}.game-seg:after{content:"";position:absolute;inset:0 auto 0 0;width:calc(var(--fill) * 100%);border-radius:inherit;background:linear-gradient(90deg,#ffd75a,#f5a524);box-shadow:0 0 10px #ffbe4699;transition:width 1.2s var(--game-pop) .4s}.game-node-pet{position:absolute;z-index:2;top:-18px;left:calc(50% + 14px);pointer-events:none;filter:drop-shadow(0 4px 6px rgb(0 0 0 / .25))}.game-node-pet.arrived{animation:pet-arrive 1.3s var(--game-pop) .5s both}@keyframes pet-arrive{0%{translate:-140% 0;opacity:0}25%{translate:-100% -14px;opacity:1}50%{translate:-55% 0}75%{translate:-20% -10px}to{translate:0 0}}@media(max-width:767px){.game-seg{--art: 54px;height:5px}.game-node-pet{top:-16px;left:calc(50% + 8px)}.game-node-pet .companion{width:34px;height:34px}}@media(prefers-reduced-motion:reduce){.game-seg:after{transition:none}.game-node-pet.arrived{animation:none}}html.game-lite .game-node-pet.arrived{animation:none}.yurt-card{position:relative;overflow:hidden;isolation:isolate;color:#f4f1ff;border:0;background:radial-gradient(60% 50% at 78% 100%,rgb(255 170 90 / .45),transparent 70%),linear-gradient(180deg,#2a1d6e,#5a3a9a 55%,#c07ab0)}.yurt-sky{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 28% 32%,rgb(255 255 255 / .7) 50%,transparent 51%),radial-gradient(2px 2px at 46% 12%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 63% 26%,rgb(255 255 255 / .8) 50%,transparent 51%),radial-gradient(2px 2px at 82% 14%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 92% 36%,rgb(255 255 255 / .6) 50%,transparent 51%),radial-gradient(120% 60% at 20% 118%,#2f5a3a 60%,transparent 61%),radial-gradient(120% 55% at 85% 122%,#24472e 60%,transparent 61%);animation:yurt-twinkle 5s ease-in-out infinite}@keyframes yurt-twinkle{0%,to{opacity:1}50%{opacity:.82}}.yurt-card h3{color:#fff}.yurt-count{padding:4px 12px;border-radius:999px;font-weight:800;font-variant-numeric:tabular-nums;color:#3b2200;background:linear-gradient(135deg,#ffd75a,#f5a524);box-shadow:0 4px 12px -4px #f5a524b3}.yurt-ghost{fill:#ffffff1a;stroke:#ffecc88c}.yurt-body .yurt{filter:drop-shadow(0 10px 18px rgb(20 10 50 / .5))}.yurt-card.stage-4 .yurt-body .yurt{filter:drop-shadow(0 0 22px rgb(255 210 120 / .65)) drop-shadow(0 10px 18px rgb(20 10 50 / .5))}.yurt-info{display:grid;gap:10px;min-width:0}.yurt-info strong{font-size:1.05rem;color:#fff}.yurt-steps{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.yurt-steps li{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;font-size:12px;font-weight:700;color:#f4f1ffb3;background:#ffffff14;border:1px solid rgb(255 255 255 / .14)}.yurt-step-dot{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:11px;background:#ffffff24}.yurt-steps li.done{color:#fff;background:#3fd6c82e;border-color:#3fd6c880}.yurt-steps li.done .yurt-step-dot{color:#0d3b37;background:#3fd6c8}.yurt-steps li.next{color:#fff;border-color:#ffd678b3;box-shadow:0 0 12px #ffc85a59}.yurt-steps li.next .yurt-step-dot{color:#3b2200;background:#ffd75a}.yurt-bar{height:8px;border-radius:999px;background:#ffffff24;overflow:hidden}.yurt-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3fd6c8,#ffd75a);transition:width 1s var(--game-pop)}.yurt-note{margin:0;color:#f4f1ffd9}.yurt-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.yurt-foot:empty{display:none}.yurt-me{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:700;background:#ffffff1f;border:1px solid rgb(255 255 255 / .18)}.btn.yurt-cta{color:#3b2200;border:0;background:linear-gradient(135deg,#ffd75a,#f5a524);box-shadow:0 6px 14px -6px #f5a524cc}.btn.yurt-cta:hover{filter:brightness(1.05)}@media(max-width:767px){.yurt-steps,.yurt-foot{justify-content:center}}@media(prefers-reduced-motion:reduce){.yurt-sky{animation:none}.yurt-bar i{transition:none}}html.game-lite .yurt-sky{animation:none}.game-hero.has-art{background:linear-gradient(90deg,#161240f0,#1e1850d1 45%,#1e185059),var(--hero-art) 70% 45% / cover no-repeat,var(--game-navy)}.game-hero.has-art .game-hero-pet{background:radial-gradient(circle at 50% 60%,#ffd28259,#ffbe5a0f 70%);box-shadow:0 0 0 3px #ffd67859,0 0 30px #ffc85a40}@media(max-width:767px){.game-hero.has-art{background:linear-gradient(180deg,#161240b3,#161240eb 55%),var(--hero-art) 30% 50% / cover no-repeat,var(--game-navy)}}.stats.compact{gap:var(--s-3)}.stats.compact .stat{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:12px 14px;border-radius:var(--game-radius)}.stats.compact .stat .chip{grid-row:1 / span 2;margin:0;width:40px;height:40px;border-radius:12px}.stats.compact .stat .num{grid-column:2;grid-row:1;margin:0;font-size:1.25rem}.stats.compact .stat .cap{grid-column:2;grid-row:2;font-size:12px}.stats.compact .stat .stat-foot{grid-column:2;font-size:11px}@media(max-width:767px){.stats.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}.hero-preview.has-art{isolation:isolate;background:radial-gradient(60% 40% at 50% 92%,rgb(255 200 110 / .45),transparent 70%),linear-gradient(180deg,#1c144659,#1c1446bf),var(--stage-art) 30% 55% / cover no-repeat,#2a1d6e}.hero-preview.has-art:before{content:"";position:absolute;inset:0;z-index:-1;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.hero-preview.has-art .hero-drag{color:#fff0dcd9}.hero-preview.has-art .hero-tryon{color:#2b2240}.hero-ring{position:absolute;left:50%;bottom:9%;width:min(300px,62%);aspect-ratio:4 / 1;translate:-50% 0;border-radius:50%;border:3px solid rgb(255 214 120 / .8);background:radial-gradient(closest-side,rgb(255 210 110 / .45),rgb(255 190 80 / .08) 70%,transparent);box-shadow:0 0 34px #ffc85a80;pointer-events:none;animation:ring-glow 3s ease-in-out infinite}.hero-preview:not(.has-art) .hero-ring{display:none}.hero-preview.hop .hero-stage{animation:hero-hop .9s var(--game-pop)}@keyframes hero-hop{0%,to{translate:0 0}30%{translate:0 -26px}55%{translate:0 0}70%{translate:0 -8px}}.hero-earn{display:grid;gap:8px;padding:12px 14px;border-radius:var(--r-lg);background:linear-gradient(135deg,#fff7e3,#fff0d2);border:1px solid var(--amber-200, #fde4a8)}.hero-earn strong{display:inline-flex;align-items:center;gap:6px;color:var(--amber-700)}.hero-earn ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:0;padding:0;list-style:none;font-size:12px}.hero-earn li{display:flex;align-items:flex-start;gap:6px;line-height:1.3}.hero-earn li svg{flex:none;margin-top:1px;color:var(--amber-700)}.hero-filter{display:flex;flex-wrap:wrap;gap:6px}.hero-filter button{padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.hero-filter button[aria-pressed=true]{color:#fff;border-color:transparent;background:var(--brand-600)}.hero-trybar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:var(--r-lg);background:var(--brand-50);border:1px solid var(--brand-200);animation:bubble-in .3s var(--game-pop) both}.hero-trybar img,.hero-trybar .hero-thumb-empty{width:48px;height:48px;border-radius:10px}.hero-trybar-text{display:grid;gap:2px;min-width:0}.hero-trybar-text strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-trybar-text span{display:inline-flex;align-items:center;gap:4px;color:var(--amber-700);font-weight:700}.hero-trybar-actions{display:flex;gap:6px}.hero-card.picked{border-color:var(--brand-500);box-shadow:0 0 0 2px var(--brand-200)}.hero-card.affordable{border-color:var(--amber-400);box-shadow:0 0 0 2px #ffd67873,0 6px 16px -8px #f5a524b3}.hero-card-goal{display:grid;gap:3px;width:80%}.hero-card-bar{height:4px;border-radius:999px;background:var(--border);overflow:hidden}.hero-card-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffd75a,#f5a524)}.hero-card-left{font-size:10px;font-weight:700;color:var(--muted)}.hero-card.affordable .hero-card-left{color:var(--green-700, #15803d)}@media(max-width:767px){.hero-earn ul{grid-template-columns:minmax(0,1fr)}.hero-trybar{grid-template-columns:auto minmax(0,1fr)}.hero-trybar-actions{grid-column:1 / -1}.hero-trybar-actions .btn{flex:1}}@media(prefers-reduced-motion:reduce){.hero-ring,.hero-preview.hop .hero-stage,.hero-trybar{animation:none!important}}html.game-lite .hero-ring{animation:none}.hero-rewards{display:grid;gap:8px;padding:12px;border-radius:var(--r-lg);background:linear-gradient(160deg,#2a1d6e,#4a2f8f);color:#f4f1ff}.hero-rewards>strong{display:inline-flex;align-items:center;gap:6px;color:#ffd75a}.hero-rewards>p{margin:0;color:#f4f1ffbf!important}.hero-reward-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none}.hero-reward{width:100%;height:100%;display:grid;justify-items:center;align-content:start;gap:4px;padding:8px 4px;border-radius:12px;border:1px solid rgb(255 255 255 / .14);background:#ffffff0f;color:inherit;font:inherit;cursor:pointer;transition:transform var(--t-fast) var(--game-pop),border-color var(--t-fast) var(--ease)}.hero-reward:hover{transform:translateY(-2px)}.hero-reward.open{border-color:#ffd678cc;background:#ffd6781f;box-shadow:0 0 14px #ffc85a4d}.hero-reward.picked{border-color:#fff}.hero-reward-art{position:relative}.hero-reward-art img,.hero-reward-art .hero-thumb-empty{width:54px;height:54px;border-radius:10px;background:#ffffff1f}.hero-reward:not(.open) .hero-reward-art img{filter:grayscale(.7) brightness(.8)}.hero-reward-lock{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;color:#3b2200;background:#ffd75a}.hero-reward .hero-card-name{color:#fff;font-size:11px}.hero-reward-rule{font-size:10px;line-height:1.2;text-align:center;color:#f4f1ffb3}.hero-reward .hero-card-goal{width:90%}.hero-reward .hero-card-bar{background:#ffffff26}.hero-reward .hero-card-left{color:#f4f1ffcc;text-align:center}.hero-reward-ok{padding:2px 8px;border-radius:999px;font-size:10px;font-weight:800;color:#3b2200;background:linear-gradient(135deg,#ffd75a,#f5a524)}@media(max-width:767px){.hero-reward-list{grid-template-columns:repeat(3,minmax(0,1fr))}}.podium{position:relative;margin:4px 0 var(--s-5);padding:18px 16px 0;border-radius:var(--game-radius, 20px);overflow:hidden;background:radial-gradient(60% 70% at 50% 0%,rgb(255 214 120 / .35),transparent 70%),linear-gradient(180deg,#2a1d6e,#4a2f8f 70%,#5a3a9a);color:#fff}.podium:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;background:linear-gradient(35deg,#ffd75a 0 0) 8% 18% / 6px 12px no-repeat,linear-gradient(-25deg,#3fd6c8 0 0) 18% 42% / 5px 10px no-repeat,linear-gradient(60deg,#f06292 0 0) 30% 12% / 6px 11px no-repeat,linear-gradient(-40deg,#ffd75a 0 0) 72% 16% / 6px 12px no-repeat,linear-gradient(20deg,#8fb8ff 0 0) 84% 40% / 5px 10px no-repeat,linear-gradient(-60deg,#f5a524 0 0) 93% 14% / 6px 11px no-repeat,linear-gradient(45deg,#3fd6c8 0 0) 60% 30% / 5px 9px no-repeat,linear-gradient(-15deg,#f06292 0 0) 42% 36% / 5px 10px no-repeat}.podium-title{position:relative;margin:0 0 6px;text-align:center;color:#ffd75a;font-size:1rem}.podium-stage{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:8px;margin:0;padding:0;list-style:none}.podium-slot{display:grid;justify-items:center;gap:4px;min-width:0;animation:podium-in .7s var(--game-pop, cubic-bezier(.34, 1.56, .64, 1)) both;animation-delay:calc(var(--d, 0) * .16s + .1s)}.podium-cup{width:56px;height:64px;filter:drop-shadow(0 6px 10px rgb(0 0 0 / .35))}.podium-slot.p1 .podium-cup{width:74px;height:84px;animation:cup-glow 3s ease-in-out infinite}.podium-cup.gold{--c1: #ffd75a;--c2: #d99a1e}.podium-cup.silver{--c1: #eef2f8;--c2: #9aa6b8}.podium-cup.bronze{--c1: #f0a868;--c2: #a8622c}.podium-cup-body{fill:var(--c1)}.podium-cup-handle{stroke:var(--c2)}.podium-cup-shine{stroke:#ffffffb3}.podium-cup-base{fill:#6b3d1c}.podium-cup-plate{fill:var(--c2)}.podium-name{max-width:100%;padding:3px 10px;border-radius:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800;color:#2b2240;background:#fffaf0;box-shadow:0 4px 10px -4px #00000080}.podium-slot.mine .podium-name{color:#fff;background:linear-gradient(135deg,#7c5cff,#4a35d0);box-shadow:0 0 0 2px #ffd75a,0 4px 10px -4px #00000080}.podium-value{font-size:12px;font-weight:700;color:#fff0d2e6;font-variant-numeric:tabular-nums}.podium-step{display:grid;place-items:center;width:100%;margin-top:4px;border-radius:10px 10px 0 0;background:linear-gradient(180deg,#f7f4ff,#d9d2f0);box-shadow:inset 0 -6px #0000000f;transform-origin:50% 100%}.podium-step b{font-size:1.8rem;font-weight:900;color:#4a3f6e}.podium-slot.p1 .podium-step{height:110px;background:linear-gradient(180deg,#fff6d8,#f2d68a)}.podium-slot.p2 .podium-step{height:80px}.podium-slot.p3 .podium-step{height:60px}.podium-slot.empty{animation:none}@keyframes podium-in{0%{opacity:0;transform:translateY(40px)}}@keyframes cup-glow{0%,to{filter:drop-shadow(0 6px 10px rgb(0 0 0 / .35)) drop-shadow(0 0 0 rgb(255 214 90 / 0))}50%{filter:drop-shadow(0 6px 10px rgb(0 0 0 / .35)) drop-shadow(0 0 16px rgb(255 214 90 / .8))}}@media(max-width:767px){.podium{padding:14px 8px 0}.podium-cup{width:44px;height:50px}.podium-slot.p1 .podium-cup{width:58px;height:66px}.podium-name{font-size:11px;padding:2px 6px}.podium-slot.p1 .podium-step{height:84px}.podium-slot.p2 .podium-step{height:62px}.podium-slot.p3 .podium-step{height:46px}.podium-step b{font-size:1.4rem}}@media(prefers-reduced-motion:reduce){.podium-slot,.podium-slot.p1 .podium-cup{animation:none!important}}html.game-lite .podium-slot.p1 .podium-cup{animation:none}.quiz-hub-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-4);margin-bottom:var(--s-4)}.quiz-hub-head h1{margin:0;font-size:var(--fs-xl)}.quiz-hub-count{flex:none;padding:6px 12px;border-radius:999px;font-weight:700;font-size:13px;color:var(--brand-700, #4a35d0);background:var(--brand-50)}.quiz-hub-tools{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}.quiz-hub-tools .filters{margin:0}.quiz-search{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted)}.quiz-search input{border:0;padding:8px 0;min-width:180px;background:transparent;outline:none}.quiz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s-4);margin:0;padding:0;list-style:none}.quiz-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--s-4);align-items:start;border-radius:var(--game-radius, 20px)}.quiz-card.preparing{opacity:.75}.quiz-card .quiz-card-cover{width:72px;height:100px;box-sizing:border-box;padding:8px 6px 6px 10px;font-size:9px}.quiz-card-body{display:grid;gap:6px;min-width:0}.quiz-card-title{line-height:1.25}.quiz-chip{display:inline-flex;align-items:center;gap:6px;justify-self:start;margin:0;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;color:var(--green-700, #15803d);background:var(--green-50, #ecfdf3)}.quiz-chip.muted-chip{color:var(--muted);background:var(--surface-2, #f3f4f8)}.quiz-card-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0}.quiz-card-stats div{padding:6px 8px;border-radius:10px;background:var(--brand-50)}.quiz-card-stats dt{font-size:10px;color:var(--muted)}.quiz-card-stats dd{margin:0;font-weight:800;font-variant-numeric:tabular-nums}.quiz-best{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:700;color:var(--amber-700)}.quiz-card-btn{justify-self:start;margin-top:4px}.quiz-empty{display:grid;justify-items:start;gap:8px}.quiz-note{margin-top:var(--s-5)}.library-quiz-link{display:inline-flex;align-items:center;gap:8px}.quiz-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--s-3);align-items:center}.quiz-strip-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;color:#fff;background:linear-gradient(135deg,#7c5cff,#4a35d0)}.quiz-play{max-width:760px;margin:0 auto;display:grid;gap:var(--s-4)}.quiz-play-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3)}.quiz-play-head .link{display:inline-flex;align-items:center;gap:4px}.quiz-play-book{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quiz-intro{display:grid;grid-template-columns:96px minmax(0,1fr);gap:var(--s-5);align-items:start}.quiz-intro .quiz-intro-cover{width:96px;height:134px;box-sizing:border-box;padding:10px 8px 8px 12px}.quiz-intro-body{display:grid;gap:10px}.quiz-intro-body h1{margin:0;font-size:var(--fs-xl)}.quiz-question{display:grid;gap:var(--s-4);border-radius:var(--game-radius, 20px)}.quiz-q-top{display:flex;align-items:center;gap:10px}.quiz-q-num{font-weight:800;font-variant-numeric:tabular-nums}.quiz-diff{padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700}.quiz-diff.easy{color:#15803d;background:#ecfdf3}.quiz-diff.medium{color:#a16207;background:#fef9c3}.quiz-diff.hard{color:#b91c1c;background:#fee2e2}.quiz-score{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-weight:800;color:var(--amber-700);font-variant-numeric:tabular-nums}.quiz-progress{height:6px;border-radius:999px;background:var(--brand-50);overflow:hidden}.quiz-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7c5cff,#3fd6c8);transition:width .4s ease}.quiz-timer{position:relative;justify-self:center;width:72px;height:72px}.quiz-timer svg{width:100%;height:100%;transform:rotate(-90deg)}.quiz-timer-track{fill:none;stroke:var(--brand-50);stroke-width:4}.quiz-timer-fill{fill:none;stroke:#7c5cff;stroke-width:4;stroke-linecap:round;stroke-dasharray:119.4}.quiz-timer.low .quiz-timer-fill{stroke:#e5484d}.quiz-timer b{position:absolute;inset:0;display:grid;place-items:center;font-size:1.4rem;font-variant-numeric:tabular-nums}.quiz-timer.low b{color:#e5484d;animation:quiz-pulse 1s ease-in-out infinite}@keyframes quiz-pulse{50%{transform:scale(1.12)}}.quiz-q-text{margin:0;font-size:1.25rem;line-height:1.35;text-align:center}.quiz-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}.quiz-option{width:100%;height:100%;min-height:56px;display:flex;align-items:center;gap:10px;padding:10px 14px;border:2px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,transform .15s ease,background .15s ease}.quiz-option:not(:disabled):hover{border-color:var(--brand-400, #8b74ff);transform:translateY(-1px)}.quiz-option:disabled{cursor:default}.quiz-letter{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;font-weight:800;color:var(--brand-700, #4a35d0);background:var(--brand-50)}.quiz-option.right{border-color:#22a06b;background:#ecfdf3}.quiz-option.right .quiz-letter{color:#fff;background:#22a06b}.quiz-option.wrong{border-color:#e5484d;background:#fee2e2}.quiz-option.wrong .quiz-letter{color:#fff;background:#e5484d}.quiz-option.dim{opacity:.55}.quiz-feedback{display:grid;gap:6px;justify-items:start;padding:12px 14px;border-radius:14px;animation:bubble-in .3s var(--game-pop, ease) both}.quiz-feedback.ok{background:#ecfdf3;color:#14532d}.quiz-feedback.bad{background:#fff1f2;color:#7f1d1d}.quiz-result{display:grid;justify-items:center;gap:var(--s-3);text-align:center;border-radius:var(--game-radius, 20px)}.quiz-result h1{margin:0;font-size:var(--fs-xl)}.quiz-record{display:inline-flex;align-items:center;gap:8px;margin:0;padding:6px 14px;border-radius:999px;font-weight:800;color:#3b2200;background:linear-gradient(135deg,#ffd75a,#f5a524)}.quiz-result-score{margin:0;font-size:3rem;font-weight:900;line-height:1;color:var(--brand-700, #4a35d0);font-variant-numeric:tabular-nums}.quiz-result-score small{font-size:1rem;font-weight:700;color:var(--muted)}.quiz-result-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;width:100%;margin:0}.quiz-result-grid div{padding:10px 6px;border-radius:12px;background:var(--brand-50)}.quiz-result-grid dt{font-size:11px;color:var(--muted)}.quiz-result-grid dd{margin:0;font-size:1.2rem;font-weight:800;font-variant-numeric:tabular-nums}.quiz-admin-books{max-height:420px;overflow:auto}.quiz-status{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;color:var(--muted);background:var(--surface-2, #f3f4f8)}.quiz-status.published{color:#15803d;background:#ecfdf3}.quiz-status.draft{color:#a16207;background:#fef9c3}.quiz-admin-book{display:grid;gap:var(--s-3);margin-top:var(--s-5);padding-top:var(--s-5);border-top:1px solid var(--border)}.quiz-admin-actions{flex-wrap:wrap}.quiz-admin-form{display:grid;gap:8px;padding:12px;border-radius:12px;background:var(--brand-50)}.quiz-admin-form textarea,.quiz-admin-import textarea{width:100%}.quiz-admin-opt{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px}.quiz-admin-import{display:grid;gap:8px}.quiz-admin-import[open]{padding:10px;border:1px dashed var(--border);border-radius:12px}.quiz-admin-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.quiz-admin-q{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:10px;border:1px solid var(--border);border-radius:12px}.quiz-admin-q.approved{border-color:#86efac}.quiz-admin-q.archived{opacity:.6}.quiz-admin-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px;margin:6px 0;padding-left:18px;font-size:13px;list-style:upper-alpha}.quiz-admin-opts li.right{font-weight:800;color:#15803d}.quiz-admin-q-actions{display:grid;align-content:start;gap:4px}@media(max-width:767px){.quiz-hub-head{flex-direction:column}.quiz-search,.quiz-search input{width:100%;min-width:0}.quiz-grid{grid-template-columns:minmax(0,1fr)}.quiz-intro{grid-template-columns:72px minmax(0,1fr);gap:var(--s-3)}.quiz-intro .quiz-intro-cover{width:72px;height:100px}.quiz-options{grid-template-columns:minmax(0,1fr)}.quiz-q-text{font-size:1.1rem}.quiz-result-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.quiz-strip{grid-template-columns:auto minmax(0,1fr)}.quiz-strip .btn{grid-column:1 / -1}.quiz-admin-q{grid-template-columns:auto minmax(0,1fr)}.quiz-admin-q-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.quiz-timer.low b,.quiz-feedback{animation:none!important}}.helpbot-fab{position:fixed;right:20px;bottom:20px;z-index:60;display:grid;place-items:center;width:64px;height:64px;padding:0;border:0;border-radius:50%;cursor:pointer;color:#fff;background:radial-gradient(circle at 50% 35%,#eaf0ff,#b9cbf7);box-shadow:0 0 0 6px #3b6fe026,0 10px 24px -8px #2347b899;transition:transform .18s var(--game-pop, ease),box-shadow .18s ease}.helpbot-fab:hover{transform:translateY(-2px) scale(1.04)}.helpbot-fab.open{background:#2347b8}.helpbot-robot .helpbot-antenna{transform-box:fill-box;transform-origin:center;animation:hb-antenna 2.4s ease-in-out infinite}.helpbot-robot .helpbot-eyes{transform-box:fill-box;transform-origin:center;animation:comp-blink 4.8s infinite 1s}@keyframes hb-antenna{0%,to{fill:#3b6fe0}50%{fill:#7fa2ff}}.helpbot-panel{position:fixed;right:20px;bottom:96px;z-index:61;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;width:min(400px,calc(100vw - 32px));height:min(620px,calc(100dvh - 130px));border-radius:22px;overflow:hidden;background:var(--surface);border:1px solid #d6e0f7;box-shadow:0 24px 60px -20px #2347b873;animation:hb-in .26s var(--game-pop, ease) both}@keyframes hb-in{0%{opacity:0;transform:translateY(16px) scale(.97)}}.helpbot-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 14px;color:#fff;background:linear-gradient(135deg,#3b6fe0,#2347b8)}.helpbot-head div{display:grid;min-width:0}.helpbot-head .small{color:#fffc}.helpbot-head .helpbot-robot{border-radius:50%;background:#ffffffe6}.helpbot-close{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;color:#fff;background:#ffffff26;cursor:pointer}.helpbot-body{display:grid;align-content:start;gap:10px;padding:14px;overflow-y:auto;background:linear-gradient(180deg,#f5f8ff,var(--surface) 40%)}.helpbot-msg{max-width:92%;padding:10px 12px;border-radius:16px;font-size:14px;line-height:1.45}.helpbot-msg p{margin:4px 0 0;white-space:pre-line}.helpbot-msg p:first-child{margin-top:0}.helpbot-msg.bot{justify-self:start;border-bottom-left-radius:4px;background:#fff;border:1px solid #e1e8f8}.helpbot-msg.user{justify-self:end;border-bottom-right-radius:4px;color:#fff;background:#3b6fe0}.helpbot-msg.unsure{border-color:#fde4a8;background:#fffaf0}.helpbot-msg.error{border-color:#fecaca;background:#fff1f2}.helpbot-ai{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:#2347b8}.helpbot-go{margin-top:8px}.helpbot-notthis{display:block;margin-top:6px}.helpbot-group{display:grid;gap:6px}.helpbot-label{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.helpbot-chips{display:flex;flex-wrap:wrap;gap:6px}.helpbot-chips button{padding:6px 10px;border:1px solid #cdd9f5;border-radius:12px;background:#fff;color:#2347b8;font:inherit;font-size:13px;text-align:left;cursor:pointer}.helpbot-chips button:hover{background:#eef3ff}.helpbot-chips.small-chips{margin-top:8px;align-items:center}.helpbot-chips.small-chips button{font-size:12px;padding:4px 8px}.helpbot-msg.typing{display:flex;gap:4px}.helpbot-msg.typing>span:not(.sr-only){width:7px;height:7px;border-radius:50%;background:#8fa9e8;animation:hb-dot 1s ease-in-out infinite}.helpbot-msg.typing>span:nth-child(2){animation-delay:.15s}.helpbot-msg.typing>span:nth-child(3){animation-delay:.3s}@keyframes hb-dot{50%{transform:translateY(-4px);opacity:.5}}.helpbot-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 12px;border-top:1px solid #e1e8f8}.helpbot-form input{min-width:0;padding:10px 12px;border:1px solid #cdd9f5;border-radius:999px;font:inherit}.helpbot-reset{justify-self:center;margin-bottom:8px}@media(max-width:767px){.helpbot-fab{right:14px;bottom:calc(80px + env(safe-area-inset-bottom));width:52px;height:52px}.helpbot-fab .helpbot-robot{width:40px;height:40px}body:has(.room-page) .helpbot-fab{bottom:calc(150px + env(safe-area-inset-bottom))}.helpbot-panel{right:8px;left:8px;bottom:calc(76px + env(safe-area-inset-bottom));width:auto;height:min(70dvh,560px)}}@media(prefers-reduced-motion:reduce){.helpbot-panel,.helpbot-robot .helpbot-antenna,.helpbot-robot .helpbot-eyes,.helpbot-msg.typing>span{animation:none!important}}html.game-lite .helpbot-robot .helpbot-antenna{animation:none}@media(max-width:767px){.helpbot-fab.open{display:none}}.helpbot-fab{width:76px;height:84px;border-radius:0;background:none;box-shadow:none;align-content:start}.helpbot-fab:hover{transform:none}.helpbot-fab.open{background:none}.helpbot-fab .helpbot-robot{filter:drop-shadow(0 6px 10px rgb(35 71 184 / .25));transition:transform .2s var(--game-pop, ease)}.helpbot-fab:hover .helpbot-robot,.helpbot-fab:focus-visible .helpbot-robot{transform:scale(1.08)}.helpbot-shadow{position:absolute;left:50%;bottom:2px;width:40px;height:8px;translate:-50% 0;border-radius:50%;background:radial-gradient(closest-side,rgb(35 71 184 / .28),transparent);animation:hb-shadow 3.2s ease-in-out infinite}.helpbot-robot .hb-all{transform-box:fill-box;transform-origin:50% 100%;animation:hb-float 3.2s ease-in-out infinite}.helpbot-robot .hb-head{transform-box:fill-box;transform-origin:50% 90%;animation:hb-tilt 7s ease-in-out infinite}.helpbot-robot .hb-pupils{animation:hb-look 9s ease-in-out infinite}.helpbot-robot .hb-arm{transform-box:fill-box;transform-origin:50% 10%}.helpbot-robot .hb-arm.left{animation:hb-swing 3.2s ease-in-out infinite}.helpbot-robot .hb-arm.right{animation:hb-swing 3.2s ease-in-out infinite reverse}.helpbot-fab.talking .hb-arm.right{animation:hb-wave .9s ease-in-out infinite}.helpbot-fab.talking .hb-mouth{transform-box:fill-box;transform-origin:50% 0;animation:hb-talk .32s ease-in-out infinite alternate}.helpbot-fab.talking .hb-all{animation-duration:1.6s}@keyframes hb-float{0%,to{translate:0 0}50%{translate:0 -5px}}@keyframes hb-shadow{0%,to{scale:1;opacity:1}50%{scale:.75;opacity:.6}}@keyframes hb-tilt{0%,70%,to{rotate:0deg}78%{rotate:-8deg}88%{rotate:5deg}}@keyframes hb-look{0%,30%,to{translate:0 0}38%,48%{translate:-1.6px 0}56%,66%{translate:1.6px -.5px}}@keyframes hb-swing{0%,to{rotate:6deg}50%{rotate:-6deg}}@keyframes hb-wave{0%,to{rotate:-150deg}50%{rotate:-110deg}}@keyframes hb-talk{0%{scale:1 .6}to{scale:1 1.6}}.helpbot-teaser{position:fixed;right:100px;bottom:44px;z-index:60;display:flex;align-items:flex-start;gap:4px;max-width:min(300px,calc(100vw - 130px));padding:10px 8px 10px 14px;border-radius:18px 18px 4px;background:#fff;border:1px solid #cdd9f5;box-shadow:0 12px 30px -12px #2347b873;animation:hb-teaser-in .42s var(--game-pop, ease) both}.helpbot-teaser:after{content:"";position:absolute;right:-7px;bottom:10px;width:14px;height:14px;rotate:45deg;background:#fff;border-right:1px solid #cdd9f5;border-top:1px solid #cdd9f5}.helpbot-teaser-text{padding:0;border:0;background:none;color:#1d2b5c;font:inherit;font-size:14px;font-weight:600;line-height:1.35;text-align:left;cursor:pointer}.helpbot-teaser-text:hover{color:#2347b8}.helpbot-teaser-close{flex:none;display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;color:var(--muted);background:#eef3ff;cursor:pointer}@keyframes hb-teaser-in{0%{opacity:0;transform:translate(12px) scale(.9)}}@media(max-width:767px){.helpbot-fab{width:60px;height:68px}.helpbot-fab .helpbot-robot{width:52px;height:52px}.helpbot-teaser{right:78px;bottom:calc(96px + env(safe-area-inset-bottom));max-width:calc(100vw - 100px)}body:has(.room-page) .helpbot-teaser{bottom:calc(166px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.helpbot-shadow,.helpbot-robot .hb-all,.helpbot-robot .hb-head,.helpbot-robot .hb-pupils,.helpbot-robot .hb-arm,.helpbot-fab.talking .hb-mouth,.helpbot-teaser{animation:none!important}}html.game-lite .helpbot-robot .hb-all,html.game-lite .helpbot-robot .hb-head,html.game-lite .helpbot-robot .hb-pupils,html.game-lite .helpbot-robot .hb-arm,html.game-lite .helpbot-shadow{animation:none}.reader-text{-webkit-touch-callout:none}:root{--hl-yellow: rgba(251, 191, 36, .38);--hl-green: rgba(34, 197, 94, .28);--hl-blue: rgba(59, 130, 246, .26);--hl-pink: rgba(236, 72, 153, .24)}.reader-text .hl{border-radius:2px;cursor:pointer}.reader-text .hl-yellow{background:var(--hl-yellow)}.reader-text .hl-green{background:var(--hl-green)}.reader-text .hl-blue{background:var(--hl-blue)}.reader-text .hl-pink{background:var(--hl-pink)}.reader-text .hl-pick{background:#6366f14d}.hl-hint{margin:8px 0 0;text-align:center}.hl-sheet{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:60;width:min(480px,calc(100vw - 24px));max-height:70vh;overflow-y:auto;display:grid;gap:10px;padding:14px;background:var(--surface, #fff);color:var(--gray-900);border:1px solid var(--gray-200);border-radius:16px;box-shadow:0 12px 36px #0f172a38}.hl-sheet textarea{width:100%}.hl-preview{margin:0;padding:6px 10px;border-radius:8px;font-size:var(--fs-sm);max-height:96px;overflow-y:auto;white-space:pre-line}.hl-preview-yellow{background:var(--hl-yellow)}.hl-preview-green{background:var(--hl-green)}.hl-preview-blue{background:var(--hl-blue)}.hl-preview-pink{background:var(--hl-pink)}.hl-colors{display:grid;grid-template-columns:1fr 1fr;gap:6px}.hl-color{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 10px;text-align:left;font:inherit;font-size:var(--fs-sm);color:inherit;background:none;border:1px solid var(--gray-200);border-radius:10px;cursor:pointer}.hl-color[aria-pressed=true]{border-color:var(--gray-900);font-weight:600}.hl-color i{flex:none;width:16px;height:16px;border-radius:50%}.hl-color-yellow i{background:#fbbf24}.hl-color-green i{background:#22c55e}.hl-color-blue i{background:#3b82f6}.hl-color-pink i{background:#ec4899}.hl-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.hl-card{display:grid;gap:4px;padding:12px 14px;background:var(--surface, #fff);border:1px solid var(--gray-200);border-left-width:4px;border-radius:12px}.hl-card blockquote{margin:0;white-space:pre-line}.hl-card p{margin:0}.hl-card-tag{font-size:var(--fs-xs, 12px);font-weight:600;color:var(--gray-600)}.hl-card-yellow{border-left-color:#fbbf24}.hl-card-green{border-left-color:#22c55e}.hl-card-blue{border-left-color:#3b82f6}.hl-card-pink{border-left-color:#ec4899}.hl-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.hl-filters input{flex:1 1 180px;min-width:0}.hl-filters select{flex:1 1 140px;min-width:0}.hl-book{margin-top:24px}.hl-book summary{cursor:pointer}.hl-book h4{margin:14px 0 8px}.hl-chat{display:grid;gap:8px;margin:10px 0;padding:10px 12px;border:1px solid var(--gray-200);border-left:4px solid #3b82f6;border-radius:12px}.hl-chat-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.hl-chat-item blockquote{flex:1 1 200px;margin:0;white-space:pre-line}.hl-confusion h4{margin:12px 0 8px}.hl-add{margin-top:8px}.hl-form{display:grid;gap:10px;margin-top:12px}.hl-form h3{margin:0}.hl-form label{display:grid;gap:4px}.hl-form textarea,.hl-form input,.hl-form select{width:100%}.hl-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.rv-card{display:grid;gap:12px}.rv-card textarea{width:100%}.rv-gap{letter-spacing:2px;font-weight:700}.rv-answer p{margin:0 0 4px}.rv-notice{display:flex;align-items:center;gap:8px;margin:12px 0;text-decoration:none}.rv-notice span{flex:1}.year-thoughts{margin-top:24px}.year-thoughts ol{padding-left:20px;display:grid;gap:10px}.year-thoughts blockquote{margin:0;white-space:pre-line}.year-thoughts p{margin:2px 0 0}
