:root{--blue:#2487E8;--orange:#FFAA32;--green:#45C987;--pink:#FF83BA;--navy:#173B78;--bg:#F7FBFF;--yellow:#FFD84D;--purple:#6C7BFF;--ink:#173B78;--sky:#E7F2FE;--shadow:0 6px 0 #173b7814,0 10px 26px #173b7812}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Yu Gothic",sans-serif;font-size:19px;-webkit-tap-highlight-color:transparent}
body{background-image:radial-gradient(circle at 8% 18%,#e3f0ff 0 70px,transparent 71px),radial-gradient(circle at 92% 72%,#fff0d9 0 90px,transparent 91px),radial-gradient(circle at 72% 8%,#e5f8ee 0 50px,transparent 51px),radial-gradient(circle at 20% 88%,#ffe6f1 0 60px,transparent 61px);background-attachment:fixed;min-height:100vh}
ruby rt{font-size:.5em;font-weight:700;color:#5a73a3}
header{display:flex;align-items:center;gap:12px;padding:6px 16px;background:linear-gradient(180deg,#fff,#f3f8ff);color:var(--navy);position:sticky;top:0;z-index:20;box-shadow:0 3px 0 #2487e81f,0 6px 18px #173b7814;min-height:64px}
.logo{display:flex;align-items:center;text-decoration:none;flex:none}
.logo img{height:50px;width:auto;display:block;filter:drop-shadow(0 2px 2px #173b7826);transition:transform .15s}
.logo:hover img{transform:scale(1.04) rotate(-1deg)}
#nav{display:none}
/* phone: bottom tab bar (3 tabs) */
#tabbar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fff;box-shadow:0 -3px 0 #2487e81f,0 -6px 18px #173b7818;padding:5px 8px calc(5px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;gap:6px}
#tabbar a{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--navy);font-weight:900;font-size:.8rem;line-height:1.2;padding:4px 0;border-radius:14px;white-space:nowrap;position:relative}
#tabbar a .ni{font-size:1.6rem;line-height:1.25}
#tabbar a.on{background:var(--blue);color:#fff;box-shadow:0 3px 0 #1667b8}
#tabbar a rt{font-size:.75em}
#tabbar .nsoon{position:absolute;top:0;right:12%;font-size:.55rem;background:var(--orange);color:#fff;border-radius:6px;padding:0 4px}
#tabbar .navme,#tabbar .navset{display:none}
main{padding-bottom:110px!important}
#toast{bottom:96px!important}
header{justify-content:space-between}
@media(max-width:600px){header{min-height:54px;padding:4px 10px}.logo img{height:40px}}
/* iPad / desktop: left vertical nav */
@media(min-width:900px){
 #tabbar{top:0;right:auto;width:104px;grid-template-columns:1fr;grid-auto-rows:min-content;align-content:start;border-radius:0 24px 24px 0;padding:12px 10px;gap:10px;box-shadow:3px 0 0 #2487e81f,6px 0 18px #173b7818;z-index:25}
 #tabbar a{padding:10px 0;font-size:.85rem}
 #tabbar a .ni{font-size:1.8rem}
 #tabbar .navme{display:flex;flex-direction:column;align-items:center;text-align:center;padding:4px 0 10px;border-bottom:2px dashed #dbe8f8;border-radius:0}
 #tabbar .navme img,#tabbar .navme span{width:58px;height:58px;border-radius:50%;background:var(--sky);object-fit:cover;font-size:2rem;display:grid;place-items:center;box-shadow:0 3px 0 #2487e833}
 #tabbar .navme b{font-size:.85rem;margin-top:4px;max-width:90px;overflow:hidden;text-overflow:ellipsis}#tabbar .navme small{font-size:.65rem;color:#5a73a3}
 #tabbar .navset{display:flex;position:fixed;bottom:16px;left:10px;width:84px}
 header,main,.lfoot{margin-left:104px}
 main{padding-bottom:30px!important}#toast{bottom:30px!important}
}
#hud{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-weight:700;justify-content:flex-end}
.chip{background:#fff3;border-radius:999px;padding:4px 12px;white-space:nowrap}
#hud .chip{background:var(--sky);color:var(--navy);display:inline-flex;align-items:center;gap:4px;font-size:.85rem;text-decoration:none;box-shadow:0 2px 0 #2487e826}
#hud .chip img{width:26px;height:26px;border-radius:50%;object-fit:cover;background:#fff}
@media(max-width:560px){#hud .chip.opt{display:none}#hud .chip{font-size:.75rem;padding:3px 8px}}
main{max-width:980px;margin:0 auto;padding:18px 14px 80px}
h1,h2,h3{margin:.4em 0}
.card{background:#fff;border-radius:26px;padding:20px;box-shadow:var(--shadow);margin:14px 0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.big{display:block;border:none;border-radius:28px;padding:22px 16px;font:inherit;font-size:1.25rem;font-weight:900;color:#fff;cursor:pointer;text-align:center;text-decoration:none;box-shadow:0 7px 0 #173b7833,0 10px 20px #173b7822,inset 0 3px 0 #fff5;transition:transform .12s;text-shadow:0 2px 0 #0002}
.big:hover{transform:translateY(-3px)}
.big:active{transform:translateY(4px);box-shadow:0 2px 0 #0002}
.big .em{font-size:2.6rem;display:block;margin-bottom:6px}
.big small{display:block;font-size:.8rem;font-weight:700;opacity:.95;margin-top:4px}
.c-pink{background:linear-gradient(160deg,#ffa3cb,#ff6aa9)}.c-orange{background:linear-gradient(160deg,#ffc266,#ff9a1f)}.c-green{background:linear-gradient(160deg,#6ddca2,#2fb574)}
.c-blue{background:linear-gradient(160deg,#5aaaf5,#1f78d6)}.c-purple{background:linear-gradient(160deg,#9aa6ff,#5a63e6)}.c-yellow{background:linear-gradient(160deg,#ffe27a,#ffc21a);color:#5a3d00;text-shadow:none}
.c-teal{background:linear-gradient(160deg,#5fdcd2,#18a99c)}.c-red{background:linear-gradient(160deg,#ff9a8a,#f0605a)}.c-navy{background:linear-gradient(160deg,#3a63b0,#173B78)}.c-gray{background:linear-gradient(160deg,#c9d3e3,#9aa8bf)}
.hero{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hero .big{padding:34px 10px;font-size:1.8rem}
.hero .big .em{font-size:4rem}
@media(max-width:600px){.hero{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}html,body{font-size:17px}}
.btn{border:none;border-radius:999px;padding:12px 22px;font:inherit;font-weight:900;cursor:pointer;background:var(--blue);color:#fff;box-shadow:0 4px 0 #173b7840;font-size:1rem}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 #0002}
.btn.gray{background:#b9c5d8}.btn.navy{background:var(--navy)}.btn.pink{background:var(--pink)}.btn.green{background:var(--green)}.btn.orange{background:var(--orange)}.btn.blue{background:var(--blue)}.btn.teal{background:#2fb8b0}.btn.wide{width:100%;margin-top:10px}.btn.sm{padding:6px 12px;font-size:.85rem;border-radius:12px}
input,textarea,select{font:inherit;border:3px solid #d6e6fa;border-radius:14px;padding:10px 12px;width:100%;background:#fff;color:var(--ink)}
input:focus,textarea:focus{outline:none;border-color:var(--purple)}
label{font-weight:700;display:block;margin:10px 0 4px}
.avatars{display:flex;flex-wrap:wrap;gap:8px}
.avatars button{font-size:2rem;border:3px solid transparent;background:#f5f0ff;border-radius:16px;padding:4px 8px;cursor:pointer}
.avatars button.on{border-color:var(--pink);background:#ffe8f1}
.seg{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.seg button{border:3px solid #d6e6fa;background:#fff;border-radius:999px;padding:6px 14px;font:inherit;font-weight:700;cursor:pointer}
.seg button.on{background:var(--blue);border-color:var(--blue);color:#fff}
/* quiz */
.qtop{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.dots{display:flex;gap:5px}.dots i{width:16px;height:16px;border-radius:50%;background:#dbe8f8;display:inline-block}.dots i.ok{background:var(--green)}.dots i.ng{background:#ff7a7a}.dots i.cur{outline:3px solid var(--blue)}
.combo{font-weight:900;color:#ff5c2b}
.qcard{text-align:center}
.qask{font-size:1.15rem;font-weight:700;color:#2a5aa8}
.qprompt{font-size:3.2rem;font-weight:900;margin:14px 0;line-height:1.5;word-break:break-all}
.qprompt.k{font-size:4.2rem;letter-spacing:.05em}
.qtext{font-size:1.25rem;line-height:1.9;text-align:left;font-weight:700}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.choices button{font:inherit;font-size:1.6rem;font-weight:900;padding:18px 8px;border-radius:22px;border:4px solid #d6e6fa;background:#fff;cursor:pointer;color:var(--ink);box-shadow:0 5px 0 #c4daf5;line-height:1.6}
.choices button:hover{border-color:var(--blue)}
.choices button.right{background:#dcfbe6;border-color:var(--green);box-shadow:0 5px 0 #8fdcaa}
.choices button.wrong{background:#ffe1e1;border-color:#ff7a7a;box-shadow:0 5px 0 #ffb0b0}
.choices.small button{font-size:1.2rem}
.ansbox{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px 0}
.ansbox input{max-width:220px;font-size:2rem;text-align:center;font-weight:900}
.ansbox .unit{font-size:1.4rem;font-weight:900}
.pad{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:380px;margin:0 auto}
.pad button{font:inherit;font-size:1.5rem;font-weight:900;padding:12px;border-radius:16px;border:none;background:#e7f2fe;color:var(--navy);cursor:pointer;box-shadow:0 4px 0 #c4daf5}
.pad button.go{background:var(--green);color:#fff;grid-column:span 2}
.fb{margin-top:16px;border-radius:20px;padding:16px;text-align:left;animation:pop .35s}
.fb.ok{background:#e7fbef;border:3px solid var(--green)}.fb.ng{background:#fff0f0;border:3px solid #ff8f8f}
.fb .mark{font-size:2.4rem;font-weight:900}
.fb .exp{line-height:1.9;margin-top:6px}
@keyframes pop{0%{transform:scale(.8);opacity:0}100%{transform:scale(1);opacity:1}}
.stars{font-size:1rem;color:#ffb400;letter-spacing:2px}
.memo{background:#fffbe0;border-left:8px solid #ffd93d;border-radius:12px;padding:10px 14px;margin:10px 0;text-align:left}
.memo.pink{background:#fff0f6;border-color:#ff8fb8}.memo.green{background:#ecfdf2;border-color:#4cd47a}.memo.blue{background:#ecf6ff;border-color:#4aa8ff}
.memo .who{font-weight:900;font-size:.85rem;color:#a07400}
mark{border-radius:6px;padding:0 2px}
mark.yellow{background:#fff07a}mark.pink{background:#ffc4dc}mark.green{background:#b8f5cc}mark.blue{background:#c4e3ff}
mark sup{font-size:.6em;color:#a0522d;margin-left:1px}
/* result */
.result{text-align:center}
.result .score{font-size:4rem;font-weight:900;color:var(--pink)}
.bigstars{font-size:3.6rem;letter-spacing:6px}
.bigstars span{display:inline-block;animation:spin .8s backwards}
.bigstars span:nth-child(2){animation-delay:.25s}.bigstars span:nth-child(3){animation-delay:.5s}
.dim{filter:grayscale(1);opacity:.3}
@keyframes spin{0%{transform:scale(0) rotate(-180deg)}100%{transform:scale(1) rotate(0)}}
.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.badge{background:#fff;border-radius:18px;padding:12px;text-align:center;border:3px solid #f0e6ff}
.badge .bi{font-size:2.4rem}.badge b{display:block;font-size:.9rem}.badge small{font-size:.72rem;color:#8a7a9a}
.badge.locked{opacity:.35;filter:grayscale(1)}
.lvbar{height:20px;background:#e3eefc;border-radius:999px;overflow:hidden;margin:6px 0}
.lvbar i{display:block;height:100%;background:linear-gradient(90deg,#FFAA32,#FF83BA);border-radius:999px;transition:width .6s}
table{width:100%;border-collapse:collapse}td,th{padding:8px;border-bottom:2px dashed #eee;text-align:left}
.rank1{font-size:1.4rem}
/* flash */
.flash{perspective:1000px;max-width:420px;margin:10px auto}
.fcard{position:relative;height:340px;transition:transform .6s;transform-style:preserve-3d;cursor:pointer}
.fcard.flip{transform:rotateY(180deg)}
.fface{position:absolute;inset:0;backface-visibility:hidden;border-radius:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;box-shadow:0 8px 0 #0001,0 10px 30px #0001;border:5px solid #ffd93d;padding:16px}
.fface.back{transform:rotateY(180deg);border-color:#9b7bff;font-size:1.4rem;line-height:2}
.fk{font-size:10rem;font-weight:900;line-height:1}
.tag{display:inline-block;background:#f1ebff;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:700;margin:2px}
.muted{color:#8a7a9a;font-size:.85rem}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.spacer{flex:1}
.qlist{max-height:420px;overflow:auto;border:2px solid #eee;border-radius:14px}
.qlist div{padding:8px 12px;border-bottom:1px solid #f2f2f2;cursor:pointer}
.qlist div:hover{background:#f7f2ff}
.sel-area{user-select:text;-webkit-user-select:text;background:#fcfbff;border:2px dashed #d8c9f5;border-radius:14px;padding:12px;line-height:1.9}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:50;width:100%;height:100%}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;align-items:center}
#toast div{background:var(--navy);color:#fff;padding:12px 20px;border-radius:999px;font-weight:700;animation:pop .3s;box-shadow:0 6px 18px #0004}
.popbadge{position:fixed;inset:0;background:#0007;z-index:80;display:flex;align-items:center;justify-content:center}
.popbadge .card{text-align:center;animation:pop .4s;max-width:360px}
.popbadge .bi{font-size:5rem;animation:bob 1s infinite}
.bubble{background:#fff;border-radius:20px;padding:10px 16px;display:inline-block;box-shadow:0 4px 0 #0001}
.mascot{font-size:3rem;animation:bob 2s infinite}
.prog{font-size:.75rem;opacity:.9}

.vcard{max-width:440px;width:92%;text-align:center}
.vface{font-size:5rem;margin:8px 0;transition:transform .2s}
.vface.talk{animation:talk .5s infinite alternate}
@keyframes talk{0%{transform:scale(1)}100%{transform:scale(1.12) rotate(-3deg)}}
.vstatus{font-weight:900;color:#2a5aa8;min-height:1.6em}
.vcap{max-height:220px;overflow:auto;text-align:left;background:#faf7ff;border-radius:14px;padding:8px;margin:10px 0;min-height:60px}
.vb{padding:6px 10px;border-radius:12px;margin:4px 0;line-height:1.6}
.vb.ai{background:#fff3d6}.vb.user{background:#e3f1ff;text-align:right}
.vtime{background:var(--sky);color:var(--navy)}

.pre{white-space:pre-line}
.qtext{white-space:pre-line}
.qprompt.mid{font-size:2rem}
.qprompt.long{font-size:1.35rem;font-weight:700;text-align:left;line-height:2.3;word-break:normal;background:#fffaf0;border-radius:14px;padding:10px 14px}
ruby{ruby-position:over}
rt{user-select:none;-webkit-user-select:none}
.qtext,.exp,.qask,.choices button{line-height:2.1}
.big .stars{font-size:.8rem;color:#fff8;letter-spacing:.05em}
@media (max-width:520px){.qprompt{font-size:2.4rem}.qprompt.k{font-size:3.4rem}.qprompt.mid{font-size:1.6rem}.qprompt.long{font-size:1.15rem}ruby rt{font-size:.55em}}
.big rt,.qtop rt{color:#fffd}.qtop rt{color:#5a73a3}
/* ---- parent / billing pages ---- */
.err{color:#e0457b;font-weight:700}
.testmode{background:#fff4c2;border:2px dashed #e0b400;border-radius:12px;padding:8px 12px;font-size:.9rem;margin:8px 0}
.devcode{background:#eef6ff;border:2px dashed #4aa8ff;border-radius:12px;padding:8px 12px}
.warn{color:#c2410c;font-weight:700}.warnbg{background:#ffe1cc!important}.warnbox{border:3px solid #ffb27a}
.card.ok{background:#e9fbef;border:2px solid #4cd47a}
.bigmin{font-size:2.6rem;font-weight:900;color:#5b4bdb}
.ptable{width:100%;border-collapse:collapse}.ptable td,.ptable th{padding:6px 8px;border-bottom:1px solid #eee;text-align:left;vertical-align:top}
.ptable.legal th{width:32%;background:#faf7ff;white-space:normal}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:12px 0}
.plan{background:#fff;border-radius:20px;padding:16px;box-shadow:0 4px 0 #e6def5;text-align:center;border:3px solid transparent}
.plan.best{border-color:#ff6fa5}.plan h3{margin:4px 0}.plan .yen{font-size:2rem;font-weight:900;color:#e0457b}.plan .yen small{font-size:.9rem;color:#777}
.req{background:#ffe066;color:#7a4b00;font-weight:700;padding:0 4px;border-radius:4px}
.legaltext h3{margin-top:18px}.legal-links{text-align:center;font-size:.85rem;margin:18px 0}
.parentnote{background:#fff8ec;border:2px solid #ffc27a;border-radius:12px;padding:10px;font-size:.9rem;line-height:1.6;margin:8px 0;text-align:left}
.plan .btn{display:inline-block;white-space:nowrap;margin-top:6px}

/* ===== AI先生と知恵の探検隊: landing / pets / brand ===== */
.bloading{text-align:center;padding:40px 10px}.bloading img{width:min(320px,80%);animation:bob 2s infinite ease-in-out}
@keyframes bob{50%{transform:translateY(-6px)}}
.lp{max-width:1080px;margin:0 auto}
.lp section{margin:34px 0}
.lp h2.sec{font-size:1.7rem;text-align:center;margin:0 0 6px;color:var(--navy)}
.lp h2.sec .em{display:block;font-size:2.4rem}
.lp p.lead{text-align:center;color:#3f5f93;margin:0 auto 16px;max-width:720px;line-height:1.8}
.lhero{text-align:center;background:radial-gradient(ellipse at 50% 35%,#ffffff 0,#eaf4ff 55%,#dcecff 100%);border-radius:36px;padding:14px 14px 30px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.lhero img.full{width:min(640px,100%);height:auto;display:block;margin:0 auto -6px;filter:drop-shadow(0 10px 18px #173b7826)}
.lhero h1{font-size:clamp(1.45rem,3.6vw,2.3rem);margin:6px 0 8px;color:var(--navy);line-height:1.4}
.lhero h1 em{font-style:normal;color:var(--blue)}
.lhero p.d{font-size:1.05rem;line-height:1.85;max-width:640px;margin:0 auto 18px;color:#2c4b80}
.cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.cta a{font-size:1.15rem;padding:16px 28px;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.btn.big1{background:linear-gradient(180deg,#FFBE55,#FFAA32 60%,#f39612);box-shadow:0 6px 0 #c9770c,0 10px 18px #ffaa3266;color:#fff;text-shadow:0 2px 0 #0002;font-size:1.2rem}
.btn.big2{background:#fff;color:var(--blue);box-shadow:0 6px 0 #b9d6f5,0 10px 18px #2487e81f;border:3px solid var(--blue)}
.targets{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.targets span{background:#fff;border-radius:999px;padding:5px 14px;font-weight:900;font-size:.85rem;box-shadow:0 3px 0 #2487e82a;color:var(--navy)}
.devtag{display:inline-block;background:var(--orange);color:#fff;font-size:.72rem;font-weight:900;border-radius:999px;padding:2px 10px;vertical-align:middle;margin-left:6px;box-shadow:0 2px 0 #c9770c}
.livetag{display:inline-block;background:var(--green);color:#fff;font-size:.72rem;font-weight:900;border-radius:999px;padding:2px 10px;vertical-align:middle;margin-left:6px;box-shadow:0 2px 0 #2a9a64}
.sensei{display:grid;grid-template-columns:minmax(200px,320px) 1fr;gap:22px;align-items:center}
.sensei img{width:100%;border-radius:32px;box-shadow:var(--shadow);background:#fff}
.sensei .say{background:var(--sky);border-radius:22px;padding:14px 18px;font-weight:900;font-size:1.1rem;position:relative;margin-bottom:12px;color:var(--navy)}
.sensei .say:before{content:"";position:absolute;left:-14px;top:24px;border:8px solid transparent;border-right:14px solid var(--sky)}
@media(max-width:700px){.sensei{grid-template-columns:1fr}.sensei img{max-width:300px;margin:0 auto}.sensei .say:before{display:none}}
.pgroup{margin:18px 0 8px;font-weight:900;font-size:1.05rem;display:flex;align-items:center;gap:8px;color:var(--navy)}
.pgroup:before{content:"";width:10px;height:26px;border-radius:6px;background:var(--blue)}
.pgroup.g2:before{background:var(--pink)}
.pets{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
@media(max-width:900px){.pets{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.pets{grid-template-columns:repeat(2,1fr);gap:10px}}
.pcard{background:#fff;border-radius:24px;box-shadow:var(--shadow);overflow:hidden;cursor:pointer;text-align:center;border:4px solid transparent;transition:transform .15s,border-color .15s;padding:0 0 10px;font:inherit;color:inherit;text-decoration:none;display:block}
.pcard:hover{transform:translateY(-4px) rotate(-.5deg)}
.pcard.on{border-color:var(--orange);box-shadow:0 0 0 4px #ffaa3255,var(--shadow)}
.pcard img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:var(--sky)}
.pcard .no{position:absolute;margin:8px;background:#fff;color:var(--navy);font-weight:900;border-radius:999px;width:30px;height:30px;line-height:30px;font-size:.9rem;box-shadow:0 2px 0 #0002}
.pcard b{display:block;font-size:1.2rem;margin-top:6px}
.pcard small{display:block;font-size:.75rem;color:#4a6797;padding:0 6px;line-height:1.7}
.pcard .tags{margin-top:4px}
.ptag{display:inline-block;font-size:.68rem;font-weight:900;background:var(--sky);color:var(--navy);border-radius:999px;padding:1px 8px;margin:2px}
.pdetail{max-width:620px;width:94%;max-height:92vh;overflow:auto;text-align:left;padding:0!important}
.pdetail .art{width:100%;display:block;aspect-ratio:300/190;object-fit:cover}
.pdetail .body{padding:16px 18px 20px}
.pdetail h2{margin:0;font-size:1.7rem}
.pdetail .blurb{line-height:2.1;font-size:1.02rem}
.stages{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0;align-items:end}
.stages div{text-align:center;background:var(--sky);border-radius:18px;padding:8px 4px 6px;position:relative}
.stages img{width:100%;max-height:110px;object-fit:contain;display:block;filter:drop-shadow(0 4px 4px #173b7822)}
.stages b{display:block;font-size:.85rem}.stages small{font-size:.7rem;color:#4a6797}
.stages div:not(:last-child):after{content:"▶";position:absolute;right:-9px;top:40%;color:var(--orange);font-size:.8rem;z-index:1}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.feat .f{background:#fff;border-radius:24px;padding:18px;box-shadow:var(--shadow);border-top:8px solid var(--blue)}
.feat .f .fi{font-size:2.6rem}.feat .f h3{margin:4px 0 6px;font-size:1.15rem}.feat .f p{margin:0;line-height:1.75;font-size:.92rem;color:#2c4b80}
.feat .f.o{border-top-color:var(--orange)}.feat .f.g{border-top-color:var(--green)}.feat .f.p{border-top-color:var(--pink)}.feat .f.n{border-top-color:var(--navy)}
.evo{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end;background:#fff;border-radius:28px;padding:18px;box-shadow:var(--shadow)}
.evo div{text-align:center;position:relative}
.evo img{width:100%;max-width:170px;filter:drop-shadow(0 6px 6px #173b7822)}
.evo b{display:block;font-size:1.05rem}.evo small{display:inline-block;background:var(--navy);color:#fff;border-radius:999px;padding:1px 10px;font-weight:900;font-size:.78rem}
.evo div:not(:last-child):after{content:"➜";position:absolute;right:-14px;top:38%;font-size:1.3rem;color:var(--orange)}
.lfoot{text-align:center;color:#4a6797;font-size:.85rem;padding:20px 0 10px}
.lfoot a{color:var(--blue);margin:0 6px}
/* kid home pet panel */
.pethome{display:grid;grid-template-columns:200px 1fr;gap:16px;align-items:center;background:linear-gradient(160deg,#ffffff,#e8f3ff);border-radius:30px;padding:16px 18px;box-shadow:var(--shadow);margin:6px 0 16px}
.pethome .pimg{width:100%;max-width:200px;filter:drop-shadow(0 8px 8px #173b7826);animation:bob 2.4s infinite ease-in-out}
.pethome .bub{background:#fff;border-radius:20px;padding:10px 14px;box-shadow:0 3px 0 #2487e826;display:inline-block;font-weight:900;margin:6px 0;line-height:1.9}
@media(max-width:560px){.pethome{grid-template-columns:110px 1fr;padding:12px}.pethome .pimg{max-width:110px}}
.soon{text-align:center}
.soon img{width:160px;filter:drop-shadow(0 6px 6px #173b7822);animation:bob 2s infinite ease-in-out}
.soon h1{color:var(--navy)}
.soon .stamp{display:inline-block;background:var(--orange);color:#fff;font-weight:900;border-radius:16px;padding:6px 18px;font-size:1.25rem;transform:rotate(-3deg);box-shadow:0 4px 0 #c9770c}
.vface img{width:120px;height:120px;border-radius:50%;object-fit:cover;box-shadow:0 4px 0 #2487e833;background:#fff}
.vface .vemo{position:absolute;margin-left:-28px;margin-top:84px;font-size:2rem}
.big.dis{filter:grayscale(.5);opacity:.75}
.big .badge-soon{display:inline-block;background:#fff;color:#c9770c;border-radius:999px;font-size:.7rem;padding:1px 8px;margin-top:4px;text-shadow:none}
.feat.c3{grid-template-columns:repeat(3,1fr)}@media(max-width:820px){.feat.c3{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.feat.c3{grid-template-columns:1fr}}
.pcard{position:relative}.pcard .no{left:0;top:0}
.pcard small{word-break:keep-all;overflow-wrap:anywhere}
.pethome .pwrap{position:relative;display:block;text-decoration:none}
.pethome .pface{border-radius:32px;border:5px solid var(--blue);background:#fff;aspect-ratio:1;object-fit:cover;filter:none;box-shadow:0 6px 0 #173b7822}
.pethome .pstage{position:absolute;right:-6px;bottom:-8px;background:#fff;border-radius:999px;padding:2px 10px 2px 4px;font-weight:900;font-size:.8rem;color:var(--navy);display:flex;align-items:center;gap:2px;box-shadow:0 3px 0 #2487e833}
.pethome .pstage img{width:34px;height:34px;object-fit:contain}
.popbadge .pdetail{text-align:left}
.stages b{font-size:.74rem;white-space:nowrap;letter-spacing:-.02em}

/* ===== おへや ===== */
.gearchip{font-size:1.1rem!important;padding:3px 9px!important}
#hud .coinchip b{font-weight:900}
.rtop{display:flex;align-items:center;gap:8px;margin:0 0 10px;flex-wrap:wrap}
.rname{border:none;background:#fff;border-radius:999px;padding:7px 14px;font:inherit;font-weight:900;color:var(--navy);box-shadow:0 3px 0 #2487e826;cursor:pointer;flex:1;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.coinbig{background:#fff;border-radius:999px;padding:6px 14px;font-weight:900;box-shadow:0 3px 0 #ffaa3255;white-space:nowrap}.coinbig b{font-size:1.1em}.coinbig.star{box-shadow:0 3px 0 #ffd84d77}
.gear{font-size:1.4rem;text-decoration:none;background:#fff;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;box-shadow:0 3px 0 #2487e826}
.edtitle{font-size:1.2rem;flex:1}
.rmain{display:grid;gap:12px}
@media(min-width:900px){.rmain{grid-template-columns:1fr 300px;align-items:start}}
.rstage{position:relative;isolation:isolate}
.room{position:relative;width:100%;aspect-ratio:4/4.3;container-type:size;border-radius:24px;overflow:hidden;box-shadow:var(--shadow);user-select:none;-webkit-user-select:none;
 --wall:#fde8d4;--wall2:#f8d9bd;--side:#f5cfae;--floor:#e8b57a;--floor2:#d9a265;--ceil:#fff4e8;--sky1:#9fd6ff;--sky2:#e9f7ff}
@media(min-width:900px){.room{aspect-ratio:auto;height:max(520px,calc(100vh - 190px))}}
.room>div{position:absolute}
.room .ceil{inset:0 0 auto 0;height:7%;background:var(--ceil);clip-path:polygon(0 0,100% 0,90% 100%,10% 100%)}
.room .bwall{left:10%;right:10%;top:7%;height:51%;background:linear-gradient(var(--wall),var(--wall2))}
.room .lwall{left:0;top:0;width:10%;height:80%;background:linear-gradient(90deg,var(--side),var(--wall2));clip-path:polygon(0 0,100% 9%,100% 72%,0 100%);filter:brightness(.92)}
.room .rwall{right:0;top:0;width:10%;height:80%;background:linear-gradient(-90deg,var(--side),var(--wall2));clip-path:polygon(0 9%,100% 0,100% 100%,0 72%);filter:brightness(.92)}
.room .floor{left:0;right:0;bottom:0;height:42%;background:repeating-linear-gradient(90deg,var(--floor) 0 11%,var(--floor2) 11% 11.4%);clip-path:polygon(10% 0,90% 0,100% 38%,100% 100%,0 100%,0 38%)}
.room .floor::after{content:"";position:absolute;inset:0;background:linear-gradient(#0002,transparent 30%)}
.room .glow{inset:0;background:radial-gradient(ellipse at 50% 30%,#fff6 0,transparent 60%);pointer-events:none}
.room .win{left:34%;width:32%;top:12%;height:52%;border-radius:50% 50% 12px 12px/40% 40% 12px 12px;border:6px solid #fff;box-shadow:0 0 0 4px #e7c9a8,inset 0 0 18px #0001;overflow:hidden;position:absolute}
.room .scene{position:absolute;inset:0;background:linear-gradient(var(--sky1),var(--sky2))}
.room .scene::before,.room .scene::after{position:absolute;font-size:2.2vw;line-height:1}
@media(max-width:899px){.room .scene::before,.room .scene::after{font-size:5vw}}
.room .scene::before{content:"☀️";top:12%;right:12%}.room .scene::after{content:"☁️  ☁️";bottom:18%;left:8%;white-space:pre}
.room .shelfline{position:absolute;left:4%;right:4%;bottom:0;height:7%;background:#fff8;border-top:3px solid #fff}
.room.t-sky{--wall:#dff1ff;--wall2:#c6e6ff;--side:#b5dcfb;--floor:#ffffff;--floor2:#e3f2ff;--ceil:#f2faff;--sky1:#7cc2ff;--sky2:#dff3ff}
.room.t-sky .scene::before{content:"🌈"}.room.t-sky .scene::after{content:"☁️ 🎈 ☁️"}
.room.t-sea{--wall:#c9f1f4;--wall2:#9fe0e8;--side:#8fd3dd;--floor:#ffe7b8;--floor2:#f5d79a;--ceil:#e6fbfc;--sky1:#2bb3d6;--sky2:#0d6fa5}
.room.t-sea .win{border-radius:50%;width:24%;left:38%;height:46%;border-color:#c8d6e0;box-shadow:0 0 0 6px #8aa3b5}
.room.t-sea .scene::before{content:"🐠";top:30%;left:16%;right:auto}.room.t-sea .scene::after{content:"🫧🐟 🪸";bottom:10%}
.room.t-forest{--wall:#e3f5d6;--wall2:#c9eab5;--side:#a9d98f;--floor:#c69466;--floor2:#a87650;--ceil:#c69466;--sky1:#a8e6a0;--sky2:#5fbf6a}
.room.t-forest .scene::before{content:"🍄";top:auto;bottom:10%;right:14%}.room.t-forest .scene::after{content:"🌳🌲🌳";bottom:6%;left:4%}
.room.t-magic{--wall:#e8dcff;--wall2:#cdb8ff;--side:#b9a0f5;--floor:#8f7ae0;--floor2:#7a64cf;--ceil:#3b2a7a;--sky1:#2a2370;--sky2:#5a45b8}
.room.t-magic .scene::before{content:"🌙";top:10%;right:14%}.room.t-magic .scene::after{content:"✨🏰✨";bottom:6%;left:10%}
.room.t-magic .glow{background:radial-gradient(circle at 20% 30%,#fff8 0 2px,transparent 3px) 0 0/60px 60px,radial-gradient(ellipse at 50% 30%,#fff3 0,transparent 60%)}
/* furniture */
.fi{transform:translate(-50%,-100%);touch-action:none}
.fi.flat{transform:translate(-50%,-70%)}
.fin{transition:transform .2s}
.iart{display:block;width:100%;height:auto;aspect-ratio:1}
.fi .iart{filter:drop-shadow(0 4px 3px #173b7822)}
.editing .fi{cursor:grab}.editing .fi::after{content:"";position:absolute;inset:-4px;border:2px dashed transparent;border-radius:12px}
.editing .fi.sel::after{border-color:var(--blue);background:#2487e811}.editing .fi.drag{cursor:grabbing}.editing .fi.drag .iart{transform:scale(1.06)}
/* pet */
.petwrap{left:50%;top:91%;aspect-ratio:1;transform:translate(-50%,-100%);z-index:930;touch-action:none;cursor:pointer}
.editing .petwrap{opacity:.55;pointer-events:none}
.pin{position:relative;height:100%;animation:bob 2.6s ease-in-out infinite;transform-origin:50% 100%}
.pin img{height:100%;width:100%;object-fit:contain;display:block;-webkit-user-drag:none;user-select:none}
.pshadow{position:absolute;left:18%;right:18%;bottom:-2%;height:7%;background:#173b7826;border-radius:50%;z-index:-1;filter:blur(2px)}
.costume{position:absolute;pointer-events:none}
@keyframes bob{0%,100%{transform:translateY(0) scale(1,1)}50%{transform:translateY(-3%) scale(1.01,.99)}}
.pin.jump{animation:jump .7s ease}@keyframes jump{0%{transform:translateY(0) scale(1.1,.9)}35%{transform:translateY(-28%) scale(.95,1.06)}70%{transform:translateY(0) scale(1.08,.92)}100%{transform:none}}
.pin.happy{animation:happy 1s ease}@keyframes happy{0%,100%{transform:rotate(0)}20%{transform:rotate(-7deg) scale(1.04)}40%{transform:rotate(7deg) scale(1.04)}60%{transform:rotate(-5deg)}80%{transform:rotate(4deg)}}
.pin.eat{animation:eat 1.3s ease}@keyframes eat{0%,100%{transform:none}15%,45%,75%{transform:scale(1.06,.94)}30%,60%,90%{transform:scale(.97,1.03)}}
.pin.play{animation:play 1.2s ease}@keyframes play{0%{transform:none}30%{transform:translateX(-10%) rotate(-10deg)}60%{transform:translateX(10%) rotate(10deg) translateY(-10%)}100%{transform:none}}
.say{position:absolute;left:50%;bottom:calc(100% - var(--headtop,30%) + 4px);width:max-content;max-width:62cqw;background:#fff;border-radius:18px;padding:8px 12px;font-weight:900;font-size:.9rem;line-height:1.5;text-align:center;box-shadow:0 4px 0 #173b7822,0 6px 14px #173b7822;opacity:0;transform:translateX(-50%) scale(.6);transform-origin:50% 100%;transition:.25s;pointer-events:none;z-index:2}
.say::after{content:"";position:absolute;left:50%;bottom:-14px;margin-left:-8px;border:8px solid transparent;border-top:10px solid #fff}
.say.on{opacity:1;transform:translateX(-50%)}
.fx{inset:0;pointer-events:none;z-index:2000}
.fxp{position:absolute;font-size:1.6rem;animation:fxup 1.6s ease-out forwards;opacity:0}
@keyframes fxup{0%{opacity:0;transform:translateY(0) scale(.5)}15%{opacity:1;transform:scale(1.1)}100%{opacity:0;transform:translateY(-120px) scale(1)}}
.flyer{position:absolute;font-size:2.2rem;width:44px;transition:left .7s cubic-bezier(.3,1.4,.6,1),top .7s cubic-bezier(.4,-0.6,.7,1);z-index:2001}
.flyer.gone{transition:.3s;transform:scale(0);opacity:0}
.sweep{position:absolute;left:-10%;top:70%;font-size:3rem;animation:sweep 1.4s ease-in-out forwards;z-index:2001}
@keyframes sweep{0%{left:-10%;transform:rotate(-20deg)}50%{transform:rotate(20deg)}100%{left:100%;transform:rotate(-20deg)}}
/* actions overlay */
.ractions{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:8px;z-index:2100;padding:0 8px;flex-wrap:wrap}
.ract{border:none;background:#fff;border-radius:18px;font:inherit;font-weight:900;font-size:.72rem;color:var(--navy);padding:6px 4px 5px;width:64px;display:flex;flex-direction:column;align-items:center;box-shadow:0 4px 0 #173b7826,0 6px 12px #173b7822;cursor:pointer;transition:transform .12s}
.ract span{font-size:1.6rem;line-height:1.2}.ract:active{transform:translateY(3px) scale(.96)}
.ract.a-shop{background:linear-gradient(#ffc56b,#ffaa32);color:#fff}.ract.a-edit{background:linear-gradient(#a8d4ff,#7cbcff);color:#fff}
@media(max-width:520px){.ract{width:calc((100% - 50px)/6);font-size:.58rem;border-radius:14px}.ract span{font-size:1.3rem}.ractions{gap:6px;bottom:6px}}
/* side cards */
.rside .card{margin:0 0 12px;padding:14px}
.pface{width:56px;height:56px;border-radius:50%;background:var(--sky);box-shadow:0 3px 0 #2487e833}
.pname{border:none;background:none;font:inherit;font-weight:900;font-size:1.25rem;color:var(--navy);padding:0;cursor:pointer;text-align:left}
.plv{font-size:1.1rem;color:var(--blue)}
.stag{display:inline-block;border-radius:999px;padding:1px 10px;font-size:.75rem;font-weight:900;color:#fff;background:#ff9cc9}.stag.s-child{background:var(--green)}.stag.s-grow{background:var(--blue)}.stag.s-adult{background:var(--orange)}
.xpbar{height:16px;background:#e3edf9;border-radius:999px;overflow:hidden;margin:10px 0 3px;box-shadow:inset 0 2px 0 #173b7814}.xpbar i{display:block;height:100%;background:linear-gradient(90deg,#7cdca4,var(--green));border-radius:999px;transition:width .6s}
.xpnote{font-size:.75rem;color:#5a73a3}
.gauges{margin-top:8px}.gauge{display:grid;grid-template-columns:96px 1fr;align-items:center;font-size:.8rem;font-weight:900;margin:4px 0}
.gbar{height:11px;background:#eef3fa;border-radius:999px;overflow:hidden}.gbar i{display:block;height:100%;border-radius:999px;transition:width .5s}
.goal h3{margin:0 0 6px;font-size:1rem}
.rhint{text-align:center;font-size:.8rem}
/* missions */
.missions{display:grid;gap:8px}
.mis{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;background:#f6faff;border-radius:14px;padding:8px 10px;border:2px solid #e3edf9}
.mis.done{border-color:var(--orange);background:#fff7e8}.mis.claimed{opacity:.6}
.mtxt{font-weight:900;font-size:.9rem}.mtxt small{font-size:.7rem;color:#5a73a3}
.mbar{height:8px;background:#e3edf9;border-radius:999px;overflow:hidden;margin:3px 0 0}.mbar i{display:block;height:100%;background:var(--orange)}
.mrw{font-weight:900;color:#c77700;white-space:nowrap}.mok{font-size:.75rem;color:var(--green);font-weight:900;white-space:nowrap}
.missions.compact .mis{padding:6px 8px;gap:6px}.missions.compact .mtxt{font-size:.78rem}
/* modals */
.mcard{max-width:440px;width:92vw;text-align:center;position:relative;max-height:88vh;overflow:auto}
.mcard input{font-size:1.2rem}
.confirm .cfart,.mcard .cfart{width:130px;margin:0 auto}
.cfq{font-size:1.15rem;font-weight:900;line-height:1.7}
.dress{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
.dopt{border:3px solid #e3edf9;background:#fff;border-radius:16px;padding:6px;font:inherit;font-weight:900;font-size:.75rem;cursor:pointer;color:var(--navy)}.dopt.on{border-color:var(--orange);background:#fff7e8}
.dopt .none{font-size:2.6rem;display:block;aspect-ratio:1;line-height:2}
/* edit mode */
.edtabs{display:flex;gap:6px;align-items:center;overflow-x:auto;padding:2px 2px 8px}
.edtabs .edlab{font-weight:900;font-size:.85rem;white-space:nowrap;background:var(--navy);color:#fff;border-radius:999px;padding:6px 12px}
.edtabs button{border:none;background:#fff;border-radius:999px;padding:8px 16px;font:inherit;font-weight:900;color:var(--navy);box-shadow:0 3px 0 #2487e826;white-space:nowrap;cursor:pointer}
.edtabs button.on{background:var(--blue);color:#fff}
.edgrid{display:grid;gap:10px}
.themes{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.thbtn{border:3px solid transparent;background:#fff;border-radius:16px;padding:5px;font:inherit;font-weight:900;font-size:.75rem;color:var(--navy);cursor:pointer;min-width:84px;box-shadow:0 3px 0 #2487e826}
.thbtn.on{border-color:var(--blue)}
.thsw{height:46px;border-radius:10px;background:linear-gradient(var(--wall) 55%,var(--floor) 55%)}
.thbtn.t-normal,.swatch.t-normal{--wall:#fde8d4;--floor:#e8b57a}.thbtn.t-sky,.swatch.t-sky{--wall:#c6e6ff;--floor:#fff}.thbtn.t-sea,.swatch.t-sea{--wall:#9fe0e8;--floor:#ffe7b8}.thbtn.t-forest,.swatch.t-forest{--wall:#c9eab5;--floor:#c69466}.thbtn.t-magic,.swatch.t-magic{--wall:#cdb8ff;--floor:#8f7ae0}
.swatch{border-radius:10px;border:2px solid #fff;box-shadow:0 0 0 1px #dbe8f8}.swatch.base{background:linear-gradient(var(--wall,#fde8d4) 55%,var(--floor,#e8b57a) 55%)}
.traygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;align-content:start}
.tray{border:3px solid #e3edf9;background:#fff;border-radius:16px;padding:6px;font:inherit;font-weight:900;font-size:.7rem;color:var(--navy);cursor:pointer;position:relative;line-height:1.3}
.tray .iart{width:80%;margin:0 auto 3px}.tray em{display:block;font-style:normal;font-size:.65rem;color:#5a73a3}.tray em.add{color:var(--blue)}
.tray.on{border-color:var(--blue);background:#eef6ff}.tray.placed{background:#f3fbf6}.tray.lock{opacity:.6}
.seltool{position:absolute;left:8px;right:8px;top:8px;z-index:2200;display:flex;gap:6px;align-items:center;flex-wrap:wrap;background:#fffe;border-radius:14px;padding:6px 10px;font-size:.8rem;font-weight:900;box-shadow:0 3px 10px #173b7822}
.seltool.off{background:#fffc;color:#5a73a3}
.edfoot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px}
.btn.big{font-size:1.1rem;padding:14px 22px}
@media(min-width:900px){.edgrid{grid-template-columns:120px 1fr 250px;align-items:start}.themes{flex-direction:column;overflow:visible}.thbtn{min-width:0}.traygrid{max-height:62vh;overflow:auto;grid-template-columns:repeat(2,1fr)}}
/* shop */
.shopov{position:fixed;inset:0;background:#173b7855;z-index:60;display:flex;align-items:flex-end;justify-content:center;animation:fadein .2s}
@keyframes fadein{from{opacity:0}}
.shop{background:#f7fbff;width:100%;max-height:86vh;border-radius:26px 26px 0 0;padding:12px 12px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;animation:sheetup .28s ease}
@keyframes sheetup{from{transform:translateY(40%)}}
@media(min-width:900px){.shopov{justify-content:flex-end;align-items:stretch}.shop{width:min(720px,62vw);max-height:none;height:100%;border-radius:26px 0 0 26px;animation:sidein .28s ease}@keyframes sidein{from{transform:translateX(40%)}}}
.shead{display:flex;align-items:center;gap:8px;margin-bottom:8px}.shead b{font-size:1.25rem;flex:1}
.sx{border:none;background:#fff;border-radius:50%;width:38px;height:38px;font-size:1rem;cursor:pointer;box-shadow:0 3px 0 #2487e826;color:var(--navy)}
.scats{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;flex:none}
.scats button{border:none;background:#fff;border-radius:14px;padding:6px 10px;font:inherit;font-weight:900;font-size:.72rem;color:var(--navy);min-width:62px;line-height:1.3;box-shadow:0 3px 0 #2487e826;cursor:pointer}
.scats button.on{background:var(--blue);color:#fff}
.sbody{display:grid;gap:10px;overflow:hidden;min-height:0;flex:1}
.sfilt{display:flex;gap:6px;overflow-x:auto}
.sfilt button{border:none;background:#fff;border-radius:999px;padding:6px 12px;font:inherit;font-weight:900;font-size:.8rem;color:var(--navy);white-space:nowrap;box-shadow:0 2px 0 #2487e826;cursor:pointer}
.sfilt button.on{background:var(--orange);color:#fff}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;overflow:auto;padding:2px 2px 10px;align-content:start}
@media(max-width:520px){.sgrid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.sbody{grid-template-columns:120px 1fr}.sfilt{flex-direction:column}.sfilt button{text-align:left;padding:10px 12px}}
.sitem{border:none;background:#fff;border-radius:18px;padding:8px;font:inherit;font-weight:900;color:var(--navy);cursor:pointer;box-shadow:0 4px 0 #2487e81f,0 6px 14px #173b7812;position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:.85rem}
.sitem .sart{width:100%;background:linear-gradient(#eef6ff,#fff);border-radius:14px;padding:6px}.sitem .sart .iart{width:78%;margin:0 auto}
.sitem .price{background:#fff3d6;border-radius:999px;padding:2px 12px;color:#b36b00}.sitem.own .price{background:#e3f8ec;color:#1f9d5c}
.snew,.ssale{position:absolute;top:6px;left:6px;background:var(--pink);color:#fff;border-radius:8px;font-size:.62rem;padding:1px 6px;z-index:1}.ssale{left:auto;right:6px;background:#ff5c5c}
.spvov{z-index:75}.spvov .mcard{max-width:520px}
.pvx{position:absolute;right:10px;top:10px}
.spv{display:grid;gap:10px;text-align:left}
.pvart{background:linear-gradient(#eef6ff,#fff);border-radius:18px;padding:10px}.pvart .iart{width:min(220px,60%);margin:0 auto}
.pvart.kabe .iart,.pvart.yuka .iart{height:150px;aspect-ratio:auto;width:100%}
.spv h3{margin:0;font-size:1.3rem}.cost{font-size:1.1rem;font-weight:900}.cost small{font-size:.8rem;color:#5a73a3}
.needmsg{background:#fff7e8;border:3px dashed var(--orange);border-radius:16px;padding:10px 12px;font-weight:900;line-height:1.7;margin-bottom:8px}
.okmsg{color:#1f9d5c;font-weight:900}
/* zukan */
.zhead{display:flex;gap:12px;align-items:center}.zhead img{width:72px;height:72px;border-radius:50%;background:var(--sky)}
.zukan{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0}
@media(max-width:700px){.zukan{grid-template-columns:repeat(2,1fr)}}
.zcard{background:#fff;border-radius:22px;padding:10px;text-align:center;box-shadow:var(--shadow);cursor:pointer;position:relative;display:flex;flex-direction:column;align-items:center;gap:3px}
.zcard.got{background:linear-gradient(#fff,#eef8ff)}
.zno{position:absolute;left:10px;top:8px;background:var(--navy);color:#fff;border-radius:50%;width:26px;height:26px;font-size:.8rem;font-weight:900;display:grid;place-items:center}
.zimg{position:relative;width:100%;aspect-ratio:1}.zimg img{width:100%;height:100%;object-fit:contain}
.zcard.lock .zimg img{filter:brightness(0) opacity(.18)}.zcard.lock.peek .zimg img{filter:grayscale(.3) opacity(.75)}
.zimg .q{position:absolute;inset:0;display:grid;place-items:center;font-size:3rem;font-weight:900;color:#9fb3d9}
.zcard b{font-size:1.1rem}.zcard small{color:#5a73a3}.zst{font-size:.75rem;font-weight:900;color:#5a73a3}.zst.ok{color:var(--green)}
.zhd{width:min(420px,80vw)}.zhd.pre{filter:grayscale(.3) opacity(.8)}
.zpets{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px}
.zpets a{text-decoration:none;color:var(--navy);text-align:center;background:#f6faff;border-radius:14px;padding:6px;border:2px solid transparent;font-size:.8rem}.zpets a.on{border-color:var(--blue)}
.zpets img{width:54px;height:54px;border-radius:50%}.zpets small{display:block;color:#5a73a3;font-size:.65rem}
.evolve img{width:min(300px,70vw);animation:evo 1.2s ease}@keyframes evo{0%{filter:brightness(4);transform:scale(.6)}60%{filter:brightness(1.6);transform:scale(1.08)}100%{filter:none;transform:none}}
.evolve h2{font-size:1.8rem;margin:4px 0;color:var(--orange)}
/* まなぶ */
.learnhead{display:grid;grid-template-columns:96px 1fr auto;gap:12px;align-items:center;text-decoration:none;color:var(--navy)}
.learnhead img{width:96px;height:96px;object-fit:contain}.learnhead .lhc{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.learnhead .lhc small{color:var(--blue);font-weight:900}
@media(max-width:520px){.learnhead{grid-template-columns:72px 1fr}.learnhead img{width:72px;height:72px}.learnhead .lhc{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}}
.rwxp{background:#d9f5e4!important;color:#1f9d5c}.rwcoin{background:#fff1cc!important;color:#b36b00}
.rpet{display:flex;align-items:center;gap:10px;justify-content:center;margin:6px 0}.rpet img{width:90px}
/* せってい */
.setlist{display:grid;gap:8px;margin-bottom:12px}
.setrow{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center;text-decoration:none;color:var(--navy);border:none;font:inherit;text-align:left;cursor:pointer;width:100%;margin:0;padding:10px 14px}
.setrow img{width:48px;height:48px;border-radius:50%}.setrow .sic{font-size:1.8rem;text-align:center}.setrow small{display:block;color:#5a73a3;font-size:.78rem}

@media(max-width:899px){.ractions{position:static;margin-top:10px;flex-wrap:nowrap}.ract{flex:1;width:auto;min-width:0;white-space:nowrap;letter-spacing:-.04em}.rtop .gear{display:none}.rtop .rname{min-width:40%}}
@media(min-width:900px){.room .petwrap{top:80%}.ractions{bottom:14px}}
.missions.compact .mis{grid-template-columns:1fr auto}.missions.compact .mtxt{grid-column:1/-1}
.missions.compact .mrw{justify-self:start}
@media(min-width:900px){#tabbar .nsoon{top:-4px;right:2px}}
@media(min-width:900px){.editmode .room{height:max(440px,calc(100vh - 270px))}.editmode .traygrid{max-height:calc(100vh - 270px)}}
.editmode .rtop{margin-bottom:6px}.edfoot .btn.big{flex:1;max-width:420px}
@media(max-width:899px){.editmode .room{aspect-ratio:4/3.6}.edtitle{font-size:1rem}}
.zpets b{font-size:.72rem;white-space:nowrap;display:block}

/* signature rooms */
.room.sig .scene::before,.room.sig .scene::after{content:none}
.room .scene .s1,.room .scene .s2{position:absolute;font-size:2.4cqw;line-height:1}
@media(max-width:899px){.room .scene .s1,.room .scene .s2{font-size:5cqw}}
.room .scene .s1{top:12%;right:12%}.room .scene .s2{bottom:12%;left:8%;white-space:pre}
.room .sigdeco{position:absolute;left:3%;right:3%;top:4%;text-align:center;font-size:3.2cqh;letter-spacing:.3em;opacity:.55;white-space:nowrap;overflow:hidden}
.room.t-sig_hayato .floor{background:radial-gradient(ellipse at 50% 55%,transparent 0 12%,#fff 12.3% 13.4%,transparent 13.7%),linear-gradient(90deg,transparent 49.7%,#fff 49.7% 50.3%,transparent 50.3%),repeating-linear-gradient(90deg,#5fc77d 0 11%,#52b870 11% 22%)}
.room.t-sig_riku .floor{background:repeating-linear-gradient(45deg,#7fcf8f 0 12px,#6fbf7f 12px 24px)}
.thlab{font-weight:900;font-size:.8rem;background:var(--navy);color:#fff;border-radius:999px;padding:4px 10px;white-space:nowrap;align-self:center}
.thbtn em{display:block;font-style:normal;font-size:.6rem;color:#fff;background:var(--orange);border-radius:6px;margin-top:2px}
.thbtn .thsw{position:relative}.thbtn .thsw span{position:absolute;inset:0;display:grid;place-items:center;font-size:1.4rem}
.edbtns{display:flex;gap:8px;flex:1;justify-content:flex-end}
.scats .petcat img{width:26px;height:26px;border-radius:50%;background:#fff}.scats .petcat{background:#fff7e8}.scats .petcat.on{background:var(--orange)}
.shead small{font-size:.75rem;color:#5a73a3;margin-left:4px}
.spet{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #0002;z-index:1}
.mpet{width:22px;height:22px;border-radius:50%;vertical-align:-5px;margin-right:4px}.mis.petmis{border-color:#ffd8a8}

.pprof{background:#f6faff;border-radius:14px;padding:8px 10px;margin:8px 0;text-align:left;display:grid;gap:4px;font-size:.88rem}.pprof b{margin-right:6px;color:var(--navy)}.pprof b::after{content:"："}
.edtabs{flex-wrap:wrap}.edtabs button{padding:6px 11px!important;font-size:.82rem!important}
.mis.msn{opacity:.75;background:#f4f6fa}.msoon{font-size:.72rem;font-weight:900;color:#fff;background:#9aa8c0;border-radius:999px;padding:3px 8px;white-space:nowrap}
.room.t-sig_momo .floor{background:repeating-linear-gradient(90deg,#e9b48a 0 12%,#dba57a 12% 12.5%)}
.room.t-sig_luna .floor,.room.t-sig_leo .floor{background:radial-gradient(ellipse at 50% 60%,#ffe68033 0 22%,transparent 23%),linear-gradient(var(--floor),var(--floor2))}
.room.t-sig_mio_garden .floor{background:repeating-linear-gradient(45deg,#9fdc8f 0 12px,#8fcc7f 12px 24px)}
.shead small{display:block;margin-left:0;font-size:.7rem}

/* real stage art fills its square → show growth by size in side-by-side views */
img.st-baby,img.st-child,img.st-grow,img.st-adult{transform-origin:50% 100%}
img.st-baby{transform:scale(.68)}img.st-child{transform:scale(.78)}img.st-grow{transform:scale(.89)}
.room .roombg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%;z-index:0}.room.hasbg>.ceil,.room.hasbg>.lwall,.room.hasbg>.rwall,.room.hasbg>.bwall,.room.hasbg>.floor{visibility:hidden}
.mis.msn .mtxt small{display:block}
/* ===== ともだち（ソーシャル） ===== */
.nbadge{position:absolute;top:0;right:14%;min-width:18px;height:18px;border-radius:9px;background:#ff4f7f;color:#fff;font-size:.66rem;line-height:18px;text-align:center;padding:0 4px;box-shadow:0 2px 0 #c2305a}
.fhead{display:flex;align-items:center;justify-content:space-between}.fhead h1{margin:.2em 0}
.bell{position:relative;border:none;background:#fff;border-radius:50%;width:52px;height:52px;font-size:1.6rem;box-shadow:var(--shadow);cursor:pointer}
.bell i{position:absolute;top:-2px;right:-2px;font-style:normal;background:#ff4f7f;color:#fff;font-size:.7rem;font-weight:900;border-radius:999px;min-width:20px;padding:1px 5px}.bell i:empty{display:none}
.ftabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:6px 0 12px;position:sticky;top:66px;z-index:10;background:var(--bg);padding:4px 0}
.ftabs a{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--navy);font-weight:900;background:#fff;border-radius:18px;padding:8px 2px;box-shadow:0 4px 0 #173b7814;font-size:.9rem;white-space:nowrap}
.ftabs a span{font-size:1.5rem}.ftabs a.on{background:var(--blue);color:#fff;box-shadow:0 4px 0 #1667b8}
@media(max-width:600px){.ftabs{top:56px}.ftabs a{font-size:.72rem;letter-spacing:-.04em}}
.sav{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;font-size:1.3rem;flex:none;box-shadow:inset 0 -3px 0 #0000000f,0 2px 0 #173b7820;vertical-align:middle;line-height:1}
.sav.lg{width:64px;height:64px;font-size:2.2rem}
.sbanner{display:flex;gap:14px;align-items:center;background:linear-gradient(135deg,#fff,#eef6ff);border:3px dashed #bcd9fa}
.sbanner img{width:70px;height:70px;border-radius:50%;flex:none}.sbanner p{margin:4px 0 8px;line-height:1.7}
.mycard{display:flex;gap:12px;align-items:center}.mycard .mc{flex:1;display:flex;flex-direction:column;gap:2px}.mycard .mc b{font-size:1.3rem}
.tag.ok{background:#dcfbe6;color:#1f8a52}
.ftools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ftools input{flex:1;min-width:180px}.ftools .seg{margin:0}
.petfilter{display:flex;gap:6px;overflow-x:auto;padding:8px 2px 10px;scrollbar-width:thin}
.petfilter button{flex:none;border:3px solid #d6e6fa;background:#fff;border-radius:999px;padding:2px 10px;font:inherit;font-weight:900;cursor:pointer;height:48px;display:grid;place-items:center}
.petfilter button img{width:38px;height:38px;border-radius:50%;object-fit:cover}.petfilter button[data-p]:not([data-p=""]){padding:2px}
.petfilter button.on{border-color:var(--orange);background:#fff3df}
.ugrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.ucard{background:#fff;border-radius:24px;box-shadow:var(--shadow);padding:12px;display:flex;flex-direction:column;gap:6px;animation:pop .35s}
.utop{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--navy)}.utop b{font-size:1.05rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.unew{display:inline-block;background:#ff4f7f;color:#fff;font-size:.66rem;font-weight:900;border-radius:999px;padding:1px 7px;vertical-align:middle}
.upet{display:block;background:radial-gradient(circle at 50% 70%,#fff,#e7f2fe 70%);border-radius:18px;text-align:center;height:150px}
.upet img{height:140px;max-width:100%;object-fit:contain;margin-top:6px;filter:drop-shadow(0 5px 4px #173b7826);transition:transform .2s}.ucard:hover .upet img{transform:translateY(-4px) rotate(-2deg)}
.uinfo{display:flex;justify-content:space-between;align-items:center;gap:6px;font-weight:700;font-size:.88rem}.uinfo img{width:24px;height:24px;border-radius:50%;vertical-align:middle;margin-right:4px}
.ubtns{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ubtns .btn{text-decoration:none;text-align:center;padding:9px 4px;font-size:.78rem;letter-spacing:-.03em}
.empty{text-align:center;grid-column:1/-1}.empty img{width:120px}
/* stamps */
.stp{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:104px;height:104px;border-radius:28px;background:linear-gradient(150deg,var(--c1),var(--c2));color:#fff;border:4px solid #fff;
  box-shadow:0 5px 0 #173b7826,0 8px 16px #173b7820,inset 0 3px 0 #fff8;transform:rotate(-3deg);position:relative;vertical-align:middle;text-align:center}
.stp:nth-child(even){transform:rotate(3deg)}
.stp i{font-style:normal;font-size:2.6rem;line-height:1.1;filter:drop-shadow(0 2px 0 #0002)}
.stp b{font-size:.7rem;line-height:1.15;text-shadow:0 1px 0 #0003;padding:0 4px;letter-spacing:-.02em}
.stp.sm{width:66px;height:66px;border-radius:18px;border-width:3px}.stp.sm i{font-size:1.6rem}.stp.sm b{font-size:.5rem}
.stp.xl{width:190px;height:190px;border-radius:44px;border-width:6px}.stp.xl i{font-size:5rem}.stp.xl b{font-size:1.15rem}
.scat{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.sgridp{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0}
.sgridp button{border:none;background:none;padding:2px;cursor:pointer}.sgridp button:hover .stp{transform:scale(1.08) rotate(0)}.sgridp button:disabled{opacity:.45;cursor:default}
.sgridp .stp{width:100%;height:auto;aspect-ratio:1}
@media(max-width:600px){.sgridp{display:flex;flex-wrap:wrap;justify-content:center}.sgridp button{width:31%}}
.popbadge .card.mcard:has(.ssheet){max-width:620px}
.sto{display:flex;align-items:center;gap:8px;justify-content:center;font-weight:900;flex-wrap:wrap}.sleft{font-weight:700;margin:6px 0}
.stampfly{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:#173b7840;transition:opacity .5s}.stampfly.out{opacity:0}
.stampfly .sfin{text-align:center;animation:sfly 1.1s cubic-bezier(.2,1.4,.4,1)}.stampfly p{background:#fff;border-radius:999px;padding:8px 16px;font-weight:900;box-shadow:var(--shadow)}
@keyframes sfly{0%{transform:translateY(60vh) scale(.2) rotate(-40deg);opacity:0}60%{transform:translateY(-20px) scale(1.15) rotate(8deg);opacity:1}100%{transform:none}}
.sgrid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sgrid2 .card{margin:0;text-align:center}@media(max-width:700px){.sgrid2{grid-template-columns:1fr}}
.big2{font-size:2.6rem;font-weight:900;color:var(--blue)}.big2 small{font-size:1.2rem;color:#7a8fb5}.sex .big2{color:#e08a00}
.dotbar{display:flex;gap:5px;justify-content:center;margin:4px 0}.dotbar i{width:20px;height:20px;border-radius:50%;background:#e3edf9}.dotbar i.on{background:var(--pink);box-shadow:0 2px 0 #d25d93}
.xbar{height:18px;background:#fff1da;border-radius:999px;overflow:hidden;border:2px solid #ffd9a0;margin:6px 0}.xbar i{display:block;height:100%;background:linear-gradient(90deg,#ffd84d,#ffaa32);border-radius:999px;transition:width .6s}
.xbar.sm{height:12px}
.btn:disabled{background:#c9d3e3!important;box-shadow:none;cursor:default}
.rlist{display:flex;flex-direction:column;gap:8px}
.ritem{display:flex;gap:10px;align-items:center;background:#f7fbff;border-radius:18px;padding:8px 10px}.ritem.isnew{background:#fff4f9;outline:2px solid #ffc6de}
.ritem .rw{flex:1;min-width:0}.ritem .rw a{text-decoration:none;color:var(--navy)}.ritem small{display:block;color:#5a73a3;font-size:.75rem}
/* ranking */
.rhead{text-align:center}.rme{display:flex;gap:14px;align-items:center;justify-content:center;background:var(--sky);border-radius:20px;padding:10px;flex-wrap:wrap}
.rme small{display:block;font-size:.75rem;color:#4a6797}.rme b{font-size:1.5rem;color:var(--blue)}
.rlist2{display:flex;flex-direction:column;gap:6px}
.rrow{display:grid;grid-template-columns:52px 40px 1fr 46px auto;gap:8px;align-items:center;text-decoration:none;color:var(--navy);background:#f7fbff;border-radius:18px;padding:6px 12px;font-weight:700}
.rrow.top{background:linear-gradient(90deg,#fff7d6,#fff)}.rrow.me{outline:3px solid var(--orange);background:#fff3df}
.rrow .rk{font-size:1.5rem;text-align:center;font-weight:900}.rrow .rn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rrow .rp{width:44px;height:44px;object-fit:contain}.rrow .rx{font-weight:900;color:var(--blue);white-space:nowrap}
.cheer{text-align:center;font-weight:900;color:#2fa36a}.rules{line-height:2}
/* challenge */
.chal{background:linear-gradient(160deg,#fff,#eefaf3)}.chal.done{background:linear-gradient(160deg,#fff,#fff6dc)}
.cbar{position:relative;height:30px;background:#e3f3ea;border-radius:999px;overflow:hidden;border:3px solid #bfe9d2;margin:10px 0}.cbar i{display:block;height:100%;background:linear-gradient(90deg,#7fe3ad,#45c987);transition:width .8s}
.cbar span{position:absolute;inset:0;display:grid;place-items:center;font-weight:900;font-size:.9rem;text-shadow:0 1px 0 #fff}.cbar.sm{height:20px;border-width:2px}.cbar.sm span{font-size:.72rem}
.cstats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.cstats div{background:#fff;border-radius:16px;padding:6px}.cstats small{display:block;font-size:.72rem;color:#4a6797}.cstats b{font-size:1.2rem}
.okc{color:#1f9d5c}
.wmis{display:flex;flex-direction:column;gap:8px}.wm{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;background:#f7fbff;border-radius:16px;padding:8px 12px}
.wm.done{background:#fff7e3}.wm.claimed{opacity:.7}.wm.soon{opacity:.7;background:#f4f6fa}.wm .wr{font-weight:900;color:#c77700;font-size:.8rem;text-align:right}
.future{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.future div{background:#f4f6fa;border-radius:16px;padding:10px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.future div>span:first-child{font-size:2rem}
.nitem{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--navy);text-align:left;padding:8px;border-radius:14px;margin:4px 0;background:#f7fbff}.nitem.unread{background:#fff4f9;font-weight:900}
.nitem>span{font-size:1.6rem}.nitem small{display:block;color:#7a8fb5;font-weight:400}
/* profile + visit */
.uprof{display:grid;grid-template-columns:minmax(200px,1fr) 1.4fr;gap:16px;align-items:center}@media(max-width:700px){.uprof{grid-template-columns:1fr}}
.upart{background:radial-gradient(circle at 50% 75%,#fff,#e7f2fe 70%);border-radius:24px;text-align:center;padding:10px}.upart img{max-height:260px;max-width:100%;object-fit:contain;filter:drop-shadow(0 8px 6px #173b7826)}
.floaty{animation:floaty 3s ease-in-out infinite}@keyframes floaty{50%{transform:translateY(-10px)}}
.upb .row{margin:8px 0}.ptab{border-collapse:collapse;width:100%;margin:8px 0}.ptab th{text-align:left;font-size:.8rem;color:#4a6797;padding:6px 8px 6px 0;white-space:nowrap}.ptab td{padding:6px 0}.ptab img{width:28px;height:28px;border-radius:50%;vertical-align:middle}
.umenu{display:flex;gap:6px;justify-content:flex-end}.umenu .btn{font-size:.7rem}
.minroom{display:block;position:relative;max-width:560px;margin:0 auto;text-decoration:none}.minroom .room{aspect-ratio:16/10;height:auto!important}
.mrgo{position:absolute;right:12px;bottom:12px;background:#fff;color:var(--navy);font-weight:900;border-radius:999px;padding:6px 14px;box-shadow:var(--shadow);z-index:2000}
.visit .vbar{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;margin:12px 0}.vpet{display:flex;gap:8px;align-items:center;background:#fff;border-radius:999px;padding:4px 14px 4px 4px;box-shadow:var(--shadow)}.vpet img{width:46px;height:46px;border-radius:50%}
.visit .edtitle{display:flex;align-items:center;gap:6px}
@media(min-width:900px){.visit .room{height:max(460px,calc(100vh - 260px))}}
/* まなぶ social cards */
.soccards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}@media(max-width:820px){.soccards{grid-template-columns:1fr}}
.scard{margin:0;text-decoration:none;color:var(--navy);display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-top:6px solid var(--blue)}.scard h3{margin:0;font-size:1.05rem}
.scard.sc-chal{border-color:var(--green)}.scard.sc-stamp{border-color:var(--pink)}.scard .btn{align-self:flex-start;margin-top:auto}
.scme{font-weight:900}.scme b{font-size:1.8rem;color:var(--blue)}.scme .tag{margin-left:6px;background:#fff3df;color:#c77700}
.sctop{display:flex;flex-direction:column;gap:3px}.sctop span{display:flex;align-items:center;gap:6px;font-size:.85rem}.sctop .sav{width:26px;height:26px;font-size:.9rem}.sctop b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sctop em{font-style:normal;font-weight:900;color:var(--blue)}
.sct{font-size:.9rem}
.rsum{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;margin:6px 0;font-size:1.1rem}
.rsoc{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;background:#fff4f9;border-radius:18px;padding:10px;margin:8px 0}
/* nickname editor */
.nickprev{display:flex;align-items:center;justify-content:center;gap:10px;font-size:1.4rem;font-weight:900;margin:6px 0}
.nickbuild{display:grid;grid-template-columns:1fr 1fr .8fr;gap:6px}.nickbuild select{padding:8px 4px;font-size:.95rem}
.sugg{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:8px 0}.chipbtn{border:2px solid #d6e6fa;background:#fff;border-radius:999px;padding:4px 10px;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}
.avgrid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.avgrid button{border:3px solid transparent;background:none;border-radius:50%;padding:2px;cursor:pointer}.avgrid button.on{border-color:var(--orange)}
.avgrid.sm{grid-template-columns:repeat(16,minmax(0,40px));margin:6px 0}@media(max-width:700px){.avgrid.sm{grid-template-columns:repeat(8,1fr)}}
/* parent toggles */
.psoc{border-top:2px dashed #dbe8f8;padding:12px 0}.ptogs{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media(max-width:700px){.ptogs{grid-template-columns:1fr}}
.ptog{display:flex;gap:10px;align-items:flex-start;background:#f7fbff;border-radius:14px;padding:10px;font-weight:400;margin:0;cursor:pointer}.ptog input{width:22px;height:22px;flex:none;margin-top:2px}.ptog small{display:block;color:#5a73a3;font-size:.78rem}.ptog.dis{opacity:.55}
.warnrow{background:#fff1f1}

/* social polish v9 */
@media(min-width:900px){main{margin-left:max(104px,calc((100vw - 980px)/2))!important;margin-right:auto!important}}
.sto2{font-weight:900;color:var(--navy);text-align:center;margin-top:2px}
.mycard .mc .tag{align-self:flex-start}
@media(max-width:600px){.rrow{grid-template-columns:34px 34px 1fr 36px auto;gap:6px;padding:6px 8px}.rrow .rk{font-size:1.15rem}.rrow .rp{width:36px;height:36px}.rrow .sav{width:34px;height:34px;font-size:1.1rem}.rrow .rn{font-size:.92rem}.rhead h2{font-size:1.25rem}
 .visit .rtop{flex-wrap:wrap}.visit .rtop .edtitle{order:5;flex-basis:100%;justify-content:center;font-size:1.15rem}}

/* v10: avatar = current pet image; ranking row without duplicate pet column; まなぶ has 2 social cards */
.sav.pav{background:radial-gradient(circle at 50% 40%,#fff 0,#E7F2FE 75%);overflow:hidden;padding:0}
.sav.pav img{width:112%;height:112%;object-fit:contain;margin-top:6%}
.rrow{grid-template-columns:52px 48px 1fr auto}.rrow .sav{width:46px;height:46px}
@media(max-width:600px){.rrow{grid-template-columns:34px 42px 1fr auto}.rrow .sav{width:40px;height:40px}}
.soccards{grid-template-columns:repeat(2,1fr)}
@media(max-width:820px){.soccards{grid-template-columns:1fr}}
/* ===== まなぶ: stages (年中〜小6) & category tiles ===== */
.stgcard h2{margin:0 0 6px}.stgcard.first{border:4px dashed #ffd36b;background:#fffaf0}
.stgpick{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;margin:8px 0}
.stgpick button{position:relative;border:3px solid #d6e6fa;background:#fff;border-radius:16px;padding:10px 2px;font:inherit;font-size:1.02rem;font-weight:900;color:var(--ink);cursor:pointer;box-shadow:0 4px 0 #d6e6fa;white-space:nowrap}
.stgpick button.on{background:linear-gradient(180deg,#53a6ff,#2487e8);border-color:#2487e8;color:#fff;box-shadow:0 4px 0 #1a64b0}
.stgpick button.mine:not(.on){border-color:#ffc23d}
.stgpick .mst{position:absolute;top:-10px;right:-4px;font-size:.85rem}
@media(max-width:600px){.stgpick{grid-template-columns:repeat(4,1fr)}}
.stgnote{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fff6d8;border-radius:14px;padding:6px 12px;margin:6px 0}
.subjs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:14px 0}
@media(max-width:600px){.subjs{grid-template-columns:1fr}}
.stile{display:flex;flex-direction:column;align-items:center;gap:2px;background:#fff;border-radius:28px;padding:16px 10px 14px;text-decoration:none;color:var(--ink);box-shadow:0 7px 0 #173b7822,0 10px 20px #173b7814;border:4px solid #fff;transition:transform .12s}
.stile:hover{transform:translateY(-3px)}.stile:active{transform:translateY(3px)}
.stile b{font-size:1.6rem}.stile small{font-weight:700;color:#5a73a3}.stile .muted2{font-size:.78rem;opacity:.85}
.stile.s-kokugo{border-color:#ffc6dc}.stile.s-sansu{border-color:#bcdcff}.stile.s-eigo{border-color:#b4ecc8}
.stile .cimg{width:112px;height:112px;border-radius:28px;font-size:3.6rem}
@media(max-width:600px){.stile{flex-direction:row;justify-content:flex-start;text-align:left;gap:12px;padding:10px 14px}.stile .cimg{width:76px;height:76px;font-size:2.5rem;border-radius:22px;flex:none}.stile b{font-size:1.35rem}.stile small{display:block}}
.cimg{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;width:84px;height:84px;border-radius:24px;flex:none;box-shadow:inset 0 -4px 0 #0000000d,inset 0 3px 0 #fff8}
.cimg i{font-style:normal;font-size:2.7rem;line-height:1;filter:drop-shadow(0 3px 2px #0002)}
.cimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
@media(max-width:600px){.cgrid{grid-template-columns:1fr 1fr;gap:10px}}
.ctile{display:flex;align-items:center;gap:12px;background:#fff;border-radius:24px;padding:10px 12px;text-decoration:none;color:var(--ink);box-shadow:0 5px 0 #173b7820,0 8px 16px #173b7810;transition:transform .12s}
.ctile:hover{transform:translateY(-2px)}.ctile:active{transform:translateY(3px)}
.ctile .ct{display:flex;flex-direction:column;min-width:0;flex:1}.ctile b{font-size:1.08rem;line-height:1.7}.ctile small{color:#5a73a3;font-weight:700;font-size:.78rem}
.ctile.x{background:linear-gradient(180deg,#fffdf4,#fff6dc)}.ctile.kcard{outline:3px solid #ffd36b}
@media(max-width:600px){.ctile{flex-direction:column;text-align:center;padding:12px 8px}.ctile .cimg{width:76px;height:76px}}
.pbar{display:block;height:7px;background:#e8f1fc;border-radius:9px;overflow:hidden;margin:4px 0 0}.pbar i{display:block;height:100%;background:linear-gradient(90deg,#4cd38a,#2bb673);border-radius:9px}
.subjhead{display:flex;align-items:center;gap:14px;margin:4px 0 10px}.subjhead h1{margin:0}.subjhead small{color:#5a73a3;font-weight:700}
.stgtag{display:inline-block;background:#2487e8;color:#fff;border-radius:999px;padding:0 12px;font-size:1rem;vertical-align:middle}
.choices.emo button{font-size:2.8rem;line-height:1.3;padding:14px 4px}
.qprompt.en{font-family:"Nunito","Arial Rounded MT Bold",system-ui,sans-serif}
.sayb{margin-left:auto;background:#fff3c4;color:#7a5200;border:3px solid #ffd36b}
.stile .ct{display:flex;flex-direction:column;align-items:center}.stile .go{display:none}
@media(max-width:600px){.stile .ct{align-items:flex-start;flex:1}.stile .go{display:block;color:#9fb3d6;font-size:1.2rem}}
/* まいにち 10もん + AIせんせいに きく */
.stgline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 2px 10px}.stgline .btn{margin-left:auto}
.daily10{background:linear-gradient(145deg,#fff7e6,#ffe7bf);border:3px solid #FFAA32;position:relative}
.daily10.perfect{background:linear-gradient(145deg,#e9fff3,#c9f3dc);border-color:#45C987}.daily10.fin{border-color:#cdd9e6;background:#fff}
.d10h{display:flex;align-items:center;gap:10px}.d10h h2{margin:0;font-size:1.25rem}.d10em{font-size:2.4rem}
.d10n{margin-left:auto;font-size:2rem;color:#e58a00}.d10n small{font-size:1rem;color:#888}
.d10dots{display:flex;gap:6px;margin:10px 0 6px}.d10dots i{flex:1;height:14px;border-radius:7px;background:#ffffffaa;border:2px solid #ffd59a}
.d10dots i.ok{background:#45C987;border-color:#2fa86b}.d10dots i.ng{background:#FF83BA;border-color:#e0609a}
.d10msg{font-weight:700;margin:8px 0}.daily10 .btn.wide{display:block;text-align:center;text-decoration:none}
.d10res{background:#fff7e6;border-radius:18px;padding:12px;margin:10px 0;display:flex;flex-direction:column;align-items:center;gap:6px}
.d10res.win{background:linear-gradient(145deg,#e9fff3,#c9f3dc);animation:d10pop .6s ease}.d10big{font-size:3.2rem}
@keyframes d10pop{0%{transform:scale(.6)}70%{transform:scale(1.08)}100%{transform:scale(1)}}
.askrow{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:10px 0 0;flex-wrap:wrap}.askai{font-size:1.05rem}
.udemo{display:inline-block;background:#8a7cf0;color:#fff;border-radius:999px;padding:1px 9px;font-size:.78rem;font-weight:800;margin-left:6px;vertical-align:middle}
.demonote{background:#f1eeff;border-radius:12px;padding:6px 10px;margin:6px 0}
.pcard.locked{opacity:.55;filter:grayscale(.6);position:relative}.pcard .plock{position:absolute;top:6px;right:8px;font-size:1.3rem}
.pcard.owned{box-shadow:0 0 0 3px #45C987 inset}
.homesw{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px}.homesw button{display:flex;align-items:center;gap:6px;border:2px solid #d8e6f5;background:#fff;border-radius:999px;padding:4px 12px 4px 4px;font-weight:700;white-space:nowrap}
.homesw button.on{border-color:#2487E8;background:#e8f3ff}.homesw img{width:34px;height:34px;border-radius:50%}
.locknote{background:#fff6d8;border-radius:14px;padding:8px 12px;margin:8px 0;font-weight:700}
.ugrade{display:inline-block;background:#e8f3ff;color:#2487E8;border-radius:999px;padding:0 8px;font-size:.78rem;font-weight:800;margin-left:6px}
.scard[hidden]{display:none}
