:root{--bg: #fbefe0;--bg-alt: #f6e3cc;--surface: #fffaf3;--ink: #4b2e1e;--ink-muted: #7c5a44;--line: #e4cdb5;--stitch: #c99b76;--cream-text: #fff6e8;--coral: #e8654f;--coral-deep: #bc4430;--coral-ink: #a93a27;--coral-soft: #fbd9cd;--teal: #2e8c96;--teal-deep: #1f6b74;--teal-soft: #cde9e6;--butter: #f2a93b;--butter-soft: #fbe3b5;--sage-deep: #3e7247;--sage-soft: #ddefd9;--shadow-rest: 0 10px 26px rgba(75, 46, 30, .1);--shadow-hover: 0 16px 34px rgba(75, 46, 30, .16);--ease-craft: cubic-bezier(.22, 1, .36, 1);--bg-2: var(--bg-alt);--surface-warm: var(--butter-soft);--primary: var(--teal-deep);--primary-2: var(--teal);--primary-soft: var(--teal-soft);--accent: var(--coral-deep);--accent-2: var(--coral);--accent-soft: var(--coral-soft);--text: var(--ink);--text-muted: var(--ink-muted);--outline: var(--ink-muted);--shadow: rgba(75, 46, 30, .16)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh;background:radial-gradient(circle at 88% -4%,rgba(251,227,181,.5),transparent 34%),radial-gradient(circle at 4% 96%,rgba(251,217,205,.42),transparent 44%),var(--bg);color:var(--ink);font-family:Nunito,Segoe UI,sans-serif;position:relative}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.06;z-index:0;background-image:radial-gradient(rgba(242,169,59,.5) .7px,transparent .7px);background-position:0 0;background-size:30px 30px}body:after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.05;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)'/%3E%3C/svg%3E")}a{color:inherit}.paper-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-rest)}.section-anchor{scroll-margin-top:120px}@keyframes reveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{box-shadow:0 0 #3e724780}70%{box-shadow:0 0 0 8px #3e724700}to{box-shadow:0 0 #3e724700}}@keyframes wiggle{0%{transform:rotate(0)}30%{transform:rotate(-8deg)}60%{transform:rotate(8deg)}to{transform:rotate(0)}}@keyframes float{0%,to{transform:translateY(-8px)}50%{transform:translateY(8px)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes bounce-in{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.15)}80%{transform:scale(.94)}to{transform:scale(1)}}.reveal-on-scroll{opacity:0;transform:translateY(16px);transition:opacity .55s var(--ease-craft),transform .55s var(--ease-craft);will-change:opacity,transform}.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0)}.sticker{display:inline-flex;align-items:center;gap:6px;font-family:Caveat,cursive;font-weight:700;font-size:1.3rem;line-height:1;padding:6px 14px;border-radius:999px;background:var(--coral-soft);color:var(--coral-ink);transform:rotate(-2deg);box-shadow:0 2px 6px #4b2e1e1f}.sticker--teal{background:var(--teal-soft);color:var(--teal-deep)}.sticker--right{transform:rotate(2deg)}.stitch-border{border:2px dashed var(--stitch);padding:10px;border-radius:20px}.stitch-border--coral{border-color:var(--coral)}.stitch-border--teal{border-color:var(--teal)}.scallop-divider{height:18px;width:100%;background-color:var(--bg);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='18'%3E%3Cpath d='M0 18 L0 9 A14 14 0 0 1 28 9 L28 18 Z' fill='%23000'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='18'%3E%3Cpath d='M0 18 L0 9 A14 14 0 0 1 28 9 L28 18 Z' fill='%23000'/%3E%3C/svg%3E");-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-size:28px 18px;mask-size:28px 18px}.scallop-divider--flip{transform:scaleY(-1)}.hand-underline{position:relative;display:inline-block}.hand-underline>svg{position:absolute;left:0;bottom:-.35em;width:100%;height:.5em;overflow:visible;pointer-events:none}.float{animation:float 7s ease-in-out infinite}.pulse-dot{animation:pulse 2.2s var(--ease-craft) infinite}@media(prefers-reduced-motion:reduce){.reveal-on-scroll{opacity:1;transform:none;transition:opacity .2s linear}.float,.pulse-dot{animation:none}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important}}
