@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-ext-wght-normal-DOFToQv1.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-wght-normal-DayYxulF.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-math-wght-normal-Bl4ZGkZl.woff2) format("woff2-variations");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-symbols-wght-normal-DxQzqQfC.woff2) format("woff2-variations");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-vietnamese-wght-normal-BBxOatbv.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-ext-wght-normal-QAhDxQuo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-wght-normal-Dun_Rd-l.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"PT Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pt-serif-cyrillic-ext-400-normal-DU92duxl.woff2) format("woff2"),url(/assets/pt-serif-cyrillic-ext-400-normal-DWZRXqV9.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"PT Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pt-serif-cyrillic-400-normal-B-euljER.woff2) format("woff2"),url(/assets/pt-serif-cyrillic-400-normal-D8jOFnDU.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"PT Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pt-serif-latin-ext-400-normal-B7STXmTm.woff2) format("woff2"),url(/assets/pt-serif-latin-ext-400-normal-tfSDtiqN.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"PT Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pt-serif-latin-400-normal-Cx0mQj7e.woff2) format("woff2"),url(/assets/pt-serif-latin-400-normal-DIu_lRW0.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"PT Serif";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pt-serif-cyrillic-ext-700-normal-CpXZPNZI.woff2) format("woff2"),url(/assets/pt-serif-cyrillic-ext-700-normal-C7FyUQsB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"PT Serif";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pt-serif-cyrillic-700-normal-DvVvs_4R.woff2) format("woff2"),url(/assets/pt-serif-cyrillic-700-normal-BeN6CUoB.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"PT Serif";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pt-serif-latin-ext-700-normal-B7jTzfC-.woff2) format("woff2"),url(/assets/pt-serif-latin-ext-700-normal-BQOBW4N0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"PT Serif";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pt-serif-latin-700-normal-Bsuo9jes.woff2) format("woff2"),url(/assets/pt-serif-latin-700-normal-BnJLcJ8K.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #f4f6f9;--surface: #ffffff;--sunk: #eef1f5;--line: #dde2ea;--line-strong: #c5ccd8;--text: #161b26;--text-2: #4a5366;--text-3: #69728a;--ink: #22378c;--ink-hover: #1b2d75;--ink-soft: #e8ecf8;--gold: #8a6100;--gold-seal: #c79a2b;--gold-soft: #fbf3de;--silver: #55606f;--silver-seal: #9aa4b2;--silver-soft: #eef0f3;--green: #1f7a3e;--green-soft: #e3f3e8;--red: #b42318;--red-soft: #fdecea;--r-s: 6px;--r: 8px;--font: "Onest Variable", "Segoe UI", system-ui, sans-serif;--serif: "PT Serif", Georgia, serif;color-scheme:light;font-family:var(--font);font-size:15px;line-height:1.5;color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased;accent-color:var(--ink);caret-color:var(--ink);scrollbar-color:var(--line-strong) transparent}*{box-sizing:border-box}body{margin:0;background:var(--paper)}::selection{background:var(--ink-soft);color:var(--ink-hover)}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:var(--r-s)}a{color:var(--ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink) 35%,transparent);text-underline-offset:3px}a:hover{text-decoration-color:var(--ink)}h1,h2,h3{margin:0;line-height:1.25;font-weight:650;letter-spacing:-.01em;text-wrap:balance}h1{font-size:1.6rem;letter-spacing:-.02em}h2{font-size:1.13rem}h3{font-size:1rem}p{margin:0}svg.lucide{flex-shrink:0}.topbar{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.topbar-inner{max-width:1152px;margin:0 auto;padding:0 16px;height:60px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:1.1rem;letter-spacing:-.02em;color:var(--text);text-decoration:none;white-space:nowrap}.brand-mark{width:30px;height:30px;color:var(--ink);flex-shrink:0}.nav{display:flex;gap:2px;height:100%}.nav a{display:flex;align-items:center;padding:0 12px;color:var(--text-2);text-decoration:none;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s}.nav a:hover{color:var(--text)}.nav a.active{color:var(--text);border-bottom-color:var(--text)}.user{margin-left:auto;display:flex;align-items:center;gap:12px}.user-name{text-align:right;line-height:1.25}.user-name small{display:block;color:var(--text-3);font-size:.85rem}.page{max-width:1152px;margin:0 auto;padding:32px 16px 64px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.page-head p{color:var(--text-2);margin-top:4px}.section{margin-top:40px}.section-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.section-head .aside{margin-left:auto;font-size:.93rem}.back{display:inline-flex;align-items:center;gap:4px;color:var(--text-2);text-decoration:none;font-size:.93rem;margin-bottom:12px}.back:hover{color:var(--ink)}@media(max-width:760px){.topbar-inner{height:auto;flex-wrap:wrap;gap:8px 16px;padding-top:10px}.nav{order:3;width:100%;overflow-x:auto;height:44px}.user-name{display:none}.page{padding-top:24px}.hide-sm{display:none}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.panel-pad{padding:20px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.grow{flex:1}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:.87rem}.num{font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-s);border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font:inherit;font-weight:550;font-size:.93rem;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .15s,border-color .15s,color .15s}.btn:hover{background:var(--sunk)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn-primary:hover{background:var(--ink-hover);border-color:var(--ink-hover)}.btn-ghost{border-color:transparent;background:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--sunk);color:var(--text)}.btn-danger{color:var(--red)}.btn-danger:hover{background:var(--red-soft)}.btn-sm{height:30px;padding:0 10px;font-size:.87rem}.btn-icon{width:30px;padding:0}.field{display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:550}.field .hint{font-weight:400;color:var(--text-3);font-size:.85rem}.input{width:100%;height:38px;padding:0 11px;border-radius:var(--r-s);border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font:inherit;font-weight:400;transition:border-color .15s}textarea.input{height:auto;padding:9px 11px;resize:vertical}.input:hover{border-color:var(--text-3)}.input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--ink-soft)}.input-sm{height:30px;padding:0 8px;font-size:.9rem}.check{display:flex;align-items:center;gap:8px;font-size:.93rem}.check input{width:16px;height:16px;margin:0}.form{display:flex;flex-direction:column;gap:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:560px){.form-grid{grid-template-columns:1fr}}.seg{display:inline-flex;padding:3px;background:var(--sunk);border-radius:8px;gap:2px}.seg button{border:0;background:transparent;height:30px;padding:0 12px;border-radius:6px;font:inherit;font-size:.9rem;font-weight:550;color:var(--text-2);cursor:pointer}.seg button:hover{color:var(--text)}.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}.chip{flex:none;display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font-size:.82rem;font-weight:550;white-space:nowrap;background:var(--sunk);color:var(--text-2)}.chip-REGISTERED{background:var(--ink-soft);color:var(--ink)}.chip-PARTICIPATED{background:var(--green-soft);color:var(--green)}.chip-PRIZE{background:var(--silver-soft);color:var(--silver)}.chip-WINNER{background:var(--gold-soft);color:var(--gold)}.chip-REJECTED{background:var(--red-soft);color:var(--red)}.tag{display:inline-flex;align-items:center;gap:5px;font-size:.85rem;color:var(--text-2)}.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-s);font-size:.93rem}.alert-error{background:var(--red-soft);color:var(--red)}.alert-success{background:var(--green-soft);color:var(--green)}.alert-info{background:var(--ink-soft);color:var(--ink)}.alert .grow{color:var(--text)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.93rem}.table th{text-align:left;font-weight:450;font-size:.82rem;color:var(--text-3);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface)}.table td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table th.num,.table td.num{font-variant-numeric:tabular-nums;text-align:right}.table td.actions{text-align:right;white-space:nowrap}.table tr.editing td{background:var(--ink-soft)}.cell-main{font-weight:550}.cell-sub{color:var(--text-3);font-size:.85rem}.list{list-style:none;margin:0;padding:0}.list>li{display:flex;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line)}.list>li:last-child{border-bottom:0}.date-tile{width:52px;flex-shrink:0;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;text-align:center;background:var(--surface);line-height:1}.date-tile b{display:block;font-size:1.35rem;font-weight:650;padding:7px 0 3px;font-variant-numeric:tabular-nums}.date-tile span{display:block;font-size:.75rem;color:var(--text-2);padding-bottom:7px}.date-tile.past{opacity:.6}.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.cert{--seal: var(--ink);--seal-text: var(--ink);position:relative;display:flex;flex-direction:column;gap:6px;text-align:left;min-height:168px;padding:22px 20px 18px;background:var(--surface);border:1px solid var(--line-strong);border-radius:3px;box-shadow:inset 0 0 0 5px var(--surface),inset 0 0 0 6px color-mix(in srgb,var(--seal) 45%,transparent),0 1px 2px #161b260f;font:inherit;color:var(--text);cursor:pointer;transition:border-color .15s,box-shadow .15s}.cert:hover{border-color:var(--seal);box-shadow:inset 0 0 0 5px var(--surface),inset 0 0 0 6px var(--seal),0 1px 2px #161b260f}.cert-WINNER{--seal: var(--gold-seal);--seal-text: var(--gold)}.cert-PRIZE{--seal: var(--silver-seal);--seal-text: var(--silver)}.cert-kind{font-family:var(--serif);font-weight:700;font-size:1.05rem;color:var(--seal-text);padding-right:52px}.cert-title{font-family:var(--serif);font-size:.98rem;line-height:1.35}.cert-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.82rem;color:var(--text-3)}.cert-foot .dl{display:inline-flex;align-items:center;gap:4px;color:var(--ink);font-weight:550;opacity:0;transition:opacity .15s}.cert:hover .dl,.cert:focus-visible .dl{opacity:1}.seal{position:absolute;top:16px;right:16px;width:44px;height:44px;color:var(--seal)}@media(hover:none){.cert-foot .dl{opacity:1}}.level{display:grid;grid-template-columns:1fr auto;gap:6px 24px;align-items:end}.level-name{font-size:1.9rem;font-weight:700;letter-spacing:-.02em;line-height:1.1}.level-points{text-align:right;font-variant-numeric:tabular-nums}.level-points b{font-size:1.9rem;font-weight:700;letter-spacing:-.02em}.track{grid-column:1 / -1;position:relative;height:6px;background:var(--sunk);border-radius:999px;margin-top:10px}.track>div{position:absolute;inset:0 auto 0 0;background:var(--ink);border-radius:999px;transition:width .4s cubic-bezier(.16,1,.3,1)}.track-labels{grid-column:1 / -1;display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-3)}.achievements{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.achv{display:flex;gap:12px;align-items:flex-start;padding:14px 20px;border-bottom:1px solid var(--line)}.achv-icon{flex-shrink:0;color:var(--ink);padding-top:1px}.achv.locked .achv-icon{color:var(--line-strong)}.achv.locked .achv-title{color:var(--text-2)}.achv-title{font-weight:600;font-size:.93rem}.achv-desc{font-size:.85rem;color:var(--text-3)}.dist{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--sunk);gap:2px}.dist>span{display:block;height:100%}.legend{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:12px;font-size:.9rem;color:var(--text-2)}.legend b{color:var(--text);font-variant-numeric:tabular-nums;margin-left:4px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}.c-REGISTERED{background:var(--ink)}.c-PARTICIPATED{background:var(--green)}.c-PRIZE{background:var(--silver-seal)}.c-WINNER{background:var(--gold-seal)}.c-REJECTED{background:var(--red)}dialog.dialog{border:0;padding:0;border-radius:12px;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);background:var(--surface);color:var(--text);box-shadow:0 24px 60px -12px #161b2659}dialog.dialog::backdrop{background:#161b2666}.dialog-head{display:flex;align-items:center;padding:18px 20px 0}.dialog-body{padding:18px 20px 20px}.dialog-foot{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.empty{padding:40px 20px;text-align:center;color:var(--text-2)}.empty b{display:block;color:var(--text);margin-bottom:4px}.skeleton{background:var(--sunk);border-radius:var(--r-s)}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-side{background:var(--ink);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;gap:32px;overflow:hidden}.auth-side .brand{color:#fff}.auth-side .brand-mark{color:#fff;--blot-eye: var(--ink)}.auth-side h1{font-size:2.2rem;max-width:15ch}.auth-side p{color:color-mix(in srgb,#fff 75%,var(--ink));max-width:40ch;margin-top:12px}.auth-side .mascot{align-self:center;color:#fff;--blot-eye: var(--ink)}.auth-main{display:grid;place-items:center;padding:32px 16px;background:var(--surface)}.auth-form{width:100%;max-width:360px}.auth-form h2{font-size:1.4rem;margin-bottom:20px}.demo{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);font-size:.87rem;color:var(--text-2)}.demo button{border:0;background:none;padding:0;font:inherit;color:var(--ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--ink) 35%,transparent)}@media(max-width:860px){.auth{grid-template-columns:1fr}.auth-side{padding:28px 20px}.auth-side p{display:none}.auth-side .mascot{width:120px!important;height:120px!important}.auth-side h1{font-size:1.5rem}}@media(pointer:coarse){.btn{height:44px}.btn-sm{height:40px}.btn-icon{width:40px}.input{height:44px}.seg button{height:38px}}.mascot{position:relative;flex-shrink:0;color:var(--ink);cursor:default;-webkit-tap-highlight-color:transparent}.mascot canvas{position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;width:160%;height:160%;display:block;pointer-events:none}.mascot-fallback{position:absolute;top:12%;right:12%;bottom:12%;left:12%;width:76%;height:76%;transition:opacity .25s}.mascot.is-ready .mascot-fallback{opacity:0}.alert .mascot{margin:-8px 0 -8px -6px}.alert{align-items:center}.empty-mascot{margin:0 auto 6px}.hero{display:flex;align-items:center;gap:8px 24px}.hero .level{flex:1;min-width:0}.hero .mascot{cursor:pointer}.say{grid-column:1 / -1;margin-top:2px;color:var(--text-2)}.say b{color:var(--text);font-weight:600}@media(max-width:560px){.hero{flex-direction:column;align-items:stretch}.hero .mascot{align-self:center}}.input-wrap{position:relative;display:block}.input-wrap .input{padding-right:44px}.input-action{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:34px;height:30px;border:0;border-radius:var(--r-s);background:transparent;color:var(--text-3);display:grid;place-items:center;cursor:pointer}.input-action:hover{color:var(--text);background:var(--sunk)}.input-action[aria-pressed=true]{color:var(--ink)}.ink-intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000}.ink-intro-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--paper)}.ink-pen,.ink-drop,.ink-splat,.ink-droplet{position:absolute;display:block}.ink-pen{opacity:0}.ink-drop{transform-origin:50% 0;transform:scale(0)}.mascot.is-wait,.mascot.is-spawn{z-index:1001}.mascot.is-wait .mascot-fallback{opacity:0}.mascot.is-spawn:not(.is-ready) .mascot-fallback{animation:blot-pop .6s cubic-bezier(.2,.9,.3,1.3) both;transform-origin:50% 80%}@keyframes blot-pop{0%{transform:scale(.3,.08)}60%{transform:scale(1.1,.92)}to{transform:none}}.settings{display:grid;gap:16px;max-width:640px}.settings h2{margin-bottom:14px}.switch-row{display:flex;gap:12px;align-items:flex-start;cursor:pointer}.switch-row>span{display:flex;flex-direction:column;gap:2px}.switch-row input[role=switch]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex-shrink:0;width:38px;height:22px;border-radius:999px;background:var(--line-strong);position:relative;cursor:pointer;transition:background .15s;margin:1px 0 0}.switch-row input[role=switch]:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #161b2640;transition:transform .15s}.switch-row input[role=switch]:checked{background:var(--ink)}.switch-row input[role=switch]:checked:after{transform:translate(16px)}.prose{line-height:1.65;max-width:70ch}.prose h3{font-size:1.15rem;margin:22px 0 8px}.prose h4{font-size:1rem;margin:18px 0 6px}.prose>:first-child{margin-top:0}.prose p{margin:0 0 10px}.prose ul,.prose ol{margin:0 0 10px;padding-left:22px}.prose li{margin-bottom:4px}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--sunk);padding:1px 5px;border-radius:4px}.prose strong{font-weight:650}.chip-TODO{background:var(--ink-soft);color:var(--ink)}.chip-DONE{background:var(--green-soft);color:var(--green)}.chip-OVERDUE{background:var(--red-soft);color:var(--red)}.chip-DRAFT{background:var(--sunk);color:var(--text-2)}.chip-PUBLISHED{background:var(--green-soft);color:var(--green)}.row-link{color:var(--text);text-decoration:none}.row-link:hover{color:var(--ink);text-decoration:underline}.code-cell{letter-spacing:.08em;font-weight:550}.join-code{display:flex;align-items:center;gap:12px 24px;flex-wrap:wrap}.join-code-value{font-size:1.6rem;font-weight:700;letter-spacing:.12em;font-variant-numeric:tabular-nums;color:var(--ink)}.stack-16{display:flex;flex-direction:column;gap:12px}.assign-form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.assign-form .field.grow{min-width:220px}.members-grid{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}@media(max-width:860px){.members-grid{grid-template-columns:1fr}}.pick-list{list-style:none;margin:10px 0 12px;padding:0;max-height:300px;overflow-y:auto}.pick-list li{padding:6px 2px;border-bottom:1px solid var(--line)}.pick-list li:last-child{border-bottom:0}.gradebook th{white-space:normal;min-width:90px;max-width:160px;vertical-align:bottom}.gradebook th:first-child{min-width:180px}.cell-full{color:var(--green);font-weight:600}.late{color:var(--red);margin-left:2px}.editor{display:flex;flex-direction:column;gap:16px;padding-bottom:80px}.preview-box{border:1px solid var(--line);border-radius:var(--r-s);padding:14px 16px;min-height:200px;background:var(--surface);font-weight:400}.mono-area{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem;line-height:1.55}.tasks{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;min-width:0}.tasks h2{margin-top:8px}.tasks:disabled .task-card{background:var(--sunk)}.task-card{display:flex;flex-direction:column;gap:12px}.task-head{gap:10px}.options{display:flex;flex-direction:column;gap:8px}.option-row{display:flex;align-items:center;gap:8px}.option-row input[type=radio],.option-row input[type=checkbox]{width:18px;height:18px;flex-shrink:0;margin:0}.add-task{align-self:flex-start}.save-bar{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 -16px;padding:12px 16px;background:color-mix(in srgb,var(--paper) 92%,transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:none;backdrop-filter:none}.save-bar .alert{padding:8px 12px}.mark{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.mark-ok{color:var(--green)}.mark-part{color:var(--gold)}.mark-bad{color:var(--red)}.answers-row td{background:var(--paper)}.answer-list{margin:4px 0;padding-left:20px;display:flex;flex-direction:column;gap:10px}.late-label{color:var(--red)}.task-stats{display:flex;flex-direction:column;gap:8px}.task-stat{display:grid;grid-template-columns:minmax(0,1fr) 160px 70px;gap:12px;align-items:center}.task-stat-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.93rem}.task-stat-bar{height:8px;background:var(--sunk);border-radius:999px;overflow:hidden}.task-stat-bar>div{height:100%;background:var(--green);border-radius:999px}.task-stat-bar>div.low{background:var(--gold-seal)}@media(max-width:560px){.task-stat{grid-template-columns:1fr 70px}.task-stat-bar{display:none}}.join-form{flex-wrap:nowrap}.assignment-side{display:flex;align-items:center;gap:14px;flex-shrink:0}.solve-list{list-style:none;margin:0;padding:0 0 72px;display:flex;flex-direction:column;gap:12px}.choices{display:flex;flex-direction:column;gap:6px}.choice{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-s);cursor:pointer;transition:border-color .15s,background .15s;max-width:560px}.choice:hover{border-color:var(--line-strong)}.choice.is-picked{border-color:var(--ink);background:var(--ink-soft)}.choice input{width:17px;height:17px;margin:0;flex-shrink:0}.result-head{display:flex;align-items:center;gap:8px 20px;flex-wrap:wrap}.result-score{font-size:1.1rem;margin:2px 0 4px}.result-score b{font-size:2rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.explanation{margin-top:8px;padding:8px 12px;background:var(--paper);border-radius:var(--r-s);color:var(--text-2);font-size:.93rem}.slides{display:flex;flex-direction:column;gap:12px}.slide-meta{display:flex;align-items:center}.slide{animation:slide-in .2s ease-out}.slide-task{padding:28px}.slide-task .input{height:46px;font-size:1.05rem}.slide-task .choice{padding:12px 14px;max-width:none}@keyframes slide-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}.slide .prose{font-size:1.05rem}.slide-task-title{font-size:1.2rem;line-height:1.35}.slide-nav{display:flex;align-items:center;gap:12px}.slide-dots{flex:1;display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.dot-btn{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--line-strong);background:transparent;padding:0;cursor:pointer}.dot-btn.is-theory{border-radius:2px}.dot-btn.is-done{background:var(--ink);border-color:var(--ink)}.dot-btn.is-current{outline:2px solid var(--ink);outline-offset:2px}.slide-foot{min-height:24px}.slide-break{border:0;border-top:2px dashed var(--line-strong);margin:20px 0}@media(max-width:560px){.slide-dots{display:none}.slide-nav{justify-content:space-between}}@media(prefers-reduced-motion:reduce){.slide{animation:none}}.player{max-width:720px;margin:0 auto}.demo-banner{background:var(--gold-soft);color:var(--gold);font-size:.87rem;padding:8px 16px;text-align:center}.demo-banner button{margin-left:10px;border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--gold);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.topbar-inner{height:auto;min-height:60px;flex-wrap:wrap;gap:8px 24px;padding-top:10px}.topbar .user{margin-left:auto}.nav{order:3;width:100%;height:44px;overflow-x:auto}.achievement-form{margin-bottom:24px;max-width:780px}.achievement-row{padding:22px 24px;border-bottom:1px solid var(--line)}.achievement-row:last-child{border-bottom:0}.achievement-main{min-width:0;overflow-wrap:anywhere}.achievement-main>p{margin-top:6px}.achievement-main>.btn{margin-top:12px}.portal-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.portal-title-row h3{font-size:1.05rem}.proof-link{display:inline-flex;align-items:center;gap:5px;margin-top:8px}.portal-actions{display:flex;gap:10px;flex-wrap:wrap}.review-comment{background:var(--paper);padding:10px 12px;border-radius:6px;font-size:.9rem}.review-controls{max-width:680px;margin-top:18px;display:grid;gap:12px}.portal-filter{max-width:260px;margin-bottom:20px}.portal-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.rating-position{margin-bottom:16px}.rating-me td{background:var(--ink-soft)}.scoring-note{color:var(--text-2);font-size:.88rem;margin:20px 0;max-width:780px}.scoring-note summary{cursor:pointer}.scoring-note p{margin-top:10px;line-height:1.6}.portfolio-summary{margin-bottom:24px}.category-summary{display:grid;grid-template-columns:repeat(4,1fr);margin:24px 0 18px}.category-summary>div{padding:0 20px;border-left:1px solid var(--line)}.category-summary>div:first-child{padding-left:0;border:0}.category-summary dt{color:var(--text-2);font-size:.9rem}.category-summary dd{margin:4px 0 0;display:flex;flex-direction:column}.category-summary dd b{font-size:1.6rem}.category-summary dd span{font-size:.85rem;color:var(--text-3)}.direction-summary{display:flex;gap:10px 24px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px;font-size:.9rem}.advisor{margin-top:24px}.advisor>p{margin:8px 0 18px}.advisor form{max-width:760px}.advisor-answer{margin-top:24px;max-width:800px;border-top:1px solid var(--line);padding-top:20px}.telegram-link{display:grid;justify-items:start;gap:12px}@media(max-width:640px){.portal-filters{grid-template-columns:1fr 1fr}.portal-title-row{flex-direction:column;gap:8px}.achievement-row{padding:18px 16px}.category-summary{grid-template-columns:1fr 1fr;gap:20px}.category-summary>div:nth-child(3){padding-left:0;border:0}}
