@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&family=JetBrains+Mono:wght@600;800&family=Playfair+Display:wght@700;800&display=swap');
:root{--midnight:#07111f;--panel:rgba(255,255,255,.08);--panel2:rgba(255,255,255,.13);--line:rgba(255,255,255,.16);--text:#f7f8fa;--muted:#aeb7c8;--blue:#034694;--chelsea:#0b7cff;--rose:#e94e77;--coffee:#c49a6c;--gold:#d9b75d;--green:#7fffd4;--radius:28px;--shadow:0 30px 90px rgba(0,0,0,.42)}*{box-sizing:border-box}html{height:100%;scroll-behavior:smooth}body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--midnight);color:var(--text);overflow-x:hidden}button,input{font:inherit}button{cursor:pointer;color:inherit}.hidden{display:none!important}.ambient{position:fixed;inset:0;z-index:-5;overflow:hidden;background:radial-gradient(circle at 12% 12%,rgba(11,124,255,.2),transparent 33rem),radial-gradient(circle at 86% 18%,rgba(233,78,119,.16),transparent 28rem),radial-gradient(circle at 50% 90%,rgba(196,154,108,.12),transparent 32rem),linear-gradient(145deg,#050914,#07111f 45%,#110915)}#starCanvas{position:absolute;inset:0;width:100%;height:100%;opacity:.75}.orb{position:absolute;border-radius:50%;filter:blur(65px);opacity:.25}.orb-a{width:22rem;height:22rem;background:var(--chelsea);left:-6rem;top:6rem}.orb-b{width:20rem;height:20rem;background:var(--rose);right:-5rem;top:18rem}.orb-c{width:18rem;height:18rem;background:var(--coffee);left:35%;bottom:-7rem}.heart-drift{position:absolute;left:-8rem;right:-8rem;top:12vh;color:rgba(255,255,255,.035);font-size:clamp(5rem,14vw,13rem);letter-spacing:1rem;transform:rotate(-10deg);white-space:nowrap}.splash{position:fixed;inset:0;z-index:99;display:grid;place-items:center;text-align:center;background:#050914;transition:opacity .7s ease}.splash.fade{opacity:0;pointer-events:none}.pulse-logo{font-size:5rem;color:white;animation:pulse 1.7s infinite}.splash h1{font-family:'Playfair Display',serif;font-size:clamp(3rem,10vw,6rem);margin:.5rem 0 0}.splash p{color:var(--muted);font-size:1.1rem}@keyframes pulse{0%,100%{transform:scale(1);opacity:.82}50%{transform:scale(1.08);opacity:1}}.app{width:min(1180px,calc(100% - 1.2rem));margin:0 auto;padding:env(safe-area-inset-top) 0 6.8rem}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.9rem;padding:.9rem 0;background:linear-gradient(to bottom,rgba(7,17,31,.95),rgba(7,17,31,.68),transparent);backdrop-filter:blur(18px)}.brand,.icon-button{border:1px solid var(--line);background:rgba(255,255,255,.07);width:46px;height:46px;border-radius:18px;display:grid;place-items:center;box-shadow:0 12px 30px rgba(0,0,0,.22)}.brand span{font-size:1.8rem;color:#fff}.topbar h2{margin:0;font-size:1.05rem}.micro{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.16em;color:var(--green);font-size:.72rem;font-weight:800}.screen{display:none;animation:fadeUp .35s ease both}.screen.active{display:block}@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.glass{border:1px solid var(--line);background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.055));box-shadow:var(--shadow);backdrop-filter:blur(18px)}.hero-panel{min-height:420px;border-radius:38px;padding:clamp(1.4rem,5vw,4rem);display:grid;align-content:end;position:relative;overflow:hidden}.hero-panel:before{content:'♡';position:absolute;right:1.5rem;top:.4rem;font-size:13rem;color:rgba(255,255,255,.045)}h1{font-family:'Playfair Display',serif;font-size:clamp(2.8rem,8vw,6rem);line-height:.92;margin:.2rem 0 1rem;letter-spacing:-.055em}h2{font-size:1.4rem}h3{font-size:1.25rem;margin:.2rem 0 .6rem}p{color:var(--muted);line-height:1.6}.lead{max-width:680px;font-size:1.08rem}.countdown-card{margin-top:1.2rem;border:1px solid var(--line);border-radius:26px;background:rgba(0,0,0,.18);padding:1rem}.countdown-card span{color:var(--muted);font-size:.9rem}.countdown-grid{display:grid;grid-template-columns:repeat(4,auto auto);gap:.2rem .35rem;align-items:end;margin-top:.4rem;font-family:'JetBrains Mono',monospace}.countdown-grid strong{font-size:clamp(1.4rem,5vw,2.8rem);color:white}.countdown-grid small{font-size:.75rem;color:var(--muted);margin-right:.5rem}.today-grid,.memory-grid,.cards,.stats-grid,.achievement-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1rem}.daily-card,.memory-card,.song-card,.stat-card,.achievement,.setting-card{border:1px solid var(--line);background:linear-gradient(155deg,rgba(255,255,255,.09),rgba(255,255,255,.045));border-radius:var(--radius);padding:1.15rem;text-align:left;min-height:160px;transition:transform .22s ease,border-color .22s ease,background .22s ease}.daily-card:hover,.memory-card:hover,.song-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.32);background:rgba(255,255,255,.12)}.action-card{width:100%}.section-heading{margin:1.2rem 0 1rem}.tool-row{display:flex;gap:.75rem;margin:1rem 0;flex-wrap:wrap}.tool-row input{flex:1;min-width:220px;border:1px solid var(--line);background:rgba(0,0,0,.18);color:var(--text);border-radius:999px;padding:.9rem 1rem}.pill{border:1px solid var(--line);background:rgba(255,255,255,.08);border-radius:999px;padding:.85rem 1rem;font-weight:800}.memory-card:before{content:'';display:block;height:110px;border-radius:22px;margin-bottom:1rem;background:linear-gradient(135deg,var(--chelsea),var(--rose),var(--coffee));opacity:.85}.memory-card[data-type='coffee']:before{background:linear-gradient(135deg,#6b3f22,var(--coffee),#f2d6a2)}.memory-card[data-type='chelsea']:before{background:linear-gradient(135deg,#034694,#0b7cff,#d9b75d)}.memory-card[data-type='newcastle']:before{background:repeating-linear-gradient(90deg,#050505 0 18px,#fff 18px 32px,#050505 32px 50px)}.memory-card[data-type='travel']:before{background:linear-gradient(135deg,#0b7cff,#7fffd4,#d9b75d)}.memory-card[data-type='funny']:before{background:linear-gradient(135deg,#e94e77,#bda7ff,#7fffd4)}.netflix-row{margin:1.1rem 0 1.5rem}.netflix-row h3{margin-left:.2rem}.poster-strip{display:flex;gap:.85rem;overflow-x:auto;padding:.35rem .1rem 1rem;scroll-snap-type:x mandatory}.poster{min-width:170px;height:235px;border-radius:24px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(11,124,255,.25),rgba(233,78,119,.12));padding:1rem;display:flex;flex-direction:column;justify-content:flex-end;scroll-snap-align:start}.galaxy-shell{height:62vh;border-radius:34px;position:relative;overflow:hidden}.galaxy-shell canvas{width:100%;height:100%;display:block}.galaxy-hint{position:absolute;left:1rem;bottom:1rem;color:var(--muted);font-size:.85rem;background:rgba(0,0,0,.35);border:1px solid var(--line);border-radius:999px;padding:.55rem .8rem}.map-shell{display:grid;grid-template-columns:1.4fr .6fr;gap:1rem;border-radius:34px;padding:1rem}.fake-map{min-height:420px;border-radius:28px;position:relative;overflow:hidden;background:radial-gradient(circle at 25% 28%,rgba(127,255,212,.22),transparent 20%),radial-gradient(circle at 70% 70%,rgba(233,78,119,.18),transparent 24%),repeating-linear-gradient(45deg,rgba(255,255,255,.045) 0 1px,transparent 1px 20px),rgba(0,0,0,.2)}.map-pin{position:absolute;width:44px;height:44px;border:0;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--green);color:#07111f;font-weight:900;box-shadow:0 18px 40px rgba(0,0,0,.4)}.map-pin span{display:block;transform:rotate(45deg)}.stat-card strong{display:block;font-family:'JetBrains Mono',monospace;font-size:2.7rem;background:linear-gradient(135deg,var(--green),var(--rose),var(--gold));-webkit-background-clip:text;color:transparent}.achievement{position:relative;overflow:hidden}.achievement:after{content:'';position:absolute;inset:auto 0 0;height:5px;background:linear-gradient(90deg,var(--green),var(--chelsea),var(--rose));transform-origin:left;transform:scaleX(var(--progress,.4))}.vault{max-width:440px;margin:auto;border-radius:34px;padding:1.25rem}.vault-screen{height:70px;border:1px solid var(--line);border-radius:22px;background:rgba(0,0,0,.22);display:grid;place-items:center;font-size:2rem;letter-spacing:.5rem;margin-bottom:1rem;font-family:'JetBrains Mono',monospace}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.keypad button{height:64px;border-radius:22px;border:1px solid var(--line);background:rgba(255,255,255,.08);font-weight:900;font-size:1.25rem}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.bottom-nav{position:fixed;left:50%;bottom:max(.8rem,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:40;width:min(520px,calc(100% - 1.2rem));border:1px solid var(--line);background:rgba(7,17,31,.82);backdrop-filter:blur(22px);border-radius:30px;padding:.5rem;display:grid;grid-template-columns:repeat(5,1fr);box-shadow:0 20px 70px rgba(0,0,0,.45)}.bottom-nav button{border:0;background:transparent;border-radius:22px;padding:.55rem .25rem;display:grid;gap:.15rem;place-items:center;color:var(--muted);font-weight:900}.bottom-nav button.active{background:rgba(255,255,255,.12);color:white}.bottom-nav span{font-size:.65rem}.modal{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.64);display:grid;place-items:center;padding:1rem}.modal-card{width:min(560px,100%);border-radius:34px;padding:1.5rem;position:relative}.close{position:absolute;right:1rem;top:1rem;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.08)}.tag-row{display:flex;gap:.4rem;flex-wrap:wrap}.tag-row span{border:1px solid var(--line);border-radius:999px;padding:.35rem .6rem;color:var(--muted)}body.theme-soft{--midnight:#160f1e;--blue:#8aa7ff;--chelsea:#8aa7ff;--rose:#ff7eb8;--coffee:#deb887}body.theme-football{--midnight:#06080c;--chelsea:#034694;--rose:#d9b75d;--green:#ffffff}@media(max-width:760px){.app{width:min(100% - .9rem,1180px)}.today-grid,.memory-grid,.cards,.stats-grid,.achievement-grid,.settings-grid{grid-template-columns:1fr}.map-shell{grid-template-columns:1fr}.hero-panel{min-height:380px}.countdown-grid{grid-template-columns:repeat(4,auto auto);gap:.1rem}.topbar{padding:.75rem 0}h1{font-size:3.35rem}.galaxy-shell{height:58vh}}


/* Our Space 2.1 — Memory Galaxy upgrade */
.galaxy-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.galaxy-shell{height:68vh;min-height:520px;background:radial-gradient(circle at 50% 48%,rgba(11,124,255,.12),transparent 28%),radial-gradient(circle at 30% 70%,rgba(233,78,119,.09),transparent 24%),rgba(0,0,0,.18)}.galaxy-shell canvas{touch-action:none;cursor:grab}.galaxy-shell canvas:active{cursor:grabbing}.galaxy-hud{position:absolute;left:1rem;top:1rem;display:flex;gap:.45rem;flex-wrap:wrap;max-width:calc(100% - 2rem)}.galaxy-hud div{display:flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.75rem;border:1px solid var(--line);background:rgba(0,0,0,.35);backdrop-filter:blur(10px);border-radius:999px;padding:.42rem .6rem}.legend-dot{width:.65rem;height:.65rem;border-radius:50%;display:inline-block;box-shadow:0 0 14px currentColor}.legend-dot.coffee{background:#c49a6c;color:#c49a6c}.legend-dot.travel{background:#7fffd4;color:#7fffd4}.legend-dot.football{background:#0b7cff;color:#0b7cff}.legend-dot.funny{background:#e94e77;color:#e94e77}.legend-dot.default{background:#fff;color:#fff}.galaxy-focus{position:absolute;right:1rem;bottom:1rem;width:min(320px,calc(100% - 2rem));border:1px solid var(--line);border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.15),rgba(255,255,255,.06));backdrop-filter:blur(18px);padding:1rem;box-shadow:0 22px 70px rgba(0,0,0,.42);animation:focusIn .24s ease both}.galaxy-focus h3{margin:.1rem 0 .35rem}.galaxy-focus p{margin:.2rem 0 .7rem}@keyframes focusIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-card:before{content:"";display:block;height:120px;border-radius:24px;margin-bottom:1rem;background:linear-gradient(135deg,rgba(11,124,255,.45),rgba(233,78,119,.28),rgba(196,154,108,.22));box-shadow:inset 0 0 60px rgba(255,255,255,.08)}
@media(max-width:760px){.galaxy-shell{height:66vh;min-height:500px}.galaxy-hud{top:.75rem;left:.75rem}.galaxy-hud div{font-size:.68rem;padding:.35rem .5rem}.galaxy-focus{left:.75rem;right:.75rem;bottom:.75rem;width:auto}.galaxy-hint{bottom:calc(.75rem + 132px)}}

/* Our Space 2.2 — Netflix + Gallery upgrade */
.bottom-nav{grid-template-columns:repeat(6,1fr);width:min(610px,calc(100% - 1.2rem))}.gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.featured-memory,.continue-watching{border-radius:34px;padding:1.25rem;margin:1rem 0;display:grid;grid-template-columns:1fr 1.2fr;gap:1rem;align-items:end;overflow:hidden;position:relative}.featured-memory:after,.continue-watching:after{content:'♡';position:absolute;right:1rem;top:-.8rem;font-size:8rem;color:rgba(255,255,255,.04)}.continue-watching{min-height:280px;background:radial-gradient(circle at 85% 20%,rgba(233,78,119,.22),transparent 30%),linear-gradient(135deg,rgba(229,9,20,.18),rgba(255,255,255,.06))}.episode-badge{justify-self:end;align-self:start;border:1px solid var(--line);border-radius:999px;padding:.65rem .85rem;background:rgba(0,0,0,.28);font-family:'JetBrains Mono',monospace;color:white}.feature-art{min-height:260px;border-radius:28px;background:linear-gradient(135deg,var(--chelsea),var(--rose),var(--coffee));box-shadow:inset 0 0 80px rgba(255,255,255,.08),0 24px 70px rgba(0,0,0,.28)}.feature-art[data-type='coffee'],.gallery-art[data-type='coffee']{background:linear-gradient(135deg,#6b3f22,var(--coffee),#f2d6a2)}.feature-art[data-type='chelsea'],.gallery-art[data-type='chelsea']{background:linear-gradient(135deg,#034694,#0b7cff,#d9b75d)}.feature-art[data-type='newcastle'],.gallery-art[data-type='newcastle']{background:repeating-linear-gradient(90deg,#050505 0 18px,#fff 18px 32px,#050505 32px 50px)}.feature-art[data-type='travel'],.gallery-art[data-type='travel']{background:linear-gradient(135deg,#0b7cff,#7fffd4,#d9b75d)}.feature-art[data-type='funny'],.gallery-art[data-type='funny']{background:linear-gradient(135deg,#e94e77,#bda7ff,#7fffd4)}.album-filters{display:flex;gap:.55rem;overflow-x:auto;padding:.25rem 0 1rem}.album-filter{white-space:nowrap;border:1px solid var(--line);background:rgba(255,255,255,.07);border-radius:999px;color:var(--muted);padding:.65rem .85rem;font-weight:800}.album-filter.active{background:linear-gradient(135deg,rgba(127,255,212,.24),rgba(11,124,255,.22));color:white;border-color:rgba(127,255,212,.55)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.gallery-card{border:1px solid var(--line);border-radius:28px;background:linear-gradient(155deg,rgba(255,255,255,.09),rgba(255,255,255,.045));overflow:hidden;text-align:left;padding:0;transition:transform .22s ease,border-color .22s ease}.gallery-card:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.34)}.gallery-art{height:190px;display:grid;place-items:center;background:linear-gradient(135deg,var(--chelsea),var(--rose),var(--coffee))}.gallery-art span{font-size:3rem;filter:drop-shadow(0 12px 22px rgba(0,0,0,.3))}.gallery-card div:last-child{padding:1rem}.row-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.35rem}.row-see{border:1px solid var(--line);background:rgba(255,255,255,.06);border-radius:999px;color:var(--muted);padding:.5rem .7rem;font-weight:800}.premium-poster{position:relative;overflow:hidden;min-width:190px;height:270px;transform-origin:center;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.premium-poster:hover{transform:scale(1.045);border-color:rgba(255,255,255,.38);box-shadow:0 28px 80px rgba(0,0,0,.42)}.premium-poster:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,rgba(11,124,255,.28),rgba(233,78,119,.15))}.premium-poster[data-type='coffee']:before{background:linear-gradient(135deg,rgba(107,63,34,.55),rgba(196,154,108,.36))}.premium-poster[data-type='chelsea']:before{background:linear-gradient(135deg,rgba(3,70,148,.72),rgba(11,124,255,.3),rgba(217,183,93,.16))}.premium-poster[data-type='newcastle']:before{background:repeating-linear-gradient(90deg,rgba(0,0,0,.68) 0 20px,rgba(255,255,255,.18) 20px 34px)}.premium-poster[data-type='travel']:before{background:linear-gradient(135deg,rgba(11,124,255,.35),rgba(127,255,212,.22),rgba(217,183,93,.14))}.poster-number{position:absolute;right:.8rem;top:.7rem;font-family:'JetBrains Mono',monospace;font-size:2.1rem;color:rgba(255,255,255,.16);font-weight:900}.mini-tags{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.85rem}.mini-tags span{border:1px solid var(--line);border-radius:999px;padding:.25rem .48rem;color:var(--muted);font-size:.72rem}.modal-card{max-height:86vh;overflow:auto}.modal-card:after{content:'Swipe-style gallery coming alive — replace placeholder art with real photos in assets/photos.';display:block;border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem;color:var(--muted);font-size:.82rem}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}.featured-memory,.continue-watching{grid-template-columns:1fr}.feature-art{min-height:210px}}
@media(max-width:760px){.bottom-nav span{font-size:.58rem}.bottom-nav button{padding:.45rem .15rem}.gallery-grid{grid-template-columns:1fr}.gallery-art{height:220px}.premium-poster{min-width:165px;height:245px}.featured-memory,.continue-watching{border-radius:30px;padding:1rem}.episode-badge{justify-self:start}.row-head h3{font-size:1.1rem}}


/* Our Space 2.3 — Surprises, letters, scratch cards and time capsules */
.surprise-home-card { border-color: rgba(233,78,119,.38); background: linear-gradient(155deg, rgba(233,78,119,.16), rgba(11,124,255,.10)) !important; }
.surprise-tabs { display:flex; gap:.6rem; overflow-x:auto; padding:.35rem 0 1rem; -webkit-overflow-scrolling:touch; }
.surprise-tabs .pill { white-space:nowrap; opacity:.78; }
.surprise-tabs .pill.active { opacity:1; box-shadow:0 0 0 1px rgba(255,255,255,.18), 0 18px 45px rgba(233,78,119,.18); }
.surprise-panel { min-height: 420px; }
.surprise-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(210px,1fr)); gap:1rem; }
.surprise-card, .scratch-card, .letter-card, .surprise-detail { border-radius:28px; padding:1.15rem; text-align:left; border:1px solid rgba(255,255,255,.16); color:var(--text); }
.surprise-card { min-height:190px; display:flex; flex-direction:column; justify-content:space-between; background:linear-gradient(155deg, rgba(255,255,255,.10), rgba(255,255,255,.045)); }
.surprise-card.locked { opacity:.72; filter:saturate(.8); }
.surprise-card.unlocked { border-color:rgba(127,255,212,.45); box-shadow:0 20px 80px rgba(127,255,212,.08); }
.surprise-detail { max-width:720px; margin:0 auto; background:linear-gradient(155deg, rgba(233,78,119,.15), rgba(255,255,255,.055)); }
.scratch-card { min-height:210px; background: radial-gradient(circle at 20% 20%, rgba(255,255,255,.22), transparent 24%), repeating-linear-gradient(135deg, rgba(255,255,255,.18) 0 8px, rgba(255,255,255,.06) 8px 16px), linear-gradient(155deg, rgba(196,154,108,.34), rgba(233,78,119,.18)); display:flex; flex-direction:column; justify-content:space-between; transition:.28s ease; }
.scratch-card.revealed { background:linear-gradient(155deg, rgba(127,255,212,.22), rgba(11,124,255,.16)); transform:translateY(-4px) scale(1.01); }
.scratch-card span { text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; font-weight:900; color:rgba(255,255,255,.75); }
.letter-stack { display:grid; gap:1rem; }
.letter-card { position:relative; overflow:hidden; background:linear-gradient(155deg, rgba(255,255,255,.12), rgba(196,154,108,.10)); }
.letter-card::after { content:'♡'; position:absolute; right:1rem; bottom:-1.4rem; font-size:6rem; color:rgba(255,255,255,.04); }
@media (max-width: 640px){ .surprise-grid{ grid-template-columns:1fr; } .surprise-panel{ min-height:360px; } }

/* ---------------- Our Space 2.4: Achievements + Interactive Map ---------------- */
.map-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;flex-wrap:wrap}.upgraded-map-shell{grid-template-columns:1.25fr .75fr;align-items:stretch}.map-stage{position:relative}.upgraded-map{min-height:520px;background:radial-gradient(circle at 18% 22%,rgba(11,124,255,.26),transparent 20%),radial-gradient(circle at 78% 68%,rgba(233,78,119,.2),transparent 24%),radial-gradient(circle at 47% 48%,rgba(127,255,212,.14),transparent 20%),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.03) 1px,transparent 1px),rgba(0,0,0,.22);background-size:auto,auto,auto,42px 42px,42px 42px,auto}.upgraded-map:before{content:'';position:absolute;inset:8%;border:1px dashed rgba(255,255,255,.09);border-radius:42% 58% 49% 51%;transform:rotate(-8deg)}.upgraded-map:after{content:'';position:absolute;left:18%;right:12%;top:24%;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);transform:rotate(28deg);filter:blur(.2px)}.upgraded-pin{background:var(--pin-color)!important;box-shadow:0 0 0 7px color-mix(in srgb,var(--pin-color) 20%,transparent),0 0 35px color-mix(in srgb,var(--pin-color) 55%,transparent),0 18px 40px rgba(0,0,0,.45);transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease}.upgraded-pin:hover,.upgraded-pin.active{transform:rotate(-45deg) scale(1.18);z-index:5}.upgraded-pin.active{box-shadow:0 0 0 10px color-mix(in srgb,var(--pin-color) 24%,transparent),0 0 60px color-mix(in srgb,var(--pin-color) 75%,transparent),0 22px 45px rgba(0,0,0,.5)}.upgraded-pin em{position:absolute;left:28px;top:28px;transform:rotate(45deg);font-style:normal;color:#fff;background:rgba(0,0,0,.52);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:.25rem .5rem;font-size:.68rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s ease}.upgraded-pin:hover em,.upgraded-pin.active em{opacity:1}.map-info-card{border:1px solid var(--line);border-radius:28px;background:linear-gradient(155deg,rgba(255,255,255,.11),rgba(255,255,255,.045));padding:1.2rem;align-self:stretch;display:flex;flex-direction:column;justify-content:center}.map-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}.map-legend{position:absolute;left:1rem;right:1rem;bottom:1rem;display:flex;gap:.55rem;flex-wrap:wrap}.map-legend span{border:1px solid var(--line);background:rgba(0,0,0,.4);backdrop-filter:blur(14px);border-radius:999px;padding:.45rem .65rem;color:var(--muted);font-size:.78rem}.legend-dot{display:inline-block;width:.65rem;height:.65rem;border-radius:50%;margin-right:.35rem;background:#f7f8fa}.legend-dot.coffee{background:var(--coffee)}.legend-dot.travel{background:var(--green)}.legend-dot.football{background:var(--chelsea)}.legend-dot.funny{background:var(--rose)}.wrapped-stat{position:relative;overflow:hidden}.wrapped-stat:before{content:'';position:absolute;inset:auto -30% -45% -30%;height:90px;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 62%)}.upgraded-achievement{display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:start;min-height:220px}.upgraded-achievement .micro,.upgraded-achievement h3,.upgraded-achievement p,.upgraded-achievement small,.upgraded-achievement .progress-track{grid-column:2}.achievement-ring{grid-row:1 / span 5;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--green) calc(var(--progress)*360deg),rgba(255,255,255,.1) 0);position:relative;box-shadow:0 18px 45px rgba(0,0,0,.25)}.achievement-ring:before{content:'';position:absolute;inset:7px;border-radius:50%;background:#07111f;border:1px solid rgba(255,255,255,.08)}.achievement-ring span{position:relative;font-size:1.45rem}.progress-track{height:8px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;margin:.35rem 0}.progress-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),var(--chelsea),var(--rose));box-shadow:0 0 24px rgba(127,255,212,.25)}.upgraded-achievement small{color:var(--muted);font-weight:800}.upgraded-achievement.unlocked{border-color:rgba(127,255,212,.42);box-shadow:0 25px 80px rgba(127,255,212,.08)}.upgraded-achievement.unlocked .achievement-ring{animation:softPop 1.4s ease both}@keyframes softPop{0%{transform:scale(.9)}45%{transform:scale(1.08)}100%{transform:scale(1)}}
@media(max-width:760px){.upgraded-map-shell{grid-template-columns:1fr}.upgraded-map{min-height:420px}.upgraded-pin em{display:none}.map-legend{position:static;margin-top:.75rem}.upgraded-achievement{grid-template-columns:1fr}.upgraded-achievement .micro,.upgraded-achievement h3,.upgraded-achievement p,.upgraded-achievement small,.upgraded-achievement .progress-track{grid-column:1}.achievement-ring{grid-row:auto}}


/* Our Space 2.5: Daily Magic + Story So Far */
.daily-magic-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1rem;align-items:stretch}
.magic-hero,.magic-card,.story-card{border-radius:28px;padding:1.2rem;position:relative;overflow:hidden}
.magic-hero{grid-row:span 2;min-height:340px;background:linear-gradient(145deg,rgba(11,124,255,.22),rgba(233,78,119,.12)),rgba(255,255,255,.07)}
.magic-hero:after,.story-card:after{content:'♡';position:absolute;right:1rem;bottom:-1.2rem;font-size:6rem;color:rgba(255,255,255,.055)}
.magic-card{min-height:160px;background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.045))}
.story-chapters{display:grid;gap:1rem}
.story-card{background:linear-gradient(135deg,rgba(196,154,108,.18),rgba(11,124,255,.10)),rgba(255,255,255,.06)}
.story-card span{display:inline-flex;margin-top:.7rem;color:var(--muted);font-size:.8rem;border:1px solid var(--line);border-radius:999px;padding:.35rem .65rem}
#daily::before{background:radial-gradient(circle at 20% 20%,rgba(255,184,107,.18),transparent 30%),radial-gradient(circle at 80% 18%,rgba(11,124,255,.18),transparent 28%)}
#story::before{background:radial-gradient(circle at 20% 20%,rgba(196,154,108,.20),transparent 28%),radial-gradient(circle at 85% 20%,rgba(233,78,119,.13),transparent 30%)}
@media(max-width:760px){.daily-magic-grid{grid-template-columns:1fr}.magic-hero{grid-row:auto;min-height:260px}}


