/* A compact game-style HUD, with the scene as the main surface. */
.game-viewport{background:radial-gradient(ellipse at 50% 35%,#fffaf2,#e8dcd0);aspect-ratio:1.05;overflow:hidden}
.game-viewport #model-view{inset:0;cursor:grab}
.game-viewport .viewport-top{inset:18px 18px auto;font-size:8px;z-index:3}
.game-viewport .viewport-top>span{background:#fff9efcc;padding:4px 7px;border-radius:12px}
.game-dock{position:absolute;right:13px;top:58px;z-index:5;display:flex;flex-direction:column;gap:4px;padding:5px;background:#fffaf0dc;border:1px solid #bcae9e;border-radius:12px;box-shadow:0 5px 20px #55402a12;backdrop-filter:blur(10px)}
.game-dock button{position:relative;display:grid;place-items:center;width:37px;height:37px;border:0;border-radius:7px;background:transparent;color:#665249;cursor:pointer}
.game-dock button:hover{background:#e9dfd2}.game-dock button[aria-pressed=true],.game-dock button[aria-expanded=true]{background:#292525;color:#fff9ee}
.game-dock svg{width:21px;height:21px}.dock-divider{height:1px;background:#d8cbbd;margin:3px 5px}
.tool-tip{position:absolute;right:47px;top:50%;transform:translateY(-50%);padding:7px 10px;background:#292525;color:#fffaf2;white-space:nowrap;border-radius:5px;font-size:10px;pointer-events:none;visibility:hidden;opacity:0}
.game-dock button:hover .tool-tip,.game-dock button:focus-visible .tool-tip{visibility:visible;opacity:1}
.game-dock #enter-train{display:none}.game-viewport[data-view=walk] #enter-train{display:grid}
.sun-panel{position:absolute;right:72px;top:137px;z-index:6;background:#fffaf3;border:1px solid #baaa99;border-radius:9px;padding:14px;width:175px;box-shadow:0 4px 20px #5b433420}
.sun-panel[hidden]{display:none}.sun-panel label{font-size:11px;display:block;margin-bottom:8px}.sun-panel input{width:100%;accent-color:var(--red)}
.game-hint{position:absolute;bottom:19px;left:20px;right:20px;z-index:2;text-align:center;font:8px/1.5 monospace;letter-spacing:1px;color:#77655a;pointer-events:none}
.game-reticle{display:none;position:absolute;top:50%;left:50%;width:5px;height:5px;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #30282170;z-index:2;pointer-events:none}
.move-stick{display:none;position:absolute;left:23px;bottom:45px;width:80px;height:80px;z-index:4;border:1px solid #fff7e9cc;border-radius:50%;background:#fff7ed33;box-shadow:inset 0 0 0 9px #fff8ee15,0 0 0 1px #57432a22;touch-action:none;cursor:grab;align-items:center;justify-content:center;backdrop-filter:blur(2px)}
.move-stick>span{display:block;width:33px;height:33px;border:1px solid #b7a494;border-radius:50%;background:#fffaf0db;box-shadow:0 2px 6px #4f362b22;pointer-events:none}
.game-viewport[data-view=walk] .move-stick{display:flex}.game-viewport[data-view=walk] .game-reticle{display:block}.game-viewport[data-view=walk] #model-view{cursor:crosshair;touch-action:none}
.game-viewport[data-view=walk] .game-hint{right:74px;color:#fffaf2;background:#302721aa;border-radius:12px;padding:5px 8px;letter-spacing:.4px}
.game-viewport[data-mode=ink]{background:#f8f3e9}.game-viewport button:focus-visible,.move-stick:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.model-unavailable .game-dock,.model-unavailable .game-hint,.model-unavailable .sun-panel,.model-unavailable .move-stick{display:none}
#model-status:empty{display:none}
@media(max-width:560px){.game-viewport{aspect-ratio:.85}.game-viewport .viewport-top{font-size:7px;inset:14px 12px auto;letter-spacing:.4px}.game-dock{top:47px;right:9px;gap:2px;padding:4px;border-radius:10px}.game-dock button{width:34px;height:34px}.game-dock svg{width:19px;height:19px}.game-hint{font-size:7px;letter-spacing:.3px;left:12px;right:12px;bottom:13px}.move-stick{width:70px;height:70px;left:16px;bottom:38px}.sun-panel{right:61px;top:123px;width:155px}.tool-tip{right:42px}.game-viewport #model-view{inset:0}}
@media(max-width:560px){.game-viewport{aspect-ratio:.78}.game-viewport[data-view=walk] .game-hint{display:none}.game-viewport .viewport-top{font-size:6px}}
