/* Glasshouse foundation · the extension redesign's system on the website.
 * Tokens, type, shape and motion follow tools/dev-lab/adapters/redesign/redesign.css with the same
 * --gx-* names, so a part reads the same on Stake and here. Paper is the page; white surfaces with a
 * 1px stroke hold grouped content; only floating things (menus, dialogs, toasts) cast a shadow.
 * Pills are for real buttons; a set of choices is a text row with the chosen one underlined. */
@font-face{font-family:'Geist';src:url('./fonts/Geist-Latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
/* Arial scaled to Geist's width and line metrics, so the swap to Geist moves nothing. */
@font-face{font-family:'Geist Fallback';src:local('Arial'),local('ArialMT');size-adjust:103.98%;ascent-override:96.65%;descent-override:28.37%;line-gap-override:0%}

/* ── Tokens ─────────────────────────────────────────────────────────────── */
:root{
 --gx-paper:#f8f9fc;--gx-surface:#fff;--gx-raised:#fff;
 --gx-ink:#18212b;--gx-ink-2:#38434f;--gx-muted:#637083;--gx-faint:#8d97a6;
 --gx-rule:#dce2eb;--gx-hair:#e9edf3;--gx-soft:#f1f4f8;--gx-press:#e6ebf2;
 --gx-accent:#2459c5;--gx-accent-soft:#eaf0fc;
 --gx-profit:#217653;--gx-loss:#aa3543;--gx-profit-wash:rgba(33,118,83,.11);--gx-loss-wash:rgba(170,53,67,.1);
 --gx-bar:#9aa9bf;--gx-stroke:rgba(16,18,27,.07);--gx-warn:#865d15;
 --gx-shadow:0 1px 2px rgba(24,33,43,.06),0 14px 36px rgba(24,33,43,.16);
 --gx-lift:0 1px 2px rgba(24,33,43,.1),0 0 0 1px var(--gx-stroke);
 --gx-scrim:rgba(17,24,34,.4);--gx-glow:.5;
 /* Graph fills (the site's seed graph): strongest at the line, fading to the zero line. */
 --gx-fill-profit:oklch(72% .12 155);--gx-fill-loss:oklch(74% .12 25);--gx-fill-profit-a:.22;--gx-fill-loss-a:.2;
 --gx-orb:conic-gradient(from 0deg,#ffb86b,#ff6b8b,#c86bff,#7a8dff,#5ad1ff,#ffb86b);
 --gx-font:'Geist','Geist Fallback',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
 /* Motion: the spring answers a touch, ease-out brings things in, ease-in-out draws. */
 --gx-spring:cubic-bezier(.3,1.4,.5,1);--gx-ease:cubic-bezier(.2,1,.4,1);--gx-ease-in-out:cubic-bezier(.65,0,.35,1);--gx-ease-exit:cubic-bezier(.4,0,1,1);
 --gx-r-card:16px;--gx-r-group:14px;--gx-r-modal:20px;--gx-r-field:10px;--gx-r-row:10px;--gx-r-art:12px;
 color-scheme:light;
 /* Older names, kept so every remaining rule and inline chart style follows the theme. */
 --color-paper:var(--gx-paper);--color-surface:var(--gx-surface);--color-paper-2:var(--gx-soft);--color-rule:var(--gx-rule);--color-boundary:var(--gx-bar);
 --color-muted:var(--gx-muted);--color-ink-2:var(--gx-ink-2);--color-ink:var(--gx-ink);--color-accent:var(--gx-accent);--color-accent-ink:var(--gx-paper);--color-focus:var(--gx-accent);
 --color-error:var(--gx-loss);--color-positive:var(--gx-profit);--color-negative:var(--gx-loss);--color-clear:transparent;--color-scrim:var(--gx-scrim);--color-shadow:rgba(24,33,43,.12);
 --font-display:var(--gx-font);--font-body:var(--gx-font);--font-mono:var(--gx-font);
 --space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;
 --text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-lg:1.0625rem;--text-xl:1.375rem;
 --radius-card:var(--gx-r-art);--radius-input:var(--gx-r-field);--radius-dialog:var(--gx-r-modal);
 --ease-out:var(--gx-ease);--ease-in:var(--gx-ease-exit);--ease-in-out:var(--gx-ease-in-out);--dur-micro:120ms;--dur-short:220ms;
 --z-sticky:200;--z-modal:400;--z-toast:500;
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
 --gx-paper:#14171d;--gx-surface:#1b1f27;--gx-raised:#222731;
 --gx-ink:#f4f5f7;--gx-ink-2:#d6dae1;--gx-muted:#a9b0bb;--gx-faint:#7f8794;
 --gx-rule:#3a404b;--gx-hair:#2a2f38;--gx-soft:#232832;--gx-press:#2d333e;
 --gx-accent:#a9c4ff;--gx-accent-soft:#22304d;
 --gx-profit:#8ce6b7;--gx-loss:#ff9ba8;--gx-profit-wash:rgba(140,230,183,.1);--gx-loss-wash:rgba(255,155,168,.09);
 --gx-bar:#5d6878;--gx-stroke:rgba(255,255,255,.07);--gx-warn:#f0c47c;
 --gx-shadow:0 1px 2px rgba(0,0,0,.35),0 18px 44px rgba(0,0,0,.5);
 --gx-lift:0 1px 2px rgba(0,0,0,.3),0 0 0 1px var(--gx-stroke);
 --gx-scrim:rgba(4,6,10,.62);--gx-glow:.58;--gx-fill-profit-a:.2;--gx-fill-loss-a:.18;--color-shadow:rgba(0,0,0,.4);
 color-scheme:dark;
}}
:root[data-theme=dark]{
 --gx-paper:#14171d;--gx-surface:#1b1f27;--gx-raised:#222731;
 --gx-ink:#f4f5f7;--gx-ink-2:#d6dae1;--gx-muted:#a9b0bb;--gx-faint:#7f8794;
 --gx-rule:#3a404b;--gx-hair:#2a2f38;--gx-soft:#232832;--gx-press:#2d333e;
 --gx-accent:#a9c4ff;--gx-accent-soft:#22304d;
 --gx-profit:#8ce6b7;--gx-loss:#ff9ba8;--gx-profit-wash:rgba(140,230,183,.1);--gx-loss-wash:rgba(255,155,168,.09);
 --gx-bar:#5d6878;--gx-stroke:rgba(255,255,255,.07);--gx-warn:#f0c47c;
 --gx-shadow:0 1px 2px rgba(0,0,0,.35),0 18px 44px rgba(0,0,0,.5);
 --gx-lift:0 1px 2px rgba(0,0,0,.3),0 0 0 1px var(--gx-stroke);
 --gx-scrim:rgba(4,6,10,.62);--gx-glow:.58;--gx-fill-profit-a:.2;--gx-fill-loss-a:.18;--color-shadow:rgba(0,0,0,.4);
 color-scheme:dark;
}

/* ── Base ───────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{background:var(--gx-paper);scrollbar-gutter:stable;-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--gx-rule) transparent}
html,body{overflow-x:clip}
body{margin:0;min-height:100dvh;background:var(--gx-paper);color:var(--gx-ink);font:400 14px/1.5 var(--gx-font);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-bottom:env(safe-area-inset-bottom)}
h1,h2,h3,h4{margin:0;font-weight:600;overflow-wrap:anywhere;min-width:0;text-wrap:balance}
h1{font-size:28px;line-height:1.15;letter-spacing:-.9px}
h2{font-size:17px;line-height:1.3;letter-spacing:-.35px}
h3{font-size:14px;line-height:1.35;letter-spacing:-.15px}
p{margin:0}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{margin:0;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:disabled{cursor:not-allowed}
img,svg{display:block;max-width:100%}
table{border-collapse:collapse}
kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:6px;background:var(--gx-soft);box-shadow:inset 0 0 0 1px var(--gx-stroke);color:var(--gx-muted);font:500 11px/1 var(--gx-font)}
::selection{background:color-mix(in srgb,var(--gx-accent) 22%,transparent)}
:focus-visible{outline:2px solid var(--gx-accent);outline-offset:2px}
/* Headings and regions focused by script (to announce a new view) are not controls: no ring. */
[tabindex="-1"]:focus{outline:none}
[hidden]{display:none!important}
.sr-only,.gx-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link{position:fixed;top:10px;left:10px;z-index:1100;padding:9px 16px;border-radius:999px;background:var(--gx-ink);color:var(--gx-paper);font-size:13px;font-weight:500;transform:translateY(-200%);transition:transform .2s var(--gx-ease)}
.skip-link:focus-visible{transform:none}
[data-tone=profit],.positive{color:var(--gx-profit)}
[data-tone=loss],.negative{color:var(--gx-loss)}
.gx-num{font-variant-numeric:tabular-nums}
.gx-link,.info-copy a,.detail-note a{color:var(--gx-accent);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--gx-accent) 35%,transparent);text-underline-offset:3px;transition:text-decoration-color .15s ease}
.gx-link:hover,.info-copy a:hover,.detail-note a:hover{text-decoration-color:currentColor}
svg.gx-i{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ── Shell: sidebar, phone header, page column, footer ──────────────────── */
.site-ready{--site-sidebar-width:232px;--site-page-gutter:32px;--shell-duration:360ms;padding-left:var(--site-sidebar-width)}
:root[data-sidebar=collapsed] .site-ready{--site-sidebar-width:72px}
.site-sidebar{position:fixed;inset:0 auto 0 0;z-index:210;display:flex;flex-direction:column;width:var(--site-sidebar-width);height:100dvh;background:var(--gx-paper);border-right:1px solid var(--gx-hair);color:var(--gx-ink);overflow:hidden}
.sidebar-brand-row{position:relative;display:flex;align-items:center;flex:none;height:64px;padding:0 20px}
.sidebar-brand,.site-context,.design-header .brand{display:inline-flex;align-items:baseline;font-size:20px;font-weight:650;letter-spacing:-.8px;line-height:1;white-space:nowrap;color:var(--gx-ink)}
.brand-dot{color:var(--gx-accent)}
.sidebar-brand-row>.sidebar-toggle{position:absolute;top:14px;left:calc(var(--site-sidebar-width) - 52px)}
.sidebar-icon-button{display:inline-grid;place-items:center;width:36px;height:36px;flex:none;border-radius:10px;color:var(--gx-muted);transition:background .15s ease,color .15s ease}
.sidebar-icon-button svg{width:18px;height:18px}
.sidebar-icon-button:hover{background:var(--gx-soft);color:var(--gx-ink)}
.sidebar-mobile-close{display:none}
.sidebar-scroll{flex:1;min-height:0;overflow:hidden auto;padding:14px 12px;scrollbar-width:none}
.sidebar-section-title{margin:0 0 6px;padding:0 12px;font-size:11.5px;font-weight:500;line-height:1.4;color:var(--gx-muted);white-space:nowrap}
.sidebar-nav{display:flex;flex-direction:column;gap:2px}
.sidebar-link{position:relative;display:flex;align-items:center;gap:11px;width:100%;min-height:38px;padding:0 12px;border-radius:var(--gx-r-row);color:var(--gx-ink-2);font-size:13px;font-weight:500;line-height:1.3;text-align:left;white-space:nowrap;transition:background .15s ease,color .15s ease,box-shadow .15s ease}
.sidebar-link>svg{width:17px;height:17px;flex:none;color:var(--gx-muted);transition:color .15s ease}
.sidebar-link:hover{background:var(--gx-soft);color:var(--gx-ink)}
.sidebar-link[aria-current=page]{background:var(--gx-surface);color:var(--gx-ink);box-shadow:var(--gx-lift)}
.sidebar-link[aria-current=page]>svg{color:var(--gx-accent)}
.sidebar-tools{margin-top:22px}
.sidebar-bottom{flex:none;display:flex;flex-direction:column;gap:2px;margin:0 12px;padding:10px 0 14px;border-top:1px solid var(--gx-hair)}
.sidebar-methodology{color:var(--gx-muted)}
.sidebar-theme{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;padding:0 4px 0 12px;font-size:12px;color:var(--gx-muted);white-space:nowrap}
.sidebar-account-row{position:relative;display:flex;align-items:center;min-height:38px;min-width:0;border-radius:var(--gx-r-row);transition:background .15s ease}
.sidebar-account-row:hover{background:var(--gx-soft)}
.sidebar-account-row>svg{position:absolute;left:12px;width:17px;height:17px;color:var(--gx-muted);pointer-events:none}
.sidebar-account-row .account-nav-button{display:block;width:100%;min-height:38px;padding:0 30px 0 40px;border-radius:var(--gx-r-row);font-size:13px;font-weight:500;color:var(--gx-ink-2);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-account-row .account-nav-button[aria-busy=true]{color:var(--gx-faint)}
.sidebar-account-chevron{position:absolute;right:10px;display:flex;color:var(--gx-faint);pointer-events:none}
.sidebar-account-chevron svg{width:13px;height:13px}
.sidebar-caption{margin:6px 12px 0;font-size:11px;line-height:1.4;color:var(--gx-muted);white-space:nowrap}
.site-header{display:none}
.site-header-start{display:flex;align-items:center;gap:10px;min-width:0}
/* Collapsed: icons only. Labels fade and slide; the column eases to 72px. */
:root[data-sidebar=collapsed] .sidebar-brand{opacity:0;visibility:hidden;pointer-events:none}
:root[data-sidebar=collapsed] :is(.sidebar-section-title,.sidebar-caption,.sidebar-account-chevron,.sidebar-label,.sidebar-theme){opacity:0;transform:translateX(-6px);pointer-events:none}
:root[data-sidebar=collapsed] .sidebar-account-row .account-nav-button{color:transparent}
/* The theme choice has no icon form, so a collapsed rail drops it from the tab order too. */
:root[data-sidebar=collapsed] .site-ready>.site-sidebar .sidebar-theme{visibility:hidden}
.shell-motion-ready{transition:padding-left var(--shell-duration) var(--gx-ease)}
.shell-motion-ready .site-sidebar{transition:width var(--shell-duration) var(--gx-ease)}
.shell-motion-ready .sidebar-brand-row>.sidebar-toggle{transition:left var(--shell-duration) var(--gx-ease),background .15s ease,color .15s ease}
.shell-motion-ready .sidebar-brand{transition:opacity 140ms ease 160ms,visibility 0s 160ms}
.shell-motion-ready :is(.sidebar-label,.sidebar-section-title,.sidebar-caption,.sidebar-account-chevron,.sidebar-theme){transition:opacity 180ms ease 90ms,transform var(--shell-duration) var(--gx-ease) 90ms}
:root[data-sidebar=collapsed] .shell-motion-ready :is(.sidebar-brand,.sidebar-label,.sidebar-section-title,.sidebar-caption,.sidebar-account-chevron,.sidebar-theme){transition-delay:0ms}
:root[data-sidebar=collapsed] .shell-motion-ready .sidebar-brand{transition:opacity 60ms ease,visibility 60ms}
.site-nav-drawer{position:fixed;inset:0 auto 0 0;margin:0;width:min(288px,calc(100vw - 48px));height:100dvh;max-width:none;max-height:none;padding:0;border:0;border-radius:0 var(--gx-r-modal) var(--gx-r-modal) 0;background:var(--gx-paper);color:var(--gx-ink);box-shadow:var(--gx-shadow);overflow:hidden}
.site-nav-drawer::backdrop{background:var(--gx-scrim);animation:gx-fade-in .3s ease both}
.site-nav-drawer[data-closing]::backdrop{animation:gx-fade-out .22s ease both}
html:has(.site-nav-drawer[open]){overflow:hidden}
.site-nav-drawer[open] .site-sidebar{position:relative;width:100%;height:100%;border:0}
/* The page column always fills the screen's height, so the footer starts below it and never jumps as content lands.
 * Its width is each page's own max-width (the catalogue keeps the full width), centred in the space beside the sidebar. */
.site-ready>main{width:100%;min-width:0;min-height:100dvh;margin:0 auto;padding:32px var(--site-page-gutter) 48px}
.site-ready>footer,.site-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;width:100%;margin:0;padding:22px var(--site-page-gutter) 26px;border-top:1px solid var(--gx-hair);font-size:12px;color:var(--gx-muted)}
footer a{color:var(--gx-muted);transition:color .15s ease}
footer a:hover{color:var(--gx-ink)}
.footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}

