@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Roboto+Slab:wght@500;700&display=swap";:root{color-scheme:dark;font-family:Roboto Slab,Georgia,serif;--ink:#f8f2d0;--green:#63b33b;--deep:#142b18;--shadow:#080b08}*{box-sizing:border-box}html,body,#app{width:100%;min-height:100%;margin:0}body{overflow:hidden;background:#08110b;color:var(--ink)}button{font:inherit}button:focus-visible{outline:4px solid #ffe26a;outline-offset:4px}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(4,8,5,.42),transparent 20%,transparent 63%,rgba(4,8,5,.6)),radial-gradient(circle at 46% 42%,transparent 20%,rgba(0,0,0,.18) 67%,rgba(0,0,0,.7));z-index:1}.dialog-open .vignette{background:#000000a3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.topbar{position:fixed;z-index:3;top:0;left:0;right:0;height:58px;display:flex;align-items:center;gap:12px;padding:8px 18px;background:#090d09e6;border-bottom:3px solid #232923;box-shadow:0 5px 16px #00000059}.topbar strong,.topbar span{display:block}.topbar strong{font-family:"Press Start 2P",monospace;font-size:clamp(.72rem,2vw,1rem)}.topbar span{margin-top:4px;color:#b9c5b8;font-size:.72rem}.block-icon{width:34px;height:34px;background:linear-gradient(#55a23a 0 34%,#744a28 34%);border:3px solid #111;box-shadow:inset -5px -5px #0003}.hero{position:fixed;z-index:2;top:clamp(82px,10vh,110px);left:50%;width:min(900px,94vw);transform:translate(-50%);text-align:center;filter:drop-shadow(0 7px 0 #101210) drop-shadow(0 14px 20px rgba(0,0,0,.7));pointer-events:none}.eyebrow,.card-topline{font-family:"Press Start 2P",monospace;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(.52rem,1.4vw,.8rem);color:#ffe674;margin:0 0 13px}.hero h1{margin:0;line-height:.94;text-transform:uppercase}.hero h1 span,.hero h1 strong{display:block;font-family:"Press Start 2P",monospace;-webkit-text-stroke:clamp(1px,.26vw,3px) #111}.hero h1 span{color:#e1ded1;font-size:clamp(1.55rem,5.2vw,4.5rem);text-shadow:0 .09em 0 #7c7d76,0 .17em 0 #292d29}.hero h1 strong{color:#65b43a;font-size:clamp(1.9rem,6.2vw,5.35rem);text-shadow:0 .09em 0 #347829,0 .17em 0 #153619}.age{margin:18px 0 0;font-family:"Press Start 2P",monospace;font-size:clamp(.72rem,2.1vw,1.12rem)}.age b{color:#7ae44b;font-size:1.7em}.pixel-button{border:4px solid #101510;box-shadow:inset 0 0 0 3px #ffffff29,0 7px #111,0 13px 24px #00000073;color:#fff;font-family:"Press Start 2P",monospace;text-transform:uppercase;cursor:pointer;transition:transform .12s,filter .12s}.pixel-button:hover{filter:brightness(1.14);transform:translateY(-2px)}.pixel-button:active{transform:translateY(5px);box-shadow:inset 0 0 0 3px #ffffff29,0 2px #111}.primary{position:fixed;z-index:4;left:50%;bottom:clamp(68px,10vh,105px);transform:translate(-50%);padding:17px 24px;background:#3c8c34;font-size:clamp(.6rem,1.8vw,.88rem)}.primary:hover{transform:translate(-50%,-2px)}.primary:active{transform:translate(-50%,5px)}.invite-card{position:fixed;z-index:10;top:50%;left:50%;width:min(690px,calc(100vw - 24px));max-height:min(790px,calc(100dvh - 24px));overflow:auto;transform:translate(-50%,-45%) scale(.9);opacity:0;visibility:hidden;padding:clamp(26px,5vw,48px);color:#2e2412;background:linear-gradient(#fff6c7f5,#e0c07bf7),repeating-linear-gradient(0deg,transparent 0 15px,rgba(87,60,16,.07) 16px 17px);border:10px solid #6a4720;outline:5px solid #211407;box-shadow:0 28px 80px #000000d1,inset 0 0 45px #58340a47;transition:.34s cubic-bezier(.2,.8,.2,1)}.invite-card.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}.invite-card:before{content:"";position:absolute;inset:8px;border:3px dashed rgba(80,50,12,.34);pointer-events:none}.close{position:absolute;top:9px;right:13px;border:0;background:none;color:#38230c;font:700 2rem/1 sans-serif;cursor:pointer}.card-topline{color:#4b842e;text-align:center}.invite-card h2{margin:8px 0 14px;text-align:center;font-family:"Press Start 2P",monospace;font-size:clamp(1.04rem,4vw,1.7rem);line-height:1.5}.intro{text-align:center;font-size:1.02rem;line-height:1.55}.details{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0}.details article{display:flex;align-items:center;gap:10px;padding:12px;background:#ffffff4d;border:3px solid rgba(85,54,15,.24)}.details article>span{font-size:1.45rem}.details small,.details b{display:block}.details small{text-transform:uppercase;font-weight:700;color:#56763c;font-size:.75rem}.details b{font-size:.88rem;line-height:1.3}.loot{padding:16px 20px;background:#48702b1f;border-left:6px solid #5a913b}.loot h3{margin:0 0 8px;font-family:"Press Start 2P",monospace;font-size:.72rem}.loot ul{margin:0;padding-left:22px;line-height:1.7}.guest-line,.rsvp{text-align:center}.guest-line{margin-top:22px;font-size:1.08rem}.choice-row{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:22px}.accept,.decline{padding:13px 15px;font-size:.62rem}.accept{background:#398b35}.decline{background:#4d5350}.accepted-message{text-align:center;color:#326c2e;font-weight:700}.accepted-message.negative{color:#655c4b}.controls{position:fixed;z-index:4;right:15px;bottom:54px;display:grid;gap:9px}.controls button{width:44px;height:44px;border:3px solid #111;background:#223a22db;color:#fff;cursor:pointer;font-size:1.1rem;box-shadow:0 4px #0a0d0a}footer{position:fixed;z-index:3;left:50%;bottom:14px;transform:translate(-50%);width:90%;text-align:center;color:#ffffffbd;font-size:.72rem;text-shadow:0 2px 3px #000}@media(max-width:700px){.topbar span{display:none}.hero{top:82px}.details{grid-template-columns:1fr}.invite-card{padding:30px 22px;border-width:7px}.intro{font-size:.94rem}.loot{padding:14px}.controls{bottom:15px}footer{display:none}.primary{bottom:28px}}@media(max-height:700px){.hero{top:72px}.eyebrow{display:none}.hero .age{margin-top:10px}.primary{bottom:24px}footer{display:none}.topbar{height:52px}.invite-card{padding-top:28px}}@media(max-width:440px){.hero h1 span{font-size:1.35rem}.hero h1 strong{font-size:1.9rem}.choice-row{display:grid}.choice-row button{width:100%}.topbar{padding-left:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.pixel-button:disabled{opacity:.55;cursor:wait;filter:grayscale(.3);transform:none!important}.invite-card{background-color:#f1dda0}.hero{filter:drop-shadow(0 6px 0 #101210) drop-shadow(0 12px 18px rgba(0,0,0,.62))}
