@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@200;300;400;500;600&family=DM+Mono:wght@400;500&display=swap";:root{--ink: #12151a;--paper: #f4f6fa;--line: #c9d2e0;--muted: #7c8798;--blue: #2f6fd0;--red: #d63b4a;font-family:Montserrat,system-ui,sans-serif;color:var(--ink);background:#000;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;height:100dvh;overflow:hidden;overscroll-behavior:none;background:var(--paper)}html,#root{height:100%}button,input{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.menu-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 20px;background:#000;overflow-y:auto}.menu-title{position:relative;margin:0 0 22px;font-weight:500;font-size:clamp(34px,7vw,52px);letter-spacing:.01em;transition:transform 1s cubic-bezier(.9,0,.1,1);background-image:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.9) 50%,transparent 80%),linear-gradient(90deg,#6495ed,purple);background-size:300% 100%,100% 100%;background-repeat:no-repeat,no-repeat;background-blend-mode:screen,normal;background-position:-100% 0,0 0;-webkit-background-clip:text;background-clip:text;color:transparent}.menu-title:before{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(100deg,transparent 40%,rgba(255,255,255,1) 50%,transparent 60%);background-size:300% 100%;background-repeat:no-repeat;background-position:-100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;filter:blur(6px) brightness(1.4);mix-blend-mode:screen;pointer-events:none}@keyframes title-swoosh{0%{background-position:-100% 0}88%{background-position:200% 0}to{background-position:200% 0}}.menu-title:hover{animation:title-swoosh 3s ease-out forwards;transform:scale(1.5)}.menu-title:hover:before{animation:title-swoosh 3s ease-out forwards}.menu-items{display:flex;flex-direction:column;align-items:center;gap:14px}.menu-item{display:block;padding:4px 10px}.menu-item-label{display:block;color:#fff;font-weight:200;font-size:15px;letter-spacing:.03em;-webkit-user-select:none;user-select:none;transition:filter .3s ease}.menu-item:hover .menu-item-label,.menu-item:focus-visible .menu-item-label{filter:drop-shadow(0 0 1px rgba(0,0,0,1)) drop-shadow(0 0 5px rgba(255,255,255,1))}.menu-item-line{display:block;width:50px;height:1px;margin:8px auto 0;background:#fff;transition:transform .8s cubic-bezier(.9,0,.1,1)}.menu-item:hover .menu-item-line,.menu-item:focus-visible .menu-item-line{transform:scaleX(5)}.menu-footnote{margin:30px 0 0;color:#5b5f68;font-size:11px;font-weight:300;letter-spacing:.08em}.menu-backend{display:flex;align-items:center;gap:7px;margin:10px 0 0;color:#4a4e57;font:300 10px Montserrat,sans-serif;letter-spacing:.07em}.backend-dot{width:5px;height:5px;border-radius:50%;background:#4a4e57}.menu-backend.checking .backend-dot{animation:pulse 1.2s ease-in-out infinite}.menu-backend.online .backend-dot{background:#6495ed}.menu-backend.offline .backend-dot{background:#6b4a4a}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.settings-screen{justify-content:flex-start;gap:0;padding-top:48px}.settings-heading{font-size:clamp(26px,5vw,38px);margin-bottom:30px}.settings-screen .menu-title:hover{transform:none}.setting-block{width:min(520px,100%);margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid #1d1f24}.setting-head{display:flex;align-items:baseline;justify-content:space-between}.setting-name{color:#fff;font-size:13px;font-weight:300;letter-spacing:.1em;text-transform:uppercase}.setting-value{color:#fff;font:500 30px Montserrat;letter-spacing:-.02em}.setting-value small{margin-left:5px;color:#6a6f79;font-size:12px;font-weight:300}.level-slider{width:100%;margin:16px 0 10px;height:3px;accent-color:cornflowerblue;cursor:pointer}.level-readout{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.level-rank{color:#6495ed;font-size:13px;font-weight:500;letter-spacing:.06em}.level-detail{color:#6a6f79;font:400 10px DM Mono;letter-spacing:.04em;text-align:right}.setting-hint{margin:12px 0 0;color:#5b5f68;font-size:11px;font-weight:300;line-height:1.6}.preset-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.preset{padding:7px 13px;border:1px solid #26292f;border-radius:999px;color:#8b909a;font-size:11px;font-weight:300;letter-spacing:.05em;text-transform:capitalize;transition:border-color .18s,color .18s,background .18s}.preset:hover{border-color:#454a53;color:#d6d9de}.preset.active{border-color:#6495ed;color:#fff;background:#6495ed24}.setting-toggle{display:flex;align-items:center;gap:10px;color:#c3c7ce;font-size:12px;font-weight:300;cursor:pointer}.setting-toggle input{accent-color:cornflowerblue;width:15px;height:15px;cursor:pointer}.back-item{margin-top:6px}.scene{position:fixed!important;top:92px!important;left:0!important;right:0!important;bottom:calc(var(--panel-h) + var(--edge) * 2)!important;width:auto!important;height:auto!important;z-index:0;touch-action:none;background-color:#fff;background-image:radial-gradient(circle,#f0f0f0 10%,transparent 11%);background-size:20px 20px;cursor:grab}.scene:active{cursor:grabbing}.scene>div{width:100%!important;height:100%!important}.scene canvas{display:block}.hud-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;flex-direction:column;align-items:stretch;gap:10px;pointer-events:none;padding:var(--edge) var(--edge) 0}:root{--edge: 25px;--panel-h: 132px;--btn-h: 40px;--radius: 25px;--glass: rgba(235, 235, 235, .3);--glass-blue: rgba(66, 116, 255, .3);--ease: cubic-bezier(.9, 0, .1, 1)}.hud-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;pointer-events:none}.hud-top>*{pointer-events:auto}.rosters{display:flex;gap:8px}.view-switch{display:flex;gap:2px;padding:3px;border-radius:var(--radius);background:var(--glass);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.view-option{padding:7px 14px;border-radius:var(--radius);color:#5c6270;font:500 12px Montserrat,sans-serif;transition:background .3s var(--ease),color .3s var(--ease)}.view-option:hover:not(.active){background:#ffffff80;color:var(--ink)}.view-option.active{background:#ffffffbf;color:var(--blue)}.turn-clock{display:flex;flex-direction:column;align-items:center;padding:6px 18px;border-radius:var(--radius);background:var(--glass);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.clock-digits{font:500 22px Montserrat,sans-serif;letter-spacing:-.02em}.clock-label{color:var(--muted);font:500 10px Montserrat,sans-serif;letter-spacing:.08em;text-transform:uppercase}.turn-clock.urgent .clock-digits{color:var(--red)}.roster{display:flex;flex-direction:column;gap:4px;min-width:108px}.unit{display:grid;grid-template-columns:20px 1fr 24px;align-items:center;gap:6px;padding:5px 9px;border-radius:14px;background:var(--glass);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);font:500 10px Montserrat,sans-serif;transition:box-shadow .3s var(--ease),opacity .3s var(--ease)}.unit.dead{opacity:.3}.roster-left .unit.active{box-shadow:inset 0 0 0 2px var(--blue)}.roster-right .unit.active{box-shadow:inset 0 0 0 2px var(--red)}.unit-name{color:var(--muted)}.unit-bar{height:3px;border-radius:2px;background:#12151a1f;overflow:hidden}.unit-fill{display:block;height:100%;border-radius:2px;transition:width .4s var(--ease)}.roster-left .unit-fill{background:var(--blue)}.roster-right .unit-fill{background:var(--red)}.unit-hp{color:var(--muted);text-align:right}.thinking{align-self:center;display:flex;align-items:center;gap:12px;padding:9px 18px;border-radius:999px;background:var(--glass);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);pointer-events:none}.thinking-label{display:inline-flex;align-items:center;gap:3px;font:500 12px Montserrat,sans-serif;color:#3a4150}.thinking-dots{display:inline-flex;gap:2px;margin-left:2px}.thinking-dots i{width:3px;height:3px;border-radius:50%;background:var(--red);animation:dot 1.1s ease-in-out infinite}.thinking-dots i:nth-child(2){animation-delay:.16s}.thinking-dots i:nth-child(3){animation-delay:.32s}@keyframes dot{0%,60%,to{opacity:.25}30%{opacity:1}}.thinking-track{width:108px;height:3px;border-radius:2px;background:#12151a1f;overflow:hidden}.thinking-fill{display:block;height:100%;background:var(--red);transition:width .14s linear}.thinking-count{color:var(--muted);font:500 10px Montserrat,sans-serif;white-space:nowrap}.controller-ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}.controller-ui>*{pointer-events:auto;transition:top .5s ease,transform .5s ease,opacity .5s ease,border-color .4s ease-in-out}.glass-button{position:absolute;display:flex;align-items:center;justify-content:center;height:var(--btn-h);width:100px;box-sizing:border-box;border:2px solid transparent;border-radius:var(--radius);background:transparent;font:500 14px Montserrat,sans-serif;color:var(--ink);cursor:pointer;transition:all .4s var(--ease)}.glass-button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--glass);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);z-index:0}.glass-button .btn-label{position:relative;z-index:2;display:flex;align-items:center;gap:4px;white-space:nowrap}.glass-button svg{width:28px;height:28px;flex:0 0 28px;transition:transform .5s ease}.glass-button:disabled{opacity:.45;cursor:not-allowed}.hide-ui-button{left:var(--edge);top:calc(100% - var(--edge) - var(--panel-h) - 61px);width:145px;height:56px}.hide-ui-button:hover:not(:disabled){border-color:var(--ink)}.controller-ui.ui-hidden .hide-ui-button svg{transform:rotate(180deg)}.quit-button{left:calc(var(--edge) + 150px);top:calc(100% - var(--edge) - var(--panel-h) - 61px);width:139px;height:56px}.quit-button:hover:not(:disabled){border-color:var(--ink)}.skip-button{left:calc(var(--edge) + 50px + 25% + 5px);top:calc(100% - var(--edge) - var(--panel-h))}.skip-button:hover:not(:disabled){border-color:var(--ink)}.fire-button{left:calc(var(--edge) + 50px + 25% + 5px);top:calc(100% - var(--edge) - var(--panel-h) + 45px)}.fire-button:after{background:var(--glass-blue)}.fire-button:hover:not(:disabled){border-color:#6495ed}.mode-strip{position:absolute;left:var(--edge);top:calc(100% - var(--edge) - var(--panel-h) - 61px - 44px);display:flex;gap:4px;padding:4px;border-radius:var(--radius);background:var(--glass);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.mode-chip{padding:6px 13px;border-radius:var(--radius);color:#5c6270;font:500 12px Montserrat,sans-serif;transition:background .3s var(--ease),color .3s var(--ease)}.mode-chip:hover:not(.active){background:#ffffff80;color:var(--ink)}.mode-chip.active{background:#ffffffbf;color:var(--blue)}.starting-coordinates{position:absolute;left:var(--edge);bottom:var(--edge);width:45px;height:var(--panel-h);box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:space-around;padding:14px 0;border-radius:var(--radius);background:#bebebe4d;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);font:500 15px Montserrat,sans-serif;color:var(--blue)}.starting-coordinates .axis-sub{display:flex;flex-direction:column;align-items:center;color:#8b5fbf;font-size:13px}.starting-coordinates .axis-sub small{font:500 9px DM Mono,monospace;opacity:.75}.equation-input{position:absolute;left:calc(var(--edge) + 50px);bottom:var(--edge);width:25%;height:var(--panel-h);display:flex;flex-direction:column;box-sizing:border-box;border-radius:var(--radius);background:#ffffff4d;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);overflow:hidden}.equation-textbox{flex:1;width:calc(100% - 10px);box-sizing:border-box;margin:5px;padding:12px 16px;border:1px solid #fff;border-radius:var(--radius);background:#ebebeb4d;outline:none;resize:none;font:400 14px DM Mono,monospace;color:var(--ink);transition:all .4s var(--ease)}.equation-textbox.secondary{flex:0 0 40px;font-size:12px;padding:10px 16px}.equation-textbox::placeholder{color:#a8b0bd}.equation-textbox:hover:not(:disabled){border-color:var(--ink)}.equation-textbox:focus{border:1px solid cornflowerblue;box-shadow:0 0 2px 2px #6494ed2b}.equation-textbox:disabled{cursor:not-allowed}.equation-input.invalid .equation-textbox:not(.secondary){border-color:var(--red)}.angle-strip{position:absolute;left:calc(var(--edge) + 50px + 25% + 115px);bottom:var(--edge);display:flex;flex-direction:column;justify-content:center;gap:8px;width:150px;height:var(--panel-h);padding:0 16px;box-sizing:border-box;border-radius:var(--radius);background:var(--glass);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.angle-strip label{display:flex;flex-direction:column;gap:4px}.angle-strip span{font:500 10px Montserrat,sans-serif;color:var(--muted)}.angle-strip input{width:100%;height:3px;accent-color:var(--blue);cursor:pointer}.logs{position:absolute;right:var(--edge);bottom:var(--edge);width:25%;height:var(--panel-h);display:flex;align-items:center;justify-content:center;padding:14px 18px;box-sizing:border-box;border-radius:var(--radius);background:var(--glass);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);overflow-y:auto}.logs-placeholder{font:500 13px Montserrat,sans-serif;color:#b6bcc6;text-align:center}.logs-list{width:100%;align-self:flex-start}.log-line{margin:0 0 6px;font:400 11px DM Mono,monospace;line-height:1.45;word-break:break-word}.log-line:last-child{margin-bottom:0}.log-left .log-name{color:var(--blue)}.log-right .log-name,.log-error{color:var(--red)}.log-equation{color:#3a4150}.log-outcome{display:block;color:#a8b0bd;font-size:10px}.controller-ui.ui-hidden>:not(.hide-ui-button):not(.quit-button){transform:translateY(calc(100% + var(--edge)));opacity:0;pointer-events:none}.controller-ui.ui-hidden>.hide-ui-button,.controller-ui.ui-hidden>.quit-button{top:calc(100% - 71px);transform:none}@media(max-width:1100px){.equation-input{width:30%}.logs{width:26%}.angle-strip{display:none}}@media(max-width:820px){:root{--edge: 14px;--panel-h: 116px}.equation-input{width:calc(100% - 50px - 120px - var(--edge) * 2)}.logs{display:none}.mode-strip{top:calc(100% - var(--edge) - var(--panel-h) - 61px - 42px)}.thinking-count{display:none}}@media(max-width:560px){:root{--panel-h: 104px}.hud-top{flex-wrap:wrap}.turn-clock{order:-1}.rosters{width:100%;justify-content:space-between}.roster{min-width:0;flex:1}.quit-button{width:110px}.hide-ui-button{width:128px}.quit-button{left:calc(var(--edge) + 133px)}.glass-button svg{width:22px;height:22px;flex:0 0 22px}.starting-coordinates{width:34px}.equation-input{left:calc(var(--edge) + 40px);width:calc(100% - 40px - 110px - var(--edge) * 2)}.skip-button,.fire-button{width:92px;left:auto;right:var(--edge)}.skip-button{top:calc(100% - var(--edge) - var(--panel-h))}.fire-button{top:calc(100% - var(--edge) - var(--panel-h) + 45px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.menu-title:hover,.menu-item:hover .menu-item-line{transform:none}}
