:root{--paper:#fbf7f1;--sand:#f5efe6;--line:#e2dbd1;--ink:#3a3330;--ink-soft:#625953;--teal:#2f6f6b;--coral:#e07b6a;--pink:#f4c9cf;--blue:#c9dcee;--sage:#d5e0c3;--peach:#f6d2b5;--lilac:#e3d6ea;--tint-pink:#fbedee;--tint-blue:#eef3f8;--tint-sage:#f1f4ea;--tint-peach:#fcf1e7;--tint-lilac:#f5f0f8;--riso-pink:#e89aa3;--riso-blue:#8fb3d6;--radius-card:28px;--radius-pill:999px;--font-display:var(--font-cormorant), "Cormorant Garamond", Georgia, serif;--font-body:var(--font-dm-sans), "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--title-section:clamp(40px, 5vw, 76px);--title-hero:clamp(60px, 11vw, 170px);--gutter:16px;--max-width:1140px;--tap:44px;--breath-duration:8s}.on-teal{--ink:var(--paper);--ink-soft:var(--paper);color:var(--paper);background:var(--teal)}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:16px;line-height:1.55;display:flex}main{flex:1}h1,h2,h3{font-family:var(--font-display);margin:0;font-weight:300;line-height:1.1}p{margin:0}a{color:inherit}a:hover{color:var(--teal)}img,svg,video{max-width:100%;display:block}:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:4px}.wrap{width:100%;max-width:var(--max-width);padding:0 var(--gutter);margin:0 auto}.label{letter-spacing:.16em;text-transform:uppercase;font-size:12px}.btn{border-radius:var(--radius-pill);min-height:52px;font:500 15px/1 var(--font-body);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 28px;text-decoration:none;transition:background-color .2s,color .2s;display:inline-flex}.btn-primary{background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.btn-primary:hover{background:var(--teal);border-color:var(--teal);color:var(--paper)}.btn-secondary{color:var(--ink);border:1px solid var(--ink);background:0 0}.btn-secondary:hover{background:var(--ink);color:var(--paper)}.btn:disabled{opacity:.6;cursor:progress}.btn-link{min-height:var(--tap);font:inherit;color:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.skip-link{left:var(--gutter);z-index:100;background:var(--ink);color:var(--paper);border-radius:var(--radius-pill);padding:12px 20px;position:absolute;top:-100px}.skip-link:focus{color:var(--paper);top:12px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes breathe{0%,to{transform:scale(.93)}50%{transform:scale(1.04)}}.breathe{animation:breathe var(--breath-duration) ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:80s linear infinite spin}@keyframes floaty{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-14px)rotate(2deg)}}.floaty{animation:5s ease-in-out infinite floaty}@keyframes progress{0%{width:0}to{width:100%}}.progress{animation:14s linear infinite progress}@keyframes bar{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.bar{animation:1.1s ease-in-out infinite bar}@keyframes flip{0%{transform:rotateY(90deg)scale(.9)}to{transform:rotateY(0)scale(1)}}.flip{animation:.8s cubic-bezier(.2,.8,.3,1) flip}@keyframes swapA{0%,44%{opacity:1}50%,94%{opacity:0}to{opacity:1}}@keyframes swapB{0%,44%{opacity:0}50%,94%{opacity:1}to{opacity:0}}.swapA{animation:swapA var(--breath-duration) ease-in-out infinite}.swapB{opacity:0;animation:swapB var(--breath-duration) ease-in-out infinite}@media (prefers-reduced-motion:reduce){.swapB{display:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
