/* marketing.css */
@font-face{font-family:Outfit;src:url('/assets/brand/fonts/outfit.78b1e336842f.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Fraunces;src:url('/assets/brand/fonts/fraunces-web.7c8b4bab375a.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--bg:#F7FAF7;--ink:#173E3D;--muted:#526C63;--accent:#146C68;--hover:#105653;--mint:#E0F3F0;--line:#D5E5DF;--peach:#F7E5D8;--blue:#E3F0F7}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 Outfit,system-ui,sans-serif}h1,h2,h3,p{margin:0}h1,h2{font-weight:500;letter-spacing:-.045em;line-height:1.07}h1{font-size:clamp(44px,5.4vw,78px)}h2{font-size:clamp(36px,4vw,56px)}h3{font-size:clamp(28px,3vw,42px);font-weight:500;line-height:1.15;letter-spacing:-.035em}h1 em,h2 em{font-family:Fraunces,Georgia,serif;font-style:normal;font-weight:400;color:var(--accent)}p{color:var(--muted)}a{color:var(--accent);text-decoration:none}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}a,button,summary{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img{display:block;max-width:100%;height:auto}.section{max-width:1248px;margin-inline:auto;padding-inline:40px}.site-header{max-width:1360px;margin:auto;padding:26px 40px;display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark{display:inline-flex;align-items:center;gap:9px;color:var(--ink);font:500 27px/1 Fraunces,Georgia,serif;letter-spacing:-1px;flex-shrink:0}.wordmark img{width:28px;height:38px;object-fit:contain}.site-header nav,.header-actions{display:flex;align-items:center;gap:28px}.site-header nav a,.login-link{font-size:14px;color:var(--ink)}.site-header a:hover:not(.button):not(.wordmark){color:var(--accent);text-decoration:underline;text-underline-offset:5px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;border:1px solid var(--accent);border-radius:14px;background:var(--accent);color:#fff;font-weight:500;padding:15px 23px;min-height:54px;transition:background .18s,transform .18s,box-shadow .18s}.button:hover{background:var(--hover);box-shadow:0 6px 18px #173e3d16;transform:translateY(-2px)}.button.small{min-height:44px;padding:10px 18px;font-size:14px;gap:18px}.button.secondary{background:transparent;color:var(--accent);border-color:#9bbdb4}.button.secondary:hover{background:var(--mint)}.button.light{background:#fff;color:var(--accent);border-color:#fff}.button.light:hover{background:var(--mint)}.button:disabled{opacity:.65;cursor:wait;transform:none}.text-link{display:inline-flex;gap:16px;align-items:center;font-weight:500}.text-link:hover{text-decoration:underline;text-underline-offset:5px}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:500;letter-spacing:.15em;color:var(--muted)}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px #146c680b}.hero{padding-top:64px;position:relative;text-align:center}.hero-copy{position:relative;z-index:1}.hero h1{margin-top:26px}.lead{font-size:19px;line-height:1.6;margin-top:25px}.hero-actions{display:flex;justify-content:center;align-items:center;gap:28px;margin-top:30px}.hero-actions .text-link{font-size:15px}.reassurance{font-size:12px;margin-top:14px}.hero-stage{position:relative;isolation:isolate;margin:62px auto 0;max-width:970px;padding:24px 74px 34px}.hero-preview{width:820px;position:relative;border:1px solid #dce8e3;border-radius:22px;box-shadow:0 24px 70px #173e3d14;transform:rotate(-1deg)}.orbit{position:absolute;z-index:-1;pointer-events:none}.orbit-one{width:52%;height:86%;left:-10%;bottom:0;background:linear-gradient(130deg,#d9efef,#cce6ef);border-radius:52% 48% 61% 39% / 50% 60% 40% 50%;transform:rotate(-14deg)}.orbit-two{width:52%;height:83%;right:-6%;top:-18px;background:linear-gradient(130deg,#fae9dc,#f8f0e6);border-radius:62% 38% 49% 51% / 39% 60% 40% 61%;transform:rotate(22deg)}.hero-stage:after{content:'';position:absolute;inset:3% -3% 10%;border:1px solid #85b9b580;border-radius:49% 51% 62% 38% / 60% 45% 55% 40%;z-index:-1;transform:rotate(-12deg)}.floating-label,.floating-note{position:absolute;z-index:2;display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px 20px;box-shadow:0 12px 30px #173e3d0d}.floating-label{left:0;top:0;font-size:14px;transform:rotate(-4deg)}.check-circle{display:grid;place-items:center;background:var(--mint);border-radius:50%;width:28px;height:28px;color:var(--accent)}.floating-note{right:-2%;bottom:2%;text-align:left;transform:rotate(2deg)}.floating-note>span{font-size:30px;color:var(--accent)}.floating-note strong{display:block;font-size:14px;font-weight:500}.floating-note small{display:block;font-size:11px;color:var(--muted)}.intro-strip{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:42px;margin-top:40px;border-bottom:1px solid var(--line)}.intro-strip p{font-size:14px;line-height:1.5}.intro-strip strong{color:var(--ink);font-weight:500}.intro-strip>span{display:flex;gap:14px;font-size:13px;color:#69887e}.intro-strip b{font-size:17px;font-weight:500;color:var(--ink)}.feature-section{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;padding-block:112px}.feature-copy h2,.feature-copy h3{margin:20px 0 24px}.feature-copy>p{max-width:470px}.pill{display:inline-flex;align-items:center;border-radius:100px;background:var(--mint);padding:7px 13px;color:var(--accent);font-size:10px;letter-spacing:.1em;font-weight:600}.steps{list-style:none;padding:0;margin:28px 0;display:grid;gap:20px}.steps li{display:flex;align-items:flex-start;gap:16px}.steps li>span{flex-shrink:0;display:grid;place-items:center;background:var(--mint);border-radius:50%;width:32px;height:32px;font-size:13px;color:var(--accent)}.steps strong{font-size:16px;font-weight:500}.steps p{font-size:14px;margin-top:1px}.planning-art{border-radius:35% 25% 32px 32px;background:linear-gradient(140deg,#e0f3f0,#e3f0f7);padding:55px 28px 24px;position:relative}.art-caption{font-size:10px;letter-spacing:.15em;color:var(--muted);display:block;text-align:center;margin-bottom:12px}.share-url{background:#fff;border:1px solid var(--line);padding:14px 18px;border-radius:12px;display:flex;justify-content:space-between;font-size:14px;gap:10px;margin-bottom:24px;color:var(--accent)}.planning-art img{border-radius:15px;box-shadow:0 14px 30px #173e3d0a;transform:rotate(-2deg)}.caption{font-size:11px;color:var(--muted);display:block;text-align:center;margin-top:20px}.management-section{background:#edf5f1;padding-top:88px;padding-bottom:72px;border-radius:64px 64px 0 0}.section-heading{text-align:center;max-width:700px;margin:auto}.section-heading h2{margin:20px 0 24px}.section-heading>p{max-width:540px;margin:auto}.notes-feature{padding-top:64px;padding-bottom:50px}.notes-art{padding:24px 36px 12px;background:linear-gradient(135deg,#d5ece8,#dfedf4);border-radius:36px}.notes-art img,.payment-art img{border-radius:20px;box-shadow:0 18px 36px #173e3d0b}.mini-features{margin-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:20px}.mini-features span{display:grid;place-items:center;width:38px;height:38px;background:#fff;border-radius:12px;color:var(--accent);margin-bottom:12px;font-size:22px}.mini-features strong{font-size:15px;font-weight:500}.mini-features p{font-size:13px;margin-top:6px}.soft-note{font-size:13px;padding-top:24px;margin-top:24px;border-top:1px solid #cbddd6}.payment-feature{padding-top:40px;padding-bottom:0}.payment-art{padding:32px;background:linear-gradient(135deg,#f5e2d4,#fbf3ed);border-radius:36px}.payment-feature .text-link{margin-top:28px}.pricing-section{padding-block:110px}.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:960px;margin:50px auto 0}.price-card{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:26px;padding:36px;background:#fff}.price-card h3{font-size:28px;margin-top:18px}.price{font-size:60px;font-weight:500;letter-spacing:-.05em;margin-top:10px;line-height:1.6}.price span{font-size:15px;font-weight:400;letter-spacing:0;color:var(--muted)}.price-card>p{font-size:15px}.price-card ul{list-style:none;padding:0;margin:26px 0;display:grid;gap:13px;font-size:14px}.price-card li:before{content:'✓';color:var(--accent);margin-right:12px}.price-card .fine-print{font-size:12px;line-height:1.5;margin-bottom:24px}.price-card>.button{width:100%;margin-top:auto;font-size:15px}.price-card.featured{background:#f1f8f5;border-color:#90bdb4}.price-simulator{width:100%;background:white;border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:20px;display:grid;gap:8px}.price-simulator label{font-size:14px}.price-simulator input{accent-color:var(--accent);width:100%;height:24px;cursor:pointer}.price-simulator output{font-size:23px;font-weight:600;color:var(--accent)}.price-simulator small{font-size:11px;color:var(--muted)}.faq-section{display:grid;grid-template-columns:1fr 1.15fr;gap:70px;padding-block:12px 100px}.faq-section h2{font-size:38px;margin:20px 0 25px}.faq-section .text-link{font-size:14px}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;list-style:none;padding:20px 32px 20px 0;position:relative;font-size:16px;font-weight:500}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:2px;font-size:22px;top:14px;color:var(--accent);font-weight:400}.faq-list details[open] summary:after{content:'−'}.faq-list details p{font-size:14px;padding-bottom:22px}.final-cta{position:relative;overflow:hidden;isolation:isolate;background:var(--accent);color:#fff;text-align:center;padding-block:60px 68px;border-radius:32px;margin-bottom:70px}.final-cta:before,.final-cta:after{content:'';position:absolute;z-index:-1;width:460px;height:440px;border:1px solid #ffffff26;border-radius:48% 52% 62% 38%;transform:rotate(25deg);left:-240px;top:40px}.final-cta:after{left:auto;right:-200px;top:-110px;background:#ffffff06}.final-cta>img{margin:0 auto 16px;width:34px;height:48px}.final-cta .eyebrow{color:#d3e9e3}.final-cta h2{font-size:clamp(34px,4vw,53px);margin:20px 0 30px}.final-cta p{color:#d3e9e3;font-size:13px;margin-top:18px}.site-footer{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;padding-bottom:35px}.site-footer>.wordmark{align-self:start;font-size:24px}.site-footer>p{font-size:13px}.site-footer>div{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:start;justify-content:flex-end}.site-footer>div a{font-size:12px}.site-footer small{grid-column:1/-1;border-top:1px solid var(--line);padding-top:22px;font-size:11px;color:var(--muted)}.skip{position:absolute;top:-100px;left:20px;padding:12px;background:#fff;z-index:10}.skip:focus{top:10px}.reveal{opacity:1}.motion-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.motion-ready .reveal.is-visible{opacity:1;transform:none}
.auth-layout{max-width:1150px;margin:40px auto 90px;padding:0 40px;display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start}.auth-story{background:linear-gradient(140deg,#e0f3f0,#e3f0f7);padding:40px;border-radius:36px;position:sticky;top:30px}.auth-story h1{font-size:47px;margin:24px 0}.auth-story>p{font-size:15px}.auth-story>img{margin-top:32px;border-radius:16px;box-shadow:0 15px 30px #173e3d0b}.auth-form-wrap{padding-top:28px}.form-heading h2{font-size:40px;margin:16px 0}.form-heading>p{font-size:15px}#public-auth{margin-top:30px;display:flex;flex-direction:column;gap:9px}#public-auth label{font-size:14px;font-weight:500}#public-auth>label:not(:first-child){margin-top:12px}#public-auth label>input:not([type=radio]){display:block;margin-top:7px}#public-auth input:not([type=radio]){width:100%;padding:13px 15px;min-height:49px;border:1px solid #aec6be;border-radius:12px;background:white;color:var(--ink)}.password-field{position:relative}.password-field input{padding-right:84px!important}.password-field button{position:absolute;right:10px;top:6px;height:38px;background:none;border:0;color:var(--accent);font-size:12px}.field-help{font-size:12px;line-height:1.5}.start-choice{border:0;padding:0;margin:16px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:9px}.start-choice legend{font-size:14px;margin-bottom:10px}.start-choice label{background:#fff;border:1px solid var(--line);padding:13px 11px;border-radius:12px;display:flex;align-items:flex-start;gap:8px;cursor:pointer}.start-choice label:has(input:checked){background:var(--mint);border-color:var(--accent)}.start-choice input{accent-color:var(--accent);margin-top:4px}.start-choice strong{font-size:12px;font-weight:500;display:block}.start-choice small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}.form-submit{width:100%;margin-top:7px;font-size:16px}.privacy-note{margin-top:13px}.privacy-note a{text-decoration:underline}.form-switch{font-size:14px;margin-top:24px;text-align:center}.form-switch a{font-weight:500}.honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.forgot{align-self:flex-end;font-size:13px}.auth-page .site-footer{padding-top:30px;border-top:1px solid var(--line)}#auth-message:empty{display:none}#auth-message{font-size:14px;background:#fbe9e7;color:#963d31;padding:13px;border-radius:10px}#auth-message.success{background:var(--mint);color:var(--accent)}
@media(min-width:900px) and (prefers-reduced-motion:no-preference){.floating-label{animation:float-label 7s ease-in-out infinite}.floating-note{animation:float-note 8s ease-in-out infinite}@keyframes float-label{50%{transform:translateY(-8px) rotate(-3deg)}}@keyframes float-note{50%{transform:translateY(7px) rotate(1deg)}}}
@media(max-width:1000px){.site-header nav{gap:15px}.site-header{padding:22px 28px;gap:20px}.header-actions{gap:18px}.wordmark{font-size:24px}.section{padding-inline:28px}.feature-section{gap:38px}.auth-layout{gap:45px;padding:0 28px}.auth-story{padding:28px}.auth-story h1{font-size:40px}.final-cta{margin-inline:28px}.hero-stage{padding-inline:45px}.floating-label{left:2%}.floating-note{right:0}.price-card{padding:28px}}
@media(max-width:760px){html{scroll-padding-top:25px}.site-header{padding:18px 20px;gap:15px;flex-wrap:wrap}.wordmark{font-size:23px}.wordmark img{width:23px;height:32px}.site-header nav{order:3;width:100%;justify-content:center;gap:26px;border-top:1px solid var(--line);padding-top:12px}.site-header nav a{font-size:12px}.header-actions{gap:12px}.header-actions>.button{display:none}.login-link{font-size:12px}.section{padding-inline:22px}.hero{padding-top:39px;overflow:hidden}.hero h1{font-size:clamp(36px,7.3vw,52px);margin-top:22px}.hero .eyebrow{font-size:9px}.lead{font-size:16px;margin-top:20px}.desktop-break{display:none}.hero-actions{flex-direction:column;gap:18px;margin-top:25px}.hero-actions .button{width:100%;max-width:350px}.reassurance{font-size:10px}.hero-stage{margin-top:42px;padding:24px 0 36px}.hero-preview{border-radius:13px;transform:none}.orbit-one{left:-10%;width:60%;height:95%}.orbit-two{right:-12%;top:-8%;width:50%;height:72%}.floating-label{font-size:10px;padding:7px 10px;top:4px;left:4%;border-radius:10px;gap:6px}.check-circle{width:20px;height:20px}.floating-note{padding:9px 12px;right:0;bottom:13px;border-radius:10px;gap:9px}.floating-note strong{font-size:10px}.floating-note small{font-size:9px}.floating-note>span{font-size:22px}.intro-strip{padding-block:22px;margin-top:10px;gap:12px;flex-wrap:wrap}.intro-strip>p{width:100%;text-align:center;font-size:13px;margin-bottom:9px}.intro-strip>p br{display:none}.intro-strip>span{font-size:10px;gap:6px}.intro-strip b{font-size:13px}.feature-section{grid-template-columns:1fr;gap:35px;padding-block:64px}.feature-copy>p{font-size:16px}.feature-copy h2,.feature-copy h3{margin-block:17px 20px}.feature-copy .text-link{font-size:14px}.planning-art{padding:30px 17px 20px;border-radius:28px}.share-url{font-size:12px;padding:12px}.management-section{padding-top:52px;padding-bottom:50px;border-radius:34px 34px 0 0}.section-heading>p{font-size:16px}.notes-feature{padding-block:35px 45px}.notes-art{order:2;padding:20px;border-radius:25px}.notes-feature .feature-copy{order:1}.payment-feature{padding-top:20px;padding-bottom:0}.payment-art{padding:22px;border-radius:25px}.pricing-section{padding-block:60px}.pricing-grid{grid-template-columns:1fr;margin-top:32px;gap:18px}.price-card{padding:26px}.price-card h3{font-size:27px}.price{font-size:53px}.faq-section{grid-template-columns:1fr;gap:25px;padding-block:0 60px}.faq-section h2{font-size:34px}.faq-list summary{font-size:15px}.final-cta{margin:0 16px 45px;padding:40px 22px;border-radius:26px}.final-cta h2{font-size:33px}.final-cta .button{font-size:14px;gap:14px}.site-footer{grid-template-columns:1fr;gap:20px}.site-footer>div{justify-content:flex-start}.site-footer>p br{display:none}.auth-layout{display:block;margin:20px auto 55px;padding:0 24px;max-width:520px}.auth-story{display:none}.auth-form-wrap{padding-top:8px}.form-heading h2{font-size:39px}.auth-page .site-header>.text-link{font-size:12px;gap:7px}.auth-page .site-header{flex-wrap:nowrap}.auth-page .wordmark{font-size:21px}.auth-page .wordmark img{width:21px}.start-choice{grid-template-columns:1fr}.start-choice strong{font-size:14px}.start-choice small{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}}

/* Product explanations and purposeful, progressively enhanced motion. */
.hero h1{font-size:clamp(40px,5vw,70px)}
.travel-callout{display:flex;align-items:flex-start;gap:14px;padding:19px 20px;background:var(--mint);border-radius:16px;margin:25px 0}.route-symbol{font-size:32px;line-height:1;color:var(--accent)}.travel-callout strong{font-size:15px;font-weight:500}.travel-callout p{font-size:13px;line-height:1.6;margin-top:5px}
.planning-process{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:24px;font-size:11px}.planning-process span{padding:7px 9px;background:#ffffffc9;border-radius:9px;color:var(--accent)}.planning-process i{font-style:normal;color:var(--accent)}
.ai-callout{margin-top:26px;border:1px solid #c9dfd6;border-radius:17px;padding:18px;background:#ffffffb8}.ai-callout h4{font-size:17px;font-weight:500;margin:15px 0 7px}.ai-callout p{font-size:14px;line-height:1.6}.ai-demo{display:flex;align-items:center;gap:12px;background:var(--peach);border-radius:10px;padding:11px 13px;color:#82451f;font-size:12px}.ai-demo>span:last-child{margin-left:auto;font-size:19px}.waveform{display:flex;align-items:center;gap:3px;height:23px;flex-shrink:0}.waveform i{width:3px;height:11px;border-radius:3px;background:#a65b2b;transform-origin:center}.waveform i:nth-child(2n){height:20px}.waveform i:nth-child(3n){height:15px}
.payment-art{position:relative;padding-bottom:62px}.invoice-badge{position:absolute;bottom:21px;right:17px;display:flex;gap:11px;align-items:center;background:white;border:1px solid var(--line);padding:13px 17px;border-radius:13px;box-shadow:0 8px 22px #173e3d0c}.invoice-badge>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--mint);color:var(--accent)}.invoice-badge strong{display:block;font-size:13px;font-weight:500}.invoice-badge small{display:block;font-size:11px;color:var(--muted)}
@media(prefers-reduced-motion:no-preference){
 .home-page .hero-copy>*{animation:hero-enter .7s ease both}.home-page .hero-copy h1{animation-delay:.08s}.home-page .hero-copy .lead{animation-delay:.16s}.home-page .hero-actions{animation-delay:.24s}.home-page .reassurance{animation-delay:.3s}.home-page .hero-preview{animation:preview-enter 1s cubic-bezier(.2,.7,.2,1) both}
 .motion-ready .steps li,.motion-ready .mini-features>div{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}.motion-ready .is-visible .steps li,.motion-ready .is-visible .mini-features>div{opacity:1;transform:none}.steps li:nth-child(2),.mini-features>div:nth-child(2){transition-delay:.12s}.steps li:nth-child(3){transition-delay:.24s}
 .motion-ready .planning-process.is-visible span{animation:step-arrive .65s ease both}.planning-process.is-visible span:nth-of-type(2){animation-delay:.2s}.planning-process.is-visible span:nth-of-type(3){animation-delay:.4s}
 .motion-ready .invoice-badge.is-visible{animation:invoice-arrive .65s ease both}.motion-ready .motion-in-view .waveform i{animation:voice-wave 1.2s ease-in-out 5}.waveform i:nth-child(2n){animation-delay:.15s!important}.waveform i:nth-child(3n){animation-delay:.3s!important}
 .button>span{transition:transform .2s}.button:hover>span{transform:translate(3px,-2px)}.price-card{transition:box-shadow .25s,border-color .25s}.price-card:hover{box-shadow:0 12px 36px #173e3d0b;border-color:#8eb7aa}
 .hero-stage .orbit-one{animation:blob-breathe 12s ease-in-out infinite;animation-play-state:paused}.hero-stage .orbit-two{animation:blob-breathe 15s ease-in-out infinite reverse;animation-play-state:paused}.hero-stage.motion-in-view .orbit{animation-play-state:running}.hero-stage:not(.motion-in-view) .floating-label,.hero-stage:not(.motion-in-view) .floating-note{animation-play-state:paused}.motion-paused *, .motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}
 @keyframes hero-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes preview-enter{from{opacity:0;translate:0 30px;scale:.97}to{opacity:1;translate:0 0;scale:1}}@keyframes step-arrive{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}@keyframes invoice-arrive{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes voice-wave{0%,100%{transform:scaleY(.55)}50%{transform:scaleY(1)}}@keyframes blob-breathe{50%{translate:10px -10px;scale:1.04}}
}
@media(max-width:760px){.hero h1{font-size:clamp(35px,7.8vw,52px)}.hero .lead{font-size:16px}.planning-process{font-size:10px;gap:4px}.planning-process span{padding:6px}.payment-art{padding-bottom:65px}.invoice-badge{right:10px;left:22px;bottom:18px;padding:11px 13px}.floating-note strong{font-size:9px}.floating-note small{font-size:8px}}

/* Google permits hiding the badge when its privacy/terms disclosure remains visible. */

/* A continuous, quiet frame for signup, email and welcome. */
.auth-page{min-height:100svh;display:flex;flex-direction:column;position:relative;isolation:isolate}
.auth-page:before,.auth-page:after{content:"";position:fixed;z-index:-1;pointer-events:none;border-radius:48% 52% 63% 37% / 55% 44% 56% 45%}
.auth-page:before{width:480px;height:470px;background:linear-gradient(135deg,#fae6d8aa,#fbf2e880);right:-200px;top:-160px;transform:rotate(15deg)}
.auth-page:after{width:510px;height:390px;background:linear-gradient(140deg,#d7eeecbb,#d9eaf3bb);left:-200px;bottom:-200px;transform:rotate(-15deg)}
.auth-page .site-header{width:100%;padding-block:24px}.auth-layout{width:100%;max-width:1180px;grid-template-columns:minmax(0,1fr) minmax(0,490px);gap:64px;margin:36px auto 48px;align-items:center;padding:0 32px;flex:1}
.auth-story{position:relative;top:auto;padding:48px 36px;background:linear-gradient(135deg,#e0f3f0,#e3eff4);border-radius:32px;overflow:hidden}
.auth-story:after{content:"";position:absolute;width:520px;height:330px;border:1px solid #78b8bb66;border-radius:50%;transform:rotate(-30deg);bottom:-170px;left:-100px;pointer-events:none}
.auth-story h2{font-size:clamp(34px,3.4vw,46px);line-height:1.16;margin:26px 0 20px;letter-spacing:-.035em}.auth-story h2 em{font-family:Fraunces,serif;color:var(--accent);font-style:normal}.auth-story>p{max-width:340px;font-size:15px}.auth-preview{margin:32px 0 24px;transform:rotate(-2deg);position:relative}.auth-preview img{border-radius:16px;border:1px solid #ffffff;box-shadow:0 16px 32px #173e3d0e}.preview-label{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:13px;color:var(--ink)}.auth-benefits{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px;color:var(--accent);position:relative;z-index:1}
.auth-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:36px;box-shadow:0 12px 48px #173e3d06;min-width:0}.auth-card h1{font-size:34px;line-height:1.17;letter-spacing:-.035em;margin:14px 0 16px}.auth-card .form-heading>p{font-size:15px;line-height:1.6}.auth-progress{list-style:none;padding:0;margin:0 0 32px;display:flex;gap:10px;justify-content:space-between;color:#657e7a;font-size:12px}.auth-progress li{display:flex;align-items:center;gap:7px;border-bottom:2px solid #e8efed;padding:0 0 12px;flex:1;white-space:nowrap}.auth-progress .current{color:var(--accent);border-color:var(--accent);font-weight:500}.auth-progress .done{color:var(--accent);border-color:#b6dcd3}
#public-auth{margin-top:24px;gap:10px}#public-auth label{font-size:14px}#public-auth input:not([type=radio]){min-height:52px;font-size:16px;background:#fcfdfc;border-color:#b9ccc6}#public-auth input:focus{background:#fff}.auth-card .start-choice{gap:10px;margin-top:18px}.auth-card .start-choice label{padding:14px 11px}.auth-card .start-choice strong{font-size:13px}.auth-card .start-choice small{font-size:12px}.auth-card .form-submit{margin-top:14px;min-height:54px}.auth-card .privacy-note{font-size:11px;line-height:1.6}.auth-card .form-switch{padding-top:22px;border-top:1px solid var(--line);margin-top:24px}.auth-page .field-help a{text-decoration:underline;text-underline-offset:3px}
.auth-verify-layout{width:100%;max-width:600px;margin:48px auto 56px;padding:0 24px;flex:1;display:flex;align-items:center}.auth-verify-layout .auth-card{width:100%;padding:40px}.auth-state .state-symbol{display:grid;place-items:center;margin:0 auto 24px;width:72px;height:72px;background:linear-gradient(140deg,#e0f3f0,#dfedf4);color:var(--accent);border-radius:24px;font-size:34px}.auth-state{text-align:center}.auth-state h1,.auth-state h2{font-size:34px;line-height:1.2;letter-spacing:-.035em;margin:12px 0 18px}.auth-state .state-intro{font-size:16px;line-height:1.7}.auth-state .email-address{display:block;margin:12px 0 0;color:var(--ink);font-weight:500;overflow-wrap:anywhere}.auth-state form{margin-top:26px}.auth-feedback:empty{display:none}.auth-feedback{font-size:14px;border-radius:12px;padding:14px 16px;background:#fbe9e7;color:#8d3c2f;line-height:1.55;text-align:left;margin:16px 0}.auth-feedback.success{background:var(--mint);color:var(--accent)}.state-help{border-top:1px solid var(--line);margin-top:28px;padding-top:24px;display:flex;align-items:center;flex-direction:column;gap:12px;font-size:13px}.state-help strong{font-weight:500;color:var(--ink)}.state-help p{font-size:12px;line-height:1.7}.auth-state .text-link{justify-content:center;min-height:44px;font-size:14px}.auth-state button.text-link{background:transparent;border:0;color:var(--accent);padding:8px}.auth-state .button{width:100%;margin-top:24px}.auth-state .state-tips{background:#f5f8f6;border-radius:14px;padding:18px;margin-top:24px;font-size:13px;text-align:left;line-height:1.7}.auth-state .state-tips strong{color:var(--ink);display:block;margin-bottom:4px;font-weight:500}.auth-footer{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;padding:22px 24px 28px;font-size:12px;color:var(--muted);margin-top:auto}.auth-page [hidden]{display:none!important}.auth-page .button:disabled{cursor:default}.auth-state a:not(.button){text-underline-offset:4px}.auth-state .state-actions{display:grid;gap:8px;margin-top:22px}.auth-state .state-actions .button{margin:0}
@media(prefers-reduced-motion:no-preference){.auth-card{animation:hero-enter .4s ease both}.auth-state:not([hidden]){animation:hero-enter .25s ease both}}
@media(max-width:900px){.auth-layout{gap:28px;padding-inline:24px}.auth-story{padding:32px 24px}.auth-card{padding:28px}.auth-progress{gap:7px;font-size:11px}.auth-story h2{font-size:36px}}
@media(max-width:760px){.auth-page .site-header{padding:20px;gap:10px}.auth-page .site-header>.text-link{font-size:13px;white-space:nowrap}.auth-layout{display:block;max-width:520px;margin:18px auto 28px;padding:0 16px;flex:initial}.auth-story{display:none}.auth-card{padding:28px 22px;border-radius:22px}.auth-card h1,.auth-state h1,.auth-state h2{font-size:29px;line-height:1.2}.auth-progress{font-size:11px;gap:8px;margin-bottom:28px}.auth-progress li{gap:5px}.auth-card .start-choice{grid-template-columns:1fr}.auth-card .start-choice label{padding:14px}.auth-card .start-choice strong{font-size:14px}.auth-verify-layout{margin:26px auto 36px;padding:0 16px;flex:initial}.auth-verify-layout .auth-card{padding:30px 22px}.auth-state .state-intro{font-size:15px}.auth-state .state-symbol{width:64px;height:64px;border-radius:22px}.auth-page:before{width:260px;height:300px;right:-160px;top:20px}.auth-page:after{width:280px;height:330px;left:-170px;bottom:-100px}.auth-footer{gap:12px 20px;font-size:11px}.auth-card .eyebrow{font-size:10px}}

.hero-animation-stage{width:100%;max-width:1000px;margin:0 auto;padding:0;min-height:0}.planning-animation{display:block;width:100%;height:auto;aspect-ratio:4/3;border:0;background:transparent}.hero-animation-controls{display:flex;align-items:center;justify-content:center;gap:18px;padding:0 12px 12px;margin-top:-40px;position:relative}.hero-animation-controls p{font-size:12px}.hero-animation-controls button{border:0;background:transparent;color:var(--accent);font-size:12px;text-decoration:underline;text-underline-offset:4px;padding:12px;min-height:44px;white-space:nowrap}.hero-animation-stage:has(.planning-animation){transform:none;animation:none}@media(max-width:760px){.hero-animation-stage{margin-top:12px;width:calc(100% + 32px);max-width:none;left:-16px}.hero-animation-controls{margin-top:-8px;gap:4px;flex-direction:column;padding:0 20px}.hero-animation-controls p{font-size:11px;text-align:center}}@media(prefers-reduced-motion:reduce){#planning-motion-toggle{display:none}}

.notes-animation-art{padding:0;background:transparent;border-radius:0}.notes-animation{display:block;width:100%;height:auto;aspect-ratio:600/680;border:0;background:transparent}.notes-animation-art .hero-animation-controls{margin:0;padding:0}.home-page .management-section{margin-top:36px}@media(max-width:760px){.notes-animation-art{padding:0}.home-page .management-section{margin-top:24px}}@media(prefers-reduced-motion:reduce){#notes-motion-toggle{display:none}}

/* Identity entry: same spacing on mobile and desktop; no third-party script. */
.google-start{margin:24px 0 0}.google-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:48px;padding:12px 20px;border:1px solid #747775;border-radius:12px;background:#fff;color:#1f1f1f;font:500 15px Arial,sans-serif;cursor:pointer}.google-button svg{flex-shrink:0}.google-button:hover{background:#f8fafd;box-shadow:0 1px 3px #0002}.google-button:focus-visible{outline:3px solid #176d6a;outline-offset:3px}.auth-divider{display:flex;align-items:center;gap:16px;margin:24px 0;color:#536c6b;font-size:13px}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#d7e5e2;flex:1}.google-finish{max-width:620px}.google-finish form{display:grid;gap:20px;text-align:left}.google-finish h1{font-size:clamp(30px,5vw,42px)}.google-identity{margin:20px 0;padding:12px 16px;border-radius:12px;background:#e7f3f0;overflow-wrap:anywhere}.google-finish .form-submit{margin-top:4px}.google-finish input:not([type=radio]):not([type=checkbox]):not([type=hidden]){display:block;width:100%;margin-top:8px;padding:14px;border:1px solid #a8c1bc;border-radius:12px;background:#fff;color:#183d3b;font:inherit}

/* Figma illustrations: vector text stays sharp at every display density. */




/* A quiet, secondary feature after billing. */
.link-story{display:grid;grid-template-columns:1fr 410px;gap:80px;align-items:center;padding-top:64px;padding-bottom:64px;border-bottom:1px solid var(--line)}
.link-story-copy{max-width:490px}.link-story-copy .eyebrow{display:block;margin-bottom:16px}.link-story-copy h3{font-size:clamp(26px,2.5vw,34px);line-height:1.2;letter-spacing:-.8px;margin-bottom:24px}.link-story-copy>p{font-size:16px;line-height:1.7}.link-story-copy strong{font-weight:500;color:var(--ink)}
.link-story-message{padding:14px 18px;background:var(--mint);border-radius:16px 16px 16px 4px;margin-bottom:20px;max-width:380px}.link-story-message span{font-size:12px;color:var(--muted)}.link-story-message p{font-size:15px;line-height:1.5;margin-top:5px;color:var(--ink)}
.link-story-url{display:inline-block;font-size:15px;color:var(--accent);padding:10px 14px;background:white;border:1px solid var(--line);border-radius:10px;margin:16px 0 12px;overflow-wrap:anywhere}.link-story-confirm{font-size:14px!important;margin-bottom:18px}.link-story-calendar{margin:0;padding:16px;background:linear-gradient(145deg,#e0f3f0,#e3f0f7);border-radius:24px}.link-story-calendar img{display:block;width:100%;height:auto;border-radius:18px}.link-story-calendar figcaption{font-size:10px;text-align:center;margin-top:12px;color:var(--muted)}
@media(max-width:900px){.link-story{grid-template-columns:1fr 360px;gap:32px}}
@media(max-width:650px){.link-story{grid-template-columns:1fr;gap:28px;padding-top:44px;padding-bottom:44px}.link-story-copy{max-width:none}.link-story-calendar{width:100%;max-width:410px;justify-self:center;padding:12px}.link-story-copy h3{font-size:28px}.link-story-copy>p{font-size:15px}}

.link-animation-art{padding:0;background:none}.link-animation{display:block;width:100%;height:auto;aspect-ratio:600/680;border:0;background:transparent}.link-animation-art .hero-animation-controls{justify-content:center;margin-top:4px}

passkey-login{display:block;margin:12px 0}passkey-login[hidden]{display:none}passkey-login p{font-size:13px;line-height:1.6;color:var(--muted);margin:10px 0}passkey-login p:empty{display:none}

.home-page .site-header nav{flex-wrap:wrap;row-gap:12px}

/* legal.css */

.legal-page{max-width:1050px;margin:48px auto 100px;padding:0 24px}.legal-page h1{font-size:clamp(32px,5vw,56px);line-height:1.12;margin:18px 0}.legal-intro{font-size:20px;color:#52716E;max-width:700px}.legal-date{font-size:14px;color:#52716E}.legal-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin:28px 0 36px}.legal-nav a[aria-current=page]{font-weight:700;text-decoration:underline}.legal-content{padding:clamp(24px,4vw,48px);background:white;border:1px solid #D5E5E1;border-radius:24px;line-height:1.75}.legal-content h2{font-size:24px;margin:34px 0 14px}.legal-content h2:first-child{margin-top:0}.legal-content p,.legal-content li{max-width:78ch}.legal-content li+li{margin-top:12px}.legal-content a{text-decoration:underline;text-underline-offset:3px}.legal-table{overflow:auto}.legal-table table{border-collapse:collapse;min-width:580px;font-size:15px}.legal-table th,.legal-table td{padding:14px;border-bottom:1px solid #D5E5E1;text-align:left;vertical-align:top}.legal-table th{background:#E0F3F0}.privacy-panel{font:16px/1.6 Outfit,system-ui,sans-serif;color:#173F3D;max-width:560px;width:calc(100% - 32px);border:1px solid #BDDCD6;border-radius:24px;padding:28px;box-shadow:0 16px 60px #173F3D24}.privacy-panel::backdrop{background:#173F3D44}.privacy-panel h2{font-size:23px;margin:0 0 12px}.privacy-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 12px}.privacy-actions button{flex:1;min-width:175px;border:1px solid #146F6D;border-radius:12px;background:white;color:#146F6D;padding:12px;font:600 15px Outfit,system-ui;cursor:pointer}.privacy-actions button:hover{background:#E0F3F0}.privacy-panel a{color:#146F6D}.legal-footer-links{display:flex;flex-wrap:wrap;gap:12px 22px}.app-legal-footer{padding:24px 20px 100px;text-align:center;font:12px/1.5 system-ui;color:#52716E}.app-legal-footer a{color:inherit;margin:0 10px}.privacy-inline{padding:16px;border:1px solid #BDDCD6;border-radius:12px;margin:16px 0;font-size:14px}.privacy-inline button{background:none;border:0;color:#146F6D;text-decoration:underline;font:inherit;cursor:pointer}.terms-check{display:flex!important;align-items:start;gap:10px;font-size:14px}.terms-check input{width:18px!important;height:18px;flex:0 0 auto;margin-top:4px}.terms-check a{text-decoration:underline}

.privacy-panel [data-close]{border:0;background:none;padding:4px 0;color:#52716E;font:inherit;text-decoration:underline;cursor:pointer}.privacy-panel button:focus-visible,.privacy-inline button:focus-visible{outline:3px solid #168D94;outline-offset:3px}

/* ui-motion.css */
/* Shared motion: presentation only; never delay an action or change layout. */
:root{--motion-fast:160ms;--motion-enter:220ms;--motion-ease:cubic-bezier(.22,1,.36,1)}
:where(button,a[href],summary,[role="button"]){transition:opacity var(--motion-fast) ease-out}
:where(button,a[href],summary,[role="button"]):not(:disabled):not([aria-disabled="true"]):active{opacity:.8}
:is(button,a[href],summary,[role="button"]):focus-visible{outline:2px solid #146c68;outline-offset:3px}
:is(.btn,.icon-button,.text-link,.tab,.app-nav-link,.organisation-navigation a,.student-card,.payment-menu-action,.calendar-event,.desktop-month-event,.month-day,.slot){transition:opacity var(--motion-fast) ease-out,scale var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease-out,color var(--motion-fast) ease-out}
@media(hover:hover) and (pointer:fine){
    :is(.btn,.icon-button,.student-card,.payment-menu-action):not(:disabled):not([aria-disabled="true"]):hover{scale:1.008}
    :is(.calendar-event,.desktop-month-event,.month-day,.slot):not(:disabled):hover{opacity:.88}
}
:is(.calendar-event,.desktop-month-event,.month-day,.slot):not(:disabled):active{opacity:.75}
:is(.btn,.icon-button,.text-link,.tab,.app-nav-link,.organisation-navigation a,.student-card,.payment-menu-action):not(:disabled):not([aria-disabled="true"]):active{scale:.99}
button:disabled,[aria-disabled="true"]{scale:1}

@keyframes ui-fade-in{from{opacity:0}to{opacity:1}}
@keyframes ui-menu-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes ui-panel-in{from{opacity:.5;transform:translateX(24px)}to{opacity:1;transform:none}}
.auth-card{animation:ui-fade-in var(--motion-enter) var(--motion-ease)}
:is(.app-date-picker,.address-suggestions:not([hidden]),[role="tooltip"],.marker-picker[open] .marker-presets){animation:ui-menu-in var(--motion-fast) var(--motion-ease)}
:is(.upcoming,.month-course)[open]>.course-actions{animation:ui-menu-in var(--motion-fast) var(--motion-ease)}
#lesson-panel{animation:ui-fade-in var(--motion-enter) var(--motion-ease)}
@media(min-width:761px){#lesson-panel{animation-name:ui-panel-in}}
/* Background refreshes must not fade the whole workspace. */
.interpreting,.boot-message{animation:ui-fade-in var(--motion-enter) var(--motion-ease)}
#toast,#notice,#admin-notice{transition:opacity var(--motion-fast) ease-out,transform var(--motion-enter) var(--motion-ease)}
/* The old waveform changed height every frame. Keep its dimensions stable. */
@keyframes wave{to{transform:scaleY(.34)}}
.teacher-main .card.profile-highlight{animation:ui-fade-in var(--motion-enter) var(--motion-ease)}

/* Native dialog lifecycle and focus management stay synchronous. Unsupported
   browsers retain their existing opening animation and immediate dismissal. */
@supports (transition-behavior:allow-discrete){
    dialog{
        animation:none!important;
        opacity:0;transform:translateY(8px);
        transition:opacity var(--motion-fast) ease-out,transform var(--motion-enter) var(--motion-ease),display var(--motion-enter) allow-discrete,overlay var(--motion-enter) allow-discrete;
    }
    dialog[open]{opacity:1;transform:none;animation:none!important}
    dialog:not([open]),dialog:not([open])::backdrop{pointer-events:none}
    dialog::backdrop{opacity:0;transition:opacity var(--motion-fast) ease-out,display var(--motion-enter) allow-discrete,overlay var(--motion-enter) allow-discrete}
    dialog[open]::backdrop{opacity:1}
    @starting-style{
        dialog[open]{opacity:0;transform:translateY(8px)}
        dialog[open]::backdrop{opacity:0}
    }
    @media(min-width:761px){
        dialog[data-presentation="drawer"]{transform:translateX(24px)}
        dialog[data-presentation="drawer"][open]{transform:none}
        @starting-style{dialog[data-presentation="drawer"][open]{transform:translateX(24px)}}
    }
    @media(max-width:760px){
        dialog[data-presentation],dialog.availability-editor{transform:translateY(20px)}
        dialog[data-presentation][open],dialog.availability-editor[open]{transform:none}
        @starting-style{dialog[data-presentation][open],dialog.availability-editor[open]{transform:translateY(20px)}}
    }
}
/* Disable CSS motion, including older effects and pseudo-elements, throughout
   the app when requested. Keyboard focus remains clearly visible. */
@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
    :is(button,a[href],summary,[role="button"]){scale:1!important}
}