/* ---------------- Our Space 3.0: Play Together ---------------- */
.play-home-card, #play::before { background: linear-gradient(135deg, rgba(255,119,183,.22), rgba(11,124,255,.18), rgba(127,255,212,.12)) !important; }
.play-heading { display:flex; justify-content:space-between; gap:1rem; align-items:flex-end; }
.play-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:1rem; }
.play-panel { border-radius: 30px; padding: clamp(1rem, 4vw, 1.5rem); min-height: 260px; position:relative; overflow:hidden; }
.play-panel::after { content:'♡'; position:absolute; right:1rem; bottom:-1.8rem; font-size:7rem; color:rgba(255,255,255,.035); pointer-events:none; }
.wheel-panel { grid-row: span 2; }
.panel-head { display:flex; justify-content:space-between; gap:1rem; align-items:start; }
.wheel-tabs { display:flex; gap:.5rem; flex-wrap:wrap; margin:.7rem 0 1rem; }
.wheel-tab { border:1px solid var(--line); color:var(--text); background:rgba(255,255,255,.06); border-radius:999px; padding:.55rem .75rem; font-weight:800; }
.wheel-tab.active { background:linear-gradient(135deg, var(--accent), var(--rose)); color:white; }
.wheel-stage { height: 280px; display:grid; place-items:center; position:relative; margin:.4rem 0 1rem; }
.spin-wheel { width:min(250px,70vw); height:min(250px,70vw); border-radius:50%; border:8px solid rgba(255,255,255,.16); box-shadow: 0 25px 80px rgba(0,0,0,.35), inset 0 0 30px rgba(255,255,255,.12); position:relative; transition: transform 1.15s cubic-bezier(.18,.84,.22,1); overflow:hidden; }
.spin-wheel::after { content:'♡'; position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:58px; height:58px; border-radius:50%; background:rgba(7,17,31,.88); display:grid; place-items:center; font-size:1.7rem; color:white; box-shadow:0 10px 30px rgba(0,0,0,.32); }
.spin-wheel span { position:absolute; left:50%; top:50%; transform: rotate(calc((360deg / var(--n)) * var(--i))) translate(74px) rotate(90deg); transform-origin:0 0; max-width:70px; font-size:.68rem; font-weight:900; color:#07111f; text-shadow:0 1px rgba(255,255,255,.35); }
.wheel-pointer { position:absolute; top:.2rem; z-index:3; color:#fff; filter:drop-shadow(0 6px 10px rgba(0,0,0,.45)); }
.big-pill { width:100%; justify-content:center; font-size:1rem; }
.result-card, .couple-card, .quiz-box, .challenge-text, .tonight-plan { border:1px solid var(--line); background:rgba(255,255,255,.07); border-radius:24px; padding:1rem; margin-top:1rem; }
.couple-card { min-height:190px; display:grid; place-items:center; text-align:center; background:linear-gradient(145deg, rgba(255,255,255,.11), rgba(255,119,183,.08)); }
.couple-card h3 { font-size:1.45rem; }
.flip-in { animation: flipIn .4s ease both; }
@keyframes flipIn { from { transform: rotateY(75deg) scale(.96); opacity:.3; } to { transform: rotateY(0) scale(1); opacity:1; } }
.quiz-answer-hidden { filter: blur(6px); user-select:none; opacity:.55; }
.quiz-actions { display:flex; gap:.65rem; flex-wrap:wrap; margin-top:1rem; }
.tonight-plan { display:grid; grid-template-columns: repeat(2,1fr); gap:.7rem; }
.tonight-plan div { border:1px solid rgba(255,255,255,.12); border-radius:18px; padding:.8rem; background:rgba(0,0,0,.12); }
.tonight-plan span { display:block; font-size:1.45rem; }
.tonight-plan strong { display:block; margin-top:.25rem; }
.scoreboard { display:grid; grid-template-columns: 1fr auto; gap:.7rem; align-items:center; margin:1rem 0; }
.scoreboard strong { font-size:2.6rem; line-height:1; padding:.5rem .8rem; border-radius:18px; background:rgba(255,255,255,.08); text-align:center; }
.small-note { font-size:.9rem; }
@media (max-width: 850px){ .play-heading{display:block;} .play-grid{grid-template-columns:1fr;} .wheel-panel{grid-row:auto;} .wheel-stage{height:250px;} }
@media (max-width: 480px){ .tonight-plan{grid-template-columns:1fr;} .spin-wheel span{transform: rotate(calc((360deg / var(--n)) * var(--i))) translate(62px) rotate(90deg); font-size:.6rem;} }

/* ---------------- Our Space 3.2: More Games Arcade ---------------- */
.fortune-panel,.dice-panel,.this-panel,.mystery-panel,.adventure-panel,.matchgame-panel,.quote-panel,.cafe-panel,.photo-panel,.love-panel{background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.045));}
.cookie-button,.mystery-box{width:110px;height:110px;border-radius:30px;border:1px solid var(--line);background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.28),transparent 22%),linear-gradient(135deg,rgba(196,154,108,.42),rgba(233,78,119,.12));font-size:3rem;display:grid;place-items:center;margin:1rem auto;box-shadow:0 22px 70px rgba(0,0,0,.32);transition:transform .2s ease;}
.cookie-button:hover,.mystery-box:hover{transform:translateY(-4px) rotate(-3deg)}
.dice-face{width:96px;height:96px;border-radius:24px;border:1px solid rgba(255,255,255,.22);background:linear-gradient(145deg,rgba(255,255,255,.18),rgba(255,255,255,.06));display:grid;place-items:center;font-size:3rem;font-weight:900;margin:1rem auto;box-shadow:0 18px 50px rgba(0,0,0,.28)}
.dice-roll{animation:diceRoll .45s ease both}@keyframes diceRoll{0%{transform:rotate(0) scale(.9)}50%{transform:rotate(20deg) scale(1.12)}100%{transform:rotate(0) scale(1)}}
.choice-box{border:1px solid var(--line);background:rgba(255,255,255,.07);border-radius:24px;padding:1rem;display:grid;gap:.8rem;align-items:center;text-align:center;margin-top:1rem}.choice-option{border:1px solid rgba(255,255,255,.18);background:linear-gradient(135deg,rgba(11,124,255,.18),rgba(233,78,119,.10));border-radius:22px;padding:1rem;font-weight:900}.choice-box span{color:var(--muted);font-weight:900}.box-pop{animation:boxPop .5s ease both}@keyframes boxPop{0%{transform:scale(.85) rotate(-6deg)}55%{transform:scale(1.12) rotate(4deg)}100%{transform:scale(1) rotate(0)}}
.match-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;margin-top:1rem}.match-card{aspect-ratio:1;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.07);font-size:1.5rem;font-weight:900}.match-card.open{background:linear-gradient(135deg,rgba(11,124,255,.28),rgba(233,78,119,.15));}.match-card.matched{background:linear-gradient(135deg,rgba(127,255,212,.28),rgba(11,124,255,.18));box-shadow:0 0 30px rgba(127,255,212,.12)}
.love-meter{display:grid;place-items:center;gap:.4rem;margin:1rem auto;padding:1rem;border-radius:28px;border:1px solid var(--line);background:radial-gradient(circle at 50% 20%,rgba(233,78,119,.24),transparent 50%),rgba(255,255,255,.06);max-width:190px}.love-meter span{font-size:3rem;color:var(--rose)}.love-meter strong{font-size:2.4rem;font-family:'JetBrains Mono',monospace}.love-pulse{animation:lovePulse .8s ease both}@keyframes lovePulse{0%{transform:scale(.92)}40%{transform:scale(1.08)}100%{transform:scale(1)}}
#adventurePlan{grid-template-columns:repeat(2,1fr)}
@media(max-width:520px){.match-grid{grid-template-columns:repeat(3,1fr)}#adventurePlan{grid-template-columns:1fr}.cookie-button,.mystery-box,.dice-face{width:88px;height:88px;font-size:2.5rem}}


/* Our Space 3.2 - Arcade expansion */
.bingo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.45rem;margin:1rem 0}.bingo-square{min-height:64px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.06);color:var(--text);font-weight:750;font-size:.72rem;padding:.45rem}.bingo-square.done{background:linear-gradient(135deg,var(--rose),var(--chelsea));color:white;box-shadow:0 0 22px rgba(233,78,119,.25)}.emoji-puzzle{text-align:center;padding:1rem;border-radius:22px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);min-height:140px}.emoji-big{font-size:2.8rem;letter-spacing:.1rem;margin:.7rem 0}.penalty-board{display:grid;grid-template-columns:1fr auto 1fr auto;gap:.7rem;align-items:center;padding:1rem;border-radius:22px;background:rgba(0,0,0,.18);margin:1rem 0}.penalty-board strong{font-size:2rem}.quickfire-prompt{min-height:84px;padding:1rem;border-radius:22px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);display:grid;place-items:center;text-align:center}.quickfire-timer{width:96px;height:96px;border-radius:999px;margin:1rem auto;display:grid;place-items:center;font-size:2.4rem;font-weight:1000;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.25),transparent 32%),linear-gradient(135deg,var(--coffee),var(--rose));box-shadow:0 18px 50px rgba(0,0,0,.28)}.story-panel .result-card,.hunt-panel .result-card{min-height:118px}

