*,*::before,*::after{box-sizing:border-box;margin:0}:root{--wisp-fg:#1a1a1a;--wisp-bg:#ffffff;--wisp-muted:#666666;--wisp-accent:#0066cc;--wisp-border:rgba(0,0,0,0.1);--wisp-xs:calc(var(--wisp-spacing-unit,1rem) * 0.25);--wisp-sm:calc(var(--wisp-spacing-unit,1rem) * 0.5);--wisp-md:var(--wisp-spacing-unit,1rem);--wisp-lg:calc(var(--wisp-spacing-unit,1rem) * 1.5);--wisp-xl:calc(var(--wisp-spacing-unit,1rem) * 2)}@media (prefers-color-scheme:dark){:root{--wisp-fg:#e6e6e6;--wisp-bg:#0a0a0a;--wisp-muted:#999;--wisp-accent:#66b3ff;--wisp-border:rgba(255,255,255,0.1)}}html{font-size:var(--wisp-base-font,1rem);line-height:var(--wisp-line-height,1.6);color:var(--wisp-fg);background:var(--wisp-bg)}body{font-family:system-ui,-apple-system,sans-serif;max-width:var(--wisp-max-width,70ch);margin:0 auto;padding:var(--wisp-md)}[data-wisp-active="dashboard"] body{max-width:100%;padding:var(--wisp-sm)}[data-wisp-active="narrative"] body{padding:var(--wisp-xl) var(--wisp-md)}h1,h2,h3,h4,h5,h6{line-height:1.2;margin:var(--wisp-lg) 0 var(--wisp-sm);font-weight:600}h1{font-size:calc(var(--wisp-base-font) * 2)}h2{font-size:calc(var(--wisp-base-font) * 1.5)}h3{font-size:calc(var(--wisp-base-font) * 1.25)}p,ul,ol{margin-bottom:calc(var(--wisp-spacing-unit) * (1 + var(--wisp-density,0.5)))}button,input,select,textarea{font:inherit;padding:var(--wisp-sm) var(--wisp-md);border:1px solid var(--wisp-border);border-radius:calc(var(--wisp-spacing-unit) * 0.25);background:var(--wisp-bg);color:var(--wisp-fg);transition:all var(--wisp-motion,200ms) ease}button:hover,input:focus,select:focus,textarea:focus{border-color:var(--wisp-accent);outline:none;box-shadow:0 0 0 2px rgba(0,102,204,0.2)}[data-wisp-skip]{position:absolute;top:-100%;left:var(--wisp-md);background:var(--wisp-accent);color:white;padding:var(--wisp-sm) var(--wisp-md);text-decoration:none;border-radius:0 0 4px 4px;z-index:10000;transition:top var(--wisp-motion)}[data-wisp-skip]:focus{top:0}@media print{:root{--wisp-max-width:100%;--wisp-spacing-unit:0.75rem}[data-wisp-skip],button{display:none!important}}