/* ── Page heading ───────────────────────────────────────────────────────── */
.gx-page-head,.catalogue-heading,.hunt-index-heading,.sessions-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin:0 0 24px}
.gx-page-head p,.catalogue-heading p,.sessions-heading p{margin:6px 0 0;font-size:13px;line-height:1.5;color:var(--gx-muted)}
.gx-lede{max-width:68ch;font-size:14px;line-height:1.6;color:var(--gx-ink-2)}

/* ── Buttons: ink pill (main), soft pill, accent text. Press springs to .96 ── */
.gx-btn,.primary-button,.quiet-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 16px;border:0;border-radius:999px;font-size:13px;font-weight:500;line-height:1;white-space:nowrap;text-decoration:none;cursor:pointer;user-select:none;transition:transform .2s var(--gx-spring),background .15s ease,color .15s ease,box-shadow .15s ease,opacity .15s ease}
.gx-btn,.quiet-button{background:var(--gx-soft);color:var(--gx-ink)}
.gx-btn:hover,.quiet-button:hover{background:var(--gx-press)}
.primary-button,.gx-btn[data-variant=primary]{height:40px;padding:0 20px;background:var(--gx-ink);color:var(--gx-paper);font-size:14px;font-weight:600}
.primary-button:hover,.gx-btn[data-variant=primary]:hover{background:var(--gx-ink-2)}
.gx-btn[data-variant=text]{height:32px;padding:0 10px;background:transparent;color:var(--gx-accent)}
.gx-btn[data-variant=text]:hover{background:var(--gx-accent-soft)}
.gx-btn[data-size=sm]{height:30px;padding:0 13px;font-size:12px}
:is(.gx-btn,.primary-button,.quiet-button):active:not(:disabled){transform:scale(.96)}
:is(.gx-btn,.primary-button,.quiet-button):disabled,:is(.gx-btn,.primary-button,.quiet-button)[aria-disabled=true]{opacity:.45;cursor:not-allowed}
:is(.gx-btn,.primary-button,.quiet-button)[aria-busy=true]{cursor:progress}
:is(.gx-btn,.primary-button,.quiet-button)>svg{width:15px;height:15px;flex:none}
:is(.gx-btn,.primary-button,.quiet-button) kbd{min-width:18px;height:18px;margin-right:-6px;background:color-mix(in srgb,currentColor 12%,transparent);box-shadow:none;color:inherit;opacity:.75}
.gx-text-button,.hunt-text-button,.demo-text-button,.indexed-clear{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border-radius:999px;color:var(--gx-accent);font-size:13px;font-weight:500;white-space:nowrap;transition:background .15s ease,color .15s ease,opacity .15s ease}
:is(.gx-text-button,.hunt-text-button,.demo-text-button,.indexed-clear):hover:not(:disabled){background:var(--gx-accent-soft)}
:is(.gx-text-button,.hunt-text-button,.demo-text-button,.indexed-clear):disabled{color:var(--gx-faint);cursor:not-allowed}
.gx-icon-btn,.dialog-close,.account-close{display:inline-grid;place-items:center;width:34px;height:34px;flex:none;border-radius:50%;color:var(--gx-muted);font-size:20px;line-height:1;transition:background .15s ease,color .15s ease,transform .2s var(--gx-spring)}
:is(.gx-icon-btn,.dialog-close,.account-close):hover{background:var(--gx-soft);color:var(--gx-ink)}
:is(.gx-icon-btn,.dialog-close,.account-close):active{transform:scale(.92)}
.gx-icon-btn svg{width:17px;height:17px}

