:root{--bloom-50:#FCEEF2;--bloom-100:#F8DCE4;--bloom-200:#EFB4C6;--bloom-300:#E287A3;--bloom-400:#CB5A7D;--bloom-500:#A8385C;--bloom-600:#8C2C4B;--bloom-700:#6F233C;--bloom-800:#4F1A2B;--glow-100:#FBF1DA;--glow-300:#F2D58E;--glow-400:#E6B65C;--glow-500:#D49A35;--glow-600:#B07E26;--ink-900:#241A20;--ink-700:#4A3C44;--ink-500:#7A6B72;--ink-400:#9D9097;--ink-300:#C7BCC1;--ink-200:#E6DDE0;--ink-100:#F1EAEC;--cream-50:#FAF6F1;--white:#FFFFFF;--sage-50:#E9F2EC;--sage-500:#4F8A6B;--sage-600:#3F7158;--amber-50:#FBF0DD;--amber-500:#C98A2E;--amber-600:#A66F22;--amber-700:#8A5A16;--coral-50:#FBE9E6;--coral-500:#C24438;--coral-600:#A2362C;--text-primary:var(--ink-900);--text-secondary:var(--ink-700);--text-muted:var(--ink-500);--text-placeholder:var(--ink-400);--text-on-brand:var(--white);--text-accent:var(--bloom-600);--surface-page:var(--cream-50);--surface-card:var(--white);--surface-sunken:var(--ink-100);--surface-muted:var(--cream-50);--surface-brand:var(--bloom-500);--surface-brand-soft:var(--bloom-50);--surface-accent-soft:var(--glow-100);--surface-ink:var(--ink-900);--border-subtle:var(--ink-200);--border-strong:var(--ink-300);--border-brand:var(--bloom-300);--brand:var(--bloom-500);--brand-hover:var(--bloom-600);--brand-active:var(--bloom-700);--accent:var(--glow-500);--status-ontrack:var(--sage-500);--status-ontrack-soft:var(--sage-50);--status-due:var(--amber-500);--status-due-soft:var(--amber-50);--status-overdue:var(--coral-500);--status-overdue-soft:var(--coral-50);--status-inactive:var(--ink-500);--status-inactive-soft:var(--ink-100);--focus-ring:color-mix(in srgb,var(--bloom-500) 45%,transparent);--hairline:rgba(36,26,32,0.09);--hairline-faint:rgba(36,26,32,0.08);--hairline-tab:rgba(36,26,32,0.10);--hairline-strong:rgba(36,26,32,0.14);--hairline-input:rgba(36,26,32,0.16);--hairline-input-hover:rgba(36,26,32,0.34);--border-btn-secondary:rgba(36,26,32,0.18);--border-specimen:var(--ink-700);--text-meta:var(--ink-500);--text-muted-2:var(--ink-700);--shadow-breath:0 1px 2px rgba(36,26,32,0.04),0 14px 36px -20px rgba(36,26,32,0.16);--shadow-brand-soft:0 12px 26px -12px rgba(168,56,92,0.55);--overlay-scrim:rgba(36,26,32,0.45);--font-display:var(--ef-font-display),"Bodoni Moda","Times New Roman",serif;--font-sans:var(--ef-font-sans),"Hanken Grotesk",system-ui,-apple-system,sans-serif;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-display:600;--text-display-2xl:56px;--text-display-xl:44px;--text-display-lg:34px;--text-h1:28px;--text-h2:22px;--text-h3:18px;--text-body-lg:17px;--text-body:15px;--text-sm:13px;--text-xs:11.5px;--leading-tight:1.1;--leading-snug:1.25;--leading-normal:1.45;--leading-relaxed:1.6;--tracking-tight:-0.02em;--tracking-normal:0;--tracking-wide:0.04em;--tracking-caps:0.08em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-2xl:28px;--radius-full:999px;--shadow-xs:0 1px 2px rgba(36,26,32,0.06);--shadow-sm:0 2px 6px rgba(36,26,32,0.07);--shadow-md:0 6px 18px rgba(36,26,32,0.08);--shadow-lg:0 16px 40px rgba(36,26,32,0.12);--shadow-brand:0 8px 22px rgba(168,56,92,0.28);--tap-target:44px;--bottom-nav-h:68px;--top-bar-h:56px;--app-max-w:440px;--content-pad:20px;--sidenav-w:248px;--sidenav-rail-w:72px;--app-max-w-lg:1120px}.gf-btn{font-family:var(--font-sans);font-weight:600;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:background .15s ease,transform .08s ease,box-shadow .15s ease,border-color .15s ease;white-space:nowrap;text-decoration:none;line-height:1}.gf-btn:active{transform:scale(.97)}.gf-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.gf-btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}.gf-btn--sm{font-size:13px;padding:8px 14px;min-height:36px}.gf-btn--md{font-size:14px;padding:10px 20px;min-height:42px}.gf-btn--lg{font-size:15px;padding:13px 24px;min-height:50px}.gf-btn--full{width:100%}.gf-btn--primary{background:var(--brand);color:var(--text-on-brand);box-shadow:var(--shadow-brand-soft)}.gf-btn--primary:hover:not([disabled]){background:var(--brand-hover)}.gf-btn--secondary{background:transparent;color:var(--ink-900);border-color:var(--border-btn-secondary)}.gf-btn--secondary:hover:not([disabled]){border-color:var(--ink-900);background:transparent}.gf-btn--ghost{background:transparent;color:var(--text-secondary)}.gf-btn--ghost:hover:not([disabled]){background:var(--surface-sunken)}.gf-btn--danger{background:var(--coral-500);color:#fff}.gf-btn--danger:hover:not([disabled]){background:var(--coral-600)}.gf-btn svg{width:18px;height:18px}.gf-card{font-family:var(--font-sans);background:var(--surface-card);border:none;border-radius:var(--radius-xl);box-shadow:var(--shadow-breath);overflow:hidden}.gf-card--flat{box-shadow:none;border:1px solid var(--hairline-faint)}.gf-card--brand{background:var(--brand);border-color:transparent;color:var(--text-on-brand);box-shadow:var(--shadow-brand)}.gf-card--soft{background:var(--surface-brand-soft);border-color:transparent;box-shadow:none}.gf-card--pad{padding:var(--space-5)}.gf-field{font-family:var(--font-sans);display:flex;flex-direction:column;gap:6px;width:100%}.gf-field__label{font-size:13px;font-weight:600;color:var(--text-secondary)}.gf-field__req{color:var(--coral-500);margin-left:2px}.gf-input{font-family:inherit;font-size:15px;width:100%;box-sizing:border-box;padding:10px 2px;border:none;border-bottom:1px solid var(--hairline-input);border-radius:0;background:transparent;color:var(--text-primary);transition:border-color .15s ease,box-shadow .15s ease;min-height:44px}.gf-input::-moz-placeholder{color:var(--text-placeholder)}.gf-input::placeholder{color:var(--text-placeholder)}.gf-input:hover{border-bottom-color:var(--hairline-input-hover)}.gf-input:focus{outline:none;border-bottom-color:var(--brand)}.gf-input:focus-visible{outline:none;border-bottom-width:2px;border-bottom-color:var(--brand);box-shadow:0 2px 0 -1px var(--focus-ring)}.gf-input--has-icon{padding-left:30px}.gf-field__icon{left:2px}.gf-field__hint{font-size:12px;color:var(--text-muted)}.gf-field__hint--error{color:var(--coral-600);font-weight:500}.gf-input--invalid{border-bottom-color:var(--coral-500)}.gf-input--invalid:focus,.gf-input--invalid:focus-visible{border-bottom-color:var(--coral-600)}.gf-search{position:relative;width:100%}.gf-search__input{padding-right:34px}.gf-search__input::-webkit-search-cancel-button{appearance:none;-webkit-appearance:none}.gf-search__clear{position:absolute;right:0;bottom:0;height:44px;width:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer;border-radius:6px;transition:color .15s ease}.gf-search__clear:hover{color:var(--text-primary)}.gf-search__clear:focus-visible{outline:none;color:var(--brand);box-shadow:0 0 0 2px var(--focus-ring)}.gf-badge{font-family:var(--font-sans);display:inline-flex;align-items:center;gap:6px;padding:0;background:transparent;border-radius:0;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1;white-space:nowrap}.gf-badge__dot{width:7px;height:7px;border-radius:50%;flex:none}.gf-badge--ontrack{background:transparent;color:var(--sage-600)}.gf-badge--ontrack .gf-badge__dot{background:var(--status-ontrack)}.gf-badge--due{background:transparent;color:var(--amber-700)}.gf-badge--due .gf-badge__dot{background:var(--status-due)}.gf-badge--overdue{background:transparent;color:var(--coral-600)}.gf-badge--overdue .gf-badge__dot{background:var(--status-overdue)}.gf-badge--inactive{background:transparent;color:var(--ink-700)}.gf-badge--inactive .gf-badge__dot{background:var(--status-inactive)}.gf-badge--brand{background:transparent;color:var(--bloom-600)}.gf-badge--brand .gf-badge__dot{background:var(--brand)}.gf-badge--beta{background:transparent;color:var(--ink-700)}.gf-badge--beta .gf-badge__dot{background:var(--glow-500)}.gf-nav-beta__label{color:var(--text-muted)}.gf-stat{font-family:var(--font-sans);background:transparent;border:none;border-top:1px solid var(--ink-900);border-radius:0;padding:12px 0 4px;box-shadow:none;display:flex;flex-direction:column;gap:8px}.gf-stat__label{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-meta)}.gf-stat__value{font-family:var(--font-display);font-weight:600;font-size:33px;line-height:1;letter-spacing:-.02em;color:var(--text-primary);font-variant-numeric:tabular-nums}.gf-stat__caption{font-size:13px;color:var(--text-muted);font-weight:500}.gf-stat--brand{background:var(--brand);border:none;border-radius:var(--radius-xl);padding:var(--space-5);color:#fff;box-shadow:var(--shadow-brand)}.gf-stat__top{display:flex;align-items:center;justify-content:space-between;gap:8px}.gf-stat--brand .gf-stat__label{color:var(--bloom-100)}.gf-stat__icon{display:none;color:var(--text-muted)}.gf-stat--brand .gf-stat__icon{display:inline-flex;color:var(--glow-300)}.gf-stat--brand .gf-stat__value{color:#fff}.gf-stat__foot{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600}.gf-stat__delta--up{color:var(--sage-600)}.gf-stat__delta--down{color:var(--coral-600)}.gf-stat--brand .gf-stat__caption,.gf-stat--brand .gf-stat__foot{color:var(--bloom-100)}.gf-clientrow{font-family:var(--font-sans);display:flex;align-items:center;gap:14px;padding:15px 2px;background:transparent;border:none;border-bottom:1px solid var(--hairline);border-radius:0;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .08s ease;width:100%;box-sizing:border-box;text-align:left}.gf-clientrow:hover{box-shadow:none;border-bottom-color:var(--hairline);background:rgba(255,255,255,.65)}.gf-clientrow:active{transform:scale(.995)}.gf-clientrow:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.gf-list:has(>.gf-clientrow){gap:0;row-gap:0}.gf-clientrow__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.gf-clientrow__name{font-size:15.5px;font-weight:600;color:var(--text-primary)}.gf-clientrow__meta,.gf-clientrow__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gf-clientrow__meta{font-size:13px;color:var(--text-muted);display:flex;align-items:center;gap:6px}.gf-clientrow__right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}.gf-clientrow__when{font-size:12px;color:var(--text-muted);font-weight:600;font-variant-numeric:tabular-nums}.gf-avatar{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background:var(--white);box-shadow:inset 0 0 0 1px var(--hairline-strong);color:var(--ink-900);font-family:var(--font-display);font-weight:500;font-style:italic;font-size:15px;text-transform:uppercase;letter-spacing:.01em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gf-shell{background:var(--surface-page)}.gf-shell,.gf-shell__main{min-height:100vh}@media (max-width:767px){.gf-shell__main{padding-bottom:var(--bottom-nav-h)}}@media (min-width:768px){.gf-shell{display:grid;grid-template-columns:var(--sidenav-rail-w) 1fr}.gf-shell__main{grid-column:2;min-width:0}}@media (min-width:1024px){.gf-shell{grid-template-columns:var(--sidenav-w) 1fr}}.gf-sidenav{display:none}@media (min-width:768px){.gf-sidenav{display:flex;flex-direction:column;position:sticky;top:0;align-self:start;height:100vh;box-sizing:border-box;padding:var(--space-5) var(--space-3);gap:var(--space-2);background:transparent;border-right:1px solid var(--hairline-faint);color:var(--ink-900)}}.gf-sidenav__brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-4);text-decoration:none;color:inherit}.gf-sidenav__brandtext{font-family:var(--font-display);font-weight:600;font-size:18px;color:var(--ink-900)}.gf-brand{display:inline-flex;align-items:center;gap:var(--space-3);text-decoration:none;color:inherit}.gf-brand__mark{display:block;flex:none}.gf-brand__lockup{display:flex;flex-direction:column;gap:2px;line-height:1}.gf-brand__eyebrow{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.22em;color:var(--text-muted)}.gf-brand__word{font-family:var(--font-display);font-weight:600;color:var(--ink-900);letter-spacing:-.01em;display:inline-flex;align-items:baseline;gap:.24em;white-space:nowrap}.gf-brand__spark{color:var(--glow-500);font-size:.7em;line-height:1}.gf-brand--inverse .gf-brand__word{color:var(--text-on-brand)}.gf-brand--inverse .gf-brand__eyebrow{color:color-mix(in srgb,var(--text-on-brand) 78%,transparent)}.gf-sidenav__scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3)}.gf-sidenav__list{list-style:none;margin:0;padding:0}.gf-sidenav__group,.gf-sidenav__list{display:flex;flex-direction:column;gap:2px}.gf-sidenav__grouptitle{display:flex;align-items:center;gap:12px;margin:0;padding:var(--space-2) var(--space-3) 4px;font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--text-meta)}.gf-sidenav__grouptitle:after{content:"";flex:1;height:1px;background:var(--hairline-faint)}.gf-sidenav__list--grouped .gf-sidenav__item{padding-left:var(--space-5)}.gf-sidenav__item,.gf-sidenav__logout{display:flex;align-items:center;gap:var(--space-3);min-height:var(--tap-target);padding:10px var(--space-3);border-radius:0;color:var(--text-muted-2);text-decoration:none;font-family:var(--font-sans);font-size:14px;font-weight:500;background:none;border:none;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;position:relative;transition:background .15s ease,color .15s ease}.gf-sidenav__item:hover,.gf-sidenav__item[aria-current=page],.gf-sidenav__logout:hover{background:transparent;color:var(--ink-900)}.gf-sidenav__item[aria-current=page]{font-weight:700}.gf-sidenav__item[aria-current=page]:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);height:20px;width:2px;background:var(--brand)}.gf-sidenav__icon{font-size:18px;flex:none;width:24px;text-align:center}.gf-sidenav__brand:focus-visible,.gf-sidenav__item:focus-visible,.gf-sidenav__logout:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}@media (min-width:768px) and (max-width:1023px){.gf-sidenav__brandtext,.gf-sidenav__grouptitle,.gf-sidenav__item .gf-badge--beta,.gf-sidenav__label{display:none}.gf-sidenav__item,.gf-sidenav__logout{justify-content:center;padding:10px 0}.gf-sidenav__list--grouped .gf-sidenav__item{padding-left:0}.gf-sidenav__brand{justify-content:center}}.gf-bottomnav{display:none}@media (max-width:767px){.gf-bottomnav{display:flex;position:fixed;bottom:0;left:max(3mm,env(safe-area-inset-left));right:max(3mm,env(safe-area-inset-right));z-index:40;height:var(--bottom-nav-h);background:var(--surface-card);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border-top:1px solid var(--hairline-faint);box-shadow:var(--shadow-md);padding-bottom:env(safe-area-inset-bottom)}}.gf-bottomnav__item{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:var(--tap-target);min-height:var(--tap-target);color:var(--text-muted);text-decoration:none;font-family:var(--font-sans);background:none;border:none;cursor:pointer}.gf-bottomnav__icon{font-size:20px;line-height:1}.gf-bottomnav__label{font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1}.gf-bottomnav__item[aria-current=page],.gf-bottomnav__item[aria-current=true]{color:var(--brand)}.gf-bottomnav__item[aria-current=page]:after,.gf-bottomnav__item[aria-current=true]:after{content:"";position:absolute;bottom:5px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--brand)}.gf-bottomnav__item:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.gf-bottomnav__backdrop{position:fixed;inset:0;z-index:45;background:rgba(36,26,32,.32)}.gf-bottomnav__sheet{position:fixed;left:0;right:0;bottom:var(--bottom-nav-h);z-index:46;background:var(--surface-card);border-top:1px solid var(--border-subtle);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-3);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom));max-height:60vh;overflow-y:auto;outline:none}.gf-bottomnav__sheetlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.gf-bottomnav__sheetgroup+.gf-bottomnav__sheetgroup,.gf-bottomnav__sheetgroup+.gf-bottomnav__sheetlist{margin-top:var(--space-2)}.gf-bottomnav__sheettitle{display:flex;align-items:center;gap:12px;margin:0;padding:var(--space-2) var(--space-3) 4px;font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--text-meta)}.gf-bottomnav__sheettitle:after{content:"";flex:1;height:1px;background:var(--hairline-faint)}.gf-bottomnav__sheetitem{display:flex;align-items:center;gap:var(--space-3);min-height:var(--tap-target);padding:var(--space-3);border-radius:var(--radius-md);color:var(--text-primary);text-decoration:none;font-family:var(--font-sans);font-size:15px;font-weight:600;background:none;border:none;cursor:pointer;width:100%;text-align:left;box-sizing:border-box}.gf-bottomnav__sheetitem:hover{background:var(--surface-sunken)}.gf-bottomnav__sheetitem[aria-current=page]{color:var(--brand)}.gf-bottomnav__sheetitem:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.gf-container{width:100%;box-sizing:border-box;margin-inline:auto;padding-inline:var(--content-pad)}@media (min-width:768px){.gf-container{padding-inline:var(--space-8)}}@media (min-width:1024px){.gf-container{max-width:var(--app-max-w-lg);padding-inline:var(--space-8)}}.gf-topbar{display:flex;align-items:center;gap:14px;height:68px}.gf-topbar__title{font-family:var(--font-display);font-weight:600;font-size:27px;letter-spacing:-.01em;color:var(--ink-900)}.gf-topbar__sub{margin-top:3px;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-meta)}@media (max-width:767px){.gf-topbar{height:92px;padding-top:26px}}.gf-segtabs{display:flex;gap:24px;padding:0 2px;background:transparent;border-radius:0;border-bottom:1px solid var(--hairline-tab)}.gf-segtabs__tab{flex:none;position:relative;border:none;border-radius:0;padding:10px 1px 13px;background:transparent;font-family:var(--font-sans);font-size:13px;color:var(--text-meta);cursor:pointer}.gf-segtabs__tab:hover{color:var(--ink-700)}.gf-segtabs__tab--active{color:var(--ink-900);background:transparent;box-shadow:none}.gf-segtabs__tab--active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand)}.gf-segtabs__count{background:transparent;padding:0;color:inherit;opacity:.5}.gf-segtabs__tab--active .gf-segtabs__count{color:var(--brand);opacity:1}.gf-segtabs__tab:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.gf-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:40px 20px}.gf-empty__ico{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:transparent;box-shadow:inset 0 0 0 1px var(--hairline-strong);color:var(--text-muted-2);font-size:24px}.gf-empty__title{font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--ink-900)}.gf-empty__text{font-family:var(--font-sans);font-size:14px;color:var(--text-muted)}.gf-progress{display:block;width:100%;height:3px;border-radius:0;background:var(--hairline);overflow:hidden;position:relative}.gf-progress__fill{height:100%;border-radius:inherit;background:var(--brand);width:var(--gf-progress,0);transition:width .3s ease}.gf-progress__value{font-family:var(--font-sans);font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.gf-section-label{display:flex;align-items:center;gap:12px;font-family:var(--font-sans);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-meta);white-space:nowrap}.gf-section-label:after{content:"";flex:1;height:1px;background:var(--hairline-faint)}.gf-iconbtn--soft{background:transparent;color:var(--text-muted-2);box-shadow:inset 0 0 0 1px var(--hairline-strong)}.gf-iconbtn--soft:hover:not([disabled]){background:rgba(36,26,32,.04)}.gf-iconbtn--soft:focus-visible{outline:none;box-shadow:inset 0 0 0 1px var(--hairline-strong),0 0 0 3px var(--focus-ring)}.gf-menu__item{background:transparent}.gf-menu__item:hover{background:rgba(36,26,32,.04)}.gf-menu__tile{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;box-shadow:none;color:var(--text-muted-2)}.gf-menu__item.is-active,.gf-menu__item.is-active .gf-menu__tile{background:transparent;color:var(--brand)}.gf-menu__item.is-active .gf-menu__tile{box-shadow:inset 0 0 0 1px var(--brand)}.gf-fab,.gf-menu__badge{background:var(--brand);color:var(--text-on-brand)}.gf-fab{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:18px;border:none;cursor:pointer;box-shadow:var(--shadow-brand-soft)}.gf-fab:focus-visible{outline:none;box-shadow:var(--shadow-brand-soft),0 0 0 3px var(--focus-ring)}.gf-stock{display:flex;align-items:center;gap:14px;background:transparent;border:none;border-bottom:1px solid var(--hairline);border-radius:0;padding:14px 2px}.gf-stock__num{font-family:var(--font-display);font-weight:600;font-size:21px;font-variant-numeric:tabular-nums;color:var(--ink-900)}.gf-list:has(>.gf-stock){gap:0;row-gap:0}.gf-sim__proc{background:transparent;border:1px solid var(--hairline-input);color:var(--text-muted-2)}.gf-sim__proc.is-active{background:transparent;border-color:var(--brand);color:var(--brand)}.gf-seg{display:inline-flex;box-shadow:inset 0 0 0 1px var(--hairline-input);border-radius:var(--radius-full)}.gf-seg,.gf-seg__b{background:transparent}.gf-seg__b{border:none;cursor:pointer;font-family:var(--font-sans)}.gf-seg__b.on{background:var(--ink-900);color:var(--white);box-shadow:none}.gf-seg__b:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.gf-shadestrip{display:flex;gap:4px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:4px;border-bottom:1px solid var(--hairline-tab)}.gf-shade{flex:none;position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:44px;min-height:44px;padding:6px 4px 9px;border:none;border-radius:0;background:transparent;cursor:pointer;scroll-snap-align:center}.gf-shade__specimen{display:block;width:32px;height:26px;border-radius:var(--radius-sm,6px);box-shadow:inset 0 0 0 1px var(--border-specimen);background:transparent}.gf-shade__specimen--empty{background-image:repeating-linear-gradient(45deg,var(--hairline-faint) 0,var(--hairline-faint) 2px,transparent 2px,transparent 5px)}.gf-shade__label{font-family:var(--font-sans);font-size:11px;letter-spacing:.04em;line-height:1;color:var(--text-meta)}.gf-shade--selected .gf-shade__label{color:var(--ink-900);font-weight:600}.gf-shade--selected:after{content:"";position:absolute;left:2px;right:2px;bottom:-5px;height:2px;background:var(--brand)}.gf-shade--blocked{cursor:not-allowed;opacity:.42}.gf-shade:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);border-radius:var(--radius-sm,6px)}.gf-shade-step{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap-target);min-height:var(--tap-target);padding:0;border:none;background:transparent;border-radius:var(--radius-sm,6px);cursor:pointer}.gf-shade-step:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.gf-restricted{font-family:var(--font-sans);display:flex;align-items:flex-start;gap:14px;padding:15px 2px;background:transparent;border:none;border-bottom:1px solid var(--hairline);border-radius:0;box-shadow:none;cursor:not-allowed;width:100%;box-sizing:border-box;text-align:left}.gf-list:has(>.gf-restricted){gap:0;row-gap:0}.gf-restricted__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.gf-restricted__label{font-size:15.5px;font-weight:600;color:var(--text-muted-2)}.gf-restricted__reason{font-size:13px;line-height:1.45;color:var(--text-meta)}.gf-restricted__link{color:var(--text-muted-2);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;cursor:pointer}.gf-restricted__link:hover{color:var(--ink-900)}.gf-restricted__link:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);border-radius:2px}.gf-restricted__mark{display:inline-flex;align-items:center;gap:6px;flex:none;margin-top:3px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1;white-space:nowrap;color:var(--text-meta)}.gf-restricted__mark:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink-300);flex:none}.gf-restricted--inline{display:inline-flex;align-items:center;width:auto;max-width:46ch;padding:4px 0;border-bottom:none;gap:10px}.gf-restricted--inline .gf-restricted__body{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:2px 8px}.gf-restricted--inline .gf-restricted__mark{margin-top:0}.gf-restricted--overlay{background:var(--surface-page);border-radius:6px;padding:4px 6px;max-width:none;gap:8px}.gf-restricted--overlay .gf-restricted__label{font-size:12px}.gf-eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-sans);font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap}.gf-eyebrow:before{content:"";flex:none;width:24px;height:1px;background:var(--brand)}.gf-grad-word{color:var(--bloom-600);background:linear-gradient(90deg,var(--bloom-500),var(--glow-500));-webkit-background-clip:text;background-clip:text}@supports ((-webkit-background-clip:text) or (background-clip:text)) or (-webkit-background-clip:text){.gf-grad-word{color:transparent}}.gf-arch{position:relative;overflow:hidden;border-radius:50% 50% var(--radius-xl) var(--radius-xl) /42% 42% var(--radius-xl) var(--radius-xl);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--glow-500) 55%,transparent),var(--shadow-md)}.gf-stat-hero{display:flex;flex-direction:column;gap:6px;background:transparent;border-top:1px solid var(--ink-900);border-radius:0;padding:12px 0 4px}.gf-stat-hero__num{font-family:var(--font-display);font-weight:600;font-size:34px;line-height:1;letter-spacing:-.02em;color:var(--text-primary);font-variant-numeric:tabular-nums}.gf-stat-hero__label{font-family:var(--font-sans);font-size:11.5px;line-height:1.35;color:var(--text-muted)}.gf-lang-pill{display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:var(--radius-full);box-shadow:inset 0 0 0 1px var(--ink-200);background:transparent}.gf-lang-pill__btn{border:none;background:transparent;cursor:pointer;font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--text-muted);padding:6px 12px;min-height:32px;border-radius:var(--radius-full);transition:background .15s ease,color .15s ease}.gf-lang-pill__btn:hover{color:var(--ink-900)}.gf-lang-pill__btn[aria-pressed=true]{background:var(--surface-brand-soft);color:var(--brand)}.gf-lang-pill__btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.gf-cta-spark{box-shadow:var(--shadow-brand)}.gf-cta-spark .gf-cta-spark__ico,.gf-cta-spark svg{width:18px;height:18px;flex:none}.gf-beta-banner{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--hairline-faint);border-left:3px solid var(--glow-500);border-radius:var(--radius-md);background:var(--surface-card);font-family:var(--font-sans)}.gf-beta-banner__body{flex:1;min-width:0}.gf-beta-banner__title{font-size:13px;font-weight:700;color:var(--ink-900)}.gf-beta-banner__text{font-size:13px;color:var(--text-muted);margin-top:2px}.gf-beta-banner__dismiss{flex:none;border:none;background:transparent;cursor:pointer;color:var(--text-muted);font-size:18px;line-height:1;width:32px;height:32px;border-radius:var(--radius-sm)}.gf-beta-banner__dismiss:hover{color:var(--ink-900)}.gf-beta-banner__dismiss:focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus-ring)}.gf-consent{position:fixed;left:0;right:0;bottom:0;z-index:950;background:var(--surface-card);border-top:1px solid var(--hairline);box-shadow:var(--shadow-breath);font-family:var(--font-sans)}body:has(.gf-consent){padding-bottom:var(--gf-consent-h,0)}.gf-consent__inner{max-width:1120px;margin:0 auto;padding:20px 24px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}.gf-consent__copy{flex:1 1 380px;min-width:0}.gf-consent__title{font-family:var(--font-display);font-weight:600;font-size:20px;letter-spacing:-.01em;color:var(--ink-900);margin:0 0 6px}.gf-consent__text{font-size:14px;line-height:1.55;color:var(--text-secondary);margin:0}.gf-consent__actions{flex:0 1 auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gf-consent__choice{flex:0 0 auto}@media (max-width:640px){.gf-consent__inner{padding:16px;gap:14px}.gf-consent__actions{width:100%}.gf-consent__choice{flex:1 1 auto}}@media (max-width:767px){body:has(.gf-bottomnav) .gf-consent{bottom:var(--bottom-nav-h)}}.gf-dialog{font-family:var(--font-sans);background:var(--surface-card);border:none;border-radius:var(--radius-xl);box-shadow:var(--shadow-breath);margin:auto;width:min(560px,calc(100vw - 40px));max-width:none;max-height:86vh;overflow-y:auto;padding:0;color:var(--text-primary)}.gf-dialog::backdrop{background:var(--overlay-scrim,rgba(36,26,32,.45))}.gf-dialog__head{padding:24px 24px 12px}.gf-dialog__title{font-family:var(--font-display);font-weight:600;font-size:24px;letter-spacing:-.01em;color:var(--ink-900);margin:0}.gf-dialog__lead{font-size:14px;line-height:1.55;color:var(--text-secondary);margin:8px 0 0}.gf-dialog__body{padding:4px 24px 8px}.gf-dialog__actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:16px 24px 24px;border-top:1px solid var(--hairline);margin-top:12px}.gf-switch{display:flex;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid var(--hairline)}.gf-switch:last-child{border-bottom:none}.gf-switch__copy{flex:1 1 auto;min-width:0}.gf-switch__label{display:block;font-size:14px;font-weight:600;color:var(--ink-900)}.gf-switch__desc{font-size:13px;line-height:1.5;color:var(--text-secondary);margin:4px 0 0}.gf-switch__meta{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-meta);margin-top:6px}.gf-switch__input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.gf-switch__track{flex:none;width:46px;height:26px;border-radius:var(--radius-full);background:var(--surface-sunken);border:1px solid var(--hairline-input);position:relative;cursor:pointer;transition:background .15s ease,border-color .15s ease}.gf-switch__thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:var(--radius-full);background:var(--surface-card);box-shadow:var(--shadow-breath);transition:transform .15s ease}.gf-switch__input:checked+.gf-switch__track{background:var(--brand);border-color:var(--brand)}.gf-switch__input:checked+.gf-switch__track .gf-switch__thumb{transform:translateX(20px)}.gf-switch__input:focus-visible+.gf-switch__track{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.gf-switch__locked{flex:none;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--text-secondary);padding-top:4px;white-space:nowrap}.gf-consent-link{background:none;border:none;padding:0;font:inherit;font-size:inherit;color:var(--text-muted);cursor:pointer;text-decoration:none}.gf-consent-link:hover{color:var(--ink-900);text-decoration:underline}.gf-consent-link:focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus-ring);border-radius:var(--radius-sm)}.gf-consent-fallback{position:fixed;left:12px;bottom:12px;z-index:45;padding:6px 12px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);background:var(--surface-card);border:1px solid var(--hairline);border-radius:var(--radius-full);box-shadow:var(--shadow-breath)}body:has(.gf-consent-link:not([data-consent-fallback])) .gf-consent-fallback{display:none}:root{--motion-fast:150ms;--motion-cross:900ms;--ease-quiet:cubic-bezier(0.4,0,0.2,1)}.gf-crossfade{position:relative;overflow:hidden;height:100%}.gf-crossfade__slide{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;opacity:0;transition:opacity var(--motion-cross) ease}.gf-crossfade__slide--active{opacity:1}@media (prefers-reduced-motion:reduce){.gf-crossfade__slide{transition:none}.gf-crossfade__slide--active,.gf-crossfade__slide:first-child{opacity:1}}@keyframes gf-twinkle{0%{opacity:.55;transform:scale(.92)}to{opacity:1;transform:scale(1.06)}}.gf-sparkle{display:inline-block;color:var(--accent);animation:gf-twinkle 2.4s var(--ease-quiet) infinite alternate;will-change:opacity,transform}@media (prefers-reduced-motion:reduce){.gf-sparkle{animation:none;opacity:1;transform:none}}.gf-fade-up{opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease-quiet),transform .5s var(--ease-quiet)}.gf-fade-up.is-in{opacity:1;transform:none}@media (scripting:none){.gf-fade-up{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.gf-fade-up,.gf-fade-up.is-in{opacity:1;transform:none;transition:none}}@keyframes gf-riseIn{0%{opacity:0;transform:translateY(26px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes gf-silkA{0%{transform:translate(-8%,-4%) scale(1)}50%{transform:translate(6%,5%) scale(1.12)}to{transform:translate(-8%,-4%) scale(1)}}@keyframes gf-silkB{0%{transform:translate(10%,6%) scale(1.05)}50%{transform:translate(-6%,-6%) scale(.95)}to{transform:translate(10%,6%) scale(1.05)}}@keyframes gf-shimmer{0%{background-position:130%}to{background-position:-30%}}@keyframes gf-floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes gf-haloSpin{to{transform:rotate(1turn)}}@keyframes gf-gaze{0%,to{transform:scale(1.02) translateX(0)}50%{transform:scale(1.07) translateX(-6px)}}@keyframes gf-marquee{to{transform:translateX(-50%)}}@keyframes gf-ltwinkle{0%,to{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}.gf-landing{position:relative}.gf-landing:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(900px 520px at 88% -6%,color-mix(in srgb,var(--glow-300) 34%,transparent),transparent 70%),radial-gradient(820px 620px at -12% 28%,color-mix(in srgb,var(--brand) 10%,transparent),transparent 70%),radial-gradient(760px 540px at 94% 96%,color-mix(in srgb,var(--brand) 9%,transparent),transparent 70%)}.gf-silk{position:absolute;inset:-10% -5%;pointer-events:none;overflow:hidden;z-index:0}.gf-silk i{position:absolute;border-radius:50%;filter:blur(70px)}.gf-silk .a{width:560px;height:560px;left:-8%;top:-12%;background:radial-gradient(circle,color-mix(in srgb,var(--brand) 20%,transparent),transparent 70%);animation:gf-silkA 22s ease-in-out infinite}.gf-silk .b{width:620px;height:620px;right:-12%;top:4%;background:radial-gradient(circle,color-mix(in srgb,var(--glow-400) 28%,transparent),transparent 70%);animation:gf-silkB 26s ease-in-out infinite}.gf-silk .c{width:420px;height:420px;right:24%;bottom:-30%;background:radial-gradient(circle,color-mix(in srgb,var(--brand) 14%,transparent),transparent 70%);animation:gf-silkA 30s ease-in-out infinite reverse}.gf-landing .gf-hero{position:relative;z-index:1}.gf-landing .gf-hero>.gf-silk{z-index:0}.gf-landing .gf-hero__col{position:relative;z-index:1}.gf-landing .gf-enter{opacity:0;animation:gf-riseIn 1.1s cubic-bezier(.22,.8,.26,1) forwards}.gf-landing .gf-d1{animation-delay:.05s}.gf-landing .gf-d2{animation-delay:.2s}.gf-landing .gf-d3{animation-delay:.35s}.gf-landing .gf-d4{animation-delay:.55s}.gf-landing .gf-d5{animation-delay:.75s}.gf-landing .gf-d6{animation-delay:.95s}.gf-landing h1 .gf-line{display:block;opacity:0;animation:gf-riseIn 1.2s cubic-bezier(.22,.8,.26,1) forwards}.gf-landing h1 .gf-line:first-child{animation-delay:.15s}.gf-landing h1 .gf-line:nth-child(2){animation-delay:.3s}.gf-landing h1 .gf-line:nth-child(3){animation-delay:.45s}.gf-landing h1 .gf-grad-word{background:linear-gradient(100deg,var(--brand) 30%,var(--glow-600) 48%,var(--glow-500) 52%,var(--brand) 70%);background-size:220% auto;-webkit-background-clip:text;background-clip:text;animation:gf-shimmer 6s ease-in-out infinite}.gf-landing .gf-arch .gf-crossfade{animation:gf-gaze 18s ease-in-out infinite}.gf-landing .gf-muse-frame{position:relative}.gf-landing .gf-muse-orbit{position:absolute;inset:-22px;animation:gf-haloSpin 36s linear infinite;pointer-events:none;z-index:2}.gf-landing .gf-muse-orbit i{position:absolute;top:-5px;left:50%;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--glow-500);box-shadow:0 0 12px color-mix(in srgb,var(--glow-500) 70%,transparent)}.gf-landing .gf-floaty{animation:gf-floaty 7s ease-in-out infinite}.gf-landing .gf-brand__spark{animation:gf-ltwinkle 3.4s ease-in-out infinite}.gf-landing .gf-marquee{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);overflow:hidden;padding:22px 0;background:color-mix(in srgb,var(--white) 40%,transparent)}.gf-landing .gf-marquee__track{display:flex;width:-moz-max-content;width:max-content;animation:gf-marquee 44s linear infinite}.gf-landing .gf-marquee:hover .gf-marquee__track{animation-play-state:paused}.gf-landing .gf-marquee__seq{display:flex;align-items:baseline;gap:44px;padding-right:44px;white-space:nowrap}.gf-landing .gf-marquee__seq span{font-family:var(--font-display);font-size:28px;color:var(--ink-900);letter-spacing:.02em}.gf-landing .gf-marquee__seq .gf-fleur{color:var(--glow-500);font-size:16px;align-self:center}.gf-landing .gf-feature{position:relative}.gf-landing .gf-feature:after{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--glow-500);transition:width .6s cubic-bezier(.22,.8,.26,1)}.gf-landing .gf-feature:hover:after{width:100%}.gf-landing .gf-rv{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity 1s cubic-bezier(.22,.8,.26,1),transform 1s cubic-bezier(.22,.8,.26,1),filter 1s cubic-bezier(.22,.8,.26,1)}.gf-landing .gf-rv.gf-in{opacity:1;transform:none;filter:blur(0)}.gf-landing .gf-journey__grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:820px;margin:0 auto}.gf-landing .gf-journey__line{position:absolute;top:26px;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--glow-500) 60%,transparent),transparent);z-index:0}.gf-landing .gf-journey__ghost{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(120px,22vw,240px);line-height:1;color:color-mix(in srgb,var(--glow-500) 8%,transparent);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:0}.gf-landing .gf-journey__step{position:relative;z-index:1;text-align:center}.gf-landing .gf-journey__num{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;margin:0 auto 16px;border-radius:50%;background:var(--surface-card);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--glow-500) 45%,transparent);font-family:var(--font-display);font-size:22px;color:var(--brand)}.gf-landing .gf-journey__title{font-size:18px;font-weight:700;margin:0 0 8px}.gf-landing .gf-journey__desc{font-size:14.5px;color:var(--text-muted);line-height:1.5;margin:0}.gf-landing .gf-band{position:relative;overflow:hidden}.gf-landing .gf-band>*{position:relative;z-index:1}.gf-landing .gf-band>.gf-silk{z-index:0}.gf-landing__nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}.gf-landing__nav-link{font-size:14px;font-weight:600;color:var(--text-secondary);text-decoration:none}@media (max-width:600px){.gf-landing__nav{flex-wrap:nowrap;gap:10px}.gf-landing__nav-hide{display:none}.gf-landing .gf-journey__grid{grid-template-columns:1fr}.gf-landing .gf-journey__line{display:none}}@media (scripting:none){.gf-landing .gf-enter,.gf-landing .gf-rv,.gf-landing h1 .gf-line{opacity:1;transform:none;filter:none}}@media (prefers-reduced-motion:reduce){.gf-landing *,.gf-landing :after,.gf-landing :before{animation:none!important;transition:none!important}.gf-landing .gf-enter,.gf-landing .gf-rv,.gf-landing .gf-rv.gf-in,.gf-landing h1 .gf-line{opacity:1!important;transform:none!important;filter:none!important}}