@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Inter-VariableFont_opsz_wght.ttf) format("truetype-variations"),url(/fonts/Inter-VariableFont_opsz_wght.ttf) format("truetype")}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/Inter-Italic-VariableFont_opsz_wght.ttf) format("truetype-variations"),url(/fonts/Inter-Italic-VariableFont_opsz_wght.ttf) format("truetype")}@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap");:root{--bg:#fff;--surface:#fafafa;--surface-2:#f4f4f5;--border:#e4e4e7;--border-strong:#d4d4d8;--fg:#18181b;--fg-muted:#52525b;--fg-subtle:#a1a1aa;--fg-disabled:#d4d4d8;--accent:#6366f1;--accent-hover:#4f46e5;--accent-soft:#eef2ff;--accent-fg:#fff;--success:#16a34a;--success-soft:#f0fdf4;--warn:#ca8a04;--warn-soft:#fefce8;--danger:#dc2626;--danger-soft:#fef2f2;--info:#2563eb;--info-soft:#eff6ff;--level-novice:#a1a1aa;--level-confirme:#60a5fa;--level-avance:#6366f1;--level-expert:#4338ca;--font-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;--t-display:clamp(40px,5vw,60px);--t-h1:clamp(28px,3.4vw,38px);--t-h2:clamp(22px,2.4vw,26px);--t-h3:18px;--t-body:16px;--t-small:14px;--t-caption:12px;--lh-tight:1.15;--lh-snug:1.3;--lh-base:1.55;--tr-tight:-0.02em;--tr-snug:-0.01em;--tr-wide:0.04em;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--container-max:1200px;--reading-max:680px;--gutter:24px;--gutter-mobile:20px;--radius-sm:4px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(24,24,27,.04);--shadow-md:0 4px 12px rgba(24,24,27,.06);--ease:cubic-bezier(.2,.6,.2,1);--dur:150ms}*,:after,:before{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;background:var(--bg);font-family:var(--font-sans);font-size:var(--t-body);line-height:var(--lh-base);font-feature-settings:"ss01","cv11"}a,body{color:var(--fg)}a{text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px}a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}::selection{background:var(--accent-soft);color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.display,h1.display{font-size:var(--t-display);letter-spacing:var(--tr-tight)}.display,.h1,h1,h1.display{font-weight:600;line-height:var(--lh-tight);margin:0}.h1,h1{font-size:var(--t-h1);letter-spacing:var(--tr-snug)}.h2,h2{font-size:var(--t-h2);letter-spacing:var(--tr-snug)}.h2,.h3,h2,h3{font-weight:600;line-height:var(--lh-snug);margin:0}.h3,h3{font-size:var(--t-h3)}.body{font-size:var(--t-body);line-height:var(--lh-base)}.small{font-size:var(--t-small);color:var(--fg-muted)}.caption{font-size:var(--t-caption);font-weight:500;color:var(--fg-subtle);letter-spacing:var(--tr-wide);text-transform:uppercase}.mono{font-family:var(--font-mono);font-feature-settings:"tnum"}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);height:40px;padding:0 var(--s-4);font:500 var(--t-small)/1 var(--font-sans);letter-spacing:-.005em;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn[aria-disabled=true],.btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg);color:var(--fg);border-color:var(--border)}.btn-secondary:hover{background:var(--surface-2);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--fg-muted)}.btn-ghost:hover{background:var(--surface-2);color:var(--fg)}.btn-danger{background:var(--bg);color:var(--danger);border-color:var(--border)}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn-lg{height:48px;padding:0 var(--s-5);font-size:var(--t-body)}.btn-sm{height:32px;padding:0 var(--s-3);font-size:var(--t-caption)}.input,.select,.textarea{width:100%;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);padding:10px var(--s-3);font:400 var(--t-body)/1.4 var(--font-sans);transition:border-color var(--dur) var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--fg-subtle)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{min-height:96px;resize:vertical}.label{display:block;font-size:var(--t-small);font-weight:500;color:var(--fg);margin-bottom:var(--s-2)}.help{font-size:var(--t-caption);color:var(--fg-muted);margin-top:var(--s-1)}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-5)}.card-lg{border-radius:var(--radius-lg);padding:var(--s-6)}.card-elevated{box-shadow:var(--shadow-sm)}.card.clickable{cursor:pointer;transition:border-color var(--dur) var(--ease)}.card.clickable:hover{border-color:var(--border-strong)}.surface{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-4)}.chip{display:inline-flex;align-items:center;gap:var(--s-1);padding:2px var(--s-2);background:var(--surface-2);color:var(--fg-muted);border-radius:var(--radius-pill);font-size:var(--t-caption);font-weight:500}.chip-accent{background:var(--accent-soft);color:var(--accent-hover)}.chip-success{background:var(--success-soft);color:var(--success)}.chip-warn{background:var(--warn-soft);color:var(--warn)}.chip-danger{background:var(--danger-soft);color:var(--danger)}.divider{height:1px;background:var(--border);border:0;margin:var(--s-5) 0}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter-mobile)}@media (min-width:768px){.container{padding:0 var(--gutter)}}.stack>*+*{margin-top:var(--s-4)}.stack-sm>*+*{margin-top:var(--s-2)}.stack-lg>*+*{margin-top:var(--s-6)}