/* ── Fields ─────────────────────────────────────────────────────────────── */
.gx-field,.input-field,.hunt-field{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px;color:var(--gx-ink-2)}
:is(.gx-field,.input-field,.hunt-field)>span:first-child{font-weight:500}
:is(.gx-field,.input-field,.hunt-field) small{font-size:11.5px;line-height:1.45;color:var(--gx-muted);font-weight:400}
.gx-input,:is(.gx-field,.input-field,.hunt-field) :is(input:not([type=checkbox]):not([type=radio]),textarea){width:100%;min-width:0;height:40px;padding:0 12px;border:1px solid var(--gx-rule);border-radius:var(--gx-r-field);background:var(--gx-surface);color:var(--gx-ink);font:500 13px/1.4 var(--gx-font);font-variant-numeric:tabular-nums;transition:border-color .15s ease,box-shadow .15s ease}
:is(.gx-field,.input-field,.hunt-field) textarea{height:auto;min-height:88px;padding:10px 12px;resize:vertical;font-weight:400}
:is(.gx-input,.gx-field input,.input-field input,.hunt-field input,.hunt-field textarea):hover{border-color:var(--gx-bar)}
:is(.gx-input,.gx-field input,.input-field input,.hunt-field input,.hunt-field textarea):focus-visible{outline:2px solid var(--gx-accent);outline-offset:1px;border-color:transparent}
input::placeholder,textarea::placeholder{color:var(--gx-faint);opacity:1}
input:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}
input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;width:14px;height:14px;cursor:pointer;background:var(--gx-faint);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6.5 6.5l11 11M17.5 6.5l-11 11'/%3E%3C/svg%3E") center/contain no-repeat}
/* Search: an icon, the field, and the shortcut key, in one 40px box. */
.gx-search,.search,.hunt-queue-search{display:flex;align-items:center;gap:9px;height:40px;min-width:0;padding:0 12px;border:1px solid var(--gx-rule);border-radius:var(--gx-r-field);background:var(--gx-surface);color:var(--gx-faint);transition:border-color .15s ease}
:is(.gx-search,.search,.hunt-queue-search):hover{border-color:var(--gx-bar)}
:is(.gx-search,.search,.hunt-queue-search):focus-within{outline:2px solid var(--gx-accent);outline-offset:1px;border-color:transparent}
:is(.gx-search,.search,.hunt-queue-search)>svg{width:16px;height:16px;flex:none}
:is(.gx-search,.search,.hunt-queue-search) input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:transparent;color:var(--gx-ink);font:400 13px var(--gx-font)}
:is(.gx-search,.search,.hunt-queue-search) input:focus-visible{outline:none}

