:root{--paper:#efead8;--paper-2:#f5f1e3;--linen:#d9d2b6;--cream:#faf6e8;--forest:#2f3a1f;--forest-2:#3e4b2a;--olive:#5c6b3b;--sage:#7a8b5c;--sage-soft:#a8b689;--thread:#b8a87a;--ink:#1f2712;--font-display:"Lora", Georgia, "Times New Roman", serif;--font-body:"Nunito Sans", system-ui, -apple-system, sans-serif;color:var(--forest);background:var(--paper);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100svh;margin:0;overflow:hidden}button{font-family:inherit}@keyframes fade-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;animation:.9s cubic-bezier(.2,.7,.2,1) forwards fade-rise;animation-delay:var(--rev-delay,0s)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;animation:none;transform:none}}.page{background:radial-gradient(ellipse at 20% 10%, #7a8b5c2e, transparent 55%), radial-gradient(ellipse at 85% 90%, #5c6b3b29, transparent 55%), var(--paper);width:100vw;height:100svh;color:var(--forest);grid-template-rows:auto 1fr auto auto;padding:clamp(.9rem,2vw,1.6rem) clamp(1rem,3vw,2.5rem) 0;display:grid;position:relative;overflow:hidden}.page:before{content:"";opacity:.55;mix-blend-mode:multiply;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.18  0 0 0 0 0.22  0 0 0 0 0.12  0 0 0 0.08 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:absolute;inset:0}.page>*{z-index:1;position:relative}.header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand-mark{align-items:center;gap:.75rem;display:flex}.brand-mark img{filter:drop-shadow(0 4px 6px #2f3a1f33);width:clamp(56px,6vw,76px);height:auto;display:block}.brand-mark span{font-family:var(--font-display);letter-spacing:.22em;text-transform:uppercase;color:var(--forest-2);font-size:clamp(.95rem,1.2vw,1.1rem)}.status-pill{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);letter-spacing:.24em;text-transform:uppercase;color:var(--forest-2);background:#f5f1e3b3;border:1px dashed #3e4b2a66;border-radius:999px;align-items:center;gap:.5rem;padding:.4rem .9rem;font-size:.72rem;display:inline-flex}.status-pill .dot{background:var(--sage);border-radius:50%;width:7px;height:7px;animation:2.2s ease-out infinite pulse;box-shadow:0 0 #7a8b5c99}@keyframes pulse{0%{box-shadow:0 0 #7a8b5c8c}70%{box-shadow:0 0 0 10px #7a8b5c00}to{box-shadow:0 0 #7a8b5c00}}.main{grid-template-rows:auto auto auto auto;align-content:center;justify-items:center;gap:clamp(.6rem,1.4vh,1.2rem);min-height:0;display:grid}.headline{text-align:center;justify-items:center;gap:.5rem;display:grid}.brand{font-family:var(--font-display);letter-spacing:-.02em;color:var(--forest);margin:0;font-size:clamp(2.4rem,6.4vw,4.6rem);font-style:italic;font-weight:500;line-height:.95}.brand .amp{color:var(--olive);font-style:italic}.tagline{letter-spacing:.42em;text-transform:uppercase;color:var(--olive);align-items:center;gap:.9rem;margin:0;font-size:clamp(.7rem,1.1vw,.82rem);display:inline-flex}.tagline .rule{opacity:.5;background:currentColor;width:clamp(28px,4vw,56px);height:1px;display:inline-block}.caption{font-family:var(--font-display);color:var(--forest-2);opacity:.75;letter-spacing:.04em;margin:0;font-size:clamp(.8rem,1.05vw,.95rem)}.stage{aspect-ratio:16/9;width:min(68vw,680px);max-height:42svh;position:relative}.frame{background:linear-gradient(135deg, var(--linen) 0%, var(--paper-2) 55%, var(--linen) 100%);border-radius:22px;padding:10px;position:absolute;inset:0;box-shadow:0 30px 60px -30px #2f3a1f73,0 10px 25px -15px #2f3a1f59,inset 0 0 0 1px #3e4b2a2e}.frame .mat{background:var(--forest);border-radius:14px;width:100%;height:100%;position:relative;inset:0;overflow:hidden}.stitch{border:1.5px dashed var(--thread);pointer-events:none;z-index:3;opacity:.85;border-radius:10px;position:absolute;inset:6px}.frame video{object-fit:cover;pointer-events:none;filter:saturate(.95)contrast(.98);width:100%;height:100%;transition:filter 1.2s;display:block}.frame.is-frozen video{filter:saturate(.85)contrast(.96)sepia(.08)}.freeze-vignette{opacity:0;pointer-events:none;z-index:2;background:radial-gradient(#0000 55%,#2f3a1f59 100%),linear-gradient(#faf6e800 60%,#faf6e82e 100%);transition:opacity 1.2s;position:absolute;inset:0}.frame.is-frozen .freeze-vignette{opacity:1}.frame .mat:after{content:"";pointer-events:none;background:radial-gradient(#0000 60%,#2f3a1f38 100%);position:absolute;inset:0}.tag{filter:drop-shadow(0 4px 6px #2f3a1f40);z-index:4;position:absolute;top:-14px;right:18px;transform:rotate(-6deg)}.wreath{pointer-events:none;z-index:2;--tilt-x:0deg;--tilt-y:0deg;position:absolute;inset:-12% -10%}.wreath .leaf{width:clamp(60px,8.5vw,130px);height:clamp(60px,8.5vw,130px);color:var(--olive);filter:drop-shadow(0 6px 8px #2f3a1f33);transform-origin:50%;transform:rotate(var(--rot,0deg)) scale(var(--scale,1));transition:transform .5s cubic-bezier(.2,.7,.2,1);animation:8s ease-in-out infinite sway;position:absolute}.stage .wreath .leaf{transform:rotate(calc(var(--rot,0deg) + var(--tilt-x,0deg))) scale(var(--scale,1)) translate(calc(var(--tilt-x,0deg) * .3), calc(var(--tilt-y,0deg) * .3))}.wreath .leaf.sage{color:var(--sage)}.wreath .leaf.deep{color:var(--forest-2)}@keyframes sway{0%,to{filter:drop-shadow(0 6px 8px #2f3a1f33)}50%{filter:drop-shadow(0 10px 12px #2f3a1f40)}}.petals{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.petals span{background:var(--sage-soft);opacity:0;border-radius:50% 20%;width:10px;height:10px;animation:linear infinite drift;position:absolute;bottom:-20px}@keyframes drift{0%{opacity:0;transform:translateY(0)rotate(0)}15%{opacity:.55}to{opacity:0;transform:translateY(-110svh)rotate(360deg)}}.notify{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#faf6e8d9;border:1px solid #3e4b2a47;border-radius:14px;align-items:center;gap:.5rem;min-width:min(440px,90vw);padding:.4rem .5rem .4rem .9rem;display:flex;position:relative;box-shadow:0 8px 20px -12px #2f3a1f59}.notify.hangtag{background:linear-gradient(#faf6e8eb,#d9d2b68c);border-radius:12px;padding-left:2.4rem}.notify.hangtag:before{content:"";border:1px dashed var(--thread);pointer-events:none;border-radius:8px;position:absolute;inset:5px}.notify .punch{z-index:2;position:absolute;top:50%;left:-8px;transform:translateY(-50%)rotate(-8deg)}.notify input{color:var(--forest);z-index:1;background:0 0;border:0;outline:none;flex:1;padding:.55rem .4rem;font-family:inherit;font-size:.95rem;position:relative}.notify input::placeholder{color:#3e4b2a80}.notify button{background:var(--forest);color:var(--paper-2);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;font-size:.78rem;font-family:var(--font-display);z-index:1;border:0;border-radius:10px;align-items:center;gap:.4rem;padding:.6rem 1.15rem;transition:background .2s,transform .2s;display:inline-flex;position:relative}.notify button:hover{background:var(--olive);transform:translateY(-1px)}.notify.done{font-family:var(--font-display);color:var(--forest-2);justify-content:center;padding:.7rem 1.4rem;font-size:.95rem;font-style:italic}.grass-wrap{pointer-events:none;z-index:2;height:clamp(38px,6svh,56px);margin:0 calc(-1*clamp(1rem,3vw,2.5rem));position:relative}.grass{position:absolute;inset:0}.grass-svg{width:100%;height:100%;display:block}.blade{transform-box:fill-box;animation:ease-in-out infinite grass-sway}@keyframes grass-sway{0%,to{transform:rotate(calc(var(--lean,0deg) * -.4))}50%{transform:rotate(calc(var(--lean,0deg) * .9))}}.footer{letter-spacing:.18em;text-transform:uppercase;color:#3e4b2aa6;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0 .8rem;font-size:.72rem;display:flex}.footer .dots{color:var(--sage);letter-spacing:.5em}@media (width<=640px){.stage{width:92vw;max-height:38svh}.footer{font-size:.6rem}.status-pill{font-size:.62rem}.brand-mark span{display:none}.tagline{letter-spacing:.32em}.tagline .rule{width:20px}}
