*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}body:before{content:"";z-index:-1;background:radial-gradient(60rem 40rem at 78% -8%, color-mix(in oklch, var(--accent) 22%, transparent), transparent 60%), radial-gradient(52rem 38rem at 4% 8%, color-mix(in oklch, var(--primary) 13%, transparent), transparent 58%);pointer-events:none;position:fixed;inset:0}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);margin:0}a{color:inherit;text-decoration:none}p{margin:0}.container{width:100%;max-width:1180px;margin-inline:auto;padding-inline:24px}.container--narrow{max-width:880px}.eyebrow{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--primary);margin:0 0 14px}.lede{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--muted-foreground)}.handwritten{font-family:var(--font-handwriting);color:var(--accent)}.nav{z-index:50;background:color-mix(in oklch, var(--background) 82%, transparent);backdrop-filter:blur(14px)saturate(1.2);border-bottom:1px solid color-mix(in oklch, var(--border) 70%, transparent);position:sticky;top:0}.nav__inner{align-items:center;gap:24px;height:68px;display:flex}.brand{font-family:var(--font-serif);font-size:1.4rem;font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);align-items:center;gap:12px;display:inline-flex}.brand img{border-radius:11px;width:34px;height:34px}.nav__links{align-items:center;gap:28px;margin-left:auto;display:none}.nav__links a{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--muted-foreground);transition:color var(--duration-fast) var(--ease-out)}.nav__links a:hover{color:var(--foreground)}.nav__cta{margin-left:auto}@media (width>=880px){.nav__links{display:flex}.nav__cta{margin-left:0}}.btn{height:44px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-semibold);border-radius:var(--radius-full);cursor:pointer;transition:transform var(--duration-base) var(--ease-out), background var(--duration-base), box-shadow var(--duration-base);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 22px;display:inline-flex}.btn--primary{background:var(--primary);color:var(--primary-foreground);box-shadow:var(--shadow-md)}.btn--primary:hover{background:color-mix(in oklch, var(--primary) 92%, black);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn--primary:active{transform:translateY(1px)}.btn--outline{background:color-mix(in oklch, var(--background) 90%, transparent);color:var(--foreground);border-color:color-mix(in oklch, var(--border) 80%, transparent);box-shadow:var(--shadow-sm)}.btn--outline:hover{background:color-mix(in oklch, var(--accent) 32%, transparent);transform:translateY(-2px)}.btn--sm{height:38px;padding:0 16px}.section{padding-block:clamp(56px,9vw,104px)}.section--tight{padding-block:clamp(40px,6vw,72px)}.section__head{max-width:660px;margin-bottom:44px}.section__head h2{font-size:var(--text-4xl)}.section__head p{font-size:var(--text-lg);color:var(--muted-foreground);margin-top:16px}.divider{background:color-mix(in oklch, var(--border) 65%, transparent);border:0;height:1px}.hero{text-align:center;padding-block:clamp(72px,12vw,140px) clamp(48px,7vw,88px)}.hero h1{font-size:clamp(2.6rem, 7vw, var(--text-6xl));max-width:16ch;margin-inline:auto}.hero .lede{max-width:56ch;margin:22px auto 0}.hero__actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:34px;display:flex}.pill-row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:40px;display:flex}.pill{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;border-radius:var(--radius-full);background:color-mix(in oklch, var(--card) 70%, transparent);border:1px solid color-mix(in oklch, var(--border) 70%, transparent);color:var(--muted-foreground);backdrop-filter:blur(6px);align-items:center;gap:8px;padding:8px 15px;display:inline-flex}.grid{gap:22px;display:grid}.grid--2,.grid--3{grid-template-columns:1fr}.grid--4{grid-template-columns:repeat(2,1fr)}@media (width>=720px){.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}}.card{border-radius:var(--wedding-panel-radius);box-shadow:var(--wedding-shadow-soft);border:1px solid color-mix(in oklch, var(--border) 80%, transparent);background:linear-gradient(to bottom, var(--card), color-mix(in oklch, var(--card) 92%, transparent));backdrop-filter:blur(6px);transition:transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base);padding:26px}.card--link:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.card h3{font-size:var(--text-xl);margin-bottom:8px}.card p{font-size:var(--text-sm);color:var(--muted-foreground);line-height:var(--leading-relaxed)}.card__icon{background:color-mix(in oklch, var(--primary) 14%, transparent);width:46px;height:46px;color:var(--primary);border-radius:14px;justify-content:center;align-items:center;margin-bottom:18px;display:inline-flex}.card__icon svg{width:22px;height:22px}.card__more{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--primary);align-items:center;gap:6px;margin-top:18px;display:inline-flex}.swatch{border-radius:var(--radius-lg);border:1px solid color-mix(in oklch, var(--border) 70%, transparent);background:var(--card);overflow:hidden}.swatch__chip{height:92px}.swatch__meta{padding:12px 14px}.swatch__name{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.swatch__val{font-family:var(--font-mono);color:var(--muted-foreground);word-break:break-all;margin-top:4px;font-size:11px}.token-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.token-table th,.token-table td{text-align:left;border-bottom:1px solid color-mix(in oklch, var(--border) 60%, transparent);padding:12px 14px}.token-table th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--muted-foreground);font-weight:var(--weight-semibold)}.token-table code,.mono{font-family:var(--font-mono);color:var(--primary);font-size:.82em}.footer{border-top:1px solid color-mix(in oklch, var(--border) 65%, transparent);margin-top:32px;padding-block:48px}.footer__inner{font-size:var(--text-sm);color:var(--muted-foreground);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px 32px;display:flex}.footer__brand{flex-direction:column;gap:4px;display:flex}.footer__copy{font-size:var(--text-xs);color:color-mix(in oklch, var(--muted-foreground) 80%, transparent)}.footer__links{flex-wrap:wrap;align-items:center;gap:12px 22px;display:flex}.footer__links a{color:var(--muted-foreground);transition:color .18s var(--ease-out);text-decoration:none}.footer__links a:hover{color:var(--primary)}@media (prefers-reduced-motion:no-preference){.reveal{opacity:0;animation:revealUp .52s var(--ease-out) forwards;transform:translateY(14px)}@keyframes revealUp{to{opacity:1;transform:none}}}