/* ── Dropdown: the redesign's own trigger and menu (dropdown.js), never the browser's list ── */
.gx-select-native{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;opacity:0!important;overflow:hidden!important;clip-path:inset(50%)!important;pointer-events:none!important}
.gx-dd{position:relative;display:inline-flex;min-width:0;vertical-align:middle}
.gx-dd-trigger{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--gx-ink);white-space:nowrap;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.gx-dd-value{display:inline-flex;align-items:baseline;gap:6px;min-width:0;overflow:hidden}
.gx-dd-value b{font-weight:600;overflow:hidden;text-overflow:ellipsis}
.gx-dd-detail{color:var(--gx-muted);font-weight:500;font-variant-numeric:tabular-nums}
.gx-dd-trigger>svg{width:14px;height:14px;flex:none;fill:none;stroke:var(--gx-muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s var(--gx-spring)}
.gx-dd-trigger[aria-expanded=true]>svg{transform:rotate(180deg)}
.gx-dd-trigger[aria-disabled=true]{opacity:.5;cursor:not-allowed}
.gx-dd[data-invalid] .gx-dd-trigger{border-color:var(--gx-loss)!important}
.gx-dd[data-look=quiet] .gx-dd-trigger{height:30px;margin:0 -6px 0 -8px;padding:0 6px 0 8px;border-radius:8px;font-size:13px;transition:background .15s ease}
.gx-dd[data-look=quiet] .gx-dd-trigger:is(:hover,[aria-expanded=true]){background:var(--gx-soft)}
.gx-dd:is([data-look=box],[data-look=field]) .gx-dd-trigger{border:1px solid var(--gx-rule);background:var(--gx-surface);transition:border-color .15s ease}
.gx-dd:is([data-look=box],[data-look=field]) .gx-dd-trigger:is(:hover,[aria-expanded=true]){border-color:var(--gx-bar)}
.gx-dd:is([data-look=box],[data-look=field]) .gx-dd-value b{font-weight:500}
.gx-dd[data-look=box] .gx-dd-trigger{height:32px;max-width:220px;padding:0 9px 0 11px;border-radius:9px;font-size:12.5px}
.gx-dd[data-look=field]{display:flex;width:100%}
.gx-dd[data-look=field] .gx-dd-trigger{flex:1;justify-content:space-between;height:40px;padding:0 11px 0 12px;border-radius:var(--gx-r-field);font-size:13px}
.gx-dd-menu{position:fixed;inset:auto;z-index:1000;margin:0;padding:4px;border:0;border-radius:12px;min-width:160px;max-width:min(320px,calc(100vw - 16px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;background:var(--gx-surface);color:var(--gx-ink-2);font:500 13px/1.2 var(--gx-font);box-shadow:var(--gx-shadow),0 0 0 1px var(--gx-stroke)}
.gx-dd-menu:not(:popover-open):not([data-open]){display:none}
.gx-dd-find{position:sticky;top:-4px;z-index:1;display:flex;align-items:center;gap:8px;margin:-4px -4px 4px;padding:8px 12px;border-bottom:1px solid var(--gx-hair);background:var(--gx-surface);color:var(--gx-faint)}
.gx-dd-find svg{width:14px;height:14px;flex:none}
.gx-dd-find input{flex:1;min-width:0;height:24px;padding:0;border:0;outline:0;background:transparent;color:var(--gx-ink);font:400 13px var(--gx-font)}
.gx-dd-option{display:grid;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:34px;padding:0 10px 0 8px;border-radius:8px;white-space:nowrap;cursor:pointer;user-select:none}
.gx-dd-option>span{overflow:hidden;text-overflow:ellipsis}
.gx-dd-option small{font-size:12px;font-weight:500;color:var(--gx-muted);font-variant-numeric:tabular-nums}
.gx-dd-option>svg{width:14px;height:14px;fill:none;stroke:var(--gx-accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;visibility:hidden}
.gx-dd-option[aria-selected=true]{color:var(--gx-ink);font-weight:600}
.gx-dd-option[aria-selected=true]>svg{visibility:visible}
.gx-dd-option[data-active]{background:var(--gx-soft);color:var(--gx-ink)}
.gx-dd-option[aria-disabled=true]{opacity:.45;cursor:not-allowed}
.gx-dd-none{padding:10px 10px 12px;font-size:12.5px;color:var(--gx-muted);white-space:normal}

/* ── Choices: a text row on a hairline, the chosen one ink and underlined ── */
.gx-choices{display:flex;align-items:flex-end;gap:22px;min-width:0;border-bottom:1px solid var(--gx-hair);overflow-x:auto;scrollbar-width:none}
.gx-choices::-webkit-scrollbar{display:none}
.gx-choice{position:relative;flex:none;display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 1px;color:var(--gx-muted);font-size:13px;font-weight:500;white-space:nowrap;transition:color .15s ease}
.gx-choice:hover{color:var(--gx-ink)}
.gx-choice::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--gx-ink);transform:scaleX(0);transition:transform .3s var(--gx-ease)}
.gx-choice:is([aria-pressed=true],[aria-selected=true],[aria-current=true],[aria-current=page],.active){color:var(--gx-ink);font-weight:600}
.gx-choice:is([aria-pressed=true],[aria-selected=true],[aria-current=true],[aria-current=page],.active)::after{transform:none}
.gx-choice:focus-visible{outline-offset:-2px;border-radius:6px}
.gx-choice small{font-size:12px;font-weight:400;color:var(--gx-faint);font-variant-numeric:tabular-nums}
/* Segmented: a soft track with the chosen one as a white tile (theme, grid or list). */
.gx-seg{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;background:var(--gx-soft)}
.gx-seg button{display:inline-grid;place-items:center;height:26px;min-width:26px;padding:0 10px;border-radius:999px;color:var(--gx-muted);font-size:11.5px;font-weight:500;white-space:nowrap;transition:background .2s ease,color .2s ease,box-shadow .2s ease}
.gx-seg button:hover{color:var(--gx-ink)}
.gx-seg button:is([aria-pressed=true],[aria-checked=true],.selected){background:var(--gx-surface);color:var(--gx-ink);box-shadow:var(--gx-lift)}
.gx-seg button svg{width:15px;height:15px}
.gx-seg[data-size=lg] button{height:32px;min-width:34px;padding:0 9px}

/* ── Surfaces, chips, facts ─────────────────────────────────────────────── */
.gx-card{position:relative;background:var(--gx-surface);border-radius:var(--gx-r-card);box-shadow:0 0 0 1px var(--gx-stroke)}
.gx-group{background:var(--gx-surface);border-radius:var(--gx-r-group);box-shadow:0 0 0 1px var(--gx-stroke)}
/* The one soft light per screen: the orb's spectrum, still and blurred behind one live card. */
.gx-live{position:relative;isolation:isolate;border-radius:var(--gx-r-card)}
.gx-live::before{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--gx-surface);box-shadow:0 0 0 1px var(--gx-stroke)}
.gx-glow{position:absolute;inset:-2px;z-index:-2;border-radius:inherit;overflow:hidden;filter:blur(14px);opacity:var(--gx-glow);pointer-events:none;transition:opacity .6s ease}
.gx-glow::before{content:'';position:absolute;left:50%;top:50%;width:max(240%,520px);aspect-ratio:1;background:var(--gx-orb);transform:translate(-50%,-50%) rotate(-30deg)}
.gx-live[data-flare] .gx-glow{opacity:.95;transition:opacity .25s ease}
.gx-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;background:var(--gx-soft);color:var(--gx-ink-2);font-size:11.5px;font-weight:500;line-height:1;white-space:nowrap;flex:none}
.gx-chip[data-tone=accent]{background:var(--gx-accent-soft);color:var(--gx-accent)}
.gx-chip[data-tone=profit]{color:var(--gx-profit)}
.gx-chip[data-tone=loss]{color:var(--gx-loss)}
.gx-hero{margin:0;font-size:46px;font-weight:600;letter-spacing:-1.9px;line-height:.95;white-space:nowrap}
.gx-facts{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:0 20px;margin:0}
.gx-facts>div{min-width:0;padding-top:12px;border-top:1px solid var(--gx-hair)}
.gx-facts dt{font-size:12px;line-height:1.3;color:var(--gx-muted)}
.gx-facts dd{margin:5px 0 0;font-size:20px;font-weight:600;letter-spacing:-.45px;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.gx-facts dd small{margin-left:4px;font-size:12px;font-weight:400;letter-spacing:0;color:var(--gx-muted)}
.gx-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 10px}
.gx-section-title>span,.gx-section-title>p{font-size:12px;color:var(--gx-muted);font-variant-numeric:tabular-nums}
.gx-note,.detail-note{font-size:12px;line-height:1.55;color:var(--gx-muted)}

