/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.order-1{order:1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:var(--spacing)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.size-1{width:var(--spacing);height:var(--spacing)}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.basics-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;margin-bottom:1.25rem;display:flex}.basics-tabs{border:var(--rule);background:var(--color-bg-subtle);border-radius:10px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:.25rem;width:100%;min-width:0;padding:.3rem;display:grid}.basics-tabs a{min-height:44px;color:var(--color-text-secondary);font-size:var(--text-small);white-space:nowrap;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:.5rem;padding:.65rem .85rem;text-decoration:none;display:flex}.basics-tabs a svg{flex-shrink:0}.basics-tabs a:hover{color:var(--color-text);background:var(--color-bg-muted)}.basics-tabs a[aria-selected=true]{color:var(--color-link);border-color:var(--color-border);background:var(--color-bg-surface);font-weight:600;box-shadow:0 1px 3px #1f23280a}.basics-tabs a:focus-visible{outline-offset:-3px}@media (max-width:1100px){.basics-tabs{overscroll-behavior-x:contain;scrollbar-width:thin;display:flex;overflow-x:auto}.basics-tabs a{flex:none}}.basics-parts{gap:1.5rem;display:grid}.basics-part{border:var(--rule);scroll-margin-top:calc(var(--topbar-h) + 1rem);border-radius:8px;padding:0 1.25rem}.basics-part__head{align-items:center;gap:1rem;padding:1.25rem 0;display:flex}.basics-part__head>div{min-width:0}.basics-part__actions{flex-shrink:0;align-items:center;gap:1rem;margin-left:auto;display:flex}.basics-start{gap:.5rem}.basics-catalog .basics-part h2{font-family:var(--font-sans);font-size:var(--text-h3);line-height:var(--leading-header);margin:0;font-weight:600}.basics-part h2 a{text-decoration:none}.basics-part h2 a:hover{color:var(--color-link)}.basics-part__head p{font-size:var(--text-small);color:var(--color-text-secondary);margin:.4rem 0 0}.basics-part__head>div>p:first-child{margin-top:0}.basics-count{white-space:nowrap;font-size:var(--text-micro);color:var(--color-text-secondary);margin-left:auto}.basics-part__actions .basics-count{margin:0}.basics-lesson-list{margin:0;padding:0;list-style:none}.basics-lesson-list li>a,.basics-lesson-list li>div{border-top:var(--rule);font-size:var(--text-small);grid-template-columns:1.5rem minmax(0,1fr) auto;align-items:baseline;gap:.75rem;padding:.85rem 0;text-decoration:none;display:grid}.basics-lesson-list a:hover strong{color:var(--color-link)}.basics-lesson-list a:hover{background:var(--color-bg-subtle)}.basics-lesson-list strong{font-size:.9375rem;font-weight:600}.basics-lesson-list span{font-family:var(--font-mono)}.basics-lesson-list small,.basics-lesson-list span{color:var(--color-text-secondary);font-size:var(--text-micro)}.basics-lesson-list small{white-space:nowrap}.basics-lesson-list li>div{color:var(--color-text-secondary)}.basics-upcoming{border-top:var(--rule)}.basics-upcoming>summary{min-height:48px;color:var(--color-text-secondary);font-size:var(--text-small);cursor:pointer;align-items:center;gap:.75rem;padding:.8rem 0;list-style:none;display:flex}.basics-upcoming>summary::-webkit-details-marker{display:none}.basics-upcoming>summary:hover{color:var(--color-text)}.basics-upcoming__status{font-size:var(--text-micro);margin-left:auto}.basics-upcoming>summary svg{flex-shrink:0;transition:transform .15s}.basics-upcoming[open]>summary svg{transform:rotate(180deg)}.basics-reader{width:100%}.basics-outline{overscroll-behavior:contain;font-size:.85rem}.basics-outline__head{font-size:var(--text-micro);justify-content:space-between;gap:.75rem;margin-bottom:.5rem;display:flex}.basics-outline-toggle,.basics-outline__head{color:var(--color-text-secondary);align-items:center}.basics-outline-toggle{width:32px;height:32px;cursor:pointer;background:0 0;border:0;border-radius:4px;flex-shrink:0;justify-content:center;padding:0;display:inline-flex}.basics-outline-toggle:hover{background:var(--color-bg-subtle);color:var(--color-text)}.basics-outline summary{cursor:pointer;padding:.75rem 0;font-weight:600}.basics-outline ol{padding:0;list-style:none}.basics-outline li>a{border-radius:4px;align-items:baseline;gap:.5rem;padding:.6rem .5rem;text-decoration:none;display:flex}.basics-outline li>a[aria-current=page]{background:var(--color-accent-bg);color:var(--color-link)}.basics-outline li>a:hover{background:var(--color-bg-subtle)}.basics-outline li>a>span{font-family:var(--font-mono);color:var(--color-text-secondary);font-size:.7rem}.basics-outline small{white-space:nowrap;color:var(--color-text-secondary);font-size:.65rem}.basics-pending{color:var(--color-text-secondary);padding:.6rem .5rem;display:block}.basics-pending small{display:block}.basics-main{min-width:0}.basics-breadcrumb{min-height:44px;font-size:var(--text-small);color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1.75rem;display:flex}.basics-breadcrumb a{text-decoration:none}.basics-answer{border:var(--rule);border-radius:6px;margin:1rem 0;padding:.85rem 1rem}.basics-answer summary{cursor:pointer;color:var(--color-link);font-weight:500}.basics-answer[open] summary{margin-bottom:1rem}.prose .basics-exercise{border-top:var(--rule);margin-top:2.5rem;padding-top:1.75rem}.basics-exercise>h2{font-size:1.5rem;line-height:var(--leading-header);margin:0 0 .85rem;font-weight:600}.basics-pagination{max-width:var(--measure-content);border-top:var(--rule);grid-template-columns:1fr 1fr;gap:1.5rem;margin:3rem auto 0;padding-top:1.5rem;display:grid}.basics-pagination a{color:var(--color-link);text-decoration:none}.basics-pagination a:last-child{text-align:right}.basics-pagination small{color:var(--color-text-secondary);margin-bottom:.4rem;display:block}.basics-login{background:var(--color-bg-subtle);border:var(--rule);border-radius:8px;flex-direction:column;align-items:flex-start;gap:1rem;margin:2rem 0;padding:1.5rem;display:flex}.prose .basics-login>p{margin:0}.basics-mobile-tools,.basics-scrim{display:none}.basics-toc__head{justify-content:space-between;align-items:center;display:flex}.basics-toc-close{display:none}.foundation-admin-row{border-bottom:var(--rule);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 0;display:flex}.foundation-admin-part__title{align-items:center;gap:.55rem;min-width:0;display:inline-flex}.foundation-admin-row__title{min-width:0;color:var(--color-link);overflow-wrap:anywhere;align-items:baseline;gap:.55rem;text-decoration:none;display:inline-flex}.foundation-admin-row__title:hover{text-decoration:underline}.foundation-admin-row__sort{color:#8b949e;font-variant-numeric:tabular-nums;flex:none}.foundation-admin-row__ops{justify-content:flex-end}.foundation-admin-row__file,.foundation-admin-row__ops{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.foundation-admin-row__file{justify-content:flex-start;min-width:0}.foundation-admin-row__name{overflow-wrap:anywhere}.foundation-admin-section__label{color:#59636e;margin:.5rem 0 0;font-size:.8125rem;font-weight:600}.foundation-admin-row__stat{color:#59636e;font-variant-numeric:tabular-nums;flex:none;font-size:.8125rem}@media (min-width:1101px){.basics-reader.is-outline-collapsed{grid-template-columns:minmax(0,1fr) 280px}.basics-reader.is-outline-collapsed .basics-outline{display:none}}@media (max-width:1100px){.basics-main{border:0}.basics-mobile-tools{padding:var(--page-top-space) 1rem .75rem;border-bottom:var(--rule);justify-content:space-between;align-items:center;display:flex}.basics-mobile-tools a{font-size:.8rem;text-decoration:none}.basics-outline{display:none}.basics-reader .basics-outline.is-open{z-index:90;background:var(--color-bg-page);width:min(340px,88vw);max-height:100dvh;margin:0;padding:1.25rem;display:block;position:fixed;top:0;bottom:0;left:0;box-shadow:4px 0 24px #0002}.basics-scrim{z-index:89;background:#0005;border:0;display:block;position:fixed;inset:0}.basics-outline-reopen{display:none}.basics-reader .learn-toc.is-open{z-index:90;background:var(--color-bg-page);width:min(340px,88vw);height:100dvh;max-height:100dvh;margin:0;padding:1.25rem;display:block;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-4px 0 24px #0002}.basics-toc-close{display:inline-flex}.basics-part{padding:0 1rem}.basics-part__head{align-items:flex-start;gap:.75rem}.basics-catalog .basics-part h2{font-size:1.125rem}.basics-count{padding-top:.2rem}.basics-lesson-list li>a,.basics-lesson-list li>div{grid-template-columns:1.25rem minmax(0,1fr) auto;gap:.5rem}.foundation-admin-row{flex-direction:column;align-items:flex-start}.foundation-admin-row__ops{justify-content:flex-start}}@media (max-width:640px){.basics-main .lesson-meta span:last-child{flex-basis:100%}.basics-main .lesson-meta span:last-child:before{display:none}.basics-part__head{flex-wrap:wrap}.basics-part__actions{flex-basis:100%;justify-content:space-between;margin-left:0}.basics-part__actions .basics-count{padding-top:0}.basics-start{min-height:36px;font-size:var(--text-small);padding:.45rem .75rem}}.prose nav.lesson-mode-switch{border-bottom:var(--rule);gap:1.5rem;margin:1.5rem 0 2rem;padding:0;display:flex}.prose nav.lesson-mode-switch a{min-height:44px;color:var(--color-text-secondary);font-size:var(--text-small);border-bottom:2px solid #0000;align-items:center;padding:.5rem .15rem;font-weight:600;text-decoration:none;display:inline-flex}.prose nav.lesson-mode-switch a[aria-current=page]{border-bottom-color:var(--color-link);color:var(--color-link)}.foundation-visual>.prose{max-width:none}.http-lab{width:100%;font-size:var(--text-small);margin:0 auto;line-height:1.6}.http-lab button{font:inherit;cursor:pointer}.http-lab button:disabled{cursor:default;opacity:.45}.http-lab code,.http-lab pre{font-family:var(--font-mono)}.http-lab__bench{border:var(--rule);scroll-margin-top:calc(var(--topbar-h) + 1rem);border-radius:12px;overflow:hidden}.http-lab__context{justify-content:space-between;align-items:center;padding:1rem 1.5rem .75rem;display:flex}.http-lab__context>span:first-child{align-items:center;gap:.5rem;font-weight:600;display:flex}.http-lab__simulation{color:var(--color-text-secondary);font-size:var(--text-micro)}.http-lab__address{border:var(--rule);background:var(--color-bg-subtle);border-radius:6px;align-items:center;gap:.75rem;margin:0 1.5rem;padding:.75rem 1rem;display:flex}.http-lab__address code{overflow-wrap:anywhere;font-size:.8125rem}.http-lab__method{color:var(--color-link);font-family:var(--font-mono);font-size:.75rem;font-weight:700}.http-lab__diagram{grid-template-columns:150px minmax(0,1fr) 150px;align-items:center;gap:1rem;padding:2.5rem 2rem 1.75rem;display:grid}.http-lab__endpoint{text-align:center;color:var(--color-text-secondary);border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:.35rem;padding:1rem .5rem;display:flex}.http-lab__endpoint>svg{width:32px;height:32px;margin-bottom:.5rem}.http-lab__endpoint strong{color:var(--color-text);font-size:1rem}.http-lab__endpoint>span{font-size:.75rem}.http-lab__endpoint small{color:var(--color-text-secondary);margin-top:.6rem;font-size:.75rem}.http-lab__endpoint.is-active{border-color:var(--color-link);background:var(--color-accent-bg);color:var(--color-link)}.http-lab__wire{min-width:0}.http-lab__rail{border-bottom:1px solid var(--color-border-strong);height:32px;color:var(--color-text-secondary);position:relative}.http-lab__rail>span{font-size:.75rem;position:absolute;top:0;left:50%;transform:translate(-50%)}.http-lab__rail>svg{background:var(--color-bg-page);width:18px;position:absolute;bottom:-9px;right:-3px}.http-lab__rail--in>svg{left:-3px;right:auto}.http-lab__rail.is-sent{color:var(--color-link);border-color:var(--color-link)}.http-lab__rail--in.is-sent{color:var(--color-tip);border-color:var(--color-tip)}.http-lab__connection{height:42px;color:var(--color-text-secondary);font-family:var(--font-mono);justify-content:center;align-items:center;gap:.3rem;font-size:.6875rem;display:flex}.http-lab__packet{z-index:1;border:1px solid var(--color-link);color:var(--color-link);background:var(--color-bg-page);font-family:var(--font-mono);border-radius:4px;padding:1px 8px;font-size:.75rem;font-weight:700;display:none;position:absolute;bottom:-11px;left:50%;transform:translate(-50%)}.http-lab__rail.is-current .http-lab__packet{animation:http-packet-out 1.7s ease-in-out both;display:block}.http-lab__rail--in.is-current .http-lab__packet{color:var(--color-tip);border-color:var(--color-tip);animation-name:http-packet-in}@keyframes http-packet-out{0%{left:10%}to{left:90%}}@keyframes http-packet-in{0%{left:90%}to{left:10%}}.http-lab__steps{justify-content:space-between;gap:.5rem;margin:0 0 1.25rem;padding:0 1.5rem;list-style:none;display:flex}.http-lab__steps li{color:var(--color-text-secondary);align-items:center;gap:.4rem;font-size:.75rem;display:flex}.http-lab__steps li>span{border:var(--rule);width:20px;height:20px;font-family:var(--font-mono);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.625rem;display:flex}.http-lab__steps li.is-current{color:var(--color-link);font-weight:600}.http-lab__steps li.is-current>span{background:var(--color-link);color:var(--color-bg-page);border-color:var(--color-link)}.http-lab__steps li.is-done>span{color:var(--color-tip);border-color:var(--color-tip)}.http-lab__explanation{background:var(--color-bg-subtle);border-top:var(--rule);min-height:101px;padding:1rem 1.5rem}.http-lab__explanation strong{font-weight:600}.http-lab__explanation p{color:var(--color-text-secondary);margin:.35rem 0 0}.http-lab__controls{border-bottom:var(--rule);align-items:center;gap:.65rem;padding:1rem 1.5rem;display:flex}.http-lab .btn{justify-content:center;padding:.5rem .9rem;font-size:.8125rem}.http-lab .btn,.http-lab__reset{align-items:center;gap:.4rem;min-height:40px;display:inline-flex}.http-lab__reset{color:var(--color-text-secondary);background:0 0;border:0;padding:.5rem}.http-lab__controls>span{color:var(--color-text-secondary);font-family:var(--font-mono);white-space:nowrap;margin-left:auto;font-size:.75rem}.http-lab__messages{grid-template-columns:1fr 1fr;display:grid}.http-lab__messages section{min-width:0}.http-lab__messages section+section{border-left:var(--rule)}.http-lab__message-head{justify-content:space-between;align-items:center;gap:.5rem;padding:.85rem 1.25rem;display:flex}.http-lab__message-head strong{align-items:center;gap:.4rem;font-weight:600;display:flex}.http-lab__message-head>span{color:var(--color-text-secondary);font-size:.6875rem}.http-lab__messages pre{background:var(--color-bg-subtle);min-height:180px;max-height:320px;color:var(--color-text);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:1rem 1.25rem;font-size:.75rem;line-height:1.8;overflow:auto}.http-lab__messages p{margin:.75rem 1.25rem 1rem}.http-lab__message-note,.http-lab__messages p{color:var(--color-text-secondary);font-size:.6875rem}.http-lab__message-note{margin:0;padding:.2rem 1.25rem 1rem}.http-lab__config{border:0;border-top:var(--rule);min-width:0;margin:0;padding:1.25rem 1.5rem 1.5rem}.http-lab__config legend{float:left;margin-bottom:1rem;padding:0;font-weight:600}.http-lab__config-fields{clear:both;grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);align-items:end;gap:1.25rem;display:grid}.http-lab__config label{color:var(--color-text-secondary);flex-direction:column;gap:.4rem;font-size:.75rem;display:flex}.http-lab__config .site-select{width:100%;font-family:var(--font-mono);font-size:.8125rem}.http-lab__config .http-lab__server-toggle{cursor:pointer;min-height:40px;color:var(--color-text);flex-direction:row;align-items:center;gap:.65rem}.http-lab__server-toggle input{width:18px;height:18px;accent-color:var(--color-link);cursor:pointer;flex:none}.http-lab__server-toggle small{color:var(--color-text-secondary);font-size:.6875rem;display:block}.http-lab__challenges{margin:2.5rem 0 0}.http-lab__challenge-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.http-lab__challenge-head h2{margin:0;font-size:1.25rem;font-weight:600}.http-lab__challenge-head>span{color:var(--color-text-secondary);font-size:.75rem}.http-lab__challenge-list{border:var(--rule);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.http-lab__challenge-list>button{background:var(--color-bg-page);text-align:left;min-height:84px;color:var(--color-text);border:0;align-items:center;gap:.75rem;padding:1.1rem 1rem;display:flex}.http-lab__challenge-list>button+button{border-left:var(--rule)}.http-lab__challenge-list>button:hover{background:var(--color-bg-subtle)}.http-lab__challenge-list>button.is-selected{background:var(--color-accent-bg);box-shadow:inset 0 -2px var(--color-link)}.http-lab__challenge-list>button:focus-visible{outline-offset:-3px}.http-lab__challenge-list>button>svg{color:var(--color-text-secondary);flex:none;margin-left:auto}.http-lab__challenge-number{font-family:var(--font-mono);color:var(--color-text-secondary);font-size:.75rem}.http-lab__challenge-list strong{font-size:.8125rem;font-weight:600;display:block}.http-lab__challenge-list small{color:var(--color-text-secondary);margin-top:.3rem;font-size:.6875rem;display:block}.http-lab__mission{flex-wrap:wrap;align-items:center;gap:.4rem 1rem;padding:1rem 1.5rem 0;display:flex}.http-lab__mission strong{color:var(--color-link)}.http-lab__mission>span{width:100%;color:var(--color-text-secondary)}.http-lab__mission button,.http-lab__text-button{min-height:32px;color:var(--color-link);background:0 0;border:0;align-items:center;gap:.4rem;padding:0;font-size:.8125rem;display:inline-flex}.http-lab__verify{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:1.25rem;display:flex}.http-lab__verify p{color:var(--color-text-secondary);flex-basis:100%;margin:0}.http-lab__feedback{border-left:3px solid;margin-top:1.25rem;padding-left:1rem}.http-lab__feedback p{color:var(--color-text-secondary);margin:.4rem 0}.http-lab__feedback>span{color:var(--color-tip);display:block}.http-lab .is-ok{color:var(--color-tip)}.http-lab .is-error{color:var(--color-caution)}@media (max-width:700px){.http-lab__context{padding:1rem 1rem .75rem}.http-lab__address{gap:.5rem;margin:0 1rem;padding:.7rem}.http-lab__address code{font-size:.6875rem}.http-lab__diagram{grid-template-columns:90px minmax(0,1fr) 90px;gap:.35rem;padding:1.5rem .65rem}.http-lab__endpoint{padding:.75rem .2rem}.http-lab__endpoint strong{font-size:.8125rem}.http-lab__endpoint small,.http-lab__endpoint>span{font-size:.625rem}.http-lab__connection{font-size:.5625rem}.http-lab__steps{gap:.35rem;padding:0 1rem}.http-lab__steps li{flex-direction:column;gap:.3rem;font-size:.625rem}.http-lab__explanation{min-height:128px;padding:1rem}.http-lab__controls{flex-wrap:wrap;gap:.4rem;padding:.8rem 1rem}.http-lab .btn{min-height:44px;padding:.5rem .65rem}.http-lab__reset{min-height:44px;font-size:.75rem}.http-lab__messages{grid-template-columns:1fr}.http-lab__messages section+section{border-left:0;border-top:var(--rule)}.http-lab__messages pre{min-height:90px;padding:1rem}.http-lab__message-head{padding:.85rem 1rem}.http-lab__message-note{padding:0 1rem 1rem}.http-lab__config{padding:1rem}.http-lab__config-fields{grid-template-columns:minmax(0,1fr) 80px;gap:1rem}.http-lab__config .http-lab__server-toggle{grid-column:1/-1}.http-lab__challenge-list{grid-template-columns:1fr}.http-lab__challenge-list>button+button{border-left:0;border-top:var(--rule)}.http-lab__challenge-list>button{min-height:76px}.http-lab__mission{padding:1rem 1rem 0}}@media (prefers-reduced-motion:reduce){.http-lab__rail.is-current .http-lab__packet{animation:none}}.profile-page{padding-top:var(--page-top-space);padding-bottom:4rem}.profile-page__head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;display:flex}.profile-page__head h1{margin:0;font-size:1.65rem}.profile-section>header a,.profile-text-link{color:var(--color-text-secondary);font-size:var(--text-small);align-items:center;gap:.35rem;min-height:44px;text-decoration:none;display:inline-flex}.profile-section>header a:hover,.profile-text-link:hover{color:var(--color-link)}.profile-identity__name{flex:1;min-width:0}.profile-identity__name h2{overflow-wrap:anywhere;margin:0 .65rem 0 0;font-size:1.4rem;display:inline}.profile-identity__name p{color:var(--color-text-secondary);font-size:var(--text-micro);margin:.5rem 0 0}.profile-stats{border-bottom:var(--rule);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:1.75rem 0;display:grid}.profile-stats>div{border-right:var(--rule);padding:0 1.5rem}.profile-stats>div:first-child{padding-left:0}.profile-stats>div:last-child{border:0}.profile-stats dt{color:var(--color-text-secondary);font-size:var(--text-small)}.profile-stats dd{font-variant-numeric:tabular-nums;margin:.3rem 0 0;font-size:1.8rem;font-weight:600}.profile-stats dd span{font-weight:400;font-size:var(--text-small);color:var(--color-text-secondary);margin-left:.45rem}.profile-section{margin-bottom:2.5rem}.profile-section>header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;display:flex}.profile-section>header h2{font-size:var(--text-h3);margin:0}.profile-section>header>span{color:var(--color-text-secondary);font-size:var(--text-small)}.profile-achievements{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.achievement{border:var(--rule);background:var(--color-bg-surface);border-radius:10px;gap:1rem;padding:1.25rem;display:flex}.achievement__seal{width:58px;height:58px;color:var(--color-text-secondary);background:var(--color-bg-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.achievement.is-earned .achievement__seal{color:var(--color-gold);background:var(--color-gold-bg)}.achievement__body{min-width:0}.achievement h3{font-size:var(--text-body);margin:0}.achievement p{margin:.3rem 0}.achievement p,.achievement__status{color:var(--color-text-secondary);font-size:var(--text-micro)}.achievement__status{align-items:center;gap:.3rem;display:inline-flex}.achievement--compact{text-align:center;background:0 0;border:0;flex-direction:column;align-items:center;gap:.6rem;padding:0}.achievement--compact h3{font-size:var(--text-small)}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.profile-empty{color:var(--color-text-secondary);font-size:var(--text-small);margin:1rem 0}.profile-next-achievement strong{font-variant-numeric:tabular-nums;color:var(--color-text-secondary);font-weight:500}.profile-week-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:1rem;display:grid}.profile-week-days>span{font-size:var(--text-micro);color:var(--color-text-secondary);flex-direction:column;align-items:center;gap:.4rem;display:flex}.profile-week-days>span>span:last-child{background:var(--color-bg-subtle);border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.profile-week-days>.is-learned>span:last-child{color:var(--color-tip);background:var(--color-success-bg)}.profile-goal-control{font-size:var(--text-micro);color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.profile-goal-control .site-select{max-width:100%}.profile-goal-control>span{flex-basis:100%}.profile-goal-control>span:empty{display:none}.profile-account dl{font-size:var(--text-small);margin:0}.profile-account dl>div{grid-template-columns:4.5rem minmax(0,1fr);gap:.5rem;padding:.45rem 0;display:grid}.profile-account dt{color:var(--color-text-secondary)}.profile-account dd{overflow-wrap:anywhere;margin:0}.profile-pins fieldset{border:0;min-width:0;margin:0;padding:0}.profile-pins legend{font-size:var(--text-small);margin-bottom:.75rem}.profile-error{font-size:var(--text-small);color:var(--color-caution);overflow-wrap:anywhere}.profile-pins{border-top:var(--rule);margin-top:1.5rem;padding-top:1.5rem}.profile-pin-options{flex-wrap:wrap;gap:.5rem 1.5rem;margin-bottom:1rem;display:flex}.profile-pin-options label{min-height:44px;font-size:var(--text-small);cursor:pointer;align-items:center;gap:.45rem;display:flex}.profile-pin-options input{width:16px;height:16px;accent-color:var(--color-link)}.profile-pins>span{font-size:var(--text-small);color:var(--color-text-secondary);margin-left:.75rem}.learning-reward{background:var(--color-gold-bg);color:var(--color-gold);border-radius:8px;align-items:center;gap:.85rem;margin-top:.75rem;padding:1rem 1.25rem;display:flex}.learning-reward>svg{flex-shrink:0}.learning-reward>div{flex:1;min-width:0}.learning-reward>div>strong{color:var(--color-text);font-size:var(--text-small);display:block}.learning-reward>div>span{font-size:var(--text-micro);display:block}.learning-reward>a{min-height:44px;font-size:var(--text-small);white-space:nowrap;align-items:center;display:flex}@media (max-width:760px){.achievement-grid{grid-template-columns:1fr}}@media (max-width:420px){.profile-stats>div{padding:0 .65rem}.profile-stats dt{font-size:var(--text-micro)}.profile-stats dd{font-size:1.5rem}.profile-achievements{gap:.5rem}.learning-reward{flex-wrap:wrap;padding:1rem}.learning-reward>a{margin-left:auto}}body:has(.profile-dashboard-page){background:var(--color-bg-subtle)}.profile-dashboard-page{width:calc(100% - 64px);max-width:1180px;padding-bottom:64px}.profile-dashboard-page :is(h1,h2,h3){font-family:var(--font-sans)}.profile-dashboard-page .profile-page__head{margin-bottom:24px}.profile-dashboard-page .profile-page__head h1{letter-spacing:-.04em;font-size:26px;font-weight:650}.profile-dashboard{grid-template-columns:236px minmax(0,1fr);align-items:start;gap:24px;display:grid}.profile-sidebar{border:var(--rule);background:var(--color-bg-surface);border-radius:16px;padding:28px 20px 16px;overflow:hidden}.profile-sidebar .profile-identity{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:0 0 24px;display:flex}.profile-identity__avatar{border:1px solid var(--color-border);background:var(--color-bg-subtle);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;width:104px;height:104px;padding:0;transition:border-color .15s;display:grid;position:relative}.profile-identity__avatar:hover{border-color:var(--color-link)}.profile-identity__avatar:focus-visible{outline:2px solid var(--color-link);outline-offset:4px}.profile-identity__avatar-edit{border:2px solid var(--color-bg-surface);width:26px;height:26px;color:var(--color-link);background:var(--color-accent-bg);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:0;right:0}.profile-identity__avatar>.user-avatar{border-radius:50%}.profile-sidebar .profile-identity__name{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.profile-sidebar .profile-identity__name h2{margin:0;font-size:18px;font-weight:600;line-height:1.5;display:block}.profile-sidebar .profile-identity__name .pill{border-radius:5px;padding:3px 9px;font-size:12px}.profile-sidebar .profile-identity__name .profile-nickname-form{width:100%;margin:0}.profile-sidebar .profile-identity__name p{margin:0;font-size:12px}.profile-shortcuts{border-top:var(--rule);padding:15px 0}.profile-shortcuts a{min-height:48px;color:var(--color-text-secondary);border-radius:8px;align-items:center;gap:12px;padding:0 12px;font-size:14px;text-decoration:none;display:flex}.profile-shortcuts a>svg:first-child{color:var(--color-placeholder)}.profile-shortcuts a>svg:last-child{width:13px;margin-left:auto;transform:rotate(-90deg)}.profile-shortcuts a:hover{color:var(--color-link);background:var(--color-accent-bg)}.profile-sidebar .profile-account{border-top:var(--rule)}.profile-account summary{min-height:48px;color:var(--color-text-secondary);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:0 12px;font-size:13px;list-style:none;display:flex}.profile-account summary::-webkit-details-marker{display:none}.profile-account[open] summary>svg{transform:rotate(180deg)}.profile-sidebar .profile-account dl{padding:0 12px 12px;font-size:12px}.profile-sidebar .profile-account dl>div{padding:7px 0;display:block}.profile-sidebar .profile-account dt{margin-bottom:4px}.profile-dashboard__content{gap:20px;min-width:0;display:grid}.profile-overview{border:var(--rule);background:var(--color-bg-surface);border-radius:18px;overflow:hidden}.profile-dashboard-page .profile-stats{border:0;grid-template-columns:repeat(4,minmax(0,1fr));padding:21px 8px}.profile-dashboard-page .profile-stats>div{grid-template-columns:1fr;gap:4px;padding:0 22px;display:grid;position:relative}.profile-dashboard-page .profile-stats>div>svg{color:var(--color-link);margin-bottom:6px}.profile-dashboard-page .profile-stats>div:nth-child(2)>svg{color:var(--color-tip)}.profile-dashboard-page .profile-stats>div:nth-child(3)>svg{color:var(--color-warning)}.profile-dashboard-page .profile-stats>div:nth-child(4)>svg{color:var(--color-gold)}.profile-dashboard-page .profile-stats dt{font-size:12px}.profile-dashboard-page .profile-stats dd{margin:3px 0 0;font-size:24px;font-weight:650;line-height:1.15}.profile-dashboard-page .profile-stats dd>span{margin-left:5px;font-size:12px}.profile-activity{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;display:grid}.profile-calendar{grid-row:span 2}.profile-time{background:var(--color-accent-bg);border-bottom:var(--rule);justify-content:space-between;gap:24px;padding:30px 32px}.profile-time,.profile-time h2{align-items:center;display:flex}.profile-time h2{color:var(--color-text-secondary);gap:9px;margin:0;font-size:13px;font-weight:500}.profile-time h2 svg{color:var(--color-link)}.profile-time p{align-items:baseline;gap:9px;margin:12px 0 0;display:flex}.profile-time p strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:52px;font-weight:650;line-height:1.1}.profile-time p small,.profile-time p span{color:var(--color-text-secondary);font-size:14px}.profile-time>div:first-child,.profile-time__week{flex-shrink:0}.profile-time__quote{min-width:0;color:var(--color-text-secondary);text-align:center;text-wrap:balance;flex:1;justify-content:center;align-items:center;gap:12px;margin:0;font-size:18px;line-height:1.7;display:flex}.profile-time__quote>svg{color:var(--color-link);opacity:.65;flex-shrink:0}.profile-time__week{border-left:var(--rule);padding-left:24px}.profile-time__week>span{color:var(--color-text-secondary);font-size:12px;display:block}.profile-time__week>strong{font-variant-numeric:tabular-nums;margin-top:8px;font-size:25px;font-weight:600;display:block}.profile-time__week small{color:var(--color-text-secondary);margin-left:6px;font-size:12px;font-weight:400}.profile-calendar__toolbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.profile-calendar__toolbar>strong{white-space:nowrap;font-size:14px;font-weight:600}.profile-calendar__toolbar>div{gap:2px;display:flex}.profile-calendar__toolbar button{cursor:pointer;min-width:36px;height:44px;color:var(--color-text-secondary);background:0 0;border:0;border-radius:6px;place-items:center;padding:0 5px;font-size:12px;display:grid}.profile-calendar__toolbar button:hover:not(:disabled){background:var(--color-bg-subtle);color:var(--color-link)}.profile-calendar__toolbar button:disabled{opacity:.35;cursor:default}.profile-calendar__days,.profile-calendar__weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.profile-calendar__weekdays{color:var(--color-text-secondary);text-align:center;margin-bottom:10px;font-size:12px}.profile-calendar__days button{min-width:0;min-height:44px;color:var(--color-text);cursor:pointer;font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:6px;font-size:12px}.profile-calendar .level-0{background:var(--color-bg-subtle)}.profile-calendar .level-1{background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.profile-calendar .level-1{background:color-mix(in srgb,var(--color-link) 15%,var(--color-bg-surface))}}.profile-calendar .level-2{background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.profile-calendar .level-2{background:color-mix(in srgb,var(--color-link) 32%,var(--color-bg-surface))}}.profile-calendar .level-3{background:var(--color-link);color:light-dark(#fff,#102542)}.profile-calendar__days button[aria-pressed=true]{outline:2px solid var(--color-link);outline-offset:1px}.profile-calendar__days button.is-today{border-color:var(--color-link);font-weight:700}.profile-calendar__days button:disabled{opacity:.35;cursor:default;background:0 0}.profile-calendar__legend{color:var(--color-text-secondary);justify-content:flex-end;align-items:center;gap:5px;margin-top:14px;font-size:11px;display:flex}.profile-calendar__legend i{border-radius:3px;width:12px;height:12px}.profile-calendar__detail{border-top:var(--rule);flex-wrap:wrap;justify-content:space-between;gap:8px;margin:20px 0 0;padding-top:16px;font-size:12px;display:flex}.profile-calendar__detail strong{font-weight:500}.profile-calendar__detail>span{color:var(--color-text-secondary)}.profile-dashboard-page .profile-section{border:var(--rule);background:var(--color-bg-surface);border-radius:14px;margin:0;padding:22px 24px}.profile-dashboard-page .profile-section>header{gap:8px;margin-bottom:18px}.profile-dashboard-page .profile-section>header h2{font-size:16px;font-weight:600}.profile-dashboard-page .profile-section>header>svg{color:var(--color-placeholder)}.profile-dashboard-page .profile-section>header>span{font-size:12px}.profile-dashboard-page .profile-section>header a{min-height:44px;font-size:12px}.profile-dashboard-page .profile-recent{border-top:var(--rule);flex-direction:column;align-items:flex-start;display:flex}.profile-dashboard-page .profile-recent>header{width:100%}.profile-dashboard-page .profile-recent__tutorial{color:var(--color-link);background:var(--color-accent-bg);border-radius:5px;padding:4px 8px;font-size:12px;display:inline-flex}.profile-dashboard-page .profile-recent h3{overflow-wrap:anywhere;margin:12px 0 20px;font-size:18px;font-weight:600;line-height:1.5}.profile-dashboard-page .profile-recent .btn{border-radius:8px;justify-content:space-between;align-items:center;gap:26px;min-width:142px;min-height:44px;margin-top:auto;font-size:13px;display:inline-flex}.profile-dashboard-page .profile-week-days{gap:5px;margin:0 0 16px}.profile-dashboard-page .profile-week-days>span{gap:8px;font-size:12px}.profile-dashboard-page .profile-week-days>span>span:last-child{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:8px;width:29px;height:32px}.profile-dashboard-page .profile-week-days>.is-learned>span:last-child{border-color:var(--color-tip)}@supports (color:color-mix(in lab,red,red)){.profile-dashboard-page .profile-week-days>.is-learned>span:last-child{border-color:color-mix(in srgb,var(--color-tip) 30%,var(--color-border))}}.profile-dashboard-page .profile-week-days>.is-learned>span:last-child{background:var(--color-success-bg)}.profile-dashboard-page .profile-goal-control{border-top:var(--rule);justify-content:space-between;padding-top:14px;font-size:12px}.profile-dashboard-page .profile-goal-control .site-select{font-size:12px}.profile-dashboard-page .profile-goal-control label{color:var(--color-text-secondary)}.profile-achievement-panel>header h2>span{color:var(--color-text-secondary);background:var(--color-bg-muted);vertical-align:middle;border-radius:5px;margin-left:10px;padding:2px 7px;font-size:11px;font-weight:400;display:inline-block}.profile-achievement-shelf{align-items:start;gap:16px;display:grid}.profile-dashboard-page .profile-achievements{grid-template-columns:repeat(auto-fit,minmax(min(100%,146px),1fr));gap:12px;min-width:0;display:grid}.profile-dashboard-page .achievement--compact{text-align:left;border:1px solid var(--badge-color);flex-direction:row;gap:12px;min-width:0;padding:15px 12px}@supports (color:color-mix(in lab,red,red)){.profile-dashboard-page .achievement--compact{border:1px solid color-mix(in srgb,var(--badge-color) 25%,var(--color-border))}}.profile-dashboard-page .achievement--compact{background:var(--badge-color);border-radius:10px}@supports (color:color-mix(in lab,red,red)){.profile-dashboard-page .achievement--compact{background:color-mix(in srgb,var(--badge-color) 4%,var(--color-bg-surface))}}.profile-dashboard-page .achievement--compact .achievement__seal{--achievement-seal-width:52px;--achievement-seal-height:60px}.profile-dashboard-page .achievement--compact h3{font-size:13px;line-height:1.4}.profile-dashboard-page .achievement--compact .achievement__status{white-space:nowrap;color:var(--badge-color);margin-top:6px;font-size:12px}.profile-dashboard-page .achievement--compact .achievement__status>svg{flex-shrink:0}.profile-dashboard-page .achievement--compact .achievement__seal-check{border-width:2px;width:16px;height:16px;bottom:9px;right:-1px}.profile-dashboard-page .profile-next-achievement{border:1px dashed var(--color-border-strong);background:var(--color-bg-subtle);border-radius:10px;align-items:center;gap:12px;min-width:0;margin:0;padding:15px 16px 22px;font-size:12px;display:flex;position:relative}.profile-next-achievement>svg{color:var(--color-placeholder);flex-shrink:0}.profile-next-achievement>div:not(.profile-next-achievement__progress){flex:1;min-width:0}.profile-next-achievement>div>span{color:var(--color-text-secondary);font-size:11px;display:block}.profile-dashboard-page .profile-next-achievement strong{color:var(--color-text);margin-top:4px;font-size:13px;font-weight:500;display:block}.profile-next-achievement>span{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.profile-next-achievement__progress{background:var(--color-bg-muted);border-radius:3px;height:3px;position:absolute;bottom:11px;left:16px;right:16px;overflow:hidden}.profile-next-achievement__progress>span{background:var(--color-link);height:100%;display:block}.profile-dashboard-page :is(a,button,select,summary):focus-visible{outline:2px solid var(--color-link);outline-offset:4px}@media (max-width:1060px){.profile-dashboard{grid-template-columns:208px minmax(0,1fr);gap:20px}.profile-dashboard-page .profile-stats>div{grid-template-columns:1fr;padding:0 16px}.profile-dashboard-page .profile-stats>div>svg{display:none}.profile-dashboard-page .profile-section{padding:20px}.profile-activity{grid-template-columns:1fr;gap:20px}.profile-calendar{grid-row:auto}}@media (max-width:760px){.profile-dashboard-page{width:calc(100% - 32px);padding-bottom:40px}.profile-dashboard{grid-template-columns:1fr;gap:20px}.profile-sidebar{padding:20px}.profile-sidebar .profile-identity{text-align:left;grid-template-columns:76px minmax(0,1fr);gap:16px;padding:0;display:grid}.profile-identity__avatar{width:76px;height:76px}.profile-identity__avatar .user-avatar{width:66px;height:66px}.profile-sidebar .profile-identity__name{align-items:flex-start}.profile-sidebar .profile-identity__name h2{font-size:18px}.profile-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px;padding:14px 0 0;display:grid}.profile-shortcuts a{background:var(--color-bg-subtle);justify-content:center;gap:6px;padding:0 5px;font-size:12px}.profile-shortcuts a>svg:last-child{display:none}.profile-sidebar .profile-account{margin-top:14px}.profile-account summary{min-height:44px;padding:0}.profile-sidebar .profile-account dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;padding:0;display:grid}.profile-activity{grid-template-columns:1fr}}@media (max-width:560px){.profile-dashboard-page .profile-page__head h1{font-size:23px}.profile-sidebar .profile-identity{grid-template-columns:56px minmax(0,1fr);gap:12px;position:relative}.profile-identity__avatar{align-self:start;width:56px;height:56px}.profile-identity__avatar .user-avatar{width:48px;height:48px}.profile-sidebar .profile-identity__name h2{font-size:17px}.profile-shortcuts a{min-height:44px}.profile-dashboard-page .profile-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 0;padding:18px 0}.profile-dashboard-page .profile-stats>div:nth-child(2){border-right:0}.profile-time{grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:24px 20px;display:grid}.profile-time__quote{border-top:var(--rule);text-align:left;grid-area:2/1/auto/-1;justify-content:flex-start;padding-top:16px;font-size:16px}.profile-time__quote>svg{width:18px;height:18px}.profile-time p strong{font-size:42px}.profile-time__week{padding-left:16px}.profile-dashboard-page .profile-stats>div{padding:0 12px}.profile-dashboard-page .profile-stats dt{font-size:12px}.profile-dashboard-page .profile-stats dd{margin-top:6px;font-size:24px}.profile-activity{grid-template-columns:1fr;gap:20px}.profile-dashboard-page .profile-section{padding:20px}.profile-dashboard-page .profile-goal-control .site-select{font-size:12px}.profile-dashboard-page .profile-section>header a{min-height:44px}}.rarity-common{--badge-color:light-dark(#526274,#b2c0d0)}.rarity-rare{--badge-color:light-dark(#0969da,#8bbcff)}.rarity-epic{--badge-color:light-dark(#7c3eb2,#ccabf5)}.rarity-legendary{--badge-color:light-dark(#886112,#ecd083)}.rarity-hidden{--badge-color:light-dark(#6352b4,#c5bdff)}.achievement{color:var(--color-text);position:relative}.achievement.is-earned .achievement__seal,.achievement__seal{width:var(--achievement-seal-width,78px);height:var(--achievement-seal-height,90px);color:var(--badge-color);isolation:isolate;background:0 0;border-radius:0;place-items:center;display:grid;position:relative}.achievement__seal-face{place-items:center;display:grid;position:absolute;inset:0}.achievement__seal-face>svg{width:100%;height:100%;display:block;overflow:visible}.achievement__seal.is-earned{filter:none}.achievement__seal.is-locked{opacity:.72;filter:grayscale(.55)}.achievement__repetitions{color:var(--badge-color);background:var(--badge-color);border-radius:4px;margin-bottom:8px;padding:3px 8px;display:inline-block}@supports (color:color-mix(in lab,red,red)){.achievement__repetitions{background:color-mix(in srgb,var(--badge-color) 8%,var(--color-bg-surface))}}.achievement__repetitions{font-size:12px}.achievement__meta{width:100%;color:var(--color-text-secondary);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.achievement__meta>span:last-child{font-variant-numeric:tabular-nums}.achievement__meta-end{justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.achievement__meta-end>svg{flex-shrink:0}.achievement__rarity{color:var(--badge-color);align-items:center;gap:5px;display:inline-flex}.achievement__rarity:before{content:"";border:1px solid;width:6px;height:6px;transform:rotate(45deg)}.achievement__progress{background:var(--color-bg-muted);border-radius:6px;height:6px;overflow:hidden}.achievement__progress>span{border-radius:inherit;background:var(--badge-color);height:100%;display:block}.achievement__body{width:100%}.achievement__meter{align-items:center;gap:10px;margin:16px 0 10px;display:flex}.achievement__meter .achievement__progress{flex:1;min-width:0}.achievement__meter>span{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:13px}.achievement__body .achievement__status{min-height:20px;font-size:13px}.achievement__body h3{letter-spacing:.06em}.achievement.is-earned .achievement__status{color:var(--color-text-secondary)}.achievement--compact .achievement__body{width:auto}body:has(.achievement-page){background:var(--color-bg-subtle)}.achievement-page{max-width:1180px}.achievement-page .profile-page__head h1{font-size:26px;font-weight:650}.achievement-page .profile-page__head{margin-bottom:24px}.achievement-overview{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;margin-bottom:36px;display:grid}.achievement-spotlight{border:1px solid var(--badge-color);align-items:center;gap:32px;padding:28px 32px;display:flex}@supports (color:color-mix(in lab,red,red)){.achievement-spotlight{border:1px solid color-mix(in srgb,var(--badge-color) 45%,var(--color-border))}}.achievement-spotlight{background:var(--color-bg-surface);border-radius:14px}.achievement-spotlight>.achievement__seal{flex-shrink:0;width:116px;height:132px}.achievement-spotlight>div:last-child{flex:1;min-width:0}.achievement-spotlight h2{color:var(--color-text-secondary);margin:0 0 9px;font-size:13px;font-weight:500}.achievement-spotlight h3{letter-spacing:.08em;margin:0;font-size:30px;font-weight:650;line-height:1.25}.achievement-spotlight p{color:var(--color-text-secondary);margin:11px 0 0;font-size:14px}.achievement-spotlight__date{color:var(--color-text-secondary);align-items:center;gap:6px;margin-top:16px;font-size:13px;display:inline-flex}.achievement-spotlight__action{align-items:center;margin-top:6px;display:flex}.achievement-spotlight__action .profile-text-link{color:var(--color-link);font-size:13px}.achievement-inventory{color:#e8eff6;background:#182c42;border:1px solid #273c51;border-radius:14px;padding:26px 28px}.achievement-inventory header{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:25px;display:flex}.achievement-inventory h2{margin:0;font-size:16px;font-weight:500}.achievement-inventory header>span{color:#afbed0;font-size:12px}.achievement-inventory header strong{color:#f3f7fc;margin-right:4px;font-size:24px;font-weight:600}.achievement-inventory dl{border-top:1px solid #ffffff1c;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 16px;margin:0;padding:20px 0 0;display:grid}.achievement-inventory dt{align-items:center;gap:6px;font-size:13px;display:flex}.achievement-inventory dt>span{background:var(--badge-color);width:6px;height:6px;transform:rotate(45deg)}.achievement-inventory dd{font-variant-numeric:tabular-nums;margin:5px 0 0;font-size:26px;font-weight:600}.achievement-inventory dd>span{color:#afbed0;font-size:13px;font-weight:400}.achievement-inventory .is-empty{opacity:.65}.achievement-inventory .rarity-common{--badge-color:#c0cad5}.achievement-inventory .rarity-rare{--badge-color:#8bf}.achievement-inventory .rarity-epic{--badge-color:#ccaaf4}.achievement-inventory .rarity-legendary{--badge-color:#ecd083}.achievement-inventory .rarity-hidden{--badge-color:#c1bbff}.achievement-route{margin-bottom:32px}.achievement-categories{flex-wrap:wrap;gap:8px;margin-bottom:28px;display:flex}.achievement-categories a{border:var(--rule);background:var(--color-bg-surface);min-height:44px;color:var(--color-text-secondary);border-radius:24px;align-items:center;padding:8px 16px;font-size:13px;display:inline-flex}.achievement-categories a:hover{color:var(--color-link);border-color:var(--color-link)}.achievement-route h2{scroll-margin-top:90px}.achievement-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.achievement-page .achievement-collection .achievement{grid-template-columns:88px minmax(0,1fr);align-content:start;column-gap:22px;display:grid}.achievement-collection .achievement__meta{grid-column:1/-1}.achievement-page .achievement-collection .achievement__seal{width:88px;height:100px}.achievement-collection h3{font-size:18px;font-weight:600}.achievement-collection p{margin-top:8px}.achievement-display>header,.achievement-route>header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.achievement-display h2,.achievement-route h2{margin:0;font-size:18px;font-weight:600}.achievement-route>header>span{color:var(--color-text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.achievement-path{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 20px;margin:0;padding:0;list-style:none;display:grid}.achievement-path>li{min-width:0;position:relative}.achievement-path>li:not(:nth-child(4n)):after{content:"";z-index:1;background:var(--color-border-strong);width:20px;height:1px;position:absolute;top:50%;right:-20px}.achievement-page .achievement{background:var(--color-bg-surface);border-radius:12px;flex-direction:column;gap:16px;padding:20px;display:flex}.achievement-page .achievement.is-earned{border-color:var(--badge-color)}@supports (color:color-mix(in lab,red,red)){.achievement-page .achievement.is-earned{border-color:color-mix(in srgb,var(--badge-color) 65%,var(--color-border))}}.achievement-page .achievement.is-earned{background:var(--color-bg-surface)}.achievement-page .achievement.is-locked{border-color:var(--color-border);background:var(--color-bg-subtle)}.achievement-page .achievement p{color:var(--color-text-secondary);font-size:14px;line-height:1.6}.achievement-page .achievement--path{text-align:center;border-color:var(--badge-color);align-items:center;gap:18px;height:100%;padding:16px 18px 20px}@supports (color:color-mix(in lab,red,red)){.achievement-page .achievement--path{border-color:color-mix(in srgb,var(--badge-color) 28%,var(--color-border))}}.achievement-page .achievement--path .achievement__seal{width:86px;height:98px;margin:4px 0 0}.achievement-page .achievement--path h3{font-size:18px;font-weight:600}.achievement-page .achievement--path p{margin-top:9px}.achievement-page .achievement--path.is-next{border-color:var(--color-link);box-shadow:0 0 0 2px var(--color-link)}@supports (color:color-mix(in lab,red,red)){.achievement-page .achievement--path.is-next{box-shadow:0 0 0 2px color-mix(in srgb,var(--color-link) 8%,transparent)}}.achievement-page .achievement--path.is-next .achievement__meta>span:last-child{color:var(--color-link)}.achievement-perseverance{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.achievement-page .achievement-perseverance .achievement{grid-template-columns:64px minmax(0,1fr);column-gap:20px;display:grid}.achievement-perseverance .achievement__meta{grid-column:1/-1}.achievement-page .achievement-perseverance .achievement__seal{width:64px;height:76px;margin-top:4px}.achievement-perseverance h3{font-size:16px}.achievement-special .achievement{border-color:var(--badge-color);grid-template-columns:80px minmax(0,1fr);column-gap:24px;padding:24px 28px;display:grid;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.achievement-special .achievement{border-color:color-mix(in srgb,var(--badge-color) 35%,var(--color-border))}}.achievement-special .achievement__meta{grid-column:1/-1}.achievement-special .achievement__body{max-width:460px}.achievement-special h3{font-size:19px}.achievement-special .achievement.is-earned:after{content:"";pointer-events:none;background:conic-gradient(#8cc7df1a,#cba6ff22,#eacb7d26,#8cc7df1a);border-radius:50%;width:200px;height:200px;animation:achievement-orbit 16s linear infinite;position:absolute;top:-100px;right:-80px}.achievement-display{border:var(--rule);background:var(--color-bg-surface);border-radius:12px;padding:20px 24px}.achievement-display .profile-pins{border-top:0;margin-top:0;padding-top:0}.achievement-display>header{margin-bottom:10px}.achievement-page :is(a,button,input):focus-visible{outline:2px solid var(--color-link);outline-offset:4px}@keyframes achievement-orbit{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.achievement-special .achievement.is-earned:after{animation:none}}@media (max-width:1060px){.achievement-overview{grid-template-columns:1fr}.achievement-inventory dl{padding-top:16px}.achievement-inventory header{margin-bottom:12px}.achievement-perseverance{grid-template-columns:1fr}.achievement-page .achievement-perseverance .achievement{grid-template-columns:64px minmax(0,1fr)}}@media (max-width:760px){.achievement-collection{grid-template-columns:1fr}.achievement-page{width:calc(100% - 32px)}.achievement-path{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}.achievement-path>li:not(:nth-child(4n)):after{display:none}.achievement-path>li:nth-child(odd):after{width:16px;display:block;right:-16px}.achievement-spotlight{gap:24px;padding:24px}.achievement-spotlight>.achievement__seal{width:88px;height:100px}.achievement-spotlight h3{font-size:26px}}@media (max-width:420px){.achievement-spotlight{gap:18px;padding:20px 16px}.achievement-spotlight>.achievement__seal{width:64px;height:76px}.achievement-spotlight h3{font-size:22px}.achievement-inventory{padding:20px 16px}.achievement-inventory dl{gap:18px 12px}.achievement-inventory dt{gap:4px}.achievement-inventory dd{font-size:20px}.achievement-path{gap:16px 12px}.achievement-path>li:nth-child(odd):after{width:12px;right:-12px}.achievement-page .achievement--path{padding:14px 12px 16px}.achievement-page .achievement--path .achievement__seal{width:72px;height:84px}.achievement__meta{flex-wrap:wrap;gap:4px 8px}.achievement-page .achievement--path h3{font-size:16px}.achievement-special .achievement{grid-template-columns:64px minmax(0,1fr);gap:14px;padding:20px 16px}.achievement-special .achievement__seal{width:64px;height:76px}.achievement-page .achievement-perseverance .achievement{gap:14px}.achievement-display{padding:16px}}@media (max-width:360px){.achievement-path{grid-template-columns:1fr}.achievement-path>li:nth-child(odd):after{display:none}.achievement-spotlight{flex-direction:column;align-items:flex-start}}.member-badge{isolation:isolate;color:#e8c872;font-family:var(--font-sans);white-space:nowrap;vertical-align:middle;background:linear-gradient(135deg,#2a251c,#1a1814 65%,#12100c);border:1px solid #8a6d2b;border-radius:7px;flex-shrink:0;align-items:center;gap:5px;padding:4px 9px;font-size:12px;font-weight:500;line-height:1.4;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffdc8c26}.member-badge--yearly{color:#533b12;background:linear-gradient(135deg,#fff0b8,#ebc76c 65%,#dfb453);border-color:#b58a30;box-shadow:inset 0 1px #fff8dc99}.member-badge:after{content:"";z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(110deg,#0000 25%,#ffecb43d 48%,#0000 71%);animation:member-badge-shine 4.8s ease-in-out infinite;position:absolute;inset:0;transform:translate(-130%)}@keyframes member-badge-shine{0%,65%{transform:translate(-130%)}to{transform:translate(130%)}}@media (prefers-reduced-motion:reduce){.member-badge:after{animation:none}}.member-badge>svg{color:inherit;fill:#e8c87214;stroke-width:1.8px;flex-shrink:0}.member-badge>strong{font-family:var(--font-sans);letter-spacing:.02em;font-size:12px;font-weight:700}.profile-nickname{max-width:100%;min-height:44px;color:inherit;font:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;gap:7px;padding:0 2px;display:inline-flex}.profile-nickname>span{overflow-wrap:anywhere;min-width:0}.profile-nickname>svg{color:var(--color-text-secondary);flex-shrink:0}.profile-nickname:focus-visible{outline:2px solid var(--color-link);outline-offset:3px}.profile-nickname-form{text-align:left;min-width:0;margin:0 0 9px}.profile-nickname-form__controls{align-items:center;gap:4px;display:flex}.profile-nickname-form input{border:1px solid var(--color-link);background:var(--color-bg-surface);width:100%;min-width:0;height:44px;color:var(--color-text);font:inherit;border-radius:6px;flex:1;padding:8px;font-size:16px}.profile-nickname-form input:focus-visible{outline:2px solid var(--color-link)}@supports (color:color-mix(in lab,red,red)){.profile-nickname-form input:focus-visible{outline:2px solid color-mix(in srgb,var(--color-link) 20%,transparent)}}.profile-nickname-form input:focus-visible{outline-offset:1px}.profile-nickname-form input[aria-invalid=true]{border-color:var(--color-caution)}.profile-nickname-form button{width:36px;height:44px;color:var(--color-text-secondary);background:var(--color-bg-subtle);cursor:pointer;border:0;border-radius:6px;flex-shrink:0;place-items:center;padding:0;display:grid}.profile-nickname-form button[type=submit]{color:var(--color-link);background:var(--color-accent-bg)}.profile-nickname-form button:hover{background:var(--color-bg-muted)}.profile-nickname-form button:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.profile-nickname-form :disabled{opacity:.6;cursor:wait}.profile-identity__name .profile-nickname-form__error{color:var(--color-caution);margin:7px 0 0;font-size:12px}.profile-nickname-form__saving{color:var(--color-text-secondary);margin-top:7px;font-size:12px;display:block}@media (max-width:760px){.profile-nickname{justify-content:flex-start}.profile-nickname>svg{opacity:1}.profile-nickname-form{margin-bottom:6px}.profile-nickname-form button{width:44px}}@media (prefers-reduced-motion:reduce){.profile-identity__avatar,.profile-nickname>svg{transition:none}}.avatar-source-options{gap:8px;margin-bottom:12px;display:flex}.avatar-source-options .btn[aria-pressed=true]{color:var(--color-link);border-color:currentColor}.avatar-dialog:has(.avatar-source-options) .avatar-options__portrait{width:64px;height:64px}.avatar-dialog:has(.avatar-source-options) .avatar-options>button{gap:6px;padding:10px 6px}.avatar-dialog:has(.avatar-source-options) .avatar-group{margin-top:14px}.avatar-upload{justify-items:center;gap:12px;display:grid}.avatar-upload__file{border:2px dashed var(--color-border-strong);background:var(--color-accent-bg);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;min-height:120px;padding:16px;font-size:14px;transition:border-color .15s,background-color .15s;display:flex}.avatar-upload__file.has-file{grid-template-columns:24px minmax(0,1fr);gap:4px 10px;min-height:64px;padding:10px 14px;display:grid}.avatar-upload__file.has-file>svg{grid-area:1/1/3;width:24px;height:24px}.avatar-upload__file.has-file>.avatar-upload__filename,.avatar-upload__file.has-file>strong{text-align:left;grid-column:2}.avatar-upload__file.has-file>.avatar-upload__hint{display:none}.avatar-upload__file>svg{color:var(--color-link)}.avatar-upload__file>strong{color:var(--color-link);font-size:16px}.avatar-upload__file:hover{border-color:var(--color-link);background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.avatar-upload__file:hover{background:color-mix(in srgb,var(--color-link) 9%,var(--color-bg-page))}}.avatar-upload__file:focus-within{border-color:var(--color-link);outline:2px solid var(--color-link);outline-offset:3px}.avatar-upload__file.is-disabled{opacity:.6;cursor:wait}.avatar-upload__filename{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--color-text-secondary);overflow:hidden}@media (prefers-reduced-motion:reduce){.avatar-upload__file{transition:none}}.avatar-upload__hint{color:var(--color-text-secondary);margin:0;font-size:13px}.avatar-cropper{place-items:center;gap:10px;width:100%;display:grid}.avatar-cropper canvas{aspect-ratio:1;background:var(--color-border);border:1px solid var(--color-border);border-radius:50%;width:min(160px,100%);height:auto}.avatar-cropper__controls{grid-template-columns:64px minmax(0,1fr) 48px;align-items:center;gap:0 8px;width:100%;font-size:14px;display:grid}@media (min-width:560px){.avatar-cropper{grid-template-columns:160px minmax(0,1fr);gap:20px}}.avatar-cropper__controls input{width:100%;min-height:44px;accent-color:var(--color-link)}.avatar-cropper__controls output{text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text-secondary);white-space:nowrap}@media (max-width:760px){.achievement-collection{grid-template-columns:1fr}}@media (max-width:420px){.achievement-page .achievement-collection .achievement{grid-template-columns:64px minmax(0,1fr);column-gap:14px;padding:16px}.achievement-page .achievement-collection .achievement__seal{width:64px;height:76px}}.heroes-page{padding-top:var(--page-top-space);min-height:65vh;padding-bottom:4rem}.heroes-toolbar{border-bottom:var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-bottom:16px;display:flex;position:relative}.heroes-toolbar nav{align-items:center;gap:8px;display:flex}.heroes-toolbar nav a{min-height:44px;color:var(--color-text-secondary);border-radius:8px;align-items:center;padding:8px 16px;font-size:15px;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.heroes-toolbar nav a:hover{background:var(--color-bg-subtle);color:var(--color-text)}.heroes-toolbar nav a:focus-visible{outline:2px solid var(--color-link);outline-offset:3px}.heroes-toolbar nav a[aria-current=page]{color:var(--color-link);background:var(--color-accent-bg);font-weight:600}.heroes-context{color:var(--color-text-secondary);align-items:center;gap:8px 16px;margin:12px 0 24px;font-size:13px}.heroes-context__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.heroes-toolbar:has(.hero-switch__control[aria-checked=false])+.heroes-context .heroes-profile-link{display:none}.heroes-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.heroes-grid:has(>.hero-card--rank-1){grid-template-columns:1.15fr 1fr 1fr}.hero-card{border:var(--rule);background:var(--color-bg-surface);border-radius:14px;flex-direction:column;min-width:0;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.hero-card:has(>.hero-card__link:hover){transform:translateY(-2px)}.hero-card:hover{border-color:var(--color-link)}.hero-card__link{color:inherit;text-decoration:none;display:block}.hero-card__link:after{content:"";z-index:1;position:absolute;inset:0}.hero-card .hero-clap{z-index:2;position:relative}.hero-card__cover{background:var(--color-accent-bg);justify-content:space-between;align-items:flex-start;gap:12px;height:96px;padding:14px 16px;display:flex;position:relative;overflow:hidden}.hero-card__cover>img,.hero-profile__cover>img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hero-card__tag{color:var(--color-text);background:var(--color-bg-surface);border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;font-weight:500;display:inline-flex;position:relative}.hero-card__body{padding:0 20px 18px;position:relative}.hero-card__body>.avatar-framed,.hero-card__body>.user-avatar{outline:4px solid var(--color-bg-surface);border-radius:50%;margin-top:-29px}.hero-card__name{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:12px 0;display:flex}.hero-card__body h3{overflow-wrap:anywhere;min-width:0;margin:0;font-size:18px;line-height:1.5}.hero-card__score{grid-template-columns:1fr 1fr;gap:16px;margin:0;display:grid}.hero-card__score>div+div{border-left:var(--rule);padding-left:16px}.hero-card__score dt{margin:0;line-height:1.5}.hero-card__score dd,.hero-card__score dt{color:var(--color-text-secondary);font-size:12px}.hero-card__score dd{align-items:baseline;gap:6px;margin:3px 0 0;display:flex}.hero-card__score strong{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:28px;font-weight:650;line-height:1.2}.hero-card__score>div:first-child strong{color:var(--color-link)}.hero-card--rank-1 .hero-card__score>div:first-child strong{color:var(--color-gold)}.hero-card__latest{color:var(--color-text-secondary);flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0;font-size:13px;line-height:1.7;display:flex}.hero-card__latest>time{font-variant-numeric:tabular-nums;margin-left:auto}.hero-card__badges{flex-wrap:wrap;gap:16px;margin:20px 0 0;padding:0;list-style:none;display:flex}.hero-card__badges li{min-width:48px;color:var(--color-text-secondary);flex-direction:column;align-items:center;gap:6px;font-size:11px;display:flex}.hero-card__badges .achievement__seal{--achievement-seal-width:48px;--achievement-seal-height:54px;flex-shrink:0}.hero-card__badges .achievement__seal-check{border-width:2px;width:14px;height:14px;bottom:7px;right:-1px}.hero-card__empty{color:var(--color-text-secondary);margin:20px 0 0;font-size:13px}.hero-card__foot{border-top:var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding:14px 20px 16px;display:flex}.hero-card__foot .hero-card__badges{gap:12px;min-width:0;margin:0}.hero-card__foot .hero-card__empty{margin:0}.hero-clap{border:1px solid var(--color-border);min-height:44px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:4px 12px;font-size:13px;text-decoration:none;transition:color .15s,border-color .15s,background .15s;display:inline-flex}a.hero-clap:hover,button.hero-clap:hover{border-color:var(--color-link);color:var(--color-link)}.hero-clap.is-clapped{border-color:var(--color-gold-border);background:var(--color-gold-bg);color:var(--color-gold);font-weight:700}.hero-clap.is-failed{border-color:var(--color-caution);color:var(--color-caution)}.hero-clap:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.heroes-rest{margin-top:32px}.heroes-rest>h2{color:var(--color-text-secondary);margin:0 0 12px;font-size:15px;font-weight:600}.heroes-rest ol{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;margin:0;padding:0;list-style:none;display:grid}.heroes-rest li{border-bottom:var(--rule);min-width:0}.heroes-rest a{min-height:92px;color:inherit;border-radius:8px;align-items:center;gap:14px;padding:16px 12px 16px 4px;text-decoration:none;display:flex}.heroes-rest a:hover{background:var(--color-bg-subtle)}.heroes-rest a:focus-visible{outline:2px solid var(--color-link);outline-offset:-2px}.heroes-rest__rank{font-variant-numeric:tabular-nums;color:var(--color-text-secondary);text-align:center;flex:0 0 32px;font-size:24px;font-weight:650;line-height:1}.heroes-rest__person{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.heroes-rest__name{flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;font-size:15px;font-weight:650;line-height:1.5;display:flex}.heroes-rest__name>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.heroes-rest__stats{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 16px;font-size:12px;line-height:1.5;display:flex}.heroes-rest__stats>span{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.heroes-rest__stats strong{color:var(--color-text);font-weight:600}.heroes-rest__arrow{color:var(--color-text-secondary);opacity:.5;flex:none;margin-left:4px}.heroes-rest a:focus-visible .heroes-rest__name,.heroes-rest a:hover .heroes-rest__name{color:var(--color-link)}.heroes-rest a:focus-visible .heroes-rest__arrow,.heroes-rest a:hover .heroes-rest__arrow{color:var(--color-link);opacity:1}@media (max-width:640px){.heroes-rest ol{grid-template-columns:1fr}.heroes-rest a{gap:12px;min-height:84px;padding-right:8px}.heroes-rest__rank{flex-basis:28px;font-size:22px}}.heroes-my-position{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;margin:-4px 0 24px;padding:18px 20px;display:flex}.heroes-my-position__copy{min-width:0}.heroes-my-position h2{margin:0;font-size:16px;font-weight:650;line-height:1.5}.heroes-my-position p{color:var(--color-text-secondary);margin:4px 0 0;font-size:13px;line-height:1.6}.heroes-my-position__actions{flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}.heroes-my-position__actions>a:not(.btn){min-height:44px;color:var(--color-link);align-items:center;font-size:14px;text-decoration:none;display:inline-flex}.heroes-my-position__actions .btn{min-height:44px}.hero-card--rank-1{border:2px solid var(--color-gold-border);box-shadow:0 6px 18px var(--color-gold);position:relative}@supports (color:color-mix(in lab,red,red)){.hero-card--rank-1{box-shadow:0 6px 18px color-mix(in srgb,var(--color-gold) 12%,transparent)}}.hero-card--rank-1{z-index:1;transition:transform .2s,border-color .2s,box-shadow .2s}.hero-card--rank-1:hover{border-color:var(--color-gold-hover)}.hero-card--rank-2{transition:transform .2s,border-color .2s}.hero-card--rank-2,.hero-card--rank-2:hover{border-color:var(--color-silver-border)}@supports (color:color-mix(in lab,red,red)){.hero-card--rank-2:hover{border-color:color-mix(in srgb,var(--color-silver-border) 65%,var(--color-text))}}.hero-card--rank-3{transition:transform .2s,border-color .2s}.hero-card--rank-3,.hero-card--rank-3:hover{border-color:var(--color-bronze-border)}@supports (color:color-mix(in lab,red,red)){.hero-card--rank-3:hover{border-color:color-mix(in srgb,var(--color-bronze-border) 65%,var(--color-text))}}.hero-card--rank-1 .hero-card__cover:after,.hero-card--rank-2 .hero-card__cover:after,.hero-card--rank-3 .hero-card__cover:after{content:"";pointer-events:none;position:absolute;inset:0}.hero-card--rank-1 .hero-card__cover:after{background:linear-gradient(180deg,var(--color-gold),transparent 75%)}@supports (color:color-mix(in lab,red,red)){.hero-card--rank-1 .hero-card__cover:after{background:linear-gradient(180deg,color-mix(in srgb,var(--color-gold) 24%,transparent),transparent 75%)}}.hero-card--rank-2 .hero-card__cover:after{background:linear-gradient(180deg,var(--color-silver),transparent 75%)}@supports (color:color-mix(in lab,red,red)){.hero-card--rank-2 .hero-card__cover:after{background:linear-gradient(180deg,color-mix(in srgb,var(--color-silver) 24%,transparent),transparent 75%)}}.hero-card--rank-3 .hero-card__cover:after{background:linear-gradient(180deg,var(--color-bronze),transparent 75%)}@supports (color:color-mix(in lab,red,red)){.hero-card--rank-3 .hero-card__cover:after{background:linear-gradient(180deg,color-mix(in srgb,var(--color-bronze) 26%,transparent),transparent 75%)}}.hero-card--rank-1 .hero-card__tag,.hero-card--rank-2 .hero-card__tag,.hero-card--rank-3 .hero-card__tag{border:1px solid;min-height:32px;padding:4px 12px;font-size:16px;font-weight:700}.hero-card--rank-1 .hero-card__tag{background:var(--color-gold-bg);border-color:var(--color-gold-border);color:var(--color-gold)}.hero-card--rank-2 .hero-card__tag{background:var(--color-silver-bg);border-color:var(--color-silver-border);color:var(--color-silver)}.hero-card--rank-3 .hero-card__tag{background:var(--color-bronze-bg);border-color:var(--color-bronze-border);color:var(--color-bronze)}.hero-card__ranknum{pointer-events:none;font-family:Songti SC,STSong,Noto Serif CJK SC,Noto Serif SC,serif;font-size:76px;line-height:1;position:absolute;bottom:6px;right:10px}.hero-card--rank-1 .hero-card__ranknum{color:#8a5f00b8;text-shadow:0 1px #ffffffd9,0 0 14px #ffffffe6}.hero-card--rank-2 .hero-card__ranknum{color:#7c88946b}.hero-card--rank-3 .hero-card__ranknum{color:#a8652f6b}.hero-card__cover--default-1{background:linear-gradient(#f9e6b0,#f0cd72 55%,#dfa93c)}.hero-card__cover--default-1:before{content:"";background:radial-gradient(circle at 35% 35%,#fffbef,#ffe9ad 65%,#f6cf6d);border-radius:50%;width:56px;height:56px;position:absolute;top:12px;right:70px;box-shadow:0 0 24px #ffedb8}.hero-card__cover--default-2{background:linear-gradient(#e6ebf2,#c9d2de 60%,#aeb9c9)}.hero-card__cover--default-2:before{content:"";background:radial-gradient(circle at 35% 35%,#fff,#e6ebf1 60%,#c9d2dc);border-radius:50%;width:48px;height:48px;position:absolute;top:14px;right:72px;box-shadow:0 0 18px #fff8}.hero-card__cover--default-3{background:linear-gradient(#ecddcb,#d8c2a8 55%,#a3805a)}.hero-card__cover--default-3:before{content:"";background:radial-gradient(circle at 50% 35%,#fff6e8,#e9cda3 60%,#bd9264);border-radius:50%;width:64px;height:64px;position:absolute;bottom:-22px;right:60px}.hero-card__avatar{border-radius:50%;margin-top:-29px;padding:3px;display:inline-flex;position:relative}.hero-card--rank-1 .hero-card__avatar{box-shadow:0 4px 14px var(--color-gold);background:linear-gradient(135deg,#f3d27a,#d9a21b)}@supports (color:color-mix(in lab,red,red)){.hero-card--rank-1 .hero-card__avatar{box-shadow:0 4px 14px color-mix(in srgb,var(--color-gold) 30%,transparent)}}.hero-card--rank-2 .hero-card__avatar{background:linear-gradient(135deg,#dde3ea,#8e9bad)}.hero-card--rank-3 .hero-card__avatar{background:linear-gradient(135deg,#e3b48a,#b5713c)}.hero-card__avatar>.user-avatar{border-radius:50%;display:block}.hero-card__crown{color:#5c430c;background:linear-gradient(135deg,#f3d27a,#d9a21b);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex;position:absolute;top:-15px;left:50%;transform:translate(-50%)rotate(-10deg);box-shadow:0 2px 8px #0003}.hero-card--vacant{border-style:dashed}.hero-card--vacant .hero-card__cover{background:var(--color-bg-muted)}.hero-card--vacant .hero-card__tag{color:var(--color-text-secondary)}.hero-card--vacant .hero-card__body{text-align:center;flex-direction:column;align-items:center;gap:8px;padding-top:20px;display:flex}.hero-card__vacant-title{margin:0;font-size:17px;font-weight:650}.hero-card__vacant-desc{color:var(--color-text-secondary);margin:0;font-size:13px}.heroes-empty{border:1px dashed var(--color-border-strong);color:var(--color-text-secondary);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:12px;padding:48px 20px;display:flex}.heroes-empty>svg{color:var(--color-gold)}.heroes-empty p{margin:0}.heroes-empty a{min-height:44px;color:var(--color-link);align-items:center;font-size:14px;display:inline-flex}.home-heroes{padding-top:40px;padding-bottom:64px}.home-heroes>header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.home-heroes h2{font-size:var(--text-h2);margin:0}.hero-profile-page{max-width:900px}.hero-profile-page>.profile-text-link{margin-bottom:12px}.hero-profile{border:var(--rule);background:var(--color-bg-surface);border-radius:20px;overflow:hidden;box-shadow:0 12px 40px #172b4d08}.hero-profile__cover{background-color:var(--color-accent-bg);background-image:linear-gradient(var(--color-bg-surface) 1px,transparent 1px),linear-gradient(90deg,var(--color-bg-surface) 1px,transparent 1px);background-size:28px 28px;justify-content:flex-end;align-items:center;height:64px;padding:0 40px;display:flex;position:relative}.hero-profile__cover>svg{color:var(--color-link);opacity:.14;transform:rotate(12deg)}.hero-profile__cover:has(>img){aspect-ratio:3;height:auto;padding:0}.hero-profile>header{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:0 32px 12px;display:flex;position:relative}.hero-profile>header>.avatar-framed,.hero-profile>header>.user-avatar{outline:7px solid var(--color-bg-surface);border-radius:50%;flex-shrink:0;margin-top:-36px}.hero-profile__identity{width:100%;min-width:0}.hero-profile__name{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;display:flex}.hero-profile h1{min-width:0;font-family:var(--font-sans);overflow-wrap:anywhere;margin:0;font-size:22px;font-weight:650}.hero-profile__identity>p{color:var(--color-text-secondary);margin:4px 0 0;font-size:13px}.hero-share{flex-direction:column;align-items:center;gap:10px;padding-top:16px;display:flex}.hero-share__actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.hero-share .btn{align-items:center;gap:8px;display:inline-flex}.hero-share [role=status]{color:var(--color-text-secondary);font-size:12px}.hero-share [role=status]:empty{display:none}.hero-profile__stats{border-top:var(--rule);text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 40px;padding:12px 0;display:grid}.hero-profile__stats>div+div{border-left:var(--rule)}.hero-profile__stats dt{color:var(--color-text-secondary);justify-content:center;align-items:center;gap:8px;font-size:14px;display:flex}.hero-profile__stats dt>svg{color:var(--color-link)}.hero-profile__stats dd{font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:28px;font-weight:650}.hero-profile__stats dd>span{color:var(--color-text-secondary);margin-left:6px;font-size:13px;font-weight:400}.hero-profile__collection{border-top:var(--rule);background:linear-gradient(var(--color-bg-subtle),var(--color-bg-surface));text-align:center;padding:14px 40px 18px}.hero-profile__collection>h2{margin:0 0 10px;font-size:16px;font-weight:600}.hero-profile__badges{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:16px;margin:0;padding:0;list-style:none;display:flex}.hero-profile__badges:has(>:nth-child(3)){grid-template-columns:repeat(3,minmax(0,240px));justify-content:center;display:grid}.hero-honor{border:1px solid var(--badge-color);flex-direction:column;flex:170px;align-items:center;min-width:0;max-width:240px;padding:12px;display:flex;position:relative}@supports (color:color-mix(in lab,red,red)){.hero-honor{border:1px solid color-mix(in srgb,var(--badge-color) 22%,var(--color-border))}}.hero-honor{background:var(--color-bg-surface);border-radius:14px}.hero-honor__rarity{color:var(--badge-color);font-size:12px}.hero-honor__seal{background:radial-gradient(circle,var(--badge-color),transparent 70%);border-radius:50%;justify-content:center;align-items:center;width:96px;max-width:100%;height:96px;margin:8px 0;display:flex}@supports (color:color-mix(in lab,red,red)){.hero-honor__seal{background:radial-gradient(circle,color-mix(in srgb,var(--badge-color) 13%,transparent),transparent 70%)}}.hero-honor .achievement__seal{--achievement-seal-width:64px;--achievement-seal-height:76px}.hero-honor h3{overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:600}.hero-honor time{color:var(--color-text-secondary);margin-top:6px;font-size:13px}.hero-honor time>span{white-space:nowrap}.hero-profile__badges.is-single .hero-honor{background:0 0;border-color:#0000;flex-basis:280px;max-width:340px;padding:10px 24px 12px}.hero-profile__badges.is-single .hero-honor__seal{width:112px;height:104px}.hero-profile__badges.is-single .achievement__seal{--achievement-seal-width:72px;--achievement-seal-height:84px}.hero-profile__signature{border-top:var(--rule);color:var(--color-text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 40px;font-size:12px;display:flex}.hero-profile__signature strong{color:var(--color-text);font-size:13px;font-weight:600}.heroes-page :is(a,button,summary):focus-visible,.home-heroes a:focus-visible{outline:2px solid var(--color-link);outline-offset:4px}@media (max-width:960px){.heroes-grid,.heroes-grid:has(>.hero-card--rank-1){grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.heroes-page{width:calc(100% - 32px);padding-bottom:40px}.heroes-toolbar{gap:8px}.heroes-toolbar nav{gap:0}.heroes-toolbar nav a{padding:8px 10px;font-size:14px}.heroes-toolbar>.btn{padding:8px 12px;font-size:13px}.heroes-grid,.heroes-grid:has(>.hero-card--rank-1){grid-template-columns:1fr}.heroes-my-position{align-items:flex-start;padding:16px}.heroes-my-position__actions{justify-content:space-between;width:100%}.home-heroes{padding-top:24px;padding-bottom:40px}.hero-profile__cover{height:64px;padding:0 20px}.hero-profile>header{gap:10px;padding:0 20px 12px}.hero-profile h1{font-size:22px}.hero-profile__stats{gap:8px;margin:0 20px}.hero-profile__stats dt{gap:4px;font-size:12px}.hero-profile__stats dt>svg{display:none}.hero-profile__stats dd{font-size:24px}.hero-profile__collection{padding:16px}.hero-honor{flex-basis:130px;padding:12px 8px}.hero-honor__seal{width:88px;height:92px}.hero-honor h3{font-size:15px}.hero-honor time{font-size:12px}.hero-profile__badges:has(>:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.hero-profile__badges:has(>:nth-child(3)) .hero-honor{padding:16px 4px}.hero-profile__badges:has(>:nth-child(3)) .hero-honor__seal{width:64px;height:88px}.hero-profile__badges:has(>:nth-child(3)) .achievement__seal{--achievement-seal-width:58px;--achievement-seal-height:70px}.hero-profile__badges:has(>:nth-child(3)) .achievement__seal-face>svg{width:100%;height:100%}.hero-profile__badges:has(>:nth-child(3)) .achievement__seal-check{width:18px;height:18px;bottom:10px;right:0}.hero-profile__badges:has(>:nth-child(3)) .hero-honor h3{font-size:14px}.hero-profile__badges:has(>:nth-child(3)) .hero-honor time>span{display:block}.hero-profile__signature{padding:16px 20px}}.hero-switch{flex-wrap:wrap;align-items:center;gap:6px 10px;display:inline-flex}.hero-switch__note{color:var(--color-text-secondary);font-size:12px}.hero-switch__label{color:var(--color-text-secondary);font-size:15px}.hero-switch__control{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;width:52px;height:44px;padding:0;display:inline-flex}.hero-switch__track{border:var(--rule);background:var(--color-bg-muted);border-radius:999px;width:44px;height:24px;transition:background .2s,border-color .2s;display:block;position:relative}.hero-switch__thumb{background:var(--color-bg-surface);border-radius:50%;width:18px;height:18px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0002}.hero-switch__control[aria-checked=true] .hero-switch__track{background:var(--color-link);border-color:var(--color-link)}.hero-switch__control[aria-checked=true] .hero-switch__thumb{transform:translate(20px)}.hero-switch__control:hover .hero-switch__track{border-color:var(--color-border-strong)}.hero-switch__control:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.hero-switch__control:disabled{cursor:default;opacity:.6}.hero-switch__error{color:var(--color-danger,#cf222e);font-size:13px}@media (prefers-reduced-motion:reduce){.hero-card,.hero-clap,.hero-switch__thumb,.hero-switch__track,.heroes-toolbar nav a{transition:none}.hero-card:has(>.hero-card__link:hover){transform:none}}.avatar-framed{vertical-align:middle;flex-shrink:0;display:inline-block;position:relative}.avatar-framed>.user-avatar{width:100%;height:100%}.avatar-framed__frame{pointer-events:none;width:118%;max-width:none;height:118%;position:absolute;inset:-9%}.profile-identity__cover{object-fit:cover;width:calc(100% + 40px);max-width:none;height:120px;margin:-28px -20px -46px;display:block}.profile-identity:has(.profile-identity__cover) .profile-identity__avatar{z-index:1;border:4px solid var(--color-bg-surface)}.profile-style-actions{flex-wrap:wrap;justify-content:center;gap:4px;width:100%;display:flex}.profile-style-action{min-height:44px;color:var(--color-text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:inline-flex}.profile-style-action:hover{background:var(--color-bg-subtle);color:var(--color-link)}.member-style-options button:focus-visible,.profile-style-action:focus-visible{outline:2px solid var(--color-link);outline-offset:3px}.avatar-dialog.member-style-dialog{width:min(620px,100vw - 32px)}.member-style-dialog h3{margin:22px 0 12px;font-size:14px}.member-style-preview{background:var(--color-bg-subtle);border-radius:12px;justify-content:center;align-items:flex-end;height:154px;padding-bottom:12px;display:flex;position:relative;overflow:hidden}.member-style-preview__cover{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.member-style-preview>.avatar-framed,.member-style-preview>.user-avatar{z-index:1;outline:5px solid var(--color-bg-surface);border-radius:50%;position:relative}.member-style-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.member-style-options button{border:1px solid var(--color-border);background:var(--color-bg-subtle);min-width:0;color:var(--color-text);font:inherit;cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:16px 4px 12px;font-size:12px;display:flex;position:relative}.member-style-options button[aria-pressed=true]{border-color:var(--color-link);background:var(--color-accent-bg)}.member-style-options button:disabled{opacity:.5;cursor:not-allowed}.member-style-options button>svg{color:var(--color-link);position:absolute;top:5px;right:5px}.member-style-options--covers button{gap:10px;padding:0 0 12px;overflow:hidden}.member-style-empty,.member-style-options--covers img{object-fit:cover;background:var(--color-bg-muted);width:100%;height:60px}.avatar-dialog.member-card-dialog{width:min(680px,100vw - 32px)}.member-card-canvas{border:1px solid var(--color-border);border-radius:12px;width:100%;height:auto;display:block}.member-card-canvas[hidden]{display:none}.member-card-dialog .btn{gap:8px}@media (max-width:760px){.profile-identity__cover{grid-column:1/-1;height:120px;margin:-20px -20px 0}.profile-identity:has(.profile-identity__cover) .profile-identity__avatar{margin-top:-44px}.profile-style-actions{grid-column:1/-1;justify-content:flex-start}.profile-identity__avatar>.avatar-framed{width:66px!important;height:66px!important}}@media (max-width:560px){.profile-identity__avatar>.avatar-framed{width:48px!important;height:48px!important}.member-style-options{grid-template-columns:repeat(2,minmax(0,1fr))}.member-style-options button{min-height:110px}.member-style-options--covers button{min-height:90px}.member-card-dialog,.member-style-dialog{max-height:calc(100dvh - 32px);padding:20px;overflow-y:auto}}.hall-intro{color:var(--color-warning);align-items:center;gap:1rem;padding:1.5rem 0;display:flex}.hall-intro p{color:var(--color-text);flex:1;margin:0;font-weight:600}.hall-intro a{font-size:var(--text-small)}.hall-week{margin-bottom:2.5rem}.hall-archive-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 0;display:flex}.hall-archive-toolbar>a{color:var(--color-link);font-size:var(--text-small);align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.hall-archive-filter{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.hall-archive-label{font-size:var(--text-small);color:var(--color-text-secondary)}.hall-archive-picker{min-width:13rem;font-size:var(--text-small)}.hall-week{border:var(--rule);border-radius:.85rem;margin-bottom:1rem;overflow:hidden}.hall-week>summary{cursor:pointer;background:var(--color-text-secondary);align-items:center;gap:1rem;min-height:60px;padding:1rem 1.25rem;list-style:none;display:flex}@supports (color:color-mix(in lab,red,red)){.hall-week>summary{background:color-mix(in srgb,var(--color-text-secondary) 3%,var(--color-bg-page))}}.hall-week>summary::-webkit-details-marker{display:none}.hall-week>summary:focus-visible{outline:2px solid var(--color-link);outline-offset:-3px}.hall-week>summary>svg{flex:none;margin-left:auto;transition:transform .15s}.hall-week[open]>summary>svg{transform:rotate(180deg)}.hall-week__label{white-space:nowrap;font-weight:650}.hall-week__dates{font-size:var(--text-small);color:var(--color-text-secondary)}.hall-week .hall-podium{border-top:var(--rule);padding:1.25rem}.hall-week>header{flex-wrap:wrap;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.hall-week h2{font-size:var(--text-h3);margin:0}.hall-seat p,.hall-week>header span,.rewards-card p{color:var(--color-text-secondary);font-size:var(--text-small)}.hall-podium{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.hall-seat{border:var(--rule);background:var(--color-bg-page);border-radius:1rem;min-width:0;padding:1.5rem}.hall-seat--1{background:linear-gradient(140deg,#e8c66c,var(--color-bg-page) 60%);border-color:#c9aa62}@supports (color:color-mix(in lab,red,red)){.hall-seat--1{background:linear-gradient(140deg,color-mix(in srgb,#e8c66c 12%,var(--color-bg-page)),var(--color-bg-page) 60%)}}.hall-seat--2{border-color:#aebac8}.hall-seat--3{border-color:#ca9d76}.hall-seat__rank{font-size:var(--text-small);align-items:center;gap:.4rem;margin-bottom:1.5rem;font-weight:600;display:flex}.hall-seat__person{color:var(--color-text);align-items:center;gap:1rem;min-height:80px;text-decoration:none;display:flex}.hall-seat__person strong{overflow-wrap:anywhere;font-size:1rem}.hall-pagination{justify-content:center;gap:1rem;display:flex}.hero-rules.wrap{max-width:54rem;padding-top:var(--page-top-space);padding-bottom:4rem;line-height:1.8}.hero-rules__back{color:var(--color-link);min-height:44px;font-size:var(--text-small);align-items:center;gap:.4rem;margin-bottom:1rem;text-decoration:none;display:inline-flex}.hero-rules__head{border-bottom:var(--rule);padding-bottom:2rem}.hero-rules .hero-rules__head h1{font-size:var(--text-h2);margin:0 0 .75rem;font-weight:700;line-height:1.4}.hero-rules__head p{color:var(--color-text-secondary);font-size:var(--text-small);margin:0;line-height:1.8}.hero-rules>section{border-bottom:var(--rule);padding:2rem 0}.hero-rules>section h2{font-size:var(--text-h3);margin:0 0 1.25rem;font-weight:650;line-height:1.5}.hero-rules ol,.hero-rules ul{gap:.8rem;margin:1rem 0 0;padding-left:1.4rem;display:grid}.hero-rules ul{list-style:outside}.hero-rules ol{list-style:decimal}.hero-rules li{padding-left:.2rem}.hero-rules__metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:0 0 1.25rem;display:grid}.hero-rules__metrics>div{border:var(--rule);background:var(--color-link);border-radius:.75rem;padding:1rem}@supports (color:color-mix(in lab,red,red)){.hero-rules__metrics>div{background:color-mix(in srgb,var(--color-link) 3%,var(--color-bg-page))}}.hero-rules__metrics dt{font-size:var(--text-small);color:var(--color-text-secondary);margin-bottom:.4rem}.hero-rules__metrics dd{font-size:var(--text-small);white-space:nowrap;margin:0}.hero-rules__metrics strong{color:var(--color-text);margin-right:.2rem;font-size:1.6rem;font-weight:700}.hero-rules__table{border:var(--rule);border-radius:.75rem;overflow:hidden}.hero-rules table{border-collapse:collapse;width:100%;font-size:var(--text-small)}.hero-rules td,.hero-rules th{text-align:left;border-bottom:var(--rule);padding:.9rem 1rem}.hero-rules thead{background:var(--color-text-secondary)}@supports (color:color-mix(in lab,red,red)){.hero-rules thead{background:color-mix(in srgb,var(--color-text-secondary) 6%,var(--color-bg-page))}}.hero-rules thead th{color:var(--color-text-secondary);font-weight:600}.hero-rules tbody th{white-space:nowrap;font-weight:600}.hero-rules tbody tr:last-child td,.hero-rules tbody tr:last-child th{border-bottom:0}.hero-rules__medal{border:1px solid;border-radius:50%;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;margin-right:.5rem;font-size:.75rem;font-weight:700;display:inline-flex}.hero-rules__medal--gold{color:#886018;background:#fff4d8}.hero-rules__medal--silver{color:#52657a;background:#ecf1f6}.hero-rules__medal--bronze{color:#87542e;background:#fbecdc}.hero-rules .hero-rules__note{font-size:var(--text-small);color:var(--color-text-secondary);margin:1rem 0 0;line-height:1.8}.hero-rules .hero-rules__note+.hero-rules__note{margin-top:.5rem}.hero-rules__milestones{gap:.8rem;margin:0;display:grid}.hero-rules__milestones>div{border:var(--rule);border-radius:.6rem;justify-content:space-between;align-items:baseline;gap:1rem;padding:.85rem 1rem;display:flex}.hero-rules__milestones dd,.hero-rules__milestones dt{font-size:var(--text-small)}.hero-rules__milestones dd{text-align:right;margin:0;font-weight:600}.hero-rules__footer{padding-top:1.75rem}.hero-rules__footer .btn{gap:.5rem}.heroes-context .heroes-rules-link{border:var(--rule);min-height:44px;color:var(--color-link);background:var(--color-bg-page);white-space:nowrap;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .85rem;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.heroes-context .heroes-rules-link:hover{background:var(--color-accent-bg);border-color:var(--color-link)}.hero-rules__back:focus-visible,.heroes-context .heroes-rules-link:focus-visible{outline:2px solid var(--color-link);outline-offset:3px}.hero-award-avatar{isolation:isolate;box-shadow:0 0 0 2px var(--color-bg-page);background:linear-gradient(135deg,#b8893a,#f1d58a 40%,#b8893a);border-radius:50%;flex:none;justify-content:center;align-items:center;padding:3px;display:inline-flex;position:relative}.hero-award-avatar .user-avatar{border:2px solid var(--color-bg-page);object-fit:cover;border-radius:50%;width:100%;height:100%}.hero-award-avatar--silver{background:linear-gradient(135deg,#8795a4,#e4edf4 40%,#8795a4)}.hero-award-avatar--bronze{background:linear-gradient(135deg,#a16b43,#efd0a9 40%,#a16b43)}.hero-award-avatar__week{white-space:nowrap;color:#fff2c6;background:#382d16;border:1px solid #e8c66c;border-radius:4px;padding:1px 3px;font-size:9px;font-weight:700;line-height:1.2;position:absolute;bottom:-.5em;left:50%;transform:translate(-50%)}.hero-award-avatar--silver .hero-award-avatar__week{color:#fff;background:#354354;border-color:#bbcbdc}.hero-award-avatar--bronze .hero-award-avatar__week{color:#fff0de;background:#604126;border-color:#dab38b}.hero-reward-tag{border:var(--rule);font-size:var(--text-small);color:var(--color-warning);border-radius:99px;align-items:center;margin:.3rem;padding:.15rem .55rem;display:inline-flex}.rewards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0;display:grid}.rewards-card{border:var(--rule);border-radius:1rem;min-width:0;padding:1.5rem}.rewards-card h2{font-size:var(--text-h3);margin:0 0 1rem}.rewards-card__value{font-size:2rem;font-weight:700}.coupon-checkout{border:var(--rule);border-radius:.6rem;margin-bottom:1rem;padding:1rem}.coupon-checkout label{font-size:var(--text-small);display:block}.coupon-checkout .site-select{width:100%;margin:.5rem 0}.coupon-checkout p{font-size:var(--text-small);color:var(--color-text-secondary)}.heroes-context{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}@media (max-width:640px){.hall-podium,.rewards-grid{grid-template-columns:1fr}.hall-intro{flex-wrap:wrap}.hall-intro a{margin-left:2.75rem}.hall-seat{padding:1.25rem}.hero-rules td,.hero-rules th{font-size:var(--text-small);padding:.5rem}}@media (max-width:600px){.hero-rules__metrics{grid-template-columns:1fr}.hero-rules__metrics>div{justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.hero-rules__metrics dt{margin:0}.hero-rules__metrics strong{font-size:1.35rem}.hero-rules__milestones>div{display:block}.hero-rules__milestones dd{text-align:left;margin-top:.3rem}.hero-rules__medal{display:none}.hero-rules>section{padding:1.5rem 0}.heroes-context .heroes-rules-link{min-height:44px}}@media (prefers-reduced-motion:reduce){.heroes-context .heroes-rules-link{transition:none}}@media (max-width:600px){.hall-week>summary{flex-wrap:wrap;gap:.4rem .75rem;padding:1rem}.hall-week__dates{flex-basis:100%;order:3;font-size:.75rem}.hall-week .hall-podium{padding:.75rem}}.pet-page{padding-top:var(--page-top-space);padding-bottom:4rem}.pet-page__head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;display:flex}.pet-page__head h1{margin:0;font-size:1.5rem}.pet-page__head a,.pet-page__head>span{color:var(--color-text-secondary);font-size:.875rem}.pet-workbench{grid-template-columns:minmax(0,1fr) 300px;gap:2rem;display:grid}.pet-scene{isolation:isolate;border:1px solid var(--color-border);background:#b9dacc;border-radius:20px;place-items:center;min-height:410px;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.pet-scene{background:color-mix(in srgb,#b9dacc 20%,var(--color-bg-page))}}.pet-scene__status{color:var(--color-text-secondary);align-items:center;gap:8px;font-size:.8125rem;display:flex;position:absolute;top:24px;left:24px}.pet-scene__status i{background:var(--color-tip);border-radius:50%;width:7px;height:7px}.pet-scene__orbit{border:1px solid #7eb69f47;border-radius:50%;width:310px;height:310px;position:absolute;top:26px}.pet-scene__orbit:after{content:"";border-radius:inherit;border:1px dashed #7eb69f3b;position:absolute;inset:30px}.pet-scene__character{z-index:1;appearance:none;cursor:pointer;background:0 0;border:0;width:232px;height:244px;margin-top:10px;padding:0;position:relative}.pet-scene__reaction{z-index:2;color:var(--color-text);background:var(--color-bg-page);border:1px solid var(--color-border);border-radius:14px 14px 14px 2px;padding:8px 15px;font-size:.875rem;font-weight:500;position:absolute;top:56px}.pet-scene__reaction:empty{display:none}.pet-scene__floor{background:#7eb69f3d;width:80%;height:1px;position:absolute;bottom:92px}.pet-scene__floor span{background:#7eb69f66;border-radius:4px;height:2px;position:absolute}.pet-scene__floor span:first-child{width:26px;top:17px;left:12%}.pet-scene__floor span:nth-child(2){width:16px;top:10px;right:18%}.pet-scene__floor span:nth-child(3){width:10px;top:30px;right:12%}.pet-scene__caption{text-align:center;position:absolute;bottom:23px}.pet-scene__caption h2{margin:0 0 3px;font-size:1.125rem;font-weight:650}.pet-scene__caption>span{color:var(--color-text-secondary);font-size:.8125rem}.pet-controls{flex-direction:column;justify-content:center;display:flex}.pet-controls__head{align-items:center;gap:11px;margin-bottom:28px;display:flex}.pet-controls__head h2{margin:0;font-size:1.125rem}.pet-controls__icon{background:#70b599;border-radius:13px;place-items:center;width:42px;height:42px;display:grid}@supports (color:color-mix(in lab,red,red)){.pet-controls__icon{background:color-mix(in srgb,#70b599 15%,var(--color-bg-page))}}.pet-controls__icon{color:var(--color-tip)}.pet-controls__switch{border-bottom:var(--rule);justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:24px;font-size:.9375rem;display:flex}.pet-toggle{cursor:pointer;background:0 0;border:0;border-radius:22px;align-items:center;width:48px;height:44px;padding:0;display:flex;position:relative}.pet-toggle:before{content:"";background:var(--color-border-strong);border-radius:20px;transition:background .2s;position:absolute;inset:8px 0}.pet-toggle span{background:#fff;border-radius:50%;width:22px;height:22px;margin-left:3px;transition:transform .2s;position:relative;box-shadow:0 1px 3px #0002}.pet-toggle[aria-checked=true]:before{background:var(--color-tip)}.pet-toggle[aria-checked=true] span{transform:translate(20px)}.pet-controls__actions{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.pet-controls__characters{gap:8px;margin-bottom:20px;display:flex}.pet-controls__characters button{border:var(--rule);background:var(--color-bg-page);min-height:52px;color:var(--color-text-secondary);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 14px;display:flex}.pet-controls__characters button[aria-pressed=true]{color:var(--color-link);border-color:var(--color-link);background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.pet-controls__characters button[aria-pressed=true]{background:color-mix(in srgb,var(--color-link) 5%,var(--color-bg-page))}}.pet-controls__characters img{border-radius:50%}.pet-controls__actions button{background:var(--color-bg-page);height:75px;color:var(--color-text-secondary);border:var(--rule);cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:.8125rem;transition:background .15s,border-color .15s;display:flex}.pet-controls__actions button[aria-pressed=true]{color:var(--color-link);border-color:var(--color-link);background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.pet-controls__actions button[aria-pressed=true]{background:color-mix(in srgb,var(--color-link) 5%,var(--color-bg-page))}}.pet-controls__reset{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;min-height:44px;margin-top:16px;font-size:.8125rem;display:flex}.pet-avatar-note,.pet-controls__hint{color:var(--color-text-secondary);margin:8px 0 0;font-size:.8125rem}.pet-avatar-note{margin-top:1rem}.pet-avatars{margin-top:2.25rem}.pet-avatars h2{margin:0 0 1rem;font-size:1rem}.pet-avatars__list{grid-template-columns:repeat(9,minmax(0,1fr));gap:9px;display:grid}.pet-avatars__list button{cursor:pointer;color:var(--color-text);background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:12px 3px 9px;font-size:.75rem;display:flex;position:relative}.pet-avatars__list button .user-avatar{border-radius:50%;margin-bottom:7px}.pet-avatars__list small{color:var(--color-text-secondary);font-size:.75rem}.pet-avatars__list button.is-selected{border-color:var(--color-link);background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.pet-avatars__list button.is-selected{background:color-mix(in srgb,var(--color-link) 4%,var(--color-bg-page))}}.pet-avatars__check{color:var(--color-link);position:absolute;top:6px;right:6px}.pet-locked{padding:3rem 0}.pet-locked h2{font-size:1.125rem}.avatar-pet{z-index:48;pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed}.avatar-pet__touch{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;place-items:center;width:100%;height:100%;padding:0;display:grid}.avatar-pet__touch img{pointer-events:none;-webkit-user-drag:none}.avatar-pet.is-dragging .avatar-pet__touch{cursor:grabbing}@media (max-width:760px){.pet-workbench{grid-template-columns:1fr;gap:1.5rem}.pet-scene{min-height:365px}.pet-scene__character{width:208px;height:220px}.pet-controls__head{margin-bottom:12px}.pet-controls__switch{margin-bottom:14px;padding-bottom:10px}.pet-controls__hint{text-align:center}.pet-avatars__list{grid-template-columns:repeat(3,minmax(0,1fr))}}.cloud-dragon-player{width:100%;height:100%;position:relative;overflow:hidden;container-type:size}.cloud-dragon-player canvas{width:100%;height:100%;display:block}.cloud-dragon-player>img{object-fit:contain;width:auto;max-width:none;height:min(245.44px,86.6667cqw,100cqh - 8px);position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.deepseek-whale-player>img{height:min(320px,125cqw,100cqh - 8px)}.cloud-dragon-player>button{background:var(--color-bg-page);border:var(--rule);color:var(--color-text);cursor:pointer;border-radius:6px;padding:5px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.my-pet-card{border:var(--rule);background:var(--color-bg-subtle);border-radius:12px;flex-basis:100%;min-width:0;margin-top:8px;padding:0 12px 4px}.my-pet-card__link{color:var(--color-text);align-items:center;gap:8px;text-decoration:none;display:flex}.my-pet-card__link>span:nth-child(2){flex:1}.my-pet-card__link strong{font-size:.875rem;font-weight:600;display:block}.my-pet-card__link small{color:var(--color-text-secondary);margin-top:4px;font-size:.75rem;display:block}.my-pet-card__dragon{pointer-events:none;width:76px;height:90px;display:block}.my-pet-card__switch{border-top:var(--rule);color:var(--color-text-secondary);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.pet-scene--dragon>.cloud-dragon-player{width:calc(100% - 24px);height:calc(100% - 95px);position:absolute;inset:25px 12px 70px}.avatar-pet__touch>.cloud-dragon-player{pointer-events:none}.pet-local-preview{padding-top:var(--page-top-space);padding-bottom:3rem}.pet-local-preview>h1{margin:0 0 1.75rem;font-size:1.5rem}.pet-local-preview__layout{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:2rem;display:grid}.pet-local-preview__layout .pet-workbench{grid-template-columns:minmax(0,1fr);gap:1.5rem}.pet-local-preview__layout .pet-controls{max-width:420px}.pet-local-preview__layout .pet-scene{min-height:350px}@media (max-width:760px){.pet-local-preview__layout{grid-template-columns:minmax(0,1fr)}}.avatar-pet__touch{pointer-events:auto}@media (prefers-reduced-motion:reduce){.pet-toggle span,.pet-toggle:before{transition:none}}.avatar-pet__bubble{--bubble-bg:var(--color-tip)}@supports (color:color-mix(in lab,red,red)){.avatar-pet__bubble{--bubble-bg:color-mix(in srgb,var(--color-tip) 4%,var(--color-bg-page))}}.avatar-pet__bubble{--bubble-border:var(--color-tip)}@supports (color:color-mix(in lab,red,red)){.avatar-pet__bubble{--bubble-border:color-mix(in srgb,var(--color-tip) 18%,var(--color-border))}}.avatar-pet__bubble{--bubble-center:clamp(108px,var(--pet-center),calc(100vw - 108px));bottom:calc(100% + 8px);left:calc(var(--bubble-center) - var(--pet-x));border:1px solid var(--bubble-border);background:var(--bubble-bg);width:max-content;max-width:min(192px,100vw - 24px);color:var(--color-text);letter-spacing:0;text-align:center;pointer-events:none;border-radius:18px;padding:10px 14px;font-size:13px;font-weight:500;line-height:1.6;animation:pet-bubble-in .18s ease-out both;position:absolute;transform:translate(-50%);box-shadow:0 5px 18px #234c3912}.avatar-pet__bubble:after{content:"";bottom:-5px;left:clamp(18px,calc(50% + var(--pet-center) - var(--bubble-center)),calc(100% - 18px));background:var(--bubble-bg);border-right:1px solid var(--bubble-border);border-bottom:1px solid var(--bubble-border);border-bottom-right-radius:2px;width:9px;height:9px;position:absolute;transform:translate(-50%)rotate(45deg)}.avatar-pet__bubble.is-below{top:calc(100% + 8px);bottom:auto}.avatar-pet__bubble.is-below:after{top:-5px;bottom:auto;transform:translate(-50%)rotate(225deg)}@keyframes pet-bubble-in{0%{opacity:0;translate:0 4px}to{opacity:1;translate:0}}@media (prefers-reduced-motion:reduce){.avatar-pet__bubble{animation:none}}.avatar-pet__menu{box-sizing:border-box;border:var(--rule);background:var(--color-bg-page);pointer-events:auto;border-radius:8px;width:136px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:4px;position:fixed;overflow-y:auto;box-shadow:0 4px 16px #0002}.avatar-pet__menu>a,.avatar-pet__menu>button{box-sizing:border-box;width:100%;min-height:32px;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;padding:5px 9px;font-size:.8125rem;line-height:1.4;text-decoration:none;display:flex}.avatar-pet__menu>:focus-visible,.avatar-pet__menu>:hover{background:var(--color-bg-subtle)}.avatar-pet__menu>:focus-visible{outline:2px solid var(--color-link);outline-offset:-2px}@media (pointer:coarse){.avatar-pet__menu>a,.avatar-pet__menu>button{min-height:44px}}.pet-toggle:disabled{cursor:not-allowed;opacity:.45}.pet-controls__vip{color:var(--color-text-secondary);margin:-12px 0 24px;font-size:.8125rem;line-height:1.6}.pet-controls__vip a{color:var(--color-link);margin-left:8px}.avatar-pet__menu>.avatar-pet__menu-forward{justify-content:space-between}.avatar-pet__menu>.avatar-pet__menu-back{color:var(--color-text-secondary);gap:5px}.discussion-page{padding-block:var(--page-top-space) 4rem;min-height:65vh}.discussion-page--narrow{max-width:50rem}.discussion-actions,.discussion-author,.discussion-author__name,.discussion-detail__byline,.discussion-row__labels,.discussion-row__meta,.discussion-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.discussion-toolbar{justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.discussion-toolbar h1,.discussion-toolbar h2{margin:0;font-size:1.5rem}.discussion-toolbar--secondary{color:var(--color-text-secondary);font-size:.875rem}.discussion-tabs{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.discussion-tabs a{min-height:44px;color:var(--color-text-secondary);border-radius:6px;align-items:center;padding:.5rem 1rem;text-decoration:none;display:inline-flex}.discussion-tabs a[aria-current=page]{background:var(--color-bg-subtle);color:var(--color-link);font-weight:650}.discussion-list{border-top:1px solid var(--color-border)}.discussion-row{border-bottom:1px solid var(--color-border);align-items:center;gap:1rem;padding:1.4rem 0;display:flex}.discussion-row__content{flex:1;min-width:0}.discussion-row h2{overflow-wrap:anywhere;margin:.5rem 0 .8rem;font-size:1.1rem;line-height:1.5}.discussion-row h2 a{color:var(--color-text);text-decoration:none}.discussion-row h2 a:hover{color:var(--color-link)}.discussion-row__counts{color:var(--color-text-secondary);flex-direction:column;gap:.5rem;min-width:3.5rem;font-size:.8125rem;display:flex}.discussion-row__counts span{align-items:center;gap:.35rem;display:flex}.discussion-row__meta{color:var(--color-text-secondary);gap:1rem;font-size:.8125rem}.discussion-row__chapter{color:var(--color-text-secondary);overflow-wrap:anywhere;font-size:.75rem}.discussion-author{flex-wrap:nowrap;gap:.65rem;min-width:0}.discussion-author>a{flex:none}.discussion-author__identity{min-width:0}.discussion-author__name{gap:.4rem;font-size:.875rem}.discussion-author__name>a,.discussion-author__name>strong{color:var(--color-text);overflow-wrap:anywhere;font-weight:600}.discussion-author .founder-badge,.discussion-author .member-badge{white-space:nowrap;font-size:.6875rem}.discussion-tag{border:1px solid var(--color-border);white-space:nowrap;border-radius:4px;align-items:center;gap:.25rem;padding:.15rem .45rem;font-size:.75rem;line-height:1.5;display:inline-flex}.discussion-tag.is-solved{color:var(--color-tip);border-color:currentColor}.discussion-honor{color:var(--color-text-secondary);margin-top:.25rem;font-size:.75rem}.discussion-honor summary{cursor:pointer;align-items:center;gap:.35rem;min-height:44px;display:flex}.discussion-honor .achievement__seal{--achievement-seal-width:32px;--achievement-seal-height:36px}.discussion-honor p{max-width:24rem;margin:.4rem 0}.discussion-pagination{justify-content:space-between;align-items:center;margin-top:1.5rem;font-size:.875rem;display:flex}.discussion-empty{color:var(--color-text-secondary);text-align:center;padding:2.5rem 0}.discussion-back{margin-bottom:1.5rem;display:inline-block}.discussion-detail h1{overflow-wrap:anywhere;margin:1rem 0;font-size:1.8rem;line-height:1.45}.discussion-detail__byline{color:var(--color-text-secondary);justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;font-size:.8125rem}.discussion-detail .discussion-body{margin-block:1.5rem}.discussion-body{overflow-wrap:anywhere;min-width:0;color:var(--color-text);line-height:1.85}.discussion-body ol,.discussion-body p,.discussion-body pre,.discussion-body ul{margin-block:1rem}.discussion-body pre{background:var(--color-bg-subtle);max-width:100%;color:var(--color-text);border:1px solid var(--color-border);border-radius:6px;padding:1rem;overflow-x:auto}.discussion-body code{font-family:var(--font-mono);font-size:.875em}.discussion-body pre code{white-space:pre}.discussion-body table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.discussion-body td,.discussion-body th{border:1px solid var(--color-border);padding:.4rem .7rem}.discussion-body blockquote{border-left:3px solid var(--color-border);color:var(--color-text-secondary);padding-left:1rem}.discussion-actions{gap:.5rem}.discussion-actions .btn{min-height:44px;font-size:.8125rem}.discussion-replies{border-top:1px solid var(--color-border);margin-top:2rem;padding-top:1rem}.discussion-replies>h2{font-size:1.2rem}.discussion-replies>h2>span{color:var(--color-text-secondary);font-size:.875rem;font-weight:400}.discussion-reply{border-bottom:1px solid var(--color-border);padding:1.5rem 0;scroll-margin-top:6rem}.discussion-reply.is-accepted{border-left:3px solid var(--color-tip);padding-left:1rem}.discussion-reply__parent{color:var(--color-text-secondary);margin:.5rem 0;font-size:.8125rem;display:block}.discussion-editor{flex-direction:column;align-items:stretch;gap:.65rem;margin-block:1.5rem;display:flex}.discussion-editor label{font-size:.875rem;font-weight:600}.discussion-editor input:not([type=checkbox]),.discussion-editor textarea{border:1px solid var(--color-border-strong);background:var(--color-bg-page);color:var(--color-text);font:inherit;box-sizing:border-box;border-radius:6px;width:100%;min-height:44px;padding:.7rem .8rem}.discussion-editor textarea{resize:vertical;line-height:1.7}.discussion-editor>.btn{align-self:flex-start}.discussion-editor .discussion-checkbox{align-items:center;gap:.6rem;min-height:44px;font-weight:400;display:flex}.discussion-checkbox input{width:18px;height:18px;accent-color:var(--color-link)}.discussion-scope{border-left:3px solid var(--color-link);background:var(--color-bg-subtle);color:var(--color-text-secondary);margin:0 0 1rem;padding:.75rem 1rem;font-size:.875rem;display:block}.discussion-muted{color:var(--color-text-secondary);font-size:.8125rem}.discussion-error{color:var(--color-caution);font-size:.875rem}.discussion-report{border:1px solid var(--color-border);border-radius:6px;padding:1rem}.chapter-discussions{border-top:1px solid var(--color-border);clear:both;margin-top:2.5rem;padding-top:1.5rem}.chapter-discussions .discussion-row h2{font-size:1rem}.community-profile{border:1px solid var(--color-border);border-radius:10px;margin-bottom:1.5rem;overflow:hidden}.community-profile__cover{background:var(--color-bg-subtle);height:120px}.community-profile__cover img{object-fit:cover;width:100%;height:100%}.community-profile>header{align-items:center;gap:1rem;padding:1.5rem;display:flex}.community-profile h1{margin:0;font-size:1.5rem}.community-profile header p{white-space:pre-wrap;overflow-wrap:anywhere;margin:.6rem 0 0;font-size:.875rem}.community-profile__stats{flex-wrap:wrap;gap:2rem;margin:0;padding:0 1.5rem 1.5rem;display:flex}.community-profile__stats dt{color:var(--color-text-secondary);font-size:.8125rem}.community-profile__stats dd{margin:.25rem 0 0;font-size:1.5rem;font-weight:650}.community-profile__honors{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:0 1.5rem 1.5rem;display:grid}.community-profile__honors details{border:1px solid var(--color-border);border-radius:6px;padding:1rem;font-size:.8125rem}.community-profile__honors summary{cursor:pointer;align-items:center;gap:.5rem;min-height:44px;display:flex}.community-profile__honors .achievement__seal{--achievement-seal-width:56px;--achievement-seal-height:64px}.community-profile__honors p{color:var(--color-text-secondary);margin:.75rem 0 0}@media (max-width:640px){.discussion-row{gap:.5rem}.discussion-row__counts{min-width:2.5rem;font-size:.75rem}.discussion-detail h1{font-size:1.5rem}.discussion-row__meta{gap:.5rem}.community-profile__honors{grid-template-columns:1fr}.community-profile>header{align-items:flex-start}.discussion-detail__byline{gap:.75rem}.discussion-toolbar .btn{padding-inline:.8rem}.discussion-tabs a{padding-inline:.7rem}}.discussion-editor .site-select{width:100%}.wish-page{max-width:58rem;padding-top:var(--page-top-space);padding-bottom:3rem}.wish-actions,.wish-comment-actions,.wish-comment-head,.wish-labels,.wish-meta,.wish-pagination,.wish-tabs,.wish-toolbar{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.wish-toolbar{border-bottom:var(--rule);justify-content:space-between;padding-bottom:.9rem}.wish-tabs{gap:1.6rem}.wish-tabs a{color:var(--color-text-secondary);padding:.5rem 0;text-decoration:none}.wish-tabs a[aria-current]{color:var(--color-text);font-weight:600;box-shadow:0 2px}.wish-filters{flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0 .15rem;font-size:.8rem;display:flex}.wish-filters input{flex:1;min-width:10rem;height:44px}.wish-filters>.btn,.wish-toolbar>.btn{min-height:44px;padding:.45rem .85rem;font-size:.8rem}.wish-filters>.btn{border-color:var(--color-border)}.wish-filters .site-select__trigger{padding:.4rem .65rem}.wish-comment-form textarea,.wish-filters input,.wish-form input,.wish-form textarea{background:var(--color-bg-page);color:var(--color-text);border:var(--rule);font:inherit;border-radius:6px;min-width:0;max-width:100%;padding:.5rem .65rem}.wish-row{border-bottom:var(--rule);align-items:flex-start;gap:1.2rem;padding:1.35rem 0;display:flex}.wish-row-content{flex:1;min-width:0}.wish-row h2{font-size:1.15rem;font-weight:600;line-height:1.5;font-family:var(--font-sans);overflow-wrap:anywhere;margin:.4rem 0}.wish-row h2 a{text-decoration:none}.wish-row h2 a:hover{color:var(--color-link)}.wish-labels{color:var(--color-text-secondary);gap:.6rem;font-size:.75rem}.wish-tag{background:var(--color-bg-subtle);border-radius:4px;padding:.05rem .45rem;font-size:.75rem;display:inline-block}.wish-tag[data-state=collecting],.wish-tag[data-state=planned],.wish-tag[data-state=producing]{color:var(--color-link);background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.wish-tag[data-state=collecting],.wish-tag[data-state=planned],.wish-tag[data-state=producing]{background:color-mix(in srgb,var(--color-link) 8%,var(--color-bg-page))}}.wish-tag[data-state=completed]{color:var(--color-tip)}.wish-pin{color:var(--color-link);align-items:center;gap:.2rem;display:inline-flex}.wish-source-official{color:var(--color-link);font-weight:500}.wish-description{max-width:48rem;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.4rem 0;font-size:.85rem;line-height:1.75;display:-webkit-box;overflow:hidden}.wish-description,.wish-official{color:var(--color-text-secondary)}.wish-official{border-left:2px solid var(--color-border-strong);background:var(--color-bg-subtle);margin:.8rem 0;padding:.65rem .85rem;font-size:.8rem}.wish-official strong{color:var(--color-text);margin-right:.6rem;font-weight:500}.wish-meta{color:var(--color-text-secondary);gap:.35rem .85rem;margin-top:.6rem;font-size:.75rem}.wish-meta a{align-items:center;gap:.3rem;text-decoration:none;display:inline-flex}.wish-meta a:hover{color:var(--color-link)}.wish-support-wrap{flex-shrink:0;width:4.2rem}.wish-support{border:1px solid var(--color-link);flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:5rem;padding:.4rem;display:flex}@supports (color:color-mix(in lab,red,red)){.wish-support{border:1px solid color-mix(in srgb,var(--color-link) 25%,var(--color-border))}}.wish-support{background:var(--color-link);border-radius:8px}@supports (color:color-mix(in lab,red,red)){.wish-support{background:color-mix(in srgb,var(--color-link) 4%,var(--color-bg-page))}}.wish-support{color:var(--color-link);cursor:pointer;transition:background .15s,border-color .15s}.wish-support strong{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:600;line-height:1.4}.wish-support span{color:var(--color-text-secondary);font-size:.7rem}.wish-support[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--color-link);border-color:var(--color-link);color:var(--color-link);background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.wish-support[aria-pressed=true]{background:color-mix(in srgb,var(--color-link) 7%,var(--color-bg-page))}}.wish-support[aria-pressed=true] span{color:var(--color-link)}.wish-support:disabled{opacity:.55;cursor:default}.wish-support:not(:disabled):hover{border-color:var(--color-link);background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.wish-support:not(:disabled):hover{background:color-mix(in srgb,var(--color-link) 10%,var(--color-bg-page))}}.wish-support:focus-visible{outline:2px solid var(--color-link);outline-offset:3px}.wish-support:disabled:not([aria-pressed=true]){color:var(--color-text-secondary);background:var(--color-bg-subtle);border:var(--rule)}.wish-muted{color:var(--color-text-secondary);font-size:.8rem}.wish-error{color:var(--color-caution);overflow-wrap:anywhere;font-size:.8rem}.wish-empty{text-align:center;color:var(--color-text-secondary);padding:3rem 0}.wish-list-note{margin-top:1rem;font-size:.75rem;line-height:1.6}.wish-back{min-height:44px;color:var(--color-text-secondary);align-items:center;gap:.35rem;margin-bottom:1.5rem;font-size:.875rem;text-decoration:none;display:inline-flex}.wish-detail h1{font-family:var(--font-sans);overflow-wrap:anywhere;margin:.65rem 0 .9rem;font-size:1.65rem;font-weight:650;line-height:1.4}.wish-detail-grid{grid-template-columns:minmax(0,1fr) 8rem;gap:2.4rem;margin-top:1.7rem;display:grid}.wish-detail-content{min-width:0;font-size:.9rem;line-height:1.8}.wish-detail-content>section{margin-bottom:1.6rem}.wish-detail-content>section>h2{color:var(--color-text-secondary);margin:0 0 .7rem;font-size:.85rem;font-weight:600}.wish-detail section p{margin:.4rem 0}.wish-plain{white-space:pre-wrap;overflow-wrap:anywhere}.wish-detail-support{text-align:center;flex-direction:column;align-self:start;align-items:center;gap:.65rem;display:flex}.wish-detail-support>.wish-muted{font-size:.7rem;line-height:1.6}.wish-detail-support .wish-support-wrap{width:100%}.wish-detail-support .wish-support{min-height:5.5rem}.wish-detail-support .wish-support strong{font-size:2rem}.wish-review-note{background:var(--color-bg-subtle);white-space:pre-wrap;margin-top:1rem;padding:1rem;font-size:.875rem}.wish-review-note a{margin-left:1rem}.wish-timeline{margin:.8rem 0 0;padding:0 0 0 .3rem;list-style:none}.wish-timeline li{border-left:var(--rule);padding:0 0 1.1rem 1rem;position:relative}.wish-timeline li:before{content:"";background:var(--color-border-strong);border-radius:50%;width:7px;height:7px;position:absolute;top:.7rem;left:-4px}.wish-timeline li:first-child:before{background:var(--color-link)}.wish-timeline li p{margin:0 0 .15rem;font-size:.85rem}.wish-timeline li:last-child{padding-bottom:.25rem}.wish-timeline time{color:var(--color-text-secondary);font-size:.7rem}.wish-form{max-width:38rem;margin:0 auto}.wish-form h1{font-size:1.75rem}.wish-form label{flex-direction:column;gap:.5rem;margin:1.3rem 0;font-size:.875rem;display:flex}.wish-form input,.wish-form textarea{width:100%;font-size:1rem}.wish-comment-form textarea,.wish-form textarea{resize:vertical}.wish-form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.wish-actions{justify-content:flex-end;margin-top:1.5rem}.wish-gate{text-align:center;padding:3rem 1rem}.wish-gate h1{font-size:1.5rem}.wish-gate p{color:var(--color-text-secondary)}.wish-pagination{justify-content:center;margin:1.5rem 0;font-size:.875rem}.wish-discussion{border-top:var(--rule);border-bottom:var(--rule);margin-top:1.8rem}.wish-discussion>summary{cursor:pointer;justify-content:space-between;padding:1rem 0;font-weight:500;display:flex}.wish-discussion>summary span{color:var(--color-text-secondary);font-size:.8rem}.wish-discussion-body{padding-bottom:1.5rem}.wish-comment{border-top:var(--rule);padding:1.2rem 0}.wish-comment-head{justify-content:space-between}.wish-comment-form{flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:1.5rem;display:flex}.wish-comment-form label{font-size:.875rem}.wish-comment-form textarea{flex-basis:100%;font-size:1rem}.wish-comment-form>.btn{margin-left:auto}.wish-comment-actions{justify-content:flex-end}.wish-text-button{font:inherit;cursor:pointer;background:0 0;border:0;padding:.3rem 0;font-size:.8rem}.wish-course-link,.wish-text-button{color:var(--color-link)}@media (max-width:640px){.wish-toolbar{gap:1rem}.wish-tabs{gap:1rem;font-size:.875rem}.wish-row{gap:.9rem}.wish-support-wrap{width:3.4rem}.wish-filters input{flex-basis:100%}.wish-detail-grid{grid-template-columns:1fr;gap:1rem}.wish-detail-support{text-align:left;border-bottom:var(--rule);flex-direction:row;order:-1;justify-content:flex-start;padding:0 0 1rem}.wish-detail-support .wish-support-wrap{width:5rem}.wish-detail-support .wish-support{min-height:4rem}.wish-detail h1{font-size:1.5rem}.wish-tabs a,.wish-text-button{align-items:center;min-height:44px;display:inline-flex}.wish-form-grid{grid-template-columns:1fr;gap:0}.wish-comment-head{align-items:flex-start}.wish-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.wish-filters input[type=search]{grid-column:1/-1;width:100%}.wish-filters>.btn{grid-column:1/-1}}.wish-filters .site-select{flex-shrink:0;min-width:6.4rem;font-size:.8rem}.wish-form .site-select{width:100%;font-size:1rem}@media (max-width:640px){.wish-filters .site-select{width:100%;min-width:0}}@media (prefers-reduced-motion:reduce){.wish-support{transition:none}}.wish-prerequisites{background:var(--color-bg-subtle);border-radius:8px;padding:1rem 1.1rem}.wish-markdown{overflow-wrap:anywhere;min-width:0;line-height:1.85}.wish-markdown>:first-child{margin-top:0}.wish-markdown>:last-child{margin-bottom:0}.wish-markdown p{margin:.65rem 0}.wish-markdown :is(h2,h3,h4,h5,h6){font-family:var(--font-sans);color:var(--color-text);margin:1.25rem 0 .5rem;font-size:1rem;font-weight:600;line-height:1.5}.wish-markdown :is(h3,h4,h5,h6){font-size:.9rem}.wish-markdown :is(ul,ol){margin:.65rem 0;padding-left:1.4rem}.wish-markdown ul{list-style:outside}.wish-markdown ol{list-style:decimal}.wish-markdown li+li{margin-top:.3rem}.wish-markdown li>p{margin:.25rem 0}.wish-markdown a{color:var(--color-link);text-underline-offset:3px;text-decoration:underline}.wish-markdown strong{font-weight:600}.wish-markdown blockquote{border-left:3px solid var(--color-border-strong);color:var(--color-text-secondary);margin:.8rem 0;padding:.1rem 1rem}.wish-markdown code{font-family:var(--font-mono);background:var(--color-bg-subtle);border-radius:4px;padding:.12em .35em;font-size:.85em}.wish-markdown pre{background:var(--color-bg-subtle);border:var(--rule);border-radius:8px;max-width:100%;margin:.85rem 0;padding:.85rem 1rem;line-height:1.7;overflow-x:auto}.wish-markdown pre code{background:0 0;padding:0;font-size:.8rem}.wish-markdown table{border-collapse:collapse;max-width:100%;margin:1rem 0;font-size:.8rem;display:block;overflow-x:auto}.wish-markdown :is(th,td){border:var(--rule);text-align:left;padding:.45rem .65rem}.wish-markdown th{background:var(--color-bg-subtle);font-weight:600}.wish-markdown hr{border:0;border-top:var(--rule);margin:1.25rem 0}@media (max-width:640px){.wish-detail h1{font-size:1.4rem}.wish-detail-content{font-size:.875rem}.wish-detail-grid{margin-top:1.25rem}.wish-prerequisites{padding:.85rem}.wish-detail-support>.wish-muted{max-width:10rem}}.wish-intro{color:var(--color-text-secondary);max-width:52rem;margin:1rem 0 0;font-size:.8rem;line-height:1.8}.wish-support-wrap{flex-direction:column;gap:.6rem;display:flex}.wish-support[data-reaction=skip]{color:var(--color-text-secondary);border-color:var(--color-border);background:var(--color-bg-page)}.wish-support[data-reaction=skip] strong{font-size:1.15rem}.wish-support[data-reaction=skip][aria-pressed=true]{color:var(--color-text);border-color:var(--color-text-secondary);box-shadow:inset 0 0 0 1px var(--color-text-secondary);background:var(--color-bg-subtle)}.wish-support[data-reaction=skip][aria-pressed=true] span{color:var(--color-text)}.wish-support[data-reaction=skip]:not(:disabled):hover{border-color:var(--color-text-secondary);background:var(--color-bg-subtle)}.wish-support[data-reaction=skip] span{white-space:nowrap}@media (max-width:640px){.wish-detail-support .wish-support-wrap{flex-direction:row;width:10.6rem}.wish-detail-support .wish-support{flex-shrink:0;width:5rem}.wish-detail-support .wish-support[data-reaction=skip] strong{font-size:1.5rem}}.site-select{vertical-align:middle;min-width:0;max-width:100%;font-size:var(--text-small);display:inline-block;position:relative}.site-select__trigger{border:var(--rule);background:var(--color-bg-page);width:100%;min-height:44px;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:.8rem;padding:.5rem .75rem;line-height:1.5;transition:border-color .15s,background .15s;display:flex}.site-select__value{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.site-select__trigger>svg{color:var(--color-text-secondary);flex-shrink:0;transition:transform .15s}.site-select__trigger:not(:disabled):hover{background:var(--color-bg-subtle);border-color:var(--color-border-strong)}.site-select__trigger[aria-expanded=true]{border-color:var(--color-link)}.site-select__trigger[aria-expanded=true]>svg{transform:rotate(180deg)}.site-select__trigger:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.site-select__trigger:disabled{color:var(--color-text-secondary);background:var(--color-bg-subtle);cursor:not-allowed;opacity:.6}.site-select__menu{z-index:90;overscroll-behavior:contain;border:var(--rule);background:var(--color-bg-page);width:max-content;max-width:calc(100vw - 24px);color:var(--color-text);box-shadow:0 8px 24px var(--color-text),0 2px 6px var(--color-text);border-radius:10px;padding:5px;position:fixed;overflow-y:auto}@supports (color:color-mix(in lab,red,red)){.site-select__menu{box-shadow:0 8px 24px color-mix(in srgb,var(--color-text) 12%,transparent),0 2px 6px color-mix(in srgb,var(--color-text) 5%,transparent)}}.site-select__menu{font-size:var(--text-small);font-family:var(--font-sans);text-align:left;font-weight:400}.site-select__option{min-height:38px;color:var(--color-text);cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;gap:1.5rem;padding:.45rem .65rem;line-height:1.5;display:flex}.site-select__option>span:first-child{overflow-wrap:anywhere;min-width:0}.site-select__option.is-active{background:var(--color-bg-subtle)}.site-select__option[aria-selected=true]{color:var(--color-link);background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.site-select__option[aria-selected=true]{background:color-mix(in srgb,var(--color-link) 8%,var(--color-bg-page))}}.site-select__option[aria-selected=true]{font-weight:500}.site-select__option[aria-disabled=true]{color:var(--color-text-secondary);opacity:.5;cursor:not-allowed}.site-select__check-space,.site-select__option>svg{flex-shrink:0;width:15px}.site-select__detail{color:var(--color-text-secondary);white-space:nowrap;margin-left:auto;font-size:.85em}.site-select__group{color:var(--color-text-secondary);padding:.5rem .65rem .25rem;font-size:.8rem;font-weight:500}@media (pointer:coarse){.site-select__option{min-height:44px}}@media (prefers-reduced-motion:reduce){.site-select__trigger,.site-select__trigger>svg{transition:none}}.hotspot-page{padding-top:var(--page-top-space);min-height:65vh;padding-bottom:3rem}.hotspot-tabs{border-bottom:var(--rule);flex-wrap:wrap;gap:2rem;display:flex}.hotspot-tabs a{min-height:48px;color:var(--color-text-secondary);border-bottom:2px solid #0000;align-items:center;padding-bottom:.7rem;text-decoration:none;display:flex}.hotspot-tabs a[aria-current=page]{color:var(--color-text);border-bottom-color:var(--color-link);font-weight:600}.hotspot-toolbar{border-bottom:var(--rule);justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0;display:flex}.hotspot-ranges{flex-wrap:wrap;gap:.25rem;display:flex}.hotspot-ranges a{border:1px solid #0000;border-radius:6px;min-height:44px;padding:.5rem .8rem;font-size:.875rem;text-decoration:none}.hotspot-ranges a[aria-current=true]{background:var(--color-accent-bg);border-color:var(--color-link);color:var(--color-link)}.hotspot-search{gap:.5rem;display:flex}.hotspot-search input{border:1px solid var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-text);min-width:0;min-height:44px;font:inherit;border-radius:6px;padding:.5rem .75rem;font-size:.875rem}.hotspot-search .btn{min-height:44px}.hotspot-story{border-bottom:var(--rule);padding:1.25rem 0 1rem;scroll-margin-top:5rem}.hotspot-meta{font-variant-numeric:tabular-nums;justify-content:space-between;gap:.75rem;font-size:.75rem}.hotspot-meta,.hotspot-story-meta{color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.hotspot-story-meta{font-variant-numeric:tabular-nums;align-items:center;gap:.5rem .85rem;font-size:.8125rem}.hotspot-category{border:var(--rule);color:var(--color-text-secondary);border-radius:4px;flex-shrink:0;align-items:center;gap:.35rem;padding:.15rem .45rem;font-size:.75rem;line-height:1.5;display:inline-flex}.hotspot-category[data-category=tool]{background:var(--color-accent-bg);color:var(--color-link);border-color:#0000}.hotspot-category[data-category=open_source]{color:var(--color-tip)}.hotspot-story>h2{max-width:60rem;margin:.25rem 0 .4rem;font-size:1.25rem;font-weight:650;line-height:1.5}.hotspot-title-action{box-sizing:border-box;max-width:100%;min-height:44px;font:inherit;color:var(--color-text);text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;border-radius:3px;padding:.25rem 0;scroll-margin-top:6rem;text-decoration:none;display:inline-block}.hotspot-title-action svg{vertical-align:-.1em;color:var(--color-text-secondary);margin-left:.4rem;display:inline}.hotspot-title-action:hover{color:var(--color-link);text-underline-offset:.2em;text-decoration:underline}.hotspot-summary{max-width:52rem;color:var(--color-text-secondary);overflow-wrap:anywhere;margin:0;font-size:1rem;line-height:1.75}.hotspot-bottom{color:var(--color-text-secondary);justify-content:space-between;gap:.25rem 1.5rem;margin-top:.4rem;font-size:.8125rem}.hotspot-bottom,.hotspot-source-meta{flex-wrap:wrap;align-items:center;display:flex}.hotspot-source-meta{overflow-wrap:anywhere;gap:.25rem 1rem;min-width:0}.hotspot-actions{align-items:center;gap:1.25rem;display:flex}.hotspot-bottom a,.hotspot-text-button{min-height:44px;color:var(--color-link);align-items:center;gap:.4rem;font-size:.875rem;text-decoration:none;display:inline-flex}.hotspot-text-button{cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0;font-family:inherit}.hotspot-bottom a:hover,.hotspot-text-button:hover{text-underline-offset:.2em;text-decoration:underline}.hotspot-bottom a:focus-visible,.hotspot-reference-list a:focus-visible,.hotspot-text-button:focus-visible,.hotspot-title-action:focus-visible{outline:2px solid var(--color-link);outline-offset:4px}.hotspot-text-button[aria-expanded=true] .hotspot-chevron{transform:rotate(180deg)}.hotspot-interpretation{border-top:var(--rule);overflow-wrap:anywhere;margin-top:.5rem;padding:1.15rem 0 0;font-size:1rem;line-height:1.85}.hotspot-interpretation-content{max-width:48rem}.hotspot-interpretation-content :is(h2,h3,h4){color:var(--color-text);margin:1.35rem 0 .4rem;font-size:1rem;font-weight:650;line-height:1.6}.hotspot-interpretation-content>:first-child{margin-top:0}.hotspot-interpretation-content p{margin:.5rem 0}.hotspot-interpretation-content :is(ul,ol){margin:.6rem 0;padding-left:1.4rem}.hotspot-interpretation-content li{margin:.35rem 0}.hotspot-interpretation-content pre{max-width:100%;overflow:auto}.hotspot-interpretation-content img{max-width:100%;height:auto}.hotspot-reference-list{color:var(--color-text-secondary);gap:.35rem;margin:1.1rem 0 .35rem;padding:0;font-size:.8125rem;list-style:none;display:grid}.hotspot-reference-list li{flex-wrap:wrap;align-items:baseline;gap:.35rem .7rem;display:flex}.hotspot-reference-list a{min-height:44px;color:var(--color-link);align-items:center;gap:.3rem;text-decoration:none;display:inline-flex}.hotspot-reference-list a:hover{text-decoration:underline}.hotspot-interpretation-footer{color:var(--color-text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;margin-top:.35rem;font-size:.8125rem;display:flex}.hotspot-collapse-bottom{margin-left:auto}.hotspot-board-meta,.hotspot-search-note{color:var(--color-text-secondary);border-bottom:var(--rule);flex-wrap:wrap;justify-content:space-between;gap:.5rem;padding:1rem 0;font-size:.8125rem;display:flex}.hotspot-repo{border-bottom:var(--rule);grid-template-columns:44px minmax(0,1fr) auto;gap:1rem;padding:1.5rem 0;display:grid}.hotspot-rank{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:1.125rem}.hotspot-rank small{font:.7rem/1.5 var(--font-sans);margin-bottom:.25rem;display:block}.hotspot-repo h2{overflow-wrap:anywhere;margin:0 0 .4rem;font-size:1.125rem;line-height:1.6}.hotspot-repo p{color:var(--color-text-secondary);max-width:44rem;margin:0 0 .75rem;font-size:.9375rem;line-height:1.85}.hotspot-gain{color:var(--color-tip);font-variant-numeric:tabular-nums}.hotspot-gain small{color:var(--color-text-secondary);font-size:.75rem;display:block}.hotspot-pager{justify-content:center;align-items:center;gap:1.5rem;margin-top:1.75rem;font-size:.875rem;display:flex}.hotspot-pager a{align-items:center;min-height:44px;display:flex}.hotspot-empty{text-align:center;color:var(--color-text-secondary);padding:4rem 1rem}@media (max-width:800px){.hotspot-toolbar{flex-direction:column;align-items:stretch}.hotspot-search input{flex:1;width:0;font-size:1rem}.hotspot-tabs{gap:1.5rem}}@media (max-width:480px){.hotspot-tabs{gap:1rem;font-size:.875rem}.hotspot-story>h2{font-size:1.125rem}.hotspot-repo p,.hotspot-summary{font-size:1rem}.hotspot-source-meta{flex-basis:100%}.hotspot-actions{width:100%}.hotspot-interpretation{padding:1rem 0 0}.hotspot-repo{grid-template-columns:32px minmax(0,1fr);gap:.65rem}.hotspot-gain{grid-column:2}.hotspot-gain small{margin-left:.5rem;display:inline}.hotspot-repo h2{font-size:1rem}}@media (prefers-reduced-motion:no-preference){.hotspot-chevron{transition:transform .18s}}.hotspot-search input:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.hotspot-loading-tabs>span{min-height:48px;color:var(--color-text-secondary);border-bottom:2px solid #0000;align-items:center;padding-bottom:.7rem;display:flex}.hotspot-loading-ranges,.hotspot-loading-search{align-items:center;gap:.5rem;display:flex}.hotspot-skeleton{background:var(--color-bg-muted);border-radius:4px;max-width:100%;display:block}.hotspot-skeleton-range{width:4.5rem;height:2.75rem}.hotspot-skeleton-input{width:13rem;height:2.75rem}.hotspot-skeleton-submit{width:4rem;height:2.75rem}.hotspot-skeleton-category{width:4.5rem;height:1.6rem}.hotspot-skeleton-date{width:8rem;height:.85rem}.hotspot-skeleton-title{width:78%;height:1.5rem;margin:1rem 0}.hotspot-skeleton-title.is-short{width:62%}.hotspot-skeleton-summary{width:min(100%,52rem);height:.875rem;margin:.8rem 0}.hotspot-skeleton-summary.is-short{width:65%}.hotspot-skeleton-source{width:8rem;height:.75rem;margin:.9rem 0}.hotspot-skeleton-actions{width:10rem;height:.75rem;margin:.9rem 0}@media (max-width:800px){.hotspot-skeleton-input{flex:1;width:0}.hotspot-loading-search{width:100%}}@media (max-width:480px){.hotspot-skeleton-title{width:94%}.hotspot-skeleton-title.is-short{width:80%}.hotspot-skeleton-actions{width:8rem}}@media (prefers-reduced-motion:no-preference){.hotspot-loading{animation:hotspot-loading-pulse 1.8s ease-in-out .2s infinite}@keyframes hotspot-loading-pulse{0%,to{opacity:1}50%{opacity:.65}}}:root{--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;--font-mono:"JetBrains Mono","Cascadia Mono","SF Mono",Menlo,Consolas,"Liberation Mono","Microsoft YaHei",monospace;--font-display:"Source Serif 4","Iowan Old Style","Charter",Georgia,"Songti SC","Source Han Serif SC","Noto Serif SC","SimSun",serif;--text-body:1rem;--text-code:.875rem;--text-h1:2.25rem;--text-h2:1.5rem;--text-h3:1.25rem;--text-h4:1.125rem;--text-small:.875rem;--text-micro:.75rem;--leading-body:1.75;--leading-code:1.6;--leading-header:1.35;--measure-content:48rem;--measure-narrow:40rem;--gutter-mobile:1rem;--page-top-space:2rem;--page:64rem;--color-bg-page:#fff;--color-border:#e3e6ea;--color-border-strong:#c3c7cb;--color-text:#1f2328;--color-text-secondary:#59636e;--color-link:#0969da;--color-note:#0969da;--color-tip:#1a7f37;--color-warning:#9a6700;--color-severe:#bc4c00;--color-caution:#d1242f;--color-important:#8250df;--space-paragraph:1.25rem;--space-block:1.5rem;--space-heading-top:2.5rem;--space-heading-bottom:.75rem;--code-padding:1rem 1.25rem;--code-radius:.5rem;--topbar-h:64px;--toc-top:90px;--rule:1px solid var(--color-border)}@media (max-width:640px){:root{--page-top-space:1.5rem}}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{background:var(--color-bg-page);min-height:100dvh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--leading-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-weight:400;display:flex;overflow-x:clip}img,svg{max-width:100%;height:auto;display:block}a{color:inherit}button,input{font:inherit}:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.skip{z-index:80;background:var(--color-primary-bg);color:var(--color-primary-text);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;top:.75rem;left:.75rem;overflow:hidden}.skip:focus-visible{clip-path:none;width:auto;height:auto;padding:.4rem .75rem;overflow:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mockbar{top:var(--topbar-h);z-index:40;background:var(--color-gold-bg);border-bottom:1px solid var(--color-gold-border);font-family:var(--font-mono);font-size:var(--text-micro);color:var(--color-gold);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.45rem clamp(1rem,4vw,2.5rem);display:flex;position:sticky}.mockbar strong{color:var(--color-gold);font-weight:600}.mockbar a{color:var(--color-gold);border-bottom:1px solid #0000;text-decoration:none}.mockbar a.is-on,.mockbar a:hover{color:var(--color-text);border-bottom-color:currentColor}.mockbar a.is-on{font-weight:600}.topbar{--topbar-pad:clamp(1rem,4vw,2.5rem);z-index:50;height:var(--topbar-h);grid-template-columns:minmax(max-content,calc(max(1rem, (100% + 2 * var(--topbar-pad) - var(--page)) / 2) - var(--topbar-pad))) minmax(0,auto) minmax(0,1fr);padding:0 var(--topbar-pad);background:var(--color-topbar);-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px);border-bottom:0;align-items:center;display:grid;position:sticky;top:0;box-shadow:0 1px #14181e0a,0 4px 12px #14181e0a}.reading-progress{pointer-events:none;height:3px;position:absolute;inset:auto 0 0}.reading-progress__indicator{background:var(--color-link);transform-origin:0;height:100%;transform:scaleX(0)}.topbar__brand{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--color-text);white-space:nowrap;align-items:center;gap:.7rem;padding-right:2rem;font-size:1.125rem;font-weight:700;line-height:1.2;text-decoration:none;display:flex}.topbar__mark{width:32px;height:32px;color:var(--color-link);flex:none;place-items:center;display:grid}.topbar__mark svg{width:32px;height:32px;display:block}.topbar__nav{min-width:0;font-size:var(--text-small);align-items:center;gap:.35rem 1.65rem;display:flex}.topbar__account a,.topbar__nav a,.topbar__textbtn{color:var(--color-text-secondary);cursor:pointer;font-weight:400;font:inherit;font-size:var(--text-small);background:0 0;border:0;align-items:center;gap:.4rem;padding:0;text-decoration:none;display:inline-flex}.topbar__account a svg,.topbar__nav a svg,.topbar__textbtn svg{opacity:.85;flex:none}.topbar__account a:hover,.topbar__nav a:hover,.topbar__textbtn:hover{color:var(--color-text)}.topbar__account a.is-on,.topbar__nav a.is-on{color:var(--color-link)}.topbar__account a.is-on svg,.topbar__nav a.is-on svg{opacity:1}.topbar__account{font-size:var(--text-small);justify-content:flex-end;align-items:center;gap:1rem;display:flex}.topbar__notify{gap:.35rem;position:relative}.topbar__badge,.topbar__notify{align-items:center;display:inline-flex}.topbar__badge{color:#fff;background:#cf222e;border-radius:999px;justify-content:center;min-width:1.15rem;height:1.15rem;padding:0 .3rem;font-size:.6875rem;font-weight:600;line-height:1}.topbar__deal{background:var(--color-gold-bg);border:1px solid var(--color-gold-border);color:var(--color-warning);letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;margin-left:.1rem;padding:.12rem .4rem;font-size:.65rem;font-weight:700;line-height:1.2;display:inline-flex}.topbar__nav a.is-on .topbar__deal{background:var(--color-gold-bg);border-color:var(--color-gold-border);color:var(--color-gold)}.topbar__menu-btn{width:2.5rem;height:2.5rem;color:var(--color-text);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;margin:0;padding:0;display:none}.topbar__menu-btn:hover{background:var(--color-bg-subtle)}.topbar__presence{color:var(--color-text-secondary);font-size:var(--text-micro);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;align-items:center;gap:.4rem;font-weight:600;line-height:1.5;display:inline-flex}.topbar__presence:before{content:"";background:#22c55e;border-radius:999px;flex:none;width:.4rem;height:.4rem;animation:presence-breathe 2.4s ease-in-out infinite}@keyframes presence-breathe{0%,to{opacity:1;box-shadow:0 0 #22c55e80}50%{opacity:.5;box-shadow:0 0 0 .3rem #22c55e00}}@media (max-width:880px){.topbar__presence{display:none}}@media (prefers-reduced-motion:reduce){.topbar__presence:before{animation:none}}body.is-drawer-open,body.is-nav-open{overflow:hidden}@media (max-width:880px){.topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:var(--topbar-h) auto auto;height:auto;min-height:var(--topbar-h);row-gap:0}.topbar__brand{padding-right:.5rem;font-size:1.05rem}.topbar__menu-btn{justify-self:end;display:inline-flex}.topbar__account,.topbar__nav{flex-direction:column;grid-column:1/-1;justify-content:flex-start;align-items:stretch;gap:0;padding:.35rem 0 .85rem;display:none}.topbar.is-menu-open .topbar__account,.topbar.is-menu-open .topbar__nav{display:flex}.topbar.is-menu-open .topbar__nav{border-top:var(--rule);padding-top:.55rem}.topbar.is-menu-open .topbar__account{padding-top:0;padding-bottom:.95rem}.topbar__account .topbar__textbtn,.topbar__account a,.topbar__nav a{border-radius:8px;padding:.75rem .35rem}.topbar__account .topbar__textbtn:hover,.topbar__account a:hover,.topbar__nav a:hover{background:var(--color-bg-subtle)}}.account-dropdown{flex-shrink:0;position:relative}.topbar__nav>.topbar__nav-vip{display:none}.account-avatar{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;width:36px;height:36px;padding:1px;display:grid;position:relative}.account-avatar:hover,.account-avatar[aria-expanded=true]{background:var(--color-accent-bg)}.account-avatar.is-vip{border-color:var(--color-gold-border);background:var(--color-gold-surface)}.account-avatar__vip{color:#755319;background:#f0dfb5;border:1px solid #fff;border-radius:3px;padding:1px 4px;font-size:8px;font-weight:750;line-height:1.2;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.account-panel{border:var(--rule);background:var(--color-bg-surface);z-index:100;border-radius:8px;width:max-content;min-width:156px;max-width:calc(100vw - 2rem);padding:.35rem;position:absolute;top:calc(100% + .75rem);right:0;box-shadow:0 8px 24px #15283f14}.account-panel__identity{align-items:center;gap:.5rem;padding:.6rem .5rem;display:flex}.account-panel__identity strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-small);font-weight:600;overflow:hidden}.account-panel__identity .vip-identity{flex-shrink:0;padding:.08rem .3rem;font-size:10px;line-height:1.4}.account-panel__avatar-edit,.account-panel__logout .topbar__textbtn,.topbar__account .account-panel>a{width:100%;min-height:36px;font:inherit;font-size:var(--text-small);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:.55rem;padding:.4rem .5rem;text-decoration:none;display:flex}.topbar__account .account-panel>.account-panel__mobile-link{display:none}.account-panel__avatar-edit:hover,.account-panel__logout .topbar__textbtn:hover,.topbar__account .account-panel>a:hover{color:var(--color-text);background:var(--color-bg-subtle)}.topbar__account .account-panel>a.is-on{color:var(--color-link)}.account-panel__logout{border-top:var(--rule);margin-top:.4rem;padding-top:.4rem}.account-panel .topbar__badge{margin-left:auto}.topbar__account>.topbar__notify{border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.topbar__notify>.topbar__badge{min-width:16px;height:16px;font-size:10px;position:absolute;top:-2px;right:-4px}@media (max-width:1040px){.topbar{grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:var(--topbar-h) auto;height:auto;min-height:var(--topbar-h);gap:0 .6rem}.topbar__brand{grid-area:1/1;padding-right:.5rem;font-size:1.05rem}.topbar__menu-btn{grid-area:1/3;justify-self:end;display:inline-flex}.topbar__nav{flex-direction:column;grid-area:2/1/auto/-1;align-items:stretch;gap:0;padding:.55rem 0 .85rem;display:none}.topbar.is-menu-open .topbar__nav{border-top:var(--rule);display:flex}.topbar__nav a{border-radius:8px;padding:.75rem .35rem}.topbar__nav a:hover{background:var(--color-bg-subtle)}.topbar .topbar__account,.topbar.is-menu-open .topbar__account{flex-direction:row;grid-area:1/2;justify-content:flex-end;align-items:center;gap:0;padding:0;display:flex}.topbar__account>.topbar__notify,.topbar__account>.topbar__vip{display:none}.topbar__nav>.topbar__nav-vip{display:inline-flex}.topbar__account .account-panel>.account-panel__mobile-link{display:flex}.account-avatar{width:40px;height:40px;padding:3px}.account-panel__avatar-edit,.account-panel__logout .topbar__textbtn,.topbar__account .account-panel>a{min-height:44px}.topbar__presence{display:none}}.topbar__account>a.topbar__vip,.topbar__nav>a.topbar__nav-vip{color:var(--color-gold);box-shadow:none;background:0 0;font-weight:600;transition:color .18s}.topbar__account>a.topbar__vip{min-height:34px;padding-block:.4rem}.topbar__account>a.topbar__vip svg,.topbar__nav>a.topbar__nav-vip svg{color:var(--color-gold-icon);opacity:1;transition:color .18s}.topbar__account>a.topbar__vip.is-on,.topbar__nav>a.topbar__nav-vip.is-on{color:var(--color-gold)}.topbar__account>a.topbar__vip:focus-visible,.topbar__account>a.topbar__vip:hover,.topbar__account>a.topbar__vip:hover svg,.topbar__nav>a.topbar__nav-vip:focus-visible,.topbar__nav>a.topbar__nav-vip:hover,.topbar__nav>a.topbar__nav-vip:hover svg{color:var(--color-gold-hover)}.topbar__nav-vip .topbar__deal,.topbar__vip .topbar__deal{color:var(--color-gold);background:var(--color-gold-bg);border-color:var(--color-gold-border)}@media (prefers-reduced-motion:reduce){.topbar__account>a.topbar__vip,.topbar__account>a.topbar__vip svg,.topbar__nav>a.topbar__nav-vip,.topbar__nav>a.topbar__nav-vip svg{transition:none}}.btn{min-height:44px;font-size:var(--text-small);cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:0 1.1rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s,border-color .15s,transform .12s;display:inline-flex}.btn:active{transform:scale(.98)}.btn--primary{background:var(--color-primary-bg);color:var(--color-primary-text)}.btn--primary:hover{background:var(--color-primary-hover)}.btn--ghost{color:var(--color-text);border-color:var(--color-border-strong);background:0 0}.btn--ghost:hover{border-color:var(--color-text)}.btn--link{color:var(--color-link);background:0 0;border:0;min-height:auto;padding-inline:0}.btn[disabled]{opacity:.45;cursor:not-allowed}.wrap{width:min(var(--page),calc(100% - 2rem));margin-inline:auto}.eyebrow{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--color-link);margin:0 0 1.25rem;font-weight:500}h1.display{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0 0 1rem;font-size:clamp(2rem,5vw,3.25rem);font-weight:600;line-height:1.15}.lede{color:var(--color-text-secondary);max-width:38rem;margin:0 0 1.75rem;font-size:1.125rem;line-height:1.7}.pill{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.04em;background:var(--color-bg-muted);color:var(--color-text);border-radius:4px;align-items:center;padding:.2rem .5rem;display:inline-flex}.pill--warn{background:var(--color-gold-bg);color:var(--color-gold)}body>.learn-page,body>main{flex:1 0 auto}.site-footer{border-top:var(--rule);background:var(--color-bg-surface);width:100%;height:max-content;font-size:var(--text-small);color:var(--color-text-secondary);flex:none;margin-top:1.25rem;padding:1.25rem 0}.site-footer--flush{margin-top:0}.site-footer__inner{grid-template-columns:minmax(0,1fr) auto;align-content:start;align-items:start;gap:1rem 2.5rem;height:max-content;display:grid}.site-footer__brand{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.45rem;min-height:0;display:flex}.site-footer__tagline{margin:0;line-height:1.55}.site-footer__logo{letter-spacing:-.02em;align-items:center;gap:.5rem;font-size:1.0625rem;font-weight:700;text-decoration:none;display:inline-flex}.site-footer__logo,.site-footer__logo:hover{color:var(--color-text)}.site-footer__mark,.site-footer__mark svg{width:20px;height:20px;color:var(--color-link)}.site-footer__links{font-size:var(--text-micro);align-items:center;gap:.5rem;margin:0;display:flex}.site-footer__links a{color:var(--color-text-secondary);text-decoration:underline;-webkit-text-decoration-color:var(--color-border-strong);text-decoration-color:var(--color-border-strong);text-underline-offset:3px}.site-footer__links a:hover{color:var(--color-text);text-decoration-color:currentColor}.site-footer__legal{font-size:var(--text-micro);margin:0;line-height:1.45}.site-footer__legal a{color:inherit;text-decoration:none}.site-footer__legal a:hover{color:var(--color-link)}.site-footer__meta{flex-wrap:wrap;align-items:baseline;gap:.65rem 1.5rem;margin-top:1rem;display:flex}.site-footer__dot{color:var(--color-border-strong);margin:0 .4em}.site-footer__qrs{align-items:flex-start;gap:1rem;display:flex}.site-footer__qrs figure{text-align:center;margin:0}.site-footer__qrs img{object-fit:contain;background:var(--color-bg-surface);border:var(--rule);border-radius:8px;width:96px;height:96px;padding:.3rem;display:block}.site-footer__qrs figcaption{color:var(--color-text);font-size:var(--text-micro);margin-top:.3rem;font-weight:400;line-height:1.45}@media (max-width:640px){.site-footer__inner{grid-template-columns:1fr}.site-footer__qrs{justify-content:flex-start}.site-footer__meta{gap:.5rem 1rem;margin-top:.75rem}}.board{padding:3rem 0 4rem}.board h1{font-family:var(--font-display);margin:0 0 .5rem;font-size:2rem}.grid-pages{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:2rem;display:grid}.page-card{border:var(--rule);color:inherit;background:var(--color-bg-surface);border-radius:10px;flex-direction:column;gap:.5rem;min-height:148px;padding:1.1rem 1.15rem 1.2rem;text-decoration:none;display:flex}.page-card:hover{border-color:var(--color-text)}.page-card span{font-family:var(--font-mono);font-size:var(--text-micro);color:var(--color-text-secondary)}.page-card strong{font-size:1.05rem}.page-card p{font-size:var(--text-small);color:var(--color-text-secondary);margin:0;line-height:1.55}.home-hero{padding:var(--page-top-space) 0 3rem;background:radial-gradient(ellipse 60% 75% at 82% 30%,var(--color-hero-glow) 0,transparent 60%),linear-gradient(180deg,var(--color-hero-start) 0,var(--color-bg-page) 92%);border-bottom:var(--rule)}.home-hero__grid{grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);align-items:start;gap:2.25rem 2.5rem;display:grid}.home-hero__copy .eyebrow{border-bottom:1px solid #0000;margin-bottom:.85rem;text-decoration:none;display:inline-block}.home-hero__copy .eyebrow:hover{border-bottom-color:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.home-hero__copy .eyebrow:hover{border-bottom-color:color-mix(in srgb,var(--color-link) 45%,transparent)}}.home-hero__copy .display{margin-bottom:1rem;font-size:clamp(2.15rem,4.2vw,3.15rem);line-height:1.1}.home-hero__copy .display em{color:var(--color-link);font-style:normal}.home-hero__copy .lede{max-width:32rem;margin-bottom:1.15rem;font-size:1.0625rem}.home-hero__copy .lede mark{color:var(--color-text);background:0 0;font-weight:700}.home-chips{flex-direction:column;gap:.45rem;margin-bottom:1.75rem;display:flex}.home-chips__row{gap:.45rem;display:flex;overflow-x:auto}.home-chips span{border:1px solid var(--color-border);background:var(--color-bg-surface);font-family:var(--font-mono);font-size:var(--text-micro);color:var(--color-text-secondary);border-radius:999px;flex-shrink:0;padding:.28rem .65rem}.home-hero__actions{flex-wrap:wrap;gap:.75rem;display:flex}.home-hero__note{font-size:var(--text-micro);color:var(--color-text-secondary);margin:.9rem 0 0}.home-stage{justify-self:center;width:100%;max-width:32rem;margin:0;padding:0}.stack-browser{border:var(--rule);background:var(--color-bg-surface);border-radius:12px;overflow:hidden}.stack-browser__bar{border-bottom:var(--rule);background:var(--color-bg-subtle);color:var(--color-text-secondary);align-items:center;gap:.65rem;padding:.65rem .85rem;font-size:.6875rem;display:flex}.stack-browser__dots{gap:.25rem;display:flex}.stack-browser__dots i{background:var(--color-border-strong);border-radius:50%;width:6px;height:6px}.stack-browser__address{flex:1;justify-content:center;align-items:center;gap:.35rem;display:flex}.stack-browser__badge{color:var(--color-link);font-weight:600}.stack-browser__body{grid-template-columns:1fr 1.25fr;align-items:center;gap:.75rem;padding:.55rem .85rem;display:grid}.stack-task{flex-wrap:wrap;align-items:center;gap:.6rem;padding:0;font-size:.75rem;display:flex}.stack-task>svg{color:var(--color-link);flex-shrink:0}.stack-assistant{background:var(--color-bg-muted);border-radius:7px;align-items:center;gap:.6rem;padding:.6rem .65rem;font-size:.75rem;display:flex}.stack-assistant>svg{color:var(--color-link);flex-shrink:0}.stack-assistant__reply{margin-left:auto}.stack-assistant__reply,.stack-link{color:var(--color-text-secondary);font-size:.625rem}.stack-link{justify-content:center;align-items:center;gap:.4rem;padding:.55rem 0;display:flex}.stack-link>svg{color:var(--color-link)}.stack-link>span:first-of-type{color:var(--color-text);font-family:var(--font-mono)}.stack-runtime{border:1px dashed var(--color-border);padding:.65rem}@supports (color:color-mix(in lab,red,red)){.stack-runtime{border:1px dashed color-mix(in srgb,var(--color-border) 75%,transparent)}}.stack-runtime{background:var(--color-bg-subtle);border-radius:12px}.stack-api{border:var(--rule);background:var(--color-bg-surface);border-radius:9px;align-items:center;gap:.65rem;padding:.8rem .85rem;display:flex}.stack-api>svg{color:var(--color-link);flex-shrink:0}.stack-api>div{flex-direction:column;gap:.15rem;display:flex}.stack-api strong{font-size:.8125rem}.stack-api span{font-size:.625rem}.stack-api span,.stack-api>code{font-family:var(--font-mono);color:var(--color-text-secondary)}.stack-api>code{margin-left:auto;font-size:.6875rem}.stack-branches{border-bottom:1px solid var(--color-border-strong);height:.6rem;margin:0 25%;position:relative}.stack-branches:before{content:"";height:100%;left:50%}.stack-branches:before,.stack-branches>span{border-left:1px solid var(--color-border-strong);position:absolute}.stack-branches>span{height:.65rem;top:100%}.stack-branches>span:first-child{left:0}.stack-branches>span:last-child{right:0}.stack-relations{text-align:center;color:var(--color-text-secondary);margin:.45rem 0 .3rem;font-size:.625rem}.stack-relations,.stack-services{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.stack-service{border:var(--rule);background:var(--color-bg-surface);border-radius:9px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.25rem .65rem;padding:.8rem .85rem;display:grid}.stack-service>svg{color:var(--color-text-secondary);grid-row:span 3}.stack-service strong{font-size:.8125rem}.stack-service>span{color:var(--color-text-secondary);font-size:.625rem}.stack-service--ai{border-color:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.stack-service--ai{border-color:color-mix(in srgb,var(--color-link) 35%,var(--color-border))}}.stack-service--ai{background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.stack-service--ai{background:color-mix(in srgb,var(--color-link) 5%,var(--color-bg-surface))}}.stack-service--ai>svg{color:var(--color-link)}.stack-deploy{border:var(--rule);background:var(--color-bg-surface);border-radius:9px;align-items:center;gap:.65rem;margin-top:.75rem;padding:.8rem .85rem;font-size:.6875rem;display:flex}.stack-deploy,.stack-deploy>svg{color:var(--color-text-secondary)}.stack-deploy>svg{flex-shrink:0}.stack-deploy>div{flex-direction:column;gap:.15rem;display:flex}.stack-deploy strong{color:var(--color-text);font-size:.8125rem}.stack-deploy>div>span{font-family:var(--font-mono);font-size:.625rem}.stack-deploy__status{white-space:nowrap;color:var(--color-tip);flex-shrink:0;align-items:center;gap:.3rem;margin-left:auto;display:flex}.stack-deploy__status i{background:currentColor;border-radius:50%;width:5px;height:5px}.runlog{color:#d0d4d9;background:#1f2328;border-radius:12px;overflow:hidden;box-shadow:0 18px 40px -24px #1f23288c}.runlog__bar{font-family:var(--font-mono);font-size:var(--text-micro);color:#9aa3ad;border-bottom:1px solid #3a4048;align-items:center;gap:.5rem;padding:.7rem 1rem;display:flex}.runlog__bar em{color:#6ee7a8;letter-spacing:.06em;text-transform:uppercase;margin-left:auto;font-style:normal}.runlog__dot{background:#6ee7a8;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #6ee7a82e}.runlog__body{padding:1rem 1.1rem 1.15rem}.runlog__row{font-family:var(--font-mono);grid-template-columns:2rem minmax(0,1fr) auto;align-items:baseline;gap:.75rem;padding:.45rem 0;font-size:.8125rem;line-height:1.5;display:grid}.runlog__row+.runlog__row{border-top:1px solid #2c3138}.runlog__ok{color:#6ee7a8;font-weight:600}.runlog__wait{color:#e6c36a}.runlog__row code{font:inherit;color:#f3f4f6}.runlog__row em{color:var(--color-placeholder);font-style:normal}.home-kicker{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary);margin:0 0 .5rem}.home-catalog{padding:2.75rem 0 3rem}.home-catalog .catalog__head{margin-bottom:1.25rem}.home-free{background:var(--color-bg-subtle);border-top:var(--rule);padding:3rem 0 3.5rem}.home-free .catalog__head{margin-bottom:1.25rem}.home-free__lead{font-size:var(--text-small);color:var(--color-text-secondary);margin:0 0 1.5rem}.home-free__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.home-free-card{background:var(--color-bg-surface);border:var(--rule);color:inherit;border-radius:10px;flex-direction:column;gap:.45rem;min-height:9.5rem;padding:1.1rem 1.15rem 1.2rem;text-decoration:none;display:flex}.home-free-card:hover{border-color:var(--color-text)}.home-free-card span{font-family:var(--font-mono);font-size:var(--text-micro);color:var(--color-text-secondary)}.home-free-card h3{margin:0;font-size:1.02rem;font-weight:600;line-height:1.4}.home-free-card p{font-size:var(--text-micro);color:var(--color-text-secondary);margin:auto 0 0}@media (max-width:880px){.home-hero{padding-bottom:2.25rem}.home-hero__grid{grid-template-columns:1fr}.home-stage{padding:0}.home-free__grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.home-chips__row{gap:.35rem}.home-chips span{text-align:center;white-space:nowrap;padding:.28rem .25rem;font-size:clamp(.625rem,2.5vw,.8125rem)}.stack-browser__body{grid-template-columns:1fr;gap:.5rem;padding:.65rem}.stack-api,.stack-deploy{padding:.8rem .65rem}.stack-services{gap:.65rem}.stack-service{gap:.2rem .5rem;padding:.8rem .65rem}.stack-service>svg{grid-row:1}.stack-service>span{grid-column:1/-1}.home-free__grid{grid-template-columns:1fr}}@keyframes home-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.home-hero__copy>*,.home-stage{animation:home-rise .55s both}.home-hero__copy>:nth-child(2){animation-delay:50ms}.home-hero__copy>:nth-child(3){animation-delay:.1s}.home-hero__copy>:nth-child(4){animation-delay:.15s}.home-stage{animation-delay:.12s}@media (prefers-reduced-motion:reduce){.home-hero__copy>*,.home-stage{animation:none}}.catalog{border-top:var(--rule);padding:1.75rem 0 1.25rem}.catalog__head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.catalog__head h2{margin:0;font-size:1.05rem;font-weight:600}.home-catalog .catalog__head h2,.home-free .catalog__head h2{font-family:var(--font-display);font-size:1.5rem}.catalog__head a{color:var(--color-link)}.catalog__head a,.home .home-section-link{font-size:var(--text-small);text-decoration:none}.home .home-section-link{min-height:44px;color:var(--color-text-secondary);align-items:center;gap:6px;display:inline-flex}.home .home-section-link:hover{color:var(--color-link)}.home .home-section-link:focus-visible{outline:2px solid var(--color-link);outline-offset:4px}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}@media (max-width:900px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.card-grid{grid-template-columns:1fr}}.card-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:1100px){.card-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.card-grid--4{grid-template-columns:1fr}}.course-card{border:var(--rule);color:inherit;background:var(--color-bg-surface);border-radius:10px;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.course-card:hover{border-color:var(--color-text)}.course-card__art{aspect-ratio:16/9;background:var(--color-bg-muted);position:relative;overflow:hidden}.course-card__art img{object-fit:cover;width:100%;height:100%;display:block}.course-card__release-badge{border:1px solid var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-text-secondary);white-space:nowrap;pointer-events:none;border-radius:4px;padding:.125rem .375rem;font-size:.6875rem;font-weight:600;line-height:1.5;position:absolute;top:.5rem;left:.5rem}.course-interest{gap:.375rem}.course-interest__count{font-variant-numeric:tabular-nums}.course-interest[aria-pressed=true]{color:var(--color-link);border-color:var(--color-link);background:var(--color-accent-bg)}.course-card__art--1{background:#eef6ff url(/covers/cover-1.png) 50%/cover no-repeat}.course-card__art--2{background:#eef1f4 url(/covers/cover-2.png) 50%/cover no-repeat}.course-card__art--3{background:#eafaf1 url(/covers/cover-3.png) 50%/cover no-repeat}.course-card__art--4{background:#f1f3f6 url(/covers/cover-4.png) 50%/cover no-repeat}.course-card__art--5{background:#f6f0ff url(/covers/cover-5.png) 50%/cover no-repeat}.course-card__art--6{background:#eefaf3 url(/covers/cover-6.png) 50%/cover no-repeat}.course-card__art--vip-soon{background:var(--color-bg-muted);color:var(--color-text);font-family:var(--font-display);letter-spacing:.06em;text-align:center;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;font-size:clamp(1.35rem,4.5vw,1.85rem);font-weight:700;line-height:1.25;display:flex}.course-card__art--vip-soon span{display:block}.course-card__body{flex-direction:column;flex:1;gap:.3rem;padding:.6rem .85rem .65rem;display:flex}.course-card__body h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.9375rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.course-card__body .tag-list li{flex:none}.course-card__meta{font-size:var(--text-micro);color:var(--color-text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem .5rem;margin:auto 0 0;line-height:1.4;display:flex}.course-card__meta>span:first-child{white-space:nowrap}.course-card__price{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-micro);color:var(--color-text);margin-left:auto;font-weight:600}.course-card__price--vip{isolation:isolate;letter-spacing:.06em;color:#e8c872;background:linear-gradient(135deg,#1a1610,#2a2216 48%,#12100c);border:1px solid #8a6d2b;border-radius:3px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffdc8c2e}.course-card__price--free,.course-card__price--vip{font-variant-numeric:normal;padding:.15rem .45rem;font-family:inherit;font-size:.6875rem;font-weight:600;line-height:1.2}.course-card__price--free{letter-spacing:.04em;border:1px solid var(--color-tip);background:var(--color-success-bg);color:var(--color-tip);border-radius:3px}.course-card__price--vip:after{content:"";z-index:-1;background:linear-gradient(105deg,#0000 32%,#ffecb461 48%,#0000 64%);animation:pill-vip-shine 2.8s ease-in-out infinite;position:absolute;inset:0;transform:translate(-130%)}.ol-item{border-bottom:var(--rule);font-size:var(--text-small);grid-template-columns:2.5rem minmax(0,1fr) auto;align-items:baseline;gap:1rem;padding:.7rem 0;display:grid}.ol-item span{font-family:var(--font-mono);font-size:var(--text-micro);color:var(--color-text-secondary)}.section{padding:var(--page-top-space) 0 2.5rem}.section>.display{margin-bottom:1.5rem}.catalog-tools{grid-template-columns:minmax(0,1fr) minmax(11rem,13rem);align-items:center;gap:.75rem 1.25rem;margin-bottom:1.25rem;display:grid}.catalog-search{border:var(--rule);background:var(--color-bg-surface);width:100%;min-height:40px;color:var(--color-text-secondary);border-radius:8px;align-items:center;gap:.5rem;padding:0 .75rem;display:flex}.catalog-search:focus-within{border-color:var(--color-link)}.catalog-search input{min-width:0;color:var(--color-text);font:inherit;font-size:var(--text-small);background:0 0;border:0;outline:none;flex:1}.catalog-search input::placeholder{color:var(--color-placeholder)}.catalog-tags{flex-wrap:nowrap;align-items:center;gap:.45rem;min-width:0;display:flex;overflow:hidden}.catalog-tags::-webkit-scrollbar{display:none}@media (max-width:640px){.catalog-tools{grid-template-columns:1fr}.catalog-search{order:-1}}.catalog-tags button,.catalog-tags--measure span{border:var(--rule);background:var(--color-bg-surface);min-height:32px;color:var(--color-text-secondary);font:inherit;font-size:var(--text-micro);cursor:pointer;border-radius:999px;flex:none;padding:0 .7rem}.catalog-tags button:hover{color:var(--color-text);border-color:var(--color-border-strong)}.catalog-tags button.is-on{color:var(--color-link);border-color:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.catalog-tags button.is-on{border-color:color-mix(in srgb,var(--color-link) 45%,var(--color-border))}}.catalog-tags button.is-on{background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.catalog-tags button.is-on{background:color-mix(in srgb,var(--color-link) 8%,var(--color-bg-surface))}}.tag-list{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.tag-list li{background:var(--color-bg-subtle);color:var(--color-text-secondary);font-size:var(--text-micro);border-radius:4px;padding:.1rem .4rem}.section h2{font-size:var(--text-h2);margin:0 0 1.25rem;font-weight:600}.split{border-top:var(--rule);grid-template-columns:1fr 1fr;gap:0;display:grid}.split article{padding:1.5rem 1.5rem 1.5rem 0}.split article+article{border-left:var(--rule);padding-left:1.5rem}@media (max-width:720px){.split{grid-template-columns:1fr}.split article+article{border-left:0;border-top:var(--rule);padding-left:0}}.split h3{margin:0 0 .5rem;font-size:1rem}.split li,.split p{color:var(--color-text-secondary);font-size:var(--text-small)}.split ul{margin:0;padding-left:1.1rem}.split li+li{margin-top:.35rem}.detail{padding:2.75rem 0 3rem}.crumb{font-size:var(--text-small);margin:0 0 1.5rem}.crumb,.crumb a{color:var(--color-text-secondary)}.crumb a{text-decoration:none}.crumb a:hover{color:var(--color-link)}.detail__head{max-width:42rem}.detail__meta{gap:.5rem .75rem;margin:1.25rem 0 1.75rem}.cta-row,.detail__meta{flex-wrap:wrap;display:flex}.cta-row{align-items:center;gap:.75rem 1rem;margin:1.5rem 0 2.5rem}.price-lg{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.5rem}.outline{margin-top:1rem}.chapter{border-top:var(--rule);padding:1.15rem 0 .25rem}.chapter h3{margin:0 0 .65rem;font-size:1rem}.lesson-row{font-size:var(--text-small);justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 0;display:flex}.lesson-row a{color:var(--color-link);text-decoration:none}.lock{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-micro)}.lock--open{color:var(--color-link)}.outline-list{border-top:var(--rule);max-width:42rem;margin:0;padding:0;list-style:none}.outline-list>li{border-bottom:var(--rule)}.outline-list__row{min-height:3.15rem;color:inherit;grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:.15rem 1rem;padding:.7rem .15rem;text-decoration:none;display:grid}.outline-list a.outline-list__row:hover{background:var(--color-bg-subtle)}.outline-list a.outline-list__row:hover .outline-list__title{color:var(--color-link)}.outline-list__n{font-family:var(--font-mono);font-size:var(--text-micro);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.outline-list__title{font-size:.95rem;line-height:1.45}.outline-list__meta{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-micro);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:.65rem;display:inline-flex}@media (max-width:640px){.outline-list__row{grid-template-columns:2rem minmax(0,1fr);gap:.2rem .75rem}.outline-list__meta{white-space:normal;grid-column:2}}.outline-list li.is-locked .outline-list__n,.outline-list li.is-locked .outline-list__title{color:var(--color-text-secondary)}.cd-hero{padding:var(--page-top-space) 0 0;background:linear-gradient(180deg,var(--color-hero-start) 0,var(--color-bg-page) 72%)}.cd-hero .crumb{margin-bottom:.85rem}.cd-hero .display{text-wrap:unset;overflow-wrap:break-word;margin:0;font-size:clamp(1.35rem,3vw,2.2rem);line-height:1.25}.cd-hero__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem 1.5rem;margin-bottom:1.15rem;display:flex}.cd-hero__title{width:100%;min-width:0;max-width:var(--measure-content);flex:auto}.cd-hero__actions{flex-direction:column;flex-shrink:0;align-items:flex-start;gap:.45rem;display:flex}.cd-hero__cta{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.65rem;display:flex}.cd-hero__source-tip{max-width:22rem;font-size:.875rem;line-height:1.45}.cd-facts,.cd-hero__source-tip{color:var(--color-text-secondary);margin:0}.cd-facts{font-size:var(--text-small);flex-wrap:wrap;gap:.55rem 1.35rem;padding:0;list-style:none;display:flex}.cd-facts li{align-items:center;gap:.4rem;display:inline-flex}.cd-facts svg{color:var(--color-link);flex:none}.cd-facts__vip{isolation:isolate;letter-spacing:.06em;color:#e8c872;background:linear-gradient(135deg,#1a1610,#2a2216 48%,#12100c);border:1px solid #8a6d2b;border-radius:3px;padding:.15rem .45rem;font-size:.6875rem;font-weight:600;line-height:1.2;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffdc8c2e}.cd-facts__vip:after{content:"";z-index:-1;background:linear-gradient(105deg,#0000 32%,#ffecb461 48%,#0000 64%);animation:pill-vip-shine 2.8s ease-in-out infinite;position:absolute;inset:0;transform:translate(-130%)}@media (prefers-reduced-motion:reduce){.cd-facts__vip:after,.course-card__price--vip:after{animation:none}}.cd-tabs{top:var(--topbar-h);z-index:30;background:var(--color-bg-surface);position:sticky}.cd-tabs__inner{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:1.75rem;display:flex;overflow-x:auto}.cd-tabs__inner::-webkit-scrollbar{display:none}.cd-tabs button{appearance:none;font:inherit;font-size:var(--text-small);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:1.15rem 0 .55rem;font-weight:600}.cd-tabs button.is-on,.cd-tabs button:hover{color:var(--color-text)}.cd-tabs button.is-on{border-bottom-color:var(--color-link)}.cd-layout{padding:1.5rem 0 3.5rem}.cd-block{padding:0 0 1.75rem}.cd-block+.cd-block{padding-top:.15rem}.cd-block h2{margin:0 0 .65rem;font-size:1.15rem;font-weight:600}.cd-block li,.cd-block p{color:var(--color-text-secondary);max-width:40rem;margin:0;font-size:.95rem;line-height:1.7}.cd-block ul{margin:0;padding-left:1.15rem}.cd-block li+li{margin-top:.4rem}.cd-panel .chapter{border-top:0;padding:0 0 1.35rem}.cd-panel .chapter+.chapter{padding-top:.25rem}.cd-career,.cd-panel .outline-list{max-width:42rem}.cd-career{border:1px solid var(--color-gold-border);background:var(--color-gold-surface);border-radius:12px;margin-top:2rem;padding:1.25rem 1.35rem}.cd-career__head{align-items:center;gap:.55rem;margin-bottom:.75rem;display:flex}.cd-career__head svg{color:var(--color-gold-icon);flex:none}.cd-career__head h2{font-family:var(--font-sans);margin:0;font-size:1.05rem;font-weight:650}.cd-career__head .vip-exclusive{margin-left:.15rem}.cd-career__list{margin:0 0 1rem;padding:0;list-style:none}.cd-career__list li{border-bottom:1px solid var(--color-gold-border);justify-content:space-between;gap:1rem;padding:.55rem 0;display:flex}@supports (color:color-mix(in lab,red,red)){.cd-career__list li{border-bottom:1px solid color-mix(in srgb,var(--color-gold-border) 60%,transparent)}}.cd-career__list li{font-size:var(--text-small)}.cd-career__list li span:last-child{color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.cd-career .btn{min-width:9rem}.cd-side{top:calc(var(--topbar-h) + 3.25rem);position:sticky}.cd-card{border:var(--rule);background:var(--color-bg-surface);border-radius:12px;flex-direction:column;gap:.75rem;padding:1.15rem 1.2rem 1.25rem;display:flex}.cd-card__kicker{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);margin:0}.cd-card strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.5rem}.cd-card p{font-size:var(--text-small);color:var(--color-text-secondary);margin:0}.cd-card .btn{width:100%}@media (max-width:880px){.cd-hero__head{flex-direction:column;align-items:stretch}}.auth{padding:var(--page-top-space) 1rem 2.5rem;background:var(--color-hero-start);flex:1 0 auto;justify-content:center;align-items:center;display:flex}.auth__card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:12px;width:min(24.5rem,100%);padding:1.7rem 1.7rem 1.55rem;box-shadow:0 12px 32px -20px #1f232859}.auth__card h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 1.2rem;font-size:1.85rem}.auth-form{margin:0}.field{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.field label{font-size:var(--text-small);font-weight:600}.field input{border:1px solid var(--color-border-strong);background:var(--color-bg-surface);border-radius:8px;width:100%;min-height:44px;padding:0 .8rem}.field input::placeholder{color:var(--color-placeholder)}.field input:focus{border-color:var(--color-link);box-shadow:0 0 0 3px var(--color-link);outline:none}@supports (color:color-mix(in lab,red,red)){.field input:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-link) 18%,transparent)}}.field .hint{font-size:var(--text-micro);color:var(--color-text-secondary);line-height:1.45}.field .hint--ok{color:var(--color-tip)}.field .hint--err{color:var(--color-caution)}.field-row{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.5rem;display:grid}.field-row .btn{white-space:nowrap;min-width:7.25rem}.auth .btn--primary{width:100%;margin-top:.35rem}@media (max-width:560px){.field-row{grid-template-columns:1fr}}.me{padding:var(--page-top-space) 0 2.5rem}.me-learning{padding-bottom:3rem}.me-learning>section+section{margin-top:2.5rem}.me-learning-section h2{font-family:var(--font-sans);font-size:var(--text-h3);margin:0 0 1rem;font-weight:600}#source{scroll-margin-top:calc(var(--topbar-h) + 1rem)}.home-recent{border-bottom:var(--rule);justify-content:space-between;align-items:center;gap:1.5rem;padding-block:1.5rem;display:flex}.home-recent>div{min-width:0}.home-recent h2{color:var(--color-text-secondary);font-size:var(--text-small);margin:0 0 .5rem;font-weight:500}.home-recent h3{font-family:var(--font-sans);font-size:var(--text-h4);overflow-wrap:anywhere;margin:0}.home-recent p{color:var(--color-text-secondary);font-size:var(--text-small);overflow-wrap:anywhere;margin:.4rem 0 0}.home-recent__actions{flex-shrink:0;align-items:center;gap:1rem;display:flex}@media (max-width:640px){.home-recent{flex-direction:column;align-items:stretch;gap:1rem}.home-recent__actions{flex-wrap:wrap}}.course-row__body>.course-row__last{font-size:var(--text-small);overflow-wrap:anywhere;margin:.6rem 0 0;line-height:1.6}.me-foundations{margin-top:2rem}.me-foundations h2{font-family:var(--font-sans);font-size:var(--text-h3);margin:0 0 1rem;font-weight:600}.me-foundations ul{margin:0;padding:0;list-style:none}.me-foundations li{border-top:var(--rule);justify-content:space-between;align-items:center;gap:1.5rem;padding:1.25rem 1rem;transition:background .15s;display:flex}.me-foundations li:last-child{border-bottom:var(--rule)}.me-foundations li>div{min-width:0}.me-foundations h3{font-size:var(--text-h4);overflow-wrap:anywhere;margin:0;font-weight:600;line-height:1.5}.me-foundations p{color:var(--color-text-secondary);font-size:var(--text-small);overflow-wrap:anywhere;margin:.4rem 0 0;line-height:1.6}.me-foundations .btn{flex-shrink:0;min-width:104px}.me-foundations .pill{margin-top:.5rem}@media (max-width:640px){.me-foundations li{flex-direction:column;align-items:flex-start;gap:.85rem;padding-inline:.75rem}}.me-head{justify-content:space-between;align-items:center;gap:1rem;margin:0 0 1.25rem;display:flex}.me-head h1{font-family:var(--font-sans);margin:0;font-size:1.75rem;font-weight:600;line-height:1.35}.me-head__vip{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem .85rem;display:flex}.me-learning .me-head{flex-wrap:wrap;margin-bottom:2rem}.me-head__tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem 1.5rem;display:flex}.me-head__tools .me-qr>.btn{color:var(--color-text-secondary);border-color:#0000;padding-inline:.25rem}.me-head__tools .me-qr>.btn:hover{color:var(--color-link);background:var(--color-bg-subtle)}.me-head__status{font-size:var(--text-small);color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:.45rem .6rem;margin:0;display:flex}.me-head__status .pill{margin:0}.me-head__status a{color:var(--color-link)}.me-qr{position:relative}.me-qr__pop{z-index:30;border:1px solid var(--color-border-strong);background:var(--color-bg-surface);border-radius:12px;flex-direction:column;align-items:center;gap:.55rem;min-width:11.5rem;padding:.9rem .95rem .85rem;display:flex;position:absolute;top:calc(100% + .55rem);right:0;box-shadow:0 12px 28px #14181e1f}.me-qr__pop:after{content:"";border:7px solid #0000;border-bottom:7px solid var(--color-bg-surface);filter:drop-shadow(0 -1px 0 var(--color-border-strong));position:absolute;bottom:100%;right:1.15rem}.me-qr__scrim{display:none}@media (max-height:640px),(max-width:720px){.me-qr__scrim{z-index:55;cursor:pointer;background:#14181e47;border:0;margin:0;padding:0;display:block;position:fixed;inset:0}.me-qr__pop{z-index:60;width:min(18rem,100vw - 2rem);min-width:0;max-height:calc(100dvh - 2rem);position:fixed;inset:50% auto auto 50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 18px 40px #14181e2e}.me-qr__pop:after{display:none}}.me-qr__title{font-size:var(--text-small);margin:0;font-weight:600}.me-qr__pop figure{flex-direction:column;align-items:center;gap:.35rem;margin:0;display:flex}.me-qr__pop img{object-fit:cover;border:1px solid var(--color-border);border-radius:8px;width:160px;height:160px;display:block}.me-qr__empty,.me-qr__pop figcaption{font-size:var(--text-micro);color:var(--color-text-secondary);margin:0}.me-list__title{font-family:var(--font-display);font-size:var(--text-h4);align-items:baseline;gap:.5rem;margin:0 0 .85rem;display:flex}.me-list__title span{font-family:var(--font-mono);font-size:var(--text-micro);color:var(--color-text-secondary);font-weight:500}.me-courses{border-top:var(--rule);margin:0;padding:0;list-style:none}.me-courses>li{border-bottom:var(--rule)}.course-row{border-radius:8px;grid-template-columns:144px minmax(0,1fr) auto;align-items:center;gap:1rem 1.25rem;padding:1.25rem 1rem;transition:background .15s;display:grid}.course-row--recent{background:var(--color-accent-bg)}.course-row__art,.course-row__cover{border-radius:8px;width:128px;height:72px;overflow:hidden}.course-row__cover{aspect-ratio:16/9;background:var(--color-bg-muted);border-radius:8px;width:144px;height:auto;overflow:hidden}.course-row__cover img{object-fit:cover;width:100%;height:100%;display:block}.course-cover--empty{color:var(--color-link);background:var(--color-accent-bg);border:1px solid var(--color-link);flex-direction:column;justify-content:center;align-items:center;gap:.4rem;padding:.65rem;font-size:12px;display:flex}@supports (color:color-mix(in lab,red,red)){.course-cover--empty{border:1px solid color-mix(in srgb,var(--color-link) 18%,var(--color-border))}}.course-cover--empty svg{flex-shrink:0}.course-cover__title{-webkit-line-clamp:2;font-size:var(--text-micro);text-align:center;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.course-row__art--1{background:#eef6ff url(/covers/cover-1.png) 50%/cover no-repeat}.course-row__art--2{background:#eef1f4 url(/covers/cover-2.png) 50%/cover no-repeat}.course-row__art--3{background:#eafaf1 url(/covers/cover-3.png) 50%/cover no-repeat}.course-row__art--4{background:#f1f3f6 url(/covers/cover-4.png) 50%/cover no-repeat}.course-row__art--5{background:#f6f0ff url(/covers/cover-5.png) 50%/cover no-repeat}.course-row__art--6{background:#eefaf3 url(/covers/cover-6.png) 50%/cover no-repeat}.course-row__body{min-width:0}.course-row__title{flex-wrap:wrap;align-items:center;gap:.45rem .55rem;margin:0 0 .3rem;display:flex}.course-row__title h3{font-size:var(--text-h4);overflow-wrap:anywhere;margin:0;font-weight:600;line-height:1.5}.course-row__title .pill{min-height:24px;font-size:var(--text-micro);border-radius:4px;align-items:center;margin:0;padding:.1rem .5rem;font-weight:500;line-height:1.5;display:inline-flex}.course-row__title .pill--vip{background:var(--color-gold-bg);color:var(--color-gold);border:1px solid var(--color-gold-border)}.course-row__body>p{font-size:var(--text-small);color:var(--color-text-secondary);margin:0 0 .55rem}.course-row__progress span{font-variant-numeric:tabular-nums}.course-row__bar{background:var(--color-border);border-radius:999px;max-width:16rem;height:4px;overflow:hidden}.course-row__bar>span{border-radius:inherit;background:var(--color-link);height:100%;display:block}.course-row__actions{flex-flow:column wrap;justify-content:flex-end;align-items:stretch;gap:.5rem;display:flex}.course-row__actions .btn{min-width:104px}.course-row__actions .btn:not(.course-row__learn){min-height:36px;color:var(--color-text-secondary);border-color:#0000;font-weight:500}.course-row__actions .btn:not(.course-row__learn):hover{color:var(--color-link)}@media (hover:hover) and (pointer:fine){.course-row:not(.course-row--recent):hover,.me-foundations li:hover{background:var(--color-bg-subtle)}}.me-empty{font-size:var(--text-small);color:var(--color-text-secondary);border-top:var(--rule);margin:0;padding:2rem 0}.me-empty a{color:var(--color-link);margin-left:.5rem}@media (max-width:720px){.me-head{flex-direction:column;align-items:flex-start}.me-head__vip{justify-content:space-between;width:100%}.me-head__tools{justify-content:flex-start;gap:.75rem 1rem;width:100%}.me-head__tools .me-head__vip{flex:220px;gap:.5rem;width:auto}.course-row{grid-template-columns:96px minmax(0,1fr);align-items:start;gap:1rem;padding-inline:.75rem}.course-row__art,.course-row__cover{aspect-ratio:16/9;width:96px;height:auto}.course-cover--empty{gap:.25rem;padding:.4rem}.course-cover--empty svg{width:18px;height:18px}.course-cover__title{-webkit-line-clamp:1}.course-row__actions{flex-direction:row;grid-column:1/-1;justify-content:flex-start}.course-row__actions .btn:not(.course-row__learn){min-height:44px}}@media (prefers-reduced-motion:reduce){.me-learning .btn,.me-learning .course-row,.me-learning .me-foundations li{transition:none}.me-learning .btn:active{transform:none}}.vip-paid{max-width:28rem;margin:0 0 3rem}.vip-paid h1{font-family:var(--font-display);font-size:var(--text-h2);margin:0 0 .75rem}.vip-paid__meta{font-size:var(--text-small);color:var(--color-text-secondary);margin:0 0 .75rem;line-height:1.7}.vip-paid__actions{flex-wrap:wrap;gap:.75rem;margin:1.25rem 0 0;display:flex}.vip-order__head{justify-content:space-between;align-items:center;gap:1rem;margin:0 0 .25rem;display:flex}.vip-order__head h1{font-family:var(--font-display);font-size:var(--text-h2);margin:0}.vip-order{border:1px solid var(--color-border-strong);background:var(--color-bg-subtle);border-radius:12px;grid-template-columns:minmax(0,19rem) minmax(0,1fr);gap:1.75rem 2.5rem;margin:1.25rem 0 2rem;padding:1.75rem;display:grid}.vip-order__buy{flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.vip-order__buy .pill{margin:0 0 .35rem}.vip-order__buy .btn{justify-content:center;align-self:stretch}.vip-order__times{width:100%;font-size:var(--text-small);margin:.85rem 0 0;padding:0}.vip-order__times>div{border-bottom:var(--rule);grid-template-columns:6.5rem 1fr;gap:.5rem;padding:.45rem 0;display:grid}.vip-order__times>div:last-child{border-bottom:0}.vip-order__times dt{color:var(--color-text-secondary);margin:0;font-weight:400}.vip-order__times dd{margin:0}.vip-order__side{flex-direction:column;gap:1.25rem;display:flex}.vip-order__block h2{font-family:var(--font-display);font-size:var(--text-h4);margin:0 0 .55rem}.vip-order__block ul{font-size:var(--text-small);color:var(--color-text-secondary);margin:0;padding-left:1.15rem;line-height:1.7;list-style:outside}.vip-order__block li{margin:.2rem 0}.vip-order__block li::marker{color:var(--color-text-secondary)}.vip-order__note{font-size:var(--text-small);color:var(--color-text-secondary);margin:.75rem 0}.vip-order__note a{color:var(--color-link)}.vip-order__pay{flex-direction:column;align-items:stretch;gap:.75rem;width:100%;margin:1rem 0 0;display:flex}.vip-order__err{font-size:var(--text-small);color:var(--color-caution);margin:0}.vip-order__hint{font-size:var(--text-micro);color:var(--color-text-secondary);margin:.65rem 0 0}.vip-order__qr{flex-direction:column;align-items:flex-start;gap:.45rem;margin:1rem 0 0;display:flex}.vip-order__qr img{border:1px solid var(--color-border);border-radius:8px;display:block}.vip-order__qr figcaption{font-size:var(--text-micro);color:var(--color-text-secondary)}@media (max-width:900px){.vip-order{grid-template-columns:1fr}}@media (max-width:640px){.vip-order{padding:1.25rem}.vip-order__times>div{grid-template-columns:1fr;gap:.15rem}}.pill--free{background:var(--color-success-bg);color:var(--color-tip)}.pill--deal{border:1px solid var(--color-gold-border);background:var(--color-gold-bg);color:var(--color-warning);font-weight:600}.pill--vip{isolation:isolate;color:#e8c872;letter-spacing:.08em;background:linear-gradient(135deg,#1a1610,#2a2216 48%,#12100c);border:1px solid #8a6d2b;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffdc8c2e}.pill--vip:after{content:"";z-index:-1;background:linear-gradient(105deg,#0000 32%,#ffecb461 48%,#0000 64%);animation:pill-vip-shine 2.8s ease-in-out infinite;position:absolute;inset:0;transform:translate(-130%)}@keyframes pill-vip-shine{0%,55%{transform:translate(-130%)}to{transform:translate(130%)}}@media (prefers-reduced-motion:reduce){.pill--vip:after{animation:none}}.bili-bar{max-width:var(--measure-content);border:var(--rule);background:var(--color-bg-subtle);border-radius:8px;align-items:center;margin:0 auto 1.5rem;padding:.85rem 1rem;display:flex}.bili-bar p{font-size:var(--text-small);color:var(--color-text-secondary);margin:0}.bili-bar b{color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-micro);font-weight:600}.learn-page{flex-direction:column;min-height:100dvh;display:flex}.learn-shell{flex:auto;grid-template-columns:260px minmax(0,1fr) 280px;align-items:start;display:grid}.learn-page.is-video-pane .learn-shell{grid-template-columns:260px minmax(0,1fr)}.learn-scrim{display:none}@media (max-width:1100px){.learn-page.is-video-pane .learn-shell,.learn-shell{grid-template-columns:minmax(0,1fr)}.learn-aside,.learn-toc{display:none}.learn-main{border:0}.learn-aside.is-open,.learn-toc.is-open{top:calc(var(--topbar-h) + 3rem);background:var(--color-bg-surface);z-index:40;border:var(--rule);width:min(320px,88vw);display:block;position:fixed;bottom:0;overflow:auto;box-shadow:0 12px 28px #14181e1f}.learn-aside.is-open{left:0}.learn-toc.is-open{right:0}.drawer-tools{display:flex!important}.learn-scrim{z-index:38;cursor:pointer;background:#14181e47;border:0;margin:0;padding:0;display:block;position:fixed;inset:0}}.drawer-tools{padding:var(--page-top-space) 1rem 0;gap:.5rem;display:none}.learn-aside,.learn-toc{top:var(--topbar-h);max-height:calc(100dvh - var(--topbar-h));padding:var(--page-top-space) 1rem .75rem;scrollbar-width:thin;scrollbar-color:transparent transparent;align-self:start;position:sticky;overflow:auto}.learn-toc--spacer{visibility:hidden;pointer-events:none;overflow:hidden}.learn-pane-tabs{border:var(--rule);background:var(--color-bg-subtle);border-radius:8px;grid-template-columns:1fr 1fr;gap:.25rem;margin:0 0 .85rem;padding:.2rem;display:grid}.learn-pane-tabs button{appearance:none;color:var(--color-text-secondary);font:inherit;font-size:var(--text-small);cursor:pointer;background:0 0;border:0;border-radius:6px;margin:0;padding:.45rem .5rem;font-weight:600}.learn-pane-tabs button.is-active{background:var(--color-bg-surface);color:var(--color-text);box-shadow:0 1px 2px #14181e14}.learn-pane-tabs button:hover:not(.is-active){color:var(--color-text)}.learn-pane-tabs--mobile{display:none}@media (max-width:1100px){.learn-pane-tabs--mobile{flex:auto;min-width:0;margin:0;display:grid}.learn-aside .learn-pane-tabs{display:none}}.learn-aside:hover,.learn-toc:hover{scrollbar-color:var(--color-border-strong) transparent}.learn-aside::-webkit-scrollbar,.learn-toc::-webkit-scrollbar{width:6px}.learn-aside::-webkit-scrollbar-track,.learn-toc::-webkit-scrollbar-track{background:0 0}.learn-aside::-webkit-scrollbar-thumb,.learn-toc::-webkit-scrollbar-thumb{background:0 0;border-radius:999px}.learn-aside:hover::-webkit-scrollbar-thumb,.learn-toc:hover::-webkit-scrollbar-thumb{background:var(--color-border-strong)}.learn-main{min-width:0;padding:var(--page-top-space) 1.5rem 2rem;border-left:var(--rule);border-right:var(--rule)}.learn-page.is-video-pane .learn-main{border-right:0}@media (max-width:1100px){.learn-main{padding-top:.75rem}}@media (max-width:640px){.learn-main{padding:.75rem var(--gutter-mobile) 2rem}.drawer-tools{padding-inline:var(--gutter-mobile)}.lesson-kicker{flex-wrap:wrap;align-items:flex-start}.lesson-kicker__actions{justify-content:flex-end;width:100%}.lesson-kicker--nav{margin-top:2rem}}.pane-label{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);margin:0 0 .85rem}.ol-chap{margin:0 0 1rem;padding:0;list-style:none}.ol-chap>li{margin:0 0 .35rem}.ol-chap strong{font-size:var(--text-micro);color:var(--color-text-secondary);margin:.75rem 0 .35rem;font-weight:600;display:block}.ol-chap .ol-pending,.ol-chap a{color:var(--color-text);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:.4rem;padding:.35rem .5rem;font-size:.8125rem;line-height:1.45;text-decoration:none;display:grid}.ol-chap a:hover{background:var(--color-bg-subtle)}.ol-pending__status{color:var(--color-text-secondary);font-size:var(--text-micro);white-space:nowrap;font-weight:400}.ol-chap a.is-current{background:var(--color-bg-muted);font-weight:600}.ol-chap a.is-preview:after{content:"可试看";font-family:var(--font-mono);color:var(--color-tip);font-size:10px;font-weight:500;line-height:1.17813rem}.learn-main .prose{max-width:52rem;margin-inline:auto}.learn-main .prose a{overflow-wrap:anywhere}.lesson-kicker{font-size:var(--text-small);color:var(--color-text-secondary);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;display:flex}.lesson-kicker__actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.lesson-kicker--nav{margin-top:2rem}.lesson-kicker:not(.lesson-kicker--nav)>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-secondary);font-size:var(--text-small);letter-spacing:.02em;font-weight:600;line-height:1.4;overflow:hidden}.lesson-kicker--nav>span:first-child{min-width:0}.progress-bar{z-index:60;background:var(--color-link);width:0;height:2px;position:fixed;top:0;left:0}.toc-list{margin:0;padding:0;list-style:none}.toc-list a{color:var(--color-text-secondary);border-left:2px solid #0000;border-radius:6px;margin-left:-.15rem;padding:.28rem .5rem .28rem .65rem;font-size:.8125rem;text-decoration:none;display:block}.toc-list a:hover{color:var(--color-text);background:var(--color-bg-subtle)}.toc-list a.is-on{color:var(--color-text);border-left-color:var(--color-link);background:var(--color-accent-bg);font-weight:600}.toc-list a[data-level="2"]{padding-left:1.15rem}.toc-list a[data-level="3"]{padding-left:1.65rem}.prose{max-width:var(--measure-content);width:100%;min-width:0}.prose>*{margin-block:0}.prose>*+*{margin-top:var(--space-paragraph)}.prose>h1{margin:0;font-family:inherit;font-size:clamp(1.875rem,1.25rem + 2.4vw,2.25rem);font-weight:600;line-height:1.35}.prose>h1+.lesson-meta{margin-top:.55rem}.prose>.lesson-meta+*{margin-top:2rem}.lesson-video{background:0 0;width:100%;margin:0;overflow:hidden}.lesson-video__frame{aspect-ratio:16/9;isolation:isolate;background-color:#0f1115;background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:2px;width:100%;margin-inline:0;position:relative;overflow:hidden}.lesson-video__cover{z-index:0;object-fit:cover;object-position:center;pointer-events:none;width:100%;height:100%;transition:opacity .15s;display:block;position:absolute;inset:0}.lesson-video__frame.is-playing .lesson-video__cover{opacity:0;visibility:hidden;pointer-events:none}.lesson-video__player{object-fit:cover;background:0 0;width:100%;height:100%;display:block}.lesson-video__host{z-index:1;background:0 0;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.lesson-video__host .tcp-skin,.lesson-video__host .video-js{background:0 0!important;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;margin:0!important;padding:0!important;position:absolute!important;inset:0!important;overflow:hidden!important}.lesson-video__host .video-js.vjs-16-9,.lesson-video__host .video-js.vjs-4-3,.lesson-video__host .video-js.vjs-fluid{padding-top:0!important}.lesson-video__host .lesson-video__player,.lesson-video__host .video-js .vjs-tech,.lesson-video__host .video-js video{z-index:0!important;object-fit:cover!important;object-position:center!important;background:0 0!important;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;position:absolute!important;top:0!important;left:0!important}.lesson-video__host .vjs-poster{display:none!important}.lesson-video__host .vjs-big-play-button,.lesson-video__host .vjs-control-bar,.lesson-video__host .vjs-error-display,.lesson-video__host .vjs-loading-spinner,.lesson-video__host .vjs-modal-dialog,.lesson-video__host .vjs-text-track-display{z-index:2!important}.lesson-video__host .vjs-big-play-button{display:none!important}.lesson-video__host .vjs-control-bar{visibility:visible!important;opacity:1!important;pointer-events:auto!important;display:flex!important}.lesson-video__resume{z-index:4;color:#fff;font-size:var(--text-small);pointer-events:none;background:#0f1115c7;border-radius:6px;margin:0;padding:.4rem .75rem;line-height:1.3;position:absolute;bottom:3.5rem;left:50%;transform:translate(-50%)}.lesson-video__watermark{z-index:3;pointer-events:none;-webkit-user-select:none;user-select:none;color:#ffffffb8;letter-spacing:.02em;text-shadow:0 1px 2px #0000008c;opacity:0;flex-direction:column;align-items:stretch;gap:.1rem;width:max-content;margin:0;padding:0;font-size:.8125rem;font-weight:500;line-height:1.35;transition:opacity .2s;display:flex;position:absolute;top:.75rem;right:.85rem}.lesson-video__frame.is-ready .lesson-video__watermark{opacity:1}.lesson-video__watermark span{display:block}.lesson-video__watermark span:first-child{letter-spacing:.04em;text-align:justify;text-align-last:justify;width:100%;font-size:1.125rem;font-weight:600}.lesson-video__watermark span:last-child{white-space:nowrap}.lesson-video__error{font-size:var(--text-small);color:#fff;background:#3d1f24;margin:0;padding:.75rem 1rem}.lesson-video-pane{max-width:var(--measure-content);margin-inline:auto}.learn-page.is-video-pane .lesson-video-pane{width:80%;max-width:none;margin-inline:auto}.lesson-video-pane__title{margin:0;font-size:1.75rem;font-weight:700;line-height:1.25}.lesson-video-pane>.lesson-meta{margin-top:.45rem;margin-bottom:1.75rem}.lesson-video-pane__empty{border:var(--rule);background:var(--color-bg-subtle);min-height:12rem;border-radius:8px;justify-content:center;padding:1.5rem}.lesson-meta,.lesson-video-pane__empty{color:var(--color-text-secondary);font-size:var(--text-small);align-items:center;margin:0;display:flex}.lesson-meta{flex-wrap:wrap;gap:.35rem 0;line-height:1.4}.lesson-meta span{white-space:nowrap}.lesson-meta span+span:before{content:"•";color:var(--color-border-strong);margin:0 .65rem}.prose-body>*+*{margin-top:var(--space-paragraph)}.prose-body :where(h1,h2,h3,h4){font-family:inherit;font-weight:600;line-height:var(--leading-header);scroll-margin-top:calc(var(--topbar-h) + 2rem);margin:0}.prose-body h1{font-size:1.75rem}.prose-body h2{font-size:1.5rem}.prose-body h3{font-size:1.25rem}.prose-body hr{border:0;border-top:var(--rule);margin-block:2rem}.prose-body h4{font-size:1.125rem}.prose-body>h1+*{margin-top:1rem}.prose-body>h2+*{margin-top:.75rem}.prose-body>h3+*,.prose-body>h4+*{margin-top:.5rem}.prose-body>*+h1{margin-top:2.75rem}.prose-body>*+h2{margin-top:2.5rem}.prose-body>*+h3{margin-top:2rem}.prose-body>*+h4{margin-top:1.5rem}.prose p{letter-spacing:.003em}.prose strong{font-weight:600}.prose a:not(.btn){color:var(--color-link);border-bottom:1px solid var(--color-link);text-decoration:none}@supports (color:color-mix(in lab,red,red)){.prose a:not(.btn){border-bottom:1px solid color-mix(in srgb,var(--color-link) 35%,transparent)}}.diagram{margin-block:var(--space-block);border:var(--rule);border-radius:var(--code-radius);background:var(--color-bg-subtle);padding:.85rem .65rem;overflow-x:auto}.diagram.is-failed{display:none}.diagram .mermaid{font:inherit;white-space:pre-wrap;background:0 0;border:0;justify-content:center;margin:0;padding:0;display:flex}.diagram .mermaid:not(:has(svg)){color:#0000;min-height:5rem;max-height:5rem;overflow:hidden}.diagram .mermaid svg,.prose-body img{max-width:100%;height:auto}.prose-body img{margin-block:var(--space-block);cursor:zoom-in;display:block}.prose ul{margin:0;padding-left:1.35rem;list-style:outside}.prose ol{margin:0;padding-left:1.5rem;list-style:decimal}.prose ul ul{list-style:circle}.prose ul ul ul{list-style:square}.prose li+li{margin-top:.45rem}.prose li::marker{color:var(--color-text-secondary)}.prose-body>*+:is(ul,ol){margin-top:1.5rem}.prose blockquote{margin-block:var(--space-block);border-left:3px solid var(--color-note);border-radius:0 var(--code-radius) var(--code-radius) 0;background:var(--color-note);padding:1rem 1.25rem}@supports (color:color-mix(in lab,red,red)){.prose blockquote{background:color-mix(in srgb,var(--color-note) 3%,var(--color-bg-surface))}}.prose blockquote{color:var(--color-text)}.prose blockquote>*+*{margin-top:var(--space-paragraph)}.prose blockquote strong{color:var(--color-text)}.prose table{width:100%;margin-block:var(--space-block);border-collapse:collapse;font-size:var(--text-small);line-height:1.5}.prose td,.prose th{border:1px solid var(--color-border);text-align:left;vertical-align:top;word-break:break-word;padding:.55rem .75rem}.prose th{color:var(--color-text);font-weight:600}.prose tbody tr:nth-child(2n) td,.prose th{background:var(--color-bg-subtle)}@supports (color:color-mix(in lab,red,red)){.prose tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--color-bg-subtle) 55%,transparent)}}.prose code{font-family:var(--font-mono);background:var(--color-inline-code);border-radius:4px;padding:.125rem .25rem;font-size:.9em}.codeblock{--code-surface:var(--color-code-bg);--code-border:var(--color-code-border);min-width:0;max-width:100%;margin-block:var(--space-block);border:1px solid var(--code-border);border-radius:var(--code-radius);background:var(--code-surface);position:relative;overflow:hidden}.codeblock__bar{border-bottom:1px solid var(--code-border);background:var(--color-code-bar);justify-content:space-between;align-items:center;gap:.5rem;min-height:2.5rem;padding:0 .5rem 0 1rem;display:flex}.codeblock__lang{font-family:var(--font-mono);font-size:var(--text-micro);color:var(--color-text-secondary);font-weight:500;line-height:1}.codeblock--repl .codeblock__bar{background:var(--color-bg-muted)}.codeblock--repl .codeblock__lang{border:1px solid var(--color-code-border);background:var(--color-bg-page);border-radius:4px;align-items:center;gap:.35rem;padding:.18rem .45rem;display:inline-flex}.codeblock--repl .codeblock__lang:before{content:"";background:var(--color-tip);border-radius:50%;width:.4rem;height:.4rem}.codeblock--output .codeblock__lang{border:1px solid var(--color-code-border);background:var(--color-bg-page);border-radius:4px;align-items:center;gap:.35rem;padding:.18rem .45rem;display:inline-flex}.codeblock--output .codeblock__lang:before{content:"";background:var(--color-link);border-radius:50%;width:.4rem;height:.4rem}.codeblock--output .line:before{display:none}.codeblock--output .line{padding-left:1rem}.codeblock__copy{z-index:2;width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:4px;flex-shrink:0;place-items:center;margin:0;padding:0;display:grid;position:relative}.codeblock__copy:hover{color:var(--color-link);background:var(--color-accent-bg)}.codeblock__copy.is-copied{color:var(--color-tip);background:var(--color-success-bg)}.codeblock__copy svg{pointer-events:none;width:15px;max-width:none;height:15px;display:block}.codeblock__copy.is-failed{color:var(--color-danger,#cf222e)}.codeblock__copy:after{content:attr(data-tip);z-index:3;background:var(--color-primary-bg);color:var(--color-primary-text);font-family:var(--font-sans);letter-spacing:0;white-space:nowrap;opacity:0;pointer-events:none;border-radius:4px;padding:.22rem .45rem;font-size:12px;font-weight:500;line-height:1.3;position:absolute;top:calc(100% + 6px);right:0}.codeblock__copy.is-copied:after,.codeblock__copy.is-failed:after,.codeblock__copy:focus-visible:after,.codeblock__copy:hover:after{opacity:1}.codeblock pre{font-family:var(--font-mono);font-size:var(--text-code);line-height:var(--leading-code);background:var(--code-surface);white-space:normal;counter-reset:line;margin:0;padding:.85rem 0;overflow-x:auto}.prose .codeblock code{font-size:inherit;color:inherit;background:0 0;padding:0;display:block}.codeblock .line{white-space:pre;line-height:var(--leading-code);min-height:calc(var(--text-code) * var(--leading-code));padding-right:1.25rem;display:block}.codeblock .line:before{counter-increment:line;content:counter(line);border-right:1px solid var(--code-border);text-align:right;width:2.75rem;color:var(--color-placeholder);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;margin-right:.75rem;padding-right:.75rem;display:inline-block}.callout{margin-block:var(--space-block);border-left:3px solid var(--c);border-radius:0 var(--code-radius) var(--code-radius) 0;background:var(--c)}@supports (color:color-mix(in lab,red,red)){.callout{background:color-mix(in srgb,var(--c) 3%,var(--color-bg-surface))}}.callout{padding:1rem 1.25rem}.callout__label{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--c);margin-bottom:.35rem;font-weight:600}.callout p{font-size:var(--text-small);margin:0;line-height:1.7}.callout p+p{margin-top:.75rem}.callout--note{--c:var(--color-note)}.callout--tip{--c:var(--color-tip)}.callout--warning{--c:var(--color-warning)}.callout--error{--c:var(--color-caution)}.callout--severe{--c:var(--color-severe)}.callout--caution{--c:var(--color-caution)}.callout--important{--c:var(--color-important)}.back-top{right:max(1.25rem,env(safe-area-inset-right));bottom:calc(max(1.25rem, env(safe-area-inset-bottom)) + var(--back-top-shift,0px));z-index:40;border:1px solid var(--color-border-strong);background:var(--color-bg-surface);width:44px;height:44px;color:var(--color-text);cursor:pointer;appearance:none;opacity:0;pointer-events:none;border-radius:999px;place-items:center;padding:0;transition:opacity .15s,transform .15s,border-color .15s,bottom .15s;display:grid;position:fixed;transform:translateY(.4rem);box-shadow:0 2px 10px #1f23281f}.back-top svg{flex:none;width:20px;max-width:none;height:20px}.back-top.is-on{opacity:1;pointer-events:auto;transform:none}.back-top:hover{border-color:var(--color-text)}.back-top:active{transform:scale(.98)}@media (max-width:640px){.codeblock{margin-inline:calc(var(--gutter-mobile) * -1);border-radius:0}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}.vip{max-width:60rem;padding:var(--page-top-space) 0 3rem}.vip h2{font-family:var(--font-display);font-size:var(--text-h2);margin:2.25rem 0 1rem}.vip-card{border:1px solid var(--color-border-strong);background:var(--color-bg-subtle);border-radius:12px;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:1.5rem 2rem;padding:1.5rem;display:grid}.user-avatar{object-fit:cover;background:var(--color-accent-bg);border:1px solid #dfebf8;border-radius:50%;flex-shrink:0;display:block}.avatar-edit{cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;padding:0}.avatar-edit:hover{outline:3px solid #dfedff}.avatar-dialog{border:var(--rule);background:var(--color-bg-page);width:min(600px,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--color-text);border-radius:12px;margin:auto;padding:1.25rem;overflow:auto;box-shadow:0 20px 60px #15283f26}.avatar-dialog::backdrop{background:#15283f66}.avatar-dialog__head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.avatar-dialog__head h2{font-family:var(--font-sans);margin:0;font-size:1.25rem;font-weight:600}.avatar-dialog__close{width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.avatar-dialog__close:hover{background:var(--color-bg-subtle)}.avatar-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:.625rem;display:grid}.avatar-options>button{border:var(--rule);background:var(--color-bg-page);color:var(--color-text-secondary);font-size:var(--text-small);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem .5rem;display:flex;position:relative}.avatar-options__portrait{border-radius:50%;flex-shrink:0;width:88px;height:88px;display:block;overflow:hidden}.avatar-options__portrait .user-avatar{object-fit:contain;width:100%;height:100%}.avatar-options>button:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.avatar-options>button:hover{background:var(--color-bg-subtle)}.avatar-options>button.is-selected{border-color:var(--color-link);background:var(--color-accent-bg);color:var(--color-link)}.avatar-options__check{position:absolute;top:.6rem;right:.6rem}.avatar-group+.avatar-group{margin-top:1.25rem}.avatar-group h3{align-items:center;gap:6px;margin:0 0 .75rem;font-size:14px;font-weight:600;display:flex}.avatar-group h3>svg{color:var(--color-warning)}.avatar-group h3>span{color:var(--color-text-secondary);align-items:center;gap:4px;margin-left:auto;font-size:12px;font-weight:400;display:inline-flex}.avatar-options__vip{background:var(--color-warning);border-radius:4px;align-items:center;gap:3px;padding:2px 5px;display:inline-flex;position:absolute;top:6px;left:6px}@supports (color:color-mix(in lab,red,red)){.avatar-options__vip{background:color-mix(in srgb,var(--color-warning) 12%,var(--color-bg-page))}}.avatar-options__vip{color:var(--color-warning);font-size:10px;font-weight:600;line-height:1.4}.avatar-options>button:disabled{cursor:not-allowed}.avatar-options>button:disabled:hover{background:var(--color-bg-page)}.avatar-options>button:disabled .avatar-options__portrait{opacity:.8}@media (max-width:560px){.avatar-options{grid-template-columns:repeat(2,minmax(0,1fr))}}.avatar-dialog__actions{background:var(--color-bg-page);z-index:2;justify-content:flex-end;gap:.75rem;margin-top:1rem;padding:1rem 0;display:flex;position:sticky;bottom:-1.25rem}.avatar-dialog__error{color:var(--color-caution);font-size:var(--text-small);margin:1rem 0 0}.vip-card--offer{border-color:var(--color-gold-border);background:var(--color-bg-page);border-radius:16px;grid-template-columns:minmax(0,19rem) minmax(0,1fr);gap:0;padding:0}.vip-buy{border-right:1px solid var(--color-gold-border);background:var(--color-gold-surface);border-radius:15px 0 0 15px;flex-direction:column;justify-content:center;align-items:flex-start;padding:2rem 1.75rem;display:flex}.vip-buy .pill{margin:0 0 1rem}.vip-buy__head{align-items:center;gap:.65rem;margin-bottom:1.5rem;display:flex}.vip-buy__emblem{border:1px solid var(--color-gold-border);background:var(--color-gold-bg);width:36px;height:36px;color:var(--color-gold);border-radius:10px;flex:none;place-items:center;display:grid}.vip .vip-buy .vip-buy__title{font-family:var(--font-sans);letter-spacing:.04em;margin:0;font-size:1.125rem;font-weight:650;line-height:1.3}.vip-buy .vip-price{letter-spacing:-.01em;font-size:clamp(2.75rem,7vw,3.5rem)}.vip-buy .vip-price span{margin-left:.25rem}.vip-buy .vip-price__list{margin-top:.9rem}.vip-buy__updates{color:var(--color-text-secondary);font-size:var(--text-micro);margin:.65rem 0 0;line-height:1.6}.vip-buy .btn{letter-spacing:.04em;justify-content:center;align-self:stretch;min-height:48px;margin-top:1.75rem;font-size:.9375rem}.vip-buy .btn--primary{color:#241a08;background:linear-gradient(#f2d999,#d6b062);border-color:#c9a352;box-shadow:inset 0 1px #ffffff80,0 6px 16px -8px #9a752b8c}.vip-buy .btn--primary:hover{background:linear-gradient(#f7e2ab,#e0bb6c)}.vip-buy .btn--primary:focus-visible{outline:2px solid var(--color-gold-icon);outline-offset:3px}.vip-buy .vip-legal{text-align:center;align-self:stretch;margin-top:.75rem}.vip-card--offer .vip-compare-wrap{padding:1.5rem 1.75rem}.vip-price{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:0;font-size:clamp(2rem,8vw,3rem);line-height:1}.vip-card.vip-card--active{background:var(--color-bg-page);border-color:var(--color-gold-border);border-radius:16px;grid-template-columns:minmax(0,1fr);gap:0;padding:0}.vip-member{border-bottom:1px solid var(--color-gold-border);background:var(--color-gold-surface);border-radius:15px 15px 0 0;justify-content:space-between;gap:1.5rem;padding:1.75rem}.vip-member,.vip-member__heading{align-items:center;min-width:0;display:flex}.vip-member__heading{gap:1rem}.vip-member__heading>div{min-width:0}.vip-member__emblem{background:var(--color-gold-bg);width:56px;height:56px;color:var(--color-gold);border:1px solid var(--color-gold-border);border-radius:14px;flex-shrink:0;place-items:center;display:grid}.vip-member__identity{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.vip .vip-member__identity h2{font-family:var(--font-sans);margin:0;font-size:1.5rem;font-weight:650;line-height:1.3}.vip-member__no{white-space:nowrap;color:#ecd49a;letter-spacing:.04em;font-variant-numeric:tabular-nums;background:linear-gradient(165deg,#292217,#15110b 60%,#221c12);border:1px solid #8a6d35;border-radius:5px;flex-shrink:0;align-items:center;min-height:26px;padding:.25rem .5rem;font-size:.75rem;font-weight:600;line-height:1.3;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffecb438}.vip-member__no:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 35%,#ffecb457 50%,#0000 65%);animation:vip-no-shine 5s ease-in-out infinite;position:absolute;inset:0;transform:translate(-140%)}@keyframes vip-no-shine{0%,60%{transform:translate(-140%)}to{transform:translate(140%)}}@media (prefers-reduced-motion:reduce){.vip-member__no:after{animation:none}}.vip-member__expiry{color:var(--color-text-secondary);flex-wrap:wrap;align-items:baseline;gap:.15rem .5rem;margin:.6rem 0 0;font-size:.8125rem;line-height:1.6;display:flex}.vip-member__expiry time{font-variant-numeric:tabular-nums;color:var(--color-text);font-weight:550}.vip-member__days.is-soon{color:var(--color-warning);font-weight:600}.vip-member__controls{flex-direction:column;flex:none;align-items:flex-end;gap:.65rem;display:flex}.vip-member__actions{flex-wrap:wrap;gap:.65rem;min-width:0;display:flex}.vip-member__actions .btn{gap:.45rem;min-height:44px;padding:.6rem 1rem;font-size:.875rem}.vip-member__actions>.me-head__vip{width:auto;min-width:0}.vip-member .me-qr__pop{color:var(--color-text)}.vip-member__links{font-size:var(--text-micro);color:var(--color-text-secondary);flex-wrap:wrap;gap:.5rem 1rem;display:flex}.vip-member__links a{align-items:center;min-height:24px;text-decoration:none;display:inline-flex}.vip-member__links a:hover{color:var(--color-link)}.vip-member__links a:focus-visible{outline:2px solid var(--color-gold-icon);outline-offset:3px;border-radius:2px}.vip-card--founder .vip-member{color:#fff4d9;background:radial-gradient(at 100% 0,#5a47242e,#0000 65%),linear-gradient(150deg,#29251c,#171614);border-bottom-color:#8a6d35}.vip-card--founder .vip-member__emblem{color:#e9ca83;background:#d8b46112;border-color:#8a6d35}.vip-card--founder .vip-member__expiry,.vip-card--founder .vip-member__links{color:#c9bfa9}.vip-card--founder .vip-member__actions .btn--primary{color:#241a08;background:linear-gradient(#f2d999,#d6b062);border-color:#c9a352}.vip-card--founder .vip-member__actions .btn--primary:hover{background:linear-gradient(#f7e2ab,#e0bb6c)}.vip-card--founder .vip-member__actions .btn--ghost{color:#efd89f;background:0 0;border-color:#9b7e43}.vip-card--founder .vip-member__actions .btn--ghost:hover{color:#fff0c6;background:#d8b4611c}.vip-card--founder .vip-member__links a:hover{color:#fff0c6}.vip-card--founder .vip-member__actions .btn:focus-visible,.vip-card--founder .vip-member__links a:focus-visible{outline-offset:3px;outline:2px solid #e9ca83}.vip-benefits{grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:1.75rem;padding:1.5rem 1.75rem 1.75rem;display:grid}.vip-benefits__group{min-width:0}.vip-benefits h3{font-family:var(--font-sans);color:var(--color-text-secondary);margin:0 0 1.1rem;font-size:.8125rem;font-weight:500}.vip-benefits ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem 1rem;margin:0;padding:0;list-style:none;display:grid}.vip-benefits li{align-items:flex-start;gap:.55rem;min-width:0;display:flex}.vip-benefits__icon{color:var(--color-gold-icon);flex:none;margin-top:.18rem}.vip-benefits__group+.vip-benefits__group{border-left:var(--rule);padding-left:1.75rem}.vip-benefits__group+.vip-benefits__group ul{grid-template-columns:minmax(0,1fr)}.vip-benefits strong{min-width:0;font-size:var(--text-small);font-weight:600;line-height:1.5}.vip-benefits p{text-wrap:pretty;color:var(--color-text-secondary);margin:.25rem 0 0;font-size:.8125rem;line-height:1.7}.vip-exclusive,.vip-identity{color:var(--color-gold);background:var(--color-gold-bg);border:1px solid var(--color-gold-border);font-family:var(--font-sans);white-space:nowrap;border-radius:4px;align-items:center;gap:.25rem;padding:.15rem .4rem;font-size:11px;font-weight:600;line-height:1.4;display:inline-flex}.vip-exclusive{vertical-align:middle;margin-left:.6rem}@media (max-width:880px){.vip-member{flex-wrap:wrap}.vip-member__controls{align-items:flex-start}.vip-benefits{grid-template-columns:minmax(0,1fr);gap:1.25rem}.vip-benefits__group+.vip-benefits__group{border-left:0;border-top:var(--rule);padding:1.1rem 0 0}.vip-benefits__group+.vip-benefits__group ul{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.vip-benefits,.vip-member{padding:1.25rem}.vip-member{gap:1.25rem}.vip-member__heading{align-items:flex-start;gap:.75rem}.vip-member__emblem{border-radius:12px;width:44px;height:44px}.vip-member__identity{gap:.6rem}.vip .vip-member__identity h2{flex-basis:100%;font-size:1.25rem}.vip-member__controls{gap:.5rem;width:100%}.vip-member__actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.vip-member__actions .btn{white-space:nowrap;width:100%;padding-inline:.5rem}.vip-member__actions .me-qr,.vip-member__actions>.me-head__vip{width:100%}.vip-member__links{align-self:flex-end}.vip-benefits ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem .85rem}.vip-benefits li{display:block}.vip-benefits__icon{margin:0 0 .45rem}.vip-benefits p{text-wrap:balance}}.vip-price span{font-family:var(--font-sans);font-size:var(--text-small);color:var(--color-text-secondary)}.vip-price__daily{font-family:var(--font-mono);font-size:var(--text-micro);color:var(--color-text-secondary);margin:.4rem 0 0}.vip-price__list{font-size:var(--text-small);color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:.6rem;margin:.65rem 0 0;display:flex}.vip-catalog{margin-top:1.75rem}.vip-catalog__heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.vip-catalog__heading>span{font-size:var(--text-micro);color:var(--color-text-secondary);text-align:right}.vip-catalog h2{scroll-margin-top:calc(var(--topbar-h) + 1rem);margin:0}.vip-catalog h2,.vip>h2{font-family:var(--font-sans);font-size:1.25rem;font-weight:600}.vip>h2{margin:1.75rem 0 1rem}.vip-catalog__wrap{border:var(--rule);background:var(--color-bg-surface);border-radius:12px}.vip-catalog__list{margin:0;padding:0;list-style:none}.vip-catalog__list>li+li{border-top:var(--rule)}.vip-tutorial{color:var(--color-text);align-items:center;gap:1rem;padding:1rem 1.25rem;text-decoration:none;display:flex}.vip-catalog__list>li:first-child .vip-tutorial{border-radius:11px 11px 0 0}.vip-catalog__list>li:last-child .vip-tutorial{border-radius:0 0 11px 11px}.vip-catalog__list>li:only-child .vip-tutorial{border-radius:11px}.vip-tutorial:hover{background:var(--color-bg-subtle)}.vip-tutorial:focus-visible{outline-offset:-3px}.vip-tutorial__cover{border-radius:6px;flex:none;width:112px;height:63px;display:block;overflow:hidden}.vip-tutorial__cover img{object-fit:cover;width:100%;height:100%;display:block}.vip-tutorial__cover--pending{color:var(--color-gold);background:var(--color-gold-bg);border:1px solid var(--color-gold-border);place-items:center;display:grid}.vip-tutorial__body{flex:1;min-width:0}.vip-tutorial__title{flex-wrap:wrap;align-items:baseline;gap:.35rem .65rem;display:flex}.vip-tutorial__title h3{font-family:var(--font-sans);font-size:var(--text-small);overflow-wrap:anywhere;margin:0;font-weight:600;line-height:1.6}.vip-tutorial__title .vip-exclusive{margin:0}.vip-tutorial__meta{font-size:var(--text-micro);color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.3rem;display:flex}.vip-tutorial__meta>span+span{border-left:var(--rule);padding-left:.75rem}.vip-tutorial__chevron{color:var(--color-text-secondary);flex:none}.vip-tutorial:hover .vip-tutorial__chevron{color:var(--color-link)}.vip-catalog__status{align-items:center;gap:.35rem;font-weight:500;display:inline-flex}.vip-catalog__status svg{flex:none}.vip-catalog__status--done{color:var(--color-tip)}.vip-catalog__status--updating{color:var(--color-link)}.vip-catalog__status--pending{color:var(--color-warning)}@media (max-width:640px){.vip-tutorial{gap:.75rem;padding:1rem}.vip-tutorial__cover{border-radius:5px;width:80px;height:45px}.vip-tutorial__chevron{display:none}}.vip-compare-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.vip-compare-mobile{display:none}.vip-compare{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--text-small);line-height:1.55}.vip-compare td,.vip-compare th{text-align:left;vertical-align:middle;border-bottom:var(--rule);padding:.7rem .85rem}.vip-compare thead th{font-size:var(--text-micro);color:var(--color-text-secondary);letter-spacing:.04em;vertical-align:bottom;padding-top:1rem;padding-bottom:.85rem;font-weight:600}.vip-compare thead th:first-child{width:24%}.vip-compare thead th:nth-child(2){width:33%}.vip-compare tbody th{color:var(--color-text);white-space:nowrap;font-weight:500}.vip-compare__plan{font-size:var(--text-small);letter-spacing:.02em;align-items:center;gap:.4rem;font-weight:650;display:inline-flex}.vip-compare__term{font-weight:400;font-size:var(--text-micro);margin-left:.5rem}.vip-compare td:nth-child(2),.vip-compare__term{color:var(--color-text-secondary)}.vip-compare__none{color:var(--color-border-strong)}.vip-compare__yes{align-items:flex-start;gap:.5rem;display:inline-flex}.vip-compare__yes svg{color:var(--color-gold-icon);flex:none;margin-top:.2em}.vip-compare td:last-child,.vip-compare thead th:last-child{color:var(--color-text);background:var(--color-gold-surface);border-bottom-color:var(--color-gold-border);font-weight:500}@supports (color:color-mix(in lab,red,red)){.vip-compare td:last-child,.vip-compare thead th:last-child{border-bottom-color:color-mix(in srgb,var(--color-gold-border) 55%,var(--color-border))}}.vip-compare td:last-child,.vip-compare thead th:last-child{box-shadow:inset 1px 0 0 var(--color-gold-border),inset -1px 0 0 var(--color-gold-border)}.vip-compare thead th:last-child{color:var(--color-gold);box-shadow:inset 1px 0 0 var(--color-gold-border),inset -1px 0 0 var(--color-gold-border),inset 0 3px 0 var(--color-gold-icon);border-radius:12px 12px 0 0}.vip-compare tbody:last-child tr:last-child td:last-child{box-shadow:inset 1px 0 0 var(--color-gold-border),inset -1px 0 0 var(--color-gold-border),inset 0 -1px 0 var(--color-gold-border);border-radius:0 0 12px 12px}.vip-compare tbody tr:last-child td,.vip-compare tbody tr:last-child th{border-bottom:0}.vip-compare tbody .vip-compare__group td,.vip-compare tbody .vip-compare__group th{border-bottom:0;padding:1rem .85rem .35rem}.vip-compare tbody .vip-compare__group th{font-size:var(--text-micro);letter-spacing:.06em;color:var(--color-text-secondary);font-weight:600}.vip-compare tbody+tbody .vip-compare__group th{padding-top:1.35rem}.vip-compare-mobile__group h3{font-family:var(--font-sans);font-size:var(--text-micro);color:var(--color-text-secondary);margin:.75rem 0 .25rem;font-weight:600}.vip-compare-mobile__group+.vip-compare-mobile__group{border-top:var(--rule);margin-top:.75rem;padding-top:.25rem}.faq{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.75rem 1rem;display:grid}.faq__item{border:var(--rule);background:var(--color-bg-subtle);border-radius:10px}.faq__item[open]{background:var(--color-bg-surface)}.faq__item summary{font-size:var(--text-small);cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;font-weight:600;list-style:none;display:flex}.faq__item summary::-webkit-details-marker{display:none}.faq__item summary:after{content:"";border-right:1.5px solid var(--color-text-secondary);border-bottom:1.5px solid var(--color-text-secondary);flex:none;width:.45rem;height:.45rem;transition:transform .15s;transform:rotate(45deg)translateY(-.1rem)}.faq__item[open] summary:after{transform:rotate(-135deg)translateY(-.1rem)}.faq__a{font-size:var(--text-small);color:var(--color-text-secondary);padding:0 1rem .9rem;line-height:1.7}.faq__a a{color:var(--color-link)}@media (max-width:760px){.faq{grid-template-columns:1fr}}.vip-legal{font-size:var(--text-micro);color:var(--color-text-secondary);margin:.55rem 0 0}.vip-legal a{color:var(--color-link)}.legal{max-width:var(--measure-content);padding:var(--page-top-space) 0 3rem}.legal h1{font-size:var(--text-h2);margin:0 0 1.5rem}.legal h1,.legal h2{font-family:var(--font-display)}.legal h2{font-size:var(--text-h4);margin:2rem 0 .6rem}.legal ol{font-size:var(--text-small);margin:0;padding-left:1.6rem;list-style:decimal}.legal li{margin:.35rem 0}.legal li::marker{color:var(--color-text-secondary)}.legal p{font-size:var(--text-small);margin:0 0 .6rem}.legal p+ol{margin-top:.2rem}.legal a{color:var(--color-link)}.legal strong{color:var(--color-text);font-weight:600}@media (max-width:900px){.vip-card{grid-template-columns:1fr}.vip-buy{border-right:0;border-bottom:1px solid var(--color-gold-border);border-radius:15px 15px 0 0}}@media (max-width:640px){.vip-card{padding:1.25rem}.vip-card--offer{padding:0}.vip-card--offer .vip-compare-wrap{padding:1.25rem}.vip-buy{align-items:stretch;padding:1.5rem 1.25rem}.vip-buy__head{margin-bottom:1.1rem}.vip-compare-desktop{display:none}.vip-compare-mobile{display:block}.vip-compare-mobile__heading{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.65rem;display:flex}.vip-compare-mobile__heading h2{font-family:var(--font-sans);font-size:var(--text-small);margin:0;font-weight:600}.vip-compare-mobile__heading>span{color:var(--color-text-secondary);font-size:var(--text-micro)}.vip-compare-mobile__benefits{margin:0}.vip-compare-mobile__benefits>div{border-bottom:var(--rule);font-size:var(--text-small);grid-template-columns:6rem minmax(0,1fr);gap:.6rem;padding:.6rem 0;line-height:1.6;display:grid}.vip-compare-mobile__benefits dt{color:var(--color-text-secondary)}.vip-compare-mobile__benefits dd{align-items:flex-start;gap:.45rem;margin:0;font-weight:500;display:flex}.vip-compare-mobile__benefits dd svg{color:var(--color-gold-icon);flex:none;margin-top:.25em}.vip-compare-mobile__benefits>div:last-child{border-bottom:0}.vip-compare-mobile__details{margin-top:.5rem}.vip-compare-mobile__details summary{cursor:pointer;min-height:44px;color:var(--color-link);font-size:var(--text-micro);padding:.65rem 0;display:list-item}.vip-compare-mobile__details summary:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.vip-compare-mobile__details .vip-compare{margin-top:.5rem}.vip-compare,.vip-compare tbody,.vip-compare thead{display:block}.vip-compare tr{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.vip-compare thead th:first-child{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.vip-compare tbody tr{border-bottom:var(--rule);padding-top:.5rem}.vip-compare tbody tr:last-child{border-bottom:0}.vip-compare tbody .vip-compare__group{border-bottom:0;padding-top:0}.vip-compare tbody th{color:var(--color-text);grid-column:1/-1;padding:.35rem .65rem;font-weight:600}.vip-compare td,.vip-compare th{border-bottom:0;min-width:0}.vip-compare td{padding:.45rem .65rem .65rem}.vip-compare__term{margin-left:0;display:block}.vip-compare thead th:first-child,.vip-compare thead th:nth-child(2){width:auto}.vip-compare tbody:last-child tr:last-child td:last-child,.vip-compare td:last-child,.vip-compare thead th:last-child{box-shadow:none;border-radius:6px}.vip-compare tbody .vip-compare__group td{display:none}}.not-found{background:radial-gradient(ellipse 80% 50% at 50% -10%,#0969da14,transparent 55%),var(--color-bg,var(--color-bg-subtle));place-items:center;min-height:100dvh;padding:2rem 1.25rem;display:grid}.not-found__inner{text-align:center;flex-direction:column;align-items:center;gap:.75rem;max-width:22rem;display:flex}.not-found__brand{color:var(--color-text,#1f2328);align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:.9375rem;font-weight:600;display:inline-flex}.not-found__brand .topbar__mark{flex:none}.not-found__code{font-family:var(--font-mono,"JetBrains Mono",Consolas,monospace);letter-spacing:-.04em;color:#d0d7de;margin:0;font-size:clamp(3.5rem,12vw,5rem);font-weight:600;line-height:1}.not-found__title{font-family:var(--font-display,"Source Serif 4",Georgia,serif);color:var(--color-text,#1f2328);margin:0 0 .75rem;font-size:1.35rem;font-weight:600}.free-unlock{border:1px solid var(--color-border,#e3e6ea);background:var(--color-bg-subtle);border-radius:12px;margin-top:1.25rem;padding:1.25rem 1.35rem}.free-unlock h2{margin:0 0 .75rem;font-size:1.125rem;font-weight:600}.free-unlock__steps{color:var(--color-text-secondary,#59636e);margin:0 0 1rem;padding-left:1.25rem;line-height:1.7}.free-unlock__steps a{color:var(--color-link,#0969da);text-underline-offset:2px;text-decoration:underline}.free-unlock__step-with-example{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.free-unlock__example-link{color:var(--color-link,#0969da);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.free-unlock__example-link:hover{color:var(--color-link-hover,#0550ae)}.free-unlock__form{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.free-unlock__error,.free-unlock__hint{margin:.75rem 0 0;font-size:.9375rem}.free-unlock__error{color:#cf222e}.free-unlock-lightbox{z-index:200;background:#0f1216b8;justify-content:center;align-items:center;padding:.75rem;display:flex;position:fixed;inset:0}.free-unlock-lightbox__panel{max-width:min(98vw,1100px);max-height:96vh;position:relative}.free-unlock-lightbox__close{z-index:1;color:#1f2328;cursor:pointer;background:#ffffffeb;border:0;border-radius:999px;width:2rem;height:2rem;font-size:1.25rem;line-height:1;position:absolute;top:-.35rem;right:-.35rem}.free-unlock-lightbox__img{object-fit:contain;background:#fff;border-radius:10px;max-width:100%;max-height:96vh;display:block;box-shadow:0 18px 48px #00000059}.ol-chap a.is-locked{opacity:.72}.notify-page{padding-block:var(--page-top-space) 3rem}.notify-page__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.notify-page__actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.notify-page__heading{align-items:center;gap:.75rem;display:flex}.notify-page__heading h1{margin:0;font-size:1.5rem;font-weight:650;line-height:1.4}.notify-page__unread{color:var(--color-link);background:var(--color-accent-bg);font-size:var(--text-micro);white-space:nowrap;border-radius:4px;padding:.2rem .45rem}.notify-page__read-all{min-height:36px;color:var(--color-text-secondary);font:inherit;font-size:var(--text-small);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:5px;align-items:center;gap:.4rem;padding:.35rem .5rem;display:inline-flex}.notify-page__read-all:hover{color:var(--color-link);background:var(--color-bg-subtle)}.notify-page__read-all:disabled{opacity:.5;cursor:default}.notify-list{border:var(--rule);border-radius:10px;margin:0;padding:0;list-style:none;overflow:hidden}.notify-list li+li{border-top:var(--rule)}.notify-list li.is-unread{background:var(--color-notice-bg)}.notify-list__item{width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:0;align-items:flex-start;gap:1rem;margin:0;padding:1.25rem 1.5rem;display:flex}button.notify-list__item{cursor:pointer}button.notify-list__item:hover{background:var(--color-accent-bg)}button.notify-list__item:disabled{cursor:wait}.notify-list__icon{border-radius:10px;flex:0 0 40px;place-items:center;width:40px;height:40px;display:grid}.notify-list__icon--course{color:var(--color-link);background:var(--color-accent-bg)}.notify-list__icon--notice,.notify-list__icon--vip{color:var(--color-gold);background:var(--color-gold-bg)}.notify-list__content{flex:1;min-width:0;display:block}.notify-list__title{color:var(--color-text);font-size:var(--text-small);overflow-wrap:anywhere;align-items:center;gap:.5rem;line-height:1.6;display:flex}.notify-list li.is-unread .notify-list__title{font-weight:600}.notify-list__body a,.notify-list__title a{color:var(--color-link);text-underline-offset:3px;text-decoration:underline}.notify-list__body a:focus-visible,.notify-list__title a:focus-visible{outline:2px solid var(--color-link);outline-offset:3px;border-radius:2px}.notify-list__dot{background:var(--color-link);border-radius:50%;flex:0 0 6px;width:6px;height:6px}.notify-list__body{color:var(--color-text-secondary);font-size:var(--text-small);white-space:pre-line;overflow-wrap:anywhere;margin-top:.3rem;line-height:1.65;display:block}.notify-list__meta{color:var(--color-placeholder);font-size:var(--text-micro);flex-wrap:wrap;gap:.35rem 1rem;margin-top:.6rem;line-height:1.5;display:flex}.notify-list__arrow{color:var(--color-placeholder);flex-shrink:0;margin-top:.3rem}.notify-page__more{margin-top:1.5rem}.notify-empty,.notify-page__more{justify-content:center;display:flex}.notify-empty{border:var(--rule);border-radius:10px;flex-direction:column;align-items:center;min-height:320px;padding:3rem 1rem}.notify-empty__icon{width:64px;height:64px;color:var(--color-placeholder);background:var(--color-bg-subtle);border-radius:50%;place-items:center;display:grid}.notify-empty h2{font-size:var(--text-small);color:var(--color-text-secondary);margin:1rem 0 1.5rem;font-weight:500}@media (max-width:600px){.notify-page{padding-bottom:2rem}.notify-page__heading,.notify-page__toolbar{gap:.5rem}.notify-page__heading h1{font-size:1.35rem}.notify-page__read-all{min-height:44px;padding-inline:.2rem}.notify-list__item{gap:.75rem;padding:1rem}.notify-list__icon{border-radius:8px;flex-basis:34px;width:34px;height:34px}.notify-empty{min-height:280px}}.iv-browse.is-pending{cursor:progress;pointer-events:none}.iv-browse.is-pending .iv-empty,.iv-browse.is-pending .iv-list,.iv-browse.is-pending .iv-pager{opacity:.6}.iv-summary{border-bottom:1px solid var(--color-border);margin:0 0 1.5rem;padding-bottom:1rem}.iv-stats{flex-wrap:wrap;gap:.5rem 2.25rem;margin:0;padding:0;list-style:none;display:flex}.iv-stats li{align-items:baseline;gap:.5rem;min-width:0;display:flex}.iv-stats__n{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:1.375rem;font-weight:650;line-height:1.15}.iv-stats__n--done{color:var(--color-tip)}.iv-stats__n--due{color:var(--color-warning)}.iv-stats__l{color:var(--color-text-secondary);font-size:var(--text-small)}.iv-meter{background:var(--color-bg-muted);border-radius:999px;gap:2px;height:6px;margin-top:.85rem;display:flex;overflow:hidden}.iv-meter__seg{min-width:0;display:block}.iv-meter__seg--done{background:var(--color-tip)}.iv-meter__seg--open{background:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.iv-meter__seg--open{background:color-mix(in srgb,var(--color-warning) 45%,var(--color-bg-surface))}}.iv-filters{flex-direction:column;gap:.85rem;margin-bottom:1rem;display:flex}.iv-rounds{flex-wrap:wrap;gap:.5rem;display:flex}.iv-review-btn,.iv-rounds button{appearance:none;border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:36px;color:var(--color-text-secondary);font:inherit;font-size:var(--text-small);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .85rem;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.iv-review-btn:hover,.iv-rounds button:hover{color:var(--color-text);border-color:var(--color-border-strong);background:var(--color-bg-subtle)}.iv-review-btn.is-on,.iv-rounds button.is-on{color:var(--color-link);border-color:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.iv-review-btn.is-on,.iv-rounds button.is-on{border-color:color-mix(in srgb,var(--color-link) 45%,var(--color-border))}}.iv-review-btn.is-on,.iv-rounds button.is-on{background:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.iv-review-btn.is-on,.iv-rounds button.is-on{background:color-mix(in srgb,var(--color-link) 8%,var(--color-bg-surface))}}.iv-filter-bar{flex-wrap:wrap;justify-content:space-between;gap:.75rem 1rem}.iv-filter-bar,.iv-results{align-items:center;display:flex}.iv-results{color:var(--color-text-secondary);font-size:var(--text-small);gap:.85rem}.iv-results strong{color:var(--color-text);font-variant-numeric:tabular-nums;font-weight:600}.iv-reset{appearance:none;min-height:36px;color:var(--color-link);font:inherit;font-size:var(--text-small);cursor:pointer;background:0 0;border:0;padding:0}.iv-reset:hover{text-decoration:underline}.iv-selects{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.iv-selects .site-select{min-width:8rem;max-width:100%}.iv-list{border-top:1px solid var(--color-border);margin:0;padding:0;list-style:none}.iv-list li{border-bottom:1px solid var(--color-border)}.iv-row{color:inherit;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem 1rem;padding:.9rem .75rem;text-decoration:none;transition:background .15s;display:grid}.iv-row:focus-visible,.iv-row:hover{background:var(--color-bg-subtle)}.iv-row:hover .iv-row__title{color:var(--color-link)}.iv-row:hover .iv-row__chev{color:var(--color-link);transform:translate(2px)}.iv-row__main{min-width:0}.iv-row__title{font-weight:600;line-height:1.45;display:block}.iv-row__tags{color:var(--color-text-secondary);font-size:var(--text-micro);flex-wrap:wrap;align-items:center;gap:.3rem .4rem;margin-top:.5rem;line-height:1.5;display:flex}.iv-tag{background:var(--color-bg-subtle);white-space:nowrap;border:1px solid #0000;border-radius:4px;padding:.1rem .45rem}.iv-tag--plain{background:var(--color-bg-surface);border-color:var(--color-border)}.iv-tag--frequent{color:var(--color-gold);background:var(--color-gold-bg);border-color:var(--color-gold-border)}.iv-row__side{gap:.5rem}.iv-row__side,.iv-status{align-items:center;display:inline-flex}.iv-status{border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:var(--text-micro);white-space:nowrap;border-radius:999px;gap:.35rem;padding:.1rem .5rem;line-height:1.7}.iv-status__dot{background:currentColor;border-radius:999px;flex:none;width:6px;height:6px}.iv-status--unknown{color:var(--color-caution)}.iv-status--fuzzy{color:var(--color-gold)}.iv-status--mastered{color:var(--color-tip)}.iv-row__chev{color:var(--color-border-strong);flex:none;transition:color .15s,transform .15s}@media (prefers-reduced-motion:reduce){.iv-pager button,.iv-review-btn,.iv-rounds button,.iv-row,.iv-row__chev,.iv-selects .site-select{transition:none}}@media (pointer:coarse){.iv-pager button,.iv-reset,.iv-review-btn,.iv-rounds button,.iv-selects .site-select{min-height:44px}}.iv-empty{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);text-align:center;color:var(--color-text-secondary);padding:3rem 1rem}.iv-empty p{font-size:var(--text-small);margin:0 0 .5rem}.iv-pager{justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;display:flex}.iv-pager__pos{color:var(--color-text-secondary);font-size:var(--text-small);font-variant-numeric:tabular-nums;padding:0 .35rem}.iv-pager button{appearance:none;border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:36px;color:var(--color-text);font:inherit;font-size:var(--text-small);cursor:pointer;border-radius:8px;align-items:center;padding:0 .85rem;transition:background .15s,border-color .15s;display:inline-flex}.iv-pager button:hover:not(:disabled){background:var(--color-bg-subtle);border-color:var(--color-border-strong)}.iv-pager button:disabled{opacity:.45;cursor:not-allowed}.iv-detail__back{font-size:var(--text-small);text-align:right;margin:0 0 .65rem}.iv-detail__back a{color:var(--color-link)}.iv-detail__head{margin-bottom:1.25rem}.iv-detail h1{letter-spacing:-.02em;margin:0 0 .75rem;font-size:clamp(1.35rem,2.4vw,1.65rem);line-height:1.35}.iv-detail__tags{flex-wrap:wrap;gap:.35rem .45rem;margin:0;padding:0;list-style:none;display:flex}.iv-detail__tags li{border:1px solid var(--color-border);font-size:var(--text-micro);color:var(--color-text-secondary);border-radius:999px;padding:.2rem .6rem;line-height:1.4}.iv-brief{border-bottom:1px solid var(--color-border);gap:.85rem;margin:0 0 1.15rem;padding:0 0 1.15rem;display:grid}.iv-brief__item{background:var(--color-bg-subtle);border:1px solid var(--color-border);padding:.85rem 1rem}@supports (color:color-mix(in lab,red,red)){.iv-brief__item{border:1px solid color-mix(in srgb,var(--color-border) 80%,transparent)}}.iv-brief__item{border-radius:.55rem}.iv-brief__item h2{letter-spacing:.04em;color:var(--color-text-secondary);margin:0 0 .4rem;font-size:.75rem;font-weight:650}.iv-brief__item p{color:var(--color-text);margin:0;font-size:.95rem;line-height:1.65}.iv-practice{margin-top:0}.iv-practice .prose{width:100%;max-width:none}.iv-practice.is-busy{opacity:.85}.iv-progress{border:0;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem;padding:0;display:flex}.iv-progress button{appearance:none;border:1px solid var(--color-border);background:var(--color-bg-surface);font:inherit;font-size:var(--text-micro);color:var(--color-text-secondary);cursor:pointer;border-radius:999px;padding:.35rem .8rem}.iv-progress button:disabled{opacity:.4;cursor:not-allowed}.iv-progress button.is-on{border-color:var(--color-text);background:var(--color-primary-bg);color:var(--color-primary-text);font-weight:600}.iv-progress button.is-done:not(.is-on){background:var(--color-bg-subtle);color:var(--color-text)}.iv-panel{border:0;margin:0;padding:0}.iv-panel__body{width:100%;max-width:none;margin:0}.iv-panel__body>:first-child{margin-top:0}.iv-step__prompt{border-left:3px solid var(--color-border-strong);background:var(--color-bg-subtle);color:var(--color-text);border-radius:0 .4rem .4rem 0;margin:0 0 .85rem;padding:.75rem .9rem;font-size:.95rem;line-height:1.65}.iv-answer textarea{border:1px solid var(--color-border);width:100%;font:inherit;resize:vertical;border-radius:.5rem;padding:.85rem 1rem;line-height:1.6}.iv-answer__actions,.iv-lock__actions,.iv-rate,.iv-review__actions{flex-wrap:wrap;gap:.5rem .65rem;margin-top:.85rem;display:flex}.iv-lock{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:.5rem;margin:.75rem 0;padding:.9rem 1rem}.iv-lock p{margin:0 0 .65rem;line-height:1.6}.iv-public-preview{border-bottom:1px solid var(--color-border);margin:0 0 1rem;padding-bottom:1rem}.iv-public-preview h2{margin:1.25rem 0 .5rem;font-size:1.05rem}.iv-public-preview h2:first-child{margin-top:0}.iv-public-preview p{color:var(--color-text-secondary);margin:0;line-height:1.7}.iv-error{color:#cf222e;font-size:var(--text-small);margin:.5rem 0 0}.iv-compare{margin:0}.iv-compare>h3:first-child{margin-top:0}.iv-compare h3{margin:1rem 0 .45rem;font-size:.95rem}.iv-compare p{margin:0;line-height:1.65}.iv-compare .btn{margin-top:.15rem}.iv-rate{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:.5rem;margin-top:1.1rem;padding-top:.9rem;display:flex}.iv-rate .btn{border-radius:999px;min-height:2.25rem;padding:.35rem .95rem;font-weight:500}.iv-rate .btn:hover:not(:disabled){background:var(--color-bg-subtle);border-color:var(--color-text)}.iv-rate-result{border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--text-small);margin-top:1.35rem;padding-top:.9rem}.iv-review{margin-top:0}.iv-review__conclusion{margin:0 0 1rem;line-height:1.65}.iv-review>h3{margin:1.15rem 0 .45rem;font-size:.95rem}.iv-last{background:var(--color-bg-subtle);font-size:var(--text-small);color:var(--color-text-secondary);border-radius:.45rem;justify-content:space-between;align-items:center;gap:.75rem;margin:0 0 .75rem;padding:.55rem .75rem;display:flex}.iv-last .btn{flex-shrink:0;padding-inline:.65rem}.iv-last__list{font-size:var(--text-small);color:var(--color-text-secondary);margin:0 0 .85rem;padding:.15rem .25rem .35rem;list-style:none}.iv-last__list li{margin-bottom:.35rem}.iv-last__list li:last-child{margin-bottom:0}.iv-last__list strong{color:var(--color-text);margin-right:.5rem}@media (max-width:640px){.iv-summary{margin-bottom:1.25rem}.iv-stats{gap:.4rem 1.5rem}.iv-stats__n{font-size:1.25rem}.iv-filter-bar{align-items:stretch}.iv-results{justify-content:space-between;width:100%}.iv-selects{width:100%}.iv-selects label{flex:45%;min-width:0}.iv-selects .site-select{width:100%}.iv-review-btn{flex:100%;justify-content:center}.iv-row{gap:.5rem;padding:.85rem .4rem}.iv-row__chev{display:none}.iv-detail__tags,.iv-progress{gap:.35rem}.iv-answer__actions,.iv-lock__actions,.iv-rate,.iv-review__actions{flex-direction:column;align-items:stretch}}.catalog-tag-area{min-width:0;position:relative}.catalog-tags--measure{visibility:hidden;pointer-events:none;width:max-content;position:fixed;top:0;left:0}.catalog-tags .catalog-more,.catalog-tags--measure span{align-items:center;display:inline-flex}.catalog-tags .catalog-more{justify-content:center;width:44px;padding:0}.catalog-tags--expanded{flex-wrap:wrap;margin-top:.45rem}.catalog-tags button:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.article-feedback{flex-wrap:wrap;align-items:center;gap:12px;margin:24px 0;display:flex}.article-feedback__button{border:var(--rule);min-height:44px;color:var(--color-text-secondary);background:var(--color-bg-surface);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14px;display:inline-flex}.article-feedback__button:hover,.article-feedback__button[aria-pressed=true]{border-color:var(--color-link);color:var(--color-link)}.article-feedback__button[aria-pressed=true]{background:var(--color-accent-bg)}.article-feedback__button[aria-pressed=true]>svg{fill:var(--color-link)}@supports (color:color-mix(in lab,red,red)){.article-feedback__button[aria-pressed=true]>svg{fill:color-mix(in srgb,var(--color-link) 15%,transparent)}}.article-feedback__button:focus-visible,.article-feedback__error button:focus-visible{outline:2px solid var(--color-link);outline-offset:3px}.article-feedback__button:disabled{opacity:.6;cursor:wait}.article-feedback__count{border-left:1px solid var(--color-border);font-variant-numeric:tabular-nums;padding-left:8px}.article-feedback__error{color:var(--color-caution);font-size:13px}.article-feedback__error button{min-height:44px;color:var(--color-link);font:inherit;cursor:pointer;background:0 0;border:0;margin-left:8px;padding:0 10px}.avatar-state-options{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.avatar-state-options button{border:var(--rule);background:var(--color-bg-page);color:var(--color-text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:.35rem;padding:.4rem .5rem;font-size:12px;display:flex}.avatar-state-options button[aria-pressed=true]{border-color:var(--color-link);background:var(--color-accent-bg);color:var(--color-link)}.avatar-state-options button:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}:root{color-scheme:light;--color-bg:var(--color-bg-page);--color-bg-surface:#fff;--color-bg-subtle:#f7f8fa;--color-bg-muted:#eef0f3;--color-primary-bg:#1f2328;--color-primary-text:#fff;--color-primary-hover:#000;--color-topbar:#ffffffe0;--color-accent-bg:#edf5ff;--color-success-bg:#e8f4ec;--color-placeholder:#66717e;--color-gold:#85621f;--color-gold-icon:#ae8740;--color-gold-hover:#9a752b;--color-gold-bg:#fbf3df;--color-gold-surface:#fffcf5;--color-gold-border:#e5d3a7;--color-silver:#4d5862;--color-silver-bg:#edf1f5;--color-silver-border:#c6cfd8;--color-bronze:#7c4f16;--color-bronze-bg:#f8efe0;--color-bronze-border:#dcb87e;--color-code-bg:#f8fafc;--color-code-border:#dce3eb;--color-code-bar:#f1f5f9;--color-inline-code:#eef2f6;--color-hero-start:#f5f8fb;--color-hero-glow:#eaf2fb;--color-notice-bg:#f8fbff;--color-link-hover:#0550ae}:root[data-theme=dark]:not(:has(.admin-app)){color-scheme:dark;--color-bg-page:#11161d;--color-bg-surface:#1a222c;--color-bg-subtle:#161e27;--color-bg-muted:#26313e;--color-border:#334150;--color-border-strong:#59697c;--color-text:#e3e8ef;--color-text-secondary:#a6b0be;--color-link:#78aeff;--color-note:#78aeff;--color-tip:#79d69c;--color-warning:#e4bd78;--color-severe:#f4a76a;--color-caution:#ff9299;--color-important:#c5a2ff;--color-primary-bg:#dce5ef;--color-primary-text:#11161d;--color-primary-hover:#fff;--color-topbar:#11161deb;--color-accent-bg:#1c3047;--color-success-bg:#1a3328;--color-placeholder:#98a5b6;--color-gold:#d8b56b;--color-gold-icon:#d8b56b;--color-gold-hover:#f1cf87;--color-gold-bg:#332b1d;--color-gold-surface:#211e18;--color-gold-border:#655337;--color-silver:#b9c2cb;--color-silver-bg:#232b33;--color-silver-border:#47535f;--color-bronze:#d29a5b;--color-bronze-bg:#2e2318;--color-bronze-border:#6b4c26;--color-code-bg:#151d27;--color-code-border:#334150;--color-code-bar:#202b38;--color-inline-code:#26313e;--color-hero-start:#172332;--color-hero-glow:#223853;--color-notice-bg:#172638;--color-link-hover:#a8cbff}@media (prefers-color-scheme:dark){:root[data-theme=system]:not(:has(.admin-app)){color-scheme:dark;--color-bg-page:#11161d;--color-bg-surface:#1a222c;--color-bg-subtle:#161e27;--color-bg-muted:#26313e;--color-border:#334150;--color-border-strong:#59697c;--color-text:#e3e8ef;--color-text-secondary:#a6b0be;--color-link:#78aeff;--color-note:#78aeff;--color-tip:#79d69c;--color-warning:#e4bd78;--color-severe:#f4a76a;--color-caution:#ff9299;--color-important:#c5a2ff;--color-primary-bg:#dce5ef;--color-primary-text:#11161d;--color-primary-hover:#fff;--color-topbar:#11161deb;--color-accent-bg:#1c3047;--color-success-bg:#1a3328;--color-placeholder:#98a5b6;--color-gold:#d8b56b;--color-gold-icon:#d8b56b;--color-gold-hover:#f1cf87;--color-gold-bg:#332b1d;--color-gold-surface:#211e18;--color-gold-border:#655337;--color-silver:#b9c2cb;--color-silver-bg:#232b33;--color-silver-border:#47535f;--color-bronze:#d29a5b;--color-bronze-bg:#2e2318;--color-bronze-border:#6b4c26;--color-code-bg:#151d27;--color-code-border:#334150;--color-code-bar:#202b38;--color-inline-code:#26313e;--color-hero-start:#172332;--color-hero-glow:#223853;--color-notice-bg:#172638;--color-link-hover:#a8cbff}}.admin-app{color-scheme:light}.codeblock .shiki span{color:var(--shiki-light,var(--color-text));font-style:var(--shiki-light-font-style,normal);font-weight:var(--shiki-light-font-weight,inherit);-webkit-text-decoration:var(--shiki-light-text-decoration,none);text-decoration:var(--shiki-light-text-decoration,none)}:root[data-theme=dark]:not(:has(.admin-app)) .codeblock .shiki span{color:var(--shiki-dark,var(--color-text));font-style:var(--shiki-dark-font-style,normal);font-weight:var(--shiki-dark-font-weight,inherit);-webkit-text-decoration:var(--shiki-dark-text-decoration,none);text-decoration:var(--shiki-dark-text-decoration,none)}@media (prefers-color-scheme:dark){:root[data-theme=system]:not(:has(.admin-app)) .codeblock .shiki span{color:var(--shiki-dark,var(--color-text));font-style:var(--shiki-dark-font-style,normal);font-weight:var(--shiki-dark-font-weight,inherit);-webkit-text-decoration:var(--shiki-dark-text-decoration,none);text-decoration:var(--shiki-dark-text-decoration,none)}}.codeblock .shiki{color:var(--color-text)}.theme-switch{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:44px;padding:0;display:inline-flex}.theme-switch__track{border:var(--rule);background:var(--color-bg-muted);border-radius:999px;width:60px;height:32px;transition:background .2s,border-color .2s;display:block;position:relative}.theme-switch__thumb{background:var(--color-bg-surface);border-radius:50%;width:26px;height:26px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0002}.theme-switch__track>svg{z-index:1;color:var(--color-text-secondary);transition:color .2s;position:absolute;top:7px}.theme-switch__sun{left:7px}.theme-switch__moon{right:7px}.theme-switch[aria-checked=false] .theme-switch__sun{color:var(--color-warning)}.theme-switch[aria-checked=true] .theme-switch__thumb{background:var(--color-accent-bg);transform:translate(28px)}.theme-switch[aria-checked=true] .theme-switch__moon{color:var(--color-link)}.theme-switch:hover .theme-switch__track{border-color:var(--color-border-strong)}.theme-switch:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}@media (max-width:1040px){.theme-switch{margin-right:8px}}@media (max-width:380px){.topbar__brand{gap:.5rem;padding-right:0;font-size:.875rem}.topbar__brand .topbar__mark,.topbar__brand .topbar__mark svg{width:24px;height:24px}.topbar__account>.topbar__login{justify-content:center;width:44px;min-height:44px;padding:0}.topbar__login>span{display:none}}@media (prefers-reduced-motion:reduce){.theme-switch__thumb,.theme-switch__track,.theme-switch__track>svg{transition:none}}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-500.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-latin-500.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-latin-600.woff2)format("woff2")}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-latin-400.woff2)format("woff2")}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/source-serif-4-latin-600.woff2)format("woff2")}.admin-app{background:#f4f6f8;min-height:100dvh}.admin-sider{box-shadow:1px 0 #1f232805;border-right:1px solid #e8ebef!important}.admin-brand{border-bottom:1px solid #eef0f3;align-items:center;gap:.75rem;height:64px;padding:0 18px;display:flex}.admin-brand__text{flex-direction:column;gap:.05rem;min-width:0;line-height:1.2;display:flex}.admin-brand__text strong{letter-spacing:-.02em;color:#1f2328;font-size:.95rem;font-weight:700}.admin-brand__text span{color:#8b949e;letter-spacing:.04em;font-size:.7rem}.admin-main{min-width:0}.admin-header{border-bottom:1px solid #e8ebef;justify-content:space-between;align-items:center;padding-inline:20px!important;line-height:1!important;display:flex!important}.admin-header__crumb{color:#1f2328;margin:0;font-size:.9375rem;font-weight:600}.admin-header__user{align-items:center;gap:.85rem;font-size:.8125rem;display:flex}.admin-header__email{color:#59636e;font-variant-numeric:tabular-nums}.admin-header__link{color:#0969da;font-weight:500;text-decoration:none}.admin-header__link:hover{text-decoration:underline}.admin-content{padding:12px 14px 16px}.admin-page{flex-direction:column;gap:12px;width:100%;max-width:none;display:flex}.admin-card{width:100%;box-shadow:0 1px 2px #1f23280a;border:1px solid #e8ebef!important;border-radius:12px!important}.admin-card .ant-card-body{padding:12px 12px 8px}.admin-card .ant-table-wrapper{width:100%}.admin-card .ant-table-tbody>tr>td,.admin-card .ant-table-thead>tr>th{padding-block:10px!important}.admin-card .ant-table-pagination{margin:10px 0 4px!important}.admin-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:10px;display:flex}.admin-toolbar__meta{color:#8b949e;font-variant-numeric:tabular-nums;font-size:.75rem}.admin-page__title{color:#1f2328;margin:0;font-size:1rem;font-weight:600}.admin-metric .ant-statistic-title{color:#59636e;font-size:12px}.admin-metric .ant-statistic-content{font-variant-numeric:tabular-nums;font-size:22px}.admin-metric__hint{color:#8b949e;font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:12px}.admin-trend{width:100%}.admin-trend__empty{color:#8c959f;place-items:center;height:260px;font-size:13px;display:grid}.admin-trend__footer{color:#59636e;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:4px;padding:0 4px;font-size:12px;display:flex}.admin-trend__legend{gap:16px;display:flex}.admin-trend__legend span{align-items:center;gap:6px;display:inline-flex}.admin-trend__swatch{border-radius:2px;width:14px;height:3px;display:inline-block}.admin-trend__swatch--rev{background:#0969da}.admin-trend__swatch--vip{background:#1a7f37}.admin-trend__tip{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:10px;display:flex}.admin-trend__tip strong{color:#1f2328;font-weight:600}.admin-trend__tip--muted{color:#8c959f}.admin-mastery-bars{flex-direction:column;gap:8px;display:flex}.admin-mastery-bars__row{grid-template-columns:52px 1fr;align-items:center;gap:8px;display:grid}.admin-mastery-bars__label{color:#59636e;font-size:12px}.admin-cell-title{flex-direction:column;gap:.15rem;min-width:0;display:flex}.admin-cell-title__btn,.admin-link-btn{color:#0969da;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-weight:600}.admin-cell-title__btn:hover,.admin-link-btn:hover{text-decoration:underline}.admin-cell-title a{color:#1f2328;font-weight:600;text-decoration:none}.admin-cell-title a:hover{color:#0969da}.admin-cell-title code{color:#8b949e;background:0 0;font-size:.7rem}.admin-cell-title code,.admin-mono{font-family:JetBrains Mono,Consolas,monospace}.admin-mono{font-size:.8125rem}.admin-actions{align-items:center;gap:.15rem;display:inline-flex}.admin-actions .admin-link-btn,.admin-actions a{color:#0969da;padding:0 7px;font-size:.8125rem;font-weight:500;text-decoration:none}.admin-actions .admin-link-btn:hover,.admin-actions a:hover{text-decoration:underline}.admin-actions .admin-link-btn--danger{color:#cf222e}.admin-cell-link{color:#0969da;font-weight:500;text-decoration:none}.admin-cell-link:hover{text-decoration:underline}.admin-order-nos{flex-direction:column;gap:2px;min-width:0;display:flex}.admin-order-nos code{color:#59636e;word-break:break-all;font-family:JetBrains Mono,Consolas,monospace;font-size:.7rem}.admin-order-nos__ext{color:#8b949e}.admin-back{color:#59636e;margin-bottom:4px;font-size:.8125rem;text-decoration:none;display:inline-block}.admin-back:hover{color:#0969da}.admin-detail-title{color:#1f2328;margin:0;font-size:1.125rem;font-weight:600;line-height:1.35}.admin-lesson{border-top:1px solid #eef0f3;padding:16px 0}.admin-lesson:first-of-type{border-top:0;padding-top:0}.admin-lesson__head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.admin-lesson__index{color:#59636e;font-variant-numeric:tabular-nums;background:#f0f3f6;border-radius:8px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:600;display:inline-flex}.admin-lesson__meta{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.admin-lesson__meta label{color:#59636e;align-items:center;gap:6px;font-size:.8125rem;display:inline-flex}.admin-vip-qr{align-items:flex-start;gap:1.25rem;display:flex}.admin-vip-qr img{object-fit:cover;background:#fff;border:1px solid #e3e6ea;border-radius:10px;width:160px;height:160px;display:block}.admin-vip-qr__empty{color:#8b949e;background:#fafbfc;border:1px dashed #c3c7cb;border-radius:10px;place-items:center;width:160px;height:160px;font-size:.8125rem;display:grid}.admin-vip-qr__form{flex-direction:column;flex:1;align-items:flex-start;gap:.65rem;min-width:0;display:flex}.admin-vip-qr__file{color:#59636e;word-break:break-all;margin:0;font-size:.75rem}.admin-settings{gap:12px}.admin-price-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 20px;display:grid}.admin-price-row__item{flex-direction:column;gap:4px;min-width:0;display:flex}.admin-price-row__label{color:#8b949e;font-size:.75rem}.admin-price-row__value{color:#1f2328;font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px;font-size:.9375rem;line-height:1.4;display:inline-flex}@media (max-width:900px){.admin-price-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.admin-price-row{grid-template-columns:1fr}}.admin-settings__form{max-width:720px}.admin-settings__form .ant-form-item{margin-bottom:16px}.admin-settings__form .ant-form-item-label>label{color:#59636e}.admin-settings__value{color:#1f2328;font-variant-numeric:tabular-nums}.admin-settings__hint-row{margin-bottom:8px!important}.admin-settings__hint{color:#8b949e;margin:0;font-size:.75rem;line-height:1.5}.admin-settings__qr{align-items:flex-start;gap:1rem;display:flex}.admin-settings__qr img{object-fit:cover;background:#fff;border:1px solid #e3e6ea;border-radius:10px;width:160px;height:160px;display:block}.admin-settings__qr-empty{color:#8b949e;background:#fafbfc;border:1px dashed #c3c7cb;border-radius:10px;place-items:center;width:160px;height:160px;font-size:.8125rem;display:grid}.admin-settings__qr-actions{flex-direction:column;align-items:flex-start;gap:.5rem;padding-top:4px;display:flex}.admin-settings__file,.admin-settings__meta{color:#59636e;word-break:break-all;margin:0;font-size:.75rem}.admin-settings__actions{padding-top:4px;margin-bottom:0!important}.admin-field-label{color:#59636e;margin:0 0 6px;font-size:.75rem;display:block}.admin-package{max-width:520px}.admin-package__current{color:#1f2328;background:#fafbfc;border:1px solid #e3e6ea;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;font-size:.875rem;display:flex}.admin-package__current.is-empty{color:#8b949e;border-style:dashed}.admin-package__name{word-break:break-all;font-weight:600}.admin-package__ver{color:#59636e;font-variant-numeric:tabular-nums;flex:none}.admin-package__icon{color:#0969da;margin:8px 0 4px}.admin-package__hint{color:#1f2328;margin:0;font-size:.9375rem}.admin-package__sub{color:#8b949e;margin:4px 0 8px;font-size:.8125rem}.admin-package__file{color:#59636e;margin:10px 0 0;font-size:.8125rem}.admin-package .ant-upload-drag{background:#fff!important;border-radius:10px!important}.admin-package .ant-upload-drag:hover{border-color:#0969da!important}@media (max-width:720px){.admin-content{padding:14px 12px 24px}.admin-toolbar{flex-wrap:wrap}.admin-vip-qr{flex-direction:column}}.ol-chap .ol-locked{color:var(--color-text-secondary);padding:.35rem .5rem;font-size:.8125rem;display:block}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}