:root{--bg:#0d0221;--panel:#1a1a2e;--fg:#f4f1de;--primary:#ff2e63;--secondary:#08f7fe;--accent:#f9c80e;--success:#21e6a1;--border:#3a2f6b;--font-display:"Press Start 2P", monospace;--font-body:"VT323", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--fg);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{overflow-x:hidden}body{min-height:100svh;font-family:var(--font-body);background:var(--bg);margin:0;font-size:22px;overflow-x:hidden}h1,h2,h3,button{font-family:var(--font-display)}button{cursor:pointer;font-size:14px}a{color:var(--secondary)}.inline-icon{flex-shrink:0;width:18px;height:18px}.game-back-btn{z-index:10;width:32px;height:32px;color:var(--secondary);border:2px solid var(--border);background:#1a1a2ed9;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;left:0}.game-back-btn:hover{border-color:var(--secondary)}#root{flex-direction:column;min-height:100svh;display:flex}.bg-grid{z-index:-1;background:radial-gradient(at 50% 20%,#33146b 0%,#1a0b3d 45%,#0d0221 100%);position:fixed;inset:0;overflow:hidden}.stars{opacity:.5;background-image:radial-gradient(1.5px 1.5px at 10% 20%,#fff,#0000),radial-gradient(1px 1px at 25% 45%,#fff,#0000),radial-gradient(2px 2px at 40% 15%,#fff,#0000),radial-gradient(1px 1px at 60% 30%,#fff,#0000),radial-gradient(1.5px 1.5px at 75% 10%,#fff,#0000),radial-gradient(1px 1px at 85% 40%,#fff,#0000),radial-gradient(1.5px 1.5px at 15% 60%,#fff,#0000),radial-gradient(1px 1px at 95% 22%,#fff,#0000);background-repeat:no-repeat;animation:3.5s ease-in-out infinite alternate twinkle;position:absolute;inset:0}@keyframes twinkle{0%{opacity:.3}to{opacity:.7}}.bg-grid:before{content:"";background:linear-gradient(180deg, var(--accent), var(--primary));width:200px;height:200px;box-shadow:0 0 90px 10px var(--primary);opacity:.55;filter:blur(1px);border-radius:50%;position:absolute;top:12%;left:50%;transform:translate(-50%)}.bg-grid:after{content:"";background-image:linear-gradient(var(--secondary) 1px, transparent 1px), linear-gradient(90deg, var(--secondary) 1px, transparent 1px);opacity:.3;background-size:56px 40px;height:60%;animation:6s linear infinite grid-scroll;position:absolute;bottom:-10%;left:-60%;right:-60%;transform:perspective(280px)rotateX(62deg)}@keyframes grid-scroll{0%{background-position:0 0}to{background-position:0 40px}}.mute-toggle{z-index:70;width:36px;height:36px;color:var(--secondary);border:2px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1a1a2ed9;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex;position:fixed;top:14px;right:14px}.mute-toggle:hover{border-color:var(--secondary)}.cabinet{flex-direction:column;flex:1;width:100%;max-width:720px;margin:0 auto;padding:32px 20px 110px;display:flex;position:relative}.cabinet.no-nav{padding-bottom:32px}.cabinet.no-nav .memory-game{height:calc(100dvh - 64px)}.cabinet:before{content:"";pointer-events:none;z-index:50;mix-blend-mode:overlay;background:repeating-linear-gradient(#00000026 0 1px,#0000 1px 3px);position:fixed;inset:0}.screen{flex-direction:column;flex:1;gap:20px;animation:.35s both screen-in;display:flex;position:relative}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.nav{z-index:60;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:2px solid var(--secondary);background:#1a1a2ee6;justify-content:center;gap:8px;padding:12px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 24px #08f7fe26}.nav-btn{min-width:0;max-width:150px;color:var(--fg);border:2px solid var(--border);text-align:center;white-space:nowrap;text-overflow:clip;background:#0d022199;border-radius:6px;flex-direction:column;flex:1 1 0;align-items:center;gap:4px;padding:10px 2px;font-size:9px;line-height:1.4;transition:transform .15s,box-shadow .15s,color .15s,border-color .15s,background .15s;display:flex;overflow:hidden}.nav-icon{width:20px;height:20px}.nav-btn:hover{border-color:var(--secondary);transform:translateY(-2px)}.nav-btn:active{transform:translateY(1px)}.nav-btn.active{border-color:var(--accent);color:var(--accent);box-shadow:0 0 12px var(--accent)}.nav-btn-primary{border-color:var(--primary);color:var(--primary);flex:1.1 1 0;box-shadow:0 0 8px #ff2e6359}.nav-btn-primary.active{border-color:var(--primary);color:var(--primary);box-shadow:0 0 14px #ff2e6380}.intro{text-align:center;justify-content:center;align-items:center;gap:40px;min-height:70svh}.intro-eyebrow{color:var(--secondary);font-family:var(--font-display);letter-spacing:2px;filter:drop-shadow(0 0 8px var(--secondary));font-size:11px}.intro-title{background:linear-gradient(180deg, var(--accent) 10%, var(--primary) 90%);color:#0000;filter:drop-shadow(0 0 16px #ff2e6399);-webkit-background-clip:text;background-clip:text;margin:0;font-size:32px;line-height:1.9;animation:3.4s ease-in-out infinite title-flicker}.intro-title .amp{color:var(--secondary);-webkit-text-fill-color:var(--secondary);filter:drop-shadow(0 0 10px var(--secondary));margin:12px 0;font-size:18px;display:block}@keyframes title-flicker{0%,92%,to{opacity:1}93%{opacity:.7}94%{opacity:1}96%{opacity:.85}}.invite-banner{border:3px solid var(--success);background:#21e6a114;border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:14px 22px;animation:.5s cubic-bezier(.2,.8,.3,1.4) 1.2s both banner-pop;display:flex;box-shadow:0 0 16px #21e6a159}.invite-tag{font-family:var(--font-display);letter-spacing:1.5px;color:var(--success);font-size:9px}.invite-text{font-family:var(--font-display);letter-spacing:1px;color:var(--fg);font-size:12px}@keyframes banner-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.loading-bar{border:2px solid var(--secondary);border-radius:4px;width:220px;height:20px;padding:3px;box-shadow:0 0 10px #08f7fe4d}.loading-fill{background:linear-gradient(90deg, var(--secondary), var(--accent));width:0%;height:100%;animation:1.4s steps(20,end) forwards load}@keyframes load{to{width:100%}}.start-btn{background:var(--panel);color:var(--accent);border:3px solid var(--accent);box-shadow:0 0 16px var(--accent);border-radius:6px;padding:16px 28px;font-size:14px;animation:1s step-end infinite blink}.start-btn:hover{background:var(--accent);color:var(--bg)}@keyframes blink{50%{opacity:.5}}.pixel-cat{position:relative}.pixel-cat-cell{position:absolute}.home{text-align:center;justify-content:center;align-items:center;gap:12px;min-height:calc(100dvh - 142px);padding-top:16px}.title{background:linear-gradient(180deg, var(--accent) 10%, var(--primary) 90%);color:#0000;filter:drop-shadow(0 0 14px #ff2e6399);-webkit-background-clip:text;background-clip:text;margin:0;font-size:30px;line-height:1.9}.amp{color:var(--secondary);-webkit-text-fill-color:var(--secondary);filter:drop-shadow(0 0 10px var(--secondary));margin:10px 0;font-size:18px;display:block}.date{color:var(--fg);letter-spacing:1px;font-size:26px}.live{color:var(--success);font-family:var(--font-display);text-shadow:0 0 10px var(--success)}.score-board{gap:12px;display:flex}.score-digit{background:linear-gradient(180deg, var(--panel), #0f0f24);border:2px solid var(--border);border-radius:6px;flex-direction:column;align-items:center;gap:8px;min-width:64px;padding:14px 10px;display:flex;box-shadow:inset 0 0 12px #00000080,0 0 10px #08f7fe26}.score-digit .value{font-family:var(--font-display);color:var(--secondary);text-shadow:0 0 6px var(--secondary), 0 0 14px var(--secondary);font-size:22px}.score-digit .label{color:var(--fg);opacity:.65;letter-spacing:1px;font-size:13px}.walk-lane{flex-direction:column;flex-shrink:0;gap:4px;width:100%;display:flex}.cat-row{width:100%;height:34px;position:relative;overflow:hidden}.walking-cat{animation:7s linear infinite walk-across,.28s ease-in-out infinite alternate walk-bob;position:absolute;bottom:0}.cat-groom{animation-delay:0s,0s}.cat-bride{animation-delay:-1.2s,-.14s}.cat-pet{animation-delay:-2.4s,-.08s}@keyframes walk-across{0%{left:-70px}to{left:100%}}@keyframes walk-bob{0%{transform:translateY(0)}to{transform:translateY(-3px)}}.donations-link{color:var(--primary);border:2px solid var(--primary);font-family:var(--font-display);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:8px;padding:10px 14px;font-size:9px;transition:transform .15s;animation:1.6s ease-in-out infinite donation-pulse;display:inline-flex}.donations-link:hover{transform:translateY(-2px)}.donations-link:active{transform:translateY(1px)}@keyframes donation-pulse{0%,to{border-color:var(--primary);box-shadow:0 0 8px #ff2e634d}50%{border-color:var(--accent);box-shadow:0 0 20px #f9c80eb3}}.donations-arrow{color:var(--primary);display:inline-block}.donations-arrow.left{animation:1s ease-in-out infinite arrow-bounce-left}.donations-arrow.right{animation:1s ease-in-out infinite arrow-bounce-right}@keyframes arrow-bounce-left{0%,to{transform:translate(0)}50%{transform:translate(4px)}}@keyframes arrow-bounce-right{0%,to{transform:translate(0)}50%{transform:translate(-4px)}}.screen-title{text-align:center;color:var(--accent);letter-spacing:1px;filter:drop-shadow(0 0 10px #f9c80e80);margin:0;font-size:20px}.stage-card{border:2px solid var(--border);background:linear-gradient(160deg,#1a1a2ee6,#0d0221e6);border-radius:8px;padding:20px;box-shadow:0 0 16px #08f7fe14}.stage-card:nth-of-type(2){border-color:var(--secondary)}.stage-card h2{color:var(--secondary);letter-spacing:1px;margin:0 0 12px;font-size:15px}.stage-card .time{color:var(--accent);text-shadow:0 0 8px #f9c80e80;align-items:center;gap:8px;margin:0 0 6px;font-size:24px;display:flex}.stage-card p{margin:0 0 4px;font-size:20px}.address{opacity:.75}.card-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.map-link{font-family:var(--font-display);color:var(--secondary);border:2px solid var(--secondary);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:10px 14px;font-size:10px;text-decoration:none;transition:box-shadow .15s,transform .15s;display:inline-flex}.map-link:hover{box-shadow:0 0 12px var(--secondary);transform:translateY(-2px)}.stepper{align-items:center;gap:10px;display:flex}.stepper-btn{background:var(--panel);width:36px;height:36px;color:var(--secondary);border:3px solid var(--border);font-family:var(--font-display);cursor:pointer;border-radius:6px;flex-shrink:0;font-size:16px;line-height:1;transition:border-color .15s,box-shadow .15s,transform .1s}.stepper-btn:hover:not(:disabled){border-color:var(--secondary);box-shadow:0 0 10px #08f7fe59}.stepper-btn:active:not(:disabled){transform:translateY(1px)}.stepper-btn:disabled{opacity:.35;cursor:default}.stepper-value{text-align:center;min-width:36px;font-family:var(--font-display);color:var(--accent);text-shadow:0 0 8px #f9c80e80;font-size:16px}.rsvp{gap:12px}.rsvp .screen-title{padding-right:40px;font-size:15px}.rsvp-form{flex-direction:column;gap:12px;display:flex}.rsvp-form label,.rsvp-form .field{color:var(--secondary);flex-direction:column;gap:4px;font-size:14px;display:flex}.children-ages{border:3px solid var(--border);border-radius:6px;flex-wrap:wrap;gap:14px;padding:10px;display:flex}.children-ages-title{font-family:var(--font-display);color:var(--secondary);letter-spacing:.5px;flex-basis:100%;font-size:10px}.child-age{flex-direction:column;align-items:center;gap:4px;display:flex}.child-age-label{font-family:var(--font-display);color:var(--secondary);letter-spacing:.5px;font-size:10px}.label-with-icon{align-items:center;gap:6px;display:inline-flex}.rsvp-form input[type=text],.rsvp-form input[type=number],.rsvp-form textarea{font-family:var(--font-body);background:var(--panel);border:3px solid var(--border);color:var(--fg);border-radius:6px;padding:7px 8px;font-size:18px;transition:border-color .15s,box-shadow .15s}.rsvp-form input[type=text]:focus,.rsvp-form input[type=number]:focus,.rsvp-form textarea:focus{border-color:var(--secondary);outline:none;box-shadow:0 0 10px #08f7fe66}.attending{border:3px solid var(--border);border-radius:6px;padding:8px 10px 10px}.attending legend{color:var(--secondary);padding:0 6px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.toggle-group{gap:12px;display:flex}.toggle-option{text-align:center;border:3px solid var(--border);color:var(--fg);font-family:var(--font-display);cursor:pointer;border-radius:6px;flex:1;padding:8px;font-size:12px;transition:border-color .15s,color .15s,box-shadow .15s}.toggle-option:hover{border-color:var(--secondary)}.visually-hidden:checked+.toggle-option{border-color:var(--accent);color:var(--accent);box-shadow:0 0 12px var(--accent)}.visually-hidden:focus-visible+.toggle-option{outline:2px solid var(--secondary);outline-offset:2px}.submit-hint{text-align:center;color:var(--secondary);margin:0;font-size:13px}.submit-group{gap:12px;display:flex}.submit-btn{background:var(--primary);color:var(--bg);border:3px solid var(--border);box-shadow:0 0 10px var(--primary);border-radius:6px;flex:1;padding:12px;font-size:12px;transition:transform .15s,box-shadow .15s,background .15s}.submit-btn:hover{background:var(--accent);box-shadow:0 0 14px var(--accent);transform:translateY(-2px)}.submit-btn:active{transform:translateY(1px)}.game-select{text-align:center;justify-content:center;align-items:center;gap:20px}.game-select .screen-title{font-size:16px}.game-select-hint{color:var(--fg);opacity:.7;margin:0;font-size:16px}.cartridge-grid{justify-content:center;gap:28px;margin-top:16px;display:flex}.cartridge{border:3px solid var(--border);background:linear-gradient(180deg, var(--panel), #0f0f24);cursor:pointer;border-radius:10px 10px 6px 6px;flex-direction:column;justify-content:flex-end;align-items:center;gap:12px;width:130px;height:170px;padding:16px 10px;transition:transform .15s,box-shadow .15s;display:flex;position:relative}.cartridge:before{content:"";border:3px solid var(--border);background:inherit;border-bottom:none;border-radius:6px 6px 0 0;width:50px;height:16px;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.cartridge:hover{transform:translateY(-4px)}.cartridge:active{transform:translateY(-1px)}.cartridge-memory,.cartridge-memory:before{border-color:var(--secondary)}.cartridge-memory:hover{box-shadow:0 0 18px #08f7fe80}.cartridge-snake,.cartridge-snake:before{border-color:var(--success)}.cartridge-snake:hover{box-shadow:0 0 18px #21e6a180}.cartridge-icon{width:40px;height:40px}.cartridge-memory .cartridge-icon{color:var(--secondary)}.cartridge-snake .cartridge-icon{color:var(--success)}.cartridge-label{font-family:var(--font-display);color:var(--fg);background:#0006;border-radius:4px;width:100%;padding:6px 8px;font-size:12px}.memory-game{text-align:center;align-items:center;gap:10px;height:calc(100dvh - 142px);min-height:0}.memory-game .screen-title{font-size:16px}.moves{min-height:44px;color:var(--accent);text-align:center;margin:0;font-size:16px}.moves.is-win{font-family:var(--font-display);color:var(--success);font-size:12px;line-height:1.6}.win-badge{vertical-align:middle;align-items:center;gap:4px;display:inline-flex}.grid{flex:1;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:420px;min-height:0;display:grid}.card-slot{perspective:600px;background:0 0;border:none;width:100%;height:100%;padding:0}.card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.7,.3,1);position:relative}.card-inner.flipped{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;border:3px solid var(--border);background:var(--panel);color:var(--secondary);font-family:var(--font-display);border-radius:6px;justify-content:center;align-items:center;font-size:22px;display:flex;position:absolute;inset:0;overflow:hidden}.card-front{transform:rotateY(180deg)}.card-front img{object-fit:contain;width:100%;height:100%}.card-slot.matched .card-face{border-color:var(--success);box-shadow:0 0 10px var(--success)}.restart-btn{background:var(--panel);color:var(--fg);border:3px solid var(--border);padding:10px;font-size:10px}.snake{text-align:center;align-items:center;gap:10px;height:calc(100dvh - 142px);min-height:0}.snake .screen-title{font-size:16px}.snake-grid{background:var(--panel);border:2px solid var(--border);border-radius:6px;flex:1;grid-template-rows:repeat(15,1fr);grid-template-columns:repeat(11,1fr);gap:1px;width:100%;max-width:320px;min-height:0;padding:3px;display:grid;position:relative}.snake-cell{border-radius:1px}.snake-cell.body{background:var(--secondary);box-shadow:0 0 4px var(--secondary)}.snake-cell.head{background:var(--accent);box-shadow:0 0 6px var(--accent)}.snake-cell.food{background:var(--primary);box-shadow:0 0 6px var(--primary);border-radius:50%}.snake-overlay{font-family:var(--font-display);color:var(--primary);background:#0d0221d9;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:16px;display:flex;position:absolute;inset:0}.snake-overlay-score{color:var(--accent);font-size:12px}.dpad{grid-template-rows:repeat(3,48px);grid-template-columns:repeat(3,48px);gap:6px;display:grid}.dpad-btn{background:var(--panel);color:var(--secondary);border:3px solid var(--border);cursor:pointer;border-radius:6px;font-size:16px;transition:border-color .15s,transform .1s}.dpad-btn:hover{border-color:var(--secondary)}.dpad-btn:active{transform:translateY(1px)}.dpad-btn.up{grid-area:1/2}.dpad-btn.left{grid-area:2/1}.dpad-btn.right{grid-area:2/3}.dpad-btn.down{grid-area:3/2}.donations{gap:16px;padding-bottom:24px}.donations-message{color:var(--fg);text-align:center;white-space:pre-line;margin:0;padding:0 6px;font-size:19px;line-height:1.45}.charity-list{flex-direction:column;gap:14px;display:flex}.charity-card{border:2px solid var(--border);background:linear-gradient(160deg,#1a1a2ee6,#0d0221e6);border-radius:8px;padding:16px}.charity-card h2{color:var(--secondary);letter-spacing:.3px;margin:0 0 10px;font-size:11px;line-height:1.6}.charity-bank,.charity-account{opacity:.85;margin:0 0 4px;font-size:17px}.charity-iban{font-family:var(--font-body);letter-spacing:.5px;color:var(--accent);word-break:break-all;margin:8px 0 4px;font-size:19px}.charity-bic{opacity:.7;margin:0 0 12px;font-size:16px}.copy-btn{font-family:var(--font-display);background:var(--panel);color:var(--fg);border:2px solid var(--border);cursor:pointer;border-radius:6px;padding:10px 14px;font-size:10px;transition:border-color .15s,color .15s}.copy-btn:hover{border-color:var(--secondary);color:var(--secondary)}
