/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #ffffff;--surface: #ffffff;--surface-2: #f5f5f5;--border: rgba(34, 42, 53, .08);--border-strong: rgba(34, 42, 53, .16);--text: #242424;--text-2: #111111;--muted: #898989;--faint: #a8a8a8;--primary: #0099ff;--primary-dark: #007ad6;--primary-soft: #e6f4ff;--on-primary: #ffffff;--link: #0099ff;--danger: #dc2626;--success: #16a34a;--warn: #eab308;--radius: 12px;--radius-sm: 8px;--font-display: "Cal Sans", "Inter", -apple-system, system-ui, sans-serif;--font-mono: "Roboto Mono", ui-monospace, Consolas, monospace;--shadow-sm: 0 0 0 1px rgba(34, 42, 53, .08), 0 1px 5px -4px rgba(19, 19, 22, .7), 0 4px 8px rgba(34, 42, 53, .05);--shadow-md: 0 0 0 1px rgba(34, 42, 53, .1), 0 1px 5px -4px rgba(19, 19, 22, .7), 0 8px 18px rgba(34, 42, 53, .08);--shadow-inset: inset 0 1px 1.9px rgba(0, 0, 0, .16);--ring: 0 0 0 3px rgba(0, 153, 255, .25)}:root[data-theme=dark]{--bg: #111111;--surface: #1a1a1a;--surface-2: #232323;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text: #ededed;--text-2: #ffffff;--muted: #8f8f8f;--faint: #6b6b6b;--primary: #0099ff;--primary-dark: #33adff;--primary-soft: rgba(0, 153, 255, .14);--on-primary: #ffffff;--link: #33adff;--danger: #f87171;--success: #4ade80;--shadow-sm: 0 0 0 1px rgba(255, 255, 255, .08), 0 4px 8px rgba(0, 0, 0, .3);--shadow-md: 0 0 0 1px rgba(255, 255, 255, .12), 0 8px 18px rgba(0, 0, 0, .45);--shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .5)}:root[data-brand]{--primary: var(--brand);--primary-dark: color-mix(in srgb, var(--brand) 82%, #000);--primary-soft: color-mix(in srgb, var(--brand) 10%, #fff);--link: var(--primary-dark);--ring: 0 0 0 3px color-mix(in srgb, var(--brand) 25%, transparent)}:root[data-brand][data-theme=dark]{--primary-dark: color-mix(in srgb, var(--brand) 70%, #fff);--primary-soft: color-mix(in srgb, var(--brand) 16%, transparent)}html{font-size:14px}body{font-family:Inter,-apple-system,system-ui,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;font-size:14px;-webkit-font-smoothing:antialiased}h1,h2,h3,.brand,.stat-value,.cert-title,.cert-name{font-family:var(--font-display);font-weight:600;letter-spacing:0;font-synthesis-weight:none}code,pre,kbd{font-family:var(--font-mono)}svg.lucide{flex-shrink:0;vertical-align:-.15em}a{color:var(--link);text-underline-offset:2px}.app{min-height:100vh;display:flex}.sidebar{width:232px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface-2);border-right:1px solid var(--border);padding:18px 12px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:8px;font-size:18px;color:var(--text);text-decoration:none;padding:2px 10px 18px;margin-bottom:6px}.brand-mark{width:22px;height:22px;border-radius:6px;background:var(--primary);color:var(--on-primary);display:inline-flex;align-items:center;justify-content:center}.brand .brand-mark{width:24px;height:24px;flex-shrink:0}.brand-logo{object-fit:cover;background:none}.brand-initials{font-family:Inter,sans-serif;font-size:10px;font-weight:700}.auth-card>.brand-mark{display:flex;width:48px;height:48px;border-radius:12px;margin:0 auto 14px;font-size:18px}.brand-suffix{display:block;color:var(--muted);font-family:Inter,sans-serif;font-weight:500;font-size:12px}.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1}.sidebar-nav a{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:var(--radius-sm);color:var(--text);text-decoration:none;font-weight:500;font-size:14px;transition:background .15s,color .15s}.sidebar-nav a:hover{background:var(--border)}.sidebar-nav a.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:600}.nav-icon{display:inline-flex;color:var(--muted)}.sidebar-nav a.active .nav-icon{color:var(--primary)}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topnav{display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px;padding:0 32px;background:#ffffffd9;-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.topnav-left{display:flex;align-items:center;gap:12px}.topnav-title{font-weight:500;font-size:14px;color:var(--muted)}:root[data-theme=dark] .topnav{background:#111111d9}.topnav-right{display:flex;align-items:center;gap:10px;min-width:0}.user-line{display:flex;gap:4px;min-width:0;font-size:13px;white-space:nowrap}.username{font-weight:600;overflow:hidden;text-overflow:ellipsis}.user-role{color:var(--muted);flex-shrink:0}.badge{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:3px 10px;border-radius:9999px;background:var(--primary-soft);color:var(--primary-dark)}.theme-toggle{position:relative;width:46px;height:26px;border:none;border-radius:9999px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border-strong);cursor:pointer;flex-shrink:0;transition:background .22s}.theme-toggle:focus-visible{outline:none;box-shadow:var(--ring)}.theme-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;color:#f59e0b;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #00000040;transition:translate .26s cubic-bezier(.2,0,0,1),background .22s,color .22s}:root[data-theme=dark] .theme-toggle{background:var(--primary);box-shadow:none}:root[data-theme=dark] .theme-knob{translate:20px 0;background:#111;color:#fff}body,.card,.sidebar,.topnav,.landing-nav,.site-footer,.landing-section.tinted,.mock-window{transition:background-color .25s,color .25s}.page{width:100%;max-width:1200px;margin:0 auto;padding:40px 32px 96px}.page h1{font-size:32px;line-height:1.1;color:var(--text);margin-bottom:8px;display:flex;align-items:center;gap:10px}.page-sub{color:var(--muted);font-size:16px;font-weight:300;letter-spacing:-.2px;margin-bottom:32px}.section{margin-top:48px}.section h2{font-size:20px;line-height:1.2;letter-spacing:.2px;color:var(--text);margin-bottom:16px;display:flex;align-items:center;gap:8px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.card{background:var(--surface);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow-sm);transition:box-shadow .2s cubic-bezier(.2,0,0,1)}.grid .card:hover{box-shadow:var(--shadow-md)}.card h3{font-size:16px;line-height:1.3;letter-spacing:.2px;margin-bottom:6px}.card .meta{color:var(--muted);font-size:13px;margin-bottom:10px}.card .desc{font-size:14px;color:var(--text);margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.price{font-weight:700;font-variant-numeric:tabular-nums;color:var(--primary)}.card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border-radius:var(--radius-sm);border:none;background:var(--primary);color:var(--on-primary);font-weight:600;font-size:14px;font-family:inherit;cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:inset 0 2px #ffffff26,0 1px 5px -4px #131316b3;transition:opacity .15s,box-shadow .15s,background .15s}.btn:hover{opacity:.85}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.btn-secondary:hover{opacity:1;background:var(--surface-2)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--text);box-shadow:none}.btn-ghost:hover{opacity:1;background:var(--surface-2)}.btn-sm{height:30px;padding:0 12px;font-size:13px}.form{display:flex;flex-direction:column;gap:12px}.form label{display:flex;flex-direction:column;gap:6px;font-weight:500;font-size:14px;color:var(--text)}.form input,.form textarea,.form select{height:38px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);transition:border-color .12s,box-shadow .12s}.form textarea{height:auto;padding:8px 10px;resize:vertical}.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}.form-row{display:flex;gap:10px}.form-row>label{flex:1;min-width:0}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-wrap{background:var(--surface-2)}.auth-card{width:100%;max-width:400px;background:var(--surface);border-radius:16px;padding:36px 32px;box-shadow:var(--shadow-md)}.auth-card h1{font-size:24px;line-height:1.3;margin-bottom:6px;text-align:center}.auth-card .page-sub{text-align:center;margin-bottom:18px}.auth-alt{margin-top:14px;text-align:center;font-size:12.5px;color:var(--muted)}.error,.notice{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface);color:var(--text);padding:10px 14px;border-radius:var(--radius-sm);font-size:14px;box-shadow:var(--shadow-sm)}.error{box-shadow:0 0 0 1px var(--danger);color:var(--danger)}.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.table th,.table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px}.table th{background:var(--surface-2);font-size:12px;font-weight:500;color:var(--muted)}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--surface-2)}.table select,.list-row .actions select{height:26px;padding:0 6px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:12px;font-family:inherit}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border-radius:var(--radius);padding:14px 18px;margin-bottom:10px;box-shadow:var(--shadow-sm);transition:box-shadow .2s}.list-row:hover{box-shadow:var(--shadow-md)}.list-row .title{font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:6px}.list-row .meta{color:var(--muted);font-size:13px}.list-row .actions{display:flex;gap:6px;align-items:center}.empty{color:var(--muted);font-size:12.5px;padding:20px;text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2)}.content-body{background:var(--surface);border-radius:var(--radius);padding:24px 28px;white-space:pre-wrap;font-size:13.5px;line-height:1.6;box-shadow:var(--shadow-sm)}.theme-options{display:flex;gap:10px;flex-wrap:wrap}.theme-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:160px;padding:12px 14px;border:none;border-radius:var(--radius);background:var(--surface);color:var(--text);font-family:inherit;cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);transition:border-color .12s,box-shadow .12s}.theme-option:hover{box-shadow:var(--shadow-md)}.theme-option.selected{box-shadow:0 0 0 2px var(--primary)}.theme-icon{display:inline-flex;margin-bottom:6px}.theme-label{font-weight:600;font-size:13px}.theme-desc{font-size:11.5px;color:var(--muted)}.kv{width:100%;border-collapse:collapse}.kv td{padding:6px 0;font-size:13px}.kv td:first-child{color:var(--muted);width:90px;font-size:12px}.classroom{height:100vh;display:flex;flex-direction:column;background:#0c0e14;color:#e6e8ee}.classroom-header{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;background:#151823;border-bottom:1px solid #252a38}.classroom-header h1{font-size:14px;font-weight:600}.classroom-header .meta{color:#98a2b3;font-size:12px}.classroom-main{flex:1;display:flex;min-height:0}.video-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;padding:14px;align-content:start;overflow-y:auto}.video-tile{position:relative;background:#1a1e2b;border:1px solid #252a38;border-radius:10px;overflow:hidden;aspect-ratio:16 / 10}.video-tile video{width:100%;height:100%;object-fit:cover}.video-tile .label{position:absolute;left:8px;bottom:8px;background:#000000a6;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:500;display:flex;gap:5px;align-items:center}.video-tile .no-media{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:34px}.chat-panel{width:280px;display:flex;flex-direction:column;background:#151823;border-left:1px solid #252a38}.chat-panel h2{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#98a2b3;padding:12px 14px;border-bottom:1px solid #252a38}.chat-messages{flex:1;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:6px}.chat-msg{font-size:12.5px;line-height:1.4}.chat-msg .who{font-weight:600;color:#fff}.chat-input{display:flex;gap:6px;padding:10px;border-top:1px solid #252a38}.chat-input input{flex:1;height:30px;padding:0 10px;border-radius:6px;border:1px solid #323848;background:#0c0e14;color:#e6e8ee;font-size:12.5px;font-family:inherit}.chat-input input:focus{outline:none;border-color:#ededed}.classroom-controls{display:flex;justify-content:center;gap:10px;padding:12px;background:#151823;border-top:1px solid #252a38}.ctrl-btn{height:34px;padding:0 16px;border-radius:999px;border:1px solid #323848;background:#1a1e2b;color:#e6e8ee;font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .12s}.ctrl-btn:hover{background:#252a38}.ctrl-btn.off{background:#55160c;border-color:#7a271a}.ctrl-btn.leave{background:#d92d20;border-color:#d92d20}.icon-text{display:inline-flex;align-items:center;gap:6px}.btn svg.lucide,.ctrl-btn svg.lucide,.tb-btn svg.lucide{vertical-align:middle}.ctrl-btn{display:inline-flex;align-items:center;gap:6px}.tb-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px}.module-tools button{display:inline-flex;align-items:center}.ok{color:var(--success)}.warn{color:var(--warn)}.bad{color:var(--danger)}@media (max-width: 860px){.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:40;width:260px;height:100dvh;overflow-y:auto;translate:-100% 0;transition:translate .26s cubic-bezier(.2,0,0,1)}.sidebar.open{translate:0 0;box-shadow:0 0 40px #0003}.sidebar-nav a{height:42px;font-size:15px}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#1116;animation:fade .2s}.topnav .menu-btn{display:inline-flex;margin-left:-8px}.topnav{padding:0 16px}.page{padding:24px 16px 64px}.page h1{font-size:26px}.chat-panel{display:none}}@media (max-width: 520px){.topnav-title,.topnav .badge{display:none}.topnav-right .btn-sm{padding:0 10px}.grid{grid-template-columns:1fr}.grid:has(.stat-card){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{padding:16px}.stat-value{font-size:24px}.list-row{flex-wrap:wrap}.form-row{flex-direction:column}.table th,.table td{padding:10px 12px}.table{display:block;overflow-x:auto;white-space:nowrap}.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.tab{white-space:nowrap}.auth-card{padding:28px 20px}}@keyframes fade{0%{opacity:0}}.markdown{white-space:normal}.markdown h1,.markdown h2,.markdown h3,.markdown h4{margin:18px 0 8px;line-height:1.3}.markdown h1:first-child,.markdown h2:first-child,.markdown h3:first-child{margin-top:0}.markdown h1{font-size:20px}.markdown h2{font-size:17px}.markdown h3{font-size:14.5px}.markdown p{margin:8px 0}.markdown ul,.markdown ol{margin:8px 0;padding-left:24px}.markdown li{margin:3px 0}.markdown blockquote{margin:10px 0;padding:6px 14px;border-left:3px solid var(--primary);background:var(--surface-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--muted)}.markdown code{font-family:var(--font-mono);font-size:12.5px;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px}.markdown pre{margin:10px 0;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);overflow-x:auto}.markdown pre code{background:none;border:none;padding:0}.markdown img,.markdown video{max-width:100%;border-radius:var(--radius-sm);border:1px solid var(--border);margin:8px 0;display:block}.markdown audio{display:block;margin:8px 0;width:100%;max-width:480px}.markdown table{border-collapse:collapse;margin:10px 0}.markdown th,.markdown td{border:1px solid var(--border);padding:6px 12px;text-align:left}.markdown th{background:var(--surface-2)}.markdown hr{border:none;border-top:1px solid var(--border);margin:16px 0}.mermaid-diagram{margin:10px 0;overflow-x:auto}.mermaid-diagram svg{max-width:100%;height:auto}.mermaid-error{border-color:var(--danger)!important}.md-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.md-toolbar-spacer{flex:1}.editor-preview{min-height:340px}.landing{min-height:100vh;display:flex;flex-direction:column;overflow-x:clip}.landing-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 32px;height:64px;background:#ffffffd9;-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}:root[data-theme=dark] .landing-nav{background:#111111d9}.landing-nav .brand{padding:0;margin:0;font-size:20px}.landing-nav-mid{display:flex;gap:2px}.landing-nav-right{display:flex;align-items:center;justify-content:flex-end;gap:8px}.landing-link{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);text-decoration:none;font-weight:500;padding:6px 12px;border-radius:var(--radius-sm);transition:background .15s}.landing-link:hover{background:var(--surface-2)}.pulse{position:relative;width:8px;height:8px;border-radius:50%;background:var(--success);display:inline-block;flex-shrink:0}.pulse:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:inherit;animation:ping 1.8s cubic-bezier(0,0,.2,1) infinite}@keyframes ping{75%,to{transform:scale(2.6);opacity:0}}.hero{position:relative;text-align:center;padding:96px 24px 56px;max-width:920px;margin:0 auto;animation:rise .7s cubic-bezier(.2,0,0,1) both}.hero:before{content:"";position:absolute;top:-40px;right:-50vw;bottom:0;left:-50vw;z-index:-1;background-image:radial-gradient(rgba(34,42,53,.09) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:radial-gradient(ellipse 55% 70% at 50% 40%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse 55% 70% at 50% 40%,#000 30%,transparent 75%)}:root[data-theme=dark] .hero:before{background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px)}.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:5px 14px;border-radius:9999px;background:var(--primary-soft);color:var(--primary-dark);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:24px}.hero h1{font-size:64px;line-height:1.1;margin-bottom:20px;color:var(--text)}.hero-accent{color:var(--primary)}.hero-sub{font-size:18px;font-weight:300;line-height:1.5;letter-spacing:-.2px;color:var(--muted);max-width:620px;margin:0 auto 36px}.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.hero-ticks{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:8px 24px;margin-top:24px;color:var(--muted);font-size:13px}.hero-ticks li{display:inline-flex;align-items:center;gap:6px}.hero-ticks svg{color:var(--success)}.btn-lg{height:46px;padding:0 24px;font-size:15px}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,0,0,1) var(--d, 0s),transform .7s cubic-bezier(.2,0,0,1) var(--d, 0s),box-shadow .2s}.reveal.in{opacity:1;transform:none}.hero-visual{position:relative;max-width:1040px;width:calc(100% - 48px);margin:0 auto 80px}.mock-window{background:var(--surface);border-radius:16px;box-shadow:0 0 0 1px #222a3514,0 1px 5px -4px #131316b3,0 24px 60px -12px #222a352e;overflow:hidden;text-align:left}.mock-bar{display:flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-bottom:1px solid var(--border);background:var(--surface-2)}.mock-dot{width:10px;height:10px;border-radius:50%;background:var(--border-strong)}.mock-url{margin-left:10px;padding:2px 12px;border-radius:9999px;background:var(--primary-soft);color:var(--primary-dark);font-size:11px;font-weight:500}.mock-body{display:grid;grid-template-columns:minmax(0,1fr) 240px;min-height:360px}.mock-stage{padding:18px;display:flex;flex-direction:column;gap:14px}.mock-stage-head{display:flex;align-items:center;gap:10px}.mock-muted{color:var(--muted);font-size:12px}.live-pill{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:9999px;background:#dc262614;color:var(--danger);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.live-pill .pulse{background:var(--danger)}.mock-board{flex:1;border-radius:12px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border);display:flex;align-items:center;justify-content:center;padding:12px}.mock-graph{width:100%;max-width:440px;height:auto}.mock-graph line{stroke:var(--border-strong);stroke-width:1.5}.mock-graph text{fill:var(--muted);font-size:9px;font-family:Inter,sans-serif}.mock-graph .ghost{fill:none;stroke:var(--border-strong);stroke-width:1.5;stroke-dasharray:4 5}.mock-graph .draw{fill:none;stroke:var(--primary);stroke-width:3;stroke-linecap:round;stroke-dasharray:400;stroke-dashoffset:400;animation:draw 4s linear infinite}.mock-graph .pen{fill:var(--primary);stroke:#fff;stroke-width:2}@keyframes draw{70%,to{stroke-dashoffset:0}}.mock-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.mock-tile{position:relative;aspect-ratio:4 / 3;border-radius:10px;background:#242424;display:flex;align-items:center;justify-content:center}.mock-avatar{width:32px;height:32px;border-radius:50%;background:#3a3a3a;color:#fff;font-weight:600;display:flex;align-items:center;justify-content:center}.mock-name{position:absolute;left:6px;bottom:5px;font-size:10px;color:#fff;background:#00000080;padding:0 6px;border-radius:9999px}.mock-chat{border-left:1px solid var(--border);padding:14px;font-size:12px;display:flex;flex-direction:column;gap:10px}.mock-chat-title{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--muted)}.mock-chat p{background:var(--surface-2);border-radius:10px;padding:8px 10px;line-height:1.4}.mock-chat b{display:block;font-size:11px;color:var(--text-2)}.typing{display:flex;gap:4px;padding:8px 10px}.typing span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.mock-controls{display:flex;justify-content:center;gap:8px;padding:12px;border-top:1px solid var(--border)}.mock-controls span{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;border-radius:9999px;background:var(--surface-2);color:var(--text)}.mock-controls .leave{background:var(--danger);color:#fff;padding:0 14px;font-size:12px;font-weight:600}.mock-clock{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--muted)}.mock-tile{animation:speak 8s infinite}@keyframes speak{0%,24%{box-shadow:0 0 0 2px var(--primary)}25%,to{box-shadow:0 0 0 0 transparent}}.eq{position:absolute;right:6px;top:6px;display:flex;align-items:flex-end;gap:2px;height:12px;padding:2px 4px;border-radius:4px;background:var(--primary);opacity:0;animation:speakEq 8s infinite}.eq i{width:2px;height:100%;background:#fff;border-radius:1px;animation:eq .6s ease-in-out infinite alternate}.eq i:nth-child(2){animation-delay:.2s}.eq i:nth-child(3){animation-delay:.4s}@keyframes speakEq{0%,24%{opacity:1}25%,to{opacity:0}}@keyframes eq{0%{transform:scaleY(.3)}to{transform:scaleY(1)}}.mock-chat p{animation:chatIn 9s infinite both}.typing{animation:chatIn 9s 4.5s infinite both}@keyframes chatIn{0%{opacity:0;transform:translateY(8px)}6%,88%{opacity:1;transform:none}96%,to{opacity:0;transform:none}}.type{display:inline-block;vertical-align:bottom;overflow:hidden;white-space:nowrap;width:0;animation:type 5s steps(23) infinite}@keyframes type{45%,85%{width:23ch}to{width:0}}.mock-row{transition:background .3s,color .3s}.mock-h{animation:rise .4s cubic-bezier(.2,0,0,1)}.mock-big{display:flex;align-items:baseline;gap:10px}.bump{font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:var(--success);animation:bump 2.2s ease-out both}@keyframes bump{0%{opacity:0;transform:translateY(6px)}15%,70%{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}.mock-ledger .fresh{animation:slideIn .5s cubic-bezier(.2,0,0,1);box-shadow:inset 3px 0 0 var(--primary)}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}}.mock-bars span{animation:grow .9s cubic-bezier(.2,0,0,1) both,wave 2.4s ease-in-out infinite alternate}@keyframes wave{0%{transform:scaleY(1)}to{transform:scaleY(.72)}}.float-card{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-md),0 16px 32px -12px #222a3533;font-size:12px;animation:bob 6s ease-in-out infinite}.float-card b{display:block;font-size:13px;color:var(--text-2)}.float-card span{color:var(--muted)}.fc-icon{width:28px;height:28px;border-radius:8px;background:var(--primary);color:#fff!important;display:inline-flex;align-items:center;justify-content:center}.fc-1{left:-36px;top:90px}.fc-2{right:-40px;top:-28px;animation-delay:-2s}.fc-3{right:60px;bottom:-22px;animation-delay:-4s}.fc-stars{display:inline-flex;color:var(--warn)!important}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.marquee{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:18px 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.marquee-track{display:flex;gap:48px;width:max-content;animation:scroll 40s linear infinite}.marquee-track span{font-family:var(--font-display);font-size:20px;color:var(--faint);white-space:nowrap}@keyframes scroll{to{transform:translate(-50%)}}.facts{display:grid;grid-template-columns:repeat(4,1fr);max-width:1200px;width:100%;margin:0 auto;padding:64px 32px 16px;text-align:center}.facts>div+div{border-left:1px solid var(--border)}.fact-value{font-family:var(--font-display);font-size:40px;line-height:1.1;color:var(--text-2)}.fact-label{color:var(--muted);font-size:14px;margin-top:6px}.landing-section{padding:96px 32px}.landing-section.tinted{background:var(--surface-2)}.section-head{max-width:680px;margin:0 auto 48px;text-align:center}.section-head h2,.showcase-text h2,.cta-band h2{font-size:48px;line-height:1.1;color:var(--text)}.section-head p{margin-top:14px;color:var(--muted);font-size:18px;font-weight:300}.eyebrow{display:inline-block;margin-bottom:12px;color:var(--primary);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.landing-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;max-width:1200px;margin:0 auto;width:100%}.feature-card{text-align:left}.feature-icon{width:40px;height:40px;border-radius:10px;background:var(--primary);color:var(--on-primary);display:inline-flex;align-items:center;justify-content:center;margin-bottom:18px}.feature-card h3{margin-bottom:6px}.feature-card p{color:var(--muted);font-weight:300;letter-spacing:-.2px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1200px;margin:0 auto;counter-reset:step}.step{background:var(--surface);border-radius:16px;padding:28px;box-shadow:var(--shadow-sm)}.step-num{display:block;font-family:var(--font-display);font-size:48px;line-height:1;color:var(--primary);margin-bottom:24px}.step h3{font-size:20px;margin-bottom:8px}.step p{color:var(--muted);font-weight:300}.showcase{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:64px;max-width:1200px;margin:0 auto}.showcase+.showcase{margin-top:112px}.showcase.reverse .showcase-text{order:2}.showcase-text p{margin:16px 0 24px;color:var(--muted);font-size:18px;font-weight:300;line-height:1.5}.checklist{list-style:none;display:grid;gap:12px}.checklist li{display:flex;align-items:center;gap:10px;font-weight:500}.checklist svg{color:var(--primary);background:var(--primary-soft);border-radius:50%;padding:3px;width:22px;height:22px}.mock-builder{display:grid;grid-template-columns:200px 1fr;min-height:300px}.mock-outline{border-right:1px solid var(--border);padding:14px 10px;font-size:12px}.mock-label{color:var(--muted);font-weight:600;font-size:11px;margin:8px 6px 6px}.mock-row{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px}.mock-row.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:600}.mock-doc{padding:22px;display:flex;flex-direction:column;gap:12px;min-width:0}.mock-h{font-family:var(--font-display);font-size:22px}.mock-line{height:8px;border-radius:9999px;background:var(--surface-2)}.w90{width:90%}.w75{width:75%}.w60{width:60%}.mock-code{background:#111;color:#ededed;border-radius:10px;padding:14px 16px;font-family:var(--font-mono);font-size:12.5px;line-height:1.7;margin:0;min-height:176px;white-space:pre;overflow:hidden}.mock-code .k{color:#33adff}.mock-code .s{color:#4ade80}.mock-code .n{color:#f59e0b}.mock-code .c{color:#6b6b6b;font-style:italic}.caret{display:inline-block;width:7px;height:14px;margin-left:2px;vertical-align:-2px;background:#ededed;animation:caret 1s steps(1) infinite}@keyframes caret{50%{opacity:0}}.mock-earn{padding:22px;display:flex;flex-direction:column;gap:20px}.mock-earn-head{display:flex;justify-content:space-between;align-items:flex-start}.mock-big{font-family:var(--font-display);font-size:36px;line-height:1.1;margin-top:4px}.mock-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:9999px;background:#16a34a1a;color:var(--success);font-size:12px;font-weight:600}.mock-bars{display:flex;align-items:flex-end;gap:10px;height:140px}.mock-bars span{flex:1;border-radius:6px 6px 2px 2px;background:var(--primary-soft);transform-origin:bottom}.mock-bars span:nth-last-child(-n+2){background:var(--primary)}.reveal:not(.in) .mock-bars span{animation-play-state:paused}@keyframes grow{0%{transform:scaleY(0)}}.mock-ledger{display:grid;gap:8px;font-size:13px}.mock-ledger div{display:flex;justify-content:space-between;padding:10px 12px;border-radius:8px;background:var(--surface-2)}.faq{max-width:760px;margin:0 auto;display:grid;gap:10px}.faq details{background:var(--surface);border-radius:12px;box-shadow:var(--shadow-sm);padding:0 20px}.faq summary{list-style:none;cursor:pointer;padding:18px 0;font-weight:600;font-size:16px;display:flex;justify-content:space-between;align-items:center}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font-size:22px;font-weight:300;color:var(--muted);transition:transform .2s}.faq details[open] summary:after{transform:rotate(45deg)}.faq details p{padding-bottom:18px;color:var(--muted)}.cta-band{max-width:1200px;width:calc(100% - 64px);margin:0 auto 96px;padding:80px 32px;border-radius:24px;background:#111;color:#fff;text-align:center;position:relative;overflow:hidden}.cta-band:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:radial-gradient(ellipse 60% 80% at 50% 0%,#000,transparent 70%);mask-image:radial-gradient(ellipse 60% 80% at 50% 0%,#000,transparent 70%)}.cta-band>*{position:relative}.cta-band h2{color:#fff}.cta-band p{color:#a8a8a8;font-size:18px;font-weight:300;margin:14px auto 32px;max-width:560px}.btn-light{background:#fff;color:#111}.btn-outline-light{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px #ffffff40}.btn-outline-light:hover{background:#ffffff14;opacity:1}.site-footer{margin-top:auto;border-top:1px solid var(--border);background:var(--surface-2);padding:64px 32px 32px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;max-width:1200px;margin:0 auto}.footer-brand .brand{padding:0;font-size:20px}.footer-brand p{color:var(--muted);margin:12px 0 16px;max-width:320px}.footer-mail{display:inline-flex;align-items:center;gap:6px;color:var(--text)!important;font-size:13px}.site-footer h4{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:14px}.footer-grid>div:not(.footer-brand){display:flex;flex-direction:column;gap:10px}.footer-grid a{color:var(--text);text-decoration:none;font-size:14px}.footer-grid a:hover{color:var(--primary)}.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;max-width:1200px;margin:48px auto 0;padding-top:24px;border-top:1px solid var(--border);color:var(--muted);font-size:13px}.btn,.card,.step,.faq details,.float-card,.mock-window,.feature-icon,.step-num,.fact-value,.mock-tile,.landing-link,.footer-grid a,.marquee-track span,.btn svg.lucide-arrow-right{transition-property:opacity,transform,translate,scale,rotate,box-shadow,background,color;transition-duration:.7s,.7s,.22s,.22s,.22s,.22s,.15s,.15s;transition-timing-function:cubic-bezier(.2,0,0,1);transition-delay:var(--d, 0s),var(--d, 0s),0s,0s,0s,0s,0s,0s}.btn:hover:not(:disabled){translate:0 -1px;box-shadow:inset 0 2px #ffffff26,0 6px 16px -6px color-mix(in srgb,var(--primary) 55%,transparent)}.btn-secondary:hover:not(:disabled),.btn-light:hover,.btn-outline-light:hover{box-shadow:var(--shadow-md)}.btn:active:not(:disabled){translate:0 0;scale:.98}.btn:hover svg.lucide-arrow-right{translate:3px 0}.landing .card:hover,.step:hover{translate:0 -4px;box-shadow:var(--shadow-md),0 18px 36px -18px #222a354d}.card:hover .feature-icon{rotate:-6deg;scale:1.08}.step:hover .step-num{translate:4px 0}.showcase .mock-window:hover{translate:0 -6px}.hero-visual .mock-window:hover{translate:0 -4px}.mock-tile:hover{scale:1.04}.float-card:hover{scale:1.06}.facts>div:hover .fact-value{color:var(--primary);scale:1.06}.faq details:hover{translate:0 -2px;box-shadow:var(--shadow-md)}.faq summary:hover{color:var(--primary)}.marquee:hover .marquee-track{animation-play-state:paused}.landing-nav-mid .landing-link{position:relative}.landing-nav-mid .landing-link:after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;border-radius:2px;background:var(--primary);scale:0 1;transition:scale .22s cubic-bezier(.2,0,0,1)}.landing-nav-mid .landing-link:hover:after{scale:1 1}.footer-grid a:hover{translate:3px 0}.sidebar-nav a:hover .nav-icon{translate:2px 0;transition:translate .15s}.grid .card:hover{translate:0 -2px}.list-row:hover{translate:0 -1px}.menu-btn,.menu-only{display:none}.menu-btn{width:36px;height:36px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;align-items:center;justify-content:center}.menu-btn:hover{background:var(--surface-2)}@media (max-width: 1024px){.landing-nav{grid-template-columns:1fr auto}.menu-btn{display:inline-flex}.hero h1{font-size:52px}.section-head h2,.showcase-text h2,.cta-band h2{font-size:40px}.landing-nav-mid{position:absolute;top:64px;left:0;right:0;flex-direction:column;gap:4px;padding:12px 16px 20px;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:0 16px 32px -16px #222a3540;opacity:0;translate:0 -8px;pointer-events:none;visibility:hidden;transition:opacity .2s,translate .2s,visibility .2s}.landing-nav-mid.open{opacity:1;translate:0 0;pointer-events:auto;visibility:visible}.landing-nav-mid .landing-link{padding:12px;font-size:16px}.landing-nav-mid .landing-link:after{display:none}.landing-nav-mid .menu-only{display:flex}.landing-nav-mid .btn{height:44px;margin-top:8px}.landing-nav-right .landing-link,.landing-nav-right .btn-secondary,.float-card{display:none}.showcase{grid-template-columns:1fr;gap:40px}.showcase.reverse .showcase-text{order:0}.steps{grid-template-columns:1fr}}@media (max-width: 640px){.hero{padding:56px 16px 40px}.hero h1{font-size:36px}.landing-nav{padding:0 16px}.landing-section{padding:56px 16px}.hero-actions .btn{width:100%;max-width:320px}.landing-nav-right .theme-toggle{display:none}.menu-theme{justify-content:space-between}.section-head h2,.showcase-text h2,.cta-band h2{font-size:30px}.hero-visual{width:calc(100% - 32px)}.mock-body{grid-template-columns:1fr}.mock-chat{display:none}.mock-builder{grid-template-columns:1fr}.mock-outline{display:none}.facts{grid-template-columns:repeat(2,1fr);gap:24px 0;padding:48px 16px 0}.facts>div:nth-child(3){border-left:none}.cta-band{width:calc(100% - 32px);padding:56px 20px;margin-bottom:48px}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1 / -1}.site-footer{padding:48px 16px 24px}}.course-thumb{aspect-ratio:16 / 9;border-radius:var(--radius-sm);overflow:hidden;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:40px;box-shadow:inset 0 0 0 1px var(--border)}.course-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:scale .3s cubic-bezier(.2,0,0,1)}.course-card{display:flex;flex-direction:column}.course-card a:has(.course-thumb){text-decoration:none}.draft-hint{font-size:13px;color:var(--warn);margin:-4px 0 12px;font-weight:500}.course-card .course-thumb{margin:-8px -10px 16px}.course-card:hover .course-thumb img{scale:1.04}.course-card .card-actions{margin-top:auto}.course-thumb.thumb-sm{width:96px;flex-shrink:0;font-size:22px;border-radius:6px}.list-row:has(.thumb-sm){justify-content:flex-start}.course-hero{display:grid;grid-template-columns:320px minmax(0,1fr);gap:28px;align-items:center;margin-bottom:8px}.course-hero .course-thumb{border-radius:var(--radius);box-shadow:var(--shadow-sm);font-size:64px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-weight:500;font-size:14px;color:var(--text)}.thumb-picker{display:flex;flex-direction:column;gap:10px;max-width:420px}.thumb-drop{aspect-ratio:16 / 9;border-radius:var(--radius-sm);border:1.5px dashed var(--border-strong);background:var(--surface-2);overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s}.thumb-drop:hover,.thumb-drop.drag{border-color:var(--primary);background:var(--primary-soft)}.thumb-drop:focus-visible{outline:none;box-shadow:var(--ring)}.thumb-drop.has-image{border-style:solid;border-color:var(--border)}.thumb-drop img{width:100%;height:100%;object-fit:cover}.thumb-empty{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:16px;color:var(--muted);font-size:13px}.thumb-empty svg{color:var(--primary)}.thumb-empty b{color:var(--text);font-size:14px}@media (max-width: 760px){.course-hero{grid-template-columns:1fr;gap:16px}}@media (max-width: 520px){.course-thumb.thumb-sm{width:72px}}.team-row{margin-bottom:12px}.team-row.is-disabled{opacity:.7}.team-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.team-avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:600}.team-who{display:flex;flex-direction:column;min-width:0;flex:1}.team-status{display:flex;gap:6px;flex-wrap:wrap}.team-access{color:var(--muted);font-size:13px;margin:12px 0}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:9999px;font-size:12px;font-weight:500;background:var(--surface-2);color:var(--text);box-shadow:0 0 0 1px var(--border)}.pill-ok{color:var(--success)}.pill-bad{color:var(--danger)}.pill-warn{color:var(--warn)}.access-editor{margin-top:16px;padding-top:16px;border-top:1px solid var(--border);display:grid;gap:12px}.access-course{background:var(--surface-2);border-radius:var(--radius-sm);padding:12px 14px}.access-title{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.access-title select,.form select{height:36px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit}.access-subjects{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:10px}.section-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.subject-card{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;transition:box-shadow .2s,translate .2s}.subject-card:hover{box-shadow:var(--shadow-md);translate:0 -2px}.subject-card.active{box-shadow:0 0 0 2px var(--primary)}.subject-card:focus-visible{outline:none;box-shadow:var(--ring)}.subject-thumb{width:56px;height:56px;border-radius:10px;overflow:hidden;flex-shrink:0;background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono)}.subject-thumb img{width:100%;height:100%;object-fit:cover}.subject-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.subject-info b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subject-info .meta{font-size:12px}.subject-chevron{color:var(--muted);flex-shrink:0}.subject-add{display:flex;align-items:center;justify-content:center;gap:6px;min-height:80px;border:1.5px dashed var(--border-strong);border-radius:var(--radius);background:transparent;color:var(--text);font:inherit;font-weight:500;cursor:pointer}.subject-add:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.subject-about{margin-top:12px;color:var(--muted);max-width:720px;white-space:pre-wrap}.subject-header{display:flex;align-items:center;gap:10px;margin:20px 0 8px}.outline-subject{display:flex;align-items:center;gap:8px;margin:14px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border)}.outline-subject .subject-thumb{width:26px;height:26px;border-radius:6px;font-size:10px}.module-subject{width:100%;height:28px;margin:4px 0 2px;padding:0 8px;font:inherit;font-size:12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted)}.subject-header .subject-thumb{width:32px;height:32px;border-radius:8px;font-size:11px}.subject-header b{font-size:16px}.coupons-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start;margin-top:16px}.coupons-layout .meta{color:var(--muted);font-size:12px}.coupon-code{font-family:var(--font-mono);font-weight:600;letter-spacing:.5px}.coupon-actions{display:flex;gap:6px;justify-content:flex-end}.coupon-scope{display:grid;gap:8px;max-height:220px;overflow-y:auto;padding:10px 12px;background:var(--surface-2);border-radius:var(--radius-sm)}.field-hint{font-size:12px;font-weight:400;color:var(--muted)}.link-btn{background:none;border:none;padding:0;font:inherit;font-size:13px;color:var(--link);cursor:pointer}.link-btn:hover{text-decoration:underline}.buy-box{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:16px}.buy-box .strike,.old-price{text-decoration:line-through;opacity:.7;font-weight:400;margin-right:4px}.coupon-apply{display:flex;gap:8px;flex-wrap:wrap;max-width:100%}.coupon-apply input{width:180px;max-width:100%;height:30px;padding:0 10px;font:inherit;text-transform:uppercase;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.coupon-apply input:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}.coupon-applied{font-size:13px;color:var(--success);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.coupon-error{font-size:13px;color:var(--danger)}@media (max-width: 900px){.coupons-layout{grid-template-columns:1fr}}.stars{color:var(--text-2);letter-spacing:1px}.stars-value{color:var(--muted);font-size:12px;letter-spacing:0}.star-picker{display:flex;gap:2px}.star-btn{background:none;border:none;font-size:22px;cursor:pointer;color:var(--border-strong);padding:0 2px;line-height:1}.star-btn.active{color:var(--text-2)}.star-btn:hover{transform:scale(1.15)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:4px 0 18px;flex-wrap:wrap}.tab{background:none;border:none;border-bottom:2px solid transparent;padding:8px 14px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab{display:inline-flex;align-items:center;gap:6px;font-family:inherit;font-size:14px}.tab.active{color:var(--text-2);font-weight:600;border-bottom-color:var(--primary)}.check-label{display:flex!important;flex-direction:row!important;align-items:center;gap:8px}.check-label input[type=checkbox],.check-label input[type=radio]{width:auto;height:auto;accent-color:var(--primary)}.danger-text{color:var(--danger)}.market-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:6px;flex-wrap:wrap}.search-input{flex:1;min-width:240px;max-width:420px;height:34px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px}.search-input:focus{outline:none;box-shadow:var(--ring);border-color:var(--primary)}.compare-check{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);cursor:pointer;margin-left:auto}.compare-check input{accent-color:var(--primary)}.table-wrap{overflow-x:auto}.table .meta{color:var(--muted);font-size:12px}.compare-table th{min-width:140px}.compare-table td:first-child{font-weight:600;white-space:nowrap}.stat-card{text-align:left}.stat-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary);margin-bottom:14px}.stat-value{font-size:32px;line-height:1.1}.builder-page{display:flex;flex-direction:column;min-height:0}.builder-head{margin-bottom:8px}.builder{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}@media (max-width: 900px){.builder{grid-template-columns:1fr}}.builder-outline{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow-sm);position:sticky;top:12px;max-height:calc(100vh - 120px);overflow-y:auto}.outline-title{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:10px}.outline-module{margin-bottom:12px}.module-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-weight:600}.module-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-rename{flex:1;border:1px solid var(--primary);border-radius:4px;padding:2px 6px;font:inherit;background:var(--surface);color:var(--text)}.module-tools{display:flex;gap:2px;flex-shrink:0}.module-tools button{background:none;border:none;cursor:pointer;color:var(--muted);font-size:12px;padding:2px 4px;border-radius:4px}.module-tools button:hover:not(:disabled){background:var(--primary-soft);color:var(--text)}.module-tools button:disabled{opacity:.3;cursor:default}.lesson-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px 6px 18px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px}.lesson-row:hover{background:var(--surface-2)}.lesson-row.selected{background:var(--primary-soft);font-weight:600}.lesson-row .lesson-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-row .module-tools{visibility:hidden}.lesson-row:hover .module-tools{visibility:visible}.add-lesson{background:none;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;font-size:12px;padding:4px 10px;margin:4px 0 0 18px}.add-lesson:hover{border-color:var(--primary);color:var(--primary)}.add-module{display:flex;gap:6px;margin-top:12px}.add-module input{flex:1;min-width:0;height:28px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:12.5px}.builder-editor{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm);min-height:60vh}.editor-empty{min-height:200px;display:flex;align-items:center;justify-content:center;text-align:center}.editor-meta{display:flex;gap:10px;margin-bottom:10px}.editor-title{flex:1;font-size:18px;font-weight:700;border:none;border-bottom:2px solid var(--border);background:transparent;color:var(--text);padding:6px 2px}.editor-title:focus{outline:none;border-bottom-color:var(--primary)}.editor-module{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:0 8px;font-size:12.5px}.editor-toolbar{display:flex;align-items:center;gap:3px;flex-wrap:wrap;padding:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);position:sticky;top:0;z-index:5}.tb-btn{background:var(--surface);border:1px solid var(--border);border-radius:6px;min-width:30px;height:28px;padding:0 8px;cursor:pointer;color:var(--text);font-size:13px;font-weight:600}.tb-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.tb-btn:disabled{opacity:.4;cursor:default}.tb-btn.tb-mode{font-weight:500;font-size:12px}.tb-btn.tb-mode.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.tb-sep{width:1px;height:20px;background:var(--border-strong);margin:0 4px}.tb-spacer{flex:1}.editor-area{margin-top:10px;display:grid;gap:12px}.editor-area.mode-split{grid-template-columns:1fr 1fr}@media (max-width: 1100px){.editor-area.mode-split{grid-template-columns:1fr}}.editor-body{width:100%;min-height:55vh;resize:vertical;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:12px;font-family:var(--font-mono);font-size:13px;line-height:1.55}.editor-body:focus{outline:none;box-shadow:var(--ring);border-color:var(--primary)}.builder .editor-preview{min-height:55vh;max-height:75vh;overflow-y:auto}.module-header{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:14px 0 6px}.ext-creds{margin-top:10px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12.5px;display:flex;flex-direction:column;gap:4px;word-break:break-all}.gate-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.assignment-settings{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assignment-settings input,.gate-editor input,.gate-editor select{height:28px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:12.5px}.gate-editor{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:10px}.quiz-editor select{height:30px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.quiz-question{margin-bottom:10px}.quiz-question .check-label{margin:4px 0}.quiz-taker input,.quiz-taker select{height:30px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.match-row{display:flex;align-items:center;gap:10px;margin:5px 0}.match-row span{min-width:140px}.progress-wrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.progress-bar{width:260px;height:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;overflow:hidden}.progress-fill{height:100%;background:var(--success);transition:width .3s}.grade-row{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.grade-row input{height:30px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.grade-row input[type=number]{width:90px}.add-lesson-row{display:flex;gap:4px;flex-wrap:wrap;margin:4px 0 0 18px}.add-lesson-row .add-lesson{margin:0}.certificate-page{max-width:820px;margin:0 auto}.certificate{background:var(--surface);border:none;border-radius:var(--radius);padding:48px 56px;text-align:center;box-shadow:var(--shadow-md)}.cert-brand{font-weight:700;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.cert-title{font-size:30px;font-weight:700;margin:18px 0 22px;letter-spacing:-.01em}.cert-text{color:var(--muted);margin:6px 0}.cert-name{font-size:32px;color:var(--text-2);margin:8px 0}.cert-course{font-size:19px;font-weight:600;margin:8px 0}.cert-footer{display:flex;justify-content:space-around;margin-top:36px}.cert-sign{font-weight:600;border-top:1px solid var(--border-strong);padding-top:6px;min-width:180px}.cert-sign-label{color:var(--faint);font-size:12px;margin-top:2px}.cert-id{margin-top:26px;color:var(--faint);font-size:11px}@media print{.sidebar,.topnav,.certificate-page>p{display:none!important}.certificate{border-color:#000;box-shadow:none}}.embed-frame{width:100%;max-width:720px;aspect-ratio:16 / 9;border:1px solid var(--border);border-radius:var(--radius-sm);margin:10px 0;display:block;background:var(--surface-2)}.library-insert{display:flex;flex-direction:column;gap:6px}.library-insert select{height:28px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:12.5px}.announcement-body{margin-top:8px;border:none;box-shadow:none;padding:0;background:none}.code-panel{flex:1.2;display:flex;flex-direction:column;min-width:0;border-right:1px solid #252a38;background:#0d1017}.classroom-main.with-code .video-grid{flex:0 0 300px;grid-template-columns:1fr;overflow-y:auto}.code-toolbar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#151823;border-bottom:1px solid #252a38;color:#e6e8ee}.code-toolbar .code-title{font-weight:700}.code-toolbar select{background:#0d1017;color:#e6e8ee;border:1px solid #323848;border-radius:6px;height:28px;padding:0 8px}.code-toolbar .meta{color:#667085;font-size:12px}.code-editor{flex:1;width:100%;min-height:200px;resize:none;border:none;outline:none;background:#0d1017;color:#d7dae0;font-family:var(--font-mono);font-size:14px;line-height:1.55;padding:14px 16px;-moz-tab-size:4;tab-size:4}.code-output{max-height:32%;overflow-y:auto;margin:0;padding:10px 16px;background:#05070b;color:#8fe388;border-top:1px solid #252a38;font-family:var(--font-mono);font-size:13px;white-space:pre-wrap}@media (max-width: 900px){.classroom-main.with-code{flex-direction:column}.classroom-main.with-code .video-grid{flex:0 0 auto;display:flex;overflow-x:auto}}.lang-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:4px}.stdin-hint{padding:8px 16px;background:#2a2410;color:#fbbf24;border-top:1px solid #4a3f12;font-size:12.5px}.stdin-editor{flex:0 0 auto;height:84px;width:100%;resize:vertical;border:none;outline:none;border-top:2px dashed #323848;background:#10141c;color:#a5d6ff;font-family:var(--font-mono);font-size:13px;padding:8px 16px}.whiteboard{flex:1;display:flex;flex-direction:column;min-height:0}.wb-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#151823;border-bottom:1px solid #252a38;color:#e6e8ee;flex-wrap:wrap}.wb-color{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;font-size:12px;line-height:1}.wb-color.active{border-color:#ededed;transform:scale(1.15)}.wb-color.eraser{background:#0d1017}.wb-toolbar select{background:#0d1017;color:#e6e8ee;border:1px solid #323848;border-radius:6px;height:26px;padding:0 6px}.wb-toolbar .meta{color:#667085;font-size:12px}.wb-canvas{flex:1;width:100%;min-height:300px;cursor:crosshair;touch-action:none;background:#0d1017}.bg-select{display:flex;align-items:center;gap:6px;color:#e6e8ee}.bg-select select{background:#151823;color:#e6e8ee;border:1px solid #323848;border-radius:8px;height:34px;padding:0 10px}.terminal-panel{flex:1;display:flex;flex-direction:column;min-height:0}.term-code{flex:0 0 34%;min-height:120px}.term-console{flex:1;overflow-y:auto;margin:0;padding:10px 14px;background:#05070b;border-top:1px solid #252a38;font-family:var(--font-mono);font-size:13px;white-space:pre-wrap;color:#d7dae0}.term-stdout{color:#d7dae0}.term-stderr{color:#f87171}.term-status{color:#667085;font-style:italic}.term-input-line,.term-input{display:flex;align-items:center}.term-input{border-top:1px solid #252a38;background:#0d1017;padding:0 10px}.term-prompt{color:#34d399;font-family:monospace;margin-right:8px}.term-input input{flex:1;background:none;border:none;outline:none;color:#a5d6ff;font-family:var(--font-mono);font-size:13px;padding:10px 0}.term-input .term-input{color:#a5d6ff}.tab-badge{display:inline-block;color:var(--on-primary)!important;min-width:18px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:700;line-height:16px;text-align:center;border-radius:9px;background:var(--primary);color:#fff}.xterm-host{flex:1;min-height:220px;background:#05070b;padding:6px 8px;overflow:hidden}.xterm-host .xterm{height:100%}.ctrl-btn.stop:not(:disabled){color:#f87171;border-color:#f87171}.snippet-bar{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.snippet-bar select{background:#0d1017;color:#e6e8ee;border:1px solid #323848;border-radius:6px;height:28px;max-width:200px;padding:0 8px}.page-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.google-btn{width:100%;justify-content:center;gap:10px}.auth-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--muted);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid var(--border)}.copy-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.copy-row code{flex:1;min-width:0;overflow-wrap:anywhere;padding:8px 10px;border-radius:var(--radius-sm);background:var(--surface-2);font-size:13px}.site-ed{height:100vh;display:flex;flex-direction:column;background:var(--surface-2);overflow:hidden}.site-ed-loading{padding:40px}.site-ed-bar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--surface);box-shadow:var(--shadow-sm);z-index:2;flex-wrap:wrap}.site-ed-title{display:flex;flex-direction:column;line-height:1.2;min-width:0;margin-right:auto}.site-ed-title strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-ed-title .meta{color:var(--muted);font-size:12px}.site-ed-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.site-ed-tools .btn-ghost.active{background:var(--surface-2)}.site-ed-seg{display:inline-flex;padding:2px;border-radius:var(--radius-sm);background:var(--surface-2)}.site-ed-seg button{display:inline-flex;align-items:center;height:26px;padding:0 8px;border:none;border-radius:6px;background:none;color:var(--muted);cursor:pointer}.site-ed-seg button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.site-ed-messages{display:flex;flex-direction:column;gap:6px;padding:8px 16px 0}.site-ed-body{flex:1;display:flex;min-height:0}.site-ed-panel{width:380px;flex-shrink:0;overflow-y:auto;padding:12px 16px 40px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.site-ed-panel .tabs{margin:0 0 4px}.site-ed-sections{display:flex;flex-direction:column;gap:4px}.site-ed-row{display:flex;align-items:center;gap:4px;padding:6px 4px 6px 10px;border-radius:var(--radius-sm);cursor:pointer;box-shadow:inset 0 0 0 1px var(--border)}.site-ed-row:hover{background:var(--surface-2)}.site-ed-row.active{box-shadow:inset 0 0 0 2px var(--primary);background:var(--primary-soft)}.site-ed-row.hidden .site-ed-row-text{opacity:.45}.site-ed-row-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.site-ed-row-text strong{font-size:13px}.site-ed-row-text .meta{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-ed-row-tools{display:flex}.site-ed-row-tools .btn-sm,.site-ed-item-head .btn-sm,.site-ed-string .btn-sm{padding:0 6px;height:28px}.site-ed-add{align-self:flex-start}.site-ed-form{padding:16px;scroll-margin:12px}.site-ed-form-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.site-ed-form-head h2,.site-ed-form-head h3{margin:0}.site-ed-more{border-top:1px solid var(--border);padding-top:10px}.site-ed-more summary{cursor:pointer;font-weight:600;font-size:14px;margin-bottom:10px}.site-ed-color{display:flex;gap:6px;align-items:center}.site-ed-color input[type=color]{width:44px;padding:2px;flex-shrink:0;cursor:pointer}.site-ed-color input:not([type]){flex:1;min-width:0}.site-ed .thumb-picker{max-width:none}.site-ed-icons{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:4px}.site-ed-icons button{height:34px;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;font:inherit}.site-ed-icons button:hover{background:var(--surface-2)}.site-ed-icons button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.site-ed-list{display:flex;flex-direction:column;gap:6px;align-items:stretch}.site-ed-list>.btn{align-self:flex-start}.site-ed-item{border-radius:var(--radius-sm);box-shadow:inset 0 0 0 1px var(--border-strong)}.site-ed-item-head{display:flex;align-items:center;padding:2px 2px 2px 4px}.site-ed-item-title{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:6px 4px;border:none;background:none;color:var(--text);font:inherit;font-size:13px;font-weight:500;text-align:left;cursor:pointer}.site-ed-item-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-ed-item-body{padding:12px;border-top:1px solid var(--border)}.site-ed-string{display:flex;align-items:center;gap:2px}.site-ed-string input{flex:1;min-width:0}.site-ed-stage{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px;overflow:auto}.site-ed-banner{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 12px;border-radius:var(--radius-sm);background:var(--primary-soft);font-weight:600}.site-ed-frame{flex:1;width:100%;min-height:0;border:none;border-radius:var(--radius-sm);background:var(--bg);box-shadow:var(--shadow-md)}.site-ed-frame.mobile{width:390px;flex:1 0 auto;max-height:844px}.site-ed-drawer{width:340px;flex-shrink:0;overflow-y:auto;padding:12px 16px 24px;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.site-ed-drawer-head{display:flex;align-items:center;justify-content:space-between}.site-ed-drawer-head h2{margin:0;font-size:16px}.site-ed-version{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:var(--radius-sm);box-shadow:inset 0 0 0 1px var(--border)}.site-ed-version.active{box-shadow:inset 0 0 0 2px var(--primary)}.site-ed-version .meta{color:var(--muted);font-size:12px}.site-ed-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:#00000073}.site-ed-picker{width:min(760px,100%);max-height:90vh;overflow-y:auto}.site-ed-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}.site-ed-pick{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.site-ed-pick:hover{border-color:var(--primary);background:var(--primary-soft)}.site-ed-pick span{font-size:12px;color:var(--muted)}@media (max-width: 900px){.site-ed-body{flex-direction:column;overflow-y:auto}.site-ed-panel{width:100%;border-right:none;overflow:visible}.site-ed-stage{min-height:80vh}.site-ed-drawer{width:100%}}section.site-pad-small{padding-top:40px;padding-bottom:40px}section.site-pad-large{padding-top:140px;padding-bottom:140px}.site-selected{outline:2px solid var(--primary);outline-offset:-2px}.landing[data-editing] [data-sid]{cursor:pointer}.landing[data-editing] iframe{pointer-events:none}.site-text{white-space:pre-line}.site-img{width:100%;height:auto;border-radius:var(--radius);box-shadow:var(--shadow-md);display:block}.site-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.site-card-img{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:16px;display:block}.landing-features.site-cols-2{grid-template-columns:repeat(2,1fr);max-width:900px}.landing-features.site-cols-3{grid-template-columns:repeat(3,1fr)}.site-grid{display:grid;gap:16px;max-width:1200px;margin:0 auto}.site-grid.site-cols-2{grid-template-columns:repeat(2,1fr);max-width:900px}.site-grid.site-cols-3{grid-template-columns:repeat(3,1fr)}.site-grid.site-cols-4{grid-template-columns:repeat(4,1fr)}.site-figure img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius);display:block}.site-figure figcaption{margin-top:8px;color:var(--muted);font-size:14px;text-align:center}.site-video{max-width:960px;margin:0 auto;aspect-ratio:16 / 9;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md)}.site-video iframe{width:100%;height:100%;border:0;display:block}.site-quote{display:flex;flex-direction:column;gap:16px;text-align:left}.site-quote blockquote{font-size:16px;line-height:1.6;white-space:pre-line;flex:1}.site-quote figcaption{display:flex;align-items:center;gap:12px}.site-quote figcaption span span{display:block;color:var(--muted);font-size:13px}.site-stars{color:#f5a524;display:inline-flex;gap:2px}.site-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;display:inline-flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary-dark);font-weight:600}.site-contact{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;max-width:1100px;margin:0 auto}.site-contact-list{display:grid;gap:14px;align-content:start}.site-contact-list a,.site-contact-list span{display:flex;align-items:flex-start;gap:10px;color:var(--text);font-size:16px}.site-contact-list svg{color:var(--primary);flex:none;margin-top:3px}.site-map{width:100%;min-height:320px;border:0;border-radius:var(--radius);box-shadow:var(--shadow-sm)}.site-contact-list:only-child{grid-column:1 / -1;max-width:560px;justify-self:center;width:100%}.site-price{display:flex;flex-direction:column;gap:16px;text-align:left}.site-price .checklist{flex:1}.site-price .btn{justify-content:center}.site-price-amount{font-family:var(--font-display);font-size:40px;line-height:1.1;color:var(--text-2)}.site-price-amount span{font-family:inherit;font-size:15px;color:var(--muted)}.site-price-hl{box-shadow:0 0 0 2px var(--primary),var(--shadow-md)}.site-notice{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;padding:10px 16px;background:var(--primary);color:var(--on-primary);text-align:center;font-weight:500}.site-html{display:block;width:100%;max-width:1200px;margin:0 auto;border:0}.site-socials{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}@media (max-width: 860px){.site-grid.site-cols-3,.site-grid.site-cols-4,.landing-features.site-cols-3{grid-template-columns:repeat(2,1fr)}.site-contact{grid-template-columns:1fr}}@media (max-width: 640px){.site-grid.site-cols-2,.site-grid.site-cols-3,.site-grid.site-cols-4,.landing-features.site-cols-2,.landing-features.site-cols-3{grid-template-columns:1fr}section.site-pad-large{padding-top:72px;padding-bottom:72px}}.site-blocks{display:grid;grid-template-columns:repeat(var(--cols, 1),minmax(0,1fr));gap:24px;max-width:1200px;margin:0 auto;align-items:start}.site-blocks-1{--cols: 1;max-width:760px}.site-blocks-2{--cols: 2;max-width:1000px}.site-blocks-3{--cols: 3}.site-blocks-4{--cols: 4}.site-blocks-center{text-align:center}.site-block{min-width:0}.site-block.span-2{grid-column:span 2}.site-block.span-3{grid-column:span 3}.site-block.span-4{grid-column:span 4}.site-block>p{margin:0}.site-block-h{color:var(--text);line-height:1.2}.site-block-h-large{font-size:36px}.site-block-h-medium{font-size:26px}.site-block-h-small{font-size:19px}.site-block-text{color:var(--text-2);font-size:17px;line-height:1.7}.site-block-image{margin:0}.site-block-video .site-video{max-width:none}.site-block-video video{width:100%;height:100%;display:block;background:#000;object-fit:contain}.site-block-pdf{display:block;width:100%;height:600px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.site-block-card{text-align:inherit;height:100%;display:flex;flex-direction:column}.site-block-card .site-card-img{aspect-ratio:4 / 3}.site-block-card h3{margin-bottom:4px}.site-block-sub{display:block;color:var(--primary);font-size:14px;font-weight:600;margin-bottom:10px}.site-block-card p{color:var(--muted);font-weight:300;flex:1}.site-block-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.site-blocks-center .site-block-links,.site-blocks-center .site-block-list{justify-content:center}.site-blocks-center .site-block-list{justify-items:center}.site-block-quote .site-quote{height:100%}.site-blocks-center .site-quote{text-align:center}.site-blocks-center .site-quote figcaption{justify-content:center}.site-block-divider{border:0;border-top:1px solid var(--border);margin:8px 0}.site-block-spacer-small{height:16px}.site-block-spacer-medium{height:40px}.site-block-spacer-large{height:80px}.site-block-missing{display:grid;place-items:center;min-height:120px;padding:16px;border:2px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);font-size:14px;text-align:center}.site-ed-file{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.site-ed-file-name{flex:1;min-width:0;display:inline-flex;align-items:center;gap:6px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-ed-file-name small{color:var(--muted)}.site-ed-error{color:var(--danger)}.site-ed-blocks{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px}.site-ed-blocks button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-size:12px;cursor:pointer}.site-ed-blocks button:hover{border-color:var(--primary);color:var(--primary)}.site-ed-blocks .site-ed-blocks-cancel{justify-content:center;color:var(--muted)}@media (max-width: 860px){.site-blocks-3,.site-blocks-4{--cols: 2}.site-block.span-3,.site-block.span-4{grid-column:span 2}}@media (max-width: 640px){.site-blocks{--cols: 1}.site-block.span-2,.site-block.span-3,.site-block.span-4{grid-column:auto}.site-block-pdf{height:480px}.site-block-h-large{font-size:28px}}.site-ed-picker-sub{margin:18px 0 8px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.site-ed-flash{border-radius:var(--radius-sm);animation:site-ed-flash 2s ease-out}@keyframes site-ed-flash{0%,30%{background:var(--primary-soft);box-shadow:0 0 0 3px var(--primary)}to{background:transparent;box-shadow:0 0 0 3px transparent}}@media (prefers-reduced-motion: reduce){.site-ed-flash{animation:none;background:var(--primary-soft);box-shadow:0 0 0 3px var(--primary)}}.landing.site-colors{--bg: var(--site-bg);--text: var(--site-text)}:root[data-theme=dark] .landing.site-colors{--bg: var(--site-bg-dark);--text: var(--site-text-dark)}.landing.site-colors{--text-2: var(--text);--surface: color-mix(in srgb, var(--bg), var(--text) 4%);--surface-2: color-mix(in srgb, var(--bg), var(--text) 7%);--border: color-mix(in srgb, var(--text) 10%, transparent);--border-strong: color-mix(in srgb, var(--text) 18%, transparent);--muted: color-mix(in srgb, var(--text) 60%, var(--bg));--faint: color-mix(in srgb, var(--text) 40%, var(--bg));--primary-dark: color-mix(in srgb, var(--primary) 82%, var(--text));--primary-soft: color-mix(in srgb, var(--primary) 14%, transparent);--link: var(--primary-dark);--shadow-sm: 0 0 0 1px var(--border), 0 1px 5px -4px rgba(0, 0, 0, .5), 0 4px 8px rgba(0, 0, 0, .05);--shadow-md: 0 0 0 1px var(--border-strong), 0 1px 5px -4px rgba(0, 0, 0, .5), 0 8px 18px rgba(0, 0, 0, .1);background:var(--bg);color:var(--text)}.landing.site-colors .landing-nav{background:color-mix(in srgb,var(--bg) 85%,transparent)}.landing.site-colors .hero:before{background-image:radial-gradient(color-mix(in srgb,var(--text) 10%,transparent) 1px,transparent 1px)}.landing.site-colors .mock-window{box-shadow:0 0 0 1px var(--border),0 1px 5px -4px #00000080,0 24px 60px -12px #0003}.landing.site-colors .mock-graph .pen{stroke:var(--surface)}.landing.site-colors .cta-band{background:var(--text);color:var(--bg)}.landing.site-colors .cta-band h2{color:var(--bg)}.landing.site-colors .cta-band:before{background-image:radial-gradient(color-mix(in srgb,var(--bg) 10%,transparent) 1px,transparent 1px)}.landing.site-colors .cta-band p{color:color-mix(in srgb,var(--bg) 70%,var(--text))}.landing.site-colors .btn-light{background:var(--bg);color:var(--text)}.landing.site-colors .btn-outline-light{color:var(--bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bg) 30%,transparent)}.landing.site-colors .btn-outline-light:hover{background:color-mix(in srgb,var(--bg) 10%,transparent)}.landing[data-editing] [data-sid]{position:relative;scroll-margin-top:72px}.landing[data-editing] .site-selected-part{outline:2px solid var(--primary);outline-offset:-2px}.landing[data-editing] .site-hidden>*{opacity:.4}.landing[data-editing] .site-hidden:not(.site-selected){outline:2px dashed var(--border-strong);outline-offset:-2px}.landing[data-editing] .site-selected:after,.landing[data-editing] .site-hidden:after{content:attr(data-type);position:absolute;top:12px;left:12px;z-index:6;padding:2px 8px;border-radius:6px;background:var(--primary);color:var(--on-primary);font:600 11px/1.6 Inter,system-ui,sans-serif;letter-spacing:0;text-transform:none;pointer-events:none}.landing[data-editing] .site-hidden:after{content:attr(data-type) " · hidden"}.landing[data-editing] .site-hidden:not(.site-selected):after{background:var(--muted);color:var(--bg)}.landing[data-editing] .marquee.site-selected,.landing[data-editing] .marquee.site-hidden{-webkit-mask-image:none;mask-image:none}.site-editable{cursor:text;border-radius:3px}.site-editable:hover{outline:1px dashed color-mix(in srgb,var(--primary) 60%,transparent);outline-offset:2px}.site-editable:focus{outline:2px solid var(--primary);outline-offset:2px;background:color-mix(in srgb,var(--primary) 8%,transparent)}.site-editable:empty{display:inline-block;min-width:2ch}.site-tools{position:fixed;z-index:30;display:flex;gap:2px;padding:3px;border-radius:10px;background:#111;color:#fff;box-shadow:0 6px 20px #00000040;font:500 12px/1 Inter,system-ui,sans-serif}.site-tools button{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:28px;min-width:28px;padding:0 6px;border:none;border-radius:7px;background:transparent;color:inherit;font:inherit;cursor:pointer}.site-tools button:hover:not(:disabled){background:#ffffff24}.site-tools button:disabled{opacity:.35;cursor:default}.site-tools .site-tools-add,.site-tools .site-tools-add:hover:not(:disabled){margin-left:2px;background:var(--primary);color:var(--on-primary)}@media (max-width: 640px){.site-tools-add span{display:none}.site-tools button{height:26px;min-width:26px;padding:0 4px}}