/* ==========================================================
   OUR SPACE 3.3 — COSMIC ARCADE VISUAL OVERHAUL
   Goal: same features, dramatically cooler sci-fi app look.
   ========================================================== */
:root{
  --cosmic-black:#02040b;
  --deep-space:#070a18;
  --holo-blue:#2fb7ff;
  --saber-blue:#20d7ff;
  --saber-red:#ff355e;
  --guardian-purple:#b75cff;
  --arena-gold:#ffbf4d;
  --rose:#ff4d8d;
  --emerald:#5dffb5;
  --panel:rgba(8,13,32,.72);
  --panel-strong:rgba(12,18,44,.88);
  --line:rgba(255,255,255,.16);
  --line-hot:rgba(47,183,255,.58);
  --text:#f8fbff;
  --muted:#a8b3cf;
  --shadow:0 30px 90px rgba(0,0,0,.62);
}
html{background:#02040b;}
body{
  background:
    radial-gradient(circle at 18% 8%, rgba(47,183,255,.25), transparent 28rem),
    radial-gradient(circle at 82% 15%, rgba(183,92,255,.22), transparent 28rem),
    radial-gradient(circle at 72% 88%, rgba(255,191,77,.16), transparent 25rem),
    radial-gradient(circle at 12% 76%, rgba(255,53,94,.16), transparent 24rem),
    linear-gradient(145deg,#02040b 0%,#070a18 45%,#100411 100%) !important;
  color:var(--text);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:-4;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.75) 1px, transparent 1.6px),
    radial-gradient(circle, rgba(47,183,255,.55) 1px, transparent 1.7px),
    radial-gradient(circle, rgba(255,77,141,.45) 1px, transparent 1.7px);
  background-size: 58px 58px, 91px 91px, 137px 137px;
  background-position:0 0, 22px 17px, 48px 73px;
  opacity:.24; animation:starDrift 36s linear infinite;
}
body::after{
  content:""; position:fixed; inset:-20%; pointer-events:none; z-index:-3;
  background:
    conic-gradient(from 120deg at 50% 50%, transparent 0deg, rgba(47,183,255,.08) 52deg, transparent 110deg, rgba(183,92,255,.08) 182deg, transparent 250deg, rgba(255,191,77,.07) 304deg, transparent 360deg);
  filter:blur(42px); animation:nebulaSpin 30s linear infinite;
}
@keyframes starDrift{to{background-position:320px 480px, -220px 330px, 260px -160px;}}
@keyframes nebulaSpin{to{transform:rotate(360deg)}}
.ambient .orb{filter:blur(58px)!important; opacity:.45!important;}
.orb-a{background:var(--holo-blue)!important}.orb-b{background:var(--guardian-purple)!important}.orb-c{background:var(--arena-gold)!important}
.heart-drift{opacity:.16!important; color:var(--rose)!important; text-shadow:0 0 30px var(--rose);}
#starCanvas{opacity:.8!important; mix-blend-mode:screen;}

