:root{font-family:ui-rounded,"Hiragino Maru Gothic ProN","Hiragino Sans",sans-serif;color:#59483d;background:#fff6e9}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.shell{max-width:1100px;margin:auto;padding:18px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-weight:900;color:#a76766;font-size:1.25rem}.sub{font-size:.75rem;color:#937b70}.stats{display:flex;gap:8px;flex-wrap:wrap}.pill{border-radius:99px;background:#fff;border:1px solid #eadaca;padding:7px 12px;font-weight:bold;font-size:.85rem}.world{position:relative;overflow:hidden;margin-top:15px;height:270px;border:5px solid white;border-radius:25px;background:linear-gradient(#e9f8f266,#8bcfa055),url('assets/forest.png') center 60%/cover;box-shadow:0 10px 30px #927b5420}.world:after{content:'';position:absolute;bottom:0;height:40%;width:100%;background:linear-gradient(transparent,#d2e6a5a8);pointer-events:none}.world .sign{position:absolute;left:18px;top:15px;z-index:3;background:#fff9ebed;border-radius:15px;padding:9px 13px;font-weight:bold}.scene{position:absolute;bottom:7%;width:100%;height:75%;z-index:2}.scene canvas{position:absolute;bottom:6%;left:44%;height:160px;width:120px;image-rendering:pixelated;filter:drop-shadow(0 5px 1px #64816466)}.blob{position:absolute;bottom:3%;width:84px;height:56px;background-image:url(assets/punis.png);background-size:400% 400%;background-position:0 var(--row);image-rendering:pixelated;animation:puniFrames 1.5s steps(1) infinite}@keyframes puniFrames{0%,75%,100%{background-position-x:0}25%{background-position-x:33.333%}50%{background-position-x:66.667%}}.rare-icon{width:55px;height:55px;background-size:200% 200%;background-position:0 0;image-rendering:pixelated}.rare-icon.hidden{filter:brightness(0);opacity:.2}.house{position:absolute;right:8%;bottom:10%;font-size:75px;filter:drop-shadow(0 5px 2px #60885d55)}@keyframes bob{50%{transform:translateY(-9px) scale(1.04,.96)}}.main{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;margin-top:16px}.card{background:#fffdf8;border:1px solid #efdfce;border-radius:20px;padding:18px;box-shadow:0 7px 22px #a5896613}.goal{background:#fff4d4;border-color:#f2dfa5}.eyebrow{font-size:.72rem;letter-spacing:.12em;color:#b18a68;font-weight:bold}.card h2{font-size:1.08rem;margin:6px 0}.card p{line-height:1.6;font-size:.88rem;margin:8px 0;color:#806e62}.bar{height:8px;background:#ede5d6;border-radius:99px;overflow:hidden;margin:10px 0}.bar span{display:block;height:100%;background:#efb667;transition:width .3s}.nav{display:flex;gap:7px;overflow:auto;padding:3px 0 10px}.nav button,.btn{border:0;border-radius:12px;background:#f4e9dc;color:#755e50;font-weight:bold;padding:10px 14px;white-space:nowrap}.nav button.on,.btn.primary{background:#d98579;color:#fff}.btn.green{background:#91b69a;color:#fff}.btn.small{font-size:.8rem;padding:8px 11px}.panel{margin-top:15px}.row{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid #f1e9dc}.row:last-child{border:0}.row b{font-size:.93rem}.row small{display:block;color:#988475;line-height:1.5;margin-top:4px}.section-title{font-size:1rem;margin:18px 0 4px}.notice{border-radius:12px;background:#f1f7e9;padding:10px 12px;font-size:.84rem;line-height:1.5;color:#68836b}.side .card+ .card{margin-top:15px}.create{max-width:700px;margin:4vh auto}.intro{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:center}.preview{height:220px;background:#e8f4e4;border-radius:20px;display:grid;place-items:center}.preview canvas{width:150px;height:200px;image-rendering:pixelated}.fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fields label{font-size:.8rem;font-weight:bold}.fields select{display:block;width:100%;margin-top:4px;border:1px solid #e3d5c5;background:white;border-radius:9px;padding:8px}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#5e5148;color:white;padding:10px 18px;border-radius:99px;font-size:.85rem;z-index:10;white-space:nowrap} .info{color:#a88e7d;font-size:.75rem}.equip{color:#b6754e;font-weight:bold}@media(max-width:700px){.shell{padding:10px}.main{grid-template-columns:1fr}.world{height:225px}.side{display:grid;grid-template-columns:1fr;gap:10px}.side .card+.card{margin:0}.intro{grid-template-columns:1fr}.preview{height:155px}.preview canvas{height:150px;width:113px}.fields{grid-template-columns:1fr 1fr}.top{align-items:flex-start;flex-direction:column}.scene canvas{height:130px;width:98px}.house{font-size:60px}.create{margin:0 auto}}

.avatar-palette{border:0;padding:0;margin:5px 0;grid-column:1/-1}.avatar-palette legend{font-size:.8rem;font-weight:bold;margin-bottom:8px}.color-dot{width:34px;height:34px;border:3px solid white;outline:1px solid #e4d4ca;margin:4px 8px 4px 0;background:var(--color);color:#fff;border-radius:50%;text-shadow:0 1px 2px #54434b}.color-dot[aria-pressed=true]{outline:2px solid #a66d80;outline-offset:2px}.color-dot:focus-visible{outline:3px solid #6f657f}.preview{height:290px}.preview canvas{width:210px;height:280px}.create{max-width:820px}.intro{grid-template-columns:240px 1fr}.card a{color:#a16979;font-size:.85rem}@media(max-width:700px){.intro{grid-template-columns:1fr}.preview{height:240px}.preview canvas{width:173px;height:230px}}

/* welcome + dress-up entry (v3) */
.welcome{display:grid;grid-template-columns:260px 1fr;gap:26px;align-items:center;background:linear-gradient(135deg,#fffdf8,#fff3f1)}
.welcome-stage{position:relative;height:320px;border-radius:130px 130px 24px 24px;border:6px solid #fff;background:linear-gradient(#fffbe955,#cfe8a866),url('assets/forest.png') center/cover;display:grid;place-items:end center;overflow:hidden;box-shadow:0 8px 20px #a5896622}
.welcome-stage canvas{width:210px;height:280px;image-rendering:pixelated;margin-bottom:12px}
.welcome-puni{position:absolute;right:14px;bottom:12px;width:72px;height:48px;background:url(assets/punis.png) 0 33.333%/400% 400%;image-rendering:pixelated;animation:puniFrames 1.5s steps(1) infinite}
.welcome h1{font-size:1.6rem;line-height:1.45;margin:8px 0;color:#7a5558}
.btn.big{display:block;text-align:center;text-decoration:none;font-size:1rem;padding:15px;border-radius:16px;margin:16px 0 8px;box-shadow:0 4px 0 #b9665c}
.btn.ghost{display:block;width:100%;background:transparent;border:1px solid #ead8c8;color:#977b6c}
a.btn{text-decoration:none;display:inline-block}
.dress-up{position:absolute;right:14px;top:-6px;z-index:3;background:#fffaf2ee;color:#a5667a;font-weight:bold;font-size:.75rem;text-decoration:none;border-radius:99px;padding:5px 10px;box-shadow:0 3px 8px #6b4d4a22}
@media(max-width:700px){.welcome{grid-template-columns:1fr}.welcome-stage{height:260px;border-radius:26px}.welcome-stage canvas{width:165px;height:220px}}

/* gathering field (v5): punis walk to the trees, chop, and wood flies to the counter */
#field{position:absolute;inset:0;width:100%;height:100%;z-index:1;image-rendering:pixelated;cursor:pointer;filter:none}
.scene canvas#hero{z-index:2}
.field-hint{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);z-index:4;background:#fffaf2e6;color:#7a5a4c;font-size:.75rem;font-weight:bold;border-radius:99px;padding:4px 12px;white-space:nowrap;pointer-events:none;transition:opacity .3s}
.field-hint:empty{opacity:0}
.sound-toggles{position:absolute;right:10px;bottom:10px;z-index:4;display:flex;gap:6px}
.sound-toggles button{border:0;border-radius:99px;background:#fffaf2d9;color:#8a6a5c;font-size:.7rem;font-weight:bold;padding:4px 9px}
.sound-toggles button[aria-pressed=false]{opacity:.6}
.pickup{position:fixed;width:34px;height:34px;z-index:20;pointer-events:none;image-rendering:auto}
.pill.flash{animation:pillFlash .35s ease}
@keyframes pillFlash{30%{background:#f6d7c8;transform:scale(1.08)}}
.house{z-index:1}
@media(max-width:700px){.field-hint{bottom:auto;top:62px;font-size:.7rem}}
/* house levels + bulk feeding (v6) */
.bulk{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.bulk .btn{line-height:1.2;min-width:62px}
.bulk .btn small{font-size:.65rem;font-weight:normal;opacity:.85}
.btn.soft{background:#f4e9dc;color:#755e50}
.row small .short{color:#c9786d;font-weight:bold}
@media(max-width:700px){.row:has(.bulk){flex-direction:column;align-items:stretch}.bulk{justify-content:stretch}.bulk .btn{flex:1}}
@media(max-width:700px){.house{font-size:42px;right:1%;bottom:4%}}
@media(max-width:700px){.main{grid-template-columns:minmax(0,1fr)}}
.toast{max-width:92vw;white-space:normal;text-align:center}
/* expansion art: houses + furniture (v8) */
img.house{position:absolute;right:3%;bottom:4%;width:118px;height:auto;font-size:0;z-index:1;filter:drop-shadow(0 4px 2px #60885d55)}
.with-img{display:flex;align-items:center;gap:10px}
.item-img{width:48px;height:48px;object-fit:contain;flex:none}
.house-img{width:76px;height:64px;object-fit:contain;flex:none}
.mini-img{width:26px;height:26px;object-fit:contain;vertical-align:middle}
@media(max-width:700px){img.house{width:84px;right:1%;bottom:3%}}
/* おうち＝採集エリアのまんなか（以前ギルドがあった場所）。押すと中が見られる（v10） */
.world .home-spot,.world .home-plot{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);z-index:2;border:0;background:none;padding:0;cursor:pointer}
.world .home-spot img{display:block;width:clamp(96px,16vw,150px);height:auto;filter:drop-shadow(0 5px 3px #4f6f4a55);transition:transform .15s}
.world .home-spot:hover img,.world .home-spot:focus-visible img{transform:translateY(-3px) scale(1.03)}
.world .home-spot span{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);white-space:nowrap;font-size:.65rem;font-weight:bold;color:#9a5d6b;background:#fffaf2ee;border-radius:99px;padding:2px 8px;animation:bob 1.6s ease-in-out infinite}
.world .home-spot span:empty{display:none}
.world .home-plot{background:#fffaf2d9;border:2px dashed #c9a27f;border-radius:14px;padding:8px 12px;font-weight:bold;font-size:.75rem;color:#8a6a5c}
.room-modal{position:fixed;inset:0;z-index:30;background:#3e2f2a8c;display:grid;place-items:center;padding:16px}
.room-modal[hidden]{display:none}
.room-card{width:min(660px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;background:#fffaf3;border-radius:22px;padding:14px;box-shadow:0 12px 40px #00000040}
.room-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;color:#7a5558}
.room-close{border:0;border-radius:99px;background:#f4e9dc;color:#755e50;font-weight:bold;padding:6px 14px}
.room-stage{position:relative;isolation:isolate;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#e3bd91 center/100% 100% no-repeat;box-shadow:inset 0 0 0 1px #bb896533}
.room-stage.interior-cottage{background-image:url('assets/home/interior-cottage-v1.png')}
.room-stage.interior-garden{background-image:url('assets/home/interior-garden-v1.png')}
.room-stage.interior-stars{background-image:url('assets/home/interior-stars-v1.png')}
.room-furn{position:absolute;transform:translate(-50%,-100%);height:auto;filter:drop-shadow(0 3px 2px #6b4d3a32);animation:pop .35s ease-out;pointer-events:none}
.room-hero{position:absolute;left:63%;top:97%;width:12%;height:auto;transform:translate(-50%,-100%);image-rendering:pixelated;z-index:100}
.room-puni{position:absolute;left:44%;top:97%;width:11%;aspect-ratio:3/2;transform:translate(-50%,-100%);background:url(assets/punis.png) 0 var(--row)/400% 400%;image-rendering:pixelated;animation:puniFrames 1.5s steps(1) infinite;z-index:101;filter:drop-shadow(0 3px 1px #75553e33)}
.room-companion{font-size:.8rem;line-height:1.6;color:#986975;background:#fff0ed;border-radius:12px;padding:9px 11px;margin:10px 0 0}
.room-companion a{color:#986975;font-weight:bold;display:inline-block;margin-left:8px;text-underline-offset:3px;touch-action:manipulation}
@media(prefers-reduced-motion:reduce){.room-furn,.room-puni{animation:none}}
.room-note{font-size:.8rem;color:#8a7266;line-height:1.6;margin:10px 2px 0}
.room-open{margin-top:12px}
/* Optional companion conversations live outside the resource controls. */
.shell{padding-bottom:112px}
.buddy-float{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));z-index:22;width:76px;height:85px;padding:0;border:0;border-radius:24px;background:linear-gradient(160deg,#fffdf9e8,#ffe6dbe8);box-shadow:0 4px 18px #85575932;cursor:pointer;touch-action:manipulation;color:#815363}
.buddy-float img{position:absolute;left:1px;bottom:14px;width:74px;height:74px;object-fit:contain;filter:drop-shadow(0 3px 2px #79593c24)}
.buddy-float-label{position:absolute;bottom:4px;left:0;right:0;font-size:11px;font-weight:800;letter-spacing:.05em}
.buddy-float-badge{position:absolute;right:-7px;top:-6px;min-width:26px;padding:4px 5px;border-radius:99px;background:#bd738b;color:#fff;font-size:10px;font-weight:800;box-shadow:0 2px 5px #84546833}
.buddy-float:focus-visible,.buddy-bubble button:focus-visible,.buddy-conversation button:focus-visible{outline:3px solid #877cb4;outline-offset:3px}
.buddy-bubble{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:calc(max(12px,env(safe-area-inset-bottom)) + 100px);z-index:24;box-sizing:border-box;width:min(328px,calc(100vw - 24px));max-height:calc(100dvh - 132px);overflow:auto;padding:14px 16px 12px;background:#fffdf8;border:2px solid #ead0d3;border-radius:21px 21px 21px 8px;box-shadow:0 7px 28px #66494d38;animation:buddyBubbleIn .16s ease-out;color:#70555b;font-size:14px;line-height:1.7}
.buddy-bubble-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:13px;color:#a06a7c}
.buddy-bubble-close{width:34px;height:34px;border:0;border-radius:50%;background:#f6ebe8;color:#876a6a;font-size:23px;line-height:1;cursor:pointer;touch-action:manipulation}
.buddy-bubble-text{margin:6px 0 10px;line-height:1.8;overflow-wrap:anywhere}
.buddy-bubble-question{margin:8px 0;font-weight:700;color:#8d6270;font-size:13px}
.buddy-bubble-choices{display:grid;gap:7px;margin-top:10px}
.buddy-bubble-choices button{min-height:42px;padding:9px 10px;border:1px solid #e7c8cc;border-radius:12px;background:#fff4ef;color:#895d68;font:inherit;font-size:13px;font-weight:700;touch-action:manipulation;cursor:pointer}
.buddy-bubble-choices button:hover{background:#ffe8e0}
.buddy-bubble-choices .buddy-gift-claim{background:#bf7c8b;color:white;border-color:#bf7c8b}
.buddy-bubble-memory{margin-top:12px;padding:5px 0;border:0;background:none;color:#9b7082;text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:12px;cursor:pointer;touch-action:manipulation}
.buddy-gift{display:flex;align-items:center;justify-content:center;gap:12px;border-radius:15px;background:#fff0d8;padding:12px;margin:8px 0;color:#8e6e42}
.buddy-gift>span{font-size:35px}.buddy-gift small,.buddy-gift b{display:block}.buddy-gift small{font-size:11px}.buddy-gift b{font-size:15px}
.buddy-gift-note{font-size:11px;color:#997b7b;line-height:1.6;margin:8px 0 0}
.buddy-gift-received{padding:8px 10px;border-radius:11px;background:#edf5e8;color:#6a8a61;font-size:12px;margin:0 0 8px}
.buddy-conversation{margin:14px 0 4px;border:1px solid #ebd8d1;border-radius:18px;padding:16px;background:linear-gradient(135deg,#fffaf6,#fff4f1);color:#7e5e64}
.buddy-welcome{display:flex;align-items:center;gap:13px}.buddy-welcome h3{margin:4px 0;font-size:1.1rem}.buddy-welcome p{margin:4px 0;font-size:.78rem;color:#9d7b80}.buddy-eyebrow{font-size:.7rem;letter-spacing:.06em;color:#ad8a8a}
.buddy-portrait{position:relative;flex:0 0 116px;width:156px;height:150px;margin:4px auto 10px;background:radial-gradient(ellipse at 50% 70%,#fff4e1 0,#fff4e1 42%,transparent 72%);isolation:isolate}
.buddy-portrait img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 3px #80593622);animation:buddyArrive .35s ease-out}
.buddy-welcome .buddy-portrait{width:116px;height:116px;margin:0}
.buddy-spark{position:absolute;right:6%;top:10%;font-size:25px;color:var(--buddy-accent);z-index:1;transform:rotate(10deg)}
.mood-happy img{animation:buddyHappy .55s ease-in-out}.mood-dream .buddy-spark{animation:buddySpark .9s ease-in-out 2}.mood-cozy .buddy-spark{opacity:.65;font-size:20px}
.buddy-new,.buddy-read{display:inline-block;font-size:.7rem;line-height:1.6}.buddy-new{padding:3px 8px;background:#ffe3df;border-radius:99px;color:#b0717d;font-weight:800}.buddy-read{color:#aa8692}
.buddy-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:14px 0 4px}.buddy-actions .btn{min-height:42px;font-size:.8rem;padding:10px 14px}.buddy-actions small{display:inline-block;margin-left:4px}
.buddy-next{font-size:.75rem;line-height:1.8;text-align:center;padding:10px;background:#f7eee7;border-radius:12px;color:#9a7b71;margin:12px 0 0}.buddy-next b{color:#987161}
.buddy-gentle{font-size:.68rem;text-align:center;line-height:1.7;color:#a18b87;margin:12px 0 0}
.buddy-story-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.buddy-story-head .btn{font-size:.73rem;padding:7px 12px}
.buddy-speaker{text-align:center;color:#926c7b;font-size:1rem;margin:4px 0 10px}
.buddy-speech{border:1px solid #ead9d3;border-radius:18px;padding:16px 19px;background:#fffdf9;line-height:1.9;font-size:.9rem;overflow-wrap:anywhere;box-shadow:0 3px 0 #f2e7df}
.buddy-speech p{margin:0}.buddy-speech .buddy-question{margin-top:14px;color:#9d7181;font-weight:700;font-size:.88rem}
.buddy-choice-label{text-align:center;font-size:.72rem;color:#a78a86;margin:16px 0 8px}
.buddy-choices{display:grid;grid-template-columns:1fr 1fr;gap:9px}.buddy-choices .btn{padding:13px 10px;min-height:49px;line-height:1.5;font-size:.82rem;white-space:normal}.buddy-choices span{color:#bf9b9f}
.buddy-your-reply{text-align:center;font-size:.76rem;line-height:1.6;color:#a18a86;margin:0 0 12px}
.buddy-finish{display:block;margin:18px auto 0;min-height:44px;font-size:.82rem}
.buddy-memory-saved{display:grid;place-items:center;width:74px;height:74px;margin:16px auto;border-radius:50%;background:#f9e3df;color:#ba8291;font-size:38px;animation:buddyArrive .3s ease-out}
.buddy-saved-copy{text-align:center;font-size:.8rem;color:#a27d85;line-height:1.9}
.buddy-album-intro{text-align:center;margin:18px 0}.buddy-album-intro h3{font-size:1rem;margin:0}.buddy-album-intro p{font-size:.75rem;color:#a08683;margin:7px 0}
.buddy-album-list{display:grid;gap:8px}.buddy-memory{display:flex;align-items:center;text-align:left;gap:10px;border:1px solid #ead5cd;background:#fffdf8;border-radius:13px;padding:13px 12px;min-height:68px;color:#8d6e72;cursor:pointer;touch-action:manipulation}.buddy-memory>span:nth-child(2){flex:1;min-width:0}.buddy-memory b{display:block;font-size:.8rem;line-height:1.7}.buddy-memory small{display:block;font-size:.68rem;line-height:1.6;font-weight:400;color:#ab9090}.buddy-memory-number{font-size:22px;color:#c299a4}.buddy-memory.is-read{background:#fff4f1}.buddy-memory:disabled{cursor:default;opacity:.6;background:#f3ede8}.buddy-memory:disabled .buddy-memory-number{font-size:16px}.buddy-closet-link{display:block;text-align:center;font-size:.78rem;color:#aa7d8e;margin:14px 0 4px;text-underline-offset:4px}
.room-talk-only{max-width:510px}.room-talk-only .buddy-conversation{margin-top:0}.room-head{position:sticky;top:-14px;padding:8px 0;background:#fffaf3;z-index:105}.room-talk-only .room-head{margin-bottom:5px}
@keyframes buddyArrive{from{opacity:.3;transform:translateY(5px) scale(.96)}to{opacity:1;transform:none}}
@keyframes buddyHappy{0%,100%{transform:none}40%{transform:translateY(-7px) scale(1.03,.97)}70%{transform:scale(.98,1.02)}}
@keyframes buddySpark{50%{opacity:.4;transform:rotate(20deg) scale(1.15)}}
@keyframes buddyBubbleIn{from{opacity:.3;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:400px){.buddy-conversation{padding:12px}.buddy-welcome{gap:7px}.buddy-welcome .buddy-portrait{flex-basis:96px;width:96px;height:104px}.buddy-welcome h3{font-size:.97rem}.buddy-choices{grid-template-columns:1fr}.buddy-speech{padding:13px 15px}.buddy-portrait{width:132px;height:126px}}
@media(prefers-reduced-motion:reduce){.buddy-portrait img,.buddy-spark,.buddy-memory-saved,.buddy-bubble{animation:none!important}}
@keyframes pop{0%{transform:translate(-50%,-100%) scale(.6);opacity:0}100%{transform:translate(-50%,-100%) scale(1);opacity:1}}
/* タブは折り返して全部見えるように（横スクロールしない）・手しごと（v12） */
.nav{flex-wrap:wrap;overflow:visible}
.row.craft{align-items:flex-start}
@media(max-width:700px){.row.craft{flex-direction:column;align-items:stretch}}
/* おかえりなさいカード・星めぐりの確認（v15） */
.away-card{width:min(420px,100%);text-align:center}
.away-title{font-size:1.25rem;font-weight:900;color:#a36c72;margin:6px 0 2px}
.away-sub{font-size:.8rem;color:#8a7266;margin:0 0 12px}
.away-list{display:grid;gap:6px;text-align:left;background:#fbf4ec;border-radius:16px;padding:12px 16px}
.away-list div{display:flex;justify-content:space-between;font-size:.95rem;color:#6d5549}
.away-list b{color:#c9786d}
.away-note{font-size:.82rem;color:#68836b;background:#f1f7e9;border-radius:12px;padding:8px 10px;margin:8px 0 0;text-align:left}
.away-ok{display:block;width:100%;margin-top:14px}
.notice.warn{background:#fff0ea;color:#a0594d}

/* Repeated button taps are game actions; retain scrolling and pinch zoom. */
button, .btn, [role="button"] { touch-action: manipulation; }
/* Collection shop: two bounded, coin-only pools. Motion uses transforms only. */
.gacha-shops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.gacha-card{padding:20px;border:1px solid #e9cbd5;border-radius:22px;background:linear-gradient(150deg,#fff5ef,#fff0f6);min-width:0}.gacha-card.accessory{background:linear-gradient(150deg,#f3f8ff,#f3efff);border-color:#d7cbea}.gacha-heading{display:flex;gap:12px;align-items:center}.gacha-heading>span{font-size:32px}.gacha-heading h3{margin:0 0 4px}.gacha-heading small,.gacha-cost{font-size:11px;color:#79667a}.gacha-cost{display:block;margin-top:9px}.gacha-samples{display:flex;justify-content:center;min-height:155px;align-items:center;margin:8px -12px}.gacha-samples>div{width:33%;text-align:center}.gacha-samples canvas{width:100%;height:auto;display:block}.rarity{color:#957342;font-weight:800;letter-spacing:2px}.rarity.r4,.r4>.rarity{color:#9973be}.rarity.r5,.r5>.rarity{color:#b78121}.gacha-samples .rarity{font-size:10px;letter-spacing:0}.gacha-card p{font-size:12px}.gacha-card>.btn{width:100%}.gacha-card details{margin-top:16px;font-size:12px}.gacha-card summary{cursor:pointer;padding:10px 0}.gacha-content{display:grid;grid-template-columns:30px 1fr 40px;gap:5px;padding:7px 0;border-bottom:1px solid #eadfe7;font-size:11px}.gacha-content .rarity{letter-spacing:0}.gacha-modal{z-index:1000;background:#342c42c9}.gacha-stage{position:relative;background:radial-gradient(ellipse at 50% 38%,#fffef2,#f7e8f0 70%);border:3px solid #e7c7ad;border-radius:30px;width:min(440px,calc(100vw - 28px));max-height:calc(100dvh - 30px);overflow:auto;text-align:center;padding:24px 18px;color:#68536a;box-shadow:0 18px 65px #1b122b50}.gacha-stage.r4{border-color:#b99cd6}.gacha-stage.r5{border-color:#e7c779;background:radial-gradient(ellipse at 50% 38%,#fffef4,#fff0d7 55%,#eedff6)}.gacha-intro{padding:40px 0}.capsule{width:150px;height:160px;margin:30px auto;animation:capsule-sway .5s ease-in-out infinite alternate;filter:none;position:relative}.capsule-top,.capsule-bottom{display:grid;place-items:center;height:80px;border:3px solid #a8809b;font-size:35px;color:#92677e;box-shadow:inset 8px 6px #ffffff80}.capsule-top{border-radius:85px 85px 6px 6px;background:linear-gradient(135deg,#ffecf4,#e9c1dc)}.capsule-bottom{border-radius:6px 6px 80px 80px;background:#fff4df;border-top:0;font-size:20px}.gacha-reward{position:relative;isolation:isolate;animation:reward-arrive .55s ease-out}.gacha-reward h2{font-size:21px;margin:10px 0}.gacha-reward canvas{display:block;height:min(38dvh,330px);width:auto;margin:auto;position:relative}.gacha-reward p{font-size:14px;line-height:1.7}.gacha-reward>small{font-size:11px}.gacha-buttons{display:flex;gap:10px;justify-content:center;margin:14px 0}.gacha-reward .rarity{font-size:24px}.gacha-reward .rarity small{font-size:12px;background:#e7abc2;color:white;padding:4px 9px;border-radius:12px}.gacha-rays{position:absolute;inset:15% 0 25%;z-index:-1;border-radius:50%;background:repeating-conic-gradient(from 0deg,#f9da8b55 0deg 15deg,#fff0 15deg 30deg);animation:ray-open 1.1s ease-out}.gacha-confetti{position:absolute;inset:10% 0 20%;pointer-events:none;z-index:-1}.gacha-confetti i{position:absolute;left:50%;top:50%;font-style:normal;color:#d9ab65;animation:prize-petal 1.6s ease-out both;--angle:calc(var(--i)*30deg)}.r3 .gacha-confetti i:nth-child(n+7){display:none}.gacha-skip{margin:10px auto}[hidden]{display:none!important}
@keyframes capsule-sway{from{transform:translateY(-4px) rotate(-8deg)}to{transform:translateY(4px) rotate(8deg)}}@keyframes reward-arrive{from{transform:translateY(16px) scale(.9);opacity:0}to{transform:none;opacity:1}}@keyframes ray-open{from{transform:rotate(-30deg) scale(.5);opacity:0}to{transform:none;opacity:1}}@keyframes prize-petal{from{transform:rotate(var(--angle)) translateY(0);opacity:1}to{transform:rotate(var(--angle)) translateY(-155px) rotate(50deg);opacity:0}}
@media(max-width:620px){.gacha-shops{grid-template-columns:1fr}.gacha-samples{max-width:320px;margin:4px auto}.gacha-stage{padding:18px 12px}.gacha-buttons .btn{font-size:13px}}
@media(prefers-reduced-motion:reduce){.capsule,.gacha-reward,.gacha-rays,.gacha-confetti i{animation:none!important}.gacha-confetti{display:none}}

/* Persistent adventure souvenirs: two bounded summaries, comfortable on phones. */
.adventure-record{margin:16px 0;padding:15px;border:1px solid #dfdcc0;border-radius:17px;background:linear-gradient(135deg,#fff8e8,#f2f8eb);color:#6d6049}
.adventure-record-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.adventure-record-head h3{margin:3px 0 10px;font-size:1.02rem}
.adventure-trip-count{font-size:1.6rem;color:#927344;text-align:right;line-height:1.1;font-variant-numeric:tabular-nums}
.adventure-trip-count small{display:block;font-size:.68rem;color:#8e8068;margin-top:4px}
.adventure-record-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:4px;border-radius:12px;background:#e9ebda}
.adventure-record-tabs button{border:0;border-radius:9px;padding:9px 5px;font-size:.8rem;font-weight:bold;color:#81785f;background:transparent;touch-action:manipulation}
.adventure-record-tabs button[aria-pressed=true]{color:#795b3c;background:#fffdf6;box-shadow:0 2px 5px #84704a14}
.adventure-record-tabs button:focus-visible{outline:2px solid #b67b55;outline-offset:1px}
.card p.adventure-record-caption{font-size:.77rem;margin:10px 0;color:#7b785c}
.adventure-record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0}
.adventure-record-grid>div{background:#fffdf8;border-radius:10px;padding:10px 8px;min-width:0}
.adventure-record-grid dt{font-size:.68rem;color:#93826a;white-space:nowrap}
.adventure-record-grid dd{margin:5px 0 0;font-size:1.13rem;font-weight:bold;color:#8e6d45;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.adventure-record-grid dd small{font-size:.64rem;font-weight:normal;margin-left:3px}
.adventure-record-rares{margin-top:12px;font-size:.77rem}
.adventure-record-rares>div{display:flex;align-items:center;gap:8px;margin-top:5px}
.adventure-record-rares .rare-icon{width:36px;height:36px;flex-shrink:0}
.adventure-record-rares>div b{margin-left:auto}
.card p.adventure-record-note{font-size:.7rem;line-height:1.6;color:#81775f;margin:11px 0 0}
@media(max-width:380px){.adventure-record{padding:11px}.adventure-record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.legacy-button-icon{width:28px;height:28px;object-fit:contain;vertical-align:middle;margin:-3px 5px -3px 0;pointer-events:none}.nav button .legacy-button-icon{width:24px;height:24px;margin-right:3px}.buddy-bubble-memory .legacy-button-icon{width:22px;height:22px;margin-right:4px}
@media(max-width:700px){.buddy-float{width:64px;height:74px}.buddy-float img{width:62px;height:62px;bottom:13px}.buddy-float-label{font-size:10px}.goal>.btn{display:block;margin-left:auto}.toast{bottom:110px;z-index:25}}

/* Four distinct collections share the same readable price and progress layout. */
.gacha-card.hair{background:linear-gradient(150deg,#f9f8ed,#ecf6e9);border-color:#d1dec6}.gacha-card.face{background:linear-gradient(150deg,#fff5f0,#ffedf3);border-color:#e9cbd5}.gacha-coin-only{display:block;font-size:11px;color:#7e6b72;line-height:1.5;margin-top:9px}.gacha-sample-name{display:block;line-height:1.45;font-size:10px;color:#79667a;padding:3px 4px;min-height:29px}.gacha-content>span>small{font-size:10px;color:#897486}.gacha-heading h3{line-height:1.4}.gacha-samples{align-items:flex-start}.gacha-samples>p{align-self:center}.gacha-samples>div{min-width:0}

.adventure-cheer{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 16px;padding:13px;border:1px solid #e9d4dd;border-radius:15px;background:#fff4f8}.adventure-cheer>div{min-width:0}.adventure-cheer b{font-size:13px;color:#926980}.adventure-cheer small{display:block;margin-top:4px;font-size:11px;line-height:1.5;color:#907480}.adventure-cheer>.btn{flex-shrink:0;min-height:42px}.cheer-reaction{position:absolute;z-index:4;pointer-events:none;left:50%;bottom:19%;padding:9px 14px;border-radius:24px;background:#fff4f6ee;border:1px solid #efc5d5;color:#ab6c8b;font-size:14px;font-weight:700;white-space:nowrap;animation:cheer-float .95s ease-out both;box-shadow:0 3px 12px #a4759222}@keyframes cheer-float{0%{opacity:0;transform:translate(-50%,12px) scale(.9)}20%{opacity:1;transform:translate(-50%,0) scale(1.05)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-22px) scale(1)}}@media(prefers-reduced-motion:reduce){.cheer-reaction{animation:none;transform:translateX(-50%)}}

/* The image squashes; the tappable button and label never move. */
.buddy-float img,.buddy-portrait img,.buddy-preview-sprite img{transform-origin:50% 85%;filter:none;animation:buddyPuniIdle 2.8s ease-in-out infinite;backface-visibility:hidden}
@keyframes buddyPuniIdle{0%,100%{transform:translate3d(0,0,0) scale(1,1)}24%{transform:translate3d(0,-1px,0) scale(.993,1.012)}47%{transform:translate3d(0,1px,0) scale(1.035,.965)}64%{transform:translate3d(0,-3px,0) scale(.982,1.028)}82%{transform:translate3d(0,0,0) scale(1.008,.992)}}
html[data-buddy-motion-paused=true] .buddy-float img,html[data-buddy-motion-paused=true] .buddy-portrait img,html[data-buddy-motion-paused=true] .buddy-preview-sprite img{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.buddy-float img,.buddy-portrait img,.buddy-preview-sprite img{animation:none!important;transform:none!important}}

/* The first keepsake answer remains comfortable above a phone keyboard. */
.buddy-precious-form{width:100%;min-width:0;overflow-wrap:anywhere;margin:12px 0}.buddy-precious-form label{display:block;margin:0 0 8px;font-size:14px;font-weight:700;line-height:1.7;color:#8d6270}.buddy-precious-form [data-buddy-precious-input]{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:48px;margin:0;padding:11px 12px;border:1px solid #dcbac6;border-radius:13px;background:#fffefb;color:#70555b;font-family:inherit;font-size:16px;line-height:1.5;scroll-margin-block:18px;touch-action:manipulation}.buddy-precious-form [data-buddy-precious-input]::placeholder{color:#ad929c;opacity:1}.buddy-precious-form [data-buddy-precious-input]:focus-visible{outline:3px solid #bda5ce;outline-offset:2px}.buddy-precious-form small{display:block;margin:6px 0;font-size:11px;line-height:1.6;color:#987c87}.buddy-precious-form [role=status]{min-height:1.5em;font-size:12px;line-height:1.6;color:#a56e85;overflow-wrap:anywhere}.buddy-precious-form button{min-height:44px;white-space:normal}.buddy-bubble{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-padding-block:14px}.buddy-precious-form .buddy-bubble-choices{margin-top:13px}
.buddy-precious-event .btn.primary,.buddy-precious-form .btn.primary{background:#f3dbe3;border-color:#d4aab9;color:#704552;text-shadow:none}.buddy-precious-event .btn.primary:hover,.buddy-precious-form .btn.primary:hover{background:#eecbd8;border-color:#c993a6;color:#67404f}
