@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
body[data-page=shop]{--shop-accent:#83e5cf;--shop-ink:#102723;--shop-wash:#15312d;--shop-border:#33413f;background:#10151a;color:#f2f0e8;font-family:'DM Sans',sans-serif;margin:0}
body[data-department=teto]{--shop-accent:#ff858b;--shop-ink:#35181f;--shop-wash:#321f27;--shop-border:#50303b}
.shop-main{max-width:1240px;margin:auto;padding:24px 42px 0}body[data-page=shop] *{box-sizing:border-box}.shop-main button,.shop-main a,dialog button,dialog a{touch-action:manipulation}.shop-main button,dialog button{font:inherit;cursor:pointer}.shop-main button:disabled,dialog button:disabled{opacity:.5;cursor:not-allowed}.shop-main a{color:inherit}.shop-main a:focus-visible,.shop-main button:focus-visible,dialog button:focus-visible,dialog a:focus-visible{outline:3px solid var(--shop-accent);outline-offset:5px}.shop-topline{display:flex;justify-content:space-between;gap:16px;font:10px 'IBM Plex Mono',monospace;letter-spacing:1px;color:#a3b5b5}.shop-topline a{text-decoration:none}.text-button{border:0;background:none;color:inherit;padding:0}.shop-masthead{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:38px 0 28px}.shop-kicker{font:10px/1.6 'IBM Plex Mono',monospace;letter-spacing:1.7px;color:#afbbb9;margin:0 0 8px}.shop-masthead h1{font:900 clamp(48px,7.6vw,94px)/.95 'Barlow Condensed',Impact,sans-serif;letter-spacing:-1.5px;margin:0;color:#f2f0e8;white-space:nowrap}.shop-masthead h1 span{color:var(--shop-accent)}.shop-masthead sup{font:12px 'IBM Plex Mono',monospace;vertical-align:top;margin-left:8px}.shop-intro{color:#a8b7b5;font-size:13px;margin:16px 0 0}.xp-wallet{display:flex;flex-direction:column;gap:6px;flex-shrink:0;border:1px solid #465451;background:#18221f;padding:17px 22px;min-width:174px;rotate:3deg;text-decoration:none;box-shadow:5px 5px 0 #0004}.xp-wallet>span{font:8px 'IBM Plex Mono',monospace;letter-spacing:1.1px;color:#b5c6bd}.xp-wallet strong{font:700 40px 'Barlow Condensed',sans-serif;color:#ddf29f}.xp-wallet small{font-size:20px}.department-switch{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:#1c252a;border:1px solid #35413f;padding:4px}.department-switch button{display:flex;align-items:center;gap:12px;background:transparent;color:#c6ceca;border:0;padding:17px 18px;font:700 18px 'Barlow Condensed',sans-serif;text-align:left}.department-switch button>span{font:10px 'IBM Plex Mono',monospace;opacity:.65}.department-switch i{margin-left:auto;font:normal 8px 'IBM Plex Mono',monospace;letter-spacing:1px}.department-switch button[data-department-select=miku][aria-pressed=true]{background:#83e5cf;color:#102723}.department-switch button[data-department-select=teto][aria-pressed=true]{background:#ff858b;color:#35181f}.shop-counter{display:grid;grid-template-columns:1fr 1fr;min-height:420px;overflow:hidden;position:relative;background:var(--shop-wash);border:1px solid var(--shop-border);border-top:0;transition:background .3s,border-color .3s}.counter-copy{padding:34px 42px;position:relative;z-index:2}.counter-open{display:inline-flex;align-items:center;gap:8px;font:8px 'IBM Plex Mono',monospace;letter-spacing:1.2px;border:1px solid var(--shop-accent);padding:7px 10px;color:var(--shop-accent)}.counter-open i{width:5px;height:5px;border-radius:50%;background:var(--shop-accent);box-shadow:0 0 9px var(--shop-accent)}.counter-number{font:9px 'IBM Plex Mono',monospace;letter-spacing:1px;color:#c0ceca;margin:23px 0 10px}.counter-copy h2{font:800 clamp(40px,5vw,66px)/.96 'Barlow Condensed',Impact,sans-serif;letter-spacing:-.6px;margin:0;color:#f7f4e9}.counter-copy>p:not(.counter-number){max-width:340px;font-size:12px;color:#c0ceca;line-height:1.8;margin:16px 0 20px}.shopkeeper-dialog{position:relative;max-width:360px;padding:14px 40px 14px 16px;background:#10151ab3;border-left:3px solid var(--shop-accent)}.shopkeeper-dialog>span{font:8px 'IBM Plex Mono',monospace;letter-spacing:1px;color:var(--shop-accent)}.shopkeeper-dialog p{margin:7px 0 0;font-size:12px;line-height:1.7}.shopkeeper-dialog button{position:absolute;right:10px;top:12px;border:0;background:none;color:var(--shop-accent);font-size:22px}.shopkeeper-stage{position:relative;min-width:0;display:flex;justify-content:center;align-items:flex-end;isolation:isolate;background:repeating-linear-gradient(0deg,transparent,transparent 38px,#ffffff05 39px,#ffffff05 40px)}.shopkeeper-stage:after{content:'';position:absolute;bottom:0;left:0;right:0;height:50px;background:var(--shop-accent);opacity:.12;z-index:-1}.shopkeeper-stage>img{height:390px;width:95%;object-fit:contain;object-position:center bottom;position:relative;z-index:1;filter:drop-shadow(10px 9px 0 #0002);animation:shopkeeper-float 5s ease-in-out infinite;transform-origin:bottom center}.counter-orbit{position:absolute;width:320px;aspect-ratio:1;border:1px solid var(--shop-accent);border-radius:50%;top:40px;background:radial-gradient(circle,var(--shop-accent),transparent 72%);opacity:.22}.counter-orbit:after{content:'';position:absolute;inset:18px;border-radius:50%;border:1px dashed var(--shop-accent);animation:orbit-turn 60s linear infinite}.stage-star{position:absolute;color:var(--shop-accent);font-size:55px;z-index:2;animation:star-tilt 6s ease-in-out infinite}.star-one{top:60px;left:40px}.star-two{top:170px;right:40px;font-size:33px;animation-delay:-3s}.stage-stamp{position:absolute;right:22px;top:20px;writing-mode:vertical-rl;font:9px 'IBM Plex Mono',monospace;letter-spacing:3px;color:var(--shop-accent)}.counter-sign{position:absolute;bottom:17px;left:30px;z-index:3;display:flex;flex-direction:column;background:var(--shop-accent);color:var(--shop-ink);padding:10px 24px;rotate:-4deg;box-shadow:4px 4px 0 #0003}.counter-sign span{font:7px 'IBM Plex Mono',monospace;letter-spacing:1.5px}.counter-sign strong{font:700 25px 'Barlow Condensed',sans-serif}.shelf-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:38px 0 0}.shelf-heading h2{font:700 37px/1 'Barlow Condensed',sans-serif;margin:0}.shelf-filters{display:flex;border-bottom:1px solid #3d4747;gap:4px}.shelf-filters button{padding:12px 13px;background:transparent;border:0;border-bottom:2px solid transparent;color:#b0bfbd;font-size:11px}.shelf-filters button[aria-pressed=true]{color:var(--shop-accent);border-bottom-color:var(--shop-accent)}#owned-count{background:#313b3b;border-radius:20px;padding:2px 6px;margin-left:4px;font-size:9px}.shelf-note{font-size:11px;color:#a6b5b2;margin:14px 0 20px}.shop-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.product-card{--item-accent:#83e5cf;--item-wash:#1d302e;min-width:0;border:1px solid #34403e;background:#151e23;animation:shelf-in .4s ease both}.product-card[data-department=teto]{--item-accent:#ff858b;--item-wash:#32252d}.product-card:nth-child(2){animation-delay:.06s}.product-card:nth-child(3){animation-delay:.12s}.product-art{position:relative;height:210px;overflow:hidden;display:flex;align-items:end;justify-content:center;background:radial-gradient(ellipse at center,var(--item-wash),#141c22 75%);border-bottom:1px solid #34403e}.product-art:before{content:'';position:absolute;bottom:15px;width:150px;height:24px;border:1px solid var(--item-accent);border-radius:50%;opacity:.35}.product-art>img{height:185px;width:80%;object-fit:contain;object-position:center bottom;transition:transform .3s;filter:drop-shadow(0 5px 12px #0004)}.product-card:hover .product-art>img{transform:translateY(-6px)}.product-badge{position:absolute;top:13px;left:13px;z-index:1;font:8px 'IBM Plex Mono',monospace;letter-spacing:.5px;color:var(--item-accent);background:#10151ad9;padding:6px 8px;border:1px solid #ffffff1a}.product-index{position:absolute;right:15px;top:13px;font:9px 'IBM Plex Mono',monospace;color:#a5b1b0}.product-card[data-effect=hologram] .product-art>img{filter:saturate(.65) brightness(1.25) drop-shadow(0 0 10px var(--item-accent));opacity:.8}.product-card[data-type=accent] .product-art{background:linear-gradient(140deg,var(--item-wash),#10171c)}.product-card[data-type=accent] .product-art:before{height:150px;width:115px;bottom:28px;border-radius:12px;opacity:.8;box-shadow:0 0 24px color-mix(in srgb,var(--item-accent) 30%,transparent);background:#ffffff05}.product-card[data-type=accent] .product-art>img{height:140px;margin-bottom:28px;z-index:1}.product-info{padding:20px}.product-type{font:8px 'IBM Plex Mono',monospace;color:var(--item-accent);letter-spacing:1.4px}.product-info h3{font:700 28px 'Barlow Condensed',sans-serif;margin:6px 0 9px}.product-info p{font-size:11px;line-height:1.8;color:#b5bfbc;min-height:60px;margin:0 0 18px}.product-bottom{display:flex;gap:10px;align-items:center;justify-content:space-between;border-top:1px dashed #45504b;padding-top:16px}.product-price{font:600 24px 'Barlow Condensed',sans-serif;white-space:nowrap}.product-price small{font:9px 'IBM Plex Mono',monospace;color:#a1b0ad}.product-bottom button{border:1px solid var(--item-accent);background:transparent;color:var(--item-accent);padding:10px 15px;font:500 10px 'IBM Plex Mono',monospace;transition:background .2s,color .2s}.product-bottom button:hover{background:var(--item-accent);color:#10151a}.product-bottom button[data-equipped=true]{background:var(--item-accent);color:#10151a}.locker-empty{grid-column:1/-1;text-align:center;padding:56px 20px;border:1px dashed #475451;color:#b4c5c0;line-height:1.8}.locker-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:26px 0 36px;border:1px solid #35433e;padding:20px;background:#18211f}.locker-controls strong{font-size:12px}.locker-controls p{font-size:11px;color:#a2b5ad;line-height:1.8;margin:7px 0 0}.locker-controls>div:last-child{display:flex;gap:10px;flex-wrap:wrap}.locker-controls button{background:none;border:1px solid #5c6f64;padding:10px 12px;font-size:10px;color:#c4d3c7}.shop-faq{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;border-top:1px solid #35413f;padding-top:28px}.shop-faq span{font:9px 'IBM Plex Mono',monospace;color:var(--shop-accent)}.shop-faq h3{font:600 24px 'Barlow Condensed',sans-serif;margin:10px 0}.shop-faq p{font-size:11px;color:#a5b6af;line-height:1.9}.shop-footer{display:flex;justify-content:space-between;gap:20px;margin-top:30px;padding:20px 0;font:8px/1.7 'IBM Plex Mono',monospace;letter-spacing:.7px;color:#8ca299;border-top:1px solid #35413f}#shop-status{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:20;width:max-content;max-width:calc(100% - 32px);padding:14px 20px;border:1px solid var(--shop-accent);background:#101b19;color:#eef8ef;font-size:12px;box-shadow:0 8px 30px #0007}#shop-status[hidden]{display:none}
body[data-page=shop] dialog{--shop-accent:#83e5cf;color:#f2f0e8;font-family:'DM Sans',sans-serif;max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #6e8980;border-radius:0;padding:0;background:#111a1d;box-shadow:0 30px 100px #000a}body[data-department=teto] dialog{--shop-accent:#ff858b}body[data-page=shop] dialog::backdrop{background:#07100fee;backdrop-filter:blur(12px)}.shop-entrance{width:min(860px,calc(100% - 32px))}.entrance-header{display:flex;justify-content:space-between;align-items:center;padding:15px 24px;border-bottom:1px solid #34493f;font:9px 'IBM Plex Mono',monospace;letter-spacing:1px}.entrance-header button,.item-close{border:0;background:none;color:#e2e9dc;font-size:27px;min-width:40px;min-height:40px}.shop-entrance>h2{font:800 clamp(42px,6vw,64px)/.95 'Barlow Condensed',sans-serif;text-align:center;margin:30px 20px 14px;letter-spacing:-.5px}.shop-entrance em{font-style:normal;color:#cae7b8}.shop-entrance>p{text-align:center;font-size:12px;color:#a9bcb0;margin:0 20px 22px}.entrance-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 24px 22px}.entrance-choices button{position:relative;isolation:isolate;min-height:310px;overflow:hidden;display:flex;align-items:start;justify-content:end;flex-direction:column;gap:8px;text-align:left;padding:22px;border:1px solid #568f7e;background:linear-gradient(140deg,#23483e,#14251f);color:#c9f5df}.entrance-choices button[data-enter=teto]{background:linear-gradient(140deg,#49232c,#25171d);border-color:#a25a66;color:#ffbec0}.entrance-choices img{position:absolute;right:-12%;bottom:0;height:290px;width:95%;object-fit:contain;z-index:-1;opacity:.8;transition:transform .3s;filter:drop-shadow(0 10px 20px #0005)}.entrance-choices button:before{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(0deg,#09100de0,transparent 90%);pointer-events:none}.entrance-choices span,.entrance-choices strong,.entrance-choices small{z-index:1;position:relative}.entrance-choices button:hover img{transform:translateY(-8px) rotate(3deg)}.entrance-choices span{font:8px 'IBM Plex Mono',monospace;letter-spacing:1px}.entrance-choices strong{font:800 42px 'Barlow Condensed',sans-serif}.entrance-choices small{font:9px 'IBM Plex Mono',monospace;border-bottom:1px solid currentColor;padding-bottom:5px}.entrance-footnote{display:block;text-align:center;font:8px 'IBM Plex Mono',monospace;letter-spacing:1px;margin:0 20px 24px;color:#8fa99a}.shop-item-dialog{width:min(750px,calc(100% - 32px))}.shop-item-dialog[open]{display:grid;grid-template-columns:1fr 1fr}.item-close{position:absolute;top:6px;right:7px;z-index:2}.item-preview{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:35px 20px;min-height:420px;background:radial-gradient(ellipse,#2b4e43,#121f1c);overflow:hidden}.item-preview[data-department=teto]{background:radial-gradient(ellipse,#4c2937,#21161d)}.item-preview>img{height:260px;width:100%;object-fit:contain;transform-origin:center bottom}.item-preview[data-effect=hologram]>img{filter:brightness(1.2) saturate(.65) drop-shadow(0 0 10px var(--shop-accent));opacity:.8}.item-preview.is-animated>img{animation:shop-preview-bop .45s ease-in-out infinite}.preview-label{font:8px 'IBM Plex Mono',monospace;letter-spacing:1px;color:#c9d5ca;position:absolute;top:20px;left:20px}.item-preview>button{background:#101914;border:1px solid #77917e;padding:9px 12px;color:#d0e0cf;font:10px 'IBM Plex Mono',monospace;margin-top:20px}.item-detail{padding:52px 28px 28px}.item-detail h2{font:700 39px/1 'Barlow Condensed',sans-serif;margin:8px 0 18px}.item-detail>p:not(.shop-kicker){font-size:12px;line-height:1.8;color:#c0c9bf}.item-receipt{border-top:1px dashed #56705e;border-bottom:1px dashed #56705e;padding:12px 0;margin:20px 0}.item-receipt>div{display:flex;justify-content:space-between;gap:12px;font-size:11px;line-height:2.4}.shop-buy{display:block;width:100%;padding:14px 15px;border:0;background:var(--shop-accent);color:#10231a;font:700 13px 'DM Sans',sans-serif}.earn-link{display:block;text-align:center;margin-top:16px;font-size:10px;color:#b3c7b6}.shop-counter.is-entering .counter-copy,.shop-counter.is-entering .shopkeeper-stage{animation:shelf-in .4s ease both}
@keyframes shopkeeper-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-7px) rotate(1deg)}}@keyframes star-tilt{50%{transform:rotate(18deg) scale(.85)}}@keyframes orbit-turn{to{rotate:360deg}}@keyframes shelf-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shop-preview-bop{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(5px) scale(1.03,.97)}75%{transform:translateY(-5px) scale(.98,1.02)}}
@media(max-width:900px){.shop-main{padding:20px 24px 0}.department-switch i{display:none}.counter-copy{padding:28px}.shopkeeper-stage>img{height:350px}.shop-products{gap:12px}.product-info{padding:15px}.product-info h3{font-size:25px}.product-bottom button{padding:10px}.shop-faq{gap:20px}.xp-wallet{min-width:140px;padding:14px}.shop-masthead h1{font-size:66px}.shop-counter{min-height:400px}.star-one{left:10px}.star-two{right:10px}.counter-orbit{width:260px}.locker-controls{align-items:start;flex-direction:column}}
@media(max-width:620px){.shop-main{padding:18px 16px 0}.shop-topline{font-size:8px;letter-spacing:0}.shop-masthead{padding-top:28px;gap:14px;align-items:start}.shop-masthead h1{font-size:clamp(37px,9vw,56px);white-space:normal;letter-spacing:-.8px}.shop-masthead h1 span{display:block}.shop-masthead sup{display:none}.shop-kicker{font-size:8px;letter-spacing:1px}.shop-intro{font-size:11px;line-height:1.6;max-width:210px}.xp-wallet{min-width:110px;padding:11px;rotate:2deg}.xp-wallet>span{font-size:6px;letter-spacing:.5px}.xp-wallet strong{font-size:32px}.department-switch button{font-size:14px;padding:13px 8px;gap:6px}.department-switch button>span{font-size:8px}.shop-counter{grid-template-columns:1fr}.counter-copy{padding:25px 24px 14px}.counter-copy h2{font-size:48px}.counter-copy>p:not(.counter-number){margin:12px 0}.counter-number{margin-top:18px}.shopkeeper-dialog{max-width:none}.shopkeeper-stage{height:245px}.shopkeeper-stage>img{height:260px;width:85%}.counter-orbit{width:220px;top:10px}.star-one{left:45px;top:25px;font-size:40px}.star-two{right:45px;top:100px}.counter-sign{left:22px;bottom:14px}.counter-sign strong{font-size:21px}.shelf-heading{align-items:start;flex-direction:column;gap:15px;margin-top:30px}.shelf-heading h2{font-size:34px}.shelf-filters{width:100%}.shelf-filters button{flex:1}.shelf-note{font-size:10px;line-height:1.7}.shop-products{grid-template-columns:1fr}.product-art{height:245px}.product-art>img{height:220px}.product-info{padding:20px}.product-info p{min-height:0}.shop-faq{grid-template-columns:1fr;gap:15px}.shop-faq h3{margin:6px 0}.shop-footer{flex-direction:column;font-size:7px;gap:10px}.entrance-header{padding:8px 14px;font-size:8px}.shop-entrance>h2{margin-top:22px;font-size:40px}.shop-entrance>p{font-size:11px;line-height:1.7}.entrance-choices{gap:8px;margin:0 12px 18px}.entrance-choices button{min-height:240px;padding:14px 10px}.entrance-choices strong{font-size:32px}.entrance-choices img{height:215px;right:-20%;width:120%}.entrance-choices span,.entrance-choices small{font-size:7px;letter-spacing:0}.entrance-footnote{font-size:7px;line-height:1.7}.shop-item-dialog[open]{grid-template-columns:1fr}.item-preview{min-height:260px;padding:35px 20px 20px}.item-preview>img{height:180px}.item-preview>button{margin-top:10px}.item-detail{padding:25px}.item-detail h2{font-size:34px}.item-close{background:#111a1d99}.locker-controls{margin-bottom:25px}}
@media(prefers-reduced-motion:reduce){body[data-page=shop] *,body[data-page=shop] *:before,body[data-page=shop] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.shop-entrance[open]{animation:shelf-in .35s ease both}
@media(prefers-reduced-motion:reduce){.shop-entrance[open]{animation:none}}
/* Uploaded transparent cutouts keep their original color and alpha in the existing shop UI. */
.shopkeeper-stage>img,.entrance-choices img,.product-art>img,.item-preview>img{mix-blend-mode:normal;background:transparent}
