/*! 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)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:var(--font-ui);--font-mono:"Atkinson Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-widest:.1em;--radius-sm:8px;--radius-md:10px;--radius-lg:18px;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-paper:var(--bg);--color-surface:var(--surface);--color-ink:var(--fg);--color-ink-soft:var(--fg-muted);--color-line:var(--border);--color-border-strong:var(--border-strong);--color-accent:var(--accent);--color-danger:var(--danger);--color-safe:var(--success);--color-success:var(--success)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{-webkit-text-size-adjust:100%}body{background-color:var(--color-paper);color:var(--color-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:var(--font-ui);letter-spacing:-.003em;font-size:1.0625rem;line-height:1.5}h1,h2,h3,h4{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--color-ink);text-wrap:balance}h1{letter-spacing:-.025em;font-size:clamp(2rem,1.4rem + 2vw,2.75rem);line-height:1.08}h2{letter-spacing:-.02em;font-size:1.625rem;line-height:1.15}h3{letter-spacing:-.012em;font-size:1.25rem;line-height:1.25}h4{font-size:1.0625rem;line-height:1.4}p{text-wrap:pretty}a{color:var(--color-accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}p a,li a,dd a,td a,.prose-lite a{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}code,kbd,pre{font-family:var(--font-mono)}:not(pre)>code{padding-inline:var(--spacing);padding-block:calc(var(--spacing) * .5);background:var(--bg-subtle);overflow-wrap:anywhere;border-radius:6px;font-size:.9em}kbd{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-strong);background-color:var(--color-surface);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:6px;font-size:.85em}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}::selection{background:var(--accent-subtle)}[x-cloak]{display:none!important}:root{--header-h:3.375rem}@media (max-width:47.99rem){:root{--header-h:5.625rem}}[id]{scroll-margin-top:calc(var(--header-h) + 1.125rem)}.tabular,td.num,th.num{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}}@layer components{.dash-head{gap:1.25rem;margin-top:.5rem;display:grid}.dash-head .summary{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:.75rem;display:grid}.dash-head .summary>div{border-radius:var(--card-radius);background:var(--bg-subtle);gap:.125rem;padding:1rem 1.25rem;display:grid}.dash-head .summary dt{font-size:.875rem}.dash-head .summary dd{letter-spacing:-.02em;font-size:1.625rem;line-height:1.15}.next{border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);gap:.75rem;margin-top:1.5rem;padding:1.5rem 1.75rem;display:grid}.next h2{color:var(--warning);letter-spacing:0;font-size:.9375rem;font-weight:600}.next-title{letter-spacing:-.02em;font-size:1.5rem;font-weight:700;line-height:1.2}@media (min-width:48rem){.next{grid-template-columns:1fr auto;align-items:center}}.home-section{margin-top:3.5rem}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem .75rem;margin-bottom:1rem;display:flex}.today{gap:.75rem;margin:0;padding:0;list-style-type:none;display:grid}.today li{border-radius:var(--card-radius);background:var(--bg-subtle);gap:.25rem;padding:1rem 1.25rem;display:grid}.today .kind{color:var(--fg-muted);font-size:.875rem;font-weight:600}@media (min-width:48rem){.today li{grid-template-columns:9rem minmax(0,1fr) auto;align-items:center;gap:1rem}.today li>:last-child:not(:nth-child(3)){grid-column:span 2}}.account-head{flex-wrap:wrap;align-items:center;gap:1rem 1.25rem;display:flex}.account-head .avatar{width:4rem;height:4rem;font-size:1.5rem}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:.75rem;margin:0;padding:0;list-style-type:none;display:grid}.badge-grid .task{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--surface);align-content:flex-start;padding:1rem 1.25rem}.badge-grid .task:last-child{border-bottom:1px solid var(--border)}.badge-grid .task[data-earned="1"]{border-color:var(--success)}.badge-grid .task-head{flex-direction:column-reverse;align-items:flex-start;gap:.5rem}.secondary-links{flex-wrap:wrap;gap:.25rem 1.5rem;margin:0;padding:0;list-style-type:none;display:flex}.secondary-links a{padding-block:.375rem;display:inline-block}.syllabus-intro{gap:.5rem;max-width:46rem;margin-block:.75rem;display:grid}.syllabus-intro .meta-line{flex-wrap:wrap;gap:.25rem 1.5rem;display:flex}.syllabus-quiz{flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;margin-top:.75rem;display:flex}.syllabus td,.syllabus th{padding-block:.75rem}.syllabus .code{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);white-space:nowrap;color:var(--fg-muted);font-variant-numeric:tabular-nums}.syllabus th[scope=row] a{font-weight:600}.syllabus .progress-line progress{min-width:6rem}@media (min-width:48rem){.syllabus .progress-line progress{flex:0 0 9rem}}.syllabus-section>.syllabus-intro{margin-top:1rem}.page-head+.syllabus-section{margin-top:1.5rem}@media (max-width:47.99rem){.syllabus thead{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.syllabus tr{border-bottom:1px solid var(--border);grid-template-columns:3.25rem minmax(0,1fr);gap:.125rem .75rem;padding:.75rem 0;display:grid}.syllabus.syllabus-nocode tr{grid-template-columns:minmax(0,1fr)}.syllabus.tbl td,.syllabus.tbl th{text-align:left;border:0;padding:0}.syllabus.tbl td.num{text-align:left;white-space:normal}.syllabus .progress-line{flex-wrap:wrap;gap:.25rem .75rem}.syllabus td:not(.code){grid-column:2}.syllabus.syllabus-nocode td{grid-column:1}.syllabus .progress-line progress{flex:0 8rem}}.progress-steps .task-list,.path-progress .progress-line{margin-top:.25rem}.task-number{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.related-links{flex-wrap:wrap;gap:.25rem 1.5rem;margin:0;padding:0;list-style-type:none;display:flex}.related-links a{padding-block:.375rem;display:inline-block}.radar .radar-label{font-size:17px}.radar .radar-area{fill-opacity:.18}@media print{.tbl tr{break-inside:avoid}}.summary.account-summary{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:.75rem;display:grid}.summary.account-summary>div{border-radius:var(--card-radius);background:var(--bg-subtle);gap:.125rem;padding:1rem 1.25rem;display:grid}.summary.account-summary dt{font-size:.875rem}.summary.account-summary dd{letter-spacing:-.015em;overflow-wrap:anywhere;font-size:1.375rem;line-height:1.2}.page-head.account-page-head{gap:1.25rem;max-width:none}form.filters{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));align-items:end;display:grid}form.filters .field-group.grow,form.filters .filter-actions{grid-column:span 2}.filters .field{min-width:0}.filters select.field{width:100%;font-family:var(--font-sans)}@media (max-width:30rem){form.filters .field-group.grow,form.filters .filter-actions{grid-column:auto}}.pager .btn[aria-disabled=true]{cursor:not-allowed}.task-list .task-title,.task-list .task .task-head .task-title{overflow-wrap:anywhere}.btn-primary:disabled,.btn-primary[aria-disabled=true]{color:var(--fg-muted);border-color:var(--border-strong)}.deck-bar{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;display:flex}.deck-count{font-variant-numeric:tabular-nums;flex:12rem;margin:0;font-weight:600}.deck-steps{flex-wrap:wrap;flex:100%;order:3;gap:.5rem;margin:0;padding:.25rem;list-style:none;display:none}.deck-step{box-sizing:border-box;cursor:pointer;border:2px solid var(--border-strong);background:0 0;border-radius:4px;width:1.5rem;height:1.5rem;padding:0}.deck-step:hover{background:var(--bg-subtle);border-color:var(--fg-muted)}.deck-step.is-done{background:var(--accent);border-color:var(--accent)}.deck-step.is-current{outline:2px solid var(--fg);outline-offset:2px}.deck-step:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media (min-width:40rem){.deck-steps{display:flex}.deck-index{display:none}}@media (pointer:coarse){.deck-step{height:2rem}}@media (forced-colors:active){.deck-step.is-done{background:highlight;border-color:highlight}.deck-step.is-current{outline-color:canvastext}}.deck-index{border:1px solid var(--border-strong);background:var(--surface);border-radius:4px;flex:100%;order:3}.deck-index>summary{cursor:pointer;align-items:center;min-height:2.75rem;padding:0 .75rem;font-weight:600;display:flex}.deck-index ol{border-top:1px solid var(--border);max-height:50vh;margin:0;padding:0;list-style:none;overflow-y:auto}.deck-index-item{border:0;border-bottom:1px solid var(--border);width:100%;min-height:2.75rem;color:var(--fg);font:inherit;text-align:left;cursor:pointer;background:0 0;padding:.5rem .75rem;display:block}.deck-index-item:hover{background:var(--bg-subtle)}.deck-index-item[aria-current=step]{font-weight:700}.deck-index-item[aria-current=step]:after{content:" (actual)";color:var(--fg-muted);font-weight:400}.deck-index-item.is-done:not([aria-current]):after{content:" (hecho)";color:var(--fg-muted)}.deck-nav{justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.deck-on:not(.deck-all) .deck-card{border-top:0;padding-top:0}.deck-on .deck-card[hidden],.deck-all .deck-nav{display:none}.deck-card h1:focus,.deck-card h2:focus{outline:none}.deck-pop{animation:.7s ease-out deck-pop}@keyframes deck-pop{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--success) 60%, transparent)}to{box-shadow:0 0 0 14px #0000}}@media (prefers-reduced-motion:reduce){.deck-pop{animation:none}}.fix-layout{gap:2rem;display:grid}@media (min-width:64rem){.fix-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}}.incident{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:1rem}@media (min-width:40rem){.incident{padding:1.5rem}}.incident-title{max-width:48rem;margin-top:.25rem}.incident-facts{border-top:1px solid var(--border);margin:1.25rem 0 0;display:grid}.incident-facts>div{padding:1rem 0}.incident-facts>div+div{border-top:1px solid var(--border)}.incident-facts dt{margin-bottom:.25rem;font-weight:700}.incident-facts dd{margin:0}.incident-cost dt{color:var(--danger)}@media (min-width:48rem){.incident-facts{grid-template-columns:1fr 1fr}.incident-facts>div+div{border-top:0;border-left:1px solid var(--border);padding-left:1.5rem}.incident-facts>div:first-child{padding-right:1.5rem}}.incident-foot{border-top:1px solid var(--border);color:var(--fg-muted);flex-wrap:wrap;gap:.25rem 1.5rem;margin-top:.5rem;padding-top:.75rem;font-size:.9375rem;display:flex}.code-frame-head>:first-child{overflow-wrap:anywhere;min-width:0}.code-state{flex-shrink:0}.code-frame-note strong{font-weight:600}.code-fallback .ln-flag .ln-no{color:var(--code-fg)}.demo-examples{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.demo-examples .btn{text-align:left}.demo-examples .btn strong{font-weight:700}.cheatsheet{max-width:56rem;margin-inline:auto}.cs-intro{color:var(--fg-muted)}.cs-tech{margin-bottom:2rem}.cs-tech-title{border-bottom:1px solid var(--border);margin-bottom:.75rem;padding-bottom:.25rem}.cs-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin-bottom:1.25rem;padding:1rem}.cs-card-title{margin-bottom:.75rem;font-size:1.0625rem}.cs-card-title a{color:var(--fg)}.cs-pair{gap:.75rem;display:grid}@media (min-width:40rem){.cs-pair{grid-template-columns:1fr 1fr}}.cs-side{border:1px solid var(--border-strong);border-radius:4px;min-width:0;overflow:hidden}.cs-avoid{border-color:var(--danger)}.cs-do{border-color:var(--success)}.cs-side-label{border-bottom:1px solid;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;margin:0;padding:.25rem .75rem;font-size:1rem;font-weight:700;display:flex}.cs-avoid .cs-side-label{background:var(--danger-subtle);color:var(--danger)}.cs-do .cs-side-label{background:var(--success-subtle);color:var(--success)}.cs-side-body{padding:.75rem}.cs-file{font-family:var(--font-mono);color:var(--fg-muted);font-size:.8125rem;font-weight:400}.cs-lines{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-mono);margin:0;font-size:.875rem;line-height:1.5}.cs-lines code{font-size:inherit;background:0 0;padding:0}.cs-note{margin-top:.5rem;font-size:.9375rem}.cs-note:first-child{margin-top:0}.cs-fragment{border:1px solid var(--border);background:var(--bg-subtle);border-radius:4px;margin-top:.75rem;overflow:hidden}.cs-fragment figcaption{border-bottom:1px solid var(--border);color:var(--fg-muted);padding:.25rem .75rem;font-size:.9375rem}.cs-code{font-family:var(--font-mono);margin:0;padding-block:.5rem;font-size:.8125rem;line-height:1.55;overflow-x:auto}.cs-ln{display:flex}.cs-ln-no{text-align:right;-webkit-user-select:none;user-select:none;width:2.25rem;color:var(--fg-muted);flex-shrink:0;padding-right:.5rem;display:inline-block}.cs-ln-text{white-space:pre-wrap;overflow-wrap:anywhere;padding-right:.75rem}.cs-ln-flag{background:var(--success-subtle);box-shadow:inset 3px 0 0 var(--success)}.cs-also{color:var(--fg-muted);margin-top:.75rem;font-size:.9375rem}.cs-standards{margin-bottom:2rem}.cs-sub{margin:1.25rem 0 .5rem;font-size:1rem}.cs-table{border-collapse:collapse;text-align:left;width:100%;font-size:.9375rem}.cs-table th,.cs-table td{vertical-align:top;border-bottom:1px solid var(--border);padding:.375rem .5rem}.cs-table thead th{border-bottom:2px solid var(--fg);font-weight:600}.cs-table tbody th{white-space:nowrap;font-family:var(--font-mono);font-size:.8125rem;font-weight:600}.cs-table td:nth-child(2){white-space:nowrap}.lab-grid{align-items:flex-start;gap:1.5rem;margin-top:2rem;display:grid}@media (min-width:64rem){.lab-grid{grid-template-columns:minmax(0,1fr) 21rem}}.lab-grid>aside{gap:1rem;display:grid}.lab-banner{margin-top:1.5rem}.lab-banner p+p{margin-top:.25rem}.lab-notice{margin-top:1.5rem}#retos:focus-visible,#hallazgo:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sim{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border-strong);background:var(--surface);min-width:0;overflow:hidden}.sim-bar{background:var(--bg-subtle);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9375rem;display:flex}.sim-url{font-family:var(--font-mono);overflow-wrap:anywhere}.sim-tabs{border-bottom:1px solid var(--border);padding-inline:.75rem}.sim-tabs .tabs{border-bottom:0}.sim-tabs .tabs a{margin-bottom:0}.sim-body{gap:1.5rem;padding:1rem;display:grid}@media (min-width:48rem){.sim-body{padding:1.5rem}}.lab-code{font-family:var(--font-mono);overflow-wrap:anywhere}.sim .tbl td.num.lab-code{font-family:inherit}.lab-request{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border);gap:1rem;min-width:0;padding:1rem;display:grid}.lab-request form{gap:.75rem;display:grid}.lab-request h4{font-size:1.0625rem}.request-line{font-size:.9375rem}.request-line code{background:var(--bg-subtle);border-radius:.25rem;padding:.1em .35em}.lab-request textarea.field{font-family:var(--font-mono);resize:vertical;min-height:6rem;font-size:.9375rem}.lab-request input.field{font-family:var(--font-mono)}.response{border-top:1px solid var(--border);gap:.75rem;padding-top:1rem;display:grid}.response:focus-visible{outline:3px solid var(--focus);outline-offset:6px}.response .code-frame{min-width:0}.response .code-pre{white-space:pre-wrap;overflow-wrap:anywhere}.response .notice{margin:0}.task-list .task{gap:.5rem}.task-list .task-head .task-title{overflow-wrap:break-word;min-width:0}.hints>summary{cursor:pointer;min-height:2.75rem;color:var(--accent);text-underline-offset:.2em;align-items:center;text-decoration:underline;display:flex}.hints>summary:hover{text-decoration-thickness:2px}.hints[open]>summary{margin-bottom:.25rem}.hints form{margin-top:.5rem}.lab-hints{gap:.5rem;margin:0;padding:0;list-style-type:none;display:grid}.hint-item{background:var(--bg-subtle);border-radius:.25rem;padding:.5rem .75rem;font-size:.9375rem}.lab-reset{gap:.5rem;display:grid}.lab-reset h2{font-size:1rem}.summary-line{font-variant-numeric:tabular-nums;font-weight:600}.lab-details>summary{cursor:pointer;min-height:2.75rem;color:var(--accent);text-underline-offset:.2em;align-items:center;width:fit-content;text-decoration:underline;display:flex}.lab-details[open]>summary{margin-bottom:.25rem}.lab-details>p{max-width:68ch;color:var(--fg-muted);font-size:.9375rem}.lab-filters select.field{width:auto;min-width:11rem;font-family:var(--font-sans)}.lab-filters-clear{align-items:center;min-height:2.75rem;display:inline-flex}.board{table-layout:fixed;min-width:36rem}.board thead th:first-child{width:32%}.board thead th:nth-child(2){width:19%}.board thead th:nth-child(3){width:29%}.board thead th:nth-child(4){width:12%}.board thead th:nth-child(5){width:8%}.board th[scope=row]{font-weight:600}.board .stars{white-space:nowrap}.board td{vertical-align:top}.lab-board-note{margin-top:.25rem;display:block}.board-title{margin-bottom:.5rem;font-size:1.25rem}.board-label{display:none}@media (max-width:47.99rem){.board{table-layout:auto;min-width:0}.board thead{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.board tr{border-bottom:1px solid var(--border);grid-template-columns:auto auto;justify-content:start;gap:.25rem 1.25rem;padding:.75rem 1rem;display:grid}.board tbody tr:last-child{border-bottom:0}.board.tbl td,.board.tbl th{text-align:left;border:0;padding:0}.board.tbl td.num{white-space:normal;text-align:left}.board th[scope=row],.board td:first-of-type,.board td:nth-of-type(2){grid-column:1/-1}.board-label{color:var(--fg-muted);display:inline}}.lab-fault{border-top:1px solid var(--border);gap:1rem;min-width:0;padding-top:2rem;display:grid}.lab-fix{align-items:flex-start;gap:1.5rem;display:grid}@media (min-width:64rem){.lab-fix{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.lab-fix h3{margin-bottom:.5rem;font-size:1.25rem}.lab-payload{border-style:var(--tw-border-style);font-family:var(--font-mono);border-width:1px;border-color:var(--border-strong);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface);border-radius:.25rem;margin:0;padding:.5rem .75rem;font-size:.9375rem}.form-page{background:var(--surface);border:1px solid var(--border);max-width:30rem;box-shadow:var(--shadow-card);border-radius:22px;margin:1.5rem auto 0;padding:clamp(1.5rem,1rem + 3vw,2.75rem)}.form-page h1{font-size:2rem}.form-page .btn-primary{width:100%}.form-page .error-summary{scroll-margin-top:1rem}.form-page .error-summary:focus{outline:3px solid var(--focus);outline-offset:2px}.logout-form{margin:0;display:inline-flex}.logout-btn{cursor:pointer;border-style:var(--tw-border-style);min-height:2.75rem;color:var(--fg-muted);font:inherit;background:0 0;border-width:0;border-radius:980px;flex-shrink:0;align-items:center;padding-inline:.75rem;font-size:.9375rem;font-weight:600;display:inline-flex}.logout-btn:hover{background:var(--bg-subtle);color:var(--fg)}.admin-user .logout-btn{border-radius:var(--btn-radius,6px);color:var(--admin-band-fg);padding-inline:.625rem}.admin-user .logout-btn:hover{color:var(--admin-band-fg);background:#ffffff1f}@media (max-width:47.99rem){.user .logout-btn{padding-inline:.5rem;font-size:.875rem}}.quiz-head{z-index:10;top:var(--header-h);background:var(--bg);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;padding-block:.75rem;display:flex;position:sticky}.quiz-timer{border-style:var(--tw-border-style);--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);border-width:1px;border-color:var(--border-strong);font-variant-numeric:tabular-nums;border-radius:.25rem;margin:0;padding:.25rem .75rem}.quiz-warning{margin-bottom:calc(var(--spacing) * 4)}.quiz-warning:empty{display:none}.quiz-nav{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border-strong);background:var(--surface)}.quiz-nav summary{cursor:pointer;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);min-height:2.75rem;padding:.75rem 1rem}.quiz-nav ol{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.25rem 1.5rem;margin:0;padding:0 1rem .75rem;list-style-type:none;display:grid}.quiz-nav li{justify-content:space-between;align-items:center;gap:.5rem;padding-block:.125rem;display:flex}.quiz-nav a{padding-block:.25rem;display:inline-block}.quiz-question{border-style:var(--tw-border-style);border-width:0;min-width:0;margin:0;padding:0}.quiz-head~form .quiz-question{scroll-margin-top:calc(var(--header-h) + var(--quiz-head-h,0px) + 1rem)}.quiz-question+.quiz-question{border-top:1px solid var(--border);padding-top:1.5rem}.quiz-answer{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;padding:.25rem .75rem;display:flex}.quiz-answer.is-right{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);background:var(--success-subtle);border-radius:4px}.quiz-answer-note{--tw-font-weight:var(--font-weight-semibold);font-size:.9375rem;font-weight:var(--font-weight-semibold);color:var(--fg-muted)}.quiz-answer.is-right .quiz-answer-note{color:var(--success)}.report-head{margin-bottom:calc(var(--spacing) * 6);padding-bottom:calc(var(--spacing) * 4);border-bottom:2px solid var(--fg)}.report-user{overflow-wrap:anywhere}.report-category{border-top:1px solid var(--border);break-inside:avoid;padding-block:.75rem}.report-category h3{break-after:avoid}.report-fine{margin-top:calc(var(--spacing) * 6);color:var(--fg-muted);font-size:.9375rem}.ex-head{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.ex-kind{color:var(--fg-muted);flex:auto;font-size:.9375rem}.ex-xp{color:var(--fg-muted);margin-top:.25rem;font-size:.9375rem}.ex-summary{cursor:pointer;min-height:1.5rem;padding-block:.15rem;font-size:.9375rem;display:inline-block}.line-list{padding-block:.5rem;display:grid}.code-frame .line-choice{cursor:pointer;color:var(--code-fg);align-items:flex-start;gap:.75rem;padding:.125rem .75rem;display:flex}.code-frame .line-choice:hover{background:var(--code-line)}.code-frame .line-choice:has(input:checked){background:var(--code-line);box-shadow:inset 0 0 0 2px var(--focus-on-code)}.line-choice input{accent-color:var(--focus-on-code);margin-top:.35rem}.line-no{text-align:right;width:1.5rem;color:var(--code-muted);flex-shrink:0}.line-text{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.gap-code{font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--code-fg);margin:0;padding:.75rem 1rem;font-size:.875rem;line-height:1.8;overflow-x:auto}.gap-slot{text-align:center;min-width:2rem;font-family:var(--font-mono);color:var(--accent);border:1.5px dashed;border-radius:4px;padding:0 .375rem;font-weight:600;line-height:1.5;display:inline-block}.gap-code .gap-slot{color:var(--focus-on-code);background:var(--code-line)}.gap-code .gap-slot.is-filled{color:var(--code-fg);text-align:left;border-style:solid}.gap-slot-label{min-width:1.5rem;font-size:.8125rem}.gap-legend{align-items:center;gap:.5rem;margin-bottom:.25rem;font-size:.9375rem;font-weight:600;display:flex}.rapid-item,.order-row,.match-row,.interleave-slot{border:1px solid var(--border-strong);background:var(--surface);border-radius:4px;padding:.5rem .75rem}.rapid-item{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.rapid-item[hidden]{display:none}.rapid-bar{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.rapid-count{font-variant-numeric:tabular-nums;font-weight:600}.rapid-on .rapid-item{justify-content:center;gap:1rem;padding-block:2rem;font-size:1.125rem}.rapid-on .segmented label{min-height:2.75rem;padding:.625rem 1.25rem;font-size:1rem}.order-row{align-items:center;gap:.75rem;display:flex}.order-row .order-select{flex-shrink:0;width:5rem}.order-row .segments{flex:1 1 0;min-width:0}.interleave-slot{justify-content:space-between;align-items:center;gap:.5rem;padding-block:.25rem;display:flex}.interleave-lane{border:1px solid var(--border-strong);border-radius:4px;min-width:0;padding:.5rem}.interleave-step{overflow-wrap:anywhere;border-radius:4px;flex-wrap:wrap;align-items:baseline;gap:0 .25rem;padding:.25rem;font-size:.8125rem;display:flex}.interleave-step code{flex:1 1 0;min-width:0}.interleave-step>span{flex-shrink:0}.step-no{color:var(--fg-muted)}.interleave-step.is-done{opacity:.65;text-decoration:line-through}.interleave-on .interleave-step.is-next{background:var(--accent-subtle);box-shadow:inset 0 0 0 1px var(--accent)}.interleave-on .interleave-step.is-next:after{content:"Siguiente paso";color:var(--accent);flex-basis:100%;font-weight:600}.interleave-timeline{border:1px dashed var(--border-strong);border-radius:4px;gap:.25rem;min-height:2.5rem;margin-top:.25rem;padding:.5rem;font-size:.875rem;display:grid}.interleave-timeline li{font-family:var(--font-mono);border-radius:4px;padding:.125rem .5rem}.interleave-timeline li[data-thread=B]{margin-left:2rem}.interleave-slots{gap:.25rem;display:grid}.interleave-on .interleave-slots{display:none}@media (min-width:40rem){.interleave-step{padding-inline:.5rem;font-size:.875rem}}.match-board{display:none}.match-on .match-board,.match-plain{gap:.75rem;display:grid}.match-on .match-plain{display:none}@media (min-width:40rem){.match-on .match-board{grid-template-columns:1fr 1fr}}.match-help{color:var(--fg-muted);font-size:.9375rem}.match-col{align-content:start;gap:.5rem;display:grid}.match-title{color:var(--fg-muted);font-size:.9375rem;font-weight:600}.match-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.match-row .match-select{width:100%}@media (min-width:40rem){.match-row .match-select{width:18rem}}.match-item{text-align:left;cursor:pointer;border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:2.75rem;color:var(--fg);border-radius:4px;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.match-item:hover{background:var(--bg-subtle);border-color:var(--fg-muted)}.match-item:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.match-item[aria-pressed=true],.match-item.is-paired{border-color:var(--accent);background:var(--accent-subtle);box-shadow:inset 0 0 0 1px var(--accent)}.match-item:after{color:var(--accent);flex-shrink:0;margin-left:auto;font-size:.8125rem;font-weight:600}.match-item[aria-pressed=true]:after{content:"Elegido";content:"Elegido" / ""}.match-item.is-paired:after{content:"Emparejado";content:"Emparejado" / ""}.match-badge{border:1px dashed var(--border-strong);width:1.75rem;height:1.75rem;color:var(--fg-muted);border-radius:4px;flex-shrink:0;place-items:center;font-size:.875rem;font-weight:600;display:grid}.match-item.is-paired .match-badge{border-style:solid;border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.review{gap:.75rem;display:grid}.review-file{--diff-add:#7ee2d0;font-family:var(--font-mono);font-size:.875rem}.review-stat{font-family:var(--font-mono)}.review-stat-add,.review-add .review-sign{color:var(--diff-add)}.review-stat-del{color:var(--code-flag-edge)}.review-row{color:var(--code-fg);align-items:flex-start;gap:.5rem;padding:.125rem .75rem;display:flex}.review-num{text-align:right;width:2rem;color:var(--code-muted);flex-shrink:0}.review-sign{width:.75rem;color:var(--code-muted);flex-shrink:0}.review-text{white-space:pre-wrap;overflow-wrap:anywhere;flex:1 1 0;min-width:0}.review-add{background:var(--diff-add)}@supports (color:color-mix(in lab, red, red)){.review-add{background:color-mix(in srgb, var(--diff-add) 14%, transparent)}}.review-del{background:var(--code-flag)}.review-del .review-text{opacity:.75;text-decoration:line-through}.review-hunk{color:var(--code-muted);background:var(--code-line);padding:.25rem .75rem;font-size:.8125rem}.review-line>summary{cursor:pointer;list-style:none}.review-line>summary::-webkit-details-marker{display:none}.review-line>summary:hover,.review-line[open]>summary{filter:brightness(1.3)}.review-line>summary:focus-visible{outline:3px solid var(--focus-on-code);outline-offset:-3px}.review-flag,.review-verdict{font-family:var(--font-sans);border:1px solid;border-radius:4px;flex-shrink:0;align-items:center;gap:.25rem;padding:0 .5rem;font-size:.8125rem;font-weight:600}.review-flag{background:var(--accent-subtle);color:var(--accent);display:none}.review-line:has([data-review-cat] input:checked:not([value=""])) .review-flag,.review-verdict{display:inline-flex}.review-hit{background:var(--success-subtle);color:var(--success)}.review-mis{background:var(--warning-subtle);color:var(--warning)}.review-fp{background:var(--danger-subtle);color:var(--danger)}.review-comment{border:1px solid var(--border-strong);background:var(--surface);font-family:var(--font-sans);color:var(--fg);border-radius:8px;gap:.75rem;margin:.25rem .75rem .25rem 3.25rem;padding:.75rem;display:grid}.code-frame .review-comment :focus-visible{outline-color:var(--focus)}.review-comment .chip-choice{font-family:var(--font-sans)}@media (max-width:640px){.review-row{flex-wrap:wrap}.review-num{width:1.5rem}.review-comment{margin-left:.75rem}.review-file{font-size:.8125rem}.review-flag,.review-verdict{flex-basis:auto;margin-left:2.75rem}}.chat{gap:.75rem;display:grid}.chat-row{display:flex}.chat-row-user{justify-content:flex-end}.chat-bubble{border:1px solid var(--border-strong);border-radius:8px;min-width:0;padding:.75rem 1rem}.chat-user{border-color:var(--accent);background:var(--accent-subtle);max-width:88%}.chat-bot{background:var(--surface);width:100%}.chat-who{color:var(--fg-muted);flex-wrap:wrap;align-items:center;gap:.25rem .5rem;margin-bottom:.25rem;font-size:.9375rem;font-weight:600;display:flex}.chat-sim{border:1px solid var(--border-strong);border-radius:4px;padding:0 .375rem;font-size:.8125rem;font-weight:400}.chat-code{margin-block:.75rem}.chat-bubble .prose-lite code{background:var(--bg-subtle);border-radius:4px;padding-inline:.25rem;font-size:.92em}.chat-user .prose-lite code{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.chat-user .prose-lite code{background:color-mix(in srgb, var(--accent) 14%, transparent)}}.tm-figure{gap:.5rem;min-width:0;display:grid}.tm-hint{display:none}.tm-on .tm-hint{display:block}.tm-frame{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;padding:.5rem}.tm-svg{width:100%;max-width:38rem;height:auto;margin-inline:auto;display:block}.tm-zone{fill:none;stroke:var(--warning);stroke-width:1.6px;stroke-dasharray:6 4}.tm-zone-label{fill:var(--warning);font-size:11.5px;font-weight:600}.tm-shape{fill:var(--surface);stroke:var(--fg);stroke-width:1.6px}.tm-fill{fill:var(--surface);stroke:none}.tm-external .tm-shape{fill:var(--accent-subtle);stroke:var(--accent)}.tm-store line.tm-shape{stroke-width:2.6px}.tm-label{fill:var(--fg);text-anchor:middle;font-size:13px}.tm-line{stroke:var(--fg-muted);stroke-width:2px;fill:none}.tm-head{fill:var(--fg-muted)}.tm-cross .tm-line{stroke:var(--warning);stroke-width:2.6px}.tm-cross .tm-head{fill:var(--warning)}.tm-hit{stroke:#0000;stroke-width:20px;pointer-events:stroke}.tm-badge{fill:var(--surface);stroke:var(--fg-muted);stroke-width:1.6px}.tm-cross .tm-badge{stroke:var(--warning)}.tm-badge-text{fill:var(--fg);text-anchor:middle;font-size:12px;font-weight:700}.tm-on .tm-node,.tm-on .tm-flow{cursor:pointer}.tm-picked .tm-shape{stroke:var(--focus);stroke-width:3.6px}.tm-picked .tm-line{stroke:var(--focus);stroke-width:4px}.tm-picked .tm-head{fill:var(--focus)}.tm-picked .tm-badge{fill:var(--focus);stroke:var(--focus)}.tm-picked .tm-badge-text{fill:var(--surface)}.tm-picked .tm-label{font-weight:700}.tm-legend{border:1px solid var(--border);border-radius:8px;gap:.5rem;padding:.5rem .75rem;display:grid}.tm-legend-title{font-size:.9375rem;font-weight:600}.tm-legend-list{gap:.25rem;margin-top:.25rem;padding-left:1.25rem;font-size:.9375rem;display:grid}ul.tm-legend-list{list-style:outside}ol.tm-legend-list{list-style:decimal}.tm-marks,.tc-marks{padding:0;list-style:none}.tm-mark{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:.5rem .75rem}.tc-layout{grid-template-areas:"diagram""legend""hand";gap:1rem;min-width:0;display:grid}.tc-diagram{grid-area:diagram}.tc-legend{grid-area:legend;min-width:0}.tc-hand{grid-area:hand;align-content:start;gap:1rem;min-width:0;display:grid}@media (min-width:64rem){.tc-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-areas:"diagram hand""legend legend";align-items:start;gap:1.5rem}.tc-diagram{top:calc(var(--header-h) + 1rem);position:sticky}}.tc-card{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;gap:.75rem;min-width:0;padding:.75rem 1rem;display:grid}.tc-card.is-active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.tc-suit{padding-inline:.25rem;font-size:.9375rem;font-weight:600}.tc-text{font-size:1rem;font-weight:400}.tc-text strong{font-weight:600}.tc-where-off{display:none}.tc-where:has(select:disabled) .tc-where-off{display:block}.tc-where:has(select:disabled) .field-label{color:var(--fg-muted)}.tc-card .field:disabled{border-style:dashed}.tc-mark{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;gap:.25rem;padding:.5rem .75rem;display:grid}.tc-mark.is-ok{border:2px solid var(--success)}.tc-mark.is-bad{border:2px solid var(--danger)}.tc-verdict{font-size:.9375rem}.tc-mark.is-ok .tc-verdict strong{color:var(--success)}.tc-mark.is-bad .tc-verdict strong{color:var(--danger)}.request-error{z-index:60;max-width:40rem;box-shadow:var(--shadow-float);inset-inline:1rem;margin-inline:auto;position:fixed;bottom:1rem}.request-error[hidden]{display:none}.request-error-actions{flex-wrap:wrap;gap:.5rem;margin-top:.625rem;display:flex}main.landing{padding:0}.lp-hero{text-align:center;padding-block:5rem 4.5rem}.lp-display{letter-spacing:-.035em;max-width:15ch;margin-inline:auto;font-size:clamp(2.75rem,1.2rem + 5.5vw,5rem);line-height:1.05}.lp-hero .eyebrow{border:1px solid var(--border);background:var(--surface);color:var(--fg-muted);letter-spacing:0;border-radius:980px;align-items:center;margin-bottom:1.5rem;padding:.3125rem .875rem;font-size:.875rem;font-weight:600;display:inline-flex}.lp-sub{max-width:40ch;color:var(--fg-muted);margin:1.5rem auto 0;font-size:clamp(1.1875rem,1rem + .6vw,1.5rem);line-height:1.35}.lp-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem 1rem;margin-top:2.25rem;display:flex}.lp-btn-outline{border-color:var(--accent);color:var(--accent);background:0 0}.lp-btn-outline:hover{background:var(--accent-subtle);border-color:var(--accent)}.lp-window{text-align:left;border:1px solid var(--border);background:var(--surface);max-width:54rem;box-shadow:var(--shadow-float);border-radius:22px;margin:4.5rem auto 0;position:relative;overflow:hidden}.lp-window-bar{gap:.5rem;padding:1rem 1.125rem;display:flex;position:absolute}.lp-window-bar span{background:#ff5f57;border-radius:50%;width:.75rem;height:.75rem}.lp-window-bar span:nth-child(2){background:#febc2e}.lp-window-bar span:nth-child(3){background:#28c840}.lp-window-title{text-align:center;color:var(--fg-muted);background:var(--bg-subtle);border-bottom:1px solid var(--border);padding:.75rem 5.25rem;font-size:.8125rem}.lp-window-body{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));display:grid}.lp-flow{align-content:center;gap:1.25rem;margin:0;padding:1.75rem;list-style-type:none;display:grid}.lp-flow li{gap:.375rem;display:grid}.lp-flow-label{color:var(--fg-muted);font-size:.8125rem;font-weight:600}.lp-flow-code{background:var(--bg-subtle);border-radius:10px;padding:.625rem .75rem;font-size:.9375rem;display:block}.lp-flow-result{font-size:1.0625rem;font-weight:600}.lp-code{background:var(--code-bg);color:var(--code-fg);align-content:center;padding:1.5rem 0;display:grid}.lp-code pre{margin:0;font-size:.875rem;line-height:1.75;overflow-x:auto}.lp-code pre+.lp-code-state{margin-top:1rem}.lp-line{white-space:pre;padding-inline:1.25rem;display:block}.lp-flagged{background:var(--code-flag);box-shadow:inset 3px 0 0 var(--code-flag-edge)}.lp-code .ln{width:2rem;color:var(--code-muted);-webkit-user-select:none;user-select:none;display:inline-block}.lp-code-state{letter-spacing:.02em;margin:0;padding:0 1.25rem .375rem;font-size:.75rem;font-weight:600}.lp-band{background:var(--bg-subtle)}.lp-section{padding-block:clamp(4rem,3rem + 4vw,7rem)}.lp-h2{letter-spacing:-.03em;max-width:18ch;margin:0;font-size:clamp(2.25rem,1.4rem + 3vw,3.5rem);line-height:1.07}.lp-center{text-align:center;margin-inline:auto}.lp-intro{max-width:46ch;color:var(--fg-muted);margin:1.25rem 0 0;font-size:1.3125rem;line-height:1.4}.lp-head-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 1.5rem;margin-bottom:2.5rem;display:flex}.lp-more{align-items:center;gap:.25rem;font-size:1.0625rem;display:inline-flex}.lp-note{max-width:70ch;color:var(--fg-muted);margin:1.5rem 0 0;font-size:.9375rem}.lp-numbers dl{text-align:center;grid-template-columns:repeat(4,minmax(0,1fr));margin-block:0;padding-block:3rem;display:grid}.lp-numbers dl>div{flex-direction:column-reverse;gap:.25rem;padding-inline:1rem;display:flex}.lp-numbers dl>div+div{border-inline-start:1px solid var(--border)}.lp-numbers dt{color:var(--fg-muted);font-size:.9375rem}.lp-numbers dd{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:0;font-size:clamp(2.25rem,1.6rem + 2vw,3rem);font-weight:700;line-height:1.05}@media (max-width:40rem){.lp-numbers dl{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2rem;padding-block:2.5rem}.lp-numbers dl>div:nth-child(odd){border-inline-start:0}}.lp-steps{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:1.25rem;margin:3rem 0 0;padding:0;list-style-type:none;display:grid}.lp-steps li{background:var(--bg-subtle);border-radius:22px;padding:1.75rem}.lp-steps h3{margin:1.25rem 0 .5rem;font-size:1.375rem}.lp-steps p{color:var(--fg-muted);margin:0}.lp-step-no{background:var(--surface);width:2.25rem;height:2.25rem;color:var(--accent);font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;font-size:.875rem;font-weight:700;display:inline-flex}.lp-bento{grid-template-columns:repeat(6,minmax(0,1fr));gap:1.25rem;margin-top:3rem;display:grid}.lp-bento>.lp-tile{grid-column:span 2}.lp-bento>.lp-tile-wide{grid-column:span 4}@media (max-width:52rem){.lp-bento{grid-template-columns:minmax(0,1fr)}.lp-bento>.lp-tile,.lp-bento>.lp-tile-wide{grid-column:auto}}.lp-tile{background:var(--surface);border-radius:22px;flex-direction:column;gap:.75rem;padding:2.25rem;display:flex}.lp-band .lp-tile{border:1px solid #0000}.lp-tile-wide{justify-content:space-between;gap:1.5rem;min-height:16rem}.lp-tile-wide>div{flex-direction:column;gap:.75rem;display:flex}.lp-tile h3{letter-spacing:-.02em;margin:0;font-size:1.5rem;line-height:1.2}.lp-two h3{font-size:1.75rem}.lp-tile p{color:var(--fg-muted);margin:0;font-size:1.0625rem}.lp-tile-wide p{max-width:40ch}.lp-tile-dark{color:#f5f5f7;background:#1d1d1f}.lp-tile-dark h3{color:#f5f5f7}.lp-tile-dark p,.lp-tile-dark .lp-list{color:#c7c7cc}:root[data-theme=dark] .lp-tile-dark{background:#2c2c2e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .lp-tile-dark{background:#2c2c2e}}.lp-pills{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style-type:none;display:flex}.lp-pills li{background:var(--bg-subtle);border-radius:980px;padding:.375rem .875rem;font-size:.875rem;font-weight:500}.lp-pills li:last-child{color:var(--fg-muted);box-shadow:inset 0 0 0 1px var(--border);background:0 0}.lp-cats{column-gap:2.5rem;margin:0;padding:0;font-size:1.1875rem;list-style-type:none;display:grid}@media (min-width:48rem){.lp-cats{grid-template-rows:repeat(5,auto);grid-template-columns:1fr 1fr;grid-auto-flow:column}}.lp-cats li{border-bottom:1px solid var(--border);align-items:baseline;gap:1.25rem;padding-block:1.125rem;display:flex}.lp-cat-code{width:calc(var(--spacing) * 11);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--fg-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.lp-cat-name{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);flex:1}.lp-two{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1.25rem;margin-top:3rem;display:grid}.lp-two .lp-tile{align-items:flex-start;padding:2.5rem}.lp-two .lp-tile .btn{margin-top:auto}.lp-kicker{margin:0;font-size:.9375rem;font-weight:600;color:var(--accent)!important}.lp-kicker-light{color:#6cb6ff!important}.lp-list{color:var(--fg-muted);gap:.625rem;margin:.5rem 0 .25rem;padding:0;line-height:1.45;list-style-type:none;display:grid}.lp-list li{padding-left:1.75rem;position:relative}.lp-list li:before,.lp-list li:after{content:"";position:absolute}.lp-list li:before{background:var(--accent-subtle);border-radius:50%;width:1.125rem;height:1.125rem;top:.25em;left:.125rem}.lp-list li:after{border:solid var(--accent);border-width:0 2px 2px 0;width:.3rem;height:.55rem;top:calc(.25em + .25rem);left:.53rem;transform:rotate(45deg)}.lp-tile-dark .lp-list li:before{background:#ffffff1f}.lp-tile-dark .lp-list li:after{border-color:#6cb6ff}.lp-tile-foot{margin-top:.5rem!important;font-size:.9375rem!important}.lp-final{text-align:center}.lp-final .lp-actions{margin-top:2rem}.lp-final .lp-sub{margin-top:1rem}@media (max-width:40rem){.lp-hero{padding-block:3rem 3.5rem}.lp-window{border-radius:16px;margin-top:3rem}.lp-window-title{text-align:left;padding-inline:5.25rem 1rem}.lp-tile,.lp-two .lp-tile{padding:1.75rem 1.5rem}.lp-tile-wide{min-height:0}.lp-two h3{font-size:1.5rem}.lp-steps li{padding:1.5rem}.lp-intro{font-size:1.1875rem}}body.area-admin{background:var(--bg);color:var(--fg)}.admin-wrap{width:100%;padding-inline:calc(var(--spacing) * 4);margin-inline:auto}@media (min-width:48rem){.admin-wrap{padding-inline:calc(var(--spacing) * 7)}}.admin-wrap{max-width:78rem}.admin-bar{background:var(--admin-band);color:var(--admin-band-fg)}.admin-top{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;min-height:3.75rem;display:flex}.admin-brand{align-items:center;gap:calc(var(--spacing) * 2);--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold);color:var(--admin-band-fg);font-size:1.125rem;text-decoration-line:none;display:inline-flex}.admin-brand:hover{color:var(--admin-band-fg)}.admin-brand .brand-icon path:nth-child(2){stroke:#f5c84c}.admin-badge{color:#1f1500;background:#f5c84c;border-radius:4px;padding:.125rem .625rem;font-size:.8125rem;font-weight:700}.admin-user{color:var(--admin-band-muted);flex-wrap:wrap;align-items:center;gap:.25rem .75rem;margin-inline-start:auto;font-size:.9375rem;display:flex}.admin-user .theme-toggle{color:var(--admin-band-fg)}.admin-user .theme-toggle:hover{background:#ffffff1f}.admin-back{align-items:center;gap:var(--spacing);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);min-height:2.75rem;color:var(--admin-band-fg);display:inline-flex}.admin-back:hover{color:var(--admin-band-fg)}.admin-bar :focus-visible{outline-color:#f5c84c}.admin-tabs ul{gap:0 1.5rem;margin:0;padding:0;list-style-type:none;display:flex;position:relative;overflow-x:auto}.admin-tabs a{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);white-space:nowrap;min-height:3rem;color:var(--admin-band-muted);border-bottom:3px solid #0000;align-items:center;gap:.5rem;padding-inline:.125rem;text-decoration-line:none;display:inline-flex}.admin-tabs a:hover{color:var(--admin-band-fg);text-decoration:none}.admin-tabs a[aria-current=page]{color:var(--admin-band-fg);border-bottom-color:#f5c84c}.admin-tabs ul{scrollbar-width:thin;scrollbar-color:var(--admin-band-muted) transparent}.admin-tabs ul[data-more-end]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 3rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 3rem),#0000)}.admin-tabs ul[data-more-start]{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 3rem),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 3rem),#0000)}.admin-tabs ul[data-more-start][data-more-end]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 3rem calc(100% - 3rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 3rem calc(100% - 3rem),#0000)}@media (max-width:40rem){.admin-top{min-height:3.25rem}.admin-who{text-overflow:ellipsis;white-space:nowrap;max-width:9rem;font-size:.875rem;overflow:hidden}.admin-tabs .icon{display:none}.admin-tabs ul{gap:0 1.25rem}}.admin-main{padding-block:2rem 3rem}.admin-head{gap:.375rem;margin-bottom:1.5rem;display:grid}.admin-head h1{letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;font-size:2.125rem;font-weight:800;display:flex}.admin-head h1 .state{letter-spacing:0;font-size:.875rem}.area-admin h1,.area-admin h2,.area-admin h3{letter-spacing:-.01em}.area-admin .tbl thead th{color:var(--fg);border-bottom:2px solid var(--fg);background:0 0;font-size:.8125rem}.area-admin .tbl tbody tr:nth-child(2n){background:var(--bg-subtle)}.area-admin .table-wrap,.area-admin .table-card,.area-admin .panel,.area-admin .stat{box-shadow:none}.area-admin .state{border-radius:4px}.area-admin .crumbs li+li:before{content:"/"}.stat-alert dd,.stat-alert .stat-value{color:var(--danger)}.admin-stats{padding:0;list-style:none}.admin-stats li{display:grid}.stat-link{color:var(--fg);text-decoration:none}.stat-link .stat-label{color:var(--accent);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px}.stat-link:hover{border-color:var(--accent);color:var(--fg);text-decoration:none}.stat-link:hover .stat-label{text-decoration-thickness:2px}.admin-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1.25rem;margin-top:1.5rem;display:grid}.admin-section{margin-top:2.5rem}.active-filters{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}@media (min-width:64rem){.admin-split{grid-template-columns:minmax(0,1fr) 21rem}}.admin-split-main{min-width:0}.admin-user-page{grid-template-columns:minmax(0,1fr);grid-template-areas:"head""stats""aside""main";align-items:flex-start;gap:1.5rem;display:grid}.admin-user-head{grid-area:head;margin-bottom:0}.admin-user-stats{grid-area:stats}.admin-user-page>.admin-person{grid-area:aside}.admin-user-page>.admin-split-main{grid-area:main}.admin-user-page .admin-section-first{margin-top:.5rem}@media (min-width:64rem){.admin-user-page{grid-template:"head aside""stats aside""main aside"1fr/minmax(0,1fr) 21rem}}.admin-person{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--surface);gap:1rem;padding:1.375rem;display:grid}@media (min-width:64rem){.admin-person{position:sticky;top:1rem}}.admin-person .notice p{margin:0}.admin-person-head{align-items:center;gap:.75rem;display:flex}.admin-person-head .avatar{background:var(--accent-subtle);width:2.75rem;height:2.75rem;color:var(--fg);font-size:.9375rem}.admin-person-head h2{font-size:1.125rem}.admin-facts{gap:.5rem;margin:0;font-size:.9375rem;display:grid}.admin-facts dt{color:var(--fg-muted)}.admin-facts dd{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);margin:0}.admin-actions{gap:1rem;display:grid}.admin-actions form{gap:.375rem;display:grid}.admin-actions .btn{width:100%}.admin-actions .hint{font-size:.875rem}.admin-danger-zone{border-top:1px solid var(--border);gap:1rem;padding-top:1rem;display:grid}.admin-danger-title{color:var(--fg-muted);font-size:.9375rem}.admin-delete{border-top:1px dashed var(--border);padding-top:1rem}.admin-secret-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.admin-secret code{letter-spacing:.04em;padding:.5rem .75rem;font-size:1.5rem}.area-admin .admin-person .btn:not(.btn-primary):not(.btn-danger),.area-admin .admin-locks .btn:not(.btn-primary){background:var(--surface);color:var(--fg);border-color:var(--border-strong)}.area-admin .admin-person .btn.btn-danger{background:var(--surface);color:var(--danger);border-color:var(--danger)}.area-admin .admin-person .btn:not(.btn-primary):hover{background:var(--bg-subtle)}.area-admin .admin-person .btn.btn-danger:hover{background:var(--danger-subtle)}.admin-create{margin-bottom:1.25rem}.admin-create summary{cursor:pointer;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--accent);padding:.875rem 1.25rem}.admin-create-form{gap:.75rem;max-width:34rem;padding:0 1.25rem 1.25rem;display:grid}.admin-row-actions{flex-wrap:wrap;gap:.5rem;display:flex}.admin-cell-label{display:none}@media (max-width:40rem){.admin-courses-wrap{overflow:visible}.tbl.admin-courses thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tbl.admin-courses,.tbl.admin-courses tbody{display:block}.tbl.admin-courses tr{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-start;gap:.75rem 1rem;padding:1rem;display:flex}.tbl.admin-courses tbody tr:last-child{border-bottom:0}.tbl.admin-courses th,.tbl.admin-courses td{border:0;padding:0;display:block}.tbl.admin-courses th[scope=row]{flex:1 1 0;min-width:9rem}.tbl.admin-courses .admin-course-state{flex:none}.tbl.admin-courses .admin-course-actions{flex:100%}.tbl.admin-courses td.num{text-align:start;font-size:.875rem}.tbl.admin-courses .admin-cell-label{color:var(--fg-muted);display:inline}}.admin-locks{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1.25rem;display:grid}.admin-lock-list{gap:.75rem;margin:1rem 0 0;padding:0;list-style-type:none;display:grid}.admin-lock-list li{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding-top:.75rem;display:flex}.admin-caption{text-align:start;padding:.75rem 1rem .25rem;font-weight:700}.event-kind{font-weight:600}.event-admin{color:var(--accent)}.event-detail{overflow-wrap:anywhere;min-width:12rem}.admin-footer{border-top:1px solid var(--border);color:var(--fg-muted);font-size:.875rem}.admin-footer p{margin:0;padding-block:1.25rem}.player{--tone:var(--st-system);max-width:52rem;margin-inline:auto}.player[data-tone=bad]{--tone:var(--st-bad)}.player[data-tone=good]{--tone:var(--st-good)}.player-screen{border:3px solid var(--fg);background:var(--st-bg);box-shadow:0 6px 0 var(--fg);border-radius:22px;position:relative;overflow:hidden}.player-screen:focus{outline:none}.player-screen:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.player-stage{display:grid}.player-scene{min-width:0;margin:0}.player-scene svg{width:100%;height:auto;display:block}.player-scene svg>rect:first-child{rx:0}.st-a{transform-box:fill-box;transform-origin:50% 100%}.player:not(.player-on) .player-screen{box-shadow:none;background:0 0;border:0;overflow:visible}.player:not(.player-on) .player-stage{gap:1.5rem}.player:not(.player-on) .player-scene svg{border-radius:12px}.player:not(.player-on) [data-a=packet],.player:not(.player-on) [data-a=foot],.player:not(.player-on) [data-a=face-from]{display:none}.player-static-caption{margin-top:.75rem;font-size:1.125rem}.player-on .player-scene{visibility:hidden;grid-area:1/1}.player-on .player-scene.is-active{visibility:visible}.player-on .player-static-caption{display:none}.player-hud{border-bottom:3px solid var(--fg);background:var(--surface);justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.player-pips{gap:.375rem;display:flex}.player-pip{border:2px solid var(--st-system);border-radius:50%;width:.75rem;height:.75rem}.player-pip[data-tone=bad]{border-color:var(--st-bad)}.player-pip[data-tone=good]{border-color:var(--st-good)}.player-pip.is-past,.player-pip.is-current{background:var(--st-system)}.player-pip.is-past[data-tone=bad],.player-pip.is-current[data-tone=bad]{background:var(--st-bad)}.player-pip.is-past[data-tone=good],.player-pip.is-current[data-tone=good]{background:var(--st-good)}.player-pip.is-current{transform:scale(1.35)}.player-chip{background:var(--tone);color:var(--st-paper);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.2rem .7rem;font-size:.75rem;font-weight:800;display:inline-block}.player-titlecard{opacity:0;pointer-events:none;place-items:center;display:grid;position:absolute;inset:2.75rem 0 0}.player-titlecard-band{background:var(--tone);color:var(--st-paper);box-shadow:0 5px 0 var(--fg);justify-items:center;padding:.5rem 2.25rem .65rem;display:grid;transform:skew(-10deg)}.player-titlecard-band>*{transform:skew(10deg)}.player-titlecard-number{letter-spacing:.22em;text-transform:uppercase;font-size:.75rem;font-weight:800}.player-titlecard-label{text-transform:uppercase;letter-spacing:.02em;font-size:clamp(1.25rem,1rem + 2.5vw,2.25rem);font-weight:900;line-height:1.1}.player-overlay{text-align:center;place-content:center;justify-items:center;gap:.5rem;padding:1rem;display:grid;position:absolute;inset:0}.player-overlay[hidden]{display:none}.player-start{background:var(--st-bg)}@supports (color:color-mix(in lab, red, red)){.player-start{background:color-mix(in srgb, var(--st-bg) 72%, transparent)}}.player-start{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.player-bigplay{aspect-ratio:1;border:3px solid var(--fg);background:var(--accent-fill);width:clamp(4rem,3rem + 6vw,5.75rem);color:var(--on-accent);box-shadow:0 5px 0 var(--fg);cursor:pointer;border-radius:50%;place-items:center;transition:transform .15s,box-shadow .15s;display:grid}.player-bigplay:hover{transform:translateY(-2px)scale(1.04)}.player-bigplay:active{box-shadow:0 1px 0 var(--fg);transform:translateY(4px)}.player-bigplay svg{fill:currentColor;width:45%;height:45%;margin-left:8%}.player-start-title{color:var(--st-ink);margin:.5rem 0 0;font-size:clamp(1.125rem,1rem + 1vw,1.5rem);font-weight:800}.player-start-meta{color:var(--st-ink);margin:0;font-weight:600}.player-hold{background:linear-gradient(transparent, var(--st-bg));grid-auto-flow:column;padding:.75rem;inset:auto 0 0}@supports (color:color-mix(in lab, red, red)){.player-hold{background:linear-gradient(transparent, color-mix(in srgb, var(--st-bg) 85%, transparent))}}@media (max-width:30rem){.player-hold{grid-auto-flow:row}}.player-subtitle{text-align:center;min-height:3.4em;margin:1.25rem 0 0;padding:0 .5rem;font-size:1.0625rem;line-height:1.5}.player-subtitle strong{color:var(--tone)}.player-subtitle.is-off{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.player-controls{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-card);border-radius:20px;flex-wrap:wrap;align-items:center;gap:.25rem;margin-top:.75rem;padding:.375rem .625rem;display:flex}.player-btn{min-width:2.75rem;height:2.75rem;color:var(--fg);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;padding:0 .5rem;display:inline-grid}.player-btn:hover{background:var(--bg-subtle)}.player-btn svg{width:1.375rem;height:1.375rem}.player-btn[aria-pressed=true]{color:var(--accent);background:var(--accent-subtle)}.player-btn-main{background:var(--accent-fill);width:3.25rem;height:3.25rem;color:var(--on-accent)}.player-btn-main:hover{background:var(--accent-fill-hover)}.player-btn-main svg{fill:currentColor}.player-btn-text{font-variant-numeric:tabular-nums;min-width:3.25rem;font-weight:800}.player-track{flex:8rem;align-items:center;min-width:6rem;height:2.75rem;display:flex;position:relative}.player-chapters{pointer-events:none;gap:3px;height:6px;display:flex;position:absolute;inset:50% 0 auto;transform:translateY(-50%)}.player-chapter{background:var(--st-system);opacity:.35;border-radius:3px;flex:1 1 0}.player-chapter[data-tone=bad]{background:var(--st-bad)}.player-chapter[data-tone=good]{background:var(--st-good)}.player-chapter.is-past{opacity:1}.player-range{cursor:pointer;appearance:none;background:0 0;width:100%;height:2.75rem;margin:0;position:relative}.player-range::-webkit-slider-runnable-track{background:0 0;height:6px}.player-range::-moz-range-track{background:0 0;height:6px}.player-range::-webkit-slider-thumb{border:3px solid var(--surface);background:var(--fg);appearance:none;width:1.25rem;height:1.25rem;box-shadow:0 0 0 1px var(--fg);border-radius:50%;margin-top:-7px}.player-range::-moz-range-thumb{border:3px solid var(--surface);background:var(--fg);width:.875rem;height:.875rem;box-shadow:0 0 0 1px var(--fg);border-radius:50%}.player-range:focus-visible{outline:3px solid var(--focus);outline-offset:0;border-radius:6px}.player-time{font-variant-numeric:tabular-nums;color:var(--fg-muted);white-space:nowrap;padding-inline:.25rem;font-size:.875rem}@media (max-width:36rem){.player-track{flex-basis:100%;order:-1}.player-time{margin-right:auto}}.player-keys{color:var(--fg-muted);margin-top:.5rem;font-size:.875rem}@media (pointer:coarse){.player-keys{display:none}}.player-end.player-overlay{border-top:3px solid var(--fg);background:var(--surface);text-align:left;padding:clamp(1rem,.75rem + 1.5vw,1.75rem);display:block;position:static}.player-quiz-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;margin-bottom:1rem;display:flex}.player-quiz-title,.player-end-title{align-items:center;gap:.5rem;margin:0;font-size:1.375rem;font-weight:800;display:inline-flex}.player-quiz-title:focus,.player-end-title:focus{outline:none}.player-quiz-title svg,.player-end-title svg{color:var(--warning)}.player-quiz-count{color:var(--fg-muted);font-variant-numeric:tabular-nums;margin:0;font-weight:700}.pq-prompt{margin:0 0 .75rem;font-size:1.125rem;font-weight:700}.pq-options{gap:.5rem;display:grid}.pq-option{border:2px solid var(--border-strong);background:var(--surface);width:100%;min-height:2.75rem;color:var(--fg);font:inherit;text-align:left;cursor:pointer;box-shadow:0 3px 0 var(--border-strong);border-radius:14px;padding:.625rem .875rem;transition:transform .12s,box-shadow .12s,border-color .12s}.pq-option:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.pq-option:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.pq-option:disabled{cursor:default}.pq-option.is-right{border-color:var(--success);background:var(--success-subtle);box-shadow:0 3px 0 var(--success);font-weight:700}.pq-option.is-right:before{content:"✓ ";color:var(--success)}.pq-option.is-wrong{border-color:var(--danger);background:var(--danger-subtle);box-shadow:none;text-decoration:line-through}.pq-option.is-wrong:before{content:"✗ ";color:var(--danger);text-decoration:none;display:inline-block}.pq-option.is-picked{opacity:.4;box-shadow:none}.pq-picked{gap:.375rem;min-height:.5rem;margin:0 0 .75rem;padding-left:1.75rem;list-style:decimal;display:grid}.pq-picked:empty{display:none}.pq-picked li{background:var(--accent-subtle);border-radius:10px;padding:.375rem .625rem;font-weight:600}.pq-tools{margin:.75rem 0 0}.pq-feedback{min-height:1.5em;margin:.75rem 0 0;font-weight:700}.pq-feedback.is-right{color:var(--success)}.pq-feedback.is-wrong{color:var(--danger)}.pq-explain{border-left:3px solid var(--accent);color:var(--fg-muted);margin:.25rem 0 0;padding-left:.75rem}.pq-next{margin:1rem 0 0}.pq-done{text-align:center}.pq-stars{justify-content:center;gap:.5rem;margin:0;display:flex}.pq-stars svg{width:2.75rem;height:2.75rem;color:var(--border-strong)}.pq-stars svg.is-on{color:#f5b400;fill:currentColor;animation:.5s cubic-bezier(.2,.9,.3,1.4) both pq-star}.pq-stars svg.is-on:nth-child(2){animation-delay:.15s}.pq-stars svg.is-on:nth-child(3){animation-delay:.3s}@keyframes pq-star{0%{transform:scale(0)rotate(-40deg)}to{transform:scale(1)rotate(0)}}.pq-score{margin:.75rem 0 0;font-size:1.125rem;font-weight:800}.pq-note{color:var(--fg-muted);margin:.25rem 0 0;font-size:.9375rem}.player-end-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1.25rem 0 0;display:flex}.player-end-actions[hidden]{display:none}.player-confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.player-confetti span{border-radius:2px;width:8px;height:12px;position:absolute;top:0}.player:fullscreen{background:var(--bg);flex-direction:column;justify-content:center;max-width:none;padding:1rem 1.5rem;display:flex;overflow:auto}:is(.player:fullscreen .player-screen,.player:fullscreen .player-controls,.player:fullscreen .player-subtitle){width:min(100%,160vh - 19.2rem);margin-inline:auto}.player:fullscreen .player-keys{text-align:center}@media (forced-colors:active){.player-screen,.player-bigplay,.pq-option{border-color:canvastext}.player-chapter{background:canvastext}.player-titlecard-band,.player-chip{border:2px solid canvastext}}.admin-split{align-items:start;gap:1.25rem;display:grid}@media (min-width:64rem){.admin-split{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}}.setting{border:0;min-width:0;margin:0;padding:0}.setting+.setting{box-shadow:inset 0 1px 0 var(--border);margin-top:1.5rem;padding-top:1.5rem}.setting-label{padding:0;font-size:1.0625rem;font-weight:700}.setting-options{gap:.5rem;margin-top:.75rem;display:grid}.admin-preview .player{max-width:none}.lang-switch{border:1px solid var(--border-strong);border-radius:980px;flex-shrink:0;align-items:center;gap:.125rem;padding:.1875rem;display:inline-flex}.lang-switch button{cursor:pointer;border-style:var(--tw-border-style);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);min-width:2.25rem;height:2rem;color:var(--fg-muted);letter-spacing:.02em;background:0 0;border-width:0;border-radius:980px;justify-content:center;align-items:center;padding-inline:.5rem;font-size:.8125rem;display:inline-flex}.lang-switch button:hover{background:var(--bg-subtle);color:var(--fg)}.lang-switch button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.lang-switch button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.admin-user .lang-switch{border-color:#ffffff59}.admin-user .lang-switch button{color:var(--admin-band-muted)}.admin-user .lang-switch button:hover{color:var(--admin-band-fg);background:#ffffff1f}.admin-user .lang-switch button[aria-pressed=true]{background:var(--admin-band-fg);color:var(--admin-band)}@media (max-width:47.99rem){.lang-switch{gap:0;padding:.125rem}.lang-switch button{min-width:1.75rem;height:1.75rem;padding-inline:.25rem;font-size:.75rem}}@media (max-width:27.49rem){.lang-switch{border-color:#0000;padding:0}.lang-switch button[aria-pressed=true]{display:none}}@media (max-width:63.99rem){.admin-user .lang-switch{border-color:#0000;padding:0}.admin-user .lang-switch button[aria-pressed=true]{display:none}}@media (max-width:23.99rem){.site-header .brand{gap:.375rem;font-size:.9375rem}.site-header .user{gap:0}.site-header .user .logout-btn{padding-inline:.375rem}}@media (max-width:21.24rem){.site-header .wrap{column-gap:.25rem}.site-header .brand{font-size:.8125rem}.site-header .user .logout-btn{padding-inline:.25rem;font-size:.8125rem}}.goal-card{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--surface);padding:1rem 1.25rem}.goal-title{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere;margin:0;font-size:1.0625rem}.goal-progress{gap:.375rem;display:grid}.goal-bar{width:100%;height:.875rem}.goal-count{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;margin:0}.goal-edit{min-width:min(100%,18rem)}.goal-edit>summary{cursor:pointer;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);min-height:2.75rem;color:var(--accent);align-items:center;display:inline-flex}.goal-form{grid-template-columns:repeat(auto-fill,minmax(min(100%,11rem),1fr));align-items:start;gap:1rem;display:grid}.goal-form .wide{grid-column:1/-1}.goal-form select.field{width:100%;font-family:var(--font-sans)}.evt-page{gap:1.25rem;max-width:44rem;margin-inline:auto;display:grid}.evt-alias{border-radius:var(--radius-md);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);background:var(--accent-subtle);color:var(--fg);white-space:nowrap}.evt-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;display:flex}.evt-big{letter-spacing:-.01em;font-size:1.375rem;font-weight:700}.evt-prompt{overflow-wrap:anywhere;font-size:1.1875rem;font-weight:600;line-height:1.35}.evt-choice{align-items:center}.evt-choice input{margin-top:0}.evt-letter{font-family:var(--font-mono);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;flex-shrink:0;place-items:center;width:1.75rem;height:1.75rem;display:inline-grid}.evt-code-field{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;max-width:14rem;font-size:1.5rem}.evt-results{gap:.875rem;display:grid}.evt-headline{font-size:1.25rem;font-weight:700;line-height:1.35}.evt-bars{gap:.625rem;margin:0;padding:0;list-style-type:none;display:grid}.evt-bar{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"letter text""bar bar""value value";align-items:center;gap:.25rem .75rem;display:grid}@media (min-width:40rem){.evt-bar{grid-template-columns:auto minmax(0,1fr) minmax(6rem,14rem) 8.5rem;grid-template-areas:"letter text bar value"}}.evt-options .evt-bar{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"letter text"}.evt-bar .evt-letter{grid-area:letter}.evt-bar-text{overflow-wrap:anywhere;grid-area:text}.evt-bar-svg{grid-area:bar;width:100%;height:.875rem;display:block}.evt-bar-value{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:value}.evt-bar-value .muted{font-weight:400}.evt-headline .segments{font-size:inherit;font-weight:600}@media (min-width:40rem){.evt-bar-value{text-align:right}}.evt-bar.is-correct .evt-letter{border-color:var(--success);background:var(--success-subtle);color:var(--success)}.evt-bar-fill-correct{fill:var(--success)}.evt-tag{margin-left:var(--spacing);align-items:center;gap:var(--spacing);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 2);vertical-align:middle;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);border-width:1px;border-color:var(--border-strong);white-space:nowrap;border-radius:3.40282e38px;display:inline-flex}.evt-tag .icon{width:.875rem;height:.875rem}.evt-tag-correct{border-color:var(--success);color:var(--success);background:var(--success-subtle)}.evt-summary{color:var(--fg-muted)}.evt-explanation{border-radius:var(--radius-lg);border-style:var(--tw-border-style);padding:calc(var(--spacing) * 4);border-width:1px;border-color:var(--border);background:var(--bg-subtle)}.evt-people{align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--fg-muted);display:inline-flex}.evt-count{font-size:1.125rem;font-weight:600}.evt-screen-live{gap:1rem;display:grid}.evt-code-inline{letter-spacing:.12em}.evt-question-list{gap:.5rem;margin:0;padding:0;list-style-type:none;display:grid}.evt-question-list>li{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem 1rem;display:flex}.event-screen-page .site-footer{display:none}.event-screen-main{width:min(100% - 2rem,80rem);margin-inline:auto;padding-block:1.5rem 3rem}.evt-screen{gap:1.5rem;display:grid}.evt-screen-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;display:flex}.evt-join-line{font-size:clamp(1.125rem,2.2vw,1.75rem)}.evt-url{overflow-wrap:anywhere}.evt-code{font-family:var(--font-mono);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);letter-spacing:.18em;color:var(--fg);font-size:clamp(2.5rem,9vw,6rem);line-height:1.05}.evt-screen .evt-prompt{font-size:clamp(1.375rem,3vw,2.5rem)}.evt-screen .evt-bar-text,.evt-screen .evt-headline{font-size:clamp(1.125rem,2vw,1.75rem)}.evt-screen .evt-headline{font-size:clamp(1.375rem,3vw,2.5rem)}.evt-screen .evt-letter{width:2.5rem;height:2.5rem;font-size:1.25rem}.evt-screen .evt-bar-svg{height:1.5rem}.evt-screen .evt-bar-value{font-size:clamp(1rem,1.8vw,1.5rem)}.evt-screen .evt-count,.evt-screen .evt-people,.evt-screen .evt-big{font-size:clamp(1.125rem,2.2vw,1.75rem)}.evt-screen .code-frame{font-size:clamp(.95rem,1.6vw,1.35rem)}@media (min-width:40rem){.evt-screen .evt-bar{grid-template-columns:auto minmax(0,1fr) minmax(8rem,22rem) 13rem}}.wrap{width:100%;padding-inline:calc(var(--spacing) * 4);margin-inline:auto}@media (min-width:48rem){.wrap{padding-inline:calc(var(--spacing) * 6)}}.wrap{max-width:68rem}.measure{max-width:68ch}.muted{color:var(--color-ink-soft)}.small{font-size:.9375rem}.eyebrow{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--warning);margin:0;font-size:1.0625rem}.icon{vertical-align:-.2em;flex:none;width:1.125em;height:1.125em;display:inline-block}.icon-fill{fill:currentColor}.prose-lite{font-size:1.0625rem;line-height:1.6}.prose-lite>*+*{margin-top:calc(var(--spacing) * 3)}.prose-lite ul{list-style-type:disc}:where(.prose-lite ul>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.prose-lite ul{padding-left:calc(var(--spacing) * 6)}.skip-link{top:calc(var(--spacing) * 2);left:calc(var(--spacing) * 2);z-index:50;--tw-translate-y:calc(var(--spacing) * -24);translate:var(--tw-translate-x) var(--tw-translate-y);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);border-width:2px;position:absolute}.skip-link:focus{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.skip-link{background:var(--surface);color:var(--fg);border-color:var(--fg);border-radius:10px}.site-header{z-index:40;background:var(--header-bg);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header .wrap{align-items:center;column-gap:calc(var(--spacing) * 4);flex-wrap:wrap;row-gap:0;min-height:3.25rem;display:flex}.brand{align-items:center;gap:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--fg);letter-spacing:-.01em;font-size:1.0625rem;text-decoration-line:none;display:inline-flex}.brand:hover{text-decoration-line:none}.brand-icon{width:1.375rem;height:1.375rem}.brand-icon path:nth-child(2){stroke:var(--taint-edge);stroke-width:3px}.nav{margin-inline-start:auto}.nav ul{flex-wrap:wrap;gap:.25rem;margin:0;padding:0;list-style-type:none;display:flex}.nav a{min-height:2.75rem;color:var(--fg);border-radius:980px;align-items:center;padding-inline:.875rem;font-size:.9375rem;text-decoration-line:none;display:inline-flex}.nav a:hover{background:var(--bg-subtle);text-decoration:none}.nav a[aria-current=page]{background:var(--bg-subtle);font-weight:700}.user{align-items:center;gap:.375rem;display:flex}.user-link{min-height:2.75rem;color:var(--fg);border-radius:980px;align-items:center;gap:.5rem;padding:0 .5rem 0 .25rem;font-size:.9375rem;font-weight:600;text-decoration-line:none;display:inline-flex}.user-link:hover{background:var(--bg-subtle);text-decoration:none}.avatar{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);text-transform:uppercase;background:var(--fg);width:2rem;height:2rem;color:var(--bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8125rem;display:inline-flex}.nav-public a{font-weight:400}@media (max-width:47.99rem){.nav{border-top:1px solid var(--border);order:3;width:100%;margin:0}.nav ul{scrollbar-width:none;flex-wrap:nowrap;justify-content:space-between;gap:0;overflow-x:auto}.nav a{white-space:nowrap;padding-inline:.625rem}.nav a:focus-visible{outline-offset:-3px}.nav ul[data-more-end]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}.nav ul[data-more-start]{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000)}.nav ul[data-more-start][data-more-end]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000)}.user{gap:.125rem;margin-inline-start:auto}.user .btn{padding-inline:.625rem;font-size:.875rem}.user-name{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header .wrap{column-gap:.5rem}.nav-public{display:none}}@media (max-width:24rem){.nav-public+.user .theme-toggle{display:none}}@media (max-width:23.99rem){.nav a{padding-inline:.3125rem;font-size:.875rem}}.theme-toggle{cursor:pointer;border-style:var(--tw-border-style);width:2.75rem;height:2.75rem;color:var(--fg);background:0 0;border-width:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.theme-toggle:hover{background:var(--bg-subtle)}.theme-toggle .icon{width:1.25rem;height:1.25rem}.theme-toggle .icon-sun{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:inline-block}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .icon-sun{display:inline-block}:root:not([data-theme=light]) .theme-toggle .icon-moon{display:none}}.btn{justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);border-style:var(--tw-border-style);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);border-radius:var(--btn-radius);border-width:1px;border-color:var(--border-strong);background:var(--surface);min-height:2.75rem;color:var(--fg);cursor:pointer;padding:.5rem 1.25rem;font-size:1rem;text-decoration-line:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover{background:var(--bg-subtle);border-color:var(--fg-muted);text-decoration:none}.btn:active{background:var(--border)}.btn-primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-fill-hover);border-color:var(--accent-fill-hover);color:var(--on-accent)}.btn-primary:active{background:var(--accent-fill-hover)}.btn-quiet{color:var(--accent);background:0 0;border-color:#0000}.btn-quiet:hover{background:var(--accent-subtle);border-color:#0000}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger-subtle);border-color:var(--danger)}.btn-lg{min-height:3rem;padding-inline:1.5rem;font-size:1.0625rem}.btn-sm{min-height:2.25rem;padding:.25rem .875rem;font-size:.9375rem}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;background:var(--bg-subtle);border-color:var(--border);color:var(--fg-muted)}.btn[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn-link{border-style:var(--tw-border-style);min-height:2.75rem;color:var(--accent);font:inherit;cursor:pointer;background-color:#0000;border-width:0;padding:0;text-decoration-line:underline}.crumbs{margin-bottom:calc(var(--spacing) * 4);font-size:.9375rem}.crumbs ol{flex-wrap:wrap;gap:.25rem .5rem;margin:0;padding:0;list-style-type:none;display:flex}.crumbs li+li:before{content:"›";color:var(--fg-muted);margin-inline-end:.5rem}.crumbs a{padding-block:.25rem;text-decoration:none;display:inline-block}.crumbs [aria-current]{padding-block:.25rem}.page-head{gap:.75rem;max-width:48rem;display:grid}.lead{letter-spacing:-.01em;font-size:1.3125rem;line-height:1.38}.meta{flex-wrap:wrap;gap:.25rem 1.5rem;margin:0;font-size:.9375rem;display:flex}.meta>div{gap:.25rem;display:flex}.meta dt{color:var(--fg-muted)}.meta dd{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;margin:0}.meta-line{color:var(--fg-muted);font-size:.9375rem}.state{border-style:var(--tw-border-style);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);white-space:nowrap;color:var(--fg-muted);border-width:1px;border-color:currentColor;border-radius:980px;flex-shrink:0;padding:.1rem .625rem;display:inline-block}.state-done,.state-pass{color:var(--success);background:var(--success-subtle)}.state-doing{color:var(--accent);background:var(--accent-subtle)}.state-vuln,.state-fail{color:var(--danger);background:var(--danger-subtle)}.state-warn{color:var(--warning);background:var(--warning-subtle)}.tag{border-style:var(--tw-border-style);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));border-width:1px;border-color:var(--border-strong);color:var(--fg);border-radius:980px;padding:0 .625rem;display:inline-block}.task a.task-title,.task .meta-line a{text-decoration:none}.task a.task-title:hover,.task .meta-line a:hover{text-underline-offset:3px;text-decoration:underline}.task-list{margin:0;padding:0;list-style-type:none}.task{border-top:1px solid var(--border);gap:.25rem;padding:.875rem 0;display:grid}.task:last-child{border-bottom:1px solid var(--border)}.task-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.task-title{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.difficulty{color:var(--fg-muted);font-size:.9375rem}.stars{letter-spacing:.1em;color:var(--fg)}.notice{border-style:var(--tw-border-style);border-width:1px;border-color:var(--border-strong);background:var(--bg-subtle);border-radius:14px;padding:.875rem 1.125rem}.notice-note{background:var(--accent-subtle);border-color:var(--accent)}.notice-warning{background:var(--warning-subtle);border-color:var(--warning)}.notice-important{background:var(--danger-subtle);border-color:var(--danger)}.content-alert{z-index:60;width:min(34rem,100% - 2rem);position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000040}.content-alert[hidden]{display:none}.content-alert-actions{margin-top:.625rem}.notice-success{background:var(--success-subtle);border-color:var(--success)}.notice-flash{align-items:flex-start;gap:.625rem;display:flex}.notice-flash p{margin:0}.notice-flash .notice-icon{flex:none;width:1.25rem;height:1.25rem;margin-top:.125rem}.notice-success .notice-icon{color:var(--success)}.notice-note .notice-icon{color:var(--accent)}.notice-warning .notice-icon{color:var(--warning)}.notice-important .notice-icon{color:var(--danger)}.confirm-dialog{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--surface);width:min(30rem,100vw - 2rem);color:var(--fg);margin:auto;padding:1.5rem;box-shadow:0 20px 50px #0000004d}.confirm-dialog::backdrop{background:#0a0f1e8c}.confirm-dialog-text{margin:0;font-size:1.0625rem;line-height:1.5}.confirm-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.btn-danger-fill{background:var(--danger);border-color:var(--danger);color:var(--surface)}.btn-danger-fill:hover{background:var(--danger);border-color:var(--danger);color:var(--surface);filter:brightness(.92)}.banner{border-style:var(--tw-border-style);border-radius:var(--card-radius);border-width:2px;border-color:var(--success);background:var(--success-subtle);padding:1.125rem}.banner h2{color:var(--success);font-size:1.0625rem}.banner-fail{border-color:var(--danger);background:var(--danger-subtle)}.banner-fail h2{color:var(--danger)}.objective{border-style:var(--tw-border-style);border-radius:var(--card-radius);border-width:1px;border-color:var(--border-strong);gap:.5rem;padding:1.125rem;display:grid}.objective h2{font-size:1.0625rem}.panel{border-style:var(--tw-border-style);background-color:var(--color-surface);border-radius:var(--card-radius);border-width:1px;border-color:var(--border);box-shadow:var(--shadow-card)}.panel-body{padding:calc(var(--spacing) * 5)}@media (min-width:48rem){.panel-body{padding:calc(var(--spacing) * 6)}}.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:1rem;display:grid}.stat{border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);gap:.125rem;padding:1rem 1.25rem;display:grid}.stat dt,.stat .stat-label{color:var(--fg-muted);font-size:.875rem}.stat dd,.stat .stat-value{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:0;font-size:1.75rem;line-height:1.15}.stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5rem),1fr));gap:.75rem;margin:0;display:grid}.status{align-items:center;gap:calc(var(--spacing) * 1.5);border-style:var(--tw-border-style);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);border-width:1px;border-color:currentColor;border-radius:980px;padding:.15rem .625rem;display:inline-flex}.status-risky{color:var(--danger);background:var(--danger-subtle)}.status-blocked,.status-safe{color:var(--success);background:var(--success-subtle)}.status-invalid{color:var(--warning);background:var(--warning-subtle)}.status-error,.status-sim{color:var(--fg-muted);background:var(--bg-subtle)}.table-wrap{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--surface);position:relative;overflow-x:auto}.tbl,.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:.9375rem}.tbl caption{padding-bottom:calc(var(--spacing) * 2);text-align:left;--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.tbl th,.tbl td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:.75rem 1rem}.tbl tbody tr:last-child>*{border-bottom:0}.tbl th{font-weight:600}.tbl thead th{color:var(--fg-muted);background:var(--bg-subtle);border-bottom-color:var(--border);font-size:.8125rem}.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tbl tbody tr:hover{background:var(--bg-subtle)}.table-card{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--surface);overflow:hidden}.table-card>.table-wrap{border:0;border-radius:0}.table-wrap+.meta-line,.table-wrap+p{margin-top:.75rem}.tabs{border-bottom:1px solid var(--border);gap:.25rem;margin:0;padding:0;list-style-type:none;display:flex;position:relative;overflow-x:auto}.tabs a{white-space:nowrap;min-height:2.75rem;color:var(--fg);border-bottom:3px solid #0000;align-items:center;margin-bottom:-1px;padding-inline:.875rem;text-decoration-line:none;display:inline-flex}.tabs a:hover{background:var(--bg-subtle);text-decoration:none}.tabs a[aria-current=page]{border-bottom-color:var(--accent);font-weight:700}.filters{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;display:flex}.filters .field-group{gap:.375rem;display:grid}.filters-card{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--surface);padding:1rem 1.25rem}.pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.pager-count{color:var(--fg-muted);font-variant-numeric:tabular-nums;margin:0;font-size:.9375rem}.pager-pages{flex-wrap:wrap;align-items:center;gap:.25rem;margin:0;padding:0;list-style-type:none;display:flex}.pager-pages a,.pager-pages span{border-radius:var(--btn-radius);min-width:2.75rem;min-height:2.75rem;color:var(--fg);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;padding-inline:.75rem;text-decoration-line:none;display:inline-flex}.pager-pages a:hover{background:var(--bg-subtle);text-decoration:none}.pager-pages [aria-current=page]{background:var(--fg);color:var(--bg);font-weight:700}.pager-pages .pager-gap{min-width:1.5rem;color:var(--fg-muted);padding:0}.pager-pages [aria-disabled=true]{color:var(--fg-muted);opacity:.6}.table-card>.pager{border-top:1px solid var(--border);padding:.5rem 1rem}.summary{flex-wrap:wrap;gap:.25rem 1.5rem;margin:0;display:flex}.summary>div{align-items:baseline;gap:.5rem;display:flex}.summary dt{color:var(--fg-muted)}.summary dd{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;margin:0}.progress-line{align-items:center;gap:calc(var(--spacing) * 3);font-size:.9375rem;display:flex}.progress-line progress{flex:8rem;max-width:20rem}.taint{background:var(--taint-bg);color:var(--taint-fg);box-shadow:inset 0 -2px 0 var(--taint-edge);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px;padding:0 .15em}.form-group{gap:.375rem;display:grid}.form-group.is-error{border-left:0}.form-group.is-error .field{border:2px solid var(--danger)}.field-label{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);font-size:.9375rem;display:block}.hint{color:var(--fg-muted);font-size:.9375rem}.error-message{--tw-font-weight:var(--font-weight-semibold);font-size:.9375rem;font-weight:var(--font-weight-semibold);color:var(--danger)}.error-summary{border-style:var(--tw-border-style);border-width:2px;border-color:var(--danger);background:var(--danger-subtle);border-radius:14px;padding:1rem 1.125rem}.error-summary h2{color:var(--danger);font-size:1.0625rem}.error-summary ul{margin-top:calc(var(--spacing) * 2);padding-left:calc(var(--spacing) * 5);list-style-type:disc}.field{border-style:var(--tw-border-style);background-color:var(--color-surface);width:100%;padding-inline:calc(var(--spacing) * 3);font-family:var(--font-mono);color:var(--color-ink);border-width:1px;border-color:var(--border-strong);border-radius:12px;min-height:2.75rem;padding-block:.5rem;transition:border-color .15s,box-shadow .15s}.field:hover{border-color:var(--fg-muted)}.field:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-subtle)}.field:disabled{background:var(--bg-subtle);color:var(--fg-muted);cursor:not-allowed}.field-text{font-family:var(--font-ui)}textarea.field{min-height:7rem}select.field{font-family:var(--font-ui)}select.field:not([multiple]):not([size]){--chevron:var(--fg-muted);appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent calc(50% - .75px), var(--chevron) calc(50% - .75px), var(--chevron) calc(50% + .75px), transparent calc(50% + .75px)), linear-gradient(135deg, transparent calc(50% - .75px), var(--chevron) calc(50% - .75px), var(--chevron) calc(50% + .75px), transparent calc(50% + .75px));text-overflow:ellipsis;background-position:calc(100% - 1.25rem) 52%,calc(100% - .875rem) 52%;background-repeat:no-repeat;background-size:.375rem .375rem;padding-right:2.5rem}select.field:not([multiple]):not([size]):hover{--chevron:var(--fg)}select.field:disabled{cursor:not-allowed}select.field option{color:var(--fg);background:var(--surface)}.segmented{border-style:var(--tw-border-style);background-color:var(--color-surface);padding:var(--spacing);border-width:1px;border-color:var(--border-strong);border-radius:12px;display:inline-flex}.segmented label{cursor:pointer;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--fg-muted);border-radius:8px}.segmented input{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.segmented label:has(input:checked){background:var(--fg);color:var(--bg)}.segmented label:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.toggle-btn{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--fg-muted);border-radius:8px}.toggle-btn[aria-pressed=true]{background:var(--fg);color:var(--bg)}.tabbar{gap:var(--spacing);border-bottom:1px solid var(--border);display:flex}.tab{border-bottom-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--fg-muted);border-color:#0000;border-bottom-width:3px;margin-bottom:-1px}.tab[aria-selected=true]{border-color:var(--fg);color:var(--fg)}.tab-vuln[aria-selected=true]{border-color:var(--danger);color:var(--danger)}.tab-secure[aria-selected=true]{border-color:var(--success);color:var(--success)}.choice{cursor:pointer;align-items:flex-start;gap:calc(var(--spacing) * 3);border-style:var(--tw-border-style);background-color:var(--color-surface);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);border-width:1px;border-color:var(--border-strong);border-radius:12px;min-height:2.75rem;display:flex}.choice:hover{background:var(--bg-subtle)}.choice:has(input:checked){border-color:var(--accent);background:var(--accent-subtle);box-shadow:inset 0 0 0 1px var(--accent)}.choice input{margin-top:calc(var(--spacing) * 1.5);accent-color:var(--accent)}.line-choice{font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.choice-code{min-width:0;font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));white-space:pre-wrap;overflow-wrap:anywhere}.chip-choice{cursor:pointer;border-style:var(--tw-border-style);background-color:var(--color-surface);max-width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));overflow-wrap:anywhere;border-width:1px;border-color:var(--border-strong);border-radius:10px}.chip-choice:hover{background:var(--bg-subtle)}.chip-choice input{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.chip-choice:has(input:checked){border-color:var(--accent);background:var(--accent-subtle);box-shadow:inset 0 0 0 1px var(--accent)}.chip-choice:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.section{scroll-margin-top:calc(var(--spacing) * 20);border-top-style:var(--tw-border-style);padding-top:calc(var(--spacing) * 8);border-top-width:1px;border-color:var(--border)}.section-title{margin-bottom:calc(var(--spacing) * 4);align-items:baseline;gap:calc(var(--spacing) * 3);display:flex}.code-frame{border-style:var(--tw-border-style);border-width:1px;border-color:var(--code-line);background:var(--code-bg);border-radius:14px;overflow:hidden}.code-frame :focus-visible{outline-color:var(--focus-on-code)}.code-frame-head{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 3);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--code-muted);border-bottom:1px solid var(--code-line);display:flex}.code-state{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.code-state-vuln{color:#ff9a8f}.code-state-fixed{color:#7fdcb0}.code-frame-note{padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));border-top:1px solid var(--code-line);color:var(--code-fg)}.code-frame-note code{background:var(--code-line);color:var(--code-fg)}.code-fallback{color:var(--code-fg);padding:0;margin:0;padding-block:.75rem;font-size:.92rem;line-height:1.6;overflow-x:auto}.code-fallback .ln{display:flex}.code-fallback .ln-no{width:calc(var(--spacing) * 10);padding-right:calc(var(--spacing) * 3);text-align:right;-webkit-user-select:none;user-select:none;color:var(--code-muted);flex-shrink:0;display:inline-block}.code-fallback .ln-text{padding-right:calc(var(--spacing) * 4);overflow-wrap:break-word;white-space:pre-wrap}.code-fallback .ln-flag{background:var(--code-flag);box-shadow:inset 3px 0 0 var(--code-flag-edge)}.seg-input{background:var(--taint-bg);color:var(--taint-fg);box-shadow:inset 0 -2px 0 var(--taint-edge);padding-inline:calc(var(--spacing) * .5);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px}.seg-danger{padding-inline:calc(var(--spacing) * .5);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--danger);background:var(--danger-subtle);text-underline-offset:3px;border-radius:3px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.seg-warning{color:var(--warning)}.seg-safe{color:var(--success);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.seg-muted{color:var(--fg-muted);text-decoration-line:line-through;text-decoration-thickness:1px}.code-frame .seg-danger{color:#ffb4a8;background:#ff786433}.code-frame .seg-safe{color:#7ee2d0}.code-frame .seg-muted{color:var(--code-muted)}.code-frame .seg-warning{color:#f0b65a}.code-pre{padding:calc(var(--spacing) * 4);color:var(--code-fg);margin:0;font-size:.9rem;overflow-x:auto}html:not(.js) .js-only{display:none}.segments{font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;font-size:.9rem}.st-figure{max-width:var(--container-xl);margin-inline:auto}.st-panel{width:100%;height:auto;display:block}.st-caption{margin-top:calc(var(--spacing) * 3);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.progress-count{font-variant-numeric:tabular-nums}.site-footer{background:var(--bg-subtle);color:var(--fg-muted);margin-top:4rem;font-size:.8125rem}.site-footer .wrap{padding-block:2rem 1.75rem}.footer-note{border-bottom:1px solid var(--border);margin:0;padding-bottom:1.25rem}.footer-cols{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:1.5rem;padding-top:1.25rem;display:grid}.footer-cols h2{margin:0;margin-bottom:calc(var(--spacing) * 2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--fg);letter-spacing:0;font-size:.8125rem}.footer-cols ul{margin:0;padding:0;list-style-type:none}.footer-cols a{color:var(--fg-muted);padding-block:.3rem;text-decoration:none;display:inline-block}.footer-cols a:hover{color:var(--fg);text-decoration:underline}.footer-legal{margin:0;padding-top:1.25rem}.error-page{justify-items:start;gap:1rem;max-width:40rem;padding-block:4rem 2rem;display:grid}.error-code{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--warning);font-variant-numeric:tabular-nums;margin:0;font-size:1.0625rem}.error-ref{font-family:var(--font-mono)}.cs-header{margin-bottom:calc(var(--spacing) * 6);border-bottom-style:var(--tw-border-style);border-bottom-width:2px;border-color:var(--color-ink);padding-bottom:calc(var(--spacing) * 4)}.radar{width:100%;height:auto;max-width:var(--container-md);margin-inline:auto;display:block}.radar-ring,.radar-spoke{fill:none;stroke:var(--line);stroke-width:1px}.radar-area{fill:var(--accent);fill-opacity:.22;stroke:var(--accent);stroke-width:2.5px;stroke-linejoin:round}.radar-placement{fill:none;stroke:var(--ink-soft);stroke-width:2px;stroke-dasharray:6 4}.radar-dot{fill:var(--accent);stroke:var(--surface);stroke-width:1.5px}.radar-label{fill:var(--ink);font:600 13px var(--font-mono)}.radar-scale{fill:var(--ink-soft);font-size:9px}.comp-key{width:calc(var(--spacing) * 6);border-top-style:var(--tw-border-style);vertical-align:middle;border-top-width:3px;display:inline-block}.cs-fine{margin-top:calc(var(--spacing) * 2);color:var(--color-ink-soft);font-size:.8125rem}.cs-list{list-style-type:disc}:where(.cs-list>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.cs-list{padding-left:calc(var(--spacing) * 6)}.cs-links{padding-left:0;list-style-type:none}.cs-footer{margin-top:calc(var(--spacing) * 8);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-line);padding-top:calc(var(--spacing) * 3);color:var(--color-ink-soft);font-size:.8125rem}.flow{counter-reset:flow;gap:0;display:grid}.flow-step{border-left-style:var(--tw-border-style);padding-bottom:calc(var(--spacing) * 5);padding-left:calc(var(--spacing) * 5);border-left-width:2px;border-color:var(--line);position:relative}.flow-step:last-child{padding-bottom:0}.flow-step:before{content:"";top:calc(var(--spacing) * 1.5);width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3);border-radius:var(--radius-sm);border-style:var(--tw-border-style);background-color:var(--color-surface);border-width:2px;border-color:var(--border-strong);position:absolute;left:-7px}.flow-step[data-stage=source]:before{background:var(--input-bg);border-color:var(--input-bg)}.flow-step[data-stage=sink]:before{border-color:var(--accent)}.flow-step[data-stage=result]:before{background:var(--accent);border-color:var(--accent)}.flow-stage{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-ink-soft)}.flow-title{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.flow-code{margin-top:calc(var(--spacing) * 2);border-radius:var(--radius-md);padding:calc(var(--spacing) * 3);background:var(--surface-2)}.kv{column-gap:calc(var(--spacing) * 4);row-gap:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));display:grid}@media (min-width:40rem){.kv{grid-template-columns:minmax(10rem,auto) 1fr}}.kv dt{color:var(--color-ink-soft)}.kv dd{font-family:var(--font-mono);overflow-wrap:anywhere}.pixel-grid{border-style:var(--tw-border-style);border-width:1px;border-color:var(--line);border-radius:.25rem;width:100%;height:auto;display:block}.bar-row{align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));grid-template-columns:7.5rem minmax(0,1fr) 5.5rem;display:grid}.bar-label{font-family:var(--font-mono);overflow-wrap:anywhere}.bar{height:calc(var(--spacing) * 3);width:100%;display:block}.bar-track{fill:var(--surface-2)}.bar-fill{fill:var(--accent)}.bar-hot{fill:var(--danger)}.bar-value{text-align:right;font-family:var(--font-mono)}.code-viewer,.code-editor{font-size:.92rem}.code-viewer .cm-editor,.code-viewer.cm-editor{background:var(--code-bg);color:var(--code-ink)}.code-editor.cm-editor{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-line);background-color:var(--color-surface);min-height:7rem}.code-editor.cm-focused{outline-offset:2px;outline:3px solid var(--focus)!important}.cm-editor .cm-scroller{font-family:var(--font-mono);line-height:1.6}.code-viewer .cm-gutters{background:var(--code-bg);color:var(--code-muted);border:0}.code-viewer .cm-content{padding-block:.75rem}.code-viewer .cm-flagged-line{background:var(--code-flag);box-shadow:inset 3px 0 #f67864}.code-editor .cm-gutters{display:none}.code-viewer .tok-keyword,.code-viewer .tok-operatorKeyword{color:#9db7ff}.code-viewer .tok-string,.code-viewer .tok-string2{color:#b9e39b}.code-viewer .tok-number,.code-viewer .tok-bool,.code-viewer .tok-atom{color:#f7c47e}.code-viewer .tok-comment{color:#8a94a7;font-style:italic}.code-viewer .tok-variableName,.code-viewer .tok-propertyName{color:#e6e9ef}.code-viewer .tok-definition,.code-viewer .tok-function{color:#ffd9a8}.code-viewer .tok-typeName,.code-viewer .tok-className{color:#8fe0d3}.code-viewer .tok-tagName{color:#ff9e9e}.code-viewer .tok-attributeName{color:#f7c47e}.code-viewer .tok-meta,.code-viewer .tok-processingInstruction{color:#c3a6ff}.code-editor .tok-string{color:var(--safe)}.code-editor .tok-number,.code-editor .tok-bool{color:var(--warning)}.code-editor .tok-propertyName{color:var(--accent)}}@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;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.m-0{margin:0}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mb-0{margin-bottom:0}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.w-36{width:calc(var(--spacing) * 36)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-24{max-width:calc(var(--spacing) * 24)}.max-w-\[46rem\]{max-width:46rem}.min-w-0{min-width:0}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1{row-gap:var(--spacing)}.overflow-x-auto{overflow-x:auto}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent{border-color:var(--color-accent)}.border-ink-soft{border-color:var(--color-ink-soft)}.border-line{border-color:var(--color-line)}.py-1{padding-block:var(--spacing)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-\[0\.875rem\]{font-size:.875rem}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[0\.9375rem\]{font-size:.9375rem}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.text-danger{color:var(--color-danger)}.text-ink-soft{color:var(--color-ink-soft)}.text-safe{color:var(--color-safe)}.text-success{color:var(--color-success)}.uppercase{text-transform:uppercase}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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,)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}@media (min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:w-48{width:calc(var(--spacing) * 48)}.sm\:max-w-none{max-width:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:gap-3{gap:calc(var(--spacing) * 3)}}@media (min-width:48rem){.md\:block{display:block}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,26rem\)_1fr\]{grid-template-columns:minmax(0,26rem) 1fr}}}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-display:swap;font-weight:400 900;src:url(fonts/schibsted-grotesk-latin-wght-normal.woff2)format("woff2-variations")}@font-face{font-family:Atkinson Mono;font-style:normal;font-display:swap;font-weight:400;src:url(fonts/atkinson-mono-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Atkinson Mono;font-style:normal;font-display:swap;font-weight:600;src:url(fonts/atkinson-mono-latin-600-normal.woff2)format("woff2")}:root{--bg:#fff;--bg-subtle:#f5f5f7;--surface:#fff;--surface-raised:#fff;--fg:#1d1d1f;--fg-muted:#6e6e73;--border:#d2d2d7;--border-strong:#86868b;--accent:#06c;--accent-hover:#004f9e;--accent-fill:#0071e3;--accent-fill-hover:#0062c4;--accent-subtle:#e8f1fb;--on-accent:#fff;--danger:#c4291c;--danger-subtle:#fdeeec;--success:#1d7a3a;--success-subtle:#e7f5ea;--warning:#a35200;--warning-subtle:#fdf1e2;--taint-bg:#f5c84c;--taint-fg:#2b1d00;--taint-edge:#9a6a00;--code-bg:#161a21;--code-fg:#e4e7ec;--code-muted:#949eae;--code-line:#2b313b;--code-flag:#3a2326;--code-flag-edge:#ff8a7a;--focus:#0071e3;--focus-on-code:#8fb3ff;--header-bg:#ffffffc7;--shadow-card:0 1px 2px #0000000a, 0 8px 28px #0000000f;--shadow-float:0 2px 6px #0000000f, 0 30px 80px #0000001f;--btn-radius:980px;--card-radius:18px;--font-ui:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--paper:var(--bg);--surface-2:var(--bg-subtle);--ink:var(--fg);--ink-soft:var(--fg-muted);--line:var(--border);--accent-soft:var(--accent-subtle);--danger-soft:var(--danger-subtle);--safe:var(--success);--safe-soft:var(--success-subtle);--warning-soft:var(--warning-subtle);--input-bg:var(--taint-bg);--input-ink:var(--taint-fg);--input-soft:var(--warning-subtle);--code-ink:var(--code-fg);--st-bg:#eef2fb;--st-ground:#dde4f5;--st-ink:#172033;--st-body:#e7ebf5;--st-dark:#172033;--st-system:#06c;--st-bad:#c0392b;--st-good:#1f8a70;--st-good-soft:#e3f4ee;--st-paper:#fff;--st-muted:#9aa3b5;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#000;--bg-subtle:#161617;--surface:#1c1c1e;--surface-raised:#232325;--fg:#f5f5f7;--fg-muted:#a1a1a6;--border:#38383a;--border-strong:#7c7c80;--accent:#2997ff;--accent-hover:#6cb6ff;--accent-fill:#0071e3;--accent-fill-hover:#0062c4;--accent-subtle:#0d2540;--on-accent:#fff;--danger:#ff6961;--danger-subtle:#3a1715;--success:#30d158;--success-subtle:#0f2e18;--warning:#ffb340;--warning-subtle:#33240b;--taint-bg:#e9b949;--taint-fg:#1f1500;--taint-edge:#e9b949;--code-bg:#0f1115;--code-line:#26292f;--focus:#2997ff;--header-bg:#161617cc;--shadow-card:0 1px 2px #00000080;--shadow-float:0 30px 80px #0009;--st-bg:#1b2336;--st-ground:#232c42;--st-ink:#e8ecf2;--st-body:#2a3350;--st-dark:#0e1424;--st-system:#2997ff;--st-bad:#ff7a6b;--st-good:#4cc9a4;--st-good-soft:#17332f;--st-paper:#232b40;--st-muted:#7d889e;color-scheme:dark}}:root[data-theme=dark]{--bg:#000;--bg-subtle:#161617;--surface:#1c1c1e;--surface-raised:#232325;--fg:#f5f5f7;--fg-muted:#a1a1a6;--border:#38383a;--border-strong:#7c7c80;--accent:#2997ff;--accent-hover:#6cb6ff;--accent-fill:#0071e3;--accent-fill-hover:#0062c4;--accent-subtle:#0d2540;--on-accent:#fff;--danger:#ff6961;--danger-subtle:#3a1715;--success:#30d158;--success-subtle:#0f2e18;--warning:#ffb340;--warning-subtle:#33240b;--taint-bg:#e9b949;--taint-fg:#1f1500;--taint-edge:#e9b949;--code-bg:#0f1115;--code-line:#26292f;--focus:#2997ff;--header-bg:#161617cc;--shadow-card:0 1px 2px #00000080;--shadow-float:0 30px 80px #0009;--st-bg:#1b2336;--st-ground:#232c42;--st-ink:#e8ecf2;--st-body:#2a3350;--st-dark:#0e1424;--st-system:#2997ff;--st-bad:#ff7a6b;--st-good:#4cc9a4;--st-good-soft:#17332f;--st-paper:#232b40;--st-muted:#7d889e;color-scheme:dark}.area-admin{--bg:#f4f6fa;--bg-subtle:#eaeef5;--surface:#fff;--fg:#10223f;--fg-muted:#4a5b76;--border:#dbe1ea;--border-strong:#7a8494;--accent:#1f4b99;--accent-hover:#10223f;--accent-fill:#1f4b99;--accent-fill-hover:#183b7a;--accent-subtle:#e9eef7;--on-accent:#fff;--danger:#a11d12;--danger-subtle:#fdeceb;--success:#146c43;--success-subtle:#e6f3ec;--focus:#1f4b99;--admin-band:#10223f;--admin-band-fg:#fff;--admin-band-muted:#c9d4e8;--btn-radius:6px;--card-radius:10px;--font-ui:"Schibsted Grotesk", ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:10px;--radius-2xl:10px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .area-admin{--bg:#0b1220;--bg-subtle:#111a2c;--surface:#131d31;--fg:#e6ebf4;--fg-muted:#a6b3c8;--border:#26324a;--border-strong:#7385a3;--accent:#8fb3ff;--accent-hover:#b3cbff;--accent-fill:#8fb3ff;--accent-fill-hover:#b3cbff;--accent-subtle:#1a2a4a;--on-accent:#0b1220;--danger:#ff8f87;--danger-subtle:#3a1d1d;--success:#5fcf98;--success-subtle:#13301f;--focus:#8fb3ff;--admin-band:#060b16}}:root[data-theme=dark] .area-admin{--bg:#0b1220;--bg-subtle:#111a2c;--surface:#131d31;--fg:#e6ebf4;--fg-muted:#a6b3c8;--border:#26324a;--border-strong:#7385a3;--accent:#8fb3ff;--accent-hover:#b3cbff;--accent-fill:#8fb3ff;--accent-fill-hover:#b3cbff;--accent-subtle:#1a2a4a;--on-accent:#0b1220;--danger:#ff8f87;--danger-subtle:#3a1d1d;--success:#5fcf98;--success-subtle:#13301f;--focus:#8fb3ff;--admin-band:#060b16}progress{appearance:none;background:var(--border);height:.5rem;color:var(--accent);border:0;border-radius:999px;overflow:hidden}progress::-webkit-progress-bar{background:var(--border)}progress::-webkit-progress-value{background:var(--accent);border-radius:999px}progress::-moz-progress-bar{background:var(--accent);border-radius:999px}@media print{@page{margin:14mm}html:root:root{--paper:#fff;--surface:#fff;--surface-2:#f1f3f6;--ink:#111827;--ink-soft:#3f4756;--line:#c5ccd8;--accent:#1f3a8a;--accent-soft:#e6ecfa;--danger:#a11d12;--danger-soft:#fdeceb;--warning:#7a3608;--warning-soft:#fdf0dc;--safe:#0b6157;--safe-soft:#e3f4f0;--bg:#fff;--bg-subtle:#f1f3f6;--fg:#111827;--fg-muted:#3f4756;--border:#c5ccd8;--border-strong:#6b7280;--accent-subtle:#e6ecfa;--danger-subtle:#fdeceb;--success:#0b6157;--success-subtle:#e3f4f0;--warning-subtle:#fdf0dc;color-scheme:light;font-size:90%}body{color:#111827;background:#fff}body>header,body>footer,.skip-link,.no-print{display:none!important}main,.wrap{max-width:none;padding:0}a{color:inherit;text-decoration:none}.cheatsheet{max-width:none}.cs-card,.cs-table tr,.cs-fragment{break-inside:avoid}.radar{max-width:22rem}.radar-area,.radar-dot{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cs-tech-title,.cs-sub,.cs-card-title{break-after:avoid}.cs-pair{grid-template-columns:1fr 1fr}.cs-card,.cs-side,.cs-fragment,.cs-ln-flag{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cs-fine a[href^=http]:after,.cs-list a[href^=http]:after{content:" (" attr(href) ")";font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.72rem;font-weight:400}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}