:root{--color-base:#252a32;--color-surface:#3b4958;--color-accent:#d2a66e;--color-text:#f4eee4;--color-muted:#bac6d0;--color-inset:#20252c;--color-divider:#536170;--color-control-border:#8895a2;--color-shadow:#181c22;color:var(--color-text);background:var(--color-base);font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--color-control-border);background:var(--color-surface);border-radius:10px;padding:9px 15px}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}button:disabled{cursor:default;opacity:.38}a{color:inherit;text-decoration:none}main{min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.topbar{border-bottom:1px solid var(--color-divider);align-items:center;gap:16px;padding:13px 22px;display:flex}.brand{letter-spacing:-1px;font-size:25px;font-weight:850}.brand span{color:var(--color-accent)}.connection-badge,.eyebrow{letter-spacing:1.5px;color:var(--color-muted);font-size:10px;font-weight:750}.connection-badge{background:var(--color-surface);border-radius:5px;padding:6px 10px}.connection-badge.online{color:var(--color-accent)}.top-actions{gap:8px;margin-left:auto;display:flex}.top-actions button{padding:7px 11px;font-size:12px}.status-strip{min-height:37px;color:var(--color-muted);align-items:center;gap:9px;padding:10px 23px;font-size:12px;display:flex}.status-strip small{color:var(--color-muted);white-space:nowrap;margin-left:auto}.status-dot{background:var(--color-muted);border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-dot.online{background:var(--color-accent)}.join-card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:19px;max-width:490px;margin:7vh auto;padding:32px}.eyebrow{color:var(--color-accent)}.join-card h1{letter-spacing:-1.7px;margin:14px 0 18px;font-size:42px;line-height:1.1}.join-card p{color:var(--color-muted);font-size:15px;line-height:1.65}.join-card small{color:var(--color-muted);margin-top:23px;font-size:12px;display:block}.join-card label{color:var(--color-muted);margin:24px 0 16px;font-size:12px;display:block}.join-card input{background:var(--color-inset);border:1px solid var(--color-control-border);width:100%;font:inherit;color:var(--color-text);border-radius:9px;margin-top:8px;padding:13px;font-size:16px;display:block}.primary{background:var(--color-accent);width:100%;color:var(--color-base);border-color:var(--color-accent);justify-content:space-between;padding:14px 17px;font-weight:750;display:flex}.approval-card{text-align:center;padding:18px}.approval-card strong{letter-spacing:5px;margin:10px;font-size:30px;display:block}.approval-card p{color:var(--color-muted);font-size:12px}.gamepad{touch-action:none;-webkit-user-select:none;user-select:none;opacity:.45;transition:opacity .15s;position:relative;overflow:hidden}.gamepad.active{opacity:1}.pad-button{touch-action:none;-webkit-user-select:none;user-select:none;background:var(--color-surface);min-width:48px;min-height:45px;box-shadow:0 4px 0 var(--color-shadow);border-color:var(--color-control-border);border-radius:12px;font-weight:750}.pad-button.pressed,.dpad.pressed{color:var(--color-base);background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 4px 0 var(--color-shadow)}.pad-button.small{border-radius:7px;min-width:39px;min-height:28px;padding:5px 8px;font-size:10px}.stick-wrap{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.stick{border:1px solid var(--color-control-border);background:radial-gradient(circle,var(--color-surface),var(--color-inset));touch-action:none;border-radius:50%;justify-content:center;align-items:center;width:clamp(86px,13vw,132px);height:clamp(86px,13vw,132px);padding:0;display:flex;position:relative}.stick-guide{border:1px dashed var(--color-control-border);border-radius:50%;position:absolute;inset:18%}.stick-knob{border:1px solid var(--color-control-border);background:linear-gradient(145deg,var(--color-surface),var(--color-base));width:56%;height:56%;color:var(--color-text);pointer-events:none;border-radius:50%;place-items:center;font-size:13px;display:grid;position:absolute;box-shadow:0 5px 10px #0006}.dpad{background:var(--color-surface);border:1px solid var(--color-control-border);touch-action:none;color:var(--color-text);border-radius:16px;grid-template:repeat(3,31px)/repeat(3,31px);place-items:center;padding:5px;display:grid}.dpad .up{grid-area:1/2}.dpad .left{grid-area:2/1}.dpad .middle{grid-area:2/2;font-size:8px}.dpad .right{grid-area:2/3}.dpad .down{grid-area:3/2}.faces{grid-template:repeat(3,37px)/repeat(3,37px);gap:2px;display:grid}.faces button{border-radius:50%;width:43px;min-width:0;height:43px;min-height:0;padding:0;font-size:18px}.face-y{grid-area:1/2}.face-x{grid-area:2/1}.face-b{grid-area:2/3}.face-a{grid-area:3/2}.shoulder{width:23%;position:absolute;top:4px}.shoulder button{border-radius:12px 12px 5px 5px;width:100%;min-height:31px;font-size:12px}.trigger{height:100%;color:var(--color-muted);flex-direction:column;align-items:center;gap:7px;font-size:10px;display:flex}footer{color:var(--color-muted);justify-content:flex-end;align-items:center;gap:12px;padding:4px 22px 10px;font-size:10px;display:flex}footer button{padding:4px 9px;font-size:10px}.rotate-hint{display:none}@media (orientation:portrait){.join-card{margin:35px 20px}.playing>.gamepad{display:none}.rotate-hint{text-align:center;min-height:42vh;color:var(--color-muted);flex-direction:column;justify-content:center;align-items:center;padding:20px;display:flex}.rotate-hint>span{color:var(--color-accent);font-size:54px}.rotate-hint h2{color:var(--color-text);margin:10px;font-size:25px}.rotate-hint p{font-size:14px}.approval-card strong{font-size:25px}.topbar{gap:9px;padding:12px 17px}.brand{font-size:23px}.connection-badge{display:none}.status-strip{padding:10px 17px}footer{padding:15px 17px}}@media (orientation:landscape) and (max-height:430px){.topbar{padding:7px 18px}.brand{font-size:22px}.status-strip{min-height:26px;padding:6px 19px;font-size:10px}.stick{width:88px;height:88px}.dpad{grid-template:repeat(3,26px)/repeat(3,26px);padding:3px}.faces{grid-template:repeat(3,31px)/repeat(3,31px)}.faces button{width:37px;height:37px}.shoulder button{min-height:26px;padding:4px}.approval-card strong{margin:5px;font-size:24px}.approval-card p{margin:5px}}.pad-slot{transform-origin:50%;width:max-content;position:absolute}.pad-slot.shoulder{width:23%}.utility{gap:8px;display:flex}.trigger-slot{height:58%}.trigger-track{touch-action:none;background:var(--color-inset);border-radius:7px;flex:1;width:25px;min-height:35px;padding:0;position:relative;overflow:hidden}.trigger-fill{background:var(--color-accent);pointer-events:none;position:absolute;inset:auto 0 0}.layout-preview-frame{border-bottom:1px dashed var(--color-divider);height:170px;overflow:hidden}.gamepad.layout-preview{opacity:1;transform-origin:0 0;width:200%;height:340px;transform:scale(.5)}.layout-preview .pad-slot button:disabled{opacity:1}.status-message{align-items:center;gap:9px;display:flex}.resume-button{white-space:nowrap;margin-left:auto}.editor-rotation-hint{display:none}.session-panel{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:12px;max-width:900px;margin:12px auto;padding:15px 19px}.session-panel h2,.session-panel h3{margin:0 0 10px;font-size:16px}.session-panel p{color:var(--color-muted);margin:8px 0;font-size:13px}.session-heading,.session-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.session-heading{justify-content:space-between;margin-bottom:10px}.game-list{margin:0;padding:0;list-style:none}.game-list li{border-bottom:1px solid var(--color-divider);justify-content:space-between;align-items:center;gap:12px;padding:7px 0;display:flex}.layout-fields{grid-template-columns:repeat(auto-fit,minmax(152px,1fr));gap:10px 16px;margin:12px 0;display:grid}.layout-fields label{color:var(--color-muted);align-content:start;gap:4px;font-size:12px;display:grid}.layout-fields select{font:inherit;color:var(--color-text);background:var(--color-inset);border:1px solid var(--color-control-border);border-radius:6px;padding:6px}.layout-fields input{width:100%;accent-color:var(--color-accent)}.layout-fields .layout-checkbox{align-items:center;display:flex}.layout-fields .layout-checkbox input{width:auto}.join-card form+.primary,.join-card .primary+.primary{margin-top:10px}@media (max-width:920px){.session-panel{margin:10px 14px}}@media (max-width:380px){.topbar{flex-wrap:wrap}}@media (orientation:landscape){.portrait-only,.session .topbar,.playing .status-strip{display:none}.playing>.gamepad{height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.editor-rotation-hint{color:var(--color-muted);padding:0 22px;display:block}}