/* cinematic splash */
.splash{
  background:
    radial-gradient(circle at 50% 45%, rgba(47,183,255,.22), transparent 18rem),
    radial-gradient(circle at 50% 50%, rgba(255,77,141,.13), transparent 24rem),
    #02040b !important;
}
.splash .pulse-logo,.pulse-logo{
  color:#fff!important; text-shadow:0 0 18px var(--rose),0 0 45px var(--holo-blue); animation:pulseLogo 1.4s ease-in-out infinite;
}
@keyframes pulseLogo{50%{transform:scale(1.08); filter:drop-shadow(0 0 18px var(--rose));}}
.splash h1{letter-spacing:.18em;text-transform:uppercase;font-weight:900!important;}

/* top bar and bottom nav: premium HUD */
.topbar{
  background:linear-gradient(180deg,rgba(2,4,11,.86),rgba(2,4,11,.44))!important;
  backdrop-filter:blur(22px); border-bottom:1px solid rgba(47,183,255,.22)!important;
}
.brand,.icon-button,.pill,.nav-item,button{
  -webkit-tap-highlight-color:transparent;
}
.brand{
  border:1px solid rgba(47,183,255,.45)!important;
  background:linear-gradient(135deg,rgba(47,183,255,.2),rgba(255,77,141,.13))!important;
  box-shadow:0 0 22px rgba(47,183,255,.18), inset 0 0 18px rgba(255,255,255,.08)!important;
}
.brand span{color:#fff;text-shadow:0 0 18px var(--rose)}
.icon-button,.pill{
  border:1px solid rgba(47,183,255,.42)!important;
  background:linear-gradient(135deg,rgba(47,183,255,.14),rgba(183,92,255,.12))!important;
  color:#f8fbff!important;
  box-shadow:0 0 16px rgba(47,183,255,.10), inset 0 0 18px rgba(255,255,255,.04)!important;
}
.pill:hover,.icon-button:hover{transform:translateY(-2px); box-shadow:0 0 24px rgba(47,183,255,.28)!important;}
.bottom-nav{
  background:rgba(3,6,18,.78)!important; border:1px solid rgba(47,183,255,.25)!important;
  box-shadow:0 20px 60px rgba(0,0,0,.52), inset 0 0 24px rgba(47,183,255,.05)!important;
  backdrop-filter:blur(22px);
}
.nav-item.active{color:#fff!important; text-shadow:0 0 14px var(--holo-blue);}
.nav-item.active::before{background:linear-gradient(90deg,var(--holo-blue),var(--guardian-purple),var(--rose))!important; box-shadow:0 0 16px var(--holo-blue)}

/* cards/panels */
.glass,.daily-card,.memory-card,.play-panel,.modal-card,.map-info-card,.featured-memory,.continue-watching,.achievement-card,.magic-card,.magic-hero,.story-card,.surprise-panel,.vault-panel{
  background:
    linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.035)),
    radial-gradient(circle at 20% 0%,rgba(47,183,255,.10),transparent 40%)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:var(--shadow), inset 0 0 26px rgba(47,183,255,.04)!important;
  backdrop-filter:blur(20px);
  position:relative;
  overflow:hidden;
}
.glass::before,.daily-card::before,.play-panel::before,.memory-card::before,.featured-memory::before,.continue-watching::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.7;
  background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.10) 45%,transparent 70%);
  transform:translateX(-120%); animation:cardSheen 8s ease-in-out infinite;
}
@keyframes cardSheen{0%,72%{transform:translateX(-120%)}86%,100%{transform:translateX(120%)}}
.daily-card:hover,.play-panel:hover,.memory-card:hover,.poster-card:hover,.game-card:hover{transform:translateY(-4px) scale(1.01)!important; border-color:rgba(47,183,255,.55)!important; box-shadow:0 22px 80px rgba(47,183,255,.13),var(--shadow)!important;}
.micro{color:var(--holo-blue)!important; letter-spacing:.16em!important; text-transform:uppercase; font-weight:900;}
h1,h2,h3{color:#fff!important; text-shadow:0 0 28px rgba(47,183,255,.14);}
.lead,p{color:var(--muted);}

/* hero is now a cinematic command deck */
.hero-panel{
  border-radius:34px!important; min-height:420px;
  background:
    radial-gradient(circle at 72% 32%, rgba(47,183,255,.26), transparent 12rem),
    radial-gradient(circle at 88% 80%, rgba(255,77,141,.18), transparent 18rem),
    linear-gradient(145deg, rgba(7,13,34,.92), rgba(9,7,24,.72))!important;
}
.hero-panel::after{
  content:""; position:absolute; right:-7rem; top:2rem; width:18rem; height:18rem; border-radius:999px;
  background:
    radial-gradient(circle at 34% 34%, rgba(255,255,255,.12), transparent 12%),
    radial-gradient(circle at 52% 48%, rgba(0,0,0,.85) 0 14%, transparent 15%),
    radial-gradient(circle, rgba(255,255,255,.09), rgba(255,255,255,.02) 58%, transparent 60%);
  border:1px solid rgba(255,255,255,.10); box-shadow:0 0 80px rgba(47,183,255,.16);
  opacity:.8; animation:spaceStation 16s ease-in-out infinite;
}
@keyframes spaceStation{50%{transform:translateY(10px) rotate(8deg)}}
.countdown-card{
  border:1px solid rgba(47,183,255,.38)!important; background:rgba(2,7,19,.55)!important;
  box-shadow:inset 0 0 22px rgba(47,183,255,.08),0 0 22px rgba(47,183,255,.12)!important;
}
.countdown-grid strong{font-family:"SF Mono", ui-monospace, Menlo, monospace; color:#fff!important; text-shadow:0 0 16px var(--holo-blue);}

/* game arcade visual treatment */
#play .section-heading,.play-heading{border-radius:30px;padding:1.1rem;background:linear-gradient(135deg,rgba(183,92,255,.14),rgba(47,183,255,.08)); border:1px solid rgba(183,92,255,.28)}
.play-grid{gap:1rem!important;}
.play-panel{border-radius:28px!important;}
.wheel-panel{background:radial-gradient(circle at 50% 40%,rgba(183,92,255,.18),transparent 45%),linear-gradient(145deg,rgba(9,9,34,.84),rgba(23,7,31,.76))!important;}
.card-panel{background:radial-gradient(circle at 50% 20%,rgba(255,191,77,.15),transparent 44%),linear-gradient(145deg,rgba(28,15,5,.75),rgba(7,12,31,.8))!important;}
.quiz-panel{background:radial-gradient(circle at 20% 10%,rgba(47,183,255,.16),transparent 42%),linear-gradient(145deg,rgba(5,21,32,.78),rgba(8,10,26,.82))!important;}
.tonight-panel,.adventure-panel{background:radial-gradient(circle at 80% 20%,rgba(93,255,181,.12),transparent 42%),linear-gradient(145deg,rgba(3,21,20,.72),rgba(8,10,26,.86))!important;}
.spin-wheel{box-shadow:0 0 42px rgba(183,92,255,.32), inset 0 0 35px rgba(255,255,255,.08)!important; border:2px solid rgba(255,255,255,.18)!important;}
.wheel-pointer{color:var(--arena-gold)!important;text-shadow:0 0 16px var(--arena-gold)}
.result-card,.couple-card,.quiz-box,.game-result{
  background:rgba(2,4,11,.55)!important; border:1px solid rgba(47,183,255,.28)!important; border-radius:22px!important;
  box-shadow:inset 0 0 18px rgba(47,183,255,.06)!important;
}

/* sci-fi feature badges on home */
.today-grid .daily-card:nth-child(9){
  background:radial-gradient(circle at 80% 20%,rgba(255,77,141,.19),transparent 38%),linear-gradient(145deg,rgba(40,8,23,.74),rgba(9,12,32,.8))!important;
}
.today-grid .daily-card:nth-child(9)::after{content:"ARCADE";position:absolute;right:1rem;top:1rem;color:rgba(255,255,255,.12);font-weight:1000;letter-spacing:.18em;}
.today-grid .daily-card:nth-child(3)::after{content:"MISSION";position:absolute;right:1rem;top:1rem;color:rgba(255,191,77,.16);font-weight:1000;letter-spacing:.16em;}

/* Netflix/gallery: glowing streaming tiles */
.netflix-row,.gallery-grid,.memory-grid{scrollbar-color:var(--holo-blue) transparent;}
.poster-card,.gallery-card,.memory-card{
  border-radius:26px!important; background:linear-gradient(155deg,rgba(47,183,255,.12),rgba(183,92,255,.08),rgba(255,255,255,.035))!important;
}
.poster-card::after,.gallery-card::after,.memory-card::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--holo-blue),var(--guardian-purple),var(--rose));opacity:.8;
}

