.auth-shell{isolation:isolate;min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));background:radial-gradient(circle at 50% 30%, rgb(var(--brand-green-rgb) / .14), transparent 34%), #02050b;place-items:center;display:grid;position:relative;overflow:auto}.auth-shell:before{z-index:0;background:var(--preflight-rail-ticks), var(--preflight-rail-metal);width:12px;box-shadow:0 0 0 1px #cbdde01f, 0 0 10px rgb(var(--brand-green-rgb) / .14), inset 0 0 4px #000000e6;content:"";position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.auth-shell>*{z-index:1;position:relative}.auth-overlay{z-index:40;padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(8px);pointer-events:auto;touch-action:auto;background:#010408d1;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.auth-card{grid-template-rows:auto minmax(0,1fr);max-height:calc(100dvh - 40px)}.auth-card-display{overscroll-behavior:contain;min-height:0;overflow-y:auto}.auth-eyebrow,.auth-form label>span,.account-chip span,.guest-save-chip>span{color:#eaf5ff8a;letter-spacing:.16em;text-transform:uppercase;font-size:9px;font-weight:800}.auth-card h1{color:#daf6efe6;letter-spacing:.035em;text-transform:uppercase;margin:0;font-size:clamp(21px,5vw,30px);font-weight:500;line-height:1.08}.auth-card h2{color:#daf6efe6;letter-spacing:.035em;text-transform:uppercase;margin:0;font-size:clamp(19px,4vw,26px);font-weight:500;line-height:1.08}.auth-card p{color:#eaf5ffa3;margin:0;line-height:1.55}.auth-choice-card small,.auth-fine-print{color:#eaf5ff6b;font-size:10px;line-height:1.45}.auth-policy-link{color:#eaf5ff9e;text-underline-offset:2px}.auth-policy-link:hover{color:#eaf5ffdb}.auth-form,.auth-choice-actions{gap:13px;display:grid}.auth-form label{gap:6px;display:grid}.auth-form input{color:#eef7ff;background:#0b141fe6;border:1px solid #dcecff2e;border-radius:0;outline:none;width:100%;min-height:46px;padding:0 13px}.auth-form input:focus{border-color:rgb(var(--brand-green-rgb) / .8)}.auth-primary,.auth-secondary,.auth-mode-switch,.auth-back,.account-chip button,.guest-save-chip button{color:#eef7ff;letter-spacing:.13em;cursor:pointer;touch-action:manipulation;background:#101b28f0;border:1px solid #dcecff2e;border-radius:0;font-size:10px;font-weight:800}.auth-primary,.auth-secondary{min-height:48px}.auth-primary{border-color:rgb(var(--brand-green-rgb) / .56);background:rgb(var(--brand-surface-rgb) / .82);margin-top:3px}.auth-oauth-provider{margin-top:0}.auth-google-provider{background:0 0;border:0;justify-self:center;width:180px;min-height:48px;padding:4px 0;position:relative;overflow:hidden}.auth-google-provider img{width:180px;height:40px;display:block}.auth-google-provider span{color:#e3e3e3;letter-spacing:.12em;background:#131314e0;border:1px solid #8e918f;border-radius:4px;place-items:center;font-size:10px;display:grid;position:absolute;inset:4px 0}.auth-google-provider:disabled img{opacity:.26}.auth-local-account-form{gap:10px}.auth-local-account-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.auth-local-account-buttons .auth-primary,.auth-local-account-buttons .auth-secondary{margin-top:0}.auth-secondary{color:#eaf5ffc2;background:#0c1520b8}.auth-mode-switch,.auth-back{color:#eaf5ff94;background:0 0;border-color:#0000;min-height:38px}.auth-back{color:#eaf5ff6b;margin-top:-8px}.auth-choice-divider{color:#eaf5ff57;letter-spacing:.18em;place-items:center;min-height:14px;font-size:8px;font-weight:800;display:grid;position:relative}.auth-choice-divider:before{content:"";background:#dcecff1a;height:1px;position:absolute;inset:50% 0 auto}.auth-choice-divider span{background:#010c0d;padding:0 9px;position:relative}.auth-primary:focus-visible,.auth-secondary:focus-visible,.auth-mode-switch:focus-visible,.auth-back:focus-visible,.account-chip button:focus-visible,.guest-save-chip button:focus-visible,.auth-google-provider:focus-visible{outline:2px solid rgb(var(--brand-gold-rgb) / .9);outline-offset:2px}.auth-primary:disabled,.auth-secondary:disabled,.account-chip button:disabled,.guest-save-chip button:disabled{cursor:wait;opacity:.55}.auth-message{border:1px solid rgb(var(--brand-green-rgb) / .34);color:#daefffdb;background:rgb(var(--brand-surface-rgb) / .56);padding:10px 11px;font-size:12px;line-height:1.4}.auth-error{color:#ffcdcdeb;background:#6e1f1f2e;border-color:#ff88884d}.auth-entry-links{justify-content:center;gap:18px;margin-top:2px;display:flex}.auth-entry-links a{color:#dceef29e;letter-spacing:.08em;text-transform:uppercase;text-underline-offset:3px;font-size:10px}.auth-entry-links a:hover{color:#ebf9ffeb}.auth-entry-heading{gap:9px;display:grid}.auth-entry-heading .auth-eyebrow{color:rgb(var(--brand-gold-rgb) / .78);margin:0}.auth-entry-heading p:last-child{font-size:12px}.account-chip,.guest-save-chip{z-index:20;top:max(10px, calc(env(safe-area-inset-top) + 8px));-webkit-backdrop-filter:blur(6px);pointer-events:auto;background:#04090fd1;border:1px solid #dcecff24;align-items:center;gap:12px;max-width:calc(100vw - 24px);padding:7px 8px 7px 10px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.account-chip>div{gap:2px;min-width:0;display:grid}.account-chip strong,.account-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-chip strong{letter-spacing:.11em;font-size:10px}.account-chip span{font-size:7px}.account-chip button,.guest-save-chip button{flex:none;min-height:28px;padding:0 8px;font-size:7px}.guest-save-chip>span{white-space:nowrap;flex:none;font-size:7px}.guest-save-chip button{border-color:rgb(var(--brand-gold-rgb) / .46);color:#e2f6fff0;background:rgb(var(--brand-surface-rgb) / .72);letter-spacing:.07em;text-transform:none;white-space:nowrap;position:relative}.guest-save-icon,.guest-save-cta{display:none}@media (width<=720px),(pointer:coarse){.account-chip,.guest-save-chip{top:max(8px, calc(env(safe-area-inset-top) + 6px));gap:8px;padding:6px 7px 6px 8px}.account-chip strong{font-size:9px}.guest-save-chip>span{display:none}.guest-save-chip button{min-height:32px;font-size:8px}}*{box-sizing:border-box}:root{--brand-outline:#fff;--brand-outline-rgb:255 255 255;--brand-gold:#c9a53e;--brand-gold-rgb:201 165 62;--brand-green:#1c5e5c;--brand-green-rgb:28 94 92;--brand-surface-rgb:7 22 20;color:#eaf5ff;font-synthesis:none;text-rendering:optimizelegibility;background:#02050b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html,body,#root{background:#02050b;width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none}button,input{font:inherit}button:not(:disabled){cursor:pointer}button:disabled{cursor:default}.panel-toggle-arrow{color:#eaf5ff9e;font-size:10px;line-height:1;transition:transform .16s;display:inline-block;transform:rotate(-90deg)}.panel-toggle[aria-expanded=true] .panel-toggle-arrow{transform:rotate(0)}.game-shell{touch-action:none;-webkit-user-select:none;user-select:none;background:#02050b;width:100vw;height:100dvh;position:relative;overflow:hidden}body.freightfall-dev-admin,body.freightfall-dev-admin *,body.freightfall-local-development,body.freightfall-local-development *{-webkit-user-select:text;user-select:text}.game-shell .touch-controls,.game-shell .touch-controls *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.game-canvas{touch-action:none;width:100%;height:100%;display:block}.game-canvas.is-ship-hovered,.game-canvas.is-industry-module-hovered{cursor:pointer}.game-canvas.is-free-camera,.game-canvas.is-free-camera.is-station-building{cursor:grab}.game-canvas.is-free-camera-dragging,.game-canvas.is-free-camera-dragging.is-station-building{cursor:grabbing}.hud{z-index:2;pointer-events:none;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));position:absolute;inset:0}.brand-panel{top:max(8px, env(safe-area-inset-top));left:max(8px, env(safe-area-inset-left));letter-spacing:.08em;text-shadow:0 1px 8px #000;flex-direction:column;gap:2px;display:flex;position:absolute}.brand-panel strong{letter-spacing:.18em;font-size:clamp(15px,3.4vw,20px)}.brand-panel span,.status-panel,.shield-state{color:#eaf5ff94;text-transform:uppercase;letter-spacing:.12em;font-size:11px}.status-panel{top:max(18px, env(safe-area-inset-top));right:max(128px, calc(env(safe-area-inset-right) + 120px));text-align:right;position:absolute}.ship-status-panel{top:max(72px, calc(env(safe-area-inset-top) + 58px));left:max(16px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(5px);background:#0309117a;border:1px solid #dcecff1f;gap:7px;width:min(220px,48vw);padding:10px 11px;display:grid;position:absolute}.ship-status-row{gap:3px;display:grid}.ship-status-label{color:#eaf5ffb3;letter-spacing:.12em;justify-content:space-between;font-size:9px;display:flex}.ship-status-track{background:#eaf5ff1a;height:5px;overflow:hidden}.ship-status-fill{background:#ebf5ffdb;height:100%;transition:width 80ms linear}.ship-status-shield .ship-status-fill{background:#64d3fff0}.ship-status-hull .ship-status-fill{background:#ebf5ffe0}.shield-state{opacity:.55;font-size:8px}.shield-state-active{color:#79dcffe6;opacity:1}.relative-velocity{border-top:1px solid #dcecff1a;gap:4px;margin-top:1px;padding-top:7px;display:grid}.relative-velocity-label{color:#eaf5ff94;letter-spacing:.1em;justify-content:space-between;gap:10px;font-size:8px;font-weight:700;display:flex}.relative-velocity-label span:last-child{color:rgb(var(--brand-gold-rgb) / .92);font-variant-numeric:tabular-nums;white-space:nowrap}.relative-velocity[data-motion-state=stationary] .relative-velocity-label span:last-child{color:#eaf5ff6b}.relative-velocity-track{background:#eaf5ff17;height:5px;position:relative;overflow:hidden}.relative-velocity-fill{background:linear-gradient(90deg, var(--brand-green), var(--brand-gold));transform-origin:0;will-change:transform;position:absolute;inset:0;transform:scaleX(0)}.relative-velocity-track i{z-index:1;background:#030911b3;width:1px;position:absolute;top:0;bottom:0;left:50%}.chat-panel{z-index:4;left:max(8px, env(safe-area-inset-left));pointer-events:auto;touch-action:auto;-webkit-user-select:text;user-select:text;width:min(360px,100vw - 32px);position:absolute;bottom:48px;overflow:hidden}.chat-header{color:#eaf5ff85;letter-spacing:.13em;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;gap:10px;width:100%;min-height:26px;padding:7px 9px 6px;font-size:8px;font-weight:700;display:flex}.chat-header:hover,.chat-header:focus-visible{color:#eaf5ffdb;outline:none}.chat-header-status{margin-left:auto}.chat-panel.is-expanded .chat-header{border-bottom:1px solid #dcecff1a}.chat-messages{overscroll-behavior:contain;scrollbar-width:thin;gap:5px;min-height:42px;max-height:150px;padding:8px 9px;display:grid;overflow-y:auto}.chat-message{color:#eaf5ffc7;grid-template-columns:max-content minmax(0,1fr);align-items:baseline;gap:7px;font-size:11px;line-height:1.28;display:grid}.chat-message strong{color:rgb(var(--brand-outline-rgb) / .76);letter-spacing:.09em;white-space:nowrap;font-size:8px}.chat-message-local strong{color:rgb(var(--brand-gold-rgb) / .92)}.chat-message span{overflow-wrap:anywhere;min-width:0}.chat-empty{color:#eaf5ff59;align-self:center;font-size:10px;font-style:italic}.chat-form{border-top:1px solid #dcecff1a;gap:6px;padding:7px;display:flex}.chat-input{color:#f0f8fff0;touch-action:auto;-webkit-user-select:text;user-select:text;background:#02070dc2;border:1px solid #dcecff29;border-radius:0;outline:none;flex:1;min-width:0;height:36px;padding:0 10px;font-size:12px}.chat-input:focus{border-color:rgb(var(--brand-green-rgb) / .72)}.chat-input:disabled{color:#eaf5ff52}.chat-send{border:1px solid rgb(var(--brand-green-rgb) / .5);color:#e1f5ffe0;background:rgb(var(--brand-surface-rgb) / .72);letter-spacing:.11em;-webkit-tap-highlight-color:transparent;border-radius:0;min-width:58px;height:36px;font-size:9px;font-weight:700}.chat-send:disabled{opacity:.35}.touch-controls{z-index:3;padding:24px max(8px, env(safe-area-inset-right)) max(14px, calc(env(safe-area-inset-bottom) + 8px)) max(8px, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:flex-end;gap:16px;display:none;position:absolute;bottom:0;left:0;right:0}.touch-cluster{pointer-events:auto;align-items:flex-end;gap:8px;display:flex}.touch-button{color:#eaf5ffeb;width:62px;height:62px;box-shadow:inset 0 0 20px rgb(var(--brand-green-rgb) / .08);-webkit-backdrop-filter:blur(6px);touch-action:none;-webkit-tap-highlight-color:transparent;background:#070e1894;border:1px solid #eaf5ff47;border-radius:50%;font-size:22px;font-weight:700}.touch-button:active{background:rgb(var(--brand-green-rgb) / .24);border-color:rgb(var(--brand-green-rgb) / .82)}.touch-button-small{letter-spacing:.08em;width:50px;height:50px;font-size:8px}.touch-button-fire{border-color:rgb(var(--brand-green-rgb) / .66);letter-spacing:.1em;width:66px;height:66px;font-size:10px}.touch-button-fire:active{background:rgb(var(--brand-green-rgb) / .3);border-color:var(--brand-green)}.touch-button-thrust{border-color:rgb(var(--brand-gold-rgb) / .62);letter-spacing:.1em;width:74px;height:74px;font-size:9px}@media (hover:none),(pointer:coarse),(width<=720px){.touch-controls{display:flex}.chat-header{min-height:38px}.status-panel{top:auto;right:max(16px, env(safe-area-inset-right));bottom:max(116px, calc(env(safe-area-inset-bottom) + 106px))}.ship-status-panel{top:max(68px, calc(env(safe-area-inset-top) + 54px));width:min(190px,48vw)}.chat-panel{left:max(12px, env(safe-area-inset-left));bottom:max(118px, calc(env(safe-area-inset-bottom) + 108px));width:min(330px, calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)))}.chat-messages{max-height:112px}.chat-input,.chat-send{height:40px}}@media (width<=420px){.touch-controls{padding-left:max(10px, env(safe-area-inset-left));padding-right:max(10px, env(safe-area-inset-right));gap:10px}.touch-cluster{gap:6px}.touch-button{width:56px;height:56px;font-size:20px}.touch-button-small{width:46px;height:46px;font-size:7px}.touch-button-fire{width:60px;height:60px;font-size:9px}.touch-button-thrust{width:66px;height:66px;font-size:8px}.ship-status-panel{width:min(170px,50vw);padding:8px 9px}.chat-panel{bottom:max(106px, calc(env(safe-area-inset-bottom) + 98px))}.chat-messages{max-height:90px}}@media (height<=520px) and (orientation:landscape){.chat-panel{left:max(10px, env(safe-area-inset-left));bottom:max(70px, calc(env(safe-area-inset-bottom) + 64px));width:min(280px,42vw)}.chat-header{padding-top:5px;padding-bottom:5px}.chat-messages{min-height:28px;max-height:54px;padding-top:5px;padding-bottom:5px}.chat-form{padding:5px}.chat-input,.chat-send{height:32px}}:root{--preflight-rail-ticks:repeating-linear-gradient(0deg, transparent 0 126px, rgb(var(--brand-gold-rgb) / .34) 126px 127px, transparent 127px 254px);--preflight-rail-metal:linear-gradient(90deg, #0a1015 0%, #3f4a50 20%, #a6afb1 43%, #263137 58%, #707b7f 78%, #080e12 100%);--preflight-panel-edge:linear-gradient(135deg, #778186 0%, #252e32 22%, #566166 48%, #1b2327 68%, #687277 100%)}.loading-screen{--loading-panel-half-width:min(230px, calc(50vw - 20px));z-index:1000;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));color:#eaf5ff;pointer-events:auto;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.loading-screen.is-complete{pointer-events:none}.loading-screen-door{width:calc(50% + 1px);transition:transform var(--loading-door-reveal-duration,1.8s) cubic-bezier(.72, 0, .22, 1);will-change:transform;position:absolute;top:0;bottom:0;overflow:visible}.loading-screen-door-left{z-index:2;left:0}.loading-screen-door-right{z-index:1;right:0}.loading-screen-door-surface{background-color:#02050b;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 90px #00000080}.loading-screen-door-left .loading-screen-door-surface{background-image:radial-gradient(circle at 100% 45%, rgb(var(--brand-green-rgb) / .16), transparent 68%)}.loading-screen-door-right .loading-screen-door-surface{background-image:radial-gradient(circle at 0 45%, rgb(var(--brand-green-rgb) / .16), transparent 68%)}.loading-screen.is-complete .loading-screen-door-left{transform:translateX(calc(-100% - var(--loading-panel-half-width)))}.loading-screen.is-complete .loading-screen-door-right{transform:translateX(calc(100% + var(--loading-panel-half-width)))}.loading-screen-grid{background-image:linear-gradient(rgb(var(--brand-green-rgb) / .04) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--brand-green-rgb) / .04) 1px, transparent 1px);transform-origin:50% 65%;background-size:56px 56px;position:absolute;inset:-20%;transform:perspective(500px)rotateX(58deg)translateY(24%);-webkit-mask-image:radial-gradient(circle,#000,#0000 62%);mask-image:radial-gradient(circle,#000,#0000 62%)}.loading-screen-door-left .loading-screen-grid{right:-120%}.loading-screen-door-right .loading-screen-grid{left:-120%}.loading-screen-door-rail{z-index:2;background:var(--preflight-rail-ticks), var(--preflight-rail-metal);width:6px;box-shadow:0 0 0 1px #cbdde01f, 0 0 10px rgb(var(--brand-green-rgb) / .14), inset 0 0 3px #000000e0;position:absolute;top:0;bottom:0}.loading-screen-door-rail:after{content:"";background:linear-gradient(#0000,#dcecec57 18%,#dcecec29 82%,#0000);width:1px;position:absolute;inset:0 auto 0 50%}.loading-screen-door-left .loading-screen-door-rail{right:0}.loading-screen-door-right .loading-screen-door-rail{left:0;transform:scaleX(-1)}.freightfall-metal-panel{background:linear-gradient(150deg, #151d21, #04090d 52%, #0d1518) padding-box, var(--preflight-panel-edge) border-box;border:1px solid #0000;position:relative;box-shadow:0 26px 80px #00000080,0 0 12px #a8b8bb0f,inset 0 0 0 1px #e2ecec0d,inset 0 0 36px #0000004d}.freightfall-metal-panel:before{z-index:0;content:"";pointer-events:none;border:1px solid #aabcbf1a;position:absolute;inset:5px}.freightfall-metal-panel>*{z-index:1;position:relative}.freightfall-panel{gap:12px;width:min(460px,100vw - 40px);padding:14px;display:grid}.loading-screen-panel{z-index:3;position:absolute;top:50%;left:100%;transform:translate(-50%,-50%)}.freightfall-brand-lockup{justify-items:center;gap:4px;padding:5px 12px 7px;display:grid}.freightfall-brand-mark{aspect-ratio:200/164;opacity:1;width:72px;filter:drop-shadow(0 0 14px rgb(var(--brand-green-rgb) / .2))}.freightfall-brand-title{letter-spacing:.14em;text-shadow:0 0 18px rgb(var(--brand-green-rgb) / .16);justify-content:center;align-items:baseline;font-size:34px;font-weight:900;line-height:.9;display:flex}.freightfall-brand-title span,.freightfall-brand-title strong{color:#eaf5fff0;-webkit-text-stroke:0;background:0 0}.freightfall-brand-title strong{color:var(--brand-gold);font:inherit}.freightfall-display{background:linear-gradient(rgb(var(--brand-green-rgb) / .035) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--brand-green-rgb) / .025) 1px, transparent 1px), linear-gradient(180deg, #000708, #010d0e);color:#ddf4efc7;text-shadow:0 0 10px rgb(var(--brand-green-rgb) / .18);background-size:100% 6px,18px 100%,auto;border:1px solid #89999c3d;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #000000b8,inset 0 0 24px #34484829,0 1px #c6d8d81a}.freightfall-panel-screen{gap:16px;padding:20px;display:grid}.loading-screen-display{align-content:center;min-height:72px}.loading-screen-scan{background:rgb(var(--brand-outline-rgb) / .12);height:2px;position:relative;overflow:hidden}.loading-screen-scan:after{content:"";background:linear-gradient(90deg, transparent, var(--brand-green), var(--brand-gold), transparent);will-change:transform;width:36%;animation:1.35s ease-in-out infinite loading-screen-scan;position:absolute;inset:0 auto 0 0;transform:translate(-110%)}.loading-screen-display p{color:#d8f4eeb8;letter-spacing:.2em;text-align:center;margin:0;font-size:10px;font-weight:800}@keyframes loading-screen-scan{0%{transform:translate(-110%)}to{transform:translate(280%)}}@media (width<=480px){.freightfall-panel{gap:10px;padding:12px}.freightfall-panel-screen{gap:14px;padding:16px}.freightfall-brand-title{letter-spacing:.1em;font-size:30px}}.travel-recovery-overlay{z-index:10000;background:#080b0f;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.travel-recovery-overlay button{min-height:48px;padding:12px 24px}
