*{box-sizing:border-box}:root{color:#fffaf0;font-synthesis:none;text-rendering:optimizelegibility;background:#040611;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}html,body,#root{min-width:320px;min-height:100%;margin:0}body{overflow:hidden}button{font:inherit}.cosmic-gift{isolation:isolate;background:radial-gradient(circle at 20% 18%,#49f5ff40,#0000 30%),radial-gradient(circle at 78% 22%,#ff48cf2e,#0000 28%),radial-gradient(circle at 50% 86%,#ffd56d26,#0000 34%),linear-gradient(145deg,#040611 0%,#0a1024 46%,#03040c 100%);width:100vw;height:100svh;min-height:520px;position:relative;overflow:hidden}.cosmic-gift:before,.cosmic-gift:after{z-index:0;pointer-events:none;content:"";position:absolute;inset:-16%}.cosmic-gift:before{opacity:.38;background-image:radial-gradient(circle,#ffffff8c 0 1px,#0000 1.5px),radial-gradient(circle,#7ef9ff59 0 1px,#0000 1.6px);background-position:0 0,32px 46px;background-size:96px 96px,138px 138px;animation:26s linear infinite starDrift}.cosmic-gift:after{filter:blur(24px);opacity:.58;background:conic-gradient(from 130deg,#0000,#67f6ff24,#0000,#ff5bd61f,#0000);animation:22s linear infinite nebulaTurn}.scene-layer{z-index:1;cursor:pointer;position:absolute;inset:0}.cursor-aura{z-index:0;filter:blur(34px);opacity:.8;pointer-events:none;background:radial-gradient(circle at 48% 42%,#6ef9ff2e,#0000 34%),radial-gradient(circle at 55% 56%,#ff53d326,#0000 36%);border-radius:999px;transition:transform .18s ease-out;position:absolute;inset:10% 14%}.preloader{z-index:20;background:radial-gradient(circle at 50% 48%,#69f6ff29,#0000 28%),#040611;place-items:center;display:grid;position:absolute;inset:0}.preloader p{z-index:1;color:#fff5c7;letter-spacing:0;text-shadow:0 0 28px #ffe28c9e;margin:0;font-size:clamp(1.1rem,2.6vw,1.8rem);font-weight:750;animation:1.4s ease-in-out infinite alternate textPulse;position:relative}.preloader-ring{aspect-ratio:1;border:1px solid #7af7ff33;border-top-color:#ffe698d1;border-radius:50%;width:min(48vmin,22rem);animation:1.8s linear infinite spin;position:absolute;box-shadow:0 0 46px #52f4ff2e,inset 0 0 42px #ff52d71f}.stage-copy{z-index:5;pointer-events:none;text-align:center;text-shadow:0 18px 54px #000000bf;flex-direction:column;align-items:center;width:min(64rem,100vw - clamp(2rem,8vw,7rem));display:flex;position:absolute;left:50%;transform:translate(-50%)}.launch-copy{gap:clamp(1rem,2.4vw,1.5rem);top:min(64vh,50% + 9.4rem)}.reveal-copy{top:clamp(4.3rem,13vh,8rem)}.memory-copy{top:clamp(4.5rem,10vh,6.8rem)}.finale-copy{gap:clamp(.8rem,1.8vw,1.2rem);top:clamp(3.8rem,9vh,6.2rem)}.stage-copy h1,.stage-copy p{margin:0}.launch-copy h1{color:#fff9dc;max-width:18ch;font-size:clamp(2rem,5.8vw,5.2rem);font-weight:800;line-height:1}.reveal-copy h1{color:#fffaf0;text-wrap:balance;max-width:13ch;font-size:clamp(2.7rem,8vw,7rem);font-weight:900;line-height:.96}.reveal-copy h1 span{transform-origin:50% 80%;display:inline-block}.memory-copy p{color:#dcfbff;letter-spacing:0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#04071270;border:1px solid #82f9ff4d;border-radius:999px;padding:.62rem .95rem;font-size:clamp(.78rem,1.6vw,1rem);font-weight:750}.finale-copy h1{color:#fff8dc;text-wrap:balance;max-width:19ch;font-size:clamp(2rem,5.4vw,5rem);font-weight:880;line-height:1.04}.finale-copy p{color:#e8fbff;font-size:clamp(1.05rem,2.5vw,1.55rem);font-weight:750}.glass-action{pointer-events:auto;color:#fff7cc;letter-spacing:0;cursor:pointer;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(135deg,#47351061,#0b43524d),#040612e6;border:1px solid #ffeaaa94;border-radius:999px;min-height:3.25rem;padding:.9rem 1.35rem;font-size:clamp(.94rem,1.8vw,1.1rem);font-weight:850;box-shadow:0 0 38px #ffd27038,inset 0 0 18px #ffffff14}.glass-action:focus-visible,.icon-control:focus-visible,.secret-star:focus-visible,.quality-card:focus-visible{outline-offset:4px;outline:2px solid #8ef8ff}.icon-control,.secret-star{z-index:8;color:#e8fcffd1;cursor:pointer;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0509178f;border:1px solid #d2faff42;border-radius:50%;place-items:center;width:2.55rem;height:2.55rem;transition:color .2s,border-color .2s,box-shadow .2s,transform .2s;display:grid;position:absolute}.icon-control:hover,.secret-star:hover,.sound-toggle.is-on{color:#fff5bd;border-color:#ffeba6b3;transform:translateY(-1px);box-shadow:0 0 28px #64f6ff38}.sound-toggle{top:max(1rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right))}.secret-star{top:max(1rem, env(safe-area-inset-top));left:max(1rem, env(safe-area-inset-left));opacity:.55;animation:2.8s ease-in-out infinite secretTwinkle}.progress-dots{bottom:max(1rem, env(safe-area-inset-bottom));z-index:8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#04071270;border:1px solid #bef8ff29;border-radius:999px;gap:.42rem;padding:.45rem .58rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.progress-dots span{background:#defbff5c;border-radius:999px;width:.5rem;height:.5rem;transition:width .3s,background .3s,box-shadow .3s}.progress-dots .is-active{background:#fff1a8;width:1.35rem;box-shadow:0 0 18px #ffe591ad}.tap-hint{right:clamp(1rem,4vw,3.5rem);bottom:calc(max(1rem, env(safe-area-inset-bottom)) + 2.7rem);z-index:7;color:#dffcff;text-align:center;text-shadow:0 8px 24px #000000b3;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:none;background:#05091775;border:1px solid #82f9ff33;border-radius:999px;max-width:18rem;margin:0;padding:.55rem .78rem;font-size:.78rem;font-weight:720;position:absolute}.quality-orbit{z-index:6;pointer-events:none;position:absolute;inset:clamp(4.8rem,10vh,6.7rem) clamp(1rem,5vw,4.5rem) clamp(4rem,10vh,6rem)}.quality-card{pointer-events:auto;color:#f6feff;text-align:center;text-shadow:0 8px 28px #000000a6;cursor:pointer;width:min(15.5rem,42vw);min-height:5.2rem;transform-style:preserve-3d;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(135deg,#1a243a6b,#073f4c42),#040712e0;border:1px solid #b7faff47;border-radius:1.1rem;padding:1rem;font-size:clamp(.94rem,1.9vw,1.18rem);font-weight:800;line-height:1.22;position:absolute;box-shadow:0 20px 70px #0000005c,inset 0 0 24px #ffffff0f}.quality-0{top:8%;left:7%}.quality-1{top:13%;right:8%}.quality-2{bottom:13%;left:11%}.quality-3{bottom:10%;right:10%}.wish-labels{z-index:6;pointer-events:none;position:absolute;inset:clamp(4rem,9vh,6rem) clamp(1rem,5vw,5rem) clamp(4.2rem,10vh,6rem)}.wish-label{color:#effeff;text-shadow:0 0 18px #62f7ff7a,0 10px 26px #000000b3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0408155c;border:1px solid #7df8ff29;border-radius:999px;max-width:min(21rem,42vw);padding:.58rem .82rem;font-size:clamp(.86rem,1.8vw,1.12rem);font-weight:820;line-height:1.25;animation:4.8s ease-in-out infinite alternate wishFloat;display:inline-flex;position:absolute;box-shadow:0 0 34px #65f6ff24}.wish-0{top:9%;left:10%}.wish-1{color:#fff5bd;top:23%;right:12%}.wish-2{color:#ffd8f5;top:50%;left:5%}.wish-3{bottom:26%;right:6%}.wish-4{bottom:10%;left:18%}.wish-5{color:#fff0ba;bottom:7%;right:22%}.memory-modal{z-index:12;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#03050e6b;place-items:center;padding:clamp(1rem,5vw,4rem);display:grid;position:absolute;inset:0}.memory-text{text-align:center;background:linear-gradient(135deg,#ffffff24,#65f6ff14),#060a18a8;border:1px solid #ffeba84d;border-radius:1.35rem;width:min(34rem,92vw);padding:clamp(1.4rem,5vw,2.4rem);box-shadow:0 26px 90px #0000008a,inset 0 0 28px #ffffff0f}.memory-text p{color:#fff7d3;text-wrap:balance;text-shadow:0 14px 42px #000000b8;margin:0;font-size:clamp(1.35rem,4vw,2.65rem);font-weight:850;line-height:1.14}.party-layer{z-index:18;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.party-layer>span{background:linear-gradient(#fff2a4,#ff47d3 54%,#62f6ff);border-radius:999px;width:.55rem;height:1.1rem;position:absolute;box-shadow:0 0 16px #ff60dbad}.party-message{text-align:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0407129e;border:1px solid #ffe89c52;border-radius:1.2rem;flex-direction:column;gap:.7rem;width:min(36rem,100vw - 2rem);padding:clamp(1.2rem,4vw,2rem);display:flex;box-shadow:0 0 72px #ff48d147}.party-message strong{color:#fff8d0;font-size:clamp(1.45rem,4vw,3rem);line-height:1.08}.party-message span{color:#e7fbff;font-size:clamp(.95rem,2vw,1.2rem);line-height:1.5}.party-shake{animation:.38s linear 2 screenShake}@keyframes starDrift{to{transform:translate(-96px,48px)}}@keyframes nebulaTurn{to{transform:rotate(1turn)}}@keyframes textPulse{to{opacity:.68;transform:scale(.985)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes secretTwinkle{50%{opacity:.95;transform:scale(1.08)}}@keyframes wishFloat{to{transform:translate(.55rem,-.45rem)}}@keyframes screenShake{25%{transform:translate(3px,-2px)}50%{transform:translate(-3px,2px)}75%{transform:translate(2px,1px)}}@media (width<=760px){.cosmic-gift{min-height:540px}.stage-copy{width:min(92vw,38rem)}.launch-copy{top:min(68vh,50% + 8.5rem)}.launch-copy h1{max-width:14ch;font-size:clamp(2rem,10vw,3.4rem)}.reveal-copy{top:clamp(4.2rem,11vh,6rem)}.reveal-copy h1{max-width:12ch;font-size:clamp(2.8rem,13vw,4.65rem)}.finale-copy{top:clamp(4.1rem,9vh,5.5rem)}.finale-copy h1{max-width:16ch;font-size:clamp(1.85rem,8.6vw,3.2rem)}.quality-orbit{inset:6.2rem .8rem 4.5rem}.quality-card{border-radius:.95rem;width:min(12.7rem,45vw);min-height:4.7rem;padding:.8rem}.quality-0{top:2%;left:0}.quality-1{top:8%;right:0}.quality-2{bottom:17%;left:.2rem}.quality-3{bottom:9%;right:.2rem}.wish-labels{inset:5.4rem .75rem 4.6rem}.wish-label{max-width:54vw;padding:.52rem .68rem;font-size:clamp(.78rem,3.5vw,.98rem)}.wish-0{top:3%;left:2%}.wish-1{top:18%;right:0}.wish-2{top:43%;left:0}.wish-3{bottom:27%;right:0}.wish-4{bottom:13%;left:1%}.wish-5{bottom:4%;right:4%}.tap-hint{width:max-content;max-width:calc(100vw - 2rem);left:50%;right:auto;translate:-50%}}@media (width<=430px){.quality-card{width:min(11.4rem,46vw);font-size:.82rem}.glass-action{width:min(16rem,82vw)}.memory-text p{font-size:clamp(1.2rem,8vw,2rem)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
