:root{--void:#0e1211;--surface:#ffffff0b;--surface-2:#ffffff07;--edge:#ffffff16;--raise:#ffffff0e;--bus:#2bb86b;--telegram:#7be8ae;--grad:linear-gradient(100deg, #2bb86b, #7be8ae 55%, #b4f5d3);--ink:#f1f5f2;--body:#c3cec7;--muted:#8e9c94;--dim:#5c6a63;--warn:#e8b15a;--crit:#e8705a;--mono:ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, monospace;--sans:"Manrope", "Inter Tight", "Helvetica Neue", Arial, system-ui, sans-serif;--r-pill:999px;--r-card:18px;--ease:cubic-bezier(.22, .8, .2, 1);--braid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='26' viewBox='0 0 32 26'%3E%3Cg fill='none' stroke='%23fff' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M0 13C5.33 5 10.67 5 16 13C21.33 21 26.67 21 32 13'/%3E%3Cpath d='M0 13C5.33 21 10.67 21 16 13C21.33 5 26.67 5 32 13'/%3E%3C/g%3E%3C/svg%3E")}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--void);color:var(--body);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:.9375rem;line-height:1.65;overflow-x:hidden}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--telegram);outline-offset:3px;border-radius:4px}.sky{z-index:-1;pointer-events:none;background:radial-gradient(52rem 30rem at 12% -8%, color-mix(in srgb, var(--bus) 20%, transparent), transparent 62%), radial-gradient(40rem 26rem at 88% 4%, color-mix(in srgb, var(--telegram) 11%, transparent), transparent 60%), radial-gradient(34rem 34rem at 62% 42%, color-mix(in srgb, var(--bus) 7%, transparent), transparent 68%);animation:34s ease-in-out infinite alternate drift;position:fixed;inset:0}@keyframes drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(-2.5%,2%)scale(1.08)}}h1,h2,h3{letter-spacing:-.025em;text-wrap:balance;margin:0;font-weight:500;line-height:1.14}.label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.6875rem}.num{font-variant-numeric:tabular-nums}.shell{max-width:1200px;margin:0 auto;padding:0 1.5rem 6rem}@media (max-width:560px){.shell{padding:0 1rem 4rem}}.topbar{background:var(--surface);border:1px solid var(--edge);border-radius:var(--r-pill);-webkit-backdrop-filter:blur(14px);align-items:center;gap:1rem;margin:1.5rem 0 3.5rem;padding:.5rem .5rem .5rem 1.375rem;display:flex}.wordmark{letter-spacing:-.03em;color:var(--ink);font-size:1.0625rem;font-weight:600}.wordmark span{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.topbar .spacer{margin-left:auto}.topbar .when{color:var(--muted)}@media (max-width:620px){.topbar .when{display:none}}.logout{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--raise);border:1px solid var(--edge);border-radius:var(--r-pill);cursor:pointer;transition:background .25s var(--ease), color .25s var(--ease);padding:.5rem 1rem;font-size:.6875rem}.logout:hover{background:var(--ink);color:#0b0f0d;border-color:#0000}.hero{max-width:46rem;margin:0 0 4rem}.hero .eyebrow{align-items:center;gap:.5rem;margin-bottom:1.5rem;display:inline-flex}.hero .dot{background:var(--bus);width:7px;height:7px;box-shadow:0 0 0 4px color-mix(in srgb, var(--bus) 18%, transparent);border-radius:50%;animation:2.6s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 9px color-mix(in srgb, var(--bus) 0%, transparent)}}.hero h1{color:var(--ink);font-size:clamp(2.125rem,5.2vw,3.5rem)}.hero h1 em{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.hero p{color:var(--muted);max-width:36rem;margin:1.25rem 0 0;font-size:1.0625rem}.panel{background:var(--surface);border:1px solid var(--edge);border-radius:var(--r-card);-webkit-backdrop-filter:blur(18px);padding:1.75rem}@media (max-width:560px){.panel{border-radius:14px;padding:1.25rem}}.panel-head{flex-wrap:wrap;align-items:center;gap:.875rem;margin-bottom:1.75rem;display:flex}.panel-head h2{color:var(--ink);font-size:1.375rem}.panel-head .count{margin-left:auto}.grid-2{grid-template-columns:1.05fr 1fr;align-items:start;gap:1.25rem;display:grid}@media (max-width:940px){.grid-2{grid-template-columns:1fr}}.stack{flex-direction:column;gap:1.25rem;display:flex}.subjects{flex-direction:column;gap:1.125rem;display:flex}.subject{grid-template-columns:6.5rem 1fr 4rem;align-items:center;gap:1.125rem;display:grid}@media (max-width:560px){.subject{grid-template-columns:4.75rem 1fr 3.25rem;gap:.75rem}}.subject-name{font-family:var(--mono);letter-spacing:.05em;color:var(--ink);font-size:.75rem}.bar{border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--edge);height:10px;display:flex;overflow:hidden}.bar i{height:100%;animation:grow 1.1s var(--ease) both;display:block}.bar .mature{background:var(--telegram)}.bar .learning{background:var(--bus)}@keyframes grow{0%{width:0!important}}.subject-score{font-family:var(--mono);color:var(--muted);text-align:right;font-size:.75rem}.subject-score b{color:var(--warn);font-weight:400}.legend{border-top:1px solid var(--edge);flex-wrap:wrap;gap:1.5rem;margin-top:1.75rem;padding-top:1.25rem;display:flex}.legend span{align-items:center;gap:.5rem;display:inline-flex}.legend b{border-radius:3px;width:9px;height:9px}.rows{flex-direction:column;gap:.25rem;display:flex}.row{color:inherit;transition:background .3s var(--ease), transform .3s var(--ease);border-radius:14px;margin:0 -.5rem;padding:1.125rem;display:block;position:relative}.row+.row:before{content:"";background:var(--edge);height:1px;position:absolute;top:-.125rem;left:1.125rem;right:1.125rem}a.row:hover,.row.hoverable:hover{background:var(--raise);transform:translate(3px)}a.row:hover:before{opacity:0}.row-title{color:var(--ink);letter-spacing:-.012em;margin-bottom:.3125rem;font-weight:500}.row-sub{color:var(--muted);font-size:.875rem;line-height:1.6}.row-meta{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.chip{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r-pill);border:1px solid var(--edge);color:var(--muted);background:var(--surface-2);white-space:nowrap;padding:.3125rem .6875rem;font-size:.625rem}.chip.rare{color:#0b0f0d;background:var(--grad);border-color:#0000;font-weight:600}.chip.emerging{color:var(--telegram);border-color:color-mix(in srgb, var(--telegram) 34%, transparent)}.chip.common{color:var(--muted)}.chip.commodity{color:var(--dim)}.chip.candidate{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 32%, transparent)}.chip.cost{color:var(--ink)}.ticks{gap:3px;display:inline-flex}.ticks i{background:var(--dim);border-radius:2px;width:3px;height:11px}.ticks i.on{background:var(--telegram)}.empty{color:var(--muted);padding:.75rem 0;font-size:.875rem}.row.has-art{grid-template-columns:104px 1fr;align-items:start;gap:1.25rem;display:grid}@media (max-width:560px){.row.has-art{grid-template-columns:68px 1fr;gap:.875rem}}.art{aspect-ratio:4/3;background:var(--surface-2) center / cover no-repeat;border:1px solid var(--edge);border-radius:12px;position:relative;overflow:hidden}.art.photo:after{content:"";background:color-mix(in srgb, var(--void) 26%, transparent);position:absolute;inset:0}.plate{background:radial-gradient(88% 88% at 26% 6%, color-mix(in srgb, var(--bus) 24%, transparent), transparent 70%), var(--surface-2);place-items:center;display:grid}.plate svg{width:52%;height:52%}.plate svg path,.plate svg circle{stroke:var(--telegram)}.rise{animation:rise .8s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.sky,.rise,.bar i,.hero .dot{animation:none}.row{transition:none}html{scroll-behavior:auto}}.auth-wrap{place-items:center;min-height:100dvh;padding:1.5rem;display:grid}.auth-card{background:var(--surface);border:1px solid var(--edge);border-radius:var(--r-card);-webkit-backdrop-filter:blur(18px);width:100%;max-width:25rem;padding:2.5rem}@media (max-width:480px){.auth-card{padding:1.75rem}}.auth-mark{letter-spacing:-.035em;color:var(--ink);margin-bottom:.5rem;font-size:1.875rem;font-weight:600}.auth-mark span{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.auth-sub{color:var(--muted);margin:0 0 2rem}.tp1{background:color-mix(in srgb, var(--bus) 40%, transparent);height:26px;-webkit-mask:var(--braid) repeat-x center / 32px 26px;-webkit-mask:var(--braid) repeat-x center / 32px 26px;mask:var(--braid) repeat-x center / 32px 26px;margin:0 0 2rem;position:relative;overflow:hidden}.tp1:after{content:"";background:linear-gradient(90deg, transparent, var(--telegram) 45% 55%, transparent);width:140px;animation:3.6s linear infinite telegram;position:absolute;top:0;bottom:0;left:0}@keyframes telegram{0%{transform:translate(-140px)}to{transform:translate(calc(25rem + 140px))}}@media (prefers-reduced-motion:reduce){.tp1:after{opacity:.6;animation:none;transform:translate(40%)}}.field{margin-bottom:1.25rem;display:block}.field .label{margin-bottom:.5625rem;display:block}.field input{background:var(--surface-2);border:1px solid var(--edge);border-radius:var(--r-pill);width:100%;color:var(--ink);font-family:var(--mono);transition:border-color .25s var(--ease), background .25s var(--ease);padding:.8125rem 1.125rem;font-size:.875rem}.field input:focus{border-color:var(--bus);background:var(--raise);outline:none}.submit{background:var(--grad);color:#08110c;border-radius:var(--r-pill);width:100%;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:filter .25s var(--ease), transform .25s var(--ease);border:none;margin-top:.5rem;padding:.9375rem;font-size:.75rem;font-weight:700}.submit:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-1px)}.submit:disabled{background:var(--raise);color:var(--dim);cursor:not-allowed}.auth-error{color:var(--crit);border-left:2px solid var(--crit);margin:1.25rem 0 0;padding-left:.75rem;font-size:.875rem}.row.pick{grid-template-columns:auto 104px 1fr;align-items:start;gap:1.125rem;display:grid}@media (max-width:560px){.row.pick{grid-template-columns:auto 68px 1fr;gap:.75rem}}.row.pick.on{background:color-mix(in srgb, var(--bus) 9%, transparent)}.tick{cursor:pointer;width:20px;height:20px;margin-top:.375rem;display:block;position:relative}.tick input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.tick span{border:1px solid var(--edge);background:var(--surface-2);width:20px;height:20px;transition:background .2s var(--ease), border-color .2s var(--ease);border-radius:6px;display:block}.tick input:checked+span{background:var(--grad);background-image:var(--grad);border-color:#0000}.tick input:checked+span:after{content:"";border:2px solid #08110c;border-width:0 2px 2px 0;width:5px;height:9px;margin:3px auto 0;display:block;transform:rotate(45deg)}.tick input:focus-visible+span{outline:2px solid var(--telegram);outline-offset:2px}.more{background:var(--surface-2);border:1px solid var(--edge);border-radius:var(--r-pill);width:100%;color:var(--muted);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .25s var(--ease), color .25s var(--ease);margin-top:1.25rem;padding:.75rem;font-size:.6875rem}.more:hover{background:var(--raise);color:var(--ink)}.actions{border-top:1px solid var(--edge);animation:rise .35s var(--ease) both;flex-wrap:wrap;align-items:center;gap:.625rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}.actions .label{margin-right:auto}.act{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--edge);border-radius:var(--r-pill);background:var(--raise);color:var(--ink);cursor:pointer;transition:filter .25s var(--ease), background .25s var(--ease), transform .2s var(--ease);padding:.625rem 1.125rem;font-size:.6875rem;font-weight:600}.act:hover:not(:disabled){background:var(--surface);transform:translateY(-1px)}.act.primary{background:var(--grad);color:#08110c;border-color:#0000}.act.primary:hover:not(:disabled){filter:brightness(1.12)}.act.ghost{color:var(--muted);background:0 0}.act:disabled{opacity:.5;cursor:not-allowed;transform:none}.act.wide{width:100%;margin-top:1.25rem;padding:1rem}.said{color:var(--telegram);margin:1rem 0 0;font-size:.875rem}.deck-head{align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.deck-head .num{margin-left:auto}.deck-track{border-radius:var(--r-pill);background:var(--surface-2);height:3px;margin-bottom:1.5rem;overflow:hidden}.deck-track i{background:var(--grad);height:100%;transition:width .5s var(--ease);display:block}.card{text-align:center;flex-direction:column;justify-content:center;min-height:17rem;display:flex}.card h1{color:var(--ink);font-size:clamp(1.5rem,3.4vw,2.125rem)}.card-hint{color:var(--dim);margin:1.5rem 0 0;font-size:.875rem}.card-back{border-top:1px solid var(--edge);margin-top:1.75rem;padding-top:1.75rem}.card-term{font-family:var(--mono);color:var(--telegram);margin:0 0 .75rem;font-size:.875rem}.card-def{color:var(--body);margin:0;font-size:1.0625rem}.card-eg{color:var(--muted);margin:1.25rem 0 0;font-size:.9375rem}.card-eg .label{margin-bottom:.375rem;display:block}.card-done{text-align:center;padding:4rem 2rem}.card-done h1{color:var(--ink);margin-bottom:.75rem;font-size:clamp(1.75rem,4vw,2.5rem)}.card-done p{color:var(--muted);margin:0}.grades{grid-template-columns:repeat(4,1fr);gap:.625rem;margin-top:1.25rem;display:grid}@media (max-width:560px){.grades{grid-template-columns:repeat(2,1fr)}}.grade{border:1px solid var(--edge);background:var(--surface);color:var(--ink);cursor:pointer;transition:background .25s var(--ease), transform .2s var(--ease);border-radius:14px;flex-direction:column;align-items:center;gap:.1875rem;padding:.875rem .5rem;display:flex}.grade:hover:not(:disabled){background:var(--raise);transform:translateY(-2px)}.grade b{font-size:.9375rem;font-weight:600}.grade span{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.625rem}.grade:disabled{opacity:.5;cursor:not-allowed}.deck-link{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;background:var(--grad);color:#08110c;border-radius:var(--r-pill);transition:filter .25s var(--ease);align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.6875rem;font-weight:600;display:inline-flex}.deck-link:hover{filter:brightness(1.12)}.said{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.act.undo{color:var(--telegram);border-color:color-mix(in srgb, var(--telegram) 30%, transparent);padding:.375rem .875rem}
