:root{--champagne-0: oklch(1 0 0);--champagne-25: oklch(.995 .005 60);--champagne-50: oklch(.99 .008 60);--champagne-100: oklch(.96 .015 40);--champagne-200: oklch(.92 .018 30);--champagne-300: oklch(.85 .025 30);--champagne-700: oklch(.42 .04 15);--champagne-900: oklch(.2 .04 15);--champagne-950: oklch(.12 .03 12);--brand-primary: #6e4a3a;--brand-accent: #c8875a;--brand-primary-hover: color-mix(in oklch, var(--brand-primary) 84%, black);--brand-primary-soft: color-mix(in oklch, var(--brand-primary) 24%, var(--champagne-950));--accent-100: color-mix(in oklch, var(--brand-accent) 24%, var(--champagne-950));--accent-200: color-mix(in oklch, var(--brand-accent) 44%, var(--champagne-100));--accent-300: color-mix(in oklch, var(--brand-accent) 70%, var(--champagne-100));--accent-400: color-mix(in oklch, var(--brand-accent) 88%, var(--champagne-50));--accent-rose: color-mix(in oklch, var(--brand-accent) 78%, var(--champagne-50));--bg-page: color-mix(in oklch, var(--brand-primary) 18%, var(--champagne-950));--bg-surface: color-mix(in oklch, var(--brand-primary) 30%, var(--champagne-950));--bg-raised: color-mix(in oklch, var(--brand-primary) 40%, var(--champagne-950));--bg-sunken: color-mix(in oklch, var(--brand-primary) 12%, var(--champagne-950));--bg-overlay: color-mix(in oklch, var(--champagne-950) 72%, transparent);--bg-chamber: linear-gradient(166deg, color-mix(in oklch, var(--brand-primary) 62%, var(--champagne-950)) 0%, color-mix(in oklch, var(--brand-primary) 26%, var(--champagne-950)) 55%, color-mix(in oklch, var(--brand-primary) 12%, var(--champagne-950)) 100%);--fg-primary: oklch(.97 .015 60);--fg-secondary: oklch(.85 .025 40);--fg-muted: oklch(.7 .028 35);--fg-on-brand: oklch(.97 .015 60);--fg-inverse: var(--fg-on-brand);--fg-on-accent: color-mix(in oklch, var(--brand-primary) 62%, black);--border-subtle: color-mix(in oklch, var(--fg-primary) 10%, transparent);--border-default: color-mix(in oklch, var(--fg-primary) 16%, transparent);--border-strong: color-mix(in oklch, var(--fg-primary) 26%, transparent);--border-focus: var(--accent-rose);--success-bg: color-mix(in oklch, oklch(.6 .105 150) 18%, var(--bg-surface));--success-fg: oklch(.82 .1 150);--warning-bg: color-mix(in oklch, oklch(.72 .12 75) 18%, var(--bg-surface));--warning-fg: oklch(.86 .09 75);--danger-bg: color-mix(in oklch, var(--brand-accent) 18%, var(--bg-surface));--danger-fg: var(--accent-rose);--gradient-accent: linear-gradient(90deg, var(--brand-accent) 0%, var(--accent-rose) 55%, color-mix(in oklch, var(--accent-rose) 60%, var(--bg-surface)) 100%);--glow-accent: 0 4px 24px color-mix(in oklch, var(--brand-accent) 26%, transparent);--font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;--font-sans: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-display: clamp(2.75rem, 8vw, 4.5rem);--text-hero: clamp(3rem, 9vw, 5.5rem);--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--tracking-widest: .16em;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--sp-16: 4rem;--radius: 1.25rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1.25rem;--radius-xl: 1.75rem;--radius-pill: 9999px;--shadow-sm: 0 1px 2px oklch(.08 .02 30 / .5);--shadow-md: 0 4px 14px oklch(.08 .02 30 / .5);--shadow-lg: 0 16px 36px oklch(.06 .02 30 / .55);--shadow-focus: 0 0 0 3px color-mix(in oklch, var(--accent-rose) 40%, transparent);--dur-fast: .12s;--dur-base: .2s;--ease-out: cubic-bezier(.16, 1, .3, 1);--journey-scroll-offset: 6.25rem}:root{--background: var(--bg-page);--foreground: var(--fg-primary);--card: var(--bg-surface);--card-foreground: var(--fg-primary);--primary: var(--brand-primary);--primary-foreground: var(--fg-on-brand);--secondary: var(--bg-raised);--secondary-foreground: var(--fg-primary);--muted: var(--bg-raised);--muted-foreground: var(--fg-muted);--accent: var(--brand-accent);--accent-foreground: var(--fg-on-accent);--border: var(--border-default);--destructive: var(--danger-fg);--destructive-foreground: var(--fg-primary);--brand-hover: var(--brand-primary-hover);--brand-light: var(--brand-primary-soft)}@media print{.no-print{display:none!important}body{background:#fff}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}button{cursor:pointer;border:0;background:transparent;padding:0}a{color:inherit;text-decoration:none}html{scroll-behavior:smooth;scroll-padding-top:var(--journey-scroll-offset)}body{font-family:var(--font-sans);background:var(--bg-page);color:var(--fg-primary);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,em{font-family:var(--font-display);letter-spacing:-.02em}em{font-style:italic}.portal-shell{min-height:100dvh;display:flex;flex-direction:column}.portal-shell--loaded{animation:portalReveal .8s var(--ease-out) both}.portal-shell--loading{background:var(--primary);min-height:100dvh}@keyframes portalReveal{0%{opacity:0}to{opacity:1}}.portal-hero{position:relative;min-height:min(92vh,920px);display:flex;flex-direction:column;overflow:hidden;color:var(--primary-foreground)}.portal-hero-bg{position:absolute;inset:0;background:var(--bg-chamber)}.portal-hero-orb{position:absolute;border-radius:50%;filter:blur(64px);opacity:.55;animation:orbFloat 18s ease-in-out infinite}.portal-hero-orb--1{width:55%;height:48%;top:-11%;right:-5%;background:var(--accent-rose);animation-delay:0s}.portal-hero-orb--2{width:40%;height:37%;bottom:5%;left:-8%;background:color-mix(in oklch,var(--brand-accent) 88%,black);animation-delay:-6s}.portal-hero-orb--3{width:25%;height:27%;top:42%;left:35%;background:color-mix(in oklch,var(--brand-accent) 60%,var(--champagne-300));opacity:.35;animation-delay:-12s}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}50%{transform:translate(2%,-3%) scale(1.05)}}.portal-header{position:relative;z-index:2;padding:var(--sp-6);display:flex;align-items:center;gap:var(--sp-3)}.portal-header--hero{background:transparent}.portal-logo{height:36px;object-fit:contain}.portal-wordmark{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,2rem);font-weight:var(--weight-normal);letter-spacing:-.02em;color:var(--fg-primary)}.portal-wordmark--light,.portal-clinic-name--light{color:var(--primary-foreground)}.portal-wordmark-dot{color:var(--brand-accent)}.portal-clinic-name{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-normal);color:var(--fg-primary)}.portal-hero-inner{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:center;max-width:72rem;width:100%;margin:0 auto;padding:var(--sp-8) var(--sp-6);animation:heroSlideUp 1s var(--ease-out) .15s both}@keyframes heroSlideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.portal-hero-eyebrow{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.3em;opacity:.85;margin-bottom:var(--sp-6)}.portal-hero-spark{color:var(--accent-rose);font-size:.875rem}.portal-hero-title{font-family:var(--font-display);font-size:var(--text-hero);font-weight:300;line-height:.95;max-width:14ch;text-wrap:balance;margin-bottom:var(--sp-6)}.portal-hero-em{color:var(--accent-rose);font-style:italic}.portal-hero-lead{font-size:clamp(1rem,2.5vw,1.125rem);line-height:1.75;max-width:32rem;opacity:.88;margin-bottom:var(--sp-8)}.portal-hero-actions{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-bottom:var(--sp-10)}.portal-hero-stats{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-6);padding-top:var(--sp-8);border-top:1px solid color-mix(in srgb,var(--primary-foreground) 18%,transparent)}.portal-stat-value{display:block;font-family:var(--font-display);font-size:clamp(1.5rem,4vw,2rem);font-weight:var(--weight-normal);line-height:1;color:var(--accent-rose)}.portal-stat-label{display:block;margin-top:var(--sp-2);font-size:var(--text-xs);opacity:.75;letter-spacing:.02em}.portal-stat-divider{width:1px;height:2.5rem;background:color-mix(in srgb,var(--primary-foreground) 20%,transparent)}#report,#booking{scroll-margin-top:var(--journey-scroll-offset)}.portal-content{flex:1;max-width:66rem;width:100%;margin:0 auto;padding:var(--sp-12) var(--sp-6) var(--sp-8);display:flex;flex-direction:column;gap:var(--sp-16)}.portal-body{display:grid;grid-template-columns:minmax(0,1fr) 21.25rem;gap:var(--sp-8);align-items:start}.portal-body-main{min-width:0}@media(max-width:960px){.portal-body{grid-template-columns:1fr}}.report-stage{scroll-margin-top:var(--journey-scroll-offset)}.report-stage-header{margin-bottom:var(--sp-10)}.report-stage-step{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.35em;color:var(--fg-secondary);margin-bottom:var(--sp-4)}.report-stage-title{font-family:var(--font-display);font-size:clamp(2.5rem,7vw,3.75rem);font-weight:300;line-height:1.02;color:var(--fg-primary);text-wrap:balance;max-width:16ch}.report-stage-title em{color:var(--accent-rose);font-style:italic}.report-stage-subtitle{margin-top:var(--sp-5);font-size:var(--text-base);color:var(--fg-secondary);line-height:1.65;max-width:32rem}.report-stage-card{position:relative;background:var(--card);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.report-stage-card-accent{position:relative;z-index:1;height:3px;background:var(--gradient-accent)}.report-stage .report-html-wrapper{padding:0}.booking-aside{position:sticky;top:var(--sp-6);align-self:start}.booking-aside-card{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-6);background:color-mix(in oklch,var(--brand-primary) 26%,var(--champagne-950));border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--sp-6);overflow:hidden;box-shadow:var(--shadow-lg)}.booking-aside-glow{position:absolute;z-index:0;top:-3.5rem;right:-6.5rem;width:14rem;height:14rem;border-radius:50%;background:radial-gradient(circle,color-mix(in oklch,var(--accent-rose) 26%,transparent) 0%,transparent 66%);pointer-events:none}.booking-aside-head{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.booking-aside-eyebrow-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.booking-aside-eyebrow{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.18em;color:var(--accent-rose)}.booking-aside-badge{flex-shrink:0;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);background:var(--accent-rose);color:var(--fg-on-accent);font-size:.625rem;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.booking-aside-title{font-family:var(--font-display);font-size:1.75rem;font-weight:var(--weight-normal);line-height:1.15;letter-spacing:-.01em;color:var(--fg-primary);margin-top:var(--sp-1)}.booking-aside-title em{color:var(--accent-rose);font-style:italic;font-weight:var(--weight-semibold)}.booking-aside-lead{font-size:var(--text-sm);line-height:1.5;color:var(--fg-secondary);margin-top:var(--sp-2)}.aside-glyph{width:1em;height:1em;flex-shrink:0}.booking-aside-steps{position:relative;z-index:1;list-style:none;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-4);border-radius:var(--radius-md);border:1px solid color-mix(in oklch,var(--fg-primary) 8%,transparent);background:color-mix(in oklch,var(--fg-primary) 3%,transparent)}.booking-aside-step{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);flex:1}.booking-aside-step-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:color-mix(in oklch,var(--fg-primary) 6%,transparent);color:var(--accent-rose)}.booking-aside-step-icon .aside-glyph{width:16px;height:16px}.booking-aside-step--done .booking-aside-step-icon{background:var(--accent-rose);color:var(--fg-on-accent)}.booking-aside-step-label{font-size:.625rem;font-weight:var(--weight-medium);color:var(--fg-secondary);text-align:center}.booking-aside-foot-group{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--sp-3);padding-top:var(--sp-1)}.booking-aside-cta{width:100%;padding:var(--sp-4) var(--sp-6);background:var(--champagne-25);color:var(--fg-on-accent);font-size:var(--text-base);font-weight:var(--weight-semibold)}.booking-aside-cta:hover{background:var(--champagne-0);transform:translateY(-2px);box-shadow:var(--glow-accent)}.booking-aside-foot{display:flex;align-items:center;justify-content:center;gap:var(--sp-1);font-size:var(--text-xs);color:var(--fg-secondary);text-align:center}.booking-aside-foot .aside-glyph{width:14px;height:14px;color:var(--accent-rose)}@media(max-width:960px){.booking-aside{position:static}}.booking-stage{color:var(--fg-primary);scroll-margin-top:var(--journey-scroll-offset)}.booking-stage-header{max-width:52rem;margin:0 auto var(--sp-8)}.booking-stage-title{font-family:var(--font-display);font-size:clamp(2.25rem,6vw,3.5rem);font-weight:300;line-height:1.05;margin-top:var(--sp-2)}.booking-stage-title em{color:var(--accent-rose);font-style:italic}.booking-stage-subtitle{margin-top:var(--sp-4);opacity:.85;font-size:var(--text-base)}.booking-stage-panel{max-width:52rem;margin:0 auto;background:var(--bg-surface);color:var(--fg-primary);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--sp-8);box-shadow:var(--shadow-lg)}.booking-coupon-banner{display:flex;align-items:stretch;gap:var(--sp-6);background:linear-gradient(135deg,color-mix(in oklch,var(--brand-primary) 55%,var(--bg-sunken)),color-mix(in oklch,var(--brand-primary) 30%,var(--bg-sunken)));border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--sp-5) var(--sp-6);margin-bottom:var(--sp-5);flex-wrap:wrap}.booking-coupon-banner-amount{display:flex;flex-direction:column;gap:var(--sp-1);flex-shrink:0;justify-content:center}.booking-coupon-banner-pct{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-medium);line-height:1;color:var(--accent-rose)}.booking-coupon-banner-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--fg-secondary)}.booking-coupon-banner-divider{width:1px;align-self:stretch;background:var(--border-default)}.booking-coupon-banner-body{display:flex;flex-direction:column;gap:var(--sp-3);flex:1;min-width:12rem}.booking-coupon-banner-note{font-size:var(--text-sm);line-height:1.55;color:var(--fg-primary)}.booking-coupon-banner-code{display:inline-flex;align-items:center;gap:var(--sp-3);align-self:flex-start;background:var(--bg-sunken);border:1px solid var(--border-default);border-radius:var(--radius-pill);padding:var(--sp-2) var(--sp-4)}.booking-coupon-banner-code-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--fg-secondary)}.booking-coupon-banner-code-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.04em;color:var(--accent-rose)}@media(max-width:560px){.booking-coupon-banner{flex-direction:column;gap:var(--sp-4)}.booking-coupon-banner-divider{display:none}}.confirmation-stage{position:relative;max-width:52rem;margin:0 auto;padding:var(--sp-12) var(--sp-8);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);color:var(--fg-primary);overflow:hidden}.confirmation-stage-glow{position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,color-mix(in oklch,var(--accent-rose) 22%,transparent),transparent 62%);pointer-events:none}.confirmation-stage-inner{position:relative;max-width:36rem;margin:0 auto;text-align:center}.confirmation-stage-title{font-family:var(--font-display);font-size:clamp(2.5rem,7vw,4rem);font-weight:300;line-height:1;margin-bottom:var(--sp-6)}.confirmation-stage-title em{color:var(--accent-rose);font-style:italic}.confirmation-stage .confirmation-icon{background:color-mix(in oklch,var(--accent-rose) 16%,transparent);color:var(--accent-rose);border:1px solid color-mix(in oklch,var(--accent-rose) 40%,transparent);width:5rem;height:5rem;font-size:2rem}.confirmation-stage .confirmation-slot{color:var(--accent-rose);font-size:var(--text-2xl)}.confirmation-stage .confirmation-note{color:var(--fg-secondary)}.contact-info-card--light{background:var(--bg-sunken);border:1px solid var(--border-default);text-align:left;color:var(--fg-primary)}.contact-info-card--light .contact-label{color:var(--fg-secondary)}.portal-footer{background:transparent;color:var(--fg-secondary);border-top:1px solid var(--border-subtle);padding:var(--sp-12) var(--sp-6) var(--sp-8);margin-top:var(--sp-12)}.portal-footer-inner{max-width:52rem;margin:0 auto;display:grid;gap:var(--sp-10)}@media(min-width:640px){.portal-footer-inner{grid-template-columns:1.2fr 1fr;align-items:start}}.portal-footer-tagline{margin-top:var(--sp-4);font-size:var(--text-sm);opacity:.7;line-height:1.7;max-width:20rem}.portal-footer-eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.3em;opacity:.55;margin-bottom:var(--sp-4)}.portal-footer-contact{font-size:var(--text-sm);line-height:1.8;opacity:.9}.portal-footer-link{color:var(--accent-rose);text-decoration:none}.portal-footer-link:hover{text-decoration:underline}.portal-footer-hours{margin-top:var(--sp-2);opacity:.75}.portal-footer-copy{max-width:52rem;margin:var(--sp-10) auto 0;padding-top:var(--sp-6);border-top:1px solid var(--border-subtle);font-size:var(--text-xs);opacity:.5;text-align:center}.card-eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.3em;color:var(--fg-secondary);margin-bottom:var(--sp-2)}.card-eyebrow--light{color:color-mix(in srgb,currentColor 70%,transparent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border-radius:var(--radius-pill);font-weight:var(--weight-medium);font-size:var(--text-sm);cursor:pointer;border:none;transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-hero-primary{background:var(--accent-rose);color:var(--fg-on-accent);padding:var(--sp-4) var(--sp-8);font-size:var(--text-base);font-weight:var(--weight-medium)}.btn-hero-primary:hover{background:color-mix(in oklch,var(--accent-rose) 88%,white);transform:translateY(-2px);box-shadow:var(--glow-accent)}.btn-hero-primary--dark{background:transparent;color:var(--fg-primary);border:1px solid var(--border-strong);margin-top:var(--sp-4)}.btn-hero-primary--dark:hover{background:color-mix(in oklch,var(--fg-primary) 6%,transparent);border-color:var(--accent-rose);box-shadow:none}.btn-hero-ghost{padding:var(--sp-4) var(--sp-8);font-size:var(--text-base);color:var(--primary-foreground);border:1px solid color-mix(in srgb,var(--primary-foreground) 35%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn-hero-ghost:hover{background:color-mix(in srgb,var(--primary-foreground) 10%,transparent)}.btn-arrow{font-size:1.1em;line-height:1}.btn-primary{background:var(--accent-rose);color:var(--fg-on-accent);padding:var(--sp-4) var(--sp-8)}.btn-primary:hover:not(:disabled){background:color-mix(in oklch,var(--accent-rose) 88%,white);box-shadow:var(--glow-accent);transform:translateY(-1px)}.btn-primary--full{width:100%;margin-top:var(--sp-4);padding:var(--sp-4) var(--sp-6);font-size:var(--text-base)}.btn-secondary{background:transparent;color:var(--fg-primary);padding:var(--sp-3) var(--sp-6);border:1px solid var(--border-strong)}.btn-secondary:hover:not(:disabled){background:color-mix(in oklch,var(--fg-primary) 6%,transparent);border-color:var(--accent-rose)}.btn-dismiss{margin-left:var(--sp-3);background:none;border:none;color:inherit;cursor:pointer;padding:0}.alert{border-radius:var(--radius-md);padding:var(--sp-4);font-size:var(--text-sm)}.alert--spaced{margin-bottom:var(--sp-4)}.alert--centered{margin-bottom:var(--sp-6);text-align:center}.alert-error{background:var(--danger-bg);color:var(--danger-fg);border:1px solid color-mix(in srgb,var(--danger-fg) 20%,transparent)}.alert-success{background:var(--success-bg);color:var(--success-fg)}.confirmation-icon{width:4rem;height:4rem;margin:0 auto var(--sp-4);display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--success-bg);color:var(--success-fg);font-size:1.75rem;font-weight:var(--weight-bold)}.confirmation-slot{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-normal);color:var(--brand-primary);text-align:center;margin-bottom:var(--sp-6)}.confirmation-note{margin-bottom:var(--sp-4);font-size:var(--text-sm);color:var(--fg-secondary);font-style:italic;text-align:center}.contact-info-card{background:var(--bg-sunken);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-4);margin-bottom:var(--sp-6)}.contact-info-title{font-weight:var(--weight-semibold);margin-bottom:var(--sp-3);font-size:var(--text-sm)}.contact-grid{display:grid;gap:var(--sp-2)}.contact-row{display:flex;gap:var(--sp-3);font-size:var(--text-sm)}.contact-label{font-weight:var(--weight-medium);color:var(--fg-secondary);min-width:60px}.contact-link{color:var(--brand-primary);text-decoration:none}.contact-link:hover{text-decoration:underline}.loading-state{text-align:center;padding:var(--sp-12);color:var(--fg-muted)}.loading-state--hero{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--primary-foreground)}.loading-wordmark{font-family:var(--font-display);font-size:var(--text-2xl);margin-bottom:var(--sp-8);opacity:.9}.loading-copy{margin-top:var(--sp-4);opacity:.75;font-size:var(--text-sm);letter-spacing:.05em}.spinner{display:inline-block;width:2rem;height:2rem;border:3px solid var(--border-default);border-top-color:var(--brand-primary);border-radius:50%;animation:spin .7s linear infinite}.loading-state--hero .spinner{border-color:color-mix(in srgb,var(--primary-foreground) 25%,transparent);border-top-color:var(--accent)}.spinner--lg{width:2.75rem;height:2.75rem}@keyframes spin{to{transform:rotate(360deg)}}.error-page{text-align:center;padding:var(--sp-12) var(--sp-6)}.error-page h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-normal);margin-bottom:var(--sp-4)}.error-page p{color:var(--fg-secondary)}.toast-container{position:fixed;bottom:var(--sp-6);right:var(--sp-6);z-index:1000;display:flex;flex-direction:column;gap:var(--sp-2)}.toast{background:var(--fg-primary);color:var(--fg-inverse);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-5);font-size:var(--text-sm);box-shadow:var(--shadow-lg);animation:slideIn var(--dur-base) var(--ease-out)}.toast.toast-error{background:var(--brand-primary)}@keyframes slideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cal-layout{display:grid;grid-template-columns:1fr;gap:var(--sp-4)}@media(min-width:600px){.cal-layout{grid-template-columns:1fr 1fr;gap:var(--sp-6);align-items:start}}.cal-col{min-width:0}.cal-time-col{min-width:0;border-top:1px solid var(--border-default);padding-top:var(--sp-4)}@media(min-width:600px){.cal-time-col{border-top:none;border-left:1px solid var(--border-default);padding-top:0;padding-left:var(--sp-6)}}.cal-time-col-placeholder{font-size:var(--text-sm);color:var(--fg-secondary);margin-top:var(--sp-8);text-align:center}.cal-time-col-heading{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-normal);margin-bottom:var(--sp-4)}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.cal-nav-label{font-family:var(--font-display);font-weight:var(--weight-normal);font-size:var(--text-base)}.cal-nav-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);border:1px solid var(--border-default);background:transparent;color:var(--fg-primary);font-size:1.25rem;line-height:1;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.cal-nav-btn:hover:not(:disabled){background:color-mix(in oklch,var(--fg-primary) 6%,transparent);border-color:var(--accent-rose);transform:scale(1.05)}.cal-nav-btn:disabled{opacity:.35;cursor:not-allowed}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-grid--header{margin-bottom:var(--sp-1)}.cal-day-header{text-align:center;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--fg-secondary);padding:var(--sp-1) 0}.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);font-size:var(--text-sm);border:none;background:transparent;cursor:default;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.cal-day--empty{pointer-events:none}.cal-day--disabled{color:color-mix(in srgb,var(--fg-secondary) 45%,transparent);pointer-events:none}.cal-day--available{color:var(--fg-primary);font-weight:var(--weight-semibold);cursor:pointer;border:1.5px solid color-mix(in oklch,var(--accent-rose) 50%,transparent)}.cal-day--available:hover{background:color-mix(in oklch,var(--accent-rose) 14%,transparent);border-color:var(--accent-rose);transform:scale(1.08)}.cal-day--selected{background:var(--accent-rose);color:var(--fg-on-accent);font-weight:var(--weight-semibold);cursor:pointer;border:1.5px solid var(--accent-rose);transform:scale(1.05)}.cal-day--today{box-shadow:inset 0 0 0 1.5px var(--accent-rose)}.cal-tz-note{font-size:var(--text-xs);color:var(--fg-secondary);text-align:right;margin-top:var(--sp-2)}.time-slots-list{display:flex;flex-direction:column;gap:var(--sp-2);max-height:340px;overflow-y:auto;padding-right:var(--sp-1)}.time-btn{width:100%;padding:var(--sp-3) var(--sp-5);border-radius:var(--radius-pill);border:1.5px solid color-mix(in oklch,var(--accent-rose) 45%,transparent);background:transparent;color:var(--fg-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.time-btn:hover{background:color-mix(in oklch,var(--accent-rose) 12%,transparent);border-color:var(--accent-rose);transform:translate(4px)}.time-btn.selected{background:var(--accent-rose);border-color:var(--accent-rose);color:var(--fg-on-accent)}.time-empty-note{font-size:var(--text-sm);color:var(--fg-secondary)}.booking-for-badge{display:flex;align-items:center;gap:var(--sp-2);background:var(--bg-sunken);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-5);font-size:var(--text-sm);flex-wrap:wrap}.booking-for-label{color:var(--fg-secondary);margin-right:var(--sp-1)}.booking-for-email{color:var(--fg-secondary)}.contact-me-section{margin-top:var(--sp-6)}.contact-me-divider{border:none;border-top:1px solid var(--border-default);margin-bottom:var(--sp-4)}.contact-me-prompt{font-size:var(--text-sm);color:var(--fg-secondary);margin-bottom:var(--sp-2)}.contact-me-btn{width:100%}.contact-me-success{font-size:var(--text-sm);color:var(--success-fg);font-weight:var(--weight-medium)}@media print{body{background:#fff;color:#1a1310}.portal-hero,.portal-footer,.no-print{display:none!important}.portal-content{padding:0;gap:0;max-width:none;margin:0}.portal-body{display:block}.report-stage-step,.report-stage-title,.report-stage-subtitle{color:#1a1310!important}.report-stage-title em{color:#7a2e1e!important}.report-stage-card{box-shadow:none;border:1px solid #ddd}.report-stage-card-accent{display:none}.report-stage .vc{--fg-on-chamber: #1a1310;--fg-on-chamber-secondary: #4a3f39;--fg-on-chamber-tertiary: #6b5d54}.report-stage .vcr{background:#fff!important}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.portal-shell--loaded,.portal-hero-inner,.portal-hero-orb{animation:none}.btn-primary:hover:not(:disabled),.btn-hero-primary:hover,.cal-day--available:hover,.cal-nav-btn:hover:not(:disabled),.time-btn:hover{transform:none}}
