body.theme-dollshop{
background:var(--bg);
color:var(--fg);
}

body.theme-dollshop::before{display:none}

body.theme-dollshop .hdr{
background:var(--bg);
backdrop-filter:none;
-webkit-backdrop-filter:none;
border-bottom:2px solid var(--border);
padding:16px 28px;
}

body.theme-dollshop .brand-name{
background:none;
-webkit-background-clip:initial;
background-clip:initial;
color:var(--fg);
font-weight:700;
letter-spacing:.04em;
font-size:17px;
}

body.theme-dollshop .navlink{
text-transform:uppercase;
font-weight:600;
letter-spacing:.12em;
font-size:11px;
color:var(--fg-dim);
border:2px solid transparent;
padding:8px 14px;
border-radius:0;
}
body.theme-dollshop .navlink:hover{
background:var(--accent);
color:var(--bg);
border-color:var(--border);
}

body.theme-dollshop .rank-chip{
border:2px solid var(--border);
background:var(--bg-card);
color:var(--fg);
font-weight:700;
text-transform:uppercase;
letter-spacing:.06em;
font-size:11px;
box-shadow:3px 3px 0 var(--border);
border-radius:0;
}

body.theme-dollshop .icon-btn{
border:2px solid var(--border);
background:var(--bg-card);
color:var(--fg);
border-radius:0;
}

body.theme-dollshop .hero{
text-align:left;
margin-bottom:56px;
padding-bottom:28px;
border-bottom:2px dashed var(--border-soft);
}

body.theme-dollshop .hero-title{
font-weight:800;
letter-spacing:-.035em;
text-transform:uppercase;
line-height:.98;
font-size:clamp(36px,6vw,68px);
}

body.theme-dollshop .accent{
background:var(--accent);
-webkit-background-clip:initial;
background-clip:initial;
color:var(--bg);
padding:0 .12em;
box-shadow:4px 4px 0 var(--border);
display:inline-block;
}

body.theme-dollshop .hero-sub{
font-weight:400;
font-size:17px;
max-width:560px;
margin:18px 0 0;
color:var(--fg-dim);
}

body.theme-dollshop .mode-card{
border:2px solid var(--border);
background:var(--bg-card);
color:var(--fg);
box-shadow:4px 4px 0 var(--border);
border-radius:0;
transition:transform .15s ease,box-shadow .15s ease;
}
body.theme-dollshop .mode-card:hover{
transform:translate(-3px,-3px);
box-shadow:7px 7px 0 var(--border);
border-color:var(--border);
}
body.theme-dollshop .mode-card::after{display:none}
body.theme-dollshop .mode-card h3{
text-transform:uppercase;
letter-spacing:-.01em;
font-weight:800;
font-size:18px;
}
body.theme-dollshop .mode-card p{
color:var(--fg-dim);
}
body.theme-dollshop .mode-icon{
font-size:28px;
filter:none;
}

body.theme-dollshop .stat-box{
border:2px solid var(--border);
background:var(--bg-card);
box-shadow:3px 3px 0 var(--border);
border-radius:0;
}
body.theme-dollshop .lbl{
font-weight:700;
letter-spacing:.12em;
color:var(--fg);
}
body.theme-dollshop .val{
font-weight:800;
color:var(--fg);
}

body.theme-dollshop .primary-btn{
background:var(--accent);
color:var(--bg);
border:2px solid var(--border);
box-shadow:4px 4px 0 var(--border);
font-weight:800;
text-transform:uppercase;
letter-spacing:.06em;
border-radius:0;
}
body.theme-dollshop .primary-btn:hover:not(:disabled){
transform:translate(-2px,-2px);
box-shadow:6px 6px 0 var(--border);
filter:none;
}
body.theme-dollshop .primary-btn:active:not(:disabled){
transform:translate(0,0);
box-shadow:2px 2px 0 var(--border);
}

body.theme-dollshop .ghost-btn{
border:2px solid var(--border);
color:var(--fg);
font-weight:700;
text-transform:uppercase;
letter-spacing:.08em;
font-size:11px;
background:var(--bg-card);
box-shadow:3px 3px 0 var(--border);
border-radius:0;
}
body.theme-dollshop .ghost-btn:hover{
background:var(--accent-2);
color:var(--bg);
border-color:var(--border);
transform:translate(-2px,-2px);
box-shadow:5px 5px 0 var(--border);
}

body.theme-dollshop .game-stage{
background:#1a1512;
border:2px solid var(--border);
box-shadow:6px 6px 0 var(--border);
border-radius:0;
}
body.theme-dollshop .game-stage::before{display:none}
body.theme-dollshop .game-stage::after{display:none}

body.theme-dollshop .stats-strip .stat{
border:2px solid var(--border);
background:var(--bg-card);
color:var(--fg);
box-shadow:4px 4px 0 var(--border);
border-radius:0;
}
body.theme-dollshop .stats-strip .stat .lbl{color:var(--fg)}
body.theme-dollshop .stats-strip .stat .val{color:var(--fg)}

body.theme-dollshop .game-mode-tag{
border:2px solid var(--border);
background:var(--bg-card);
color:var(--fg);
font-weight:700;
text-transform:uppercase;
letter-spacing:.1em;
font-size:11px;
box-shadow:3px 3px 0 var(--border);
border-radius:0;
}

