:root{--ink:#51385f;--muted:#8c7697;--purple:#8b58bb;--pink:#ee91b3;--cream:#fffaf5}*{box-sizing:border-box}body{margin:0;background:#fcf6f4;color:var(--ink);font:15px 'Trebuchet MS',Arial,sans-serif;background-image:radial-gradient(#e9dde8 .8px,transparent .8px);background-size:16px 16px}button{font:inherit;cursor:pointer;border:0;color:inherit;transition:transform .15s,background .15s}button:hover{transform:translateY(-2px)}button:active{transform:translateY(1px)}button:focus-visible{outline:3px solid #7c50b8;outline-offset:3px}header{max-width:1520px;margin:auto;padding:25px 40px 24px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:13px;align-items:center}.brand-icon{background:#eadcf2;border:2px solid #fff;box-shadow:0 3px 0 #decce6;color:#a266b9;font-size:33px;width:54px;height:54px;border-radius:19px;display:grid;place-items:center;transform:rotate(-8deg)}h1{font-size:28px;margin:0;font-weight:900;letter-spacing:-1.1px}h1+p{margin:4px 0 0;color:var(--muted);font-size:12px;letter-spacing:1px}.header-right{display:flex;align-items:center;gap:22px}.save-label{font-size:11px;color:#9b8ba0}.coin-pill{display:flex;align-items:center;gap:7px;padding:10px 16px;border:1px solid #ecd9a8;background:#fff5d7;border-radius:20px}.coin-pill b{font-size:21px}.coin-pill small{font-size:10px;max-width:40px;line-height:1.3;text-align:left;color:#a07d45}main{max-width:1520px;padding:0 40px 28px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:24px}.world-card{background:white;border:1px solid #eee2ee;border-radius:27px;overflow:hidden;box-shadow:0 8px 0 #eee3ec;align-self:start}.world-top{padding:17px 22px;display:flex;align-items:center;justify-content:space-between;gap:8px}.eyebrow{font-size:10px;font-weight:bold;letter-spacing:1.5px;color:#9e80a2}.eyebrow i{display:inline-block;width:7px;height:7px;background:#9ac784;border-radius:50%;margin-right:6px}.quiet{background:transparent;font-size:11px;color:#927e9d}.world-wrap{position:relative;background:#d8ecbd;line-height:0;overflow:hidden}#world{display:block;width:100%;height:auto;touch-action:pinch-zoom;cursor:crosshair}.map-instruction,.location-tag{position:absolute;line-height:1.3;pointer-events:none;background:#fffffff0;border:1px solid #fff;border-radius:20px;font-size:10px;color:#8a7592;padding:8px 13px}.map-instruction{bottom:15px;left:15px}.location-tag{right:15px;top:15px;font-size:11px;box-shadow:0 2px 0 #ffffff50}.world-bottom{display:flex;align-items:center;padding:13px 22px;gap:12px}.player-mini{width:45px;height:46px;border-radius:15px;background:#f1e5f6;overflow:hidden}.player-mini svg{width:45px;height:54px}.world-bottom strong{font-size:13px}.world-bottom span{display:block;font-size:10px;margin-top:4px;color:#a38ea7}.switch-btn{margin-left:auto;padding:10px 13px;background:#f5edf8;border:1px solid #ecdef2;border-radius:11px;font-size:11px;font-weight:bold}aside{display:flex;flex-direction:column;gap:17px}.card{border:1px solid #eadee9;border-radius:23px;background:#fffcfa;padding:23px}.quest{background:#fff7ec;border-color:#f0dfd2}h2{font-size:23px;line-height:1.15;margin:12px 0 10px;letter-spacing:-.5px}.card p{color:#9a879d;font-size:12px;line-height:1.65}.quest-progress{display:flex;justify-content:space-between;margin-top:23px;font-size:11px;font-weight:bold}.quest-progress span+span{color:#ae946f;font-size:10px}.progress{height:7px;background:#efdfd7;border-radius:9px;margin-top:9px;overflow:hidden}.progress i{display:block;height:100%;background:#df91b4;border-radius:9px;transition:width .3s}.treat-list{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin:20px 0}.treat-list span{font-size:19px;filter:grayscale(1);opacity:.28}.treat-list span.yes{filter:none;opacity:1}.quest .hint{font-size:10px;line-height:1.5;min-height:32px;margin:13px 0}.primary{background:var(--purple);border-bottom:3px solid #70429d;color:#fff;border-radius:12px;padding:12px 16px;font-weight:bold;font-size:12px;width:100%;box-shadow:0 3px 9px #80549718}.home-card{padding-top:20px}.home-card h2{font-size:20px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:17px}.quick-grid button{border:1px solid #eddfed;background:#fbf4fb;border-radius:13px;padding:11px 5px;font-size:10px}.quick-grid span{display:block;font-size:24px;margin-bottom:6px}.friend-card{border:1px dashed #d8c7e3;background:#f3eafa;border-radius:19px;padding:16px;display:flex;align-items:center;gap:10px}.unicorn-icon{font-size:30px}.friend-card b{font-size:12px}.friend-card p{font-size:10px;line-height:1.5;margin:5px 0 0;color:#9a84a9}.heart{color:#de91ab}.footer-note{text-align:center;color:#ad99ad;font-size:9px;line-height:1.7;padding:1px 8px}#toast{position:fixed;z-index:8;bottom:25px;left:50%;transform:translate(-50%,25px);padding:14px 24px;max-width:90vw;width:max-content;border-radius:18px;background:#584067;color:white;font-size:13px;box-shadow:0 6px 25px #67447730;opacity:0;transition:all .2s;pointer-events:none}#toast.show{transform:translate(-50%,0);opacity:1}dialog{border:0;border-radius:27px;max-width:520px;width:calc(100% - 28px);padding:30px;background:#fffcf8;color:var(--ink);box-shadow:0 15px 80px #57406c40;max-height:90vh;overflow-y:auto}dialog::backdrop{background:#55375e55;backdrop-filter:blur(3px)}.close{position:absolute;right:16px;top:13px;background:#f1e7f3;width:28px;height:28px;border-radius:50%;font-size:21px}.modal-icon{font-size:42px}.modal-sub{color:#97859f;font-size:13px;line-height:1.7}.avatar-layout{display:grid;grid-template-columns:125px 1fr;gap:25px}.avatar-preview{background:linear-gradient(#eee3fb,#fce5ee);border-radius:60px;display:flex;align-items:center;justify-content:center;position:sticky;top:20px;height:200px;margin-top:15px}.avatar-preview svg{width:110px;height:180px}.field{margin:15px 0}.field label{display:block;font-size:11px;font-weight:bold;margin-bottom:8px}.swatches{display:flex;gap:7px;flex-wrap:wrap}.swatch{width:25px;height:25px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px #e4d8e8}.swatch.selected{box-shadow:0 0 0 2px #78519d}.choices{display:flex;gap:5px;flex-wrap:wrap}.choices button{font-size:10px;padding:7px 10px;border-radius:8px;background:#f0e7f2}.choices button.selected{background:#8b58bb;color:white}.dialog-actions{margin-top:20px}.shop-item{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #ede3ed}.shop-item .emoji{font-size:28px;width:35px}.shop-item .info{flex:1}.shop-item b{font-size:13px}.shop-item small{display:block;color:#9b889f;font-size:11px;margin-top:4px}.buy{padding:9px 12px;border-radius:9px;background:#eee2f6;font-size:12px;white-space:nowrap}.buy:disabled{opacity:.6;cursor:default}.house-preview{background:#f4eafb;border-radius:18px;padding:20px;text-align:center;font-size:50px}.house-preview small{font-size:22px;display:block;margin-top:10px}.match-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.match-card{height:80px;border-radius:13px;background:#e9d8f2;color:#9872b2;font-size:30px;border-bottom:4px solid #d0b7dd}.match-card.open,.match-card.matched{background:#fff1cb;border-color:#ebd899}.match-card.matched{opacity:.55}.zone{cursor:pointer}.zone:focus{outline:none}.zone:hover{filter:brightness(1.04)}.floaty{animation:bob 3s infinite ease-in-out}.sweet{cursor:pointer;filter:drop-shadow(0 5px 2px #7d58752b)}.sweet:hover{filter:drop-shadow(0 0 8px #fff)}@keyframes bob{50%{transform:translateY(-5px)}}@media(min-width:1600px){main{padding-top:10px}}@media(max-width:1050px){header{padding:20px 22px}main{padding:0 22px 25px;grid-template-columns:minmax(0,1fr) 245px;gap:16px}.card{padding:18px}h2{font-size:21px}.world-top{padding:14px 16px}.eyebrow{font-size:9px;letter-spacing:1px}.save-label{display:none}.world-bottom{padding:10px 14px}.switch-btn{font-size:10px;padding:9px}.world-bottom strong{font-size:11px}.map-instruction{font-size:8px}}@media(max-width:760px){header{padding:18px 17px}h1{font-size:23px}.brand-icon{width:44px;height:44px;font-size:29px}.brand{gap:10px}h1+p{font-size:9px}.coin-pill{padding:8px 11px}.coin-pill small{display:none}main{display:flex;flex-direction:column;padding:0 12px 25px;gap:22px}.world-card{width:100%;border-radius:22px}.world-top{padding:13px}.world-top .eyebrow{font-size:8px}#world{min-height:310px;object-fit:cover}.world-wrap{line-height:0}.map-instruction{font-size:8px;padding:6px 8px;bottom:8px;left:8px}.location-tag{font-size:8px;top:8px;right:8px;padding:6px 8px}aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quest{grid-row:span 2}.card{padding:17px 14px;border-radius:19px}.card h2{font-size:20px}.card p{font-size:11px}.quest-progress{flex-direction:column;gap:5px;margin-top:16px}.treat-list{gap:7px;margin:16px 0}.treat-list span{font-size:17px}.primary{font-size:11px;padding:11px 9px}.home-card h2{font-size:18px}.quick-grid{gap:6px;margin-top:12px}.quick-grid button{font-size:9px;padding:9px 1px}.quick-grid span{font-size:20px}.friend-card{padding:10px;gap:8px}.friend-card p{font-size:9px}.unicorn-icon{font-size:24px}.heart{display:none}.footer-note{grid-column:span 2}.avatar-layout{grid-template-columns:105px 1fr;gap:15px}dialog{padding:25px}.world-bottom{padding:10px}.world-bottom span{font-size:9px}}

.switch-btn{background:#ead8f5;border-color:#d3b7e4;color:#71479a;min-height:40px;box-shadow:0 2px 0 #d8bfE5}

.avatar-map-button{position:absolute;top:14px;left:14px;padding:9px 13px;border:1px solid #fff;background:#fffaf5ed;border-radius:20px;font-size:11px;line-height:1.3;box-shadow:0 2px 0 #aa8a9c20}.thumbstick{display:none;position:absolute;left:22px;bottom:48px;width:104px;height:104px;border-radius:50%;background:#fffaf1a8;border:3px solid #fff7eed9;box-shadow:0 4px 0 #ab86b42b,inset 0 0 0 13px #ecdbee77;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab;z-index:2}.thumbstick.dragging{cursor:grabbing;background:#fffaf1cc}.stick-knob{position:absolute;left:27px;top:27px;width:44px;height:44px;border-radius:50%;background:linear-gradient(#b68dd6,#9663bc);border:3px solid #e5cfed;box-shadow:0 4px 0 #78519255;pointer-events:none;will-change:transform}.stick-directions{position:absolute;inset:0;display:grid;place-items:center;color:#b495c4;font-size:86px;line-height:1;opacity:.5;pointer-events:none}.thumbstick>span{position:absolute;top:108px;left:-8px;width:114px;text-align:center;font-size:8px;font-weight:bold;letter-spacing:.8px;color:#785982;line-height:1.2;pointer-events:none}.touch-hint{display:none}@media(any-pointer:coarse),(max-width:760px){.thumbstick{display:block}.touch-hint{display:inline}.desktop-hint{display:none}.map-instruction{bottom:9px;left:14px;font-size:8px}.avatar-map-button{top:8px;left:8px;font-size:10px;padding:7px 10px}}.river-ripple-drift{transform-box:view-box;transform-origin:0 0;animation:river-flow 18s linear infinite}@keyframes river-flow{to{transform:translate(-2%,20%)}}@media(prefers-reduced-motion:reduce){button{transition:none}.floaty{animation:none}.stick-knob{will-change:auto}.river-ripple-drift{animation:none}.river-ripple-extra{display:none}}

.coin-icon{display:inline-block;width:18px;height:18px;vertical-align:-4px;flex:none}.coin-pill>.coin-icon{width:25px;height:25px}.quest-progress .coin-icon{width:14px;height:14px;vertical-align:-3px}

.refresh-game{display:block;width:100%;margin-top:12px;padding:10px;background:#f3eafa;border:1px solid #e1d0ea;border-radius:12px;font-size:12px;font-weight:bold}.refresh-game small{display:block;font-size:9px;font-weight:normal;color:#947d9f;margin-top:4px}

#world,#world *,#thumbstick,.coin-icon,.player-mini,.treat-list,.avatar-map-button,.switch-btn,.refresh-game{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}

.world-controls{display:flex;align-items:center;gap:10px}.day-night{background:#f5edf8;border:1px solid #ecdef2;border-radius:11px;padding:8px 12px;font-size:12px;font-weight:bold;color:#71479a;min-height:36px;box-shadow:0 2px 0 #e6d4ef}.day-night[aria-pressed="true"]{background:#efe4fb}body.is-night .world-wrap{background:#3c2a56}.twinkle{animation:twinkle 3.6s ease-in-out infinite}@keyframes twinkle{0%,100%{opacity:.45}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.twinkle{animation:none;opacity:.88}}@media(max-width:760px){.world-controls{gap:6px}.day-night{font-size:11px;padding:7px 9px;min-height:32px}}

.cottage-room{margin:12px 0 2px;background:#fff6c4;border:3px solid #ffd4e8;border-radius:18px;overflow:hidden;line-height:0}
.cottage-room svg{display:block;width:100%;height:auto}
dialog:has(.cottage-room){max-width:640px}
