@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;src:url('./assets/fonts/dm-sans-latin.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('./assets/fonts/space-grotesk-latin.woff2') format('woff2')}
:root{color-scheme:dark;font-family:'DM Sans',sans-serif;background:#10141b;color:#f0eee8;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:72px;border-bottom:1px solid #ffffff13;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:#12171f}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:37px;height:37px;border:1px solid #ef6e4d;color:#ef6e4d;border-radius:11px;display:grid;place-items:center;font-size:24px;line-height:1}.brand div{display:flex;flex-direction:column;gap:1px}.brand strong{font:700 18px 'Space Grotesk',sans-serif;letter-spacing:-.04em}.brand span:last-child{color:#77838d;font-size:9px;font-weight:700;letter-spacing:.19em}.top-status,.live-chip,.scene-chip{font-size:10px;font-weight:700;letter-spacing:.14em}.top-status{display:flex;align-items:center;gap:10px;color:#8e9ca3}.status-dot,.scene-chip-dot{width:6px;height:6px;border-radius:50%;background:#70d7c3;box-shadow:0 0 12px #70d7c3}.workspace{display:grid;grid-template-columns:350px minmax(0,1fr);flex:1;min-height:calc(100vh - 72px)}.panel{padding:38px 30px 20px;border-right:1px solid #ffffff13;display:flex;flex-direction:column;background:#141a22;overflow-y:auto}.eyebrow{color:#e16c52;font-size:10px;font-weight:700;letter-spacing:.23em}.panel h1{font:700 clamp(38px,3.7vw,56px)/.99 'Space Grotesk',sans-serif;letter-spacing:-.065em;margin:14px 0 15px}.panel h1 em{color:#ef7956;font-style:normal}.intro{color:#9ba6ad;font-size:13px;line-height:1.65;max-width:250px;margin:0 0 24px}.panel-section{border-top:1px solid #ffffff18;padding:20px 0 22px}.section-heading{display:flex;align-items:center;gap:12px;margin-bottom:17px}.section-heading span{font:600 10px 'Space Grotesk',sans-serif;color:#e4765a}.section-heading h2{font:600 13px 'Space Grotesk',sans-serif;letter-spacing:.015em;margin:0}.scene-switch{display:grid;grid-template-columns:1fr 1fr;padding:4px;gap:4px;background:#0e131a;border:1px solid #ffffff12;border-radius:11px}.scene-switch button{border:0;background:transparent;color:#89959f;padding:11px 5px;border-radius:8px;cursor:pointer;font:600 12px 'DM Sans',sans-serif}.scene-switch button.active{color:#f5f2ed;background:#303b44;box-shadow:0 2px 8px #0004}.setting-help{font-size:11px;color:#75838c;line-height:1.5;margin:11px 0 0}.button-row{display:flex;gap:8px}.primary-button{height:43px;flex:1;border:0;background:#ef7655;color:#171b20;border-radius:9px;font:700 12px 'DM Sans',sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px}.primary-button:hover{background:#ff8967}.primary-button #play-icon{font-size:13px}.reset-button{width:43px;height:43px;border:1px solid #ffffff22;background:#232c35;color:#dce2e4;border-radius:9px;font-size:23px;cursor:pointer}.reset-button:hover{background:#303c47}.speed-control{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;font-size:12px;color:#b5bdc2}.speed-control select{background:#202932;border:1px solid #ffffff22;color:#e7ecee;border-radius:7px;padding:7px 9px;font:600 11px 'DM Sans',sans-serif;cursor:pointer}.slider-setting{margin:0 0 17px}.slider-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600}.slider-head output{color:#ef947c;font:600 11px 'Space Grotesk',sans-serif}.slider-setting input{appearance:none;width:100%;height:4px;background:#39454d;border-radius:6px;margin:14px 0 7px;cursor:pointer;accent-color:#f17b5a}.slider-setting input::-webkit-slider-thumb{appearance:none;width:13px;height:13px;border:3px solid #ef7655;background:#171d24;border-radius:50%;box-shadow:0 0 0 3px #ed765525}.slider-setting input::-moz-range-thumb{width:9px;height:9px;border:3px solid #ef7655;background:#171d24;border-radius:50%}.slider-setting p{margin:0;color:#73818b;font-size:10px;line-height:1.45}.panel-footer{margin-top:auto;padding-top:12px;color:#667780;font-size:10px;display:flex;align-items:center;gap:8px}.footer-symbol{font-size:18px;color:#cd7359}.viewport-wrap{position:relative;min-height:600px;overflow:hidden;background:#171e26}.viewport{position:absolute;inset:0}.viewport canvas{display:block;width:100%;height:100%;touch-action:none}.viewport-top,.viewport-bottom{position:absolute;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.viewport-top{top:25px}.scene-chip{display:flex;align-items:center;gap:9px;color:#ccd4d5;padding:9px 11px;background:#141b23c7;border:1px solid #ffffff20;border-radius:7px}.scene-chip-dot{width:5px;height:5px}.live-chip{color:#f2ba9b;background:#28252ab8;border:1px solid #f1926e47;border-radius:7px;padding:9px 11px}.live-chip.playing{color:#a1e8d9;border-color:#70d7c361;background:#19302eb8}.viewport-bottom{bottom:23px;align-items:end}.hint{color:#a1adb4;display:flex;align-items:center;gap:10px;font-size:11px;background:#141b23bc;border:1px solid #ffffff14;border-radius:7px;padding:10px 12px}.hint-icon{font-size:15px;color:#ed8968}.stats{display:flex;align-items:center;gap:15px;background:#141b23d9;border:1px solid #ffffff1a;border-radius:9px;padding:11px 15px}.stats span{display:flex;align-items:baseline;gap:5px}.stats b{font:600 15px 'Space Grotesk',sans-serif;color:#f6f2e9}.stats small{font-size:8px;color:#7f8f98;letter-spacing:.12em;font-weight:700}.stats i{height:16px;border-left:1px solid #ffffff26}.error-message{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);max-width:450px;background:#301f22;border:1px solid #f48b78;color:#fff0ec;padding:18px 22px;border-radius:10px;line-height:1.5}.error-message[hidden]{display:none}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #75dbc6;outline-offset:3px}@media(max-width:850px){.workspace{display:flex;flex-direction:column}.viewport-wrap{order:-1;min-height:min(67vh,620px)}.panel{border-right:0;border-top:1px solid #ffffff1a;display:block;padding:26px 24px}.panel h1{font-size:42px}.intro{max-width:460px}.panel-footer{margin-top:0}.viewport-bottom{left:14px;right:14px;bottom:14px;gap:8px}.hint{font-size:10px}.stats{padding:8px;gap:8px}.stats span{display:flex;flex-direction:column;gap:0}.stats b{font-size:13px}.stats small{font-size:7px}}@media(max-width:520px){.topbar{height:61px;padding:0 15px}.top-status{font-size:8px}.brand strong{font-size:16px}.workspace{min-height:calc(100vh - 61px)}.viewport-wrap{min-height:53vh}.viewport-top{left:14px;right:14px;top:14px}.viewport-bottom{align-items:end}.hint{max-width:190px;line-height:1.35}.stats{gap:6px}.stats i{display:none}.stats small{display:none}.stats b{font-size:11px}}

/* Keep the study controls readable at common laptop and mobile sizes. */
.brand span:last-child,.top-status,.eyebrow,.section-heading span,.scene-chip,.live-chip,.stats small{font-size:11px}
.setting-help,.slider-setting p,.panel-footer,.slider-head output,.hint{font-size:12px}
.scene-switch button,.speed-control select,.primary-button{font-size:13px}
@media(max-width:520px){.hint{font-size:11px}.top-status{font-size:10px}}
.viewport-labels{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.selection-label{font-size:11px;font-weight:700;letter-spacing:.1em;color:#82e0cf;background:#162c2cce;border:1px solid #70d7c357;border-radius:6px;padding:7px 9px}
.selection-label[hidden]{display:none}
.character-control{display:grid;gap:8px;margin:0 0 24px;padding:12px;border:1px solid #ffffff1a;border-radius:10px;background:#1a222b}.character-control label{font:600 12px 'Space Grotesk',sans-serif}.character-control select{width:100%;padding:9px 10px;border:1px solid #ffffff2b;border-radius:7px;background:#27323b;color:#f2eee8;font:600 12px 'DM Sans',sans-serif}.character-control select:disabled{opacity:.65}.character-control p{margin:0;color:#9aabb0;font-size:12px;line-height:1.45}
@media(min-width:851px){.app-shell{height:100dvh;min-height:0}.workspace{min-height:0;overflow:hidden}.panel{min-height:0;overflow-y:auto}.viewport-wrap{min-height:0}}
.scene-switch{grid-template-columns:repeat(3,minmax(0,1fr))}.scene-switch button{font-size:11px;padding:11px 3px}.camera-control{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.camera-control button{border:1px solid #ffffff24;background:#202a33;color:#9facb4;border-radius:7px;padding:9px 6px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.camera-control button.active{background:#285752;color:#c2f6e9;border-color:#70d7c37a}.camera-control[hidden],#slide-grip-setting[hidden],#impact-boost-setting[hidden],#pin-stat[hidden]{display:none}.stats{gap:10px}.stats span{white-space:nowrap}@media(max-width:520px){.stats{gap:5px}.stats b{font-size:10px}.scene-switch button{font-size:11px}}
.viewport-top .camera-control{width:174px;margin:0;pointer-events:auto;background:#141b23d9;border:1px solid #ffffff1a;border-radius:9px;padding:4px}.viewport-top .camera-control button{padding:7px 4px;font-size:11px}.viewport-top{align-items:flex-start}@media(max-width:520px){.viewport-top .camera-control{width:126px;gap:2px}.viewport-top .camera-control button{font-size:10px;padding:7px 2px}}

/* The same controls live in the desktop sidebar or the phone settings dialog. */
.mobile-controls{display:none}.fps-toggle{display:flex;align-items:center;gap:10px;color:#dce5e5;font-size:13px;font-weight:600;cursor:pointer}.fps-toggle input{width:17px;height:17px;accent-color:#70d7c3}.fps-badge{position:absolute;right:24px;top:79px;z-index:1;padding:7px 9px;border:1px solid #ffffff26;border-radius:7px;background:#141b23db;color:#bde9df;font:700 11px 'Space Grotesk',sans-serif;letter-spacing:.06em}.fps-badge[hidden]{display:none}
#settings-dialog{border:1px solid #ffffff2b;border-radius:16px;background:#141a22;color:#f0eee8;padding:0;width:min(520px,calc(100vw - 24px));max-height:min(88dvh,800px);box-shadow:0 24px 80px #000a;overflow:hidden}#settings-dialog::backdrop{background:#05090dd4}#settings-dialog[open]{display:flex;flex-direction:column}.settings-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #ffffff1e;font:700 17px 'Space Grotesk',sans-serif}.settings-dialog-header button{width:44px;height:44px;border:1px solid #ffffff2b;border-radius:9px;background:#26313a;color:#f0eee8;font-size:18px;cursor:pointer}#settings-mount{overflow-y:auto;min-height:0;overscroll-behavior:contain}#settings-mount .panel{overflow:visible;border:0;padding:18px 20px 26px}#settings-mount .eyebrow,#settings-mount h1,#settings-mount .intro{display:none}
@media(max-width:850px){
  html,body{height:100%;overflow:hidden}.app-shell{height:100dvh;min-height:0}.topbar{height:56px;min-height:56px;padding:0 16px}.top-status{display:none}.workspace{display:flex;min-height:0;overflow:hidden}.workspace>.panel{display:none}.viewport-wrap{order:0;flex:1;min-height:0}.viewport-top{top:12px;left:12px;right:12px}.viewport-top .camera-control{width:172px}.viewport-top .camera-control button{min-height:44px;font-size:12px}.live-chip{display:none}.viewport-bottom{left:12px;right:12px;bottom:122px;justify-content:flex-end}.viewport-bottom .hint{display:none}.viewport-bottom .stats{padding:7px 9px;gap:8px}.stats span:has(#body-count),.stats span:has(#joint-count){display:none}.stats i{display:none}.stats small{font-size:9px;display:inline}.stats b{font-size:13px}.fps-badge{top:69px;right:12px}.mobile-controls{position:absolute;z-index:3;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) 98px;grid-template-rows:44px 48px;gap:8px;background:#141b23ec;border:1px solid #ffffff24;border-radius:12px;padding:8px}.touch-mode-control{grid-column:1;grid-row:1;display:grid;grid-template-columns:1fr 1fr;gap:5px}.touch-mode-control button,.mobile-controls>#open-settings{min-height:44px;border:1px solid #ffffff2d;border-radius:8px;background:#28333b;color:#d5dfdf;font:700 12px 'DM Sans',sans-serif;cursor:pointer}.touch-mode-control button.active{background:#2e605a;border-color:#79dbc8;color:#ecfffa}.mobile-controls>#touch-hint{grid-column:2;grid-row:1;display:flex;align-items:center;color:#9fb2b7;font-size:10px;line-height:1.2}.mobile-controls>#mobile-action-mount{grid-column:1;grid-row:2;min-width:0}.mobile-controls .button-row{height:48px}.mobile-controls .primary-button,.mobile-controls .reset-button{height:48px;min-width:48px;font-size:13px}.mobile-controls>#open-settings{grid-column:2;grid-row:2;background:#2b3942}.mobile-controls button:focus-visible,#settings-dialog button:focus-visible{outline:2px solid #75dbc6;outline-offset:2px}
}
@media(max-width:520px){.brand span:last-child{display:none}.brand strong{font-size:17px}.topbar{height:52px;min-height:52px}.viewport-top .camera-control{width:138px}.viewport-top .camera-control button{font-size:11px}.scene-chip{font-size:10px}.mobile-controls{grid-template-columns:minmax(0,1fr) 84px}.mobile-controls>#touch-hint{font-size:9px}.viewport-bottom{bottom:121px}}
@media(max-width:850px) and (max-height:450px) and (min-width:600px){.mobile-controls{grid-template-columns:170px minmax(0,1fr) 92px;grid-template-rows:44px;align-items:center}.touch-mode-control{grid-column:1;grid-row:1}.mobile-controls>#touch-hint{display:none}.mobile-controls>#mobile-action-mount{grid-column:2;grid-row:1}.mobile-controls .button-row,.mobile-controls .primary-button,.mobile-controls .reset-button{height:44px}.mobile-controls>#open-settings{grid-column:3;grid-row:1}.viewport-bottom{bottom:69px}}

/* Official RaidGuild crossed-swords mark, reversed for the dark header. */
.raidguild-credit{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:4px 7px;color:#c9d4d7;text-decoration:none;border-radius:7px;flex-shrink:0}.raidguild-credit img{display:block;object-fit:contain;filter:brightness(0) invert(1);opacity:.88}.raidguild-credit span{display:flex;flex-direction:column;font-size:12px;line-height:1.25}.raidguild-credit strong{font-size:14px;font-weight:700;color:#f0eee8}.raidguild-credit:hover{background:#ffffff0b}.raidguild-credit:focus-visible{outline:2px solid #75dbc6;outline-offset:2px}@media(max-width:520px){.raidguild-credit{gap:6px;padding:4px}.raidguild-credit img{width:24px;height:24px}}
/* Four experiments use an even, readable two-by-two selector. */
.scene-switch{grid-template-columns:repeat(2,minmax(0,1fr))}.scene-switch button{font-size:13px;padding:11px 5px}.viewport-top .camera-control.board-camera{grid-template-columns:1fr;width:128px}.viewport-top .camera-control.board-camera button{min-height:36px}
@media(max-width:850px){.viewport-top .camera-control.board-camera button{min-height:44px}}
.quality-control{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#dce5e5;font-size:13px;font-weight:600}.quality-control select{background:#202932;border:1px solid #ffffff22;color:#e7ecee;border-radius:7px;padding:9px 10px;min-height:42px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.display-section .fps-toggle{margin-top:18px}.display-section>.setting-help{margin-top:8px}
.get-up-toggle{display:flex;align-items:center;gap:10px;margin-top:17px;color:#dce5e5;font-size:13px;font-weight:600;cursor:pointer}.get-up-toggle input{width:17px;height:17px;accent-color:#70d7c3}
