:root{--font-display: "Syne", "Avenir Next", sans-serif;--font-body: "Manrope", "Avenir Next", sans-serif;--ink: #121416;--ink-soft: #1a1d21;--mist: #e8ecef;--paper: #f4f6f8;--slate: #5c6670;--slate-deep: #2c333a;--copper: #e07040;--copper-soft: #f0a07a;--teal: #1fa6a0;--teal-soft: #7ad4cf;--line: rgba(18, 20, 22, .12);--line-light: rgba(255, 255, 255, .1);--danger: #c44536;--nav-h: 4.25rem;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#app{min-height:100vh}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-root,.app-root--bare{min-height:100vh}.site-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--nav-h);padding:0 clamp(1.25rem,4vw,3rem);background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.site-nav__brand{font-family:var(--font-display);font-weight:800;font-size:1.15rem;letter-spacing:-.03em}.site-nav__brand span{color:var(--copper)}.site-nav__links{display:flex;align-items:center;gap:1.25rem;font-size:.9rem;font-weight:600;color:var(--slate-deep)}.site-nav__links a{opacity:.72;transition:opacity .2s ease}.site-nav__links a:hover,.site-nav__links a.router-link-active{opacity:1}.state-block{padding:2.5rem clamp(1.25rem,4vw,3rem);color:var(--slate)}.state-block--error{color:var(--danger)}.state-block--center{display:grid;place-items:center;min-height:40vh;text-align:center}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.8;transform:scale(1.04)}}@keyframes breath-line{0%,to{transform:scaleX(.72);opacity:.55}50%{transform:scaleX(1);opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
