:root{color-scheme:light;--color-bg:#f8fafc;--color-surface:#fff;--color-text:#111827;--color-text-muted:#475569;--color-border:#64748b;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-focus:#1d4ed8;--color-success:#15803d;--color-warning:#92400e;--color-danger:#b91c1c;--color-overlay:#0f172a66;--radius-control:8px;--radius-panel:12px;--duration-fast:.12s;--duration-normal:.18s;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px}*{box-sizing:border-box}html{color-scheme:light;background:var(--color-bg);color:var(--color-text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}body{min-width:0;margin:0}a{color:var(--color-accent);text-underline-offset:.18em;touch-action:manipulation;text-decoration-thickness:1px}a:hover{color:var(--color-accent-hover)}a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.skip-link:focus{z-index:2;top:var(--space-3);left:var(--space-3);width:auto;height:auto;padding:var(--space-3) var(--space-4);clip:auto;clip-path:none;border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text)}.portal-shell{width:min(100% - 32px,1120px);margin-inline:auto}.portal-header{justify-content:space-between;align-items:center;gap:var(--space-4);border-bottom:1px solid var(--color-border);min-height:72px;display:flex}.wordmark{color:var(--color-text);font-size:1.125rem;font-weight:700;text-decoration:none}.portal-nav a,.portal-footer a{align-items:center;min-height:44px;display:inline-flex}.portal-main{padding-block:var(--space-8)}.portal-hero{max-width:760px;margin-bottom:var(--space-8)}.eyebrow{margin:0 0 var(--space-2);color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.875rem;font-weight:650}h1,h2,h3,p{margin-top:0}h1{margin-bottom:var(--space-3);text-wrap:balance;font-size:2rem;line-height:1.2}h2{margin-bottom:var(--space-4);text-wrap:balance;font-size:1.5rem;line-height:1.3}h3{margin-bottom:var(--space-2);font-size:1.125rem;line-height:1.4}.hero-copy{max-width:66ch;margin-bottom:var(--space-4);color:var(--color-text-muted)}.primary-link{min-height:44px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-control);background:var(--color-accent);color:var(--color-surface);justify-content:center;align-items:center;font-weight:650;text-decoration:none;display:inline-flex}.primary-link:hover{background:var(--color-accent-hover);color:var(--color-surface)}.tool-category+.tool-category{margin-top:var(--space-8)}.tool-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tool-card{min-width:0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface)}.tool-card p{color:var(--color-text-muted);overflow-wrap:anywhere;margin-bottom:0}.tool-card h3 a{min-height:44px;display:inline-block}.processing-note{max-width:760px;margin-top:var(--space-8);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface)}.processing-note p:last-child{margin-bottom:0}.portal-footer{justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-4);border-top:1px solid var(--color-border);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.portal-footer nav{gap:var(--space-4);flex-wrap:wrap;display:flex}.not-found{max-width:760px;min-height:60vh;padding-block:var(--space-8);align-content:center;display:grid}@media (width<=767px){.portal-shell{width:min(100% - 32px,1120px)}.portal-header{min-height:64px}.portal-main{padding-block:var(--space-6)}h1{font-size:1.75rem}.tool-grid{grid-template-columns:minmax(0,1fr)}.portal-footer{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