/* Galaxy flagship: stronger nebula */
.galaxy-shell{
  border-color:rgba(47,183,255,.38)!important;
  background:
    radial-gradient(circle at 18% 22%,rgba(47,183,255,.18),transparent 22rem),
    radial-gradient(circle at 78% 72%,rgba(183,92,255,.20),transparent 24rem),
    #02040b!important;
}
.galaxy-hud,.galaxy-focus,.galaxy-hint{
  background:rgba(2,4,11,.62)!important; border:1px solid rgba(47,183,255,.25)!important; backdrop-filter:blur(14px);
}

/* map like a hologram */
.upgraded-map,.fake-map{
  background:
    linear-gradient(90deg,rgba(47,183,255,.06) 1px,transparent 1px),
    linear-gradient(0deg,rgba(47,183,255,.06) 1px,transparent 1px),
    radial-gradient(circle at 45% 42%,rgba(47,183,255,.14),transparent 25%),
    rgba(2,8,20,.65)!important;
  background-size:34px 34px,34px 34px,auto,auto!important;
}
.map-pin{box-shadow:0 0 22px currentColor!important;}

/* themed modules: cinematic franchises-inspired without using official art */
#soundtrack::before{content:"AWESOME MIX"; position:absolute; right:1rem; top:4.5rem; color:rgba(183,92,255,.11); font-size:2.2rem; font-weight:1000; letter-spacing:.12em; transform:rotate(-4deg);}
#wrapped::before{content:"ACHIEVEMENTS"; position:absolute; right:1rem; top:4.8rem; color:rgba(255,191,77,.12); font-size:2rem; font-weight:1000; letter-spacing:.12em;}
#vault::before{content:"VAULT"; position:absolute; right:1rem; top:4.8rem; color:rgba(255,77,141,.12); font-size:3rem; font-weight:1000; letter-spacing:.16em;}

/* faux lightsaber strips */
.section-heading::after,.panel-head::after{
  content:"";display:block;margin-top:.8rem;width:92px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--saber-blue),transparent);box-shadow:0 0 14px var(--saber-blue);
}
#play .section-heading::after{background:linear-gradient(90deg,var(--saber-blue),var(--saber-red));box-shadow:0 0 16px var(--saber-blue),0 0 16px var(--saber-red);}
#surprises .section-heading::after{background:linear-gradient(90deg,var(--rose),var(--arena-gold));box-shadow:0 0 16px var(--rose);}

/* mini game cards from 3.1/3.2 */
.arcade-grid,.more-games-grid,.game-grid,.bingo-grid{gap:.85rem!important;}
.game-card,.arcade-card,.bingo-cell,.this-that-card,.fortune-card,.mystery-card{
  background:linear-gradient(150deg,rgba(255,255,255,.09),rgba(255,255,255,.035))!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:0 16px 48px rgba(0,0,0,.38), inset 0 0 18px rgba(47,183,255,.035)!important;
  border-radius:22px!important;
}
.game-card:nth-child(4n+1),.arcade-card:nth-child(4n+1){border-color:rgba(47,183,255,.42)!important;box-shadow:0 0 24px rgba(47,183,255,.08),0 16px 48px rgba(0,0,0,.38)!important;}
.game-card:nth-child(4n+2),.arcade-card:nth-child(4n+2){border-color:rgba(183,92,255,.42)!important;}
.game-card:nth-child(4n+3),.arcade-card:nth-child(4n+3){border-color:rgba(255,191,77,.42)!important;}
.game-card:nth-child(4n+4),.arcade-card:nth-child(4n+4){border-color:rgba(255,77,141,.42)!important;}

/* responsive polish */
@media(max-width:640px){
  .hero-panel{min-height:360px;border-radius:28px!important;}
  .hero-panel::after{width:12rem;height:12rem;right:-4.5rem;top:1.5rem;}
  h1{font-size:clamp(2.4rem,12vw,4.2rem)!important;}
  .section-heading{padding-inline:.2rem;}
  .bottom-nav{left:.7rem!important;right:.7rem!important;bottom:calc(.55rem + env(safe-area-inset-bottom))!important;}
}

