/* One shared artboard keeps the same outfit aligned in the fitting room, home and map. */
.otter-look { position: relative; display: block; width: 100%; aspect-ratio: 512 / 298; }
.otter-look img { display: block; position: absolute; max-width: none; height: auto; user-select: none; pointer-events: none; }
.otter-look .otter-base { inset: 0; width: 100%; height: 100%; object-fit: contain; }
/* Register the complete hat sprite to the neutral body's waterline. */
.otter-look[data-hat="true"] .otter-base { top: -1.46%; }
/* These two source canvases are narrower; register the whole sprite uniformly. */
.otter-look[data-look="14"] .otter-base, .otter-look[data-look="15"] .otter-base { transform: translate(-.5%, .7%) scale(1.065); }
.otter-look[data-rig] .otter-rig-body, .otter-look .otter-rig-part { inset: 0; width: 100%; height: auto; max-width: none; }
.otter-rig-glasses { z-index: 2; }
.otter-rig-hat { z-index: 3; }
#home .home-otter.otter-presentation { display: grid; place-items: center; }
.wm-mascot .otter-look { animation: mapOtterFloat 5s ease-in-out infinite; }
.wm-mascot .otter-look img { animation: none; }
.home-customize { position: absolute; z-index: 3; top: 10%; left: 48%; width: 48px; height: 48px; display: grid; place-items: center; border: 2px solid #ffffff; border-radius: 50%; background: #fffdf5; color: #216d6a; box-shadow: 0 3px 0 #d7e2db, 0 5px 14px #10434c14; pointer-events: auto; cursor: pointer; }
.home-customize svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.home-customize:hover { background: #edf5ef; }
.home-customize:focus-visible { outline: 3px solid #216d6a; outline-offset: 4px; }
#home .tabbar button { min-width: 0; flex: 1; }
#home .tabbar .tab-lbl { font-size: clamp(10px, 2.6vw, 12px); letter-spacing: 0; }
.wardrobe-dialog { border: 0; padding: 0; width: min(1120px, calc(100vw - 40px)); height: min(740px, calc(100dvh - 40px)); max-width: none; max-height: none; margin: auto; border-radius: 32px; background: #fffdf3; color: #10434c; overflow: hidden; box-shadow: 0 15px 65px #10434c33; font-family: Nunito, sans-serif; }
.wardrobe-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; animation: wardrobeEnter .24s ease-out; }
.wardrobe-dialog::backdrop { background: #10434c66; backdrop-filter: blur(8px); }
.wardrobe-dialog button { font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.wardrobe-dialog button:focus-visible { outline: 3px solid #155e63; outline-offset: 4px; }
.wardrobe-header { padding: 25px 32px 22px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.wardrobe-eyebrow { margin: 0 0 5px; color: #558477; font-size: 12px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.wardrobe-header h1 { margin: 0; font: 800 36px/.95 'Baloo 2', Nunito, sans-serif; }
.wardrobe-close { display: grid; place-items: center; border: 0; width: 46px; height: 46px; border-radius: 50%; background: #e9f0e4; color: #10434c; font-size: 31px; line-height: 1; flex: 0 0 auto; }
.wardrobe-workspace { display: grid; grid-template-columns: 1.15fr 1fr; min-height: 0; }
.wardrobe-stage { position: relative; min-width: 0; overflow: hidden; background: #b8e8dc; isolation: isolate; container-type: size; }
.wardrobe-stage-copy { position: absolute; left: 32px; right: 28px; top: 26px; z-index: 2; }
.wardrobe-stage h2 { font: 800 28px/1.15 'Baloo 2', sans-serif; margin: 0 0 7px; }
.wardrobe-stage p { font-size: 14px; font-weight: 700; color: #40756e; margin: 0; }
.wardrobe-water { position: absolute; z-index: -1; inset: 36% -35% -28%; border-radius: 50% 50% 0 0; background: #56cdda; box-shadow: 0 -16px 0 #8cddd9, 0 -34px 0 #a0e1d5; transform: rotate(-6deg); }
.wardrobe-otter { position: absolute; width: 89%; left: 5.5%; top: 49%; transform: translateY(-25%); animation: wardrobeFloat 5s ease-in-out infinite; }
.wardrobe-catalog { min-height: 0; padding: 24px 24px 18px; display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; overflow: hidden; }
.wardrobe-tabs { display: flex; gap: 16px; border-bottom: 2px solid #e9eadb; margin-bottom: 8px; }
.wardrobe-progress { font-size: 12px; line-height: 1.4; font-weight: 800; color: #558477; margin: 0 0 10px; }
.wardrobe-tabs button { flex: 1; border: 0; border-bottom: 3px solid transparent; margin-bottom: -2px; padding: 12px 0; background: none; color: #738b7e; font-size: 16px; font-weight: 900; }
.wardrobe-tabs button[aria-selected="true"] { color: #126b6d; border-bottom-color: #259e95; }
.wardrobe-items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; overflow: auto; min-height: 0; align-content: start; padding: 3px; scrollbar-width: thin; scrollbar-color: #a2c3b6 transparent; }
.wardrobe-items[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wardrobe-item { display: flex; flex-direction: column; align-items: center; padding: 8px 6px 10px; gap: 5px; border: 2px solid transparent; border-radius: 18px; color: #335e5b; background: #f1f3e9; min-width: 0; transition: background .15s, transform .15s; }
.wardrobe-item:hover { transform: translateY(-2px); }
.wardrobe-item[aria-pressed="true"] { border-color: #2a9b91; background: #e4f1e7; }
.wardrobe-item-art { position: relative; overflow: hidden; width: 100%; height: 65px; display: grid; place-items: center; }
.wardrobe-item-art img { position: absolute; width: 210%; max-width: none; max-height: none; left: 0; top: -5%; }
.wardrobe-item-art-shirt img { width: 200%; left: -45%; top: 50%; transform: translateY(-60%); }
.wardrobe-item-art-layer img { width: 170%; left: 0; top: -5%; }
.wardrobe-none { font-size: 42px; font-weight: 600; color: #8aa398; }
.wardrobe-item b { font-size: 14px; }
.wardrobe-requirement { display: flex; align-items: center; justify-content: center; gap: 4px; min-height: 16px; font: 800 11px/1.3 Nunito, sans-serif; color: #5d8577; }
.wardrobe-requirement svg { width: 12px; height: 12px; fill: currentColor; flex: none; }
.wardrobe-locked { background: #f0f0e8; color: #63766b; }
.wardrobe-locked .wardrobe-item-art { opacity: .65; filter: saturate(.65); }
.wardrobe-locked:hover { transform: none; background: #e9eee6; }
.wardrobe-locked .wardrobe-requirement { color: #6e796c; }
.wardrobe-status { margin: 15px 0 0; font-size: 14px; color: #9d513a; }
.wardrobe-status:empty { display: none; }
.wardrobe-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 28px 22px; }
.wardrobe-footer > div { display: flex; align-items: center; gap: 18px; }
.wardrobe-footer .wardrobe-clear, .wardrobe-original { min-height: 44px; padding: 12px 0; border: 0; background: none; color: #5c7b70; font-size: 14px; font-weight: 800; }
.wardrobe-footer .wardrobe-apply { min-height: 54px; width: 230px; font-size: 20px; margin: 0; }
.shop-wardrobe { border: 0; background: #dceee1; color: #155b5c; border-radius: 16px; padding: 14px 20px; width: 100%; font: 900 17px Nunito, sans-serif; margin: 0 0 16px; cursor: pointer; }
@keyframes wardrobeFloat { 50% { transform: translateY(calc(-25% - 7px)) rotate(-1deg); } }
@keyframes wardrobeEnter { from { opacity: 0; transform: translateY(14px); } }
@media (max-width: 699px) {
  .wardrobe-dialog { width: calc(100vw - 20px); height: calc(100dvh - 20px); border-radius: 24px; }
  .wardrobe-header { padding: 20px 20px 18px; }
  .wardrobe-header h1 { font-size: 31px; }
  .wardrobe-eyebrow { font-size: 10px; }
  .wardrobe-workspace { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) minmax(165px, .95fr); }
  .wardrobe-stage-copy { top: 18px; left: 20px; right: 15px; }
  .wardrobe-stage h2 { font-size: 22px; margin-bottom: 2px; }
  .wardrobe-stage p { font-size: 12px; }
  .wardrobe-otter { width: min(88%, 420px); left: 50%; top: 46%; translate: -50% 0; }
  .wardrobe-catalog { padding: 8px 18px 15px; }
  .wardrobe-tabs { margin-bottom: 12px; gap: 8px; }
  .wardrobe-tabs button { font-size: 14px; padding: 12px 0; }
  .wardrobe-items { gap: 10px; }
  .wardrobe-item { padding: 5px 10px 10px; gap: 2px; border-radius: 16px; }
  .wardrobe-item b { font-size: 12px; }
  .wardrobe-item-art { height: 74px; }
  .wardrobe-footer { padding: 12px 18px 17px; gap: 10px; flex-wrap: wrap; }
  .wardrobe-footer > div { gap: 15px; }
  .wardrobe-footer .wardrobe-apply { flex: 1; min-width: 135px; width: auto; font-size: 17px; }
  .wardrobe-footer .wardrobe-clear, .wardrobe-original { font-size: 12px; }
}
@media (max-height: 600px) and (min-width: 700px) {
  .wardrobe-header { padding: 18px 25px; }
  .wardrobe-stage-copy { top: 18px; }
  .wardrobe-stage h2 { font-size: 24px; }
  .wardrobe-stage-copy { display: none; }
  .wardrobe-otter { width: min(82%, calc(100cqh * 1.35)); left: 50%; translate: -50% 0; top: 40%; }
  .wardrobe-catalog { padding: 12px 24px; }
  .wardrobe-tabs { margin-bottom: 12px; }
  .wardrobe-item-art { height: 70px; }
  .wardrobe-footer { padding: 12px 24px 17px; }
}
@media (max-width: 699px) and (max-height: 680px) {
  .wardrobe-workspace { grid-template-rows: minmax(90px, .6fr) minmax(215px, 1fr); }
  .wardrobe-stage-copy { display: none; }
  .wardrobe-otter { width: min(78%, calc(100cqh * 1.3)); top: 44%; }
  .wardrobe-catalog { padding: 3px 14px 8px; }
  .wardrobe-tabs { margin-bottom: 8px; }
  .wardrobe-item-art { height: 48px; }
}
@media (min-width: 700px) and (max-height: 450px) {
  .wardrobe-header { padding: 14px 25px; }
  .wardrobe-catalog { padding: 6px 18px; }
  .wardrobe-tabs { margin-bottom: 4px; }
  .wardrobe-tabs button { padding: 6px 0; font-size: 14px; }
  .wardrobe-progress { font-size: 10px; margin-bottom: 4px; }
  .wardrobe-item { padding: 6px 8px; gap: 4px; }
  .wardrobe-item-art { height: 40px; }
  .wardrobe-item-art-glasses img { width: 170%; left: 10%; top: -30%; }
}
@media (prefers-reduced-motion: reduce) { .wardrobe-dialog, .wardrobe-otter, .wm-mascot .otter-look { animation: none !important; } .wardrobe-item { transition: none; } }
.wardrobe-calm .wardrobe-otter, .wardrobe-dialog.wardrobe-calm, .reduce-motion .wm-mascot .otter-look { animation: none; }