body.theme-dollshop .progress-rail{
border:2px solid var(--border);
background:var(--bg-card);
height:14px;
border-radius:0;
}
body.theme-dollshop .progress-fill{
background:var(--accent);
border-radius:0;
box-shadow:none;
}
body.theme-dollshop .progress-text{
font-weight:700;
color:var(--fg);
}

body.theme-dollshop .result-card{
border:2px solid var(--border);
box-shadow:8px 8px 0 var(--border);
background:var(--bg-card);
color:var(--fg);
border-radius:0;
}
body.theme-dollshop .result-wpm span{
background:none;
-webkit-background-clip:initial;
background-clip:initial;
color:var(--fg);
font-weight:800;
}
body.theme-dollshop .result-wpm small{color:var(--fg-dim)}
body.theme-dollshop .result-rank{
border:2px solid var(--border);
background:var(--accent);
color:var(--bg);
font-weight:800;
border-radius:0;
}
body.theme-dollshop .result-mode{
border:2px solid var(--border);
background:var(--bg-card);
color:var(--fg);
font-weight:700;
text-transform:uppercase;
letter-spacing:.08em;
font-size:11px;
border-radius:0;
}
body.theme-dollshop .result-side .val{color:var(--fg)}
body.theme-dollshop .result-pb{
background:var(--accent-2);
color:var(--bg);
border:2px solid var(--border);
box-shadow:4px 4px 0 var(--border);
border-radius:0;
}
body.theme-dollshop .result-graph{
border:2px solid var(--border);
background:var(--bg-card);
border-radius:0;
}

body.theme-dollshop .game-overlay{
background:color-mix(in srgb,var(--bg) 90%,transparent);
backdrop-filter:none;
-webkit-backdrop-filter:none;
}
body.theme-dollshop .overlay-card{
border:2px solid var(--border);
box-shadow:8px 8px 0 var(--border);
background:var(--bg-card);
color:var(--fg);
border-radius:0;
}
body.theme-dollshop .overlay-card h2{
text-transform:uppercase;
font-weight:800;
color:var(--fg);
}
body.theme-dollshop .overlay-card p{color:var(--fg-dim)}

body.theme-dollshop .toast{
border:2px solid var(--border);
box-shadow:4px 4px 0 var(--border);
font-weight:600;
background:var(--bg-card);
color:var(--fg);
border-radius:0;
}

body.theme-dollshop .board-wrap{
border:2px solid var(--border);
box-shadow:6px 6px 0 var(--border);
background:var(--bg-card);
border-radius:0;
}
body.theme-dollshop .board th{
background:var(--fg);
color:var(--bg);
text-transform:uppercase;
letter-spacing:.14em;
font-weight:700;
border-bottom:none;
}
body.theme-dollshop .board td{
border-bottom:2px solid var(--border-soft);
color:var(--fg);
font-weight:600;
}
body.theme-dollshop .tab{
font-weight:700;
text-transform:uppercase;
letter-spacing:.06em;
font-size:12px;
color:var(--fg-dim);
}
body.theme-dollshop .tab.is-active{
color:var(--fg);
border-bottom-color:var(--accent);
border-bottom-width:3px;
}

body.theme-dollshop .lobby-card{
border:2px solid var(--border);
box-shadow:4px 4px 0 var(--border);
background:var(--bg-card);
color:var(--fg);
border-radius:0;
}
body.theme-dollshop .lobby-card h3{
text-transform:uppercase;
font-weight:800;
letter-spacing:-.01em;
color:var(--fg);
}
body.theme-dollshop .field span{
font-weight:700;
text-transform:uppercase;
letter-spacing:.08em;
font-size:11px;
color:var(--fg);
}
body.theme-dollshop .field input,
body.theme-dollshop .field select{
border:2px solid var(--border);
font-weight:600;
background:var(--bg-card);
color:var(--fg);
box-shadow:2px 2px 0 var(--border);
border-radius:0;
}

body.theme-dollshop .room-panel{
border:2px solid var(--border);
background:var(--bg-card);
color:var(--fg);
box-shadow:4px 4px 0 var(--border);
border-radius:0;
}
body.theme-dollshop .player-list li{
background:var(--bg-soft);
color:var(--fg);
border:2px solid var(--border);
border-radius:0;
}

body.theme-dollshop .screen-title{
text-transform:uppercase;
font-weight:800;
letter-spacing:-.03em;
color:var(--fg);
}
body.theme-dollshop .screen-sub{
font-weight:400;
color:var(--fg-dim);
}

body.theme-dollshop #cursorDot{
background:var(--accent);
box-shadow:0 0 0 2px var(--border);
mix-blend-mode:normal;
border-radius:0;
}
body.theme-dollshop #cursorDot.hover{
background:var(--accent-2);
}

body.theme-dollshop .type-text .ch{
color:rgba(250,246,239,.3);
text-shadow:0 1px 2px rgba(0,0,0,.6);
}
body.theme-dollshop .type-text .ch.ok{
color:#faf6ef;
text-shadow:0 0 8px rgba(212,160,23,.4);
}
body.theme-dollshop .type-text .ch.bad{
color:#ff6b4a;
background:rgba(199,62,29,.4);
border-radius:2px;
}