/* ── Overview: one result leads, its figures sit on hairlines beside it, and one bar per result runs under them ── */
.gx-overview{margin:0 0 30px}
.gx-overview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;margin:0 0 14px}
.gx-overview-head h2{font-size:15px;letter-spacing:-.25px}
.gx-overview-head .gx-choices{border-bottom:0}
.gx-overview-head .gx-choice{height:30px}
.gx-overview-body{display:grid;grid-template-columns:minmax(200px,auto) minmax(0,1fr);align-items:start;gap:18px 44px}
.gx-overview-label{font-size:12px;line-height:1.3;color:var(--gx-muted)}
.gx-overview-net{margin:8px 0;font-size:40px;font-weight:600;letter-spacing:-1.5px;line-height:1;white-space:nowrap}
.gx-overview-note{font-size:12.5px;color:var(--gx-muted)}
.gx-overview-note+.gx-link{display:inline-block;margin-top:10px;font-size:12.5px}
.gx-overview-facts{--cols:3;row-gap:16px}
.gx-overview-facts dd{font-size:18px}
.gx-overview-facts dd small{display:block;margin:3px 0 0;font-size:12px;font-weight:400;letter-spacing:0;color:var(--gx-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gx-overview-chart{margin-top:24px}
.gx-overview-chart .gx-legend{justify-content:space-between}
.gx-overview-wait{margin:0;padding:14px 0 0;border-top:1px solid var(--gx-hair);font-size:13px;color:var(--gx-muted)}

/* ── Tables: hairline rows, quiet heads, numbers on tabular figures ─────── */
.gx-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.gx-table th{height:36px;padding:0 14px;font-size:11.5px;font-weight:500;color:var(--gx-muted);text-align:left;white-space:nowrap}
.gx-table td{padding:12px 14px;border-top:1px solid var(--gx-hair);vertical-align:middle}
.gx-table tbody tr{transition:background .15s ease}
.gx-table tbody tr:hover{background:color-mix(in srgb,var(--gx-soft) 70%,transparent)}
.gx-table :is(th,td)[data-num]{text-align:right}

/* ── Disclosure ─────────────────────────────────────────────────────────── */
.gx-fold{border-top:1px solid var(--gx-hair)}
.gx-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;list-style:none;cursor:pointer;font-size:13px;font-weight:600}
.gx-fold>summary::-webkit-details-marker{display:none}
.gx-fold>summary>svg{width:16px;height:16px;flex:none;fill:none;stroke:var(--gx-muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s var(--gx-ease)}
.gx-fold[open]>summary>svg{transform:rotate(180deg)}

/* ── Dialogs, toasts, tips ──────────────────────────────────────────────── */
dialog{max-width:calc(100vw - 32px);max-height:min(88dvh,820px);margin:auto;padding:24px;border:0;border-radius:var(--gx-r-modal);background:var(--gx-surface);color:var(--gx-ink);box-shadow:var(--gx-shadow),0 0 0 1px var(--gx-stroke);overflow:auto;overscroll-behavior:contain}
dialog::backdrop{background:var(--gx-scrim)}
dialog[open]:not(.site-nav-drawer){animation:gx-dialog-in .32s var(--gx-ease) both}
dialog[open]:not(.site-nav-drawer)::backdrop{animation:gx-fade-in .24s ease both}
#info-dialog{width:min(760px,calc(100vw - 32px));padding:28px 30px 30px}
#info-dialog .dialog-close{position:absolute;top:14px;right:14px}
#info-dialog h2{margin:0 40px 12px 0;font-size:21px;letter-spacing:-.55px}
.info-copy{font-size:13.5px;line-height:1.65;color:var(--gx-ink-2);max-width:68ch}
.info-copy p{margin:0 0 12px}
.info-copy h3{margin:22px 0 6px;font-size:14px;color:var(--gx-ink)}
.info-copy code{padding:1px 5px;border-radius:5px;background:var(--gx-soft);font-size:12px;overflow-wrap:anywhere}
.account-dialog,.hunt-dialog{width:min(440px,calc(100vw - 32px))}
.account-dialog-heading,.hunt-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 14px}
:is(.account-dialog-heading,.hunt-dialog-heading) h2{font-size:21px;letter-spacing:-.55px;line-height:1.2}
:is(.account-dialog-heading,.hunt-dialog-heading) .account-close{margin:-6px -8px 0 0}
.account-name{font-size:15px;font-weight:600}
.account-email{margin-top:2px;font-size:13px;color:var(--gx-muted);overflow-wrap:anywhere}
.account-help{margin:14px 0;font-size:13px;line-height:1.55;color:var(--gx-ink-2)}
.account-signin-actions{display:grid;gap:8px}
.account-signin-actions :is(a,button){width:100%}
.toast{position:fixed;right:20px;bottom:20px;z-index:var(--z-toast);max-width:min(380px,calc(100vw - 40px));padding:12px 16px;border-radius:14px;background:var(--gx-ink);color:var(--gx-paper);font-size:13px;font-weight:500;line-height:1.4;box-shadow:var(--gx-shadow);animation:gx-rise-8 .46s var(--gx-ease) both}
.gx-tip{position:absolute;z-index:5;pointer-events:none;padding:7px 10px;border-radius:9px;background:var(--gx-ink);color:var(--gx-paper);font-size:12px;font-weight:500;line-height:1.35;white-space:nowrap;box-shadow:0 6px 16px rgba(0,0,0,.18);font-variant-numeric:tabular-nums}
.gx-tip small{display:block;font-size:11.5px;font-weight:400;opacity:.72}

/* ── Honest states: status lines, banners, empty and loading ────────────── */
.status{margin:10px 0;font-size:13px;line-height:1.5;color:var(--gx-muted);overflow-wrap:anywhere}
.status:empty{display:none}
.status[data-state=error]{color:var(--gx-loss)}
.status[data-state=success]{color:var(--gx-profit)}
.gx-banner{display:flex;align-items:center;gap:10px;padding:9px 9px 9px 14px;border-radius:12px;background:var(--gx-soft);color:var(--gx-ink-2);font-size:13px;line-height:1.45}
.gx-banner>svg{width:17px;height:17px;flex:none;color:var(--gx-muted)}
.gx-banner p{flex:1;min-width:0}
.gx-banner[data-tone=error]{background:color-mix(in srgb,var(--gx-loss) 9%,var(--gx-surface));color:var(--gx-loss)}
.gx-banner[data-tone=error]>svg{color:currentColor}
.gx-banner .gx-btn{height:30px;padding:0 13px;font-size:12px;background:var(--gx-surface);box-shadow:0 0 0 1px var(--gx-stroke)}
.gx-empty,.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:56px 20px;text-align:center}
:is(.gx-empty,.empty-state)>svg{width:26px;height:26px;margin-bottom:4px;color:var(--gx-faint);fill:none;stroke:currentColor;stroke-width:1.5}
:is(.gx-empty,.empty-state) h2{font-size:18px;letter-spacing:-.45px}
:is(.gx-empty,.empty-state) p{max-width:44ch;font-size:13px;line-height:1.6;color:var(--gx-muted)}
:is(.gx-empty,.empty-state) :is(button,a){margin-top:6px}
.sessions-heading{display:block}
.sessions-empty{max-width:460px;margin:64px auto 96px}
/* Loading blocks hold the real layout's size, so nothing shifts when content lands. */
.gx-skel{display:block;border-radius:6px;background:var(--gx-soft)}
.gx-spinner{display:inline-block;width:14px;height:14px;flex:none;border:1.75px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;border-radius:50%;animation:gx-spin .8s linear infinite}

