/* Shared 3x Figma cutouts contain their full stroke, shadow and transparent margins. */
.game-shell{--wash-scale:1}
.wash-ui{position:absolute;inset:0;z-index:6;pointer-events:none;visibility:hidden;opacity:0;overflow:visible}
.game-shell.playing .wash-ui{visibility:visible;opacity:1}
.game-shell.playing>.hud,.game-shell.playing .fp-label{display:none}
.wash-workflow-slot{position:absolute;left:50%;top:max(calc(16px * var(--wash-scale)),env(safe-area-inset-top));width:calc(524px * var(--wash-scale));height:calc(67px * var(--wash-scale));transform:translateX(-50%);overflow:visible}
.wash-workflow{width:524px;height:67px;display:flex;gap:8px;align-items:center;zoom:var(--wash-scale);pointer-events:none;overflow:visible}
.wash-card{position:relative;width:101px;height:67px;min-width:101px;pointer-events:none;flex-shrink:0;display:block;color:#fff;overflow:visible}
/* Artwork is a sibling of the native hit target, so WebKit cannot clip its corners. */
.wash-card-hit{position:absolute;inset:0;z-index:4;width:101px;height:67px;appearance:none;-webkit-appearance:none;border:0;border-radius:0;padding:0;background:transparent;box-shadow:none;overflow:visible;pointer-events:auto;cursor:pointer}
.wash-card-hit:active{transform:none}.wash-card-hit:hover{filter:none}.wash-card-hit:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:14px}
.wash-card>img,.wash-arrow img{position:absolute;display:block;max-width:none;pointer-events:none}
.wash-card-artwork,.wash-card-done-artwork{left:-5px;top:-5px;width:111px;height:77px}
.wash-card-done-artwork,.wash-card-check{visibility:hidden}
.wash-card.active .wash-card-artwork{top:-4.89px}
.wash-card.done .wash-card-artwork{visibility:hidden}
.wash-card.done .wash-card-done-artwork,.wash-card.done .wash-card-check{visibility:visible}
/* Outlined Figma glyphs include 0.7px outside stroke and the original 1px shadow. */
.wash-card-label{left:26.71234px;top:45.80426px;width:49px;height:14px;z-index:2}
.wash-card-1 .wash-card-label{left:26.94034px;top:45.77984px}
.wash-card-3 .wash-card-label{left:26.46036px;top:45.75641px}
.wash-card.active .wash-card-label{top:45.91426px}
.wash-card-1.active .wash-card-label{top:45.88984px}
.wash-card-3.active .wash-card-label{top:45.86641px}
.wash-tool-art{position:absolute;left:9.25px;top:.67px;width:86px;height:51px;overflow:hidden;pointer-events:none}
.wash-tool-art img{position:absolute;left:0;top:-37.25%;width:100%;height:168.63%;max-width:none;pointer-events:none}
.wash-card-1 .wash-tool-art{left:12.62px;top:0;width:76px;height:45px}.wash-card-1 .wash-tool-art img{inset:0;width:100%;height:100%;object-fit:contain}
.wash-card-3 .wash-tool-art{left:20.87px;top:0;width:60px;height:48px}.wash-card-3 .wash-tool-art img{left:-.38%;top:-17.81%;height:125%}
.wash-card-check{left:83px;top:48px;width:23px;height:23px;object-fit:cover;z-index:3}
.wash-arrow{position:relative;width:24px;height:24px;flex-shrink:0;overflow:visible}.wash-arrow img{left:3.5px;top:0;width:17px;height:25px}
.wash-progress-slot{position:absolute;top:max(calc(97px * var(--wash-scale)),calc(env(safe-area-inset-top) + 81px * var(--wash-scale)));left:calc(50% - 187px * var(--wash-scale));width:calc(369px * var(--wash-scale));height:calc(12px * var(--wash-scale));pointer-events:none}
.wash-progress{position:relative;width:369px;height:12px;border:1px solid #9ba9bf;border-radius:15px;background:rgba(8,32,65,.75);box-shadow:0 1px 0 rgba(0,0,0,.48),inset 0 -.5px .5px rgba(162,132,89,.6),inset 0 .5px .5px #a28459;zoom:var(--wash-scale);overflow:visible}
/* 1px rail border + 1px dark inner padding; the green image stays 8px high. */
.wash-progress-inner{position:absolute;inset:1px;border-radius:18px;overflow:hidden}
.wash-progress-fill{position:absolute;left:0;top:0;width:0;height:8px;border-radius:18px;overflow:hidden}
.wash-progress-fill:after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 -.5px .5px rgba(71,0,0,.15),inset 0 1px 1px rgba(255,254,183,.57)}
.wash-progress-fill img{display:block;width:100%;height:8px;object-fit:fill;border-radius:inherit}
.wash-exit-slot,.wash-settings-slot{position:absolute;top:max(calc(18px * var(--wash-scale)),env(safe-area-inset-top));pointer-events:none}
.wash-exit-slot{left:max(calc(36px * var(--wash-scale)),env(safe-area-inset-left))}.wash-settings-slot{right:max(calc(20.79px * var(--wash-scale)),env(safe-area-inset-right))}
.wash-entry{position:relative;width:39px;height:39px;border:1.115px solid rgba(18,31,54,.75);padding:0;border-radius:11px;background:rgba(18,31,54,.51);box-shadow:0 2.787px 5.574px rgba(0,0,0,.45),inset 0 1.672px .557px rgba(255,255,255,.13);backdrop-filter:blur(1.672px);pointer-events:auto;zoom:var(--wash-scale);display:block}
.wash-entry:before{content:'';position:absolute;inset:-4px;border-radius:inherit}.wash-entry:active{transform:none}
.wash-entry img{position:absolute;display:block;pointer-events:none;max-width:none}
.wash-exit img{left:5.885px;top:5.885px}
.wash-settings-slot{width:calc(41.249px * var(--wash-scale))}.wash-settings{width:41.249px;height:39.019px;border-radius:11.148px}.wash-settings img{left:5.575px;top:4.455px;width:27.871px;height:27.871px;object-fit:contain}
body.entrance-playing .wash-ui,body.capture-mode .wash-ui{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
body.capture-mode .wash-ui{display:none!important}
.wash-ui img{user-select:none;-webkit-user-drag:none}
/* Keep the joystick and first-person tools; hide the removed duplicate lower UI. */
.game-shell .game-bottom{display:none!important}
