/* The roadside sanctuary is the player's wallet and miniature stage. */
.stall-wallet{position:relative;border:2px solid #f0cb80;background:radial-gradient(ellipse at 95% 0,#ecd78530,transparent 60%),linear-gradient(145deg,#395b4c,#203f3c);box-shadow:0 5px 0 #142e2a,0 0 24px #edc77e20;padding:22px}
.stall-wallet .bbl-kicker{display:inline-block;padding:4px 9px;border-radius:20px;background:#edc77e;color:#34483c;font-weight:800;letter-spacing:1px}.stall-wallet h2{color:#fff0be}.wallet-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wallet-totals>span{min-width:0;padding:12px 9px;border:1px solid #e8d89966;border-radius:14px;background:#102d2a88;box-shadow:inset 0 1px #fff1b933}.wallet-totals b{font-size:clamp(25px,6vw,37px);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-1px;color:#ffe79a;text-shadow:0 2px #9b6938;overflow-wrap:anywhere}.wallet-totals #merit{color:#c7f1c8}.wallet-totals small{color:#e7e8cc}.is-counting{text-shadow:0 0 14px #ffe5a1}
.stat-number{font-weight:800!important;color:#ffe29a;font-variant-numeric:tabular-nums;letter-spacing:.1px}.quick-dock .stat-number{color:#fff0a8;font-size:1.12em}.quick-dock #dock-kit .stat-number{background:#1c3f36;padding:0 3px;border-radius:4px}.record-row output,#final-score,#final-combo,#final-hits{font-variant-numeric:tabular-nums;color:#ffe49d;text-shadow:0 1px 0 #795a3e}
/* Visible selection and a slow glint for the equipped home title. */
.skin-card[aria-pressed=true],.skin-free-card[aria-pressed=true]{border-color:#ffe08c!important;box-shadow:0 0 0 2px #ffe08c,inset 0 0 18px #eec66b30,0 0 14px #eec66b55!important;background:#48604b!important}
#welcome .master-equipped-title{position:relative;overflow:hidden;background:linear-gradient(110deg,#fff1ae,#efc675,#ffe6a0);color:#63452c;box-shadow:0 0 13px #f8d67a77,0 3px 0 #876143;animation:title-glow 3.8s ease-in-out infinite}
#welcome .master-equipped-title::after{content:'';position:absolute;inset:-20% auto -20% -70%;width:40%;background:linear-gradient(90deg,transparent,#fff9d9cc,transparent);transform:skewX(-20deg);animation:title-glint 4.5s ease-in-out infinite;pointer-events:none}
@keyframes title-glow{50%{box-shadow:0 0 23px #f8d67aaa,0 3px 0 #876143}}@keyframes title-glint{0%,50%{transform:translateX(0) skewX(-20deg)}80%,100%{transform:translateX(537.5%) skewX(-20deg)}}
.journey-tabs button,#challenge-list button{font-size:14px!important;line-height:1.35!important}
/* Every owned decoration lives in the same rearrangeable miniature shelf. */
#stall-extension{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;list-style:none;margin:0}
#stall-extension .stall-piece{position:relative;inset:auto!important;width:auto!important;height:auto;min-width:0;min-height:128px;padding:20px 6px 8px;border:1px solid #b7c79c55;border-radius:12px;background:linear-gradient(#45604d88,#233f39);overflow:visible;transform:none!important}
#stall-extension .piece-manage{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;min-height:95px;width:100%;padding:0;background:none;border:0;touch-action:pan-y}
#stall-extension .furnishing-art{width:100%;height:76px;scale:.816;transform-origin:center;flex:none}#stall-extension .furnishing-art svg{width:100%;height:100%;object-fit:contain}
#stall-extension .stall-piece::after{content:attr(data-label);position:static;display:block;font-size:11px;line-height:1.5;text-align:center;color:#e2ddbd;white-space:normal;overflow-wrap:anywhere;pointer-events:none}
#stall-extension .furnishing-level{position:absolute;top:7px;left:7px;right:auto;bottom:auto;display:grid;place-items:center;width:22px;height:22px;min-width:22px;padding:0;border-radius:20px;background:#efd28b;color:#3f5643;font-weight:800;font-size:11px;line-height:1;text-align:center;font-variant-numeric:tabular-nums}
#stall-extension .furnishing-condition{position:static;display:block;width:80%;height:5px;margin:2px auto 4px;border-radius:4px;overflow:hidden;background:#17362d}
.piece-drag-handle{position:absolute;right:2px;top:2px;display:grid;place-items:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:0;border-radius:9px;background:none;color:#f5d895;line-height:1;touch-action:none;cursor:grab;z-index:2}
.piece-drag-handle::before{content:"";position:absolute;inset:0;margin:auto;width:19.2px;height:19.2px;box-sizing:border-box;border:1px solid #becb9b77;border-radius:5.4px;background:#25483f;pointer-events:none}
.piece-drag-handle .piece-drag-icon{position:relative;display:block;width:14.4px;height:14.4px;pointer-events:none}
.piece-drag-handle:hover::before{background:#3b5e4d;border-color:#f5d895}
.stall-piece.is-dragging{opacity:.5}.stall-piece.is-drop-target{outline:3px dashed #ffe3a0;outline-offset:2px;background:#5b7050!important}.piece-drag-handle:active{cursor:grabbing}
.stall-layout-help{margin:0;padding:10px 13px;font-size:11px;line-height:1.7;color:#e9dbaa;background:#2c4a40;border-top:1px dashed #b9c39477}
.stall-drag-preview{position:fixed;list-style:none;z-index:10000;pointer-events:none;translate:-50% -50%;padding:14px;background:#45644ce8;border:2px solid #ffe39a;border-radius:14px;box-shadow:0 12px 24px #092b2970;opacity:.95;transform:rotate(-5deg)}.stall-drag-preview .piece-drag-handle{display:none}.stall-drag-preview .furnishing-art{display:block;width:100%;height:80%;scale:.816}.stall-drag-preview svg{height:100%;width:100%}
/* A clear close control, without automatically focusing its old outline. */
#decor-quick-dialog{padding-top:57px;transform-origin:50% 55%}#decor-quick-title:focus{outline:none}#decor-quick-close{width:44px;height:44px;right:10px;top:10px;display:grid;place-items:center;padding:0;border:2px solid #ffdbab;border-radius:12px;background:#ad615b;color:#fff4cb;box-shadow:0 3px 0 #623f43;font-weight:800}#decor-quick-close .decor-close-icon{display:block;width:20px;height:20px;pointer-events:none}#decor-quick-close{line-height:1}#decor-quick-close:focus:not(:focus-visible){outline:none}#decor-quick-close:hover{background:#c87b65}#decor-quick-close:active{transform:translateY(2px);box-shadow:0 1px 0 #623f43}
#decor-quick-dialog[data-motion=closing]{pointer-events:none}#decor-quick-dialog[data-motion=opening]::backdrop{animation:decor-backdrop-in 260ms ease-out}#decor-quick-dialog[data-motion=closing]::backdrop{animation:decor-backdrop-out 180ms ease-in forwards}
@keyframes decor-backdrop-in{from{opacity:0}to{opacity:1}}@keyframes decor-backdrop-out{from{opacity:1}to{opacity:0}}
@media(max-width:360px){#stall-extension{padding:10px;gap:8px}#stall-extension .stall-piece{padding:20px 4px 6px}#stall-extension .furnishing-art{height:67px}.wallet-totals b{font-size:28px}}
@media(prefers-reduced-motion:reduce){#welcome .master-equipped-title,#welcome .master-equipped-title::after,#decor-quick-dialog::backdrop{animation:none!important}}
#stall-extension .stall-piece::after{animation:none!important;transform:none!important;opacity:1;inset:auto;min-height:2.8em}
.wallet-totals b[data-digits="6"]{font-size:26px;white-space:nowrap}.wallet-totals b[data-digits="7"]{font-size:20px;white-space:nowrap}
#stall-extension .stall-piece{scroll-margin-top:16px;scroll-margin-bottom:calc(var(--dock-space,120px) + 12px)}
@media(max-height:500px) and (min-aspect-ratio:4/3){#decor-quick-dialog[open]{display:grid;grid-template-columns:105px minmax(0,1fr);gap:5px 14px;padding:20px 65px 18px 20px;width:min(700px,calc(100vw - 28px));max-height:calc(100dvh - 24px)}#decor-quick-art{grid-column:1;grid-row:1/6;align-self:center}#decor-quick-title,#decor-quick-detail,#decor-quick-health,#decor-quick-days,#decor-quick-wallet{grid-column:2;margin:0}#decor-quick-dialog .dialog-actions{grid-column:1/-1;margin-top:7px;display:flex;flex-wrap:nowrap;gap:8px}#decor-quick-dialog .dialog-actions button{min-width:0;flex:1;padding:8px 6px}}
/* Dark price ink remains legible on both the gold action and its muted disabled state. */
#decor-quick-upgrade .stat-number{color:#243e33}
#decor-quick-upgrade:disabled{opacity:1;background:#b9b396;color:#33463b;border-color:#c9c3a6;box-shadow:none}

/* Allocate the hero's full width instead of separating two content-sized columns. */
.bbl-intro{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:10px clamp(18px,3vw,40px);align-items:center}
.bbl-intro>div:first-child{grid-column:1;grid-row:1/3;min-width:0}
.bbl-intro .bbl-kicker{max-width:none}
.bbl-intro .intro-note{grid-column:2;grid-row:1;display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;align-self:center;gap:16px;min-width:0;width:100%;max-width:none;padding:0}
.bbl-intro .intro-note>.intro-slipper{grid-column:1;grid-row:1;width:72px;height:72px;margin:0}
.bbl-intro .intro-note p{grid-column:2;grid-row:1;margin:0;line-height:1.8;text-wrap:pretty}
.bbl-intro #ritual-duration{grid-column:2;grid-row:2;display:block;min-width:0;margin:0;padding:7px 12px;border:1px solid #b7c79b55;border-radius:10px;background:#38574855;color:#e2e5c8;font-size:11px;line-height:1.6}
@media(max-width:700px){
 .bbl-intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 16px;align-items:center}
 .bbl-intro>div:first-child{grid-row:1}
 .bbl-intro h1{font-size:clamp(24px,6.9vw,32px);line-height:1.15;letter-spacing:-.02em}
 .bbl-intro .intro-note{grid-template-columns:minmax(0,1fr);gap:5px}
 .bbl-intro .intro-note>.intro-slipper{grid-column:1;grid-row:1;justify-self:end;width:40px;height:40px}
 .bbl-intro .intro-note p{grid-column:1;grid-row:2;font-size:12.1px}
 .bbl-intro #ritual-duration{grid-column:1/-1;grid-row:2;padding:6px 10px}
}

/* Each tab row sticks only while its own content section is being read. */
.stall-collection{min-width:0;scroll-margin-top:0}
#neighbourhood-hub{overflow:visible}
.stall-collection>.stall-tabs,.neighbourhood-inner>.journey-tabs{position:sticky;top:0;z-index:14;align-self:start;isolation:isolate;box-shadow:0 5px 12px #102d2955}
.stall-collection>.stall-tabs{scroll-margin-top:0;background:#193b35}
.neighbourhood-inner>.journey-tabs{background:#23453d}
