@import "https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Noto+Sans+SC:wght@400;600;800&display=swap";:root,[data-theme=blue-night]{--theme-background:#1748c7;--theme-background-deep:#071d75;--theme-surface:#245bd1;--theme-surface-soft:#6f9df2;--theme-primary:#1643a2;--theme-primary-dark:#09266e;--theme-secondary:#64a8ff;--theme-accent:#f6c453;--theme-highlight:#ef6da7;--theme-text:#fff8e9;--theme-text-muted:#c8d8ff;--theme-border:#8fb7ff;--theme-shadow:#03113e;--theme-success:#40d782;--theme-paper:#fff6e4;--theme-paper-dark:#e6d2ad;--theme-paper-text:#173a8f;--theme-paper-muted:#6d78a0;--theme-line:#b8cdf4;--theme-on-primary:#fff;--theme-on-accent:#352400;--theme-focus:#ffcf5f;--theme-danger:#d8325f;--theme-overlay-soft:#ffffff18;--theme-overlay-medium:#fff5;--theme-overlay-strong:#ffffffb8;--theme-shadow-soft:#03113e88;--theme-cake:#d9974c;--theme-cake-light:#fff0c4;--theme-candle:#fff9ed;--theme-flame:#ffd35a;--theme-capsule-a:#2487f1;--theme-capsule-b:#f0bc2f;--theme-capsule-c:#ef668e;--theme-capsule-d:#39c868;--theme-glass:#bde7ff99;--theme-glass-shine:#fff9}[data-theme=pink-sunset]{--theme-background:#ca4c86;--theme-background-deep:#61164f;--theme-surface:#b63d79;--theme-surface-soft:#f195bd;--theme-primary:#9a2d68;--theme-primary-dark:#54113f;--theme-secondary:#ff9cc8;--theme-accent:#ffd36b;--theme-highlight:#75c9ee;--theme-text:#fff7f3;--theme-text-muted:#ffd5e6;--theme-border:#ffacd0;--theme-shadow:#3d0a31;--theme-success:#61ce9c;--theme-paper:#fff3ee;--theme-paper-dark:#e9c6c7;--theme-paper-text:#822654;--theme-paper-muted:#9b6a80;--theme-line:#edb4cb;--theme-on-primary:#fff;--theme-on-accent:#412800;--theme-focus:#ffe078;--theme-danger:#bd285a;--theme-overlay-soft:#ffffff18;--theme-overlay-medium:#fff5;--theme-overlay-strong:#ffffffb8;--theme-shadow-soft:#3d0a3188;--theme-cake:#d98a62;--theme-cake-light:#fff0ce;--theme-candle:#fff8f1;--theme-flame:#ffd66b;--theme-capsule-a:#ef6e9f;--theme-capsule-b:#f2bd49;--theme-capsule-c:#72bfe7;--theme-capsule-d:#8bcf9f;--theme-glass:#ffd5e899;--theme-glass-shine:#fff9}[data-theme=green-forest]{--theme-background:#287f67;--theme-background-deep:#073d3d;--theme-surface:#2f8f70;--theme-surface-soft:#83c8a9;--theme-primary:#17604f;--theme-primary-dark:#06352f;--theme-secondary:#70d3aa;--theme-accent:#f2d46d;--theme-highlight:#ef8c86;--theme-text:#f7fff5;--theme-text-muted:#c9efdf;--theme-border:#83d2b2;--theme-shadow:#032c2d;--theme-success:#7ee36e;--theme-paper:#f5f4df;--theme-paper-dark:#d9d3a8;--theme-paper-text:#175a4c;--theme-paper-muted:#657f70;--theme-line:#b5d5be;--theme-on-primary:#fff;--theme-on-accent:#3e3100;--theme-focus:#f7df78;--theme-danger:#c94156;--theme-overlay-soft:#ffffff18;--theme-overlay-medium:#fff5;--theme-overlay-strong:#ffffffb8;--theme-shadow-soft:#032c2d88;--theme-cake:#c68e4b;--theme-cake-light:#fff0bc;--theme-candle:#fffdf0;--theme-flame:#ffd866;--theme-capsule-a:#319b76;--theme-capsule-b:#e7c94f;--theme-capsule-c:#ef858b;--theme-capsule-d:#79c866;--theme-glass:#c9f5df99;--theme-glass-shine:#fff9}[data-theme=gold-celebration]{--theme-background:#b76b1d;--theme-background-deep:#4d2506;--theme-surface:#c77c24;--theme-surface-soft:#e4ac5e;--theme-primary:#8a460e;--theme-primary-dark:#482104;--theme-secondary:#f4b448;--theme-accent:#ffe07b;--theme-highlight:#da4050;--theme-text:#fff9e8;--theme-text-muted:#f8d9a5;--theme-border:#f3bd61;--theme-shadow:#351702;--theme-success:#70c86b;--theme-paper:#fff3d7;--theme-paper-dark:#dec395;--theme-paper-text:#743b0c;--theme-paper-muted:#8d6f4f;--theme-line:#dfbd82;--theme-on-primary:#fff;--theme-on-accent:#3f2600;--theme-focus:#fff08b;--theme-danger:#b72b3b;--theme-overlay-soft:#ffffff18;--theme-overlay-medium:#fff5;--theme-overlay-strong:#ffffffb8;--theme-shadow-soft:#35170288;--theme-cake:#bd7330;--theme-cake-light:#fff0c1;--theme-candle:#fffaf0;--theme-flame:#fff069;--theme-capsule-a:#d0832c;--theme-capsule-b:#f0c64e;--theme-capsule-c:#d9505e;--theme-capsule-d:#76ad62;--theme-glass:#ffe5ac99;--theme-glass-shine:#fff9}[data-theme=purple-dream]{--theme-background:#7045b5;--theme-background-deep:#27154f;--theme-surface:#7950bf;--theme-surface-soft:#ad8ee4;--theme-primary:#55328e;--theme-primary-dark:#251343;--theme-secondary:#a58ae7;--theme-accent:#f3c969;--theme-highlight:#e775b6;--theme-text:#fff8ff;--theme-text-muted:#ddcff8;--theme-border:#b699ec;--theme-shadow:#190c38;--theme-success:#6fd2a1;--theme-paper:#faf0ec;--theme-paper-dark:#ddc7d4;--theme-paper-text:#4f2a7f;--theme-paper-muted:#80698f;--theme-line:#ccb7dc;--theme-on-primary:#fff;--theme-on-accent:#3a2800;--theme-focus:#ffd978;--theme-danger:#c43871;--theme-overlay-soft:#ffffff18;--theme-overlay-medium:#fff5;--theme-overlay-strong:#ffffffb8;--theme-shadow-soft:#190c3888;--theme-cake:#c17a59;--theme-cake-light:#ffefc6;--theme-candle:#fff8f5;--theme-flame:#ffd86d;--theme-capsule-a:#8058c7;--theme-capsule-b:#e4b947;--theme-capsule-c:#df70ad;--theme-capsule-d:#68b898;--theme-glass:#e5d4ff99;--theme-glass-shine:#fff9}:root{color:var(--theme-text);background:var(--theme-background-deep);font-synthesis:none;text-rendering:optimizelegibility;font-family:Noto Sans SC,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--theme-background-deep);min-width:320px;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}svg{display:block}.arcade-shell{min-height:100dvh;color:var(--theme-text);background:linear-gradient(180deg, var(--theme-background), var(--theme-background-deep));isolation:isolate;position:relative;overflow:hidden}.letter,.creator{overflow:visible}.pixel-sky{pointer-events:none;z-index:-1;position:absolute;inset:0;overflow:hidden}.letter>.pixel-sky,.creator>.pixel-sky{position:fixed}.pixel-sky:before{content:"";background-image:linear-gradient(var(--theme-overlay-soft) 1px, transparent 1px), linear-gradient(90deg, var(--theme-overlay-soft) 1px, transparent 1px);opacity:.58;background-size:100% 4px,32px 32px;position:absolute;inset:0}.pixel-sky:after{content:"";background:linear-gradient(90deg, transparent, var(--theme-overlay-soft), transparent);opacity:.42;position:absolute;inset:0}.scan-texture{background-image:linear-gradient(transparent 50%, var(--theme-overlay-soft) 50%);opacity:.32;background-size:100% 6px;position:absolute;inset:0}.sky-spark{color:var(--theme-accent);animation:2s steps(2,end) infinite blink;position:absolute}.sky-spark svg{stroke-width:3px;width:14px;height:14px}.sky-spark:first-child{top:10%;left:8%}.sky-spark:nth-child(2){color:var(--theme-secondary);animation-delay:.5s;top:31%;left:23%}.sky-spark:nth-child(3){animation-delay:1s;top:17%;right:12%}.sky-spark:nth-child(4){color:var(--theme-highlight);top:45%;right:27%}.sky-spark:nth-child(5){animation-delay:.7s;top:69%;left:12%}.sky-spark:nth-child(6){color:var(--theme-secondary);top:81%;right:8%}.theme-orbit{width:66px;height:66px;color:var(--theme-text-muted);border:3px dashed var(--theme-border);box-shadow:6px 6px 0 var(--theme-shadow);opacity:.45;place-items:center;display:grid;position:absolute;top:8%;right:8%;transform:rotate(4deg)}.theme-orbit svg{stroke-width:2.5px;width:31px;height:31px}.paper-ticket{color:var(--theme-paper-text);background:var(--theme-paper);border:5px solid var(--theme-border);box-shadow:8px 8px 0 var(--theme-shadow);clip-path:polygon(14px 0,calc(100% - 14px) 0,calc(100% - 14px) 5px,calc(100% - 5px) 5px,calc(100% - 5px) 14px,100% 14px,100% calc(100% - 14px),calc(100% - 5px) calc(100% - 14px),calc(100% - 5px) calc(100% - 5px),calc(100% - 14px) calc(100% - 5px),calc(100% - 14px) 100%,14px 100%,14px calc(100% - 5px),5px calc(100% - 5px),5px calc(100% - 14px),0 calc(100% - 14px),0 14px,5px 14px,5px 5px,14px 5px);position:relative}.paper-ticket:after{content:"";border:2px dashed var(--theme-line);pointer-events:none;clip-path:inherit;opacity:.8;position:absolute;inset:9px}.ticket-kicker{border:3px solid var(--theme-border);color:var(--theme-paper-text);background:var(--theme-paper-dark);box-shadow:3px 3px 0 var(--theme-shadow-soft);letter-spacing:.03em;align-items:center;gap:7px;padding:7px 9px;font:8px/1.5 "Press Start 2P",monospace;display:inline-flex}.ticket-kicker svg{fill:currentColor;width:12px;height:12px}.arcade-button,.arcade-icon-button{border:3px solid var(--theme-border);color:var(--theme-on-primary);background:var(--theme-primary);box-shadow:5px 5px 0 var(--theme-shadow);-webkit-tap-highlight-color:transparent;transition:transform .14s steps(2,end),box-shadow .14s steps(2,end),background .14s steps(2,end)}.arcade-button{justify-content:center;align-items:center;gap:8px;min-height:48px;padding:12px 16px;font-weight:800;display:inline-flex}.arcade-button svg{stroke-width:3px;width:18px;height:18px}.arcade-button:hover,.arcade-icon-button:hover{box-shadow:7px 7px 0 var(--theme-shadow);transform:translate(-2px,-2px)}.arcade-button:active,.arcade-icon-button:active{box-shadow:1px 1px 0 var(--theme-shadow);transform:translate(4px,4px)}.arcade-button:focus-visible,.arcade-icon-button:focus-visible{outline:4px solid var(--theme-focus);outline-offset:4px}.arcade-button:disabled,.arcade-icon-button:disabled{cursor:not-allowed;opacity:.48}.arcade-button--paper{color:var(--theme-paper-text);background:var(--theme-paper)}.arcade-button--small{min-height:38px;box-shadow:4px 4px 0 var(--theme-shadow);padding:8px 11px;font-size:11px}.sound{z-index:20;right:18px;top:calc(18px + env(safe-area-inset-top));place-items:center;width:46px;height:46px;display:grid;position:fixed}.sound svg{width:20px;height:20px}.intro{text-align:center;padding:calc(28px + env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom));place-items:center;display:grid}.intro-copy{z-index:2;flex-direction:column;align-items:center;width:min(92vw,500px);display:flex;position:relative}.intro h1,.particle-word{color:var(--theme-text);text-shadow:4px 4px 0 var(--theme-shadow);margin:0;font:clamp(22px,6vw,36px)/1.6 "Press Start 2P",monospace}.intro .phase-0 h1,.intro .phase-1 h1,.intro .phase-2 h1{animation:.7s steps(6,end) typeIn}.particle-word{animation:1.4s steps(8,end) forwards dissolve}.tiny{max-width:86%;color:var(--theme-text-muted);margin:0 0 17px;font:8px/1.9 "Press Start 2P"}.intro-copy>p:not(.tiny){margin:22px 0 15px;font:10px/1.8 "Press Start 2P"}.pixel-cake{width:190px;filter:drop-shadow(8px 10px 0 var(--theme-shadow-soft));margin:32px auto 0}.candles{justify-content:center;align-items:flex-end;gap:22px;height:55px;display:flex}.candles i{border:2px solid var(--theme-primary-dark);background:repeating-linear-gradient(135deg, var(--theme-candle) 0 6px, var(--theme-highlight) 7px 12px);width:10px;height:40px;position:relative}.candles i:before{content:"";opacity:0;background:var(--theme-primary-dark);clip-path:polygon(50% 0,100% 65%,70% 100%,20% 100%,0 65%);width:8px;height:12px;position:absolute;top:-15px;left:-1px}.candles i.lit:before{opacity:1;background:var(--theme-flame);box-shadow:0 0 0 4px var(--theme-overlay-medium)}.cake-top{height:30px;color:var(--theme-highlight);background:var(--theme-paper);border:4px solid var(--theme-primary-dark);place-items:center;display:grid}.cake-top svg{fill:currentColor;width:15px;height:15px}.cake-body{height:75px;color:var(--theme-highlight);border:4px solid var(--theme-primary-dark);background:repeating-linear-gradient(90deg, var(--theme-cake) 0 28px, var(--theme-cake-light) 29px 48px);place-items:center;margin:0 8px;display:grid}.cake-body svg{fill:currentColor;width:24px;height:24px}.cake-plate{background:var(--theme-secondary);border:4px solid var(--theme-primary-dark);height:14px}.hold-button{--hold:0%;border:5px solid var(--theme-border);background:conic-gradient(var(--theme-accent) var(--hold), var(--theme-primary-dark) 0);width:142px;height:142px;box-shadow:8px 8px 0 var(--theme-shadow);border-radius:50%;padding:9px;position:relative}.hold-button span{border:4px solid var(--theme-surface-soft);width:100%;height:100%;color:var(--theme-on-primary);background:var(--theme-primary);border-radius:50%;place-items:center;font:12px "Press Start 2P";display:grid}.hold-button:active{box-shadow:3px 3px 0 var(--theme-shadow);transform:translate(4px,4px)}.hold-button:focus-visible{outline:4px solid var(--theme-focus);outline-offset:5px}.letter{padding-bottom:calc(28px + env(safe-area-inset-bottom))}.letter nav{z-index:2;width:min(92%,760px);padding:calc(18px + env(safe-area-inset-top)) 0 18px;justify-content:space-between;align-items:center;gap:12px;margin:auto;font:9px "Press Start 2P";display:flex;position:relative}.letter section,.letter footer{z-index:2;width:min(90%,720px);margin-inline:auto;position:relative}.letter-hero{margin-top:42px;padding:52px 30px 34px}.ticket-meta{z-index:2;color:var(--theme-paper-muted);justify-content:space-between;gap:14px;font:8px/1.6 "Press Start 2P";display:flex;position:relative}.letter-hero>.ticket-kicker{margin-top:30px}.letter-hero h1{z-index:2;text-align:center;margin:22px 0;font:clamp(24px,7vw,42px) "Press Start 2P";position:relative}.pixel-rule{z-index:2;border-top:3px dashed var(--theme-paper-text);margin:22px 0;position:relative}.letter-hero>p{z-index:2;white-space:pre-line;margin:0;font-size:14px;line-height:2;position:relative}.signature{z-index:2;justify-content:flex-end;align-items:center;gap:8px;margin-top:22px;font-weight:800;display:flex;position:relative}.signature svg{width:17px;height:17px;fill:var(--theme-highlight);color:var(--theme-highlight)}.theme-stamp{z-index:2;width:86px;color:var(--theme-paper-muted);justify-items:center;gap:5px;display:grid;position:absolute;top:45px;right:26px;transform:rotate(5deg)}.theme-stamp svg{border:3px double var(--theme-line);width:42px;height:42px;padding:7px}.theme-stamp small{text-align:center;font:7px/1.6 "Press Start 2P"}.pixel-path{z-index:2;color:var(--theme-accent);justify-content:center;align-items:center;gap:12px;padding:38px 0;display:flex;position:relative}.pixel-path svg{fill:currentColor;width:17px;height:17px}.pixel-path i{background:currentColor;width:6px;height:6px;transform:rotate(45deg)}.section-title{text-align:center;grid-template-columns:24px minmax(0,auto) 24px;justify-content:center;align-items:center;gap:12px;margin:0 0 25px;font:clamp(12px,3.8vw,19px)/1.8 "Press Start 2P";display:grid}.section-title svg{width:18px;height:18px;color:var(--theme-accent);stroke-width:3px}.memory-ticket{padding:28px 24px 25px}.memory-meta{z-index:2;color:var(--theme-paper-muted);justify-content:space-between;gap:12px;margin-bottom:14px;font:7px/1.6 "Press Start 2P";display:flex;position:relative}.memory-gallery{z-index:2;border:4px solid var(--theme-paper-text);background:var(--theme-surface);min-height:330px;box-shadow:5px 5px 0 var(--theme-shadow-soft);gap:9px;padding:9px;display:grid;position:relative;overflow:hidden}.memory-fallback{height:320px;color:var(--theme-text);background:var(--theme-primary);text-align:center;align-content:center;place-items:center;gap:24px;padding:24px;font:11px/2 "Press Start 2P";display:grid}.memory-fallback svg{width:60px;height:60px;color:var(--theme-accent);stroke-width:2.5px}.photo-tile{background:var(--theme-primary-dark);border:3px solid var(--theme-paper-text);min-width:0;min-height:0;margin:0;position:relative;overflow:hidden}.photo-tile img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.photo-tile figcaption{color:var(--theme-paper-text);background:var(--theme-paper);border:2px solid var(--theme-paper-text);box-shadow:2px 2px 0 var(--theme-shadow-soft);padding:5px 6px;font:6px "Press Start 2P";position:absolute;bottom:7px;left:7px}.memory-gallery.layout-0{display:block}.memory-gallery.layout-1{min-height:380px}.memory-gallery.layout-1 .photo-tile{height:min(62vh,520px)}.memory-gallery.layout-1 .photo-tile img{object-fit:contain}.memory-gallery.layout-2{grid-template-columns:repeat(2,minmax(0,1fr));height:390px}.memory-gallery.layout-2.is-landscape-set{grid-template-columns:1fr;height:auto}.memory-gallery.layout-2.is-landscape-set .photo-tile{aspect-ratio:16/9}.memory-gallery.layout-3{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);height:410px}.memory-gallery.layout-3 .photo-tile--1{grid-row:1/3}.memory-gallery.layout-3.is-lead-landscape{grid-template-rows:minmax(0,2fr) minmax(0,1fr);grid-template-columns:repeat(2,minmax(0,1fr));height:470px}.memory-gallery.layout-3.is-lead-landscape .photo-tile--1{grid-area:1/1/auto/3}.memory-gallery.layout-4{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));height:430px}.postcard-caption{z-index:2;color:var(--theme-paper-muted);justify-content:center;align-items:center;gap:9px;margin-top:18px;font:7px "Press Start 2P";display:flex;position:relative}.postcard-caption svg{fill:currentColor;width:12px;height:12px}.ticket-shape{clip-path:polygon(14px 0,calc(100% - 14px) 0,calc(100% - 14px) 5px,calc(100% - 5px) 5px,calc(100% - 5px) 14px,100% 14px,100% 39%,calc(100% - 12px) 39%,calc(100% - 12px) 61%,100% 61%,100% calc(100% - 14px),calc(100% - 5px) calc(100% - 14px),calc(100% - 5px) calc(100% - 5px),calc(100% - 14px) calc(100% - 5px),calc(100% - 14px) 100%,14px 100%,14px calc(100% - 5px),5px calc(100% - 5px),5px calc(100% - 14px),0 calc(100% - 14px),0 61%,12px 61%,12px 39%,0 39%,0 14px,5px 14px,5px 5px,14px 5px)}.voice-player{grid-template-columns:92px 1fr;align-items:center;gap:26px;min-height:245px;padding:30px 34px;display:grid}.voice-player>audio{display:none}.voice-ticket-head{z-index:2;justify-content:space-between;align-items:start;gap:12px;display:flex;position:absolute;inset:20px 28px auto}.voice-ticket-head small{color:var(--theme-paper-muted);font:7px/1.6 "Press Start 2P"}.arcade-play-button{z-index:2;border:5px solid var(--theme-accent);width:86px;height:86px;color:var(--theme-on-primary);background:var(--theme-primary);box-shadow:6px 6px 0 var(--theme-shadow);border-radius:50%;place-items:center;display:grid;position:relative}.arcade-play-button svg{fill:currentColor;stroke-width:3px;width:34px;height:34px}.arcade-play-button:active{box-shadow:2px 2px 0 var(--theme-shadow);transform:translate(4px,4px)}.arcade-play-button:focus-visible{outline:4px solid var(--theme-focus);outline-offset:5px}.arcade-play-button:disabled{opacity:.38;cursor:not-allowed}.voice-content{z-index:2;min-width:0;padding-top:22px;position:relative}.wave{border-top:3px dashed var(--theme-line);border-bottom:3px dashed var(--theme-line);align-items:end;gap:3px;height:74px;padding:8px 0;display:flex;overflow:hidden}.wave i{min-width:2px;height:var(--wave-height);background:var(--theme-secondary);transform-origin:bottom;flex:3px}.wave.is-playing i{animation:.65s steps(3,end) infinite waveBounce;animation-delay:var(--wave-delay)}.voice-status{width:-moz-fit-content;width:fit-content;max-width:100%;min-height:38px;color:var(--theme-paper-text);background:var(--theme-surface-soft);border:3px solid var(--theme-border);justify-content:center;align-items:center;gap:9px;margin:17px auto 0;padding:8px 12px;font-weight:800;display:flex}.voice-status svg{flex:none;width:18px;height:18px}.voice-status span{min-width:0;font-size:12px}.postal-stamp{color:var(--theme-line);opacity:.75;position:absolute;bottom:18px;right:24px;transform:rotate(-8deg)}.postal-stamp svg{border:4px double;border-radius:50%;width:62px;height:62px;padding:12px}.final-ticket{text-align:center;border-top:4px dashed var(--theme-border);margin-top:64px;padding:50px 26px 42px}.footer-emblem{width:64px;height:64px;color:var(--theme-accent);border:4px solid var(--theme-border);box-shadow:6px 6px 0 var(--theme-shadow);margin:26px auto 10px;padding:12px}.final-ticket h2{text-shadow:5px 5px 0 var(--theme-shadow);margin:18px 0;font:clamp(25px,8vw,48px)/1.35 "Press Start 2P"}.final-ticket p{line-height:2}.final-ticket>div:last-child{justify-content:center;gap:12px;margin-top:24px;display:flex}.creator{padding:calc(38px + env(safe-area-inset-top)) 15px calc(44px + env(safe-area-inset-bottom))}.creator-panel{z-index:2;width:min(94%,680px);margin:auto;padding:36px 34px}.creator-heading{z-index:2;justify-content:space-between;align-items:start;gap:20px;display:flex;position:relative}.creator-panel h1{margin:18px 0 8px;font:clamp(23px,6vw,37px)/1.55 "Press Start 2P"}.creator-panel>p{z-index:2;color:var(--theme-paper-muted);position:relative}.creator-emblem{width:52px;height:52px;color:var(--theme-highlight);border:3px solid var(--theme-line);box-shadow:4px 4px 0 var(--theme-shadow-soft);flex:none;padding:9px}.creator-panel label{z-index:2;margin-top:22px;font-size:13px;font-weight:800;display:block;position:relative}.creator-panel input,.creator-panel textarea{width:100%;color:var(--theme-paper-text);background:var(--theme-paper);border:3px solid var(--theme-paper-text);box-shadow:inset 4px 4px 0 var(--theme-paper-dark);border-radius:0;outline:0;margin-top:8px;padding:13px;display:block}.creator-panel input:focus,.creator-panel textarea:focus{border-color:var(--theme-accent);box-shadow:inset 4px 4px 0 var(--theme-paper-dark), 4px 4px 0 var(--theme-shadow-soft)}.creator-panel textarea{resize:vertical;min-height:160px;line-height:1.7}.creator-panel label small{color:var(--theme-paper-muted);position:absolute;bottom:8px;right:9px}.theme-picker{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:9px;display:grid}.theme-picker button{min-height:74px;color:var(--theme-paper-text);background:var(--theme-paper);border:3px solid var(--theme-paper-text);box-shadow:3px 3px 0 var(--theme-shadow-soft);align-content:center;place-items:center;gap:8px;padding:9px 5px;display:grid}.theme-picker button svg{width:20px;height:20px}.theme-picker button span{font-size:10px;line-height:1.35}.theme-picker button.active{color:var(--theme-on-primary);background:var(--theme-primary);border-color:var(--theme-accent);box-shadow:1px 1px 0 var(--theme-shadow-soft);transform:translate(2px,2px)}.theme-picker button:focus-visible{outline:4px solid var(--theme-focus);outline-offset:3px}.photo-uploader{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:9px;display:grid}.photo-uploader>div,.photo-uploader>button{aspect-ratio:3/4;color:var(--theme-paper-text);background:var(--theme-paper);border:3px dashed var(--theme-paper-text);position:relative;overflow:hidden}.photo-uploader img{object-fit:cover;width:100%;height:100%}.photo-uploader>div button{width:31px;height:31px;color:var(--theme-on-primary);background:var(--theme-danger);border:2px solid var(--theme-paper);place-items:center;display:grid;position:absolute;top:4px;right:4px}.photo-uploader>button{flex-direction:column;justify-content:center;align-items:center;gap:7px;display:flex}.photo-uploader svg{width:18px;height:18px}.recorder{color:var(--theme-paper-text);background:var(--theme-paper);border:3px solid var(--theme-paper-text);box-shadow:inset 4px 4px 0 var(--theme-paper-dark);flex-wrap:wrap;align-items:center;gap:10px;margin-top:9px;padding:14px;display:flex}.recorder button{min-height:42px;color:var(--theme-on-primary);background:var(--theme-primary);border:3px solid var(--theme-border);box-shadow:3px 3px 0 var(--theme-shadow-soft);align-items:center;gap:7px;padding:9px 12px;display:flex}.recorder button.recording{background:var(--theme-danger)}.recorder button svg{width:17px;height:17px}.recorder audio{width:100%}.switch{align-items:center;gap:9px;display:flex!important}.switch input{height:20px;accent-color:var(--theme-primary);box-shadow:none;width:20px!important;margin:0!important;display:inline!important}.publish,.preview,.success .arcade-button{z-index:2;width:100%;margin-top:18px;position:relative}.success{place-items:center;display:grid}.success code{z-index:2;color:var(--theme-paper-text);background:var(--theme-paper-dark);border:3px dashed var(--theme-line);word-break:break-all;padding:15px;display:block;position:relative}.status{place-items:center;padding:20px;display:grid}.pixel-window{z-index:2;text-align:center;width:min(92%,480px);padding:34px}.pixel-window>svg{width:46px;height:46px;color:var(--theme-highlight);margin:0 auto 18px}.pixel-window h1{font:19px/1.7 "Press Start 2P"}.pixel-window p{color:var(--theme-paper-muted);font:9px/1.7 "Press Start 2P"}@keyframes blink{50%{opacity:.25}}@keyframes typeIn{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes dissolve{0%{opacity:1}70%{letter-spacing:12px}to{opacity:0;letter-spacing:22px}}@keyframes waveBounce{50%{transform:scaleY(.35)}}@media (max-width:620px){.theme-orbit{width:52px;height:52px;top:10%;right:6%}.theme-orbit svg{width:24px;height:24px}.letter nav{width:90%}.letter-hero{margin-top:24px;padding:46px 20px 30px}.letter-hero>.ticket-kicker{margin-top:46px}.letter-hero>p{font-size:13px}.theme-stamp{width:68px;top:60px;right:17px}.theme-stamp svg{width:34px;height:34px}.section-title{grid-template-columns:18px minmax(0,auto) 18px;gap:8px;font-size:12px}.section-title svg{width:15px;height:15px}.memory-ticket{padding:22px 15px}.memory-gallery{gap:7px;min-height:280px;padding:7px}.memory-gallery.layout-1{min-height:330px}.memory-gallery.layout-1 .photo-tile{height:min(58vh,460px)}.memory-gallery.layout-2{height:330px}.memory-gallery.layout-2.is-landscape-set{height:auto}.memory-gallery.layout-3{height:360px}.memory-gallery.layout-3.is-lead-landscape{height:420px}.memory-gallery.layout-4{height:370px}.memory-fallback{height:290px;font-size:9px}.voice-player{grid-template-columns:72px 1fr;gap:14px;min-height:300px;padding:62px 21px 28px}.voice-ticket-head{inset:18px 21px auto}.voice-ticket-head small{text-align:right;max-width:80px}.arcade-play-button{border-width:4px;width:68px;height:68px}.arcade-play-button svg{width:27px;height:27px}.wave{gap:2px;height:64px}.wave i:nth-child(n+21){display:none}.voice-status{width:100%;padding-inline:8px}.voice-status span{font-size:10px}.postal-stamp{bottom:10px;right:16px}.postal-stamp svg{width:48px;height:48px}.final-ticket>div:last-child{flex-direction:column}.creator-panel{padding:28px 18px}.creator-heading{gap:12px}.creator-emblem{width:42px;height:42px}.theme-picker{grid-template-columns:repeat(2,1fr)}.theme-picker button:last-child{grid-column:1/-1}.photo-uploader{grid-template-columns:repeat(3,1fr)}}@media (max-width:390px){.letter nav b{text-overflow:ellipsis;max-width:160px;overflow:hidden}.letter-hero{padding-inline:17px}.ticket-meta{flex-direction:column;gap:4px}.letter-hero>.ticket-kicker{max-width:calc(100% - 72px)}.voice-player{grid-template-columns:58px 1fr;padding-inline:17px}.arcade-play-button{width:58px;height:58px}.arcade-play-button svg{width:23px;height:23px}.voice-content{padding-top:15px}.photo-uploader{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[hidden]{display:none!important}.intro-entering .intro-copy{animation:.65s steps(6,end) both introOpen}.hold-button:disabled{cursor:wait}.no-select,.hold-button,.gacha-machine,.fortune-capsule,.gift-unlock,.gift-chest,.blow-button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}.no-select *,.hold-button *,.gacha-machine *,.fortune-capsule *,.gift-unlock *,.gift-chest *,.blow-button *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,.creator-panel textarea,.wish-card textarea,.gift-items-input{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;touch-action:auto}.gacha-machine{grid-template-columns:minmax(230px,315px) minmax(0,1fr);align-items:center;gap:24px;display:grid}.birthday-machine{border:6px solid var(--theme-border);background:var(--theme-surface);min-height:430px;box-shadow:9px 9px 0 var(--theme-shadow);clip-path:polygon(14px 0,calc(100% - 14px) 0,calc(100% - 14px) 6px,calc(100% - 6px) 6px,calc(100% - 6px) 14px,100% 14px,100% 100%,0 100%,0 14px,6px 14px,6px 6px,14px 6px);padding:72px 14px 18px;position:relative}.birthday-machine:after{content:"";pointer-events:none;background-image:linear-gradient(var(--theme-overlay-soft) 1px, transparent 1px);background-size:100% 5px;position:absolute;inset:0}.party-props{z-index:3;color:var(--theme-accent);justify-content:space-between;align-items:end;display:flex;position:absolute;inset:10px 18px auto}.party-props svg{width:38px;height:38px;color:var(--theme-accent);background:var(--theme-primary);border:3px solid var(--theme-primary-dark);box-shadow:3px 3px 0 var(--theme-shadow);padding:6px}.party-props svg:first-child{color:var(--theme-highlight);transform:rotate(-5deg)}.party-props svg:nth-child(2){width:50px;height:50px;fill:var(--theme-accent)}.party-props svg:nth-child(3){color:var(--theme-accent);transform:rotate(5deg)}.birthday-sign{z-index:4;width:88%;min-height:54px;color:var(--theme-on-primary);background:var(--theme-primary);border:4px solid var(--theme-accent);box-shadow:5px 5px 0 var(--theme-shadow);place-items:center;padding:9px 10px;display:grid;position:absolute;top:53px;left:50%;transform:translate(-50%)}.birthday-sign span{text-align:center;color:var(--theme-accent);text-shadow:2px 2px 0 var(--theme-primary-dark);font:11px/1.5 "Press Start 2P"}.gacha-glass{z-index:2;border:6px solid var(--theme-primary-dark);background:var(--theme-glass);width:94%;height:220px;box-shadow:inset 0 -18px 0 var(--theme-overlay-soft), 0 5px 0 var(--theme-accent);border-radius:42% 42% 14px 14px;margin:28px auto 0;position:relative;overflow:hidden}.glass-shine{z-index:5;background:var(--theme-glass-shine);opacity:.75;width:18px;height:80px;position:absolute;top:12%;left:17%;transform:skew(-13deg)}.orb{border:4px solid var(--theme-primary-dark);width:58px;height:52px;box-shadow:inset -7px -6px 0 var(--theme-shadow-soft), 3px 3px 0 var(--theme-shadow-soft);border-radius:50%;display:block}.orb:after{content:"";background:var(--theme-paper);border-block:2px solid var(--theme-primary-dark);width:100%;height:5px;margin-top:calc(50% - 2px);display:block}.orb--one{background:var(--theme-capsule-a)}.orb--two{background:var(--theme-capsule-b)}.orb--three{background:var(--theme-capsule-c)}.orb--four{background:var(--theme-capsule-d)}.gacha-glass .orb{position:absolute}.gacha-glass .orb:first-of-type{bottom:13%;left:9%;transform:rotate(-18deg)}.gacha-glass .orb:nth-of-type(2){bottom:7%;left:31%;transform:rotate(9deg)}.gacha-glass .orb:nth-of-type(3){bottom:11%;right:26%;transform:rotate(-5deg)}.gacha-glass .orb:nth-of-type(4){bottom:7%;right:6%;transform:rotate(17deg)}.gacha-glass .orb:nth-of-type(5){bottom:34%;left:17%;transform:rotate(15deg)}.gacha-glass .orb:nth-of-type(6){bottom:31%;left:43%;transform:rotate(-12deg)}.gacha-glass .orb:nth-of-type(7){bottom:35%;right:13%;transform:rotate(6deg)}.gacha-glass .orb:nth-of-type(8){bottom:54%;left:33%;transform:rotate(-4deg)}.gacha-glass .orb:nth-of-type(9){bottom:55%;right:25%;transform:rotate(13deg)}.machine-console{z-index:3;background:var(--theme-primary);border:6px solid var(--theme-primary-dark);height:100px;box-shadow:0 6px 0 var(--theme-accent);grid-template-columns:78px 1fr 76px;align-items:center;gap:10px;margin-top:-5px;padding:15px 11px;display:grid;position:relative}.coin-slot{min-height:40px;color:var(--theme-text);background:var(--theme-shadow);border:4px solid var(--theme-border);place-items:center;font:11px "Press Start 2P";display:grid}.birthday-machine .gacha-knob{border:5px solid var(--theme-border);width:68px;height:68px;color:var(--theme-primary-dark);background:var(--theme-paper-dark);box-shadow:0 7px 0 var(--theme-shadow);border-radius:50%;justify-self:center;padding:8px;position:static}.birthday-machine .gacha-knob span{border:4px solid var(--theme-primary-dark);background:var(--theme-surface-soft);border-radius:50%;width:100%;height:100%;display:block}.birthday-machine .gacha-knob:active{box-shadow:0 2px 0 var(--theme-shadow);transform:translateY(5px)rotate(35deg)}.get-button{min-height:48px;color:var(--theme-on-accent);background:var(--theme-accent);border:4px solid var(--theme-primary-dark);box-shadow:4px 4px 0 var(--theme-shadow);padding:7px;font:10px "Press Start 2P"}.get-button:active{box-shadow:1px 1px 0 var(--theme-shadow);transform:translate(3px,3px)}.get-button:focus-visible,.gacha-knob:focus-visible{outline:4px solid var(--theme-focus);outline-offset:3px}.prize-door{z-index:2;width:82%;height:48px;color:var(--theme-paper-dark);background:var(--theme-shadow);border:5px solid var(--theme-primary-dark);box-shadow:inset 0 6px 0 var(--theme-shadow-soft);place-items:center;margin:15px auto 0;display:grid;position:relative}.prize-door svg{width:35px;height:24px}.is-spinning .birthday-machine{animation:.28s steps(2,end) infinite machineBump}.is-spinning .gacha-glass .orb{animation:.28s steps(2,end) infinite capsuleShake}.birthday-output{min-height:300px;color:var(--theme-paper-text);background:var(--theme-paper);border:5px solid var(--theme-border);box-shadow:8px 8px 0 var(--theme-shadow);clip-path:polygon(12px 0,calc(100% - 12px) 0,calc(100% - 12px) 5px,calc(100% - 5px) 5px,calc(100% - 5px) 12px,100% 12px,100% calc(100% - 12px),calc(100% - 5px) calc(100% - 12px),calc(100% - 5px) calc(100% - 5px),calc(100% - 12px) calc(100% - 5px),calc(100% - 12px) 100%,12px 100%,12px calc(100% - 5px),5px calc(100% - 5px),5px calc(100% - 12px),0 calc(100% - 12px),0 12px,5px 12px,5px 5px,12px 5px);place-items:center;padding:18px;display:grid}.prize-preview{text-align:center;place-items:center;display:grid}.golden-egg{z-index:2;border:6px solid var(--theme-primary-dark);background:var(--theme-accent);width:110px;height:140px;box-shadow:inset -12px -10px 0 var(--theme-shadow-soft), 6px 6px 0 var(--theme-shadow);border-radius:54% 54% 48% 48%;place-items:center;display:grid;position:relative}.golden-egg svg{width:42px;height:42px;color:var(--theme-on-accent);fill:currentColor}.prize-bowl{border:6px solid var(--theme-primary-dark);background:var(--theme-secondary);width:166px;height:52px;box-shadow:inset -12px -8px 0 var(--theme-shadow-soft), 0 8px 0 var(--theme-shadow);border-radius:0 0 80px 80px;margin-top:-20px}.prize-preview p{color:var(--theme-paper-text);background:var(--theme-paper-dark);border:3px dashed var(--theme-line);margin:20px 0 0;padding:15px;font:9px/2 "Press Start 2P"}.spinning-preview{flex-wrap:wrap;place-content:center;gap:16px;display:flex}.spinning-preview .orb{animation:.24s steps(2,end) infinite capsuleShake;position:relative}.spinning-preview p{flex-basis:100%}.birthday-capsule{width:210px;min-height:210px;color:var(--theme-paper-text);background:0 0;border:0;place-items:center;gap:13px;padding:12px;display:grid}.birthday-capsule>span{width:120px;height:150px;color:var(--theme-on-accent);background:var(--theme-accent);border:6px solid var(--theme-primary-dark);box-shadow:inset -12px -10px 0 var(--theme-shadow-soft), 7px 7px 0 var(--theme-shadow);border-radius:54% 54% 48% 48%;place-items:center;animation:.8s steps(3,end) infinite eggHop;display:grid}.birthday-capsule>span svg{fill:currentColor;width:40px;height:40px}.birthday-capsule b{font:10px "Press Start 2P"}.birthday-capsule:focus-visible{outline:4px solid var(--theme-focus);outline-offset:4px}.birthday-ticket{text-align:left;width:100%;padding:26px 24px}.birthday-ticket>b{z-index:2;margin:20px 0 12px;font:18px/1.5 "Press Start 2P";display:block;position:relative}.birthday-ticket p,.birthday-ticket small,.birthday-ticket button{z-index:2;position:relative}.birthday-ticket p{line-height:1.9}.birthday-ticket small{color:var(--theme-paper-muted);font:7px/1.7 "Press Start 2P";display:block}.birthday-ticket button{margin-top:20px}.gift-unlock{--gift:0%;place-items:center;min-height:270px;display:grid}.gift-chest{width:250px;min-height:210px;color:var(--theme-on-primary);background:var(--theme-primary);border:6px solid var(--theme-border);box-shadow:9px 9px 0 var(--theme-shadow);flex-direction:column;align-items:center;gap:13px;padding:66px 22px 20px;display:flex;position:relative}.gift-chest:after{content:"";background:linear-gradient(90deg, var(--theme-accent) var(--gift), var(--theme-primary-dark) 0);height:8px;position:absolute;bottom:0;left:0;right:0}.gift-lid{height:58px;color:var(--theme-accent);background:var(--theme-surface);border:5px solid var(--theme-primary-dark);box-shadow:0 6px 0 var(--theme-shadow);place-items:center;display:grid;position:absolute;top:18px;left:16px;right:16px}.gift-lid svg{stroke-width:2.5px;width:36px;height:36px}.gift-box{width:118px;color:var(--theme-on-accent);background:var(--theme-accent);border:4px solid var(--theme-primary-dark);padding:13px 8px;font:10px "Press Start 2P"}.gift-chest b{font:9px/1.8 "Press Start 2P"}.gift-chest em{font-style:normal;font-weight:800}.gift-chest:active{box-shadow:4px 4px 0 var(--theme-shadow);transform:translate(4px,4px)}.gift-chest:focus-visible{outline:4px solid var(--theme-focus);outline-offset:5px}.gift-reward{text-align:center;width:min(100%,510px);padding:34px 30px}.gift-reward>*{z-index:2;position:relative}.reward-spark{width:52px;height:52px;color:var(--theme-highlight);margin:0 auto 18px}.gift-reward h3{margin:20px 0 10px;font:17px/1.6 "Press Start 2P"}.gift-reward>p{line-height:1.8}.wish-coupon{text-align:left;color:var(--theme-paper-text);background:var(--theme-paper-dark);border:4px dashed var(--theme-paper-text);box-shadow:5px 5px 0 var(--theme-shadow-soft);gap:12px;margin:24px 0;padding:18px;display:grid}.wish-coupon b{font:12px "Press Start 2P"}.wish-coupon span{font-weight:800;line-height:1.8}.wish-coupon small{color:var(--theme-paper-muted);font:7px/1.7 "Press Start 2P"}.wish-ritual{place-items:center;min-height:570px;display:grid}.vertical-ticket{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:min(100%,520px);min-height:570px;padding:35px 34px;display:flex}.vertical-ticket>*{z-index:2;position:relative}.wish-ticket-meta{color:var(--theme-paper-muted);justify-content:space-between;gap:10px;font:7px "Press Start 2P";display:flex;position:absolute;inset:22px 24px auto}.wish-stamp{width:48px;height:48px;color:var(--theme-highlight);border:3px double var(--theme-line);padding:8px;position:absolute;top:55px;right:32px;transform:rotate(7deg)}.wish-card .pixel-cake{transform-origin:50%;margin-top:40px;transform:scale(.78)}.wish-card>p{margin:5px auto 20px;line-height:1.9}.wish-card textarea{width:100%;min-height:150px;color:var(--theme-paper-text);background:var(--theme-paper);border:4px solid var(--theme-paper-text);resize:none;box-shadow:inset 5px 5px 0 var(--theme-paper-dark);border-radius:0;outline:0;padding:17px;line-height:1.8}.wish-card textarea:focus{border-color:var(--theme-accent);box-shadow:inset 5px 5px 0 var(--theme-paper-dark), 4px 4px 0 var(--theme-shadow-soft)}.wish-card>.arcade-button{min-width:210px;margin-top:25px}.ticket-serial{color:var(--theme-paper-muted);margin-top:22px;font:7px/1.6 "Press Start 2P"}.blow-card .pixel-cake{margin-top:12px}.blow-button{width:220px;min-height:88px;color:var(--theme-on-primary);background:linear-gradient(90deg, var(--theme-accent) var(--blow), var(--theme-primary) 0);border:5px solid var(--theme-border);box-shadow:7px 7px 0 var(--theme-shadow);place-items:center;gap:7px;margin-top:8px;padding:13px;display:grid}.blow-button span{font:12px "Press Start 2P"}.blow-button em{font-style:normal;font-weight:800}.blow-button:active{box-shadow:3px 3px 0 var(--theme-shadow);transform:translate(4px,4px)}.blow-button:focus-visible{outline:4px solid var(--theme-focus);outline-offset:5px}.wish-done h3{font:17px/1.7 "Press Start 2P"}.wish-done>small:not(.ticket-kicker){color:var(--theme-paper-muted)}@keyframes introOpen{0%{opacity:1;transform:scale(1)}75%{opacity:.65;transform:scale(1.08)}to{opacity:0;transform:scale(1.24)}}@keyframes machineBump{50%{transform:translateY(4px)}}@keyframes capsuleShake{50%{transform:translate(4px,-4px)rotate(8deg)}}@keyframes eggHop{50%{transform:translateY(-8px)}}@media (max-width:680px){.birthday-gacha{grid-template-columns:1fr;gap:24px}.birthday-machine{justify-self:center;width:min(100%,340px);min-height:420px}.birthday-output{width:100%;min-height:285px}.gift-reward{padding-inline:22px}}@media (max-width:390px){.birthday-machine{padding-inline:8px}.birthday-sign span{font-size:9px}.gacha-glass{height:205px}.machine-console{grid-template-columns:69px 1fr 70px;gap:6px;padding-inline:7px}.coin-slot{font-size:8px}.birthday-machine .gacha-knob{width:61px;height:61px}.get-button{font-size:8px}.vertical-ticket{min-height:545px;padding:32px 20px}.wish-stamp{right:22px}.wish-card .pixel-cake{transform:scale(.72)}.gift-chest{width:230px}}
