:root{--bg:#FCFAFF;--lav:#EDDEFA;--blue:#B9DCFF;--green:#D2EDBB;--pink:#F9C7E7;--cream:#FFF9ED;--yellow:#FFF0A8;--ink:#292331;--gray:#6B6475;--purple:#7B5AA6;--red:#B4233C}
html,body{background:var(--bg);color:var(--ink);font-family:'Plus Jakarta Sans',system-ui,sans-serif;margin:0}
*{box-sizing:border-box}
h1,h2,h3{letter-spacing:-0.02em}
:focus-visible{outline:3px solid var(--purple);outline-offset:2px;border-radius:12px}
.bg-lav{background:var(--lav)}.bg-sky{background:var(--blue)}.bg-matcha{background:var(--green)}.bg-softpink{background:var(--pink)}.bg-cream{background:var(--cream)}.bg-butter{background:var(--yellow)}.bg-ink{background:var(--ink)}.bg-page{background:var(--bg)}
.text-ink{color:var(--ink)}.text-soft{color:var(--gray)}.text-plum{color:var(--purple)}.text-alert{color:var(--red)}
.border-alert{border-color:var(--red)}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--purple)}
.card{border-radius:20px}
.lift{transition:transform .2s ease,box-shadow .2s ease}
.lift:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(41,35,49,.06)}
.float{animation:float 5s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.fadein{animation:fade .4s ease both}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.bubble{transition:transform .15s ease,background .2s}
.bubble:active{transform:scale(.85)}
.pb-nav{padding-bottom:32px}
@media(min-width:768px){footer{padding-bottom:40px!important}}
@media (prefers-reduced-motion: reduce){.float,.fadein{animation:none}.lift:hover{transform:none}}
@media print{header,nav,footer,.noprint{display:none!important}}