/* MBTIたまごっちの部屋（2026-09-29 拡張）: 壁紙・床・窓・自由配置の品・もようがえ・マイページの「育てている子」・遊びに行く画面
   js/pet-room.js（描く）・js/pet-deco.js（たまごっちの画面）・js/pet-home.js（広場のプロフィール） */
.prm{position:relative;overflow:hidden;image-rendering:pixelated}
.prm--theme{background-size:cover;background-position:center 64%}
.prm__bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.prm__wp{position:absolute;left:0;right:0;top:0;height:58%;background-color:#fbefcf}
.prm__fl{position:absolute;left:0;right:0;bottom:0;height:42%;background-color:#c98b4f;box-shadow:inset 0 3px 0 rgba(0,0,0,.12)}
.prm__wp.is-img,.prm__fl.is-img{background-size:auto 100%!important;background-repeat:repeat-x!important}
.prm__bg.is-night .prm__wp,.prm__bg.is-night .prm__fl{filter:brightness(.72) saturate(.9)}
.prm__items{position:absolute;inset:0;z-index:0;pointer-events:none}
.prm__it{position:absolute;aspect-ratio:1/1;transform:translateX(-50%);pointer-events:none}
.prm__it.is-flat{aspect-ratio:1.6/1}
.prm__art{width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center}
.prm__art.is-flip{transform:scaleX(-1)}
.prm__art img{width:100%;height:100%;object-fit:contain;object-position:center bottom;image-rendering:pixelated;display:block;margin:0!important;max-width:none!important;border:0!important;box-shadow:none!important;background:none!important}
.prm__emo{font-size:clamp(18px,7vw,40px);line-height:1}
/* 窓（壁の真ん中より左）。絵が無いときは木の枠＋空の色 */
.prm__win{position:absolute;left:30%;top:7%;width:22%;aspect-ratio:1/1.05;transform:translateX(-50%);max-height:42%}
.prm__sky{position:absolute;inset:8%;border-radius:4px;background:linear-gradient(180deg,#8fd0ff,#d9f1ff);background-size:cover;background-position:center}
.prm__frame{position:absolute;inset:0;border:5px solid #8a5a33;border-radius:6px;box-shadow:inset 0 0 0 2px #5f3b1f;background:linear-gradient(90deg,transparent calc(50% - 2px),#8a5a33 calc(50% - 2px),#8a5a33 calc(50% + 2px),transparent calc(50% + 2px)),linear-gradient(180deg,transparent calc(50% - 2px),#8a5a33 calc(50% - 2px),#8a5a33 calc(50% + 2px),transparent calc(50% + 2px))}
.prm__win.is-img .prm__frame{display:none}.prm__win.is-img .prm__sky{inset:0;background-size:contain;background-repeat:no-repeat}
.prm__bg.is-night .prm__win:not(.prm--win-stars):not(.prm--win-hw) .prm__sky{filter:brightness(.45) saturate(.8)}
/* 壁紙（絵が無いときの模様） */
.prm--wp-cream{background-color:#fbefcf;background-image:repeating-linear-gradient(90deg,#fbefcf 0 18px,#f6e3b3 18px 30px)}
.prm--wp-pink{background-color:#ffd9e6;background-image:radial-gradient(#fff 22%,transparent 24%);background-size:22px 22px}
.prm--wp-mint{background-color:#d9f3e6;background-image:linear-gradient(90deg,rgba(255,255,255,.55) 50%,transparent 50%),linear-gradient(rgba(255,255,255,.55) 50%,transparent 50%);background-size:26px 26px}
.prm--wp-sky{background-color:#a9dcff;background-image:radial-gradient(ellipse 34px 14px at 30% 35%,#fff 60%,transparent 62%),radial-gradient(ellipse 44px 16px at 75% 60%,#fff 60%,transparent 62%);background-size:160px 100%}
.prm--wp-night{background-color:#1f2456;background-image:radial-gradient(#ffe27a 1.4px,transparent 2px),radial-gradient(#fff 1px,transparent 1.6px);background-size:34px 30px,21px 19px;background-position:0 0,9px 11px}
.prm--wp-wood{background-color:#d9a877;background-image:repeating-linear-gradient(180deg,#d9a877 0 16px,#c89260 16px 18px)}
.prm--wp-brick{background-color:#c0654a;background-image:linear-gradient(0deg,#e8d5c4 2px,transparent 2px),linear-gradient(90deg,#e8d5c4 2px,transparent 2px);background-size:34px 16px}
.prm--wp-flower{background-color:#fff4f7;background-image:radial-gradient(circle at 50% 50%,#ffb3cb 3px,transparent 4px),radial-gradient(circle at 50% 50%,#b8e0a5 2px,transparent 3px);background-size:28px 28px,28px 28px;background-position:0 0,14px 14px}
.prm--wp-hw{background-color:#3b2352;background-image:radial-gradient(circle,#ff9a3c 4px,transparent 5px);background-size:40px 36px}
/* 床 */
.prm--fl-wood{background-color:#c98b4f;background-image:repeating-linear-gradient(180deg,transparent 0 13px,rgba(90,50,20,.35) 13px 15px),repeating-linear-gradient(90deg,transparent 0 58px,rgba(90,50,20,.25) 58px 60px)}
.prm--fl-tile{background-color:#fff;background-image:conic-gradient(#3a3a46 25%,#fff 0 50%,#3a3a46 0 75%,#fff 0);background-size:26px 26px}
.prm--fl-carpet{background-color:#f3a6c3;background-image:radial-gradient(rgba(255,255,255,.35) 1px,transparent 1.5px);background-size:8px 8px}
.prm--fl-grass{background-color:#7cc36a;background-image:repeating-linear-gradient(100deg,transparent 0 6px,rgba(40,110,40,.3) 6px 7px)}
.prm--fl-tatami{background-color:#c9cf8a;background-image:linear-gradient(90deg,#4f6b3a 3px,transparent 3px),repeating-linear-gradient(180deg,transparent 0 3px,rgba(90,100,40,.18) 3px 4px);background-size:80px 100%,100% 100%}
.prm--fl-cloud{background-color:#eaf4ff;background-image:radial-gradient(circle at 30% 60%,#fff 18px,transparent 19px),radial-gradient(circle at 70% 40%,#fff 22px,transparent 23px);background-size:90px 100%}
.prm--fl-hw{background-color:#241b2f;background-image:conic-gradient(#ff8a2a 25%,#241b2f 0 50%,#ff8a2a 0 75%,#241b2f 0);background-size:30px 30px}
/* 窓の外 */
.prm--win-sky .prm__sky{background-image:radial-gradient(ellipse 30% 14% at 35% 40%,#fff 60%,transparent 62%),linear-gradient(180deg,#76c4ff,#d9f1ff)}
.prm--win-sunset .prm__sky{background-image:radial-gradient(circle at 50% 78%,#ffe07a 12%,transparent 13%),linear-gradient(180deg,#ff8e6e,#ffcf8a)}
.prm--win-stars .prm__sky{background-color:#141a45;background-image:radial-gradient(#fff 1px,transparent 1.5px),linear-gradient(135deg,transparent 45%,#ffe89a 46%,transparent 48%);background-size:9px 8px,100% 100%}
.prm--win-sea .prm__sky{background-image:linear-gradient(180deg,#9fdcff 0 55%,#2f8fd6 55% 100%)}
.prm--win-sakura .prm__sky{background-image:radial-gradient(#ffb7cf 2px,transparent 3px),linear-gradient(180deg,#bfe6ff,#fff0f5);background-size:10px 10px,100% 100%}
.prm--win-snow .prm__sky{background-image:radial-gradient(#fff 1.5px,transparent 2px),linear-gradient(180deg,#9fb7cf,#e6eef7);background-size:9px 11px,100% 100%}
.prm--win-hw .prm__sky{background-image:radial-gradient(circle at 60% 40%,#ffe9a0 20%,transparent 21%),linear-gradient(180deg,#2a1b45,#4b2a5e)}
/* もようがえの下書き（マス・選んだ品） */
.prm__grid{position:absolute;inset:0;z-index:40;pointer-events:none}
.prm__grid i{position:absolute;width:12.5%;box-sizing:border-box;border:1px dashed rgba(139,108,193,.28)}
.prm__grid[data-zone="wall"] i:not(.is-wall),.prm__grid[data-zone="floor"] i.is-wall{border-color:transparent}
.prm__it.is-sel{outline:2px dashed #e2497f;outline-offset:1px;border-radius:6px;background:rgba(226,73,127,.08)}

/* ---------- たまごっちの画面: もようがえ（シートの中） ---------- */
.pte{font-size:13px}
.pte__room{width:100%;aspect-ratio:1.8/1;border-radius:14px;border:3px solid #e9def7;margin:0 0 8px;touch-action:none;user-select:none;-webkit-user-select:none}
.pte__room .prm__items,.pte__room .prm__it{pointer-events:auto}
.pte__pet{position:absolute;left:50%;bottom:5%;width:30%;aspect-ratio:1;transform:translateX(-50%);z-index:30;opacity:.9;pointer-events:none;image-rendering:pixelated}
.pte__cnt{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 6px;color:#6b5a86;font-weight:800;font-size:12px}
.pte__ctl{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:0 0 8px;padding:8px;border-radius:12px;background:#fdf6ff;border:2px solid #efe4fb}
.pte__ctl[hidden]{display:none}
.pte__ctl button{min-width:44px;min-height:44px;border-radius:12px;border:2px solid #e3d6f5;background:#fff;font:inherit;font-weight:900;color:#3a2a55;cursor:pointer;padding:0 10px}
.pte__ctl button.is-del{color:#c0395f;border-color:#f3c3d2}
.pte__ctl b{flex-basis:100%;text-align:center;font-size:12px;color:#8b6cc1}
.pte__tabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 8px;padding-bottom:2px;-webkit-overflow-scrolling:touch}
.pte__tab{flex:0 0 auto;min-height:38px;padding:0 12px;border-radius:999px;border:2px solid #e3d6f5;background:#fff;font:inherit;font-weight:900;font-size:12.5px;color:#6b5a86;cursor:pointer}
.pte__tab.is-on{background:#3a2a55;border-color:#3a2a55;color:#fff}
.pte__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:7px}
.pte__i{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;min-height:92px;border-radius:12px;border:2px solid #efe4fb;background:#fff;font:inherit;cursor:pointer;text-align:center}
.pte__i.is-on{border-color:#e2497f;background:#fff4f8}
.pte__i[disabled]{opacity:.45;cursor:default}
.pte__i img,.pte__i .pte__emo{width:48px;height:48px;object-fit:contain;image-rendering:pixelated;font-size:30px;line-height:48px}
.pte__i b{font-size:10.5px;line-height:1.3;color:#3a2a55}
.pte__i small{font-size:10px;color:#8b6cc1;font-weight:800}
.pte__i em{position:absolute;right:4px;top:4px;font-style:normal;font-size:9px;font-weight:900;background:#ff9a3c;color:#fff;border-radius:6px;padding:0 4px}
.pte__sw{display:block;width:48px;height:48px;border-radius:8px;border:1px solid #e3d6f5;position:relative;overflow:hidden}
.pte__sw .prm__sky{inset:0}
.pte__sw .prm__frame{border-width:3px;background:none}
.pte__buy{margin-top:2px;min-height:30px;border-radius:9px;border:0;background:#e2497f;color:#fff;font:inherit;font-size:11px;font-weight:900;padding:0 8px;cursor:pointer}
.pte__buy[disabled]{background:#cbbfdc}
.pte__save{position:sticky;bottom:0;display:flex;gap:8px;padding:10px 0 4px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 30%);margin-top:8px}
.pte__save button{flex:1;min-height:48px;border-radius:14px;border:0;font:inherit;font-weight:900;font-size:14px;cursor:pointer}
.pte__save .is-go{background:linear-gradient(90deg,#8b6cc1,#e2497f);color:#fff}
.pte__save .is-no{flex:0 0 96px;background:#f1ebf8;color:#6b5a86}
.pte__note{font-size:11.5px;color:#7a6b92;line-height:1.6;margin:8px 0 0}
.pte__opt{display:flex;align-items:center;gap:8px;padding:10px;border-radius:12px;background:#fdf6ff;border:2px solid #efe4fb;font-weight:800;color:#3a2a55;cursor:pointer}
.pte__opt input{width:22px;height:22px}
.pte-row{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:6px 0 2px}
.pte-row .pt__mini em{font-style:normal;margin-left:4px;font-size:10px;background:#e2497f;color:#fff;border-radius:8px;padding:0 5px}
.pte-diary{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pte-diary li{padding:10px 12px;border-radius:12px;background:#fffdf3;border:2px solid #f6e7a8;line-height:1.7;color:#3a2a55;font-size:13px}
.pte-diary li b{display:block;font-size:11px;color:#a58a1f}
.pte-visit{position:absolute;left:8px;right:8px;top:8px;z-index:60;padding:8px 12px;border-radius:12px;background:rgba(255,255,255,.95);border:2px solid #f6cf49;font-size:12px;font-weight:800;color:#3a2a55;box-shadow:0 6px 18px rgba(58,42,85,.18);transition:opacity .4s}

/* ---------- 広場: マイページ・この人のこと・人のカードの「育てている子」 ---------- */
.pth{margin:12px 0 4px}
.pth__h{display:flex;align-items:center;justify-content:space-between;margin:0 0 6px;font-size:12.5px;font-weight:900;color:#8b6cc1}
.pth__h small{font-weight:800;color:#a595bd}
.pth__list{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
.pth__c{flex:0 0 auto;width:min(62vw,200px);scroll-snap-align:start;border-radius:14px;border:2px solid #efe4fb;background:#fff;padding:0;overflow:hidden;font:inherit;text-align:left;cursor:pointer;color:#3a2a55}
.pth--card .pth__c{width:min(46vw,150px)}
.pth__room{width:100%;aspect-ratio:1.6/1}
.pth__spr{position:absolute;left:50%;bottom:6%;width:44%;aspect-ratio:1;transform:translateX(-50%);z-index:30;image-rendering:pixelated;animation:pthHop 2.6s ease-in-out infinite}
.pth__spr.is-egg{width:30%;animation:pthWob 3s ease-in-out infinite}
.pth__spr.is-still{animation:none}
@keyframes pthHop{0%,70%,100%{transform:translateX(-50%) translateY(0)}78%{transform:translateX(-50%) translateY(-7%)}86%{transform:translateX(-50%) translateY(0)}}
@keyframes pthWob{0%,80%,100%{transform:translateX(-50%) rotate(0)}85%{transform:translateX(-50%) rotate(-6deg)}90%{transform:translateX(-50%) rotate(6deg)}}
.pth__acc{position:absolute;inset:0;pointer-events:none}
.pth__acc img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;margin:0!important;max-width:none!important;border:0!important;box-shadow:none!important;background:none!important}
.pth__acc.is-behind{z-index:-1}
.pth__b{padding:6px 8px 8px}
.pth__b b{display:block;font-size:12.5px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pth__b small{display:block;font-size:10.5px;color:#8b6cc1;font-weight:800}
.pth__zz{position:absolute;right:8%;top:10%;z-index:35;font-size:11px;font-weight:900;color:#6b5a86;background:rgba(255,255,255,.85);border-radius:8px;padding:0 5px}
.pth__none{font-size:12px;color:#7a6b92;margin:0}
.pth__none a{color:#8b6cc1;font-weight:900}
/* 遊びに行く画面 */
.pth-ov{position:fixed;inset:0;z-index:100000;background:rgba(30,20,50,.55);display:flex;align-items:flex-end;justify-content:center}
.pth-ov[hidden]{display:none}
.pth-sh{position:relative;width:100%;max-width:520px;max-height:92vh;overflow:auto;background:#fff;border-radius:22px 22px 0 0;padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px));box-sizing:border-box;color:#3a2a55}
.pth-x{position:absolute;right:10px;top:8px;width:44px;height:44px;border-radius:50%;border:0;background:#f1ebf8;font-size:22px;color:#6b5a86;cursor:pointer;z-index:2}
.pth-sh h3{margin:2px 52px 2px 0;font-size:16px}
.pth-sh .pth-sub{margin:0 0 8px;font-size:12px;color:#8b6cc1;font-weight:800}
.pth-room{width:100%;aspect-ratio:1.5/1;border-radius:16px;border:3px solid #e9def7}
.pth-room .pth__spr{width:40%}
.pth-say{position:absolute;left:50%;top:6%;transform:translateX(-50%);z-index:45;max-width:86%;padding:6px 12px;border-radius:14px;background:#fff;border:2px solid #3a2a55;font-size:12.5px;font-weight:800;line-height:1.5;text-align:center;box-shadow:0 3px 0 rgba(58,42,85,.2)}
.pth-say[hidden]{display:none}
.pth-hearts{position:absolute;inset:0;z-index:46;pointer-events:none}
.pth-hearts i{position:absolute;bottom:40%;font-style:normal;font-size:20px;animation:pthUp 1.3s ease-out forwards}
@keyframes pthUp{0%{opacity:0;transform:translateY(0) scale(.6)}20%{opacity:1}100%{opacity:0;transform:translateY(-120%) scale(1.2)}}
.pth-acts{display:flex;gap:8px;margin:10px 0 4px}
.pth-acts button,.pth-acts a{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;min-height:48px;border-radius:14px;border:2px solid #e3d6f5;background:#fff;font:inherit;font-weight:900;font-size:13.5px;color:#3a2a55;text-decoration:none;cursor:pointer}
.pth-acts .is-like.is-on{background:#ffe3ee;border-color:#e2497f;color:#c0395f}
.pth-acts .is-go{background:linear-gradient(90deg,#8b6cc1,#e2497f);border:0;color:#fff}
.pth-note{font-size:11.5px;color:#7a6b92;line-height:1.6;margin:6px 0 0}
.pth-tabs{display:flex;gap:6px;margin:0 0 8px;overflow-x:auto}
.pth-tabs button{flex:0 0 auto;min-height:36px;padding:0 12px;border-radius:999px;border:2px solid #e3d6f5;background:#fff;font:inherit;font-weight:900;font-size:12px;color:#6b5a86;cursor:pointer}
.pth-tabs button.is-on{background:#3a2a55;color:#fff;border-color:#3a2a55}
@media (prefers-reduced-motion:reduce){.pth__spr{animation:none}.pth-hearts i{animation-duration:.01s}}
