:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#33243b;background:#f9f0e4;font-synthesis:none}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;width:100%}body{overscroll-behavior:none}button,select{font:inherit}button{border:0;border-radius:18px;background:#fffaf2;color:#33243b;padding:14px 18px;min-height:48px;box-shadow:0 3px 12px #62445a24;text-align:left;cursor:pointer}button:disabled{opacity:.45;cursor:default}button.primary{background:#dc6d79;color:#fff;font-weight:700;text-align:center}button.ghost{background:#fffaf2cc;border:1px solid #a688a2;box-shadow:none}button.selected,button.active{outline:3px solid #b14f78}#app{min-height:100dvh;max-width:760px;margin:auto;padding:env(safe-area-inset-top) 14px calc(154px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#fffaf2,#f7e9e8);display:flex;flex-direction:column;gap:12px;overflow-x:hidden}#app:has(.title-screen){padding:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 2px}.topbar strong{font-size:.82rem;white-space:nowrap}.pill{font-size:.82rem;background:#fffaf2;border-radius:99px;padding:8px 10px;white-space:nowrap}.panel{display:flex;flex-direction:column;gap:12px;min-width:0;flex:1}.panel h1{font-size:clamp(1.75rem,7vw,2.5rem);line-height:1.08;margin:8px 0 0}.panel h2{font-size:1.15rem;margin:18px 0 0}.panel p{margin:0}.muted{color:#695c67}.fact,.card{background:#fffaf2;border-radius:18px;padding:15px 18px;box-shadow:0 3px 12px #62445a16}.card{display:flex;flex-direction:column;gap:4px}.title-screen{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));background-size:cover;background-position:center;justify-content:flex-start;color:#fff}.title-screen h1{font-size:clamp(2.4rem,11vw,4.6rem);line-height:.98;text-shadow:0 3px 12px #17263b9c;margin:0;max-width:600px}.title-screen p{text-shadow:0 2px 8px #17263b;font-weight:600}.title-screen .muted{color:#fff}.title-actions{display:grid;gap:9px;margin-top:auto;width:100%}.title-actions button{text-align:center;background:#fffaf2e8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.title-actions button.primary{background:#d96678f2;color:#fff}.hero-placeholder{min-height:42dvh;display:grid;place-items:center;text-align:center;border:3px dashed #bb9aaf}.day-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding:5px 3px 14px;min-height:230px}.day-card{flex:0 0 min(66vw,230px);scroll-snap-align:center;display:flex;flex-direction:column;justify-content:space-between;gap:9px;background:#fffaf2 center/100% 100% no-repeat;padding:20px 18px}.day-card strong{font-size:1.4rem}.day-card small{color:#695c67}.week-badge{width:58px;height:38px;object-fit:contain;align-self:flex-end;margin-top:-18px}.map-placeholder{position:relative;aspect-ratio:948/1659;max-width:500px;width:100%;align-self:center;border-radius:24px;background:#e9f5ed center/100% 100% no-repeat;overflow:hidden}.map-screen .map-placeholder{width:auto;height:min(74dvh,760px);max-width:100%;flex:none}.map-screen .map-sheet{position:fixed;bottom:calc(76px + env(safe-area-inset-bottom));left:max(14px,calc((100vw - 760px)/2 + 24px));right:max(14px,calc((100vw - 760px)/2 + 24px));z-index:3}#app:has(.map-screen) .floating-back{bottom:calc(164px + env(safe-area-inset-bottom))}.map-sheet{position:relative;display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:center;padding:12px 16px;border-radius:18px;background:#fffaf2;box-shadow:0 3px 12px #62445a24}.map-sheet strong,.map-sheet span{grid-column:1}.map-sheet span{font-size:.82rem;color:#695c67}.map-sheet button{grid-column:2;grid-row:1/3}.map-placeholder:not(.has-asset){border:3px dashed #d39ab9;background:linear-gradient(160deg,#e9f5ed 0 42%,#b6dce6 43% 48%,#e9f5ed 49%)}.map-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70%;text-align:center;font-size:.75rem;font-weight:700;letter-spacing:.12em;color:#715d6e;pointer-events:none}.hotspot{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;min-height:44px;padding:2px;border-radius:50%;background:#fff8;border:2px solid #fffaf2;box-shadow:0 2px 7px #20191e88;display:grid;place-items:center}.hotspot img{width:35px;height:35px;object-fit:contain}.hotspot.current{outline:3px solid #e35a77;background:#fff}.hotspot.unreachable{background:#504b5bcc;color:#fff;font-size:1rem;border-color:#fff;box-shadow:0 0 0 2px #423c47}.destination-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.destination-list button{font-size:.88rem;padding:10px 12px;min-height:54px}.place-placeholder{position:relative;aspect-ratio:941/1672;max-width:500px;width:100%;align-self:center;border-radius:24px;background:#ead9e4 center top/cover no-repeat;overflow:hidden}.place-placeholder:not([style]){border:3px dashed #bb9aaf;display:grid;place-items:center}.scene-actions{position:absolute;left:0;right:0;bottom:0;padding:70px 14px 14px;display:grid;gap:9px;background:linear-gradient(transparent,#1f2432c9)}.scene-actions button{text-align:center}.avatar-preview{position:relative;align-self:center;width:min(60vw,270px);border-radius:24px;background:#fffaf2;overflow:hidden;box-shadow:0 5px 20px #62445a22}#app:has(.friend-editor){height:100dvh;min-height:0;overflow:hidden;padding-bottom:calc(78px + env(safe-area-inset-bottom))}.friend-editor{min-height:0;overflow:hidden}.friend-editor .avatar-preview{height:min(27dvh,250px);width:auto;flex:none}.friend-avatar-controls{min-height:0;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:9px}.friend-avatar-controls .chips{position:sticky;top:0;z-index:2;flex:0 0 auto;background:#fff7f1;padding-block:8px}.friend-name-label{display:grid;gap:4px}.friend-name-label input{width:100%;min-width:0;padding:12px;border:1px solid #aa8ea5;border-radius:12px;font:inherit}.friend-thumb{width:74px;height:100px;object-fit:cover;border-radius:12px}.friend-card{display:flex;align-items:center;gap:10px}.friend-actions{display:flex;gap:6px;flex-wrap:wrap}.friend-actions button{padding:8px 10px;min-height:40px}.friend-view-image{width:min(100%,250px);align-self:center;border-radius:18px;background:#fffaf2}#app:has(.friend-editor) .floating-back{top:70px;bottom:auto}#app:has(.avatar-screen){height:100dvh;min-height:0;overflow:hidden;padding-bottom:calc(78px + env(safe-area-inset-bottom))}.avatar-screen{min-height:0;flex:1;overflow:hidden}.avatar-screen .avatar-preview{height:min(36dvh,320px);width:auto;flex:none}.avatar-controls{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:4px 3px 12px;display:flex;flex-direction:column;gap:10px}.avatar-controls .chips{position:sticky;top:0;z-index:2;flex:0 0 auto;background:#fff7f1;padding-block:8px}.avatar-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.avatar-canvas{display:block;width:100%;height:100%}.avatar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.avatar-grid button{min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:7px;font-size:.72rem;overflow:hidden}.avatar-grid small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.avatar-thumb{width:100%;height:92px;object-fit:cover;object-position:center 24%;background:#fff3e9;border-radius:10px}.swatch{width:39px;min-width:39px;height:39px;min-height:39px;padding:0;border:2px solid #fffaf2}.offline-progress{width:100%;height:14px;accent-color:#d96678}.offline-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.offline-controls button{min-width:0;overflow-wrap:anywhere;text-align:center}.collection-card.locked{background:#e9e2e5;color:#514b51;border:2px dashed #8d8288}.collection-card.locked img{filter:grayscale(1) brightness(.72)}.collection-card.owned{border:2px solid #62a786}.collection-card small{font-weight:700}.wishlist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wishlist-card{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;min-width:0;padding:10px;font-size:.8rem}.wishlist-card strong{overflow-wrap:anywhere}.wishlist-card small{color:#675c66}.photo-card{width:min(100%,280px);align-self:center;display:flex;flex-direction:column;gap:7px;background:#fff;padding:12px 12px 20px;box-shadow:0 5px 18px #62445a33;transform:rotate(-1deg);text-align:center}.photo-card img{width:100%;aspect-ratio:1/1;object-fit:cover}.photo-card small{color:#695c67}.sleepover-scene{width:100%;aspect-ratio:9/12;background:center/cover;border-radius:22px}.sleepover-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.sleepover-person{text-align:center;min-width:0}.sleepover-person .avatar-preview{width:100%;border-radius:10px}.chips,.grid,.color-row{display:flex;gap:8px;flex-wrap:wrap}.phone-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.phone-app{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;min-height:116px;padding:10px;border-radius:22px;background:#fffaf2}.phone-app img{width:70px;height:70px;object-fit:contain;border-radius:16px}.phone-app span{font-weight:650;font-size:.9rem}.chips{overflow-x:auto;flex-wrap:nowrap;padding:5px 2px}.chips button{white-space:nowrap}.chips button,.grid button{font-size:.83rem;padding:9px 12px;min-height:42px}.shop-grid,.collection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shop-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;font-size:.85rem;min-width:0}.item-art{width:70px;height:70px;object-fit:contain}.collection-grid .card{align-items:center;text-align:center;font-size:.85rem}.event-panel{background:#fffaf2;border-radius:24px;padding:22px 18px;justify-content:flex-start;box-shadow:0 4px 16px #62445a24}.result-panel .reward-card{display:flex;align-items:center;gap:12px;padding:10px;border-radius:18px;background:#fffaf2}.reward-card span{font-size:.83rem;color:#53725e}.result-panel .primary{margin-top:auto}.time-cue{padding:12px 16px;background:#fff0cf;border-left:4px solid #d88542;border-radius:12px;font-weight:650}.toggle{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;background:#fffaf2;border-radius:16px}.toggle input{width:23px;height:23px}.schedule-line{padding:7px 0;border-bottom:1px solid #dccbd4}.mini-board{display:flex;flex-wrap:wrap;gap:12px;min-height:180px;align-content:center;justify-content:center;background:#fffaf2;border-radius:20px;padding:18px;touch-action:none}.mini-board button{text-align:center}.mini-info{font-weight:650}.mini-clock{display:block;text-align:center;color:#a64b64}.mini-board.tile-board,.mini-board.basket-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start}.mini-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;padding:7px;aspect-ratio:1/1}.mini-tile img{width:100%;height:75%;object-fit:contain}.mini-tile span{font-size:.7rem;line-height:1.15}.pair-card{font-size:2rem;font-weight:700}.target-board{position:relative;min-height:320px}.moving-target{position:absolute;width:30%;height:30%;padding:4px;transition:left .13s,top .13s}.moving-target img{width:100%;height:100%;object-fit:contain}.sequence-preview{display:grid;place-items:center;height:125px;background:#fffaf2;border-radius:18px;font-weight:700}.sequence-preview img{height:110px;max-width:100%;object-fit:contain}.swipe-ball{width:92px;height:92px;object-fit:contain}.swipe-hit{outline:4px solid #6cba92}.outfit-board{display:grid;grid-template-columns:repeat(3,1fr)}.outfit-canvas{width:100%;min-width:0;background:#fff5ea;border-radius:12px}.timing-track{position:relative;width:100%;height:35px;border-radius:99px;background:linear-gradient(90deg,#ebc0c0 42%,#86d7a2 42% 58%,#ebc0c0 58%)}.timing-track span{position:absolute;top:-6px;width:6px;height:47px;background:#372e40;border-radius:4px}.timing-board{flex-direction:column;align-items:stretch;gap:32px;padding:28px 18px}.timing-board .timing-track{flex:none}.timing-board button{align-self:center;min-width:150px}.games-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.game-card{align-items:center;text-align:center;min-width:0}.game-icon{width:68px;height:68px;object-fit:contain}.game-card strong{font-size:.88rem;min-height:2.3em}.game-card button{width:100%;min-height:42px;padding:8px;text-align:center}.canvas-board{display:flex;flex-direction:column;align-items:center;gap:12px;min-height:0;padding:10px;touch-action:none}.game-canvas{display:block;width:min(100%,320px);max-height:53dvh;border-radius:16px;touch-action:none;box-shadow:inset 0 0 0 2px #e9c4d4}.game-controls,.maze-controls,.race-controls,.stroop-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}.game-controls button,.maze-controls button,.race-controls button,.stroop-choices button{text-align:center;min-height:52px}.mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-height:300px}.whack-cell{opacity:.35;min-width:0;padding:4px}.whack-cell.active{opacity:1;outline:3px solid #df6c92}.whack-cell img{width:100%;height:75px;object-fit:contain}.simon-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:280px}.simon-tile{opacity:.55;min-width:0;padding:5px}.simon-tile.active{opacity:1;outline:4px solid #d9618d}.simon-tile img{width:100%;height:95px;object-fit:contain}.clicker-target{align-self:center;width:min(65vw,210px);height:min(65vw,210px);padding:10px}.clicker-target img{width:100%;height:100%;object-fit:contain}.clicker-target.active{transform:scale(.94)}.maze-grid,.mirror-grid{display:grid;gap:3px;width:100%}.maze-cell,.mirror-cell{min-width:0;min-height:45px;padding:4px;text-align:center;border-radius:8px;background:#f5e3e9}.maze-cell.current,.mirror-cell.active{background:#d47ea5;color:#fff}.maze-cell.goal{outline:2px solid #7aac91}.maze-cell.hit{background:#e9686f}.maze-controls{grid-template-columns:repeat(4,1fr)}.mirror-wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}.mirror-group{min-width:0;text-align:center}.mirror-cell{min-height:42px}.mirror-cell img{width:100%;height:32px;object-fit:contain}.stroop-word{font-size:2.2rem;font-weight:800;width:100%;text-align:center}.stroop-choices{grid-template-columns:repeat(2,1fr)}.race-board{flex-direction:column}.race-lanes{display:grid;gap:10px;width:100%}.race-lane{position:relative;display:flex;align-items:center;height:52px;background:#f3dce7;border-radius:12px;overflow:hidden}.race-lane img{width:42px;height:42px;object-fit:contain;z-index:1}.race-lane span{position:absolute;inset:0 auto 0 0;width:0;background:#a8d1bb}.parity-number,.blind-clock{font-size:3rem;text-align:center;width:100%}.bottomnav{position:fixed;z-index:10;bottom:0;left:50%;transform:translate(-50%);width:min(100%,760px);display:grid;grid-template-columns:repeat(4,1fr);gap:5px;background:#fffaf2f5;padding:7px 8px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px #62445a20}.bottomnav button{box-shadow:none;background:transparent;text-align:center;padding:3px 2px;font-size:.72rem;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.bottomnav img{width:25px;height:25px;object-fit:contain}.floating-back{position:fixed;z-index:12;bottom:calc(75px + env(safe-area-inset-bottom));right:max(14px,calc((100vw - 760px)/2 + 14px));width:46px;height:46px;min-height:46px;padding:0;border-radius:12px;text-align:center;font-size:1.5rem;background:#fffaf2ee;border:1px solid #c9a6b3;box-shadow:0 3px 12px #62445a33}.toast{position:fixed;z-index:20;bottom:88px;left:50%;transform:translate(-50%);width:max-content;max-width:90vw;background:#342c3a;color:#fff;border-radius:99px;padding:12px 18px;text-align:center}.reduce-motion *{animation-duration:.01ms!important;transition-duration:.01ms!important}select{padding:12px;border-radius:12px;background:#fff;border:1px solid #aa8ea5}@media(min-width:650px){#app{box-shadow:0 0 50px #35253a22;padding-left:24px;padding-right:24px}#app:has(.title-screen){padding:0}.map-placeholder,.place-placeholder{width:100%}}@media(max-width:370px){.destination-list,.shop-grid{grid-template-columns:1fr 1fr}.title-screen h1{font-size:2.35rem}}@media(max-width:420px){.panel h1{overflow-wrap:anywhere}.shop-grid,.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.avatar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
