@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/fonts/fredoka-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 500;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/fonts/fredoka-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 600;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/fonts/fredoka-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/fonts/fredoka-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Sans Thai';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/fonts/noto-sans-thai-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Sans Thai';
  font-style: normal;
  font-weight: 500;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/fonts/noto-sans-thai-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Sans Thai';
  font-style: normal;
  font-weight: 600;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/fonts/noto-sans-thai-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Sans Thai';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/fonts/noto-sans-thai-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/nunito-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/nunito-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/nunito-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/nunito-800.ttf) format('truetype');
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(assets/fonts/nunito-900.ttf) format('truetype');
}

:root{--ink:#493d65;--muted:#897c9e;--purple:#8059bb;--deep:#634198;--lavender:#eee6fa;--line:#e9e1f0;--pink:#ed82b5;--mint:#5ba78f;--paper:#fffcff;--shadow:0 8px 28px #5b38760c;font-size:16px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#f8f5fc;background-image:radial-gradient(#c7b8d34d 1px,transparent 1px);background-size:24px 24px;font-family:'Nunito','Noto Sans Thai',system-ui,sans-serif;line-height:1.55}button,input,select{font:inherit}button{cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,select,input{min-height:44px}button{border:0}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #8860d6;outline-offset:4px}button:not(:disabled):active{transform:translateY(2px)}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.3}h1{font-size:1.65rem;font-weight:900}h2{font-size:1.12rem;font-weight:900}h3{font-size:1rem}p{color:var(--muted)}a{color:var(--purple)}svg.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.brand{display:flex;align-items:center;gap:11px}.brand-symbol{font-size:32px;display:grid;place-items:center;background:#eee4fc;border:1px solid #ddcef1;border-radius:17px;width:48px;height:50px;transform:rotate(-8deg)}.wordmark{font-family:'Fredoka', 'Nunito',sans-serif;font-weight:600;font-size:1.8rem;line-height:1;letter-spacing:-.6px}.wordmark b{color:var(--pink);font-weight:600}.brand small{display:block;font-size:10px;letter-spacing:3px;margin-top:7px;color:var(--muted);font-weight:900}.topbar{max-width:1450px;margin:auto;padding:22px 36px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.top-actions{display:flex;align-items:center;gap:9px}.pill,.icon-button{background:white;border:1px solid var(--line);border-radius:14px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.875rem;font-weight:800}.icon-button{width:44px;padding:9px}.pill.currency{background:#fff6d9;border-color:#f5e4ab;color:#92702a;font-size:1rem}.coin{font-size:21px;color:#d89d30}.lang-select{border:0;background:transparent;color:var(--ink);max-width:90px;min-height:30px;font-weight:800}.account-button{background:var(--purple);color:#fff;border-color:var(--purple)}.main-nav{border-top:1px solid #e9e1f0aa;border-bottom:1px solid var(--line);background:#fffafdcc;display:flex;justify-content:center;gap:38px;padding:0 20px;overflow:auto}.nav-item{position:relative;display:flex;align-items:center;gap:9px;flex-shrink:0;background:transparent;padding:17px 8px;color:var(--muted);font-weight:800;font-size:.95rem}.nav-item.active{color:var(--purple)}.nav-item.active:after{position:absolute;content:'';bottom:0;left:0;right:0;height:3px;border-radius:4px;background:var(--purple)}.page{max-width:1450px;margin:auto;padding:27px 36px 24px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.page-heading p{font-size:.9rem;margin-top:5px}.save-status{font-size:.8rem;color:#769687;display:flex;gap:6px;align-items:center}.home-grid{display:grid;grid-template-columns:230px minmax(0,1fr) 230px;gap:23px;align-items:start}.panel{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow)}.panel+.panel{margin-top:17px}.panel-label{font-size:.75rem;letter-spacing:1.7px;text-transform:uppercase;color:#9783ad;font-weight:900;margin-bottom:14px}.pet-card{width:100%;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:9px 10px;text-align:left;margin-top:10px}.pet-card.selected{border:1.5px solid #b89bdd;background:#f4edfc}.pet-card strong{display:block}.pet-card small{display:block;color:var(--muted);font-size:.75rem}.pet-thumb{width:49px;height:62px;flex-shrink:0}.add-pet{background:transparent;border:1.5px dashed #d6c4e8;border-radius:15px;width:100%;padding:12px 8px;margin-top:12px;font-size:.8rem;color:var(--purple);font-weight:800}.keeper{text-align:center}.keeper-medal{font-size:30px;margin-bottom:6px}.keeper .score-number{font-family:'Fredoka',sans-serif;font-size:2.3rem;color:var(--purple);line-height:1.2}.keeper .label{font-size:.8rem;color:var(--muted)}.score-rule{height:1px;background:var(--line);margin:17px 0}.text-button{background:transparent;color:var(--purple);font-weight:800;font-size:.85rem;padding:3px 8px}.wish{display:flex;align-items:center;gap:10px;font-size:.83rem;margin-top:16px}.check{height:23px;width:23px;border-radius:8px;border:1.5px solid #dbd1e6;display:grid;place-items:center;flex:none;font-size:14px}.wish.done{color:#769687}.wish.done .check{background:#e5f3eb;color:#54947a;border-color:#c0e0ce}.daily-reward{font-size:.75rem;background:#fff8df;color:#a0873b;border-radius:10px;text-align:center;padding:9px;margin-top:18px}.memories-list{list-style:none;padding:0;margin:0}.memories-list li{font-size:.78rem;padding:11px 0;border-bottom:1px dashed var(--line);line-height:1.5}.memories-list li:last-child{border:0}.memories-list time{display:block;color:#ab9fb8;font-size:.7rem;margin-top:4px}.empty-memories{font-size:.85rem;padding-top:10px}.device{padding:15px 17px 18px;background:linear-gradient(125deg,#e5d9f8,#d1b8ee 65%,#bea0df);border:2px solid #c9b0e4;border-radius:38px;box-shadow:0 8px 0 #a98bc8,0 13px 0 #e7def0,0 22px 35px #5c388d17,inset 0 2px 2px #fff;position:relative}.device-top{display:flex;align-items:center;justify-content:space-between;padding:0 13px 10px;color:#7e62a0}.device-top .device-logo{font-family:'Fredoka',sans-serif;font-size:.92rem;font-weight:600;letter-spacing:3px;color:#8764b1}.device-top .dots{font-size:16px;letter-spacing:3px}.room-stage{aspect-ratio:1.47;position:relative;overflow:hidden;border-radius:25px;border:4px solid #b094ce;background:#d2b8e6;box-shadow:0 0 0 2px #eadfff,inset 0 5px 12px #4b2d7c55}.room-backdrop{position:absolute;inset:0;background:url('assets/dragon-house.webp') center center/cover;transition:filter .7s}.room-stage.night .room-backdrop{filter:brightness(.38) saturate(.65) hue-rotate(20deg)}.room-stage.sunny .room-backdrop{filter:sepia(.25) saturate(1.18)}.room-stage.moon .room-backdrop{filter:hue-rotate(18deg) brightness(.82)}.room-label{position:absolute;top:12px;left:12px;background:#fffef3dd;color:#816192;border:1px solid #ffffffb3;border-radius:10px;padding:5px 10px;font-size:.7rem;font-weight:900}.stage-controls{position:absolute;top:9px;right:9px;display:flex;gap:5px}.stage-controls button{background:#fffef3de;border-radius:50%;width:34px;min-height:34px;display:grid;place-items:center;color:#94719e}.stage-controls svg{width:17px;height:17px}.dragon-holder{background:transparent;position:absolute;width:35%;left:33%;bottom:8%;padding:0;transform-origin:center bottom;filter:drop-shadow(0 7px 3px #50374433);animation:breathe 3s ease-in-out infinite}.dragon-holder.egg{width:21%;left:40%;bottom:13%;animation:eggRock 4s ease-in-out infinite}.dragon-holder.sleeping{transform:rotate(12deg) scale(.9);animation:breathe 6s ease-in-out infinite}.dragon-holder.dead{opacity:.5;filter:grayscale(1);animation:none}.sprite{display:block;background-image:url('assets/dragon-atlas.png');background-repeat:no-repeat;width:100%;pointer-events:none}.dragon-holder.joy{animation:joy .5s ease-in-out 2}.dragon-holder.dancing{animation:dance .6s ease-in-out infinite}.dragon-holder.scared{animation:shake .2s infinite}.bubble{position:absolute;left:14%;right:14%;top:16%;text-align:center;font-size:.82rem;font-weight:800;background:#fffaf2f2;border:2px solid #d8b5cd;border-radius:16px;padding:9px 10px;box-shadow:0 3px 0 #ae859422;z-index:2;pointer-events:none}.bubble:after{content:'';position:absolute;left:48%;bottom:-9px;width:12px;height:12px;border-right:2px solid #d8b5cd;border-bottom:2px solid #d8b5cd;background:#fffaf2;transform:rotate(45deg)}.stage-hint{position:absolute;bottom:10px;left:10px;right:10px;text-align:center;font-size:.72rem;color:#80627c;text-shadow:0 1px #fff;background:#fff9eeac;border-radius:20px;padding:4px}.mood-effect{position:absolute;inset:0;display:grid;place-items:center;font-size:4rem;pointer-events:none;z-index:3;animation:floatUp 1.5s forwards}.egg-choices{display:flex;justify-content:center;gap:8px;margin:16px 0 7px;flex-wrap:wrap}.egg-choice{padding:5px 12px;background:#eee4fac4;border:1px solid #c3a7df;border-radius:30px;font-size:.78rem;font-weight:800;color:#78568e;min-height:35px}.egg-choice.chosen{background:#fff4fd;border-color:#a174c3;color:#75469b;box-shadow:0 2px #b391d1}.device-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:13px 15px 0}.device-bottom .tiny-star{color:#9874bc;font-size:23px}.device-buttons{display:flex;gap:24px;align-items:center}.toy-button{border-radius:50%;width:29px;min-height:29px;background:linear-gradient(#ffc5e5,#ef82b8);box-shadow:0 3px 0 #b86b9d,0 0 0 1px #c07aa9,inset 0 2px #ffe6f3}.toy-button:nth-child(2){width:34px;min-height:34px;margin-top:7px}.pet-title-row{display:flex;justify-content:space-between;align-items:center;margin:26px 5px 12px}.pet-title-row h2{font-family:'Fredoka','Noto Sans Thai',sans-serif;font-size:1.55rem;display:flex;gap:10px;align-items:center}.tag{font-family:'Nunito','Noto Sans Thai',sans-serif;font-size:.7rem;background:#efe6f9;color:#9674b4;border-radius:20px;padding:5px 10px;font-weight:800}.pet-title-row p{font-size:.75rem;margin-top:3px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:#fffdfd;border:1px solid var(--line);border-radius:18px;padding:15px}.stat-label{font-size:.72rem;display:flex;justify-content:space-between;gap:4px;margin-bottom:7px;color:#887b98}.stat-label strong{font-size:.7rem;color:#a496b2}.track{background:#f1edf4;height:7px;border-radius:20px;overflow:hidden}.track span{display:block;height:100%;border-radius:20px;background:var(--bar,#d798b9);transition:width .8s}.danger-banner{background:#fff0f1;border:1px solid #f2b4ba;border-radius:12px;color:#b44f60;font-weight:800;text-align:center;margin-top:12px;padding:10px;font-size:.9rem}.care-dock{margin-top:20px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.action-tile{border:1px solid var(--line);border-radius:18px;background:#fff;padding:12px 4px 10px;box-shadow:0 3px 0 #ede6f2;min-width:0;min-height:91px}.action-tile .emoji{font-size:25px;display:block;margin-bottom:5px}.action-tile span:last-child{font-size:.75rem;font-weight:900;display:block;line-height:1.4}.action-tile:first-child{background:#fff0e6;border-color:#f0d7be}.action-tile:nth-child(2){background:#edf8fb;border-color:#cde6ee}.action-tile:nth-child(3){background:#fff0f6;border-color:#efdae4}.action-tile:nth-child(4){background:#f1edfc;border-color:#ddd5f1}.action-tile:nth-child(5){background:#eff7ed;border-color:#d6e4d0}.action-tile:nth-child(6){background:#fff8e5;border-color:#f1e5bf}.more-actions{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:13px}.more-actions button{font-size:.8rem;color:#947ea8;background:transparent;font-weight:800}.footer{display:flex;justify-content:center;gap:15px;flex-wrap:wrap;padding:25px 10px 6px;color:#b2a4c0;font-size:.7rem}.footer button{font-size:.75rem;color:#9e8aaf;background:transparent;min-height:32px}.main-section{max-width:1100px;margin:0 auto}.section-intro{margin-bottom:23px}.section-intro p{font-size:.9rem;margin-top:8px}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.game-card{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;padding:0;text-align:left;box-shadow:var(--shadow)}.game-art{height:175px;display:flex;align-items:center;justify-content:center;position:relative;background:#e1f1f9}.game-art .mini-dragon{width:95px;filter:drop-shadow(0 7px 2px #5c387622)}.game-art .game-symbol{font-size:70px;position:absolute;right:22px;bottom:24px;transform:rotate(8deg)}.game-card:nth-child(2n) .game-art{background:#fbeed9}.game-card:nth-child(3n) .game-art{background:#eee1f6}.game-card-body{padding:20px}.game-card-body h2{margin-bottom:8px}.game-card-body p{font-size:.8rem;min-height:45px}.game-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:15px;color:var(--purple);font-size:.8rem;font-weight:900}.activity-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.activity{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px 12px;box-shadow:var(--shadow)}.activity .emoji{display:block;font-size:35px;margin-bottom:10px}.activity strong{display:block;font-size:.9rem}.activity small{color:var(--muted);font-size:.75rem}.food-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.food{border:1px solid var(--line);border-radius:18px;background:#fffcff;padding:16px 10px;position:relative;text-align:center}.food .emoji{font-size:40px;display:block;margin:5px auto 12px}.food strong{font-size:.88rem;display:block}.food small{font-size:.8rem;color:var(--muted)}.food .quantity{position:absolute;right:9px;top:8px;border-radius:8px;background:#ede3fa;color:#946ab6;font-size:.72rem;padding:2px 6px}.food.unsafe{border-style:dashed;opacity:.65}.food.unsafe:after{content:'⚠';position:absolute;left:9px;top:8px;color:#b4575e}.primary{background:var(--purple);border:1px solid var(--purple);border-radius:13px;padding:11px 20px;color:white;font-weight:800;box-shadow:0 3px 0 #624197}.secondary{background:#f3ecfa;border:1px solid #e0d1ee;border-radius:13px;padding:11px 20px;color:var(--purple);font-weight:800}.button-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:20px}.notice{font-size:.86rem;background:#f3edf9;color:#8a739f;border:1px solid #e6dcf0;padding:13px 16px;border-radius:14px;margin:14px 0}.notice.warning{background:#fff3e7;color:#a57c45;border-color:#f2dfc4}.book-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:25px}.growth-steps{display:flex;gap:8px;margin:23px 0;flex-wrap:wrap}.growth-step{flex:1;min-width:70px;text-align:center;background:#f8f3fc;padding:15px 5px;border-radius:13px;border:1px solid var(--line);font-size:.72rem}.growth-step.current{background:#eee1fc;border-color:#bd9dde}.growth-step .step-num{display:block;font-family:'Fredoka',sans-serif;font-size:1.8rem;color:#ac8bca}.book-dragon{width:200px;margin:auto}.anatomy-parts{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:15px}.original-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}.original-card{background:#fff;padding:8px;border:1px solid var(--line);border-radius:15px;text-align:left}.original-card img{width:100%;height:165px;object-fit:cover;object-position:top;border-radius:9px}.original-card span{display:block;padding:8px;font-size:.82rem;font-weight:800}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.settings-row label{font-size:.95rem}.field{display:block;margin-top:15px;font-size:.88rem;font-weight:800}.field input,.field select{width:100%;margin-top:6px;border:1px solid #dacde7;background:white;border-radius:12px;padding:11px 13px;min-width:0;color:var(--ink)}.field input:focus{outline:2px solid #b79ad7}.auth-tabs{display:flex;gap:6px;background:#f2ebf8;border-radius:13px;padding:4px;margin:18px 0}.auth-tabs button{flex:1;padding:8px;background:transparent;border-radius:10px;color:#917ba8;font-size:.86rem;font-weight:800}.auth-tabs button.active{background:white;color:var(--purple);box-shadow:0 2px 6px #61428413}.form-message{font-size:.85rem;margin-top:13px;color:#b3597b;white-space:pre-wrap}.full-width{width:100%;margin-top:22px}.tiny{font-size:.8rem;color:var(--muted)}.rank-table{width:100%;border-collapse:collapse;font-size:.9rem}.rank-table td,.rank-table th{text-align:left;padding:17px 10px;border-bottom:1px solid var(--line)}.rank-table th{font-size:.8rem;color:var(--muted)}.rank-table td:first-child{color:var(--purple);font-weight:900}.rank-table td:last-child{text-align:right;font-weight:900}.empty-state{text-align:center;padding:50px 20px}.empty-state .big-emoji{font-size:65px;display:block;margin-bottom:15px}.empty-state p{max-width:480px;margin:10px auto 20px}.party-people{display:grid;grid-template-columns:repeat(5,1fr);gap:15px}.party-person{text-align:center;background:#f4edfc;border-radius:18px;padding:15px 5px;position:relative}.party-person .sprite{max-width:100px;margin:auto}.party-person strong{font-size:.8rem;display:block}.party-person .emote{font-size:28px;position:absolute;top:-8px;right:0}.party-screen{background:linear-gradient(135deg,#32235c,#6e4c93);border:8px solid #ad8ccc;border-radius:24px;text-align:center;color:white;padding:40px 20px;margin-bottom:22px;min-height:160px}.party-screen span{font-size:36px;letter-spacing:14px;animation:twinkle 3s infinite alternate}.party-room-code{text-align:center;font-family:'Fredoka',sans-serif;font-size:2rem;letter-spacing:7px;color:var(--purple);margin:18px}.color-options{display:flex;gap:10px;margin:12px 0}.color-options button{width:36px;height:36px;min-height:36px;border-radius:50%;border:3px solid white;box-shadow:0 0 0 1px #ccc}.color-options button.selected{box-shadow:0 0 0 3px var(--purple)}
 dialog{width:min(590px,calc(100% - 24px));max-height:calc(100dvh - 36px);border:1px solid #e0d2ee;border-radius:27px;background:#fffcff;color:var(--ink);padding:28px;box-shadow:0 25px 100px #30194655;overscroll-behavior:contain}dialog::backdrop{background:#3c255880;backdrop-filter:blur(5px)}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}.modal-header h2{font-size:1.4rem}.modal-header button{background:#f0e9f6;border-radius:50%;width:36px;min-height:36px;color:#957eab;font-size:22px}.modal-intro{font-size:.9rem;margin-bottom:18px}.modal-wide{width:min(790px,calc(100% - 24px))}.modal-game{padding:17px}.modal-game .modal-header{padding:0 7px}.game-canvas{display:block;width:100%;aspect-ratio:720/460;background:#dfeffc;border-radius:19px;touch-action:none}.game-hud{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;margin:8px 7px 14px;gap:8px}.game-touch{display:flex;justify-content:space-between;gap:10px;margin-top:12px}.game-touch button{flex:1}.game-result{text-align:center;padding:10px}.game-result .big-number{font-family:'Fredoka',sans-serif;font-size:3rem;color:var(--purple)}.draw-canvas{background:white;border:2px dashed #d7c4e6;display:block;width:100%;aspect-ratio:1.3;border-radius:15px;touch-action:none}.draw-tools{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:15px 0}.draw-tools button{border-radius:50%;min-height:34px;width:34px;border:3px solid white;box-shadow:0 0 0 1px #d8cde4}.draw-tools input{max-width:100px}.original-view{width:100%;border-radius:12px}#toast{position:fixed;z-index:100;left:50%;bottom:25px;max-width:calc(100% - 30px);padding:12px 22px;border:1px solid #dccae9;border-radius:17px;color:#705186;background:#fffbff;box-shadow:0 8px 30px #4d34652b;transform:translate(-50%,30px);opacity:0;pointer-events:none;transition:.22s;font-size:.9rem;font-weight:800;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.immersive .topbar,.immersive .main-nav,.immersive .page-heading,.immersive .side,.immersive .footer{display:none}.immersive .home-grid{display:block;max-width:800px;margin:auto}.immersive .page{padding:12px}.hidden{display:none!important}
@keyframes breathe{0%,100%{translate:0 0;scale:1 1}50%{translate:0 -3px;scale:1.02 1.025}}@keyframes eggRock{0%,80%,100%{rotate:0deg}85%{rotate:-5deg}90%{rotate:5deg}95%{rotate:-3deg}}@keyframes joy{0%,100%{translate:0 0}50%{translate:0 -25px;rotate:5deg}}@keyframes dance{0%,100%{rotate:-8deg}50%{rotate:8deg;translate:0 -10px}}@keyframes shake{0%,100%{translate:-3px 0}50%{translate:3px 0}}@keyframes floatUp{0%{opacity:0;translate:0 0}20%{opacity:1}100%{opacity:0;translate:0 -90px}}@keyframes twinkle{to{opacity:.55}}
@media(min-width:1500px){.page{padding-top:35px}.home-grid{grid-template-columns:245px minmax(0,1fr) 245px;gap:28px}.room-stage{aspect-ratio:1.46}}
@media(max-width:1190px){.home-grid{grid-template-columns:195px minmax(0,1fr)}.side.right{display:none}.topbar,.page{padding-left:24px;padding-right:24px}.main-nav{gap:28px}.room-stage{aspect-ratio:1.6}.card-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.topbar{padding:17px 18px}.wordmark{font-size:1.45rem}.brand-symbol{width:41px;height:43px;font-size:26px}.brand small{font-size:8px;letter-spacing:2px}.top-actions{gap:6px}.top-actions .hide-tablet{display:none}.account-button{width:43px;padding:9px}.account-button span{display:none}.main-nav{justify-content:flex-start;gap:23px;padding-left:24px}.nav-item{font-size:.85rem;padding:13px 0}.page{padding:22px 20px}.home-grid{grid-template-columns:1fr}.side.left{display:flex;gap:12px;order:2;margin-top:10px}.side.left .panel{flex:1;margin:0}.side.left .keeper{display:none}.side.right{display:block;order:3;margin-top:7px}.side.right .panel{display:inline-block;vertical-align:top;width:calc(50% - 8px);margin-top:0}.side.right .panel+.panel{margin-left:12px}.side.right .panel-label{font-size:.7rem}.room-stage{aspect-ratio:1.55}.page-heading h1{font-size:1.45rem}.page-heading .save-status{font-size:.72rem}.care-dock{gap:8px}.action-tile span:last-child{font-size:.75rem}.card-grid{grid-template-columns:repeat(2,1fr)}.activity-grid{grid-template-columns:repeat(3,1fr)}.book-layout{grid-template-columns:1fr}.original-grid{grid-template-columns:repeat(3,1fr)}.book-dragon{width:170px}.party-people{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.topbar{padding:14px 13px;gap:6px}.brand{gap:7px}.brand-symbol{width:35px;height:39px;font-size:23px;border-radius:12px}.wordmark{font-size:1.23rem;letter-spacing:-.4px}.brand small{font-size:7px;letter-spacing:1.4px;margin-top:5px}.top-actions .pill{padding:8px;gap:4px}.lang-wrap svg{display:none}.lang-select{font-size:.78rem;max-width:66px}.currency{min-width:45px!important}.top-actions .account-button{display:none}.page{padding:19px 12px}.page-heading{align-items:flex-start;gap:8px;margin-bottom:17px}.page-heading p{font-size:.78rem}.page-heading h1{font-size:1.25rem}.save-status{max-width:115px;text-align:right;padding-top:4px;font-size:.66rem!important}.main-nav{gap:24px;padding:0 19px}.nav-item{font-size:.81rem;gap:5px}.nav-item svg{width:17px;height:17px}.device{padding:10px 10px 14px;border-radius:30px;box-shadow:0 6px 0 #a98bc8,0 11px 0 #e7def0,0 15px 24px #5c388d17}.device-top{padding:0 8px 8px}.device-top .device-logo{font-size:.75rem}.room-stage{border-radius:20px;aspect-ratio:1.23;border-width:3px}.room-backdrop{background-size:auto 100%}.dragon-holder{width:41%;left:30%;bottom:13%}.dragon-holder.egg{width:25%;left:38%;bottom:16%}.room-label{font-size:.6rem;top:9px;left:9px;max-width:60%;padding:4px 7px}.stage-controls button{width:30px;min-height:30px}.bubble{left:8%;right:8%;font-size:.72rem;top:21%;padding:8px 10px}.stage-hint{font-size:.65rem;bottom:8px}.egg-choices{gap:5px;margin-top:12px}.egg-choice{font-size:.65rem;padding:4px 7px;min-height:31px}.device-buttons{gap:22px}.device-bottom{padding-top:11px}.toy-button{width:26px;min-height:26px}.toy-button:nth-child(2){width:29px;min-height:29px}.pet-title-row{margin-top:25px}.pet-title-row h2{font-size:1.32rem}.stats{padding:12px 10px;gap:9px}.stat-label{font-size:.66rem;flex-wrap:wrap;gap:0}.stat-label strong{font-size:.62rem}.track{height:6px}.care-dock{gap:7px;grid-template-columns:repeat(3,1fr);margin-top:15px}.action-tile{min-height:70px;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;padding:10px 5px;border-radius:15px}.action-tile .emoji{font-size:24px;margin:0}.action-tile span:last-child{font-size:.74rem}.more-actions{gap:8px;margin-top:10px}.more-actions button{font-size:.72rem;padding:5px}.side.left .panel{padding:16px}.pet-card{margin-top:8px;padding:8px}.pet-thumb{width:38px;height:48px}.side.right .panel{width:100%;display:block;padding:18px}.side.right .panel+.panel{margin:13px 0 0}.side.right .memories{display:none}.wish{display:inline-flex;width:48%;font-size:.76rem;margin-top:12px}.panel-label{margin-bottom:5px}.daily-reward{margin-top:13px}.card-grid{gap:12px}.game-art{height:130px}.game-art .mini-dragon{width:74px}.game-art .game-symbol{font-size:44px;right:6px;bottom:15px}.game-card-body{padding:14px 12px}.game-card-body h2{font-size:.95rem}.game-card-body p{font-size:.72rem}.game-card-footer{font-size:.68rem;gap:5px}.activity-grid{grid-template-columns:repeat(2,1fr);gap:11px}.activity{padding:17px 8px}.original-grid{grid-template-columns:repeat(2,1fr)}.original-card img{height:140px}.food-grid{gap:8px}.food{padding:14px 5px}.food strong{font-size:.77rem}.food .emoji{font-size:33px}.party-people{grid-template-columns:repeat(2,1fr)}dialog{padding:20px;border-radius:24px}.modal-header h2{font-size:1.2rem}.modal-game{padding:12px}.game-touch button{font-size:.85rem;padding:8px}.game-hud{font-size:.76rem}.immersive .room-stage{aspect-ratio:1.2}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important}}
/* Keep the care controls close to the pet on laptop displays. */
@media(min-width:801px){.room-stage{max-height:390px}.page-heading{margin-bottom:18px}.device-bottom{padding-top:9px}.page{padding-top:22px}.pet-title-row{margin-top:21px;margin-bottom:10px}.care-dock{margin-top:14px}}
@media(min-width:1200px){.home-grid{grid-template-columns:230px minmax(0,1fr) 230px}.room-backdrop{background-position:center 65%}.bubble{left:22%;right:22%;font-size:.85rem}}
@media(max-width:480px){.stage-hint{font-size:.75rem}.stat-label,.stat-label strong{font-size:.75rem}.action-tile span:last-child{font-size:.82rem}.egg-choice{font-size:.75rem}.save-status{font-size:.75rem!important}}
.room-stage{width:100%}
@media(min-width:801px){.dragon-holder{width:27%;left:37%;bottom:9%}.dragon-holder.egg{width:18%;left:41%;bottom:10%}.bubble{top:12%}}
@media(max-width:480px){.stat-label{display:flex;flex-direction:column;align-items:flex-start;min-height:38px;justify-content:space-between}.stat-label strong{display:block}.topbar .brand small{max-width:160px}}
/* Dragon Party 2: living rooms, travel, custom pets and shared play. */
.brand-v2{width:225px;height:68px;position:relative;overflow:hidden;flex:none}.brand-v2 img{position:absolute;width:265px;max-width:none;left:-21px;top:-47px;mix-blend-mode:multiply}.topbar{padding-top:12px;padding-bottom:12px}.center{text-align:center}.section-gap{margin-top:30px}.roster-count{display:block;letter-spacing:0;font-size:.75rem;margin-top:5px}.pet-roster{max-height:480px;overflow-y:auto;scrollbar-width:thin}.dragon-art{display:block;position:relative;transform:scale(var(--pet-size,1));transform-origin:center bottom;pointer-events:none}.dragon-accessory{position:absolute;right:20%;top:18%;font-size:clamp(16px,3vw,32px);filter:none;line-height:1}.dragon-holder{left:50%;width:27%;transform:translateX(-50%);transition:left 2.3s linear;animation:none!important;--facing:1}.dragon-holder .dragon-art{scale:var(--facing,1) 1;animation:bodyBreathe 3s ease-in-out infinite}.dragon-holder.egg{left:50%;width:19%;transform:translateX(-50%)}.dragon-holder.egg .dragon-art{animation:eggRock 4s infinite}.dragon-holder.sleeping .dragon-art{rotate:12deg;animation:bodyBreathe 6s infinite}.dragon-holder.walking .dragon-art{animation:pawWalk .34s ease-in-out infinite}.dragon-holder.joy .dragon-art{animation:joy .35s ease-in-out 1}.dragon-holder.dancing .dragon-art{animation:dance .6s ease-in-out infinite}.dragon-holder.yawning .dragon-art{animation:yawn 2.5s ease-in-out}.dragon-holder.swimming .dragon-art{animation:swim 1.6s ease-in-out infinite}.dragon-holder.casting .dragon-art{animation:cast .35s ease-in-out 3}.dragon-holder.dead .dragon-art{animation:none;filter:grayscale(1)}.dragon-holder:active{transform:translateX(-50%)!important}.room-stage.night .room-backdrop{filter:brightness(.35) saturate(.65)}.room-backdrop{transition:filter .7s;background-repeat:no-repeat!important}.room-label,.stage-controls{z-index:7}.bubble{z-index:5}.stage-hint{z-index:7;pointer-events:none;line-height:1.4;background:#fffaf0e8}.stage-hint span{display:block;color:#8659b2;font-weight:900;font-size:.75rem}.egg-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.egg-choice{display:flex;flex-direction:column;align-items:center;padding:5px;border-radius:13px;line-height:1.35;font-size:.65rem;min-width:0}.egg-mini{display:block;width:25px}.world-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:15px}.world-controls button{padding:9px 5px;font-size:.78rem}.placed-item{position:absolute;z-index:1;font-size:clamp(28px,4vw,52px);line-height:1;background:none;transform:translate(-50%,-50%);padding:0;min-width:44px}.placed-item:active{transform:translate(-50%,-50%) scale(.9)!important}.dragon-holder{z-index:3}#stage-fx,#party-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:6}.scene-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.scene-card{position:relative;padding:7px;background:white;border:2px solid var(--line);border-radius:17px;overflow:hidden;text-align:left}.scene-card.selected{border-color:var(--purple);background:#f1e6ff}.scene-preview{display:block;aspect-ratio:1.5;border-radius:10px;background-repeat:no-repeat}.scene-card strong{display:block;font-size:.85rem;padding:8px 5px 3px}.scene-card .visited{position:absolute;right:14px;top:14px;background:#fff;border-radius:50%;width:25px;height:25px;text-align:center;color:#479679}.custom-workspace{display:grid;grid-template-columns:1fr 1.2fr;gap:25px;align-items:start}.custom-preview{position:sticky;top:20px;padding:25px 15px;background:radial-gradient(ellipse,#eadcfa,transparent 70%);min-height:210px}.custom-fields .field:first-child{margin-top:0}.custom-fields input[type=range]{padding:4px;accent-color:var(--purple)}.custom-preview .dragon-accessory{font-size:38px}.book-dragon{position:relative;width:230px;min-height:240px}.part-highlight{position:absolute;transform:translate(-50%,-50%);width:55px;height:55px;border:3px solid #ed8eba;border-radius:50%;background:#ffd7ec88;box-shadow:0 0 0 8px #efa2d125;display:grid;place-items:center;font-size:23px;color:#a74f93;animation:twinkle 1s infinite alternate}.part-highlight[hidden]{display:none}.anatomy-detail{background:#f3eafa;border:1px solid #e0d0ef;border-radius:15px;padding:15px;margin-top:17px;min-height:115px}.anatomy-detail p{font-size:.9rem;margin-top:6px}.anatomy-parts [aria-pressed=true]{background:#dac3f4;border-color:var(--purple)}.anatomy-wiggle .dragon-art{animation:joy .7s 1}.power-card{display:flex;align-items:center;gap:15px;margin-top:23px;padding:16px;border:2px solid var(--power);border-radius:18px;background:#fff}.power-card>span{font-size:35px}.power-card p{font-size:.8rem;margin-top:5px}.species-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:20px}.species-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px;text-align:center;font-size:.8rem}.species-card .dragon-art{width:58px;margin:0 auto 10px}.species-card strong,.species-card small{display:block}.species-card small{margin-top:7px;color:var(--muted)}.decor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 22px}.decor-card{padding:14px 8px;background:#fff;border:1px solid var(--line);border-radius:17px;text-align:center}.decor-card>span{font-size:35px;display:block}.decor-card strong,.decor-card small{display:block;font-size:.8rem}.decor-card small{color:var(--muted);font-size:.7rem}.groom-dragon{width:145px;margin:12px auto}.nail-paws{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:20px 0}.nail{height:90px;background:#f2e5fc;border:2px solid #d8bceb;border-radius:30px 30px 17px 17px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:25px}.nail span{font-size:30px;color:#927da9}.nail.clipped{background:#e4f5e9;color:#599777;border-color:#afd7bd;opacity:1}.toy-playground{position:relative;height:310px;overflow:hidden;background:linear-gradient(#f2e7ff 65%,#eddcc7 65%);border-radius:20px}.toy-dragon{position:absolute;width:125px;bottom:12px;left:20%;transition:left .7s}.toy-dragon .dragon-art{animation:pawWalk .3s infinite}.toy-playground button{position:absolute;left:65%;top:25%;background:transparent;font-size:52px;transition:left .5s,top .5s;animation:toyBounce 1s infinite}.party-join{max-width:500px;margin:auto}.shared-stage{position:relative;aspect-ratio:1.65;min-height:300px;border:5px solid #b091d0;border-radius:22px;overflow:hidden;margin-top:17px;background:#dbcced}.shared-backdrop{position:absolute;inset:0;background-repeat:no-repeat}.party-caption{position:absolute;top:12px;left:50%;transform:translateX(-50%);font-weight:900;font-size:.9rem;background:#fff7ffe6;border:1px solid #e3c9f2;border-radius:20px;padding:8px 22px;z-index:1;pointer-events:none}.party-actor{position:absolute;width:16%;max-width:120px;min-width:68px;background:none;padding:0;transform:translate(-50%,-85%);transition:left 1.1s linear,top 1.1s linear;z-index:3;line-height:1.2}.party-actor:active{transform:translate(-50%,-85%)!important}.party-actor strong{display:block;font-size:.72rem;white-space:nowrap;background:#fffaf6dd;border-radius:10px;padding:4px}.party-actor .party-sprite{display:block;animation:bodyBreathe 2s infinite}.party-actor.dancing .party-sprite{animation:dance .65s infinite}.party-actor .emote{position:absolute;right:0;top:5px;font-size:30px}.duel-box{background:#f4ebff;border:1px solid #d3bce9;border-radius:16px;padding:18px;margin-top:15px;text-align:center}.duel-health{display:flex;gap:25px;justify-content:space-between;margin-top:14px}.duel-health>div{flex:1;min-width:0;display:grid;grid-template-columns:1fr auto;text-align:left;font-size:.8rem;gap:5px}.duel-health meter{grid-column:span 2;width:100%;height:18px}.duel-health small{grid-column:span 2;color:var(--muted)}
@keyframes bodyBreathe{50%{translate:0 -3px;transform:scale(calc(var(--pet-size,1)*1.02),calc(var(--pet-size,1)*1.025))}}@keyframes pawWalk{0%,100%{rotate:-2deg;translate:0 0}50%{rotate:2deg;translate:0 -5px;transform:scale(calc(var(--pet-size,1)*1.03),calc(var(--pet-size,1)*.98))}}@keyframes yawn{50%{translate:0 -5px;transform:scale(calc(var(--pet-size,1)*.92),calc(var(--pet-size,1)*1.09));rotate:-5deg}}@keyframes swim{50%{translate:0 9px;rotate:7deg;transform:scale(calc(var(--pet-size,1)*1.02))}}@keyframes cast{50%{translate:-8px 0;rotate:-7deg}}@keyframes toyBounce{50%{translate:0 -12px;rotate:12deg}}
@media(max-width:800px){.pet-roster{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:320px}.pet-card{margin-top:0}.side.left .panel{width:100%}.brand-v2{width:195px;height:64px}.brand-v2 img{width:240px;left:-20px;top:-44px}.species-grid{grid-template-columns:repeat(3,1fr)}.dragon-holder{width:30%}.egg-choice{font-size:.72rem}}
@media(max-width:480px){.brand-v2{width:172px;height:59px}.brand-v2 img{width:205px;left:-17px;top:-34px}.topbar{padding:8px 12px}.world-controls{grid-template-columns:1fr}.world-controls button{font-size:.86rem}.dragon-holder{width:38%}.dragon-holder.egg{width:24%}.egg-choices{grid-template-columns:repeat(3,1fr)}.egg-choice:last-child{grid-column:2}.egg-mini{width:29px}.custom-workspace{grid-template-columns:1fr}.custom-preview{position:static;width:150px;min-height:150px;margin:auto;padding:8px}.custom-fields .field{margin-top:10px}.scene-card strong{font-size:.73rem}.scene-grid{gap:8px}.species-grid{grid-template-columns:repeat(2,1fr)}.nail-paws{gap:3px}.nail{font-size:17px;height:70px}.shared-stage{aspect-ratio:1.1;min-height:320px}.party-actor{min-width:56px;width:20%}.party-actor strong{font-size:.58rem;max-width:90px;white-space:normal}.duel-health{gap:12px}.decor-grid{grid-template-columns:repeat(2,1fr)}.stage-hint{font-size:.66rem;left:4px;right:4px}.stage-hint span{font-size:.7rem}.bubble{font-size:.73rem}.book-dragon{width:200px;min-height:230px}}
@media(prefers-reduced-motion:reduce){.dragon-holder,.party-actor{transition-duration:.01ms}.dragon-art,.party-sprite{animation:none!important}}
.brand-v2{width:190px;height:86px}.brand-v2 img{width:220px;left:-16px;top:-37px}
@media(max-width:480px){.brand-v2{width:150px;height:67px}.brand-v2 img{width:172px;left:-12px;top:-28px}}
.face-mood{position:absolute;right:-10%;top:10%;font-size:clamp(18px,3vw,30px);pointer-events:none;filter:none;animation:floatExpression 3s infinite}.sleeping .face-mood{font-size:24px;right:0;top:-10%}@keyframes floatExpression{50%{translate:0 -6px}}
.room-stage.placing{cursor:crosshair;outline:3px dashed #9d72c7;outline-offset:4px}.room-stage.placing .dragon-holder{pointer-events:none}
.brand-v2{width:205px;height:86px;overflow:visible}.brand-v2 img{position:static;width:100%;height:100%;object-fit:contain;mix-blend-mode:normal}
.room-backdrop,.shared-backdrop,.scene-preview{background-size:cover;background-position:center;image-rendering:auto}
.photo-launch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.photo-launch button{font-size:.86rem}.inline-vacuum{width:30px;height:30px;object-fit:contain;vertical-align:middle;margin-right:3px}
.studio-language{display:flex;justify-content:flex-end;margin-bottom:12px}.studio-view{position:relative;border:4px solid #cfb4eb;border-radius:20px;overflow:hidden;background:#eadff5}.studio-view canvas{display:block;width:100%;height:auto;touch-action:none;cursor:grab}.studio-view canvas:active{cursor:grabbing}#camera-indicator{position:absolute;top:12px;left:12px;background:#fff9f2ed;color:#9470ad;border-radius:20px;padding:5px 13px;font-size:.8rem;pointer-events:none}.studio-status{min-height:2em;text-align:center;font-size:.88rem;padding:10px 0}.studio-tools{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.studio-tools button{font-size:.8rem;padding:9px 12px}.studio-adjust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:center;gap:16px;background:#f5eefb;border-radius:16px;padding:14px;margin-top:14px}.studio-adjust label{font-size:.76rem;color:var(--muted);display:block}.studio-adjust input{width:100%;min-width:0;display:block;accent-color:var(--purple)}.studio-adjust button{font-size:.78rem}.studio-shutter-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0}.photo-frame-label{display:flex;align-items:center;gap:8px;font-size:.8rem}.photo-frame-label input{accent-color:var(--purple);width:19px}.studio-shutter-row .primary{font-size:1rem;min-width:170px}.camera-privacy{margin-top:16px;text-align:center;line-height:1.6}.photo-result{border-top:1px solid var(--line);padding-top:17px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:center}.photo-result[hidden]{display:none}.photo-result img{width:100%;border-radius:12px;border:1px solid #d5c3e7}.photo-result a{display:block;text-align:center;text-decoration:none;font-size:.84rem;margin-bottom:10px}.photo-result button{width:100%;font-size:.84rem}.shutter-flash{animation:cameraFlash .35s ease-out}@keyframes cameraFlash{0%{opacity:.25}100%{opacity:1}}
@media(max-width:480px){.brand-v2{width:145px;height:65px}.brand-v2 img{width:100%;height:100%}.modal-studio{padding:14px}.studio-adjust{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:10px}.studio-adjust button{grid-column:span 3}.studio-shutter-row{flex-wrap:wrap}.studio-shutter-row .primary{width:100%}.photo-result{grid-template-columns:1fr}.studio-tools{display:grid;grid-template-columns:1fr 1fr}.photo-launch{gap:7px}.photo-launch button{padding:10px 5px;font-size:.77rem}}
.home-grid>*{min-width:0}.pet-title-row{gap:8px}.pet-title-row>div{min-width:0}.pet-title-row h2{flex-wrap:wrap;overflow-wrap:anywhere}.pet-title-row>.text-button{flex-shrink:0;max-width:40%;line-height:1.45}.pet-card{min-width:0}.pet-card strong{overflow-wrap:anywhere}
@media(max-width:800px){.home-grid{grid-template-columns:minmax(0,1fr)}}

.studio-camera-source{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.studio-view canvas{position:relative;z-index:1}#camera-indicator{z-index:2}
