:root{--color-paper: oklch(98.2% .008 250);--color-paper-2: oklch(95.6% .014 250);--color-paper-3: oklch(92.4% .02 252);--color-surface: oklch(99.5% .004 250);--color-ink: oklch(22% .045 262);--color-ink-2: oklch(36% .035 260);--color-muted: oklch(50% .025 258);--color-rule: oklch(88% .016 252);--color-rule-2: oklch(92.5% .012 252);--color-accent: oklch(60% .19 255);--color-accent-strong: oklch(50% .19 260);--color-accent-soft: oklch(94% .035 252);--color-accent-ink: oklch(98.5% .008 250);--color-focus: oklch(56% .21 255);--color-navy: oklch(24% .09 265);--color-navy-2: oklch(42% .17 260);--color-on-navy: oklch(96% .012 250);--color-on-navy-2: oklch(80% .03 252);--color-ok: oklch(48% .11 160);--color-ok-soft: oklch(95.5% .03 160);--color-warn: oklch(50% .11 70);--color-warn-soft: oklch(96% .04 85);--color-danger: oklch(52% .17 27);--color-danger-soft: oklch(95.5% .025 27);--color-stage: oklch(17% .03 262);--color-scrim: oklch(17% .03 262 / .92);--color-on-stage: oklch(96% .01 250);--color-on-stage-2: oklch(76% .02 252);--font-display: "Bricolage Grotesque", ui-sans-serif, sans-serif;--font-body: "Be Vietnam Pro", ui-sans-serif, sans-serif;--text-xs: .8rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.25rem;--text-lg: 1.5625rem;--text-xl: 1.9531rem;--text-2xl: 2.4414rem;--text-display: clamp(2.25rem, 3.6vw + 1rem, 3.8rem);--space-3xs: .125rem;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--space-3xl: 6rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 999px;--rule-w: 1px;--shadow-soft: 0 6px 20px oklch(24% .06 262 / .08);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .22s;--dur-long: .42s;--z-base: 1;--z-raised: 10;--z-dropdown: 100;--z-sticky: 200;--z-modal: 400;--z-toast: 500}*,*:before,*:after{box-sizing:border-box}html,body{overflow-x:clip}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-height:100dvh;background:var(--color-paper);color:var(--color-ink-2);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;font-weight:400}h1,h2,h3{margin:0;color:var(--color-ink);font-family:var(--font-display);font-style:normal;font-weight:700;letter-spacing:-.02em;line-height:1.12;overflow-wrap:anywhere;min-width:0}p{margin:0}img,svg,video{display:block;max-width:100%}a{color:inherit}button,input,select{font:inherit;color:inherit}[hidden]{display:none!important}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.num{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn{--btn-bg: var(--color-surface);--btn-fg: var(--color-ink);--btn-bd: var(--color-rule);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:44px;padding:0 var(--space-md);border:var(--rule-w) solid var(--btn-bd);border-radius:var(--radius-md);background:var(--btn-bg);color:var(--btn-fg);font-weight:500;font-size:var(--text-sm);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.btn svg{width:18px;height:18px;flex:none}.btn:hover,.btn.is-hover{--btn-bg: var(--color-paper-2);--btn-bd: var(--color-paper-3)}.btn:active,.btn.is-active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;--btn-bg: var(--color-paper-2);--btn-fg: var(--color-muted);--btn-bd: var(--color-rule-2);transform:none}.btn[data-state=loading]{cursor:progress}.btn[data-state=loading]:before{content:"";width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}.btn[data-state=error]{--btn-bd: var(--color-danger);--btn-fg: var(--color-danger)}.btn[data-state=success]{--btn-bd: var(--color-ok);--btn-fg: var(--color-ok)}.btn--primary{--btn-bg: var(--color-accent-strong);--btn-fg: var(--color-accent-ink);--btn-bd: var(--color-accent-strong)}.btn--primary:hover,.btn--primary.is-hover{--btn-bg: var(--color-navy-2);--btn-bd: var(--color-navy-2)}.btn--primary[data-state=error]{--btn-bg: var(--color-danger);--btn-bd: var(--color-danger);--btn-fg: var(--color-accent-ink)}.btn--primary[data-state=success]{--btn-bg: var(--color-ok);--btn-bd: var(--color-ok);--btn-fg: var(--color-accent-ink)}.btn--quiet{--btn-bg: transparent;--btn-bd: transparent}.btn--quiet:hover,.btn--quiet.is-hover{--btn-bg: var(--color-paper-2);--btn-bd: transparent}.btn--block{width:100%}@keyframes spin{to{transform:rotate(360deg)}}.field{display:grid;gap:var(--space-2xs)}.field__label{font-size:var(--text-sm);font-weight:500;color:var(--color-ink)}.field__hint{font-size:var(--text-xs);color:var(--color-muted)}.field__error{font-size:var(--text-sm);color:var(--color-danger)}.input{width:100%;min-height:46px;padding:0 var(--space-sm);border:var(--rule-w) solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-ink);transition:border-color var(--dur-micro) var(--ease-out)}.input::placeholder{color:var(--color-muted)}.input:hover{border-color:var(--color-paper-3)}.input:focus-visible{outline:2px solid var(--color-focus);outline-offset:0;border-color:var(--color-focus)}.input:disabled{background:var(--color-paper-2);color:var(--color-muted);cursor:not-allowed}.input[aria-invalid=true]{border-color:var(--color-danger)}.chip{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-3xs) var(--space-xs);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:500;white-space:nowrap;background:var(--color-paper-2);color:var(--color-ink-2)}.chip:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.chip--ok{background:var(--color-ok-soft);color:var(--color-ok)}.chip--warn{background:var(--color-warn-soft);color:var(--color-warn)}.chip--danger{background:var(--color-danger-soft);color:var(--color-danger)}.skeleton{background:var(--color-paper-2);border-radius:var(--radius-md);animation:pulse 1.6s var(--ease-in-out) infinite}@keyframes pulse{50%{opacity:.55}}.toast-host{position:fixed;inset-inline:var(--space-md);bottom:max(var(--space-md),env(safe-area-inset-bottom));z-index:var(--z-toast);display:grid;justify-items:center;gap:var(--space-xs);pointer-events:none}.toast{max-width:28rem;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-ink);color:var(--color-accent-ink);font-size:var(--text-sm);box-shadow:var(--shadow-soft);pointer-events:auto;animation:toast-in var(--dur-short) var(--ease-out)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.lightbox{position:fixed;inset:0;z-index:var(--z-modal);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--color-scrim);color:var(--color-on-stage);animation:fade-in var(--dur-short) var(--ease-out)}.lightbox__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);padding-top:max(var(--space-sm),env(safe-area-inset-top))}.lightbox__label{font-size:var(--text-sm);color:var(--color-on-stage-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lightbox__stage{display:grid;place-items:center;padding:0 var(--space-md);min-height:0}.lightbox__stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-sm)}.lightbox__foot{display:flex;justify-content:center;gap:var(--space-xs);flex-wrap:wrap;padding:var(--space-md);padding-bottom:max(var(--space-md),env(safe-area-inset-bottom))}.lightbox .btn--quiet{--btn-fg: var(--color-on-stage)}.lightbox .btn--quiet:hover{--btn-bg: var(--color-ink-2)}@keyframes fade-in{0%{opacity:0}}.reveal{animation:reveal var(--dur-long) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 60ms)}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.12s!important;animation-iteration-count:1!important;transition-duration:0ms!important}.reveal{animation-name:fade-in}.btn:active{transform:none}.btn[data-state=loading]:before{animation-duration:1.4s!important;animation-iteration-count:infinite!important}}@media(pointer:coarse){.btn{min-height:48px}}.login{display:grid;min-height:100dvh}.login__brand{display:grid;gap:var(--space-lg);align-content:start;padding:var(--space-lg) var(--space-md) var(--space-xl);background:linear-gradient(160deg,var(--color-navy),var(--color-navy-2));color:var(--color-on-navy-2)}.login__mark{display:flex;align-items:center;gap:var(--space-xs)}.login__mark img{width:44px;height:44px;padding:var(--space-2xs);border-radius:var(--radius-md);background:var(--color-surface)}.wordmark{font-family:var(--font-display);font-weight:700;font-size:var(--text-md);letter-spacing:-.02em;color:var(--color-on-navy)}.login__pitch{display:grid;gap:var(--space-sm);max-width:34rem}.login__pitch h1{color:var(--color-on-navy);font-size:clamp(1.75rem,3vw + 1rem,3.1rem)}.login__lede{max-width:40ch}.login__banner{display:none;margin:0}.login__panel{display:grid;align-items:start;padding:var(--space-xl) var(--space-md) var(--space-2xl)}.login__form{display:grid;gap:var(--space-lg);width:100%;max-width:24rem}.login__form h2{font-size:var(--text-xl)}.login__sub{margin-top:calc(var(--space-sm) * -1);color:var(--color-muted);font-size:var(--text-sm)}.input--pin{letter-spacing:.5em;font-size:var(--text-md)}@media(min-width:60rem){.login{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.login__brand{grid-template-rows:auto 1fr auto;padding:var(--space-xl) var(--space-2xl);min-height:100dvh;position:sticky;top:0}.login__pitch{align-self:center}.login__banner{display:block;border-radius:var(--radius-lg);overflow:hidden;border:var(--rule-w) solid var(--color-navy-2)}.login__banner img{width:100%;height:auto}.login__panel{align-items:center;padding:var(--space-2xl) var(--space-3xl) var(--space-2xl) var(--space-2xl)}}
