/* Our Little Universe · Magical Edition V11
   Original interactive UI laid over the approved illustrated room artwork. */
:root{--magic-ink:#fceeea;--magic-pink:#e999bd;--magic-violet:#412549;--magic-gold:#ffdaa6}
html,body{max-width:100%;overflow-x:clip}body{background:#1a1029}
.magic-label{display:block;font-size:.73rem;font-weight:800;letter-spacing:.2em;color:#f6ccbc;text-transform:uppercase}
/* Homepage: keep all original destinations/IDs alive in the background, but give users a real focused dashboard */
#page-home > .hero,#page-home > .stat-row,#page-home > .section-heading,#page-home > .feature-grid,#page-home > .goals-invite,#page-home > .distance-feature-grid,#page-home > .bottom-duo,#page-home > .album-repair-notice{display:none!important}
#page-home .magic-home-v11{display:block;max-width:1000px;margin:0 auto;color:#fff0ea}
.magic-home-title{text-align:center;padding:20px 10px 14px}
.magic-home-title h1{font:italic 700 clamp(2.65rem,6vw,4.9rem)/.97 'Cormorant Garamond',Georgia,serif;margin:10px 0 9px;color:#ffdaaa;text-shadow:0 3px 17px #e577a46b}
.magic-home-title h1 em{color:#fbaed3}.magic-home-title h1 span{font-size:.53em;color:#f995ba;margin-left:7px}
.magic-home-title p{font:500 1.04rem Georgia,serif;color:#fae0eb;margin:0}
.magic-home-hero{position:relative;display:block;border:2px solid #f5bad1;border-radius:27px;overflow:hidden;text-decoration:none;color:#fff;box-shadow:0 0 36px #bf76aa55,0 18px 48px #10081970}
.magic-home-hero img{display:block;width:100%;aspect-ratio:941/204;object-fit:cover}
.magic-home-hero-pill{position:absolute;right:16px;bottom:15px;background:linear-gradient(115deg,#653663eb,#bc6b96f2);border:1px solid #f6bcd0;padding:11px 17px;border-radius:99px;font-weight:800;backdrop-filter:blur(7px);box-shadow:0 7px 22px #210d26bb}.magic-home-hero-pill b{padding-left:9px}
.magic-today{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #b875aeaa;padding:19px 22px;margin:18px 0;border-radius:24px;background:linear-gradient(135deg,#55305fe8,#2d203f);box-shadow:0 14px 30px #100a1960}
.magic-today h2{font:700 clamp(1.55rem,3vw,2.4rem) Georgia,serif;margin:7px 0}.magic-today p{color:#efcddd;margin:0;line-height:1.5}
.magic-today-stars{display:grid;justify-items:center;min-width:118px;font-size:2rem;color:#fff0b1;font-weight:900;white-space:nowrap}
.magic-today-stars small{display:block;font:.72rem system-ui;color:#f3cbd8}
.magic-nav-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.magic-nav-card{display:block;min-width:0;text-decoration:none;border:1px solid #bc7aa9a3;border-radius:22px;background:linear-gradient(155deg,#4c2b55,#271b3b);padding:0;overflow:hidden;color:#fff7f2;text-align:left;cursor:pointer;font:inherit;box-shadow:0 12px 27px #12091b80;transition:transform .22s,box-shadow .22s}
.magic-nav-card:hover,.magic-nav-card:focus-visible{transform:translateY(-3px);box-shadow:0 8px 28px #bd78b35c;outline:2px solid #fac6dc}
.magic-nav-card img{display:block;width:100%;height:135px;object-fit:cover;object-position:50% 35%}
.magic-nav-card>div{padding:14px 15px 17px}.magic-nav-card strong{display:block;font:700 clamp(1.2rem,2vw,1.6rem) Georgia,serif}
.magic-nav-card small{display:block;margin-top:4px;color:#edd3df;font-size:.83rem;line-height:1.35}
.magic-home-foot{display:flex;align-items:center;gap:14px;justify-content:space-between;flex-wrap:wrap;border:1px solid #c68aa5a3;border-radius:20px;margin-top:19px;padding:16px 20px;background:#48294c}
.magic-home-foot span{color:#eed5dc}.magic-home-foot a{color:#ffe2b8;font-weight:800}
/* Cozy room: the approved 941px-wide painting supplies the detailed world; accessible HTML areas provide interactions */
body.cozy-world-v2{background:radial-gradient(ellipse at 40% 5%,#613666 0,#261731 54%,#160f24 100%)}
body.cozy-world-v2:before{content:'✦ · ✧ · ✦ · ✧ · ✦';position:fixed;left:0;right:0;top:5px;color:#c3a0c9;letter-spacing:5vw;opacity:.15;pointer-events:none}
.cw-container{width:min(1000px,calc(100% - 22px));padding-top:13px}
.cw-header,.cw-heading,.cw-stage-card,.cw-room-actions,.rw-banner,.cw-dock,.cw-room-builder,.cw-room-foot,.magic-rewards{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.cw-header{gap:10px}.cw-heading{margin-bottom:12px}.cw-heading h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(1.85rem,4vw,3.2rem)}
.cw-stage-card.magic-upgraded{padding:0!important;border-radius:23px;border:2px solid #f3b5da9e!important;background:#301a3b!important;overflow:hidden;box-shadow:0 0 0 5px #b56a9c2a,0 26px 60px #100517af}
/* Retain SVG in the DOM for the existing cloud-enabled customizer and reward scripts, but don't render its blocky predecessor */
.magic-upgraded #cwScene{position:absolute!important;left:0;top:0;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;aspect-ratio:auto!important}
.magic-upgraded .cw-stage-stars,.magic-upgraded .cw-stage-stars-sub{display:none!important}
.magic-scene{position:relative;display:block;width:100%;isolation:isolate;aspect-ratio:941/824;overflow:hidden;background:#231530}
.magic-scene-art{width:100%;height:100%;object-fit:contain;display:block;user-select:none;-webkit-user-drag:none}
.magic-scene:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(180deg,#2b154c10 0%,transparent 18%,transparent 72%,#ffacd008 90%,#160e3047 100%)}
.magic-hotspot{position:absolute;z-index:5;border:0;border-radius:12px;background:transparent;color:transparent;cursor:pointer;touch-action:manipulation}
.magic-hotspot:hover,.magic-hotspot:focus-visible{outline:2px solid #fff0a8;background:#fff6d014;box-shadow:0 0 20px #ffcdad86}
.magic-photo{left:2%;top:5%;width:29%;height:25%}
.magic-window{left:29%;top:4%;width:44%;height:38%}
.magic-books{left:2%;top:31%;width:28%;height:65%}
.magic-fire{right:0%;top:50%;width:18%;height:45%}
.magic-couch{left:20%;top:71%;width:63%;height:23%;z-index:3}
.magic-bunny{left:33%;top:45%;width:19%;height:38%;z-index:7}
.magic-kat{left:49%;top:47%;width:20%;height:35%;z-index:7}
.magic-calendar-target{left:75%;top:3%;width:24%;height:44%;z-index:8}
.magic-calendar{position:absolute;z-index:2;left:75.5%;top:9.5%;width:18.3%;height:31%;padding:1.7% .6%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;border-radius:4px;background:#ffe5d4e8;color:#844260;box-shadow:inset 0 0 10px #fff4e8ad;pointer-events:none;font-size:clamp(4.5px,.91vw,10px);overflow:hidden}
.magic-calendar-title{font:700 1.3em Georgia,serif;color:#904665;white-space:nowrap}.magic-calendar #magicMonth{font-weight:800;margin:.3em 0;color:#ad6685}.magic-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.13em;width:100%;align-items:center;text-align:center}.magic-calendar-days span{padding:.12em 0}.magic-calendar-days .weekday{font-weight:800;opacity:.7}.magic-calendar-days .today{background:#f595ba;border-radius:99px;color:#50243d;font-weight:900}
.magic-calendar-footer{margin-top:auto;font:600 1em/1.2 Georgia,serif;color:#ad6486;text-align:center;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.magic-room-hud{position:absolute;right:8px;top:8px;z-index:12;display:flex;align-items:flex-end;flex-direction:column;gap:6px;pointer-events:none}
.magic-room-score{background:linear-gradient(135deg,#352044ef,#60406bf0);border:1px solid #e9aee2;padding:7px 14px;border-radius:99px;font-weight:900;font-size:clamp(1rem,2.5vw,1.5rem);color:#ffe4a9;box-shadow:0 5px 23px #160b2780}.magic-room-score span{color:#fff0e5}
.magic-room-next{background:#3f265acb;color:#f8e0d7;border:1px solid #d4a2cb79;padding:5px 10px;border-radius:90px;font:700 clamp(.6rem,1.2vw,.78rem) system-ui;max-width:170px;text-align:center}
.magic-movie-link{pointer-events:auto;position:absolute;top:clamp(330px,41vw,465px);right:3px;background:#442858e2;padding:6px 10px;border:1px solid #e3c0d5;border-radius:14px;font:700 .7rem system-ui;color:#fff3e7;text-decoration:none;white-space:nowrap}
.magic-blush{position:absolute;z-index:15;pointer-events:none;display:none;text-shadow:0 0 19px #ff7db3;font-size:clamp(25px,5vw,43px);transform:translate(-50%,-50%)}.magic-blush.active{display:block;animation:magicHeartFloat 1.7s ease-out forwards}
.magic-particle{position:absolute;z-index:16;pointer-events:none;animation:magicHeartFloat 1.5s ease-out forwards;font-size:clamp(15px,3vw,28px);filter:drop-shadow(0 0 10px #ffc0ec)}
.magic-ambient-fire{position:absolute;right:1%;top:61%;width:10%;height:18%;border-radius:50%;background:radial-gradient(ellipse,#ffcf5b66 0,#ff5a1c22 35%,transparent 75%);pointer-events:none;z-index:2;animation:magicFire 2.8s ease-in-out infinite}
.magic-firespark{position:absolute;right:7%;top:61%;color:#fff3a4;font-size:clamp(7px,1.6vw,16px);text-shadow:0 0 15px #ffe18d;animation:magicSparkle 4s ease-in-out infinite;pointer-events:none}
.magic-rewards{margin:15px 0;background:linear-gradient(140deg,#4d305bee,#30203fef);border:1px solid #e6b3cd80;padding:18px;border-radius:24px;overflow:hidden}
.magic-rewards-title{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}.magic-rewards h2{font:700 clamp(1.4rem,3vw,2rem) Georgia,serif;color:#fff0df;margin:5px 0}.magic-rewards p{font-size:.88rem;color:#eacdde;line-height:1.4;margin:3px 0 12px}
.magic-reward-track{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:7px 2px 12px;max-width:100%;-webkit-overflow-scrolling:touch}
.magic-reward-track::-webkit-scrollbar{height:7px}.magic-reward-track::-webkit-scrollbar-thumb{background:#ca8eaf77;border-radius:99px}
.magic-reward{flex:0 0 132px;scroll-snap-align:start;min-height:187px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;padding:10px 8px;border-radius:17px;background:linear-gradient(180deg,#57345f,#261a35);border:1px solid #a77b9d;cursor:pointer;color:#f9e7ea;box-shadow:inset 0 1px #ffffff1a}
.magic-reward img{width:98px;height:85px;object-fit:contain;filter:drop-shadow(0 5px 6px #16091bc0)}.magic-reward .reward-emoji{font-size:3rem;line-height:85px}.magic-reward strong{font:700 .95rem Georgia,serif}.magic-reward small{font-size:.75rem;color:#f2c7d7}.magic-reward.available{border-color:#ffc98f;box-shadow:0 0 16px #ffcc7b33}.magic-reward.locked img{filter:brightness(.83) saturate(.8)}
.cw-room-actions{grid-template-columns:repeat(3,minmax(0,1fr));max-width:100%;gap:10px}
.cw-action{border:1px solid #eda8cd85;background:linear-gradient(130deg,#663d70,#3c274f);box-shadow:0 7px 17px #160a2455}
.cw-dock{grid-template-columns:1fr 1fr;gap:15px}.cw-panel,.cw-room-builder{min-width:0;overflow:hidden}.cw-room-builder{width:100%;margin-top:14px}.cw-room-builder input,.cw-room-builder select{max-width:100%}.cw-room-builder .rw-shop-wrap{display:none!important}
/* Notification and shooting-star celebration, shared across every page */
.magic-celebration{position:fixed;z-index:9999;inset:0;pointer-events:none;overflow:hidden;display:grid;place-items:center}
.magic-shooting-star{position:absolute;top:17%;left:-20%;font-size:clamp(50px,10vw,90px);filter:drop-shadow(0 0 18px #fff2af);animation:magicShoot 2s cubic-bezier(.17,.73,.2,1) forwards}
.magic-shooting-star::before{content:'';display:block;position:absolute;right:60%;top:57%;width:200px;height:4px;border-radius:99px;background:linear-gradient(90deg,transparent,#ffb9cf,#fffad0);transform:rotate(-14deg);box-shadow:0 0 15px #ffe9a9}
.magic-celebration-message{position:relative;z-index:4;margin-top:100px;padding:18px 26px;background:linear-gradient(135deg,#5a317b,#b26092);border:1px solid #ffe0b9;border-radius:20px;box-shadow:0 15px 50px #21102be0;font:700 1.25rem Georgia,serif;color:#fff2df;text-align:center;animation:magicToast 3.3s ease-out forwards}
.magic-confetti{position:absolute;top:35%;left:50%;font-size:clamp(15px,4vw,35px);animation:magicConfetti 2.8s ease-out forwards;filter:drop-shadow(0 0 8px #ffeaba)}
@keyframes magicHeartFloat{0%{opacity:0;transform:translate(-50%,5px) scale(.6)}20%{opacity:1}100%{opacity:0;transform:translate(-50%,-78px) scale(1.2)}}
@keyframes magicFire{0%,100%{opacity:.4;transform:scale(1)}50%{opacity:.9;transform:scale(1.18)}}
@keyframes magicSparkle{0%,100%{opacity:.1;transform:translateY(0)}50%{opacity:1;transform:translateY(-18px)}}
@keyframes magicShoot{0%{left:-22%;top:32%;opacity:0;transform:rotate(-12deg) scale(.5)}10%{opacity:1}78%{opacity:1}100%{left:111%;top:5%;transform:rotate(-12deg) scale(1.4);opacity:0}}
@keyframes magicToast{0%{opacity:0;transform:scale(.7)}15%,74%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translateY(-40px)}}
@keyframes magicConfetti{0%{opacity:0;transform:translate(0,0) scale(.5)}14%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}}
@media(max-width:680px){.magic-nav-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.magic-nav-card img{height:108px}.magic-nav-card>div{padding:12px}.magic-home-title h1{font-size:2.6rem}.magic-today{padding:15px}.magic-today-stars{min-width:95px;font-size:1.5rem}.cw-heading p{display:none}.cw-dock{grid-template-columns:1fr}.cw-action{font-size:.8rem;min-height:58px}.cw-header{gap:8px}.cw-room-builder{padding:14px 12px!important}.magic-rewards{padding:12px}.magic-reward{flex-basis:112px;min-height:180px}.magic-reward img{width:86px;height:77px}.magic-movie-link{top:auto;bottom:8px;left:8px;right:auto;font-size:.65rem}.magic-calendar{font-size:clamp(3.2px,.93vw,7px)}}
@media(max-width:390px){.magic-home-title h1{font-size:2.3rem}.magic-home-hero-pill{font-size:.72rem;padding:7px 10px}.magic-calendar{font-size:3.2px}.cw-row .cw-button{font-size:.75rem;padding:7px 9px}}
@media(prefers-reduced-motion:reduce){.magic-particle,.magic-blush.active,.magic-shooting-star,.magic-confetti,.magic-ambient-fire,.magic-firespark,.magic-celebration-message{animation:none!important}.magic-hotspot{transition:none}}
/* Only one horizontally swipable reward carousel, below love actions. */
.cw-reward-shelf{display:none!important}
.magic-scene[data-theme="sunshine"] .magic-scene-art{filter:sepia(.12) saturate(1.09) brightness(1.08)}
.magic-scene[data-theme="sage"] .magic-scene-art{filter:hue-rotate(-9deg) saturate(.89) brightness(1.02)}
.magic-scene[data-theme="blush"] .magic-scene-art{filter:saturate(1.04) brightness(1.02)}
.magic-scene[data-light="night"] .magic-scene-art{filter:brightness(.85) saturate(1.13)}
.magic-scene[data-light="day"] .magic-scene-art{filter:brightness(1.16) saturate(.95)}
.magic-addon{position:absolute;pointer-events:none;z-index:3;filter:drop-shadow(0 4px 8px #381538b0);animation:magicBob 4s ease-in-out infinite}
.magic-addon img{width:100%;height:100%;object-fit:contain}
.magic-addon-crystal{left:23%;top:75%;width:11%;height:13%}
.magic-addon-lava{left:29%;top:38%;width:8%;height:17%}
.magic-addon-chair{right:1%;top:67%;width:13%;height:18%}
.magic-addon-pet{right:8%;top:77%;width:12%;height:14%}
.magic-addon-petbed{right:2%;top:85%;width:13%;height:9%;border-radius:50%;background:#eeb6ce8c}
.magic-addon-cushion{left:71%;top:60%;font-size:clamp(17px,5vw,42px);text-shadow:0 0 10px #ffb8dd}
.magic-addon-coat-bunny,.magic-addon-coat-kat{top:71%;font-size:clamp(17px,3.4vw,34px)}
.magic-addon-coat-bunny{left:40%}.magic-addon-coat-kat{left:55%}
.magic-addon-lights{left:30%;top:2%;color:#fff3a4;font-size:clamp(13px,3vw,26px);text-shadow:0 0 15px #ffe594}
@keyframes magicBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

/* Movie-night shortcut is positioned relative to the ROOM stage, not the star counter. */
.magic-movie-link{top:auto!important;bottom:9px!important;left:10px!important;right:auto!important;z-index:14;box-shadow:0 4px 18px #130824b3}

/* V12: Avatar tap targets stay accessible without drawing a rectangular gold selection box. */
.magic-hotspot.magic-bunny:is(:hover,:focus,:focus-visible,:active),
.magic-hotspot.magic-kat:is(:hover,:focus,:focus-visible,:active){
 outline:none!important;box-shadow:none!important;background:transparent!important;
 border-color:transparent!important;-webkit-tap-highlight-color:transparent!important;
}
.magic-hotspot.magic-bunny,.magic-hotspot.magic-kat{-webkit-tap-highlight-color:transparent!important;outline:none!important;}
/* V12: equipped reward previews are visually distinct from locked ones. */
.magic-reward.equipped{border-color:#ffe0a2;box-shadow:0 0 0 2px #f8b4d785,0 0 22px #ffc77b61;background:linear-gradient(180deg,#71456e,#3a254b)}
.magic-reward .magic-equip-indicator{color:#ffe6b6;font-weight:800}
.magic-addon-shoes-bunny,.magic-addon-shoes-kat{font-size:clamp(14px,2.5vw,28px);top:78%;}
.magic-addon-shoes-bunny{left:36.5%}.magic-addon-shoes-kat{left:55%}
.magic-addon-fancy{left:51%;top:52%;font-size:clamp(12px,2.5vw,24px)}
.magic-addon-crowns{left:45%;top:47%;font-size:clamp(14px,2.7vw,29px)}
.magic-addon-slippers{left:51%;top:79%;font-size:clamp(14px,2.5vw,26px)}

/* V13: glasses-free face layers match the underlying 941 × 824 illustrated artwork.
   They are independent, so each character can equip/remove their glasses. */
.magic-scene .magic-glasses-overlay{position:absolute;z-index:3;pointer-events:none;object-fit:fill;user-select:none;-webkit-user-drag:none;max-width:none;filter:none!important;}
.magic-glasses-overlay[hidden]{display:none!important}
.magic-glasses-overlay-bunny{left:35.4942%;top:54.2476%;width:15.9405%;height:10.0728%}
.magic-glasses-overlay-kat{left:51.96599%;top:55.3398%;width:14.2402%;height:10.0728%}