/* utility: cinematic route transition */
.screen.active{animation:cosmicIn .42s cubic-bezier(.2,.9,.2,1) both!important;}
@keyframes cosmicIn{from{opacity:0;transform:translateY(14px) scale(.985);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}

/* =========================================================
   OUR SPACE 4.0 — APP STORE EDITION DESIGN OVERHAUL
   Premium cosmic/arcade visual layer. Content/features unchanged.
   ========================================================= */
:root{
  --os-bg-deep:#03040d;
  --os-space:#080b20;
  --os-void:#01020a;
  --os-neon-blue:#31a8ff;
  --os-neon-pink:#ff4fd8;
  --os-neon-purple:#9b5cff;
  --os-neon-gold:#ffd166;
  --os-neon-green:#62ffca;
  --os-red:#ff355e;
  --os-glass:rgba(255,255,255,.075);
  --os-glass-strong:rgba(255,255,255,.14);
  --os-border:rgba(255,255,255,.18);
  --os-blur:blur(26px) saturate(1.35);
}
html{background:#01020a;}
body{
  background:
    radial-gradient(circle at 18% 12%, rgba(49,168,255,.24), transparent 34rem),
    radial-gradient(circle at 82% 18%, rgba(255,79,216,.18), transparent 30rem),
    radial-gradient(circle at 48% 92%, rgba(98,255,202,.12), transparent 28rem),
    linear-gradient(155deg, var(--os-void) 0%, #071020 40%, #12041a 72%, #03040d 100%) !important;
  color:#f8fbff;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-10;
  pointer-events:none;
  background:
    linear-gradient(transparent 0 96%, rgba(49,168,255,.09) 97% 100%),
    linear-gradient(90deg, transparent 0 96%, rgba(255,255,255,.045) 97% 100%);
  background-size:72px 72px;
  mask-image:radial-gradient(circle at 50% 30%, black, transparent 72%);
  opacity:.35;
  transform:perspective(600px) rotateX(58deg) translateY(6rem) scale(1.5);
  transform-origin:bottom;
  animation:osGridDrift 14s linear infinite;
}
body::after{
  content:"";
  position:fixed;
  inset:-20%;
  z-index:-11;
  pointer-events:none;
  background:
    conic-gradient(from 120deg at 50% 50%, transparent 0deg, rgba(49,168,255,.08) 50deg, transparent 90deg, rgba(255,79,216,.11) 145deg, transparent 190deg, rgba(255,209,102,.07) 260deg, transparent 360deg);
  filter:blur(18px);
  animation:osNebulaSpin 34s linear infinite;
}
@keyframes osGridDrift{to{background-position:0 72px,72px 0}}
@keyframes osNebulaSpin{to{transform:rotate(360deg)}}
.ambient::before,.ambient::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-7;
  pointer-events:none;
}
.ambient::before{
  background:radial-gradient(circle at var(--mx,50%) var(--my,45%), rgba(49,168,255,.22), transparent 28rem);
  transition:background .25s ease;
}
.ambient::after{
  background-image:
    radial-gradient(circle, rgba(255,255,255,.9) 0 1px, transparent 1.8px),
    radial-gradient(circle, rgba(49,168,255,.6) 0 1px, transparent 1.8px),
    radial-gradient(circle, rgba(255,79,216,.45) 0 1px, transparent 2px);
  background-size:130px 130px, 210px 210px, 330px 330px;
  opacity:.4;
  animation:osStarLayers 26s linear infinite;
}
@keyframes osStarLayers{to{background-position:130px 260px,-210px 210px,330px -330px}}
.glass,.hero-panel,.daily-card,.memory-card,.song-card,.vault,.setting-card,.play-panel,.surprise-card,.story-card,.magic-card,.magic-hero,.featured-memory,.continue-watching,.galaxy-shell,.map-shell,.modal-card{
  background:linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.045)) !important;
  border:1px solid rgba(255,255,255,.2) !important;
  box-shadow:
    0 28px 90px rgba(0,0,0,.45),
    inset 0 1px 0 rgba(255,255,255,.18),
    0 0 0 1px rgba(49,168,255,.035) !important;
  backdrop-filter:var(--os-blur);
  -webkit-backdrop-filter:var(--os-blur);
  position:relative;
  overflow:hidden;
}
.glass::before,.hero-panel::before,.daily-card::before,.play-panel::before,.memory-card::before,.surprise-card::before,.vault::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(115deg, rgba(255,255,255,.24), transparent 18%, transparent 72%, rgba(255,255,255,.08)),
    radial-gradient(circle at 20% 0%, rgba(49,168,255,.18), transparent 35%),
    radial-gradient(circle at 90% 10%, rgba(255,79,216,.12), transparent 30%);
  opacity:.75;
}
.glass::after,.daily-card::after,.play-panel::after,.memory-card::after,.hero-panel::after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg, rgba(49,168,255,.7), rgba(255,79,216,.45), rgba(255,209,102,.38), rgba(98,255,202,.45));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:.35;
  pointer-events:none;
}
.topbar{
  background:linear-gradient(180deg, rgba(2,4,14,.88), rgba(2,4,14,.5)) !important;
  border-bottom:1px solid rgba(255,255,255,.12) !important;
  backdrop-filter:blur(24px) saturate(1.5);
}
.brand{
  background:radial-gradient(circle at 35% 25%, #fff, var(--os-neon-pink) 34%, var(--os-neon-blue) 75%) !important;
  box-shadow:0 0 28px rgba(49,168,255,.5), 0 0 50px rgba(255,79,216,.22) !important;
  color:#050816 !important;
  animation:osPulseLogo 2.6s ease-in-out infinite;
}
@keyframes osPulseLogo{50%{transform:scale(1.06); box-shadow:0 0 36px rgba(255,79,216,.5), 0 0 80px rgba(49,168,255,.22)}}
.micro{
  color:var(--os-neon-green) !important;
  text-shadow:0 0 12px rgba(98,255,202,.32);
}
h1,h2,h3{letter-spacing:-.055em; text-shadow:0 0 22px rgba(49,168,255,.08)}
.hero-panel h1{
  background:linear-gradient(110deg, #fff, #bde7ff 28%, #ffb7ec 52%, #fff1b2 76%, #fff);
  -webkit-background-clip:text;
  color:transparent;
  filter:drop-shadow(0 0 28px rgba(49,168,255,.18));
}
.pill,.primary,.secondary,.icon-button,.bottom-nav button,.play-nav button,.surprise-tabs button,.wheel-tab,.album-filter{
  border:1px solid rgba(255,255,255,.18) !important;
  background:linear-gradient(135deg, rgba(49,168,255,.18), rgba(255,79,216,.12), rgba(255,255,255,.06)) !important;
  color:#fff !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 10px 38px rgba(0,0,0,.3), 0 0 24px rgba(49,168,255,.12) !important;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease !important;
}
.pill:hover,.primary:hover,.secondary:hover,.icon-button:hover,.play-nav button:hover,.surprise-tabs button:hover,.wheel-tab:hover,.album-filter:hover{
  transform:translateY(-2px) scale(1.01);
  border-color:rgba(98,255,202,.5) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 18px 50px rgba(0,0,0,.42), 0 0 34px rgba(98,255,202,.18) !important;
}
.bottom-nav{
  background:linear-gradient(180deg, rgba(6,8,21,.52), rgba(6,8,21,.92)) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  box-shadow:0 -22px 80px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.12) !important;
  backdrop-filter:blur(26px) saturate(1.6) !important;
  border-radius:28px 28px 0 0 !important;
}
.bottom-nav button.active{
  background:radial-gradient(circle at 50% 0%, rgba(98,255,202,.28), rgba(49,168,255,.18), transparent 70%) !important;
  color:#fff !important;
  text-shadow:0 0 18px rgba(98,255,202,.55);
}
.bottom-nav button.active::before{
  content:"";
  position:absolute;
  top:5px;
  width:28px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--os-neon-blue), var(--os-neon-green), var(--os-neon-pink));
  box-shadow:0 0 16px var(--os-neon-green);
}
.screen{animation:osScreenIn .38s cubic-bezier(.2,.9,.2,1) both;}
@keyframes osScreenIn{from{opacity:0; transform:translateY(16px) scale(.985); filter:blur(8px)}to{opacity:1; transform:none; filter:none}}
.daily-card,.play-panel,.memory-card,.gallery-card,.poster-card,.surprise-card,.story-card,.achievement,.song-card,.stat-card{
  transform-style:preserve-3d;
  transition:transform .25s ease, filter .25s ease, box-shadow .25s ease !important;
}
.daily-card:hover,.play-panel:hover,.memory-card:hover,.gallery-card:hover,.poster-card:hover,.surprise-card:hover,.story-card:hover,.achievement:hover,.song-card:hover{
  transform:translateY(-5px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));
  filter:saturate(1.16) brightness(1.08);
}
.countdown-card{
  background:radial-gradient(circle at 50% 0%, rgba(98,255,202,.18), rgba(255,255,255,.05)) !important;
  border:1px solid rgba(98,255,202,.26) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 0 36px rgba(98,255,202,.09) !important;
}
.countdown-grid strong{
  color:#fff;
  text-shadow:0 0 18px rgba(49,168,255,.4), 0 0 34px rgba(255,79,216,.16);
}
#play .section-heading::after{
  content:"ARCADE MODE";
  display:inline-block;
  margin-top:.8rem;
  padding:.45rem .8rem;
  border-radius:999px;
  border:1px solid rgba(255,79,216,.4);
  color:#fff;
  background:linear-gradient(90deg, rgba(255,79,216,.18), rgba(49,168,255,.16));
  box-shadow:0 0 24px rgba(255,79,216,.16);
  font-size:.7rem;
  letter-spacing:.16em;
  font-weight:900;
}
.play-panel{
  min-height:260px;
}
.play-panel h2::before{
  content:"✦ ";
  color:var(--os-neon-gold);
  text-shadow:0 0 18px rgba(255,209,102,.45);
}
.wheel-stage,.spin-wheel,.wheel-pointer{
  filter:drop-shadow(0 0 24px rgba(49,168,255,.18));
}
.spin-wheel{
  box-shadow:0 0 0 8px rgba(255,255,255,.06), 0 0 42px rgba(49,168,255,.22), inset 0 0 36px rgba(0,0,0,.4) !important;
}
.galaxy-shell{
  min-height:70vh;
  border-color:rgba(49,168,255,.3) !important;
  background:radial-gradient(circle at 50% 50%, rgba(49,168,255,.12), rgba(255,79,216,.08) 46%, rgba(0,0,0,.24)) !important;
}
.galaxy-shell::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 20% 60%, rgba(255,79,216,.18), transparent 24rem), radial-gradient(circle at 78% 20%, rgba(98,255,202,.1), transparent 20rem);
  animation:osNebulaFloat 16s ease-in-out infinite alternate;
}
@keyframes osNebulaFloat{to{transform:translate3d(2rem,-1rem,0) scale(1.05)}}
.galaxy-hud,.galaxy-focus,.galaxy-hint{
  background:rgba(2,4,14,.58) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  backdrop-filter:blur(18px);
}
.vault{
  border-color:rgba(255,53,94,.28) !important;
  background:radial-gradient(circle at 50% 0%, rgba(255,53,94,.18), rgba(255,255,255,.05)) !important;
}
.vault-screen{
  background:linear-gradient(180deg, rgba(0,0,0,.5), rgba(255,53,94,.08)) !important;
  box-shadow:inset 0 0 30px rgba(255,53,94,.2), 0 0 28px rgba(255,53,94,.14) !important;
  color:#fff !important;
}
.keypad button{
  background:linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.05)) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 12px 30px rgba(0,0,0,.22) !important;
}
.song-card::before,.soundtrack-card::before{
  content:"";
  position:absolute;
  inset:auto 1rem 1rem auto;
  width:64px;height:64px;border-radius:50%;
  background:radial-gradient(circle, #0b0b12 0 24%, #fff 25% 28%, #0b0b12 29% 48%, #ff4fd8 49% 54%, #0b0b12 55%);
  opacity:.45;
  animation:osTapeSpin 6s linear infinite;
}
@keyframes osTapeSpin{to{transform:rotate(360deg)}}
.achievement,.upgraded-achievement{
  background:radial-gradient(circle at 50% 0%, rgba(255,209,102,.18), rgba(255,255,255,.055)) !important;
}
.achievement-ring{
  box-shadow:0 0 30px rgba(255,209,102,.2) !important;
}
.map-shell{
  background:radial-gradient(circle at 30% 20%, rgba(49,168,255,.16), rgba(255,255,255,.05)) !important;
}
.upgraded-map{
  background:
    radial-gradient(circle at 30% 30%, rgba(98,255,202,.12), transparent 20%),
    radial-gradient(circle at 70% 50%, rgba(49,168,255,.14), transparent 28%),
    linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.02)) !important;
}
.map-pin,.upgraded-pin{
  box-shadow:0 0 28px var(--pin-color, #31a8ff), 0 10px 32px rgba(0,0,0,.35) !important;
  animation:osPinPulse 2.4s ease-in-out infinite;
}
@keyframes osPinPulse{50%{transform:translateY(-4px) scale(1.06)}}
.splash{
  background:radial-gradient(circle at 50% 35%, rgba(49,168,255,.18), rgba(1,2,10,.96) 58%, #000 100%) !important;
}
.splash::before{
  content:""; position:absolute; inset:0; background:linear-gradient(90deg, transparent, rgba(49,168,255,.22), transparent); transform:translateX(-100%); animation:osScan 2.4s ease-in-out infinite;
}
@keyframes osScan{60%,100%{transform:translateX(100%)}}
.pulse-logo{
  text-shadow:0 0 30px rgba(255,79,216,.75), 0 0 70px rgba(49,168,255,.45) !important;
}
.os-design-layer{position:fixed;inset:0;pointer-events:none;z-index:-5;overflow:hidden;}
.os-shooting-star{position:absolute;width:160px;height:2px;background:linear-gradient(90deg, transparent, #fff, var(--os-neon-blue));filter:drop-shadow(0 0 12px #fff);opacity:0;transform:rotate(-28deg);animation:osShoot 7.5s ease-in-out infinite;}
.os-shooting-star:nth-child(1){top:14%;left:72%;animation-delay:1s}.os-shooting-star:nth-child(2){top:44%;left:12%;animation-delay:5s}.os-shooting-star:nth-child(3){top:72%;left:62%;animation-delay:8.5s}
@keyframes osShoot{0%,72%{opacity:0;transform:translate3d(0,0,0) rotate(-28deg)}76%{opacity:1}88%,100%{opacity:0;transform:translate3d(-40vw,26vh,0) rotate(-28deg)}}
.os-saber{position:fixed;z-index:80;pointer-events:none;height:4px;width:0;border-radius:999px;background:linear-gradient(90deg,#fff,var(--os-neon-blue));box-shadow:0 0 20px var(--os-neon-blue),0 0 40px var(--os-neon-blue);left:50%;top:50%;transform:translate(-50%,-50%) rotate(-18deg);opacity:0;}
.os-saber.flash{animation:osSaber .62s cubic-bezier(.2,.9,.2,1) both;}
@keyframes osSaber{0%{width:0;opacity:0}20%{opacity:1}72%{width:min(84vw,720px);opacity:1}100%{width:min(84vw,720px);opacity:0;filter:blur(6px)}}
.os-hyperspace{position:fixed;inset:0;z-index:70;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.35),transparent 6%,transparent),repeating-radial-gradient(circle at 50% 50%,rgba(255,255,255,.0) 0 10px,rgba(49,168,255,.12) 11px 12px);opacity:0;transform:scale(.4);}
.os-hyperspace.active{animation:osHyper .55s ease-out both;}
@keyframes osHyper{0%{opacity:0;transform:scale(.25);filter:blur(0)}38%{opacity:.9}100%{opacity:0;transform:scale(2.3);filter:blur(7px)}}
.os-theme-console{position:fixed;right:12px;bottom:calc(82px + env(safe-area-inset-bottom));z-index:30;display:grid;gap:8px;}
.os-theme-dot{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 0 22px rgba(255,255,255,.12),0 12px 28px rgba(0,0,0,.35);}
.os-theme-dot.active{outline:2px solid rgba(98,255,202,.6);outline-offset:3px;}
.os-death-widget{margin-top:1rem;padding:1rem;border-radius:24px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(135deg,rgba(255,255,255,.09),rgba(49,168,255,.06));position:relative;overflow:hidden;}
.os-death-widget::before{content:"";position:absolute;right:-22px;top:-22px;width:92px;height:92px;border-radius:50%;background:radial-gradient(circle at 38% 38%,rgba(255,255,255,.4),transparent 8%),radial-gradient(circle,rgba(255,255,255,.13),rgba(255,255,255,.04));box-shadow:inset -18px -18px 22px rgba(0,0,0,.28),0 0 28px rgba(49,168,255,.14);}
.os-death-widget strong{display:block;font-size:1.7rem;color:white}.os-progress{height:8px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:.7rem}.os-progress i{display:block;height:100%;width:var(--w,55%);background:linear-gradient(90deg,var(--os-neon-blue),var(--os-neon-green),var(--os-neon-gold));box-shadow:0 0 20px var(--os-neon-green)}
.os-section-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .75rem;border-radius:99px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);box-shadow:0 0 20px rgba(49,168,255,.08);margin:.35rem .35rem .35rem 0;color:#fff;font-size:.75rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;}
.theme-arena{--os-neon-blue:#ffb703;--os-neon-pink:#fb5607;--os-neon-purple:#ff006e;--os-neon-green:#ffd166;}
.theme-guardians{--os-neon-blue:#8ecae6;--os-neon-pink:#ff006e;--os-neon-purple:#8338ec;--os-neon-green:#3a86ff;}
.theme-galaxy{--os-neon-blue:#31a8ff;--os-neon-pink:#ff4fd8;--os-neon-purple:#9b5cff;--os-neon-green:#62ffca;}
.theme-football{--os-neon-blue:#034694;--os-neon-pink:#ffffff;--os-neon-purple:#111111;--os-neon-green:#d6b25e;}
.os-confetti{position:fixed;z-index:100;top:-10px;width:8px;height:14px;background:var(--c);pointer-events:none;animation:osConfetti 1.4s ease-in forwards;}
@keyframes osConfetti{to{transform:translate3d(var(--x),105vh,0) rotate(720deg);opacity:0}}
@media(max-width:720px){
  .os-theme-console{right:8px;bottom:calc(88px + env(safe-area-inset-bottom));}
  .os-theme-dot{width:32px;height:32px}
  .hero-panel h1{font-size:clamp(2.35rem,13vw,4.2rem)}
  .galaxy-shell{min-height:66vh}
  .bottom-nav{overflow-x:auto;justify-content:flex-start;padding-left:.8rem;padding-right:.8rem}
  .bottom-nav button{min-width:62px}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* ==========================================================
   OUR SPACE 4.1 — ULTRA INTERACTIVE DESIGN EDITION
   Pure polish layer: cinematic motion, neon glass, portals,
   stronger sci-fi arcade identity and more interactive feel.
   ========================================================== */
:root{
  --ultra-cyan:#30f7ff;
  --ultra-blue:#2478ff;
  --ultra-pink:#ff3f9c;
  --ultra-purple:#9b5cff;
  --ultra-gold:#ffc857;
  --ultra-green:#5dffb5;
  --ultra-red:#ff355e;
  --panel-deep:rgba(5,9,24,.78);
  --panel-holo:rgba(12,20,48,.68);
}
/* richer cosmic depth */
.cosmic-ui{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;}
.scanlines{position:absolute;inset:0;background:repeating-linear-gradient(180deg,rgba(255,255,255,.025) 0 1px,transparent 1px 5px);opacity:.16;mix-blend-mode:screen;}
.aurora-ribbon{position:absolute;width:150vw;height:16rem;left:-25vw;border-radius:999px;filter:blur(28px);opacity:.2;mix-blend-mode:screen;}
.ribbon-a{top:18vh;background:linear-gradient(90deg,transparent,var(--ultra-cyan),var(--ultra-purple),transparent);transform:rotate(-12deg);animation:ribbonFlow 18s ease-in-out infinite alternate;}
.ribbon-b{bottom:12vh;background:linear-gradient(90deg,transparent,var(--ultra-pink),var(--ultra-gold),transparent);transform:rotate(15deg);animation:ribbonFlow 22s ease-in-out infinite alternate-reverse;}
@keyframes ribbonFlow{to{transform:translateX(8vw) rotate(-4deg) scaleY(1.35)}}
.shooting-star{position:absolute;width:160px;height:2px;background:linear-gradient(90deg,transparent,#fff,var(--ultra-cyan),transparent);filter:drop-shadow(0 0 12px var(--ultra-cyan));opacity:0;transform:rotate(-18deg);}
.shooting-star.one{top:22%;left:-20%;animation:shoot 7s linear infinite 1s;}.shooting-star.two{top:58%;left:-25%;animation:shoot 11s linear infinite 4s;}
@keyframes shoot{0%,72%{opacity:0;transform:translateX(0) translateY(0) rotate(-18deg)}75%{opacity:1}88%{opacity:0;transform:translateX(150vw) translateY(34vh) rotate(-18deg)}100%{opacity:0}}
.hyperspace{position:fixed;inset:0;z-index:200;background:radial-gradient(circle at center,rgba(255,255,255,.95),rgba(48,247,255,.28) 7%,rgba(5,9,24,.15) 22%,transparent 55%);opacity:0;pointer-events:none;}
.hyperspace.warp{animation:hyperWarp .52s ease both;}
@keyframes hyperWarp{0%{opacity:0;transform:scale(.7);filter:blur(12px)}35%{opacity:.7;transform:scale(1.05);filter:blur(2px)}100%{opacity:0;transform:scale(1.35);filter:blur(22px)}}

/* app shell: more premium */
.app{perspective:1200px;}
.topbar{border-radius:0 0 26px 26px;margin-bottom:.6rem;}
.micro{color:var(--ultra-cyan)!important;text-shadow:0 0 14px rgba(48,247,255,.38);}
h1,h2,h3{ text-shadow:0 0 24px rgba(48,247,255,.08);}
.glass,.daily-card,.memory-card,.poster,.play-panel,.gallery-card,.song-card,.stat-card,.achievement,.setting-card,.vault,.modal-card{
  position:relative; overflow:hidden;
  background:linear-gradient(145deg,rgba(255,255,255,.115),rgba(255,255,255,.045) 55%,rgba(48,247,255,.035))!important;
  border:1px solid rgba(255,255,255,.17)!important;
  box-shadow:0 24px 75px rgba(0,0,0,.54), inset 0 1px 0 rgba(255,255,255,.08), 0 0 0 1px rgba(48,247,255,.035)!important;
}
.glass::before,.daily-card::before,.play-panel::before,.poster::before,.memory-card::after,.gallery-card::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(circle at var(--mx,50%) var(--my,10%),rgba(255,255,255,.22),transparent 17rem);
  opacity:.45;transition:opacity .25s ease;
}
.tilt-ready{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .15s ease, box-shadow .25s ease;transform-style:preserve-3d;}
.tilt-ready:hover{box-shadow:0 32px 90px rgba(0,0,0,.58),0 0 34px rgba(48,247,255,.12)!important;}

/* hologram label chips */
.holo-label{display:inline-grid;place-items:center;margin:.5rem 0 .35rem;padding:.35rem .7rem;border:1px solid rgba(48,247,255,.4);border-radius:999px;color:var(--ultra-cyan);font:800 .62rem/1 JetBrains Mono,monospace;letter-spacing:.18em;background:rgba(48,247,255,.07);box-shadow:0 0 22px rgba(48,247,255,.11);}

/* command deck */
.command-deck{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;border-radius:30px;padding:.85rem;margin:1rem 0;}
.command-card{min-height:125px;border:1px solid rgba(48,247,255,.28);border-radius:24px;background:linear-gradient(145deg,rgba(48,247,255,.13),rgba(155,92,255,.08));color:var(--text);text-align:left;padding:1rem;position:relative;overflow:hidden;}
.command-card span{font-size:2rem;display:block;margin-bottom:.55rem;filter:drop-shadow(0 0 14px rgba(48,247,255,.32));}.command-card strong{display:block;font-size:1.08rem}.command-card small{color:var(--muted);line-height:1.35}.command-card:hover{transform:translateY(-5px) scale(1.01);box-shadow:0 0 32px rgba(48,247,255,.15)}
.cinema-strip{display:grid;grid-template-columns:auto 110px 1fr;gap:1rem;align-items:center;border-radius:30px;padding:1rem;margin:1rem 0;background:linear-gradient(110deg,rgba(48,247,255,.1),rgba(255,63,156,.08),rgba(255,200,87,.07))!important;}
.reactor-ring{width:94px;height:94px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ultra-cyan) var(--reactor,82%),rgba(255,255,255,.08) 0);box-shadow:0 0 28px rgba(48,247,255,.18);position:relative;}
.reactor-ring::after{content:"";position:absolute;inset:9px;border-radius:50%;background:#07111f;border:1px solid rgba(255,255,255,.12)}.reactor-ring span{position:relative;z-index:1;font:900 1.25rem JetBrains Mono,monospace;color:white;text-shadow:0 0 12px var(--ultra-cyan)}

/* sections feel like worlds */
.screen{min-height:calc(100vh - 110px);}
#home .hero-panel{background:radial-gradient(circle at 70% 20%,rgba(48,247,255,.18),transparent 22rem),linear-gradient(145deg,rgba(255,255,255,.11),rgba(5,9,24,.72))!important;}
#home .hero-panel h1{background:linear-gradient(135deg,#fff,var(--ultra-cyan),var(--ultra-pink));-webkit-background-clip:text;color:transparent;text-shadow:none;}
#galaxy .galaxy-shell{border-color:rgba(48,247,255,.32)!important;box-shadow:0 0 60px rgba(48,247,255,.08), inset 0 0 80px rgba(155,92,255,.08)!important;}
#play .play-panel{border-color:rgba(255,200,87,.22)!important;}
#vault .vault{background:radial-gradient(circle at 50% 0,rgba(255,53,94,.16),transparent 20rem),linear-gradient(145deg,rgba(255,255,255,.09),rgba(0,0,0,.24))!important;}
#soundtrack .song-card{background:linear-gradient(145deg,rgba(155,92,255,.16),rgba(48,247,255,.06))!important;}

/* arcade marquee */
.arcade-marquee{display:flex;gap:1rem;overflow:hidden;white-space:nowrap;border-radius:26px;padding:.8rem;margin-bottom:1rem;background:linear-gradient(90deg,rgba(48,247,255,.09),rgba(255,63,156,.10),rgba(255,200,87,.08))!important;}
.arcade-marquee span{font:900 .75rem JetBrains Mono,monospace;letter-spacing:.16em;color:white;text-shadow:0 0 16px var(--ultra-cyan);animation:marqueePulse 1.8s ease-in-out infinite alternate;}.arcade-marquee span:nth-child(2n){color:var(--ultra-gold)}.arcade-marquee span:nth-child(3n){color:var(--ultra-pink)}
@keyframes marqueePulse{to{filter:brightness(1.35)}}

/* lightsaber accents */
.pill.big-pill,.primary,.spin-button,#spinWheel,#generateAdventure,#openMystery,#shootPenalty,#startQuickFire{position:relative;overflow:hidden;}
.pill.big-pill::after,.primary::after,.spin-button::after,#spinWheel::after,#generateAdventure::after,#openMystery::after,#shootPenalty::after,#startQuickFire::after{content:"";position:absolute;left:-30%;top:50%;width:42%;height:2px;background:linear-gradient(90deg,transparent,#fff,var(--ultra-cyan),transparent);box-shadow:0 0 14px var(--ultra-cyan);transform:translateY(-50%);opacity:0;}
.pill.big-pill:hover::after,.primary:hover::after,.spin-button:hover::after,#spinWheel:hover::after,#generateAdventure:hover::after,#openMystery:hover::after,#shootPenalty:hover::after,#startQuickFire:hover::after{animation:saberSwipe .7s ease both;}
@keyframes saberSwipe{0%{left:-35%;opacity:0}20%{opacity:1}100%{left:105%;opacity:0}}

/* vibe dock */
.vibe-dock{position:fixed;right:max(.7rem,env(safe-area-inset-right));top:50%;transform:translateY(-50%);z-index:55;display:grid;gap:.45rem;padding:.45rem;border-radius:999px;background:rgba(3,6,18,.58)!important;backdrop-filter:blur(18px);}
.vibe-dock button{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);display:grid;place-items:center;box-shadow:0 0 18px rgba(0,0,0,.22)}.vibe-dock button.active{border-color:rgba(48,247,255,.72);box-shadow:0 0 22px rgba(48,247,255,.24);background:rgba(48,247,255,.15)}
body[data-vibe="saber"]{--ultra-cyan:#60eaff;--ultra-pink:#ff355e;}body[data-vibe="arena"]{--ultra-cyan:#ffc857;--ultra-pink:#ff6b35;--ultra-purple:#151515;}body[data-vibe="mix"]{--ultra-cyan:#b75cff;--ultra-pink:#ff4d8d;--ultra-gold:#ffcf57;}body[data-vibe="football"]{--ultra-cyan:#0b7cff;--ultra-pink:#ffffff;--ultra-gold:#d9b75d;}

/* particles */
.particle-burst{position:fixed;z-index:250;left:0;top:0;pointer-events:none}.particle-burst i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--ultra-cyan);box-shadow:0 0 12px var(--ultra-cyan);animation:burstOut .65s ease-out forwards}.particle-burst i:nth-child(3n){background:var(--ultra-pink);box-shadow:0 0 12px var(--ultra-pink)}.particle-burst i:nth-child(4n){background:var(--ultra-gold);box-shadow:0 0 12px var(--ultra-gold)}@keyframes burstOut{to{transform:translate(var(--x),var(--y)) scale(.2);opacity:0}}
.saber-trail{position:fixed;z-index:240;width:8px;height:8px;border-radius:50%;pointer-events:none;background:var(--ultra-cyan);box-shadow:0 0 12px var(--ultra-cyan),0 0 28px var(--ultra-cyan);transform:translate(-50%,-50%);animation:trailFade .42s ease-out forwards}@keyframes trailFade{to{opacity:0;transform:translate(-50%,-50%) scale(3)}}
.secret-toast{position:fixed;left:50%;top:12%;transform:translateX(-50%);z-index:260;border-radius:24px;padding:1rem 1.2rem;display:grid;gap:.25rem;text-align:center}.secret-toast strong{color:#fff}.secret-toast span{color:var(--muted)}

/* richer cards per feature */
.memory-card,.poster,.gallery-card{min-height:210px;}
.poster{border-color:rgba(255,255,255,.18)!important;box-shadow:inset 0 -80px 120px rgba(0,0,0,.26),0 20px 60px rgba(0,0,0,.34)!important;}
.poster:hover,.gallery-card:hover,.memory-card:hover{transform:translateY(-8px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))!important;}
.wheel-stage,.spin-wheel,.mystery-box,.cookie-button,.dice-face,.love-meter{box-shadow:0 0 45px rgba(48,247,255,.16),0 22px 80px rgba(0,0,0,.48)!important;}
.spin-wheel{filter:drop-shadow(0 0 22px rgba(48,247,255,.18));}
.keypad button:hover{background:linear-gradient(135deg,rgba(48,247,255,.22),rgba(255,63,156,.12))!important;box-shadow:0 0 22px rgba(48,247,255,.18)}

/* responsive refinements */
@media(max-width:800px){.command-deck{grid-template-columns:1fr}.cinema-strip{grid-template-columns:1fr;text-align:left}.reactor-ring{width:78px;height:78px}.vibe-dock{top:auto;bottom:calc(6rem + env(safe-area-inset-bottom));right:.7rem;display:flex}.vibe-dock button{width:36px;height:36px}.saber-trail{display:none}.shooting-star{width:120px}.screen{padding-inline:.05rem}}
@media(max-width:480px){.hero-panel{min-height:360px}.countdown-grid{grid-template-columns:repeat(2,auto auto)}.arcade-marquee{font-size:.72rem}.holo-label{font-size:.55rem}.today-grid,.memory-grid,.cards,.stats-grid,.achievement-grid{gap:.75rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}.saber-trail,.shooting-star,.aurora-ribbon{display:none!important}}