/* ── Graphs: no text inside the plot apart from axis values; ranges and keys under it ── */
.gx-chart{position:relative;margin:0}
.gx-chart svg{display:block;width:100%;height:auto;overflow:visible}
.gx-chart text,.gx-axis{font:11px var(--gx-font);fill:var(--gx-faint);color:var(--gx-faint);font-variant-numeric:tabular-nums}
.gx-c-zero{stroke:var(--gx-rule);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}
.gx-c-grid{stroke:var(--gx-hair);stroke-width:1;vector-effect:non-scaling-stroke}
.gx-c-line{fill:none;stroke:var(--gx-ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.gx-c-cross{stroke:var(--gx-faint);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.gx-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:12px;font-size:12px;color:var(--gx-muted)}
.gx-legend>span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.gx-legend>span::before{content:'';width:16px;height:2px;border-radius:1px;background:var(--gx-muted)}
.gx-legend [data-key=past]::before{opacity:.7}
.gx-legend [data-key=next]::before,.gx-legend [data-key=net]::before{background:linear-gradient(90deg,var(--gx-profit) 50%,var(--gx-loss) 50%)}
.gx-legend [data-key=best]::before,.gx-legend [data-key=dot]::before{width:8px;height:8px;border-radius:50%;background:var(--gx-accent)}
.gx-legend [data-key=zero]::before{height:0;border-top:1px dashed var(--gx-bar);background:none}
.gx-legend small{font-size:12px;color:var(--gx-muted);font-variant-numeric:tabular-nums}
/* Result bars (result-bars.js): one bar per finished hunt or session around a solid baseline; the one under the
 * pointer or keys stays full strength while the rest step back. */
.result-bars-plot{display:block;width:100%;overflow:visible;cursor:pointer}
.result-bars-zero{stroke:var(--gx-rule);stroke-width:1;shape-rendering:crispEdges}
.result-bars-plot path{fill:var(--gx-bar);transition:opacity .15s ease}
.result-bars-plot path[data-tone=profit]{fill:var(--gx-profit)}
.result-bars-plot path[data-tone=loss]{fill:var(--gx-loss)}
.result-bars-plot:has(.is-active) path:not(.is-active){opacity:.4}
.gx-chart[tabindex]:focus-visible{outline:2px solid var(--gx-accent);outline-offset:6px;border-radius:6px}
.result-bars-tip b{display:block;font-weight:600}
.result-bars-tip small{max-width:260px;overflow:hidden;text-overflow:ellipsis}

/* ── Motion ─────────────────────────────────────────────────────────────── */
.gx-enter>*{animation:gx-rise .38s var(--gx-ease) both;animation-delay:calc(var(--i,0) * 40ms)}
@keyframes gx-rise{from{opacity:0;transform:translateY(5px)}}
@keyframes gx-rise-8{from{opacity:0;transform:translateY(8px)}}
@keyframes gx-fade-in{from{opacity:0}}
@keyframes gx-fade-out{to{opacity:0}}
@keyframes gx-dialog-in{from{opacity:0;transform:translateY(8px) scale(.985)}}
@keyframes gx-spin{to{transform:rotate(1turn)}}

/* Section changes: the rail stays, only the working canvas changes (native view transitions). */
@view-transition{navigation:auto}
:root{view-transition-name:none}
::view-transition{pointer-events:none}
body>main{view-transition-name:site-content}
::view-transition-group(site-content){animation:none}
::view-transition-old(site-content),::view-transition-new(site-content){width:100%;height:100%;object-fit:none;object-position:left top;mix-blend-mode:normal}
::view-transition-old(site-content){animation:site-content-out .16s var(--gx-ease-exit) both}
::view-transition-new(site-content){animation:site-content-in .34s var(--gx-ease) both}
html[data-site-motion=entering] body>main{animation:site-content-in .34s var(--gx-ease) backwards}
@keyframes site-content-out{to{opacity:0;transform:translateY(-4px)}}
@keyframes site-content-in{from{opacity:0;transform:translateY(8px)}}

/* First visit: the Geist wordmark is written in ink, finished by its accent dot, then the paper veil
 * lifts (page-transition.js). Contours need stroke-dashoffset; the veil and dot use opacity and transform. */
:root{--wordmark-pace:1.6;--wordmark-fade:520ms;--page-reveal:780ms}
html[data-wordmark-pace=quick]{--wordmark-pace:1.28;--wordmark-fade:440ms;--page-reveal:680ms}
.page-transition{position:fixed;inset:0;z-index:1000;overflow:hidden;pointer-events:none;background:var(--gx-paper);opacity:0;contain:layout paint;transition:opacity var(--page-reveal) var(--gx-ease-in-out)}
.page-transition__signature{position:absolute;top:50%;left:50%;width:min(210px,calc(100% - 48px));height:auto;overflow:visible;transform:translate(-50%,-50%);visibility:hidden;opacity:0;transition:opacity var(--wordmark-fade) var(--gx-ease-in-out)}
.page-transition__letter{fill:var(--gx-ink);fill-opacity:0;stroke:var(--gx-ink);stroke-width:18;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0}
.page-transition__dot{fill:var(--gx-accent);opacity:0;transform-box:fill-box;transform-origin:center;transform:translateY(-2px)}
html:is([data-page-transition=entering],[data-page-transition=writing],[data-page-transition=leaving]) .page-transition{opacity:1}
html:is([data-page-transition=entering],[data-page-transition=writing]) .page-transition{transition:none}
html[data-page-transition=leaving] .page-transition{transition-duration:120ms}
html:is([data-page-transition=writing],[data-page-transition=revealing]) .page-transition__signature{visibility:visible}
html[data-page-transition=writing] .page-transition__signature{opacity:1;transition:none}
html[data-page-transition=revealing] .page-transition__signature{opacity:0}
/* Stays matched through the reveal so the written mark is complete during its own fade. */
html:is([data-page-transition=writing],[data-page-transition=revealing]) .page-transition__letter{animation:glasshouse-signature-write calc(280ms * var(--wordmark-pace)) cubic-bezier(.35,0,.28,1) calc((40ms + var(--letter) * 36ms) * var(--wordmark-pace)) both,glasshouse-signature-fill calc(120ms * var(--wordmark-pace)) var(--gx-ease) calc((270ms + var(--letter) * 36ms) * var(--wordmark-pace)) both}
html:is([data-page-transition=writing],[data-page-transition=revealing]) .page-transition__dot{animation:glasshouse-signature-dot calc(120ms * var(--wordmark-pace)) var(--gx-ease) calc(640ms * var(--wordmark-pace)) both}
@keyframes glasshouse-signature-write{from{opacity:1;stroke-dashoffset:1}to{opacity:1;stroke-dashoffset:0}}
@keyframes glasshouse-signature-fill{from{fill-opacity:0;stroke-opacity:1}to{fill-opacity:1;stroke-opacity:0}}
@keyframes glasshouse-signature-dot{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}
/* A missing or interrupted controller must never leave the site covered. */
html:is([data-page-transition=entering],[data-page-transition=writing],[data-page-transition=leaving]) .page-transition{animation:glasshouse-signature-fail-open .2s linear 5s forwards}
@keyframes glasshouse-signature-fail-open{to{opacity:0}}
@media (max-width:539px){.page-transition__signature{width:min(180px,calc(100% - 48px))}}
@media (prefers-reduced-motion:reduce){.page-transition{display:none}}

/* Before dropdown.js runs (or without it), a select already looks like the field trigger, so the
 * swap to the custom trigger moves nothing. */
select{appearance:none;-webkit-appearance:none;max-width:100%;height:40px;padding:0 34px 0 12px;border:1px solid var(--gx-rule);border-radius:var(--gx-r-field);background:var(--gx-surface) var(--gx-chevron) no-repeat right 11px center/14px 14px;color:var(--gx-ink);font:500 13px var(--gx-font);cursor:pointer}
select[data-look=box]{height:32px;padding:0 30px 0 11px;border-radius:9px;font-size:12.5px;background-position:right 9px center}
.select-control{position:relative;display:block;width:100%;min-width:0}
.select-control>select{width:100%}
.select-control>svg{display:none}
:root{--gx-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23637083' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9.5 6 6 6-6'/%3E%3C/svg%3E")}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--gx-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a9b0bb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9.5 6 6 6-6'/%3E%3C/svg%3E")}}
:root[data-theme=dark]{--gx-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a9b0bb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9.5 6 6 6-6'/%3E%3C/svg%3E")}

/* ── Smaller screens ────────────────────────────────────────────────────── */
@media (max-width:1023px) and (min-width:768px){.site-ready{--site-sidebar-width:208px;--site-page-gutter:24px}}
@media (max-width:767px){
 .site-ready{--site-page-gutter:16px;padding-left:0}
 :root[data-sidebar=collapsed] .site-ready{--site-sidebar-width:0px}
 .site-ready>.site-sidebar{display:none}
 .site-header{position:sticky;top:0;z-index:205;display:flex;align-items:center;justify-content:space-between;gap:8px;height:56px;padding:0 10px;border-bottom:1px solid var(--gx-hair);background:color-mix(in srgb,var(--gx-paper) 94%,transparent)}
 .site-context{font-size:19px}
 .site-ready>main{padding-top:24px;padding-bottom:40px}
 .sidebar-mobile-close{display:inline-grid}
 .site-nav-drawer .sidebar-brand-row{justify-content:space-between;padding:0 12px 0 20px}
 .site-nav-drawer .sidebar-brand-row>.sidebar-toggle{display:none}
 .site-nav-drawer :is(.sidebar-brand,.sidebar-section-title,.sidebar-caption,.sidebar-account-chevron,.sidebar-label,.sidebar-theme){opacity:1;visibility:visible;transform:none;pointer-events:auto}
 .site-nav-drawer .sidebar-account-row .account-nav-button{color:var(--gx-ink-2)}
 h1{font-size:25px;letter-spacing:-.75px}
 .gx-hero{font-size:40px;letter-spacing:-1.5px}
 .gx-facts{--cols:2;gap:14px 16px}
 .gx-overview-body{grid-template-columns:minmax(0,1fr)}
 .gx-overview-net{font-size:34px;letter-spacing:-1.2px}
 .gx-facts dd{font-size:18px}
 dialog{padding:20px}
}
@media (pointer:coarse){
 .gx-btn,.quiet-button{height:40px}
 .primary-button,.gx-btn[data-variant=primary]{height:44px}
 .sidebar-link,.sidebar-account-row .account-nav-button{min-height:44px}
 .gx-dd-option{min-height:42px}
 .gx-choice{height:44px}
}

/* ── Reduced motion: entrances, springs, draws and spinners all stop ────── */
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
 @view-transition{navigation:none}
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
 .gx-spinner{animation:none!important;border-top-color:color-mix(in srgb,currentColor 25%,transparent)}
}
