#fhendo-drive-v2-view { --v2-glass:rgba(8,17,12,.58); }
.drive-v2-shell { max-width:760px; margin:0 auto; padding:12px; border:1px solid #6f756f; border-radius:22px; background:#202824; color:#fff; box-shadow:inset 0 0 0 3px #101511,0 14px 35px rgba(0,0,0,.25); }
.drive-v2-topbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:9px; }
.drive-v2-title { display:flex; align-items:center; gap:9px; font:900 .75rem/1 ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; }
.drive-v2-title img { width:30px; height:30px; object-fit:contain; filter:drop-shadow(0 2px 2px rgba(0,0,0,.35)); }
.drive-v2-badge { padding:5px 8px; border:1px solid rgba(255,255,255,.35); border-radius:999px; background:rgba(255,255,255,.1); color:#d7e680; font-size:.53rem; font-weight:900; letter-spacing:.08em; }
.drive-v2-fullscreen { padding:7px 10px; border:1px solid rgba(255,255,255,.35); border-radius:999px; background:rgba(255,255,255,.1); color:#fff; font-size:.56rem; font-weight:900; cursor:pointer; }
.drive-v2-stage { position:relative; overflow:hidden; border:3px solid #111813; border-radius:15px; background:#426b3a; aspect-ratio:4/3; }
#fhendo-drive-v2-canvas { position:absolute; inset:0; }
#fhendo-drive-v2-canvas canvas { display:block!important; width:100%!important; height:100%!important; }
.drive-v2-hud { position:absolute; z-index:4; top:8px; left:8px; display:grid; grid-template-columns:repeat(4,minmax(54px,1fr)); width:min(440px,calc(100% - 126px)); overflow:hidden; border:1px solid rgba(255,255,255,.38); border-radius:12px; background:var(--v2-glass); box-shadow:0 7px 20px rgba(0,0,0,.22); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); pointer-events:none; }
.drive-v2-hud div { min-width:0; padding:6px 8px; border-right:1px solid rgba(255,255,255,.14); }
.drive-v2-hud div:last-child { border:0; }
.drive-v2-hud span { display:block; color:#cfd7cf; font:800 .45rem/1.1 ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; }
.drive-v2-hud strong { display:block; margin-top:3px; color:#fff; font:900 .68rem/1 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:nowrap; }
.drive-v2-message { position:absolute; z-index:4; right:9px; bottom:9px; left:9px; min-height:30px; display:flex; align-items:center; padding:7px 10px; border:1px solid rgba(255,255,255,.32); border-radius:10px; background:var(--v2-glass); color:#fff; font:800 .54rem/1.25 ui-monospace,SFMono-Regular,Menlo,monospace; text-shadow:0 1px 2px #000; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); pointer-events:none; }
.drive-v2-controls { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px 9px 5px; }
.drive-v2-dpad { display:grid; grid-template-columns:repeat(3,48px); grid-template-rows:repeat(3,48px); }
.drive-v2-dpad button,.drive-v2-dpad span { border:0; background:#111713; color:#fff; font-weight:900; touch-action:none; user-select:none; }
.drive-v2-dpad .up { grid-column:2; border-radius:10px 10px 0 0; }.drive-v2-dpad .left { grid-column:1; grid-row:2; border-radius:10px 0 0 10px; }.drive-v2-dpad .center { grid-column:2; grid-row:2; }.drive-v2-dpad .right { grid-column:3; grid-row:2; border-radius:0 10px 10px 0; }.drive-v2-dpad .down { grid-column:2; grid-row:3; border-radius:0 0 10px 10px; }
.drive-v2-actions { display:flex; align-items:center; gap:18px; transform:rotate(-8deg); }
.drive-v2-action-wrap { display:grid; justify-items:center; gap:7px; color:#d7ddd8; font-size:.5rem; font-weight:900; text-transform:uppercase; }
.drive-v2-action { width:68px; height:68px; border:4px solid #747b76; border-radius:50%; font:950 1.25rem/1 Inter,sans-serif; cursor:pointer; touch-action:none; box-shadow:0 7px 0 #090d0a; }
.drive-v2-action.f { background:#fff; color:#111; }.drive-v2-action.h { background:#111; color:#fff; }
.drive-v2-dpad button.held,.drive-v2-dpad button:active,.drive-v2-action.held,.drive-v2-action:active { transform:translateY(3px); filter:brightness(.78); box-shadow:none; }
.drive-v2-note { margin:12px 0 0; padding:12px 14px; border:1px solid var(--line); border-radius:15px; background:#fff; color:var(--muted); font-size:.67rem; line-height:1.5; }
.drive-v2-note strong { color:var(--ink); }
#fhendo-drive-v2-view:fullscreen { width:100vw; height:100vh; padding:0; background:#071009; }
#fhendo-drive-v2-view:fullscreen .drive-v2-shell { position:absolute; inset:0; width:100%; max-width:none; padding:0; border:0; border-radius:0; box-shadow:none; }
#fhendo-drive-v2-view:fullscreen .drive-v2-topbar,#fhendo-drive-v2-view:fullscreen .drive-v2-note { display:none; }
#fhendo-drive-v2-view:fullscreen .drive-v2-stage { position:absolute; inset:0; border:0; border-radius:0; aspect-ratio:auto; }
#fhendo-drive-v2-view:fullscreen .drive-v2-controls { position:absolute; z-index:8; right:max(16px,env(safe-area-inset-right)); bottom:max(16px,env(safe-area-inset-bottom)); left:max(16px,env(safe-area-inset-left)); padding:0; pointer-events:none; }
#fhendo-drive-v2-view:fullscreen .drive-v2-controls button { border-color:rgba(255,255,255,.45); background-color:rgba(8,14,10,.42); box-shadow:0 6px 18px rgba(0,0,0,.24); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); pointer-events:auto; }
#fhendo-drive-v2-view:fullscreen .drive-v2-action.f { background:rgba(255,255,255,.72); color:#111; }
#fhendo-drive-v2-view:fullscreen .drive-v2-action.h { background:rgba(8,12,9,.68); color:#fff; }
#fhendo-drive-v2-view:fullscreen .drive-v2-dpad .center { background:rgba(8,14,10,.42); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
@media (max-width:680px){.drive-v2-shell{padding:7px;border-radius:16px}.drive-v2-stage{aspect-ratio:3/4}.drive-v2-topbar{padding:2px 3px}.drive-v2-hud{grid-template-columns:repeat(2,1fr);width:190px}.drive-v2-hud div:nth-child(2){border-right:0}.drive-v2-hud div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.14)}.drive-v2-controls{padding:13px 2px 4px}.drive-v2-dpad{grid-template-columns:repeat(3,42px);grid-template-rows:repeat(3,42px)}.drive-v2-action{width:58px;height:58px}.drive-v2-actions{gap:9px}}
