:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--ink: #effff6;--ink-soft: #b9d9cb;--ink-muted: #80a899;--forest-950: #061a17;--forest-900: #0b2520;--forest-800: #12372e;--forest-700: #1c5542;--emerald: #55d89e;--emerald-bright: #8ff0bf;--cyan: #55e7d2;--amber: #ffd779;--amber-deep: #c8953e;--danger: #ff7767;--lavender: #c7b7ff;--panel: rgb(7 28 24 / 88%);--panel-solid: #0b2822;--line: rgb(194 255 226 / 16%);--shadow: 0 18px 52px rgb(0 13 10 / 38%);--safe-top: max(14px, env(safe-area-inset-top));--safe-right: max(14px, env(safe-area-inset-right));--safe-bottom: max(14px, env(safe-area-inset-bottom));--safe-left: max(14px, env(safe-area-inset-left));--ease-out: cubic-bezier(.2, .78, .2, 1)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{background:var(--forest-950);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;user-select:none}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgb(143 240 191 / 68%);outline-offset:3px}h1,h2,h3,p{margin:0}.eyebrow{color:var(--emerald-bright);font-size:.67rem;font-weight:800;letter-spacing:.19em;line-height:1.25}.button{min-height:48px;border:1px solid transparent;border-radius:15px;padding:.8rem 1.05rem;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-weight:780;cursor:pointer;transition:transform .16s var(--ease-out),border-color .16s ease,background .16s ease}.button:active:not(:disabled){transform:scale(.975)}.button:disabled{cursor:not-allowed;opacity:.42}.button-primary{background:linear-gradient(135deg,var(--amber),#ffba54);box-shadow:0 10px 24px #a66b1f47;color:#2a1b09}.button-ghost,.button-soft{border-color:var(--line);background:#08211c9e;backdrop-filter:blur(14px)}.button-soft{background:#58d19a1f}.button-large{min-height:56px;padding-inline:1.25rem}.text-button{min-height:44px;border:0;background:transparent;color:var(--ink-soft);font-weight:700;cursor:pointer}.icon-button{width:46px;height:46px;min-width:46px;border:1px solid rgb(225 191 111 / 58%);border-radius:50%;display:grid;place-items:center;color:#ebd7a4;background:radial-gradient(circle at 38% 30%,#1b463af0,#051816f0);box-shadow:inset 0 0 0 3px #050d0cad,inset 0 0 0 4px #dab5612b,0 8px 24px #00080861;backdrop-filter:blur(8px);cursor:pointer}.icon-button:active{transform:scale(.96)}[data-reduced-motion=true] *{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}@media(prefers-reduced-motion:reduce){*{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}.app-root{position:fixed;inset:0;isolation:isolate;background:var(--forest-950)}.three-game-host,.canvas-loading,.three-game-host canvas{position:absolute!important;inset:0;width:100%!important;height:100%!important}.three-game-host{z-index:0;touch-action:none}.canvas-loading{background:radial-gradient(circle at 50% 50%,rgb(44 116 82 / 46%),transparent 42%),linear-gradient(#163a36,#071c18)}.world-vignette{position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(to bottom,rgb(3 18 16 / 26%),transparent 20%,transparent 74%,rgb(2 14 12 / 28%)),radial-gradient(ellipse at center,transparent 50%,rgb(0 16 12 / 24%) 100%)}.app-root.flow-area-map .world-vignette{display:none}.app-overlay{position:absolute;z-index:2;inset:0;pointer-events:none}.app-overlay>*{pointer-events:auto}.app-overlay>.exploration-hud{pointer-events:none}.renderer-fallback,.renderer-recovery{position:absolute;z-index:5;inset:0;padding:2rem;display:grid;place-content:center;gap:.75rem;text-align:center;background:#08231e}.startup-gate{position:absolute;inset:0;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);display:grid;place-items:center;overflow-x:hidden;overflow-y:auto;cursor:pointer;background:radial-gradient(circle at 50% 32%,rgb(85 231 210 / 17%),transparent 30%),linear-gradient(180deg,#041714f0,#03110ffa)}.startup-gate:before,.startup-gate:after{content:"";position:absolute;pointer-events:none;border:1px solid rgb(255 215 121 / 16%);transform:rotate(45deg)}.startup-gate:before{width:min(62vw,430px);aspect-ratio:1;border-radius:32%;box-shadow:0 0 80px #55e7d212}.startup-gate:after{width:min(42vw,290px);aspect-ratio:1;border-color:#55e7d21f;border-radius:42%}.startup-gate-card{position:relative;z-index:1;width:min(100%,430px);padding:clamp(1.35rem,5vw,2.1rem);display:grid;justify-items:center;gap:.8rem;text-align:center;border:1px solid rgb(194 255 226 / 18%);border-radius:28px;background:linear-gradient(155deg,#10392fd1,#051916e8);box-shadow:0 28px 80px #000a087a}.startup-gate-sigil{width:68px;height:68px;display:grid;place-items:center;position:relative;border:1px solid rgb(255 215 121 / 31%);border-radius:50%;color:var(--amber);font-size:1.2rem;box-shadow:inset 0 0 22px #ffd77914,0 0 30px #55e7d21a}.startup-gate-sigil span:last-child{position:absolute;color:var(--cyan);font-size:2.5rem;opacity:.27}.startup-gate h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(2.3rem,10vw,3.7rem);line-height:.95;letter-spacing:-.045em;text-wrap:balance}.startup-gate-lede{color:var(--ink-soft);font-size:.95rem;letter-spacing:.04em}.startup-build-details{width:100%;margin:.35rem 0;padding:.8rem 0;display:grid;grid-template-columns:.8fr .8fr 1.6fr;border-block:1px solid rgb(194 255 226 / 12%)}.startup-build-details>div{min-width:0;padding:0 .45rem;display:grid;gap:.28rem}.startup-build-details>div+div{border-left:1px solid rgb(194 255 226 / 10%)}.startup-build-details dt{color:var(--ink-muted);font-size:.58rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.startup-build-details dd{margin:0;overflow-wrap:anywhere;color:var(--ink);font-size:.75rem;line-height:1.35}.startup-enter-button{width:100%;min-height:56px;padding:.85rem 1rem;display:flex;align-items:center;justify-content:space-between;border:1px solid rgb(255 215 121 / 38%);border-radius:16px;color:#10261e;background:linear-gradient(135deg,#ffe29a,#9ff2c4);box-shadow:0 12px 28px #000f0b52;font:inherit;font-size:.72rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase;cursor:pointer}.startup-enter-button:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}.startup-enter-button:disabled{cursor:progress;filter:saturate(.72)}.startup-shortlist-button,.startup-developer-button{min-height:48px;margin:.15rem auto 0;padding:.55rem .85rem;display:grid;gap:.1rem;border:1px solid rgb(101 237 187 / 38%);border-radius:10px;color:var(--emerald-bright);background:#051f19b8;font:inherit;cursor:pointer}.startup-shortlist-button{width:100%;min-height:54px;margin:0;border-color:#ffd7796b;color:#ffe7a6;background:linear-gradient(120deg,rgb(255 215 121 / 12%),transparent 48%),#051f19d1}.startup-shortlist-button span,.startup-developer-button span{font-size:.78rem;font-weight:800;letter-spacing:.04em}.startup-shortlist-button small,.startup-developer-button small{color:var(--ink-muted);font-size:.68rem}.startup-shortlist-button:hover,.startup-developer-button:hover{border-color:var(--emerald);background:#65edbb1f}.startup-shortlist-button:focus-visible,.startup-developer-button:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.startup-gate-card>small{color:var(--ink-muted);font-size:.65rem}@media(max-width:420px){.startup-build-details{grid-template-columns:1fr 1fr}.startup-build-details>div:last-child{grid-column:1 / -1;margin-top:.7rem;padding-top:.7rem;border-top:1px solid rgb(194 255 226 / 10%);border-left:0}}@media(max-height:760px){.startup-gate{align-items:start}.startup-gate-card{margin-block:.75rem}}.renderer-fallback>span{color:var(--cyan);font-size:3rem}.renderer-recovery{inset:auto 1rem 1rem;border:1px solid var(--line);border-radius:16px;padding:1rem;background:var(--panel-solid)}.title-screen{width:min(100% - 2rem,500px);min-height:100%;padding:calc(var(--safe-top) + 9vh) var(--safe-right) calc(var(--safe-bottom) + 2rem) var(--safe-left);display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:1rem;filter:drop-shadow(0 2px 10px rgb(2 17 14 / 55%))}.title-sigil{width:58px;height:58px;display:grid;place-items:center;position:relative;border:1px solid rgb(187 255 219 / 22%);border-radius:20px;color:var(--amber);background:#0926209e;backdrop-filter:blur(12px)}.title-sigil span:last-child{position:absolute;color:var(--cyan);font-size:2rem;opacity:.35}.title-screen h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(2.55rem,10.5vw,4.45rem);line-height:.92;letter-spacing:-.055em;text-wrap:balance}.title-screen h1 em{display:block;color:var(--amber);font-weight:500}.title-screen .lede{max-width:35rem;color:#d7eee1;font-size:.98rem;line-height:1.55}.title-actions{width:min(100%,380px);display:grid;gap:.65rem}.privacy-note{display:flex;gap:.45rem;align-items:center;color:var(--ink-soft);font-size:.73rem}.privacy-note span{width:7px;height:7px;border-radius:50%;background:var(--emerald);box-shadow:0 0 10px var(--emerald)}.build-stamp{color:var(--ink-muted)}.loading-screen{min-height:100%;display:grid;place-content:center;gap:.5rem;text-align:center;background:radial-gradient(circle at 50% 44%,rgb(80 208 157 / 20%),transparent 28%),var(--forest-950)}.loading-rune{margin:auto;color:var(--amber);font-size:2.6rem;animation:rune-pulse 1.8s ease-in-out infinite}@keyframes rune-pulse{50%{transform:translateY(-5px) scale(1.06);filter:drop-shadow(0 0 14px var(--cyan))}}@media(prefers-reduced-motion:no-preference){.startup-gate-sigil{animation:rune-pulse 1.8s ease-in-out infinite}}.modal-screen{position:absolute;left:50%;bottom:calc(var(--safe-bottom) + .5rem);width:min(540px,calc(100% - var(--safe-left) - var(--safe-right)));max-height:calc(100% - var(--safe-top) - var(--safe-bottom) - 1rem);overflow:auto;padding:clamp(1.2rem,4vw,2rem);display:grid;gap:1rem;transform:translate(-50%);border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,#123f32eb,#061c18f0);box-shadow:var(--shadow);backdrop-filter:blur(20px)}.modal-screen.compact{max-width:440px;text-align:center}.modal-screen h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,8vw,3rem);line-height:1}.modal-screen .lede,.modal-screen>p{color:var(--ink-soft);line-height:1.58}.privacy-list{margin:0;padding:0;display:grid;gap:.7rem;list-style:none}.privacy-list li{display:grid;grid-template-columns:2.2rem 1fr;gap:.65rem;align-items:start;color:var(--ink-soft);font-size:.9rem;line-height:1.45}.privacy-list li span{color:var(--amber);font-size:.68rem;font-weight:900;letter-spacing:.12em}.reward-input-layer{position:absolute;z-index:12;inset:0;pointer-events:none}.reward-input-target{position:absolute;padding:0;opacity:0;border:0;pointer-events:auto;cursor:pointer}.reward-input-target:disabled{pointer-events:none}.reward-screen{position:absolute;inset:0;padding:calc(var(--safe-top) + .7rem) var(--safe-right) calc(var(--safe-bottom) + .7rem) var(--safe-left);display:grid;place-items:center;overflow:hidden;pointer-events:none}.reward-backdrop{position:absolute;inset:0;opacity:0;background:radial-gradient(circle at 50% 47%,rgb(24 100 82 / 18%),transparent 34%),linear-gradient(180deg,#01080c33,#020b0ec7);backdrop-filter:blur(1.5px)}.reward-screen[data-stage=reveal] .reward-backdrop{animation:reward-backdrop-in .42s ease-out both}@keyframes reward-backdrop-in{to{opacity:1}}.reward-panel{position:relative;width:min(520px,100%);max-height:min(740px,calc(100dvh - var(--safe-top) - var(--safe-bottom) - 1.4rem));padding:clamp(1.1rem,4vw,1.65rem);display:grid;gap:clamp(.75rem,2.4vh,1.05rem);overflow:auto;overscroll-behavior:contain;visibility:hidden;opacity:0;pointer-events:none;text-align:center;border:1px solid rgb(255 224 151 / 45%);border-radius:18px 18px 30px 30px;background:linear-gradient(135deg,rgb(255 234 174 / 8%),transparent 22%),radial-gradient(circle at 50% 0%,rgb(56 179 148 / 18%),transparent 34%),linear-gradient(175deg,#072325f5,#020f17fa);box-shadow:0 30px 90px #000409c7,0 0 38px #5becc91a,inset 0 0 0 1px #64dbbf1c,inset 0 -28px 60px #00060d59}.reward-panel:before,.reward-panel:after{content:"";position:absolute;pointer-events:none}.reward-panel:before{inset:8px;border:1px solid rgb(221 190 108 / 16%);border-radius:12px 12px 24px 24px}.reward-panel:after{left:12%;right:12%;top:-1px;height:2px;background:linear-gradient(90deg,transparent,#ffe7a3,transparent);box-shadow:0 0 18px #ffdd896b}.reward-screen[data-stage=reveal] .reward-panel{visibility:visible;pointer-events:auto;animation:reward-panel-enter .68s cubic-bezier(.16,.84,.22,1.16) both}@keyframes reward-panel-enter{0%{opacity:0;transform:translateY(11vh) scale(.72);filter:blur(7px) brightness(1.8)}54%{opacity:1;transform:translateY(-.7rem) scale(1.035);filter:blur(0) brightness(1.12)}76%{transform:translateY(.18rem) scale(.99)}to{opacity:1;transform:translateY(0) scale(1);filter:none}}.reward-panel-shine{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit}.reward-panel-shine:after{content:"";position:absolute;top:-15%;left:-42%;width:32%;height:130%;transform:rotate(14deg);background:linear-gradient(90deg,transparent,rgb(255 245 207 / 18%),transparent);animation:reward-panel-shine .9s .28s ease-out both}@keyframes reward-panel-shine{to{left:112%}}.reward-heading,.loot-grid,.reward-actions{position:relative;z-index:1}.reward-heading{display:grid;justify-items:center;gap:.38rem}.reward-crest{width:72px;height:72px;margin-top:-.18rem;display:grid;place-items:center;position:relative;color:#fff2b2;font-size:1.55rem;border:1px solid rgb(255 226 151 / 50%);border-radius:50%;background:radial-gradient(circle,rgb(255 235 169 / 19%),transparent 52%),#051e1feb;box-shadow:0 0 28px #ffd37038,inset 0 0 20px #50efcc21}.reward-crest:before,.reward-crest:after,.reward-crest i{content:"";position:absolute;border:1px solid rgb(120 241 211 / 30%);transform:rotate(45deg)}.reward-crest:before{width:48px;height:48px}.reward-crest:after{width:82px;height:82px;border-color:#ffe19330}.reward-crest i{width:92px;height:1px;border-width:1px 0 0;transform:rotate(0);box-shadow:0 0 14px #ffe6a566}.reward-heading .eyebrow{margin-top:.3rem;color:#e9c97d;letter-spacing:.22em}.reward-heading h1{max-width:18ch;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,7vw,2.55rem);font-weight:500;line-height:1;color:#fff2cc;text-wrap:balance;text-shadow:0 2px 1px rgb(0 0 0 / 64%),0 0 22px rgb(255 218 125 / 17%)}.reward-summary{max-width:42ch;color:#a8ccc5;font-size:clamp(.75rem,2.7vw,.88rem);line-height:1.45;text-wrap:balance}.loot-grid{margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;list-style:none}.loot-card{--loot-color: #8ff0bf;--loot-accent: #ffe197;position:relative;min-width:0;min-height:132px;padding:.68rem .55rem .58rem;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;align-items:end;gap:.3rem .4rem;overflow:hidden;opacity:0;text-align:left;border:1px solid color-mix(in srgb,var(--loot-accent) 38%,transparent);border-radius:13px;background:radial-gradient(circle at 50% 36%,color-mix(in srgb,var(--loot-color) 22%,transparent),transparent 42%),linear-gradient(155deg,#ffffff0d,#01090e85);box-shadow:inset 0 0 0 1px #ffffff08,inset 0 -18px 30px #00050a3d}.reward-screen[data-stage=reveal] .loot-card{animation:reward-card-enter .47s calc(.18s + var(--loot-index) * 105ms) cubic-bezier(.18,.86,.24,1.18) both}@keyframes reward-card-enter{0%{opacity:0;transform:translateY(1.4rem) scale(.78);filter:brightness(1.8)}66%{opacity:1;transform:translateY(-.16rem) scale(1.035)}to{opacity:1;transform:translateY(0) scale(1);filter:none}}.loot-card:after{content:"";position:absolute;left:12%;right:12%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--loot-accent),transparent);box-shadow:0 0 10px var(--loot-accent)}.loot-card-rarity{position:absolute;top:.42rem;right:.48rem;color:color-mix(in srgb,var(--loot-accent) 76%,white);font-size:.46rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.loot-art{position:absolute;top:.55rem;left:50%;width:70px;height:70px;display:grid;place-items:center;transform:translate(-50%);border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--loot-color) 45%,transparent),transparent 66%);filter:drop-shadow(0 0 12px color-mix(in srgb,var(--loot-color) 58%,transparent))}.loot-art-orbit{position:absolute;width:52px;height:52px;border:1px solid color-mix(in srgb,var(--loot-accent) 48%,transparent);border-radius:50%;box-shadow:inset 0 0 12px color-mix(in srgb,var(--loot-color) 18%,transparent),0 0 12px color-mix(in srgb,var(--loot-color) 22%,transparent)}.loot-icon{position:relative;z-index:1;color:color-mix(in srgb,var(--loot-color) 72%,white);font-size:2rem;line-height:1;text-shadow:0 2px 2px rgb(0 0 0 / 62%),0 0 10px var(--loot-accent)}.loot-spark{position:absolute;top:1px;right:4px;color:#fff;font-size:.72rem;text-shadow:0 0 8px white}.loot-copy{min-width:0;display:grid;gap:.12rem}.loot-copy strong{overflow:hidden;color:#f3ead2;font:600 .78rem/1.15 Georgia,Times New Roman,serif;text-overflow:ellipsis;white-space:nowrap}.loot-copy small{overflow:hidden;color:#769f99;font-size:.5rem;letter-spacing:.04em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.loot-card>b{color:#fff0b1;font:700 .94rem/1 Georgia,Times New Roman,serif;text-shadow:0 0 9px var(--loot-accent)}.reward-actions{display:grid;justify-items:center;gap:.5rem}.reward-continue{width:min(100%,340px);min-height:54px;padding:.72rem .85rem .72rem 1.1rem;display:flex;align-items:center;justify-content:space-between;border:1px solid rgb(255 225 145 / 62%);border-radius:999px;color:#162d28;background:linear-gradient(115deg,#f5d681,#fff1b7 46%,#7ce3c5);box-shadow:0 9px 26px #00090d73,0 0 22px #ffdb7c2b,inset 0 1px #ffffff9e;font-size:.7rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}.reward-continue b{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#fff0bc;background:#123d36;box-shadow:0 0 14px #1f73603d;font-size:1.1rem}.reward-continue:active{transform:scale(.975)}.reward-actions>small{color:#789b95;font-size:.55rem;letter-spacing:.08em;text-transform:uppercase}.reward-secured{display:flex;align-items:center;gap:.45rem;color:#baf3d7;font-size:.68rem;letter-spacing:.05em}.reward-secured span{width:22px;height:22px;display:grid;place-items:center;border:1px solid rgb(151 241 200 / 52%);border-radius:50%;color:#e9ffe7;background:#39977647;box-shadow:0 0 14px #55d89e40}.reward-screen.is-claimed .loot-card{animation:reward-card-secured .42s calc(var(--loot-index) * 70ms) ease-out both}@keyframes reward-card-secured{0%,to{opacity:1;transform:scale(1);filter:none}45%{opacity:1;transform:scale(1.035);filter:brightness(1.35);box-shadow:0 0 24px color-mix(in srgb,var(--loot-color) 24%,transparent)}}@media(max-height:700px){.reward-panel{gap:.62rem;padding-block:.82rem}.reward-crest{width:56px;height:56px}.reward-crest:before{width:38px;height:38px}.reward-crest:after{width:64px;height:64px}.reward-heading h1{font-size:1.72rem}.loot-card{min-height:112px}.loot-art{width:58px;height:58px}.loot-art-orbit{width:44px;height:44px}}.update-prompt{position:fixed;z-index:20;right:var(--safe-right);bottom:var(--safe-bottom);width:min(390px,calc(100% - 2rem));padding:1rem;display:grid;gap:.65rem;border:1px solid var(--line);border-radius:18px;background:var(--panel-solid);box-shadow:var(--shadow)}@media(min-width:760px){.title-screen{margin-left:max(2vw,1rem);justify-content:center}.modal-screen{bottom:auto;top:50%;transform:translate(-50%,-50%)}}.exploration-hud{position:absolute;inset:0;pointer-events:none}.exploration-hud button,.exploration-hud .bottom-sheet{pointer-events:auto}.dialogue-input-adapter{position:fixed;inset:0;z-index:40;pointer-events:auto}.dialogue-advance-adapter,.dialogue-skip-adapter{position:absolute;margin:0;border:0;background:transparent;opacity:0;cursor:pointer}.dialogue-advance-adapter{inset:0;z-index:1}.dialogue-skip-adapter{right:max(14px,calc((100vw - 1040px)/2 + 18px));bottom:max(14px,env(safe-area-inset-bottom));z-index:2;width:88px;height:96px;border-radius:999px}.minimap-input-adapter{position:absolute;z-index:4;padding:0;opacity:0;border:0;border-radius:50%;background:transparent;cursor:pointer;touch-action:manipulation}.hud-top-left,.hud-map-rail,.hud-bottom-left,.hud-bottom-right{position:absolute;z-index:3}.spatial-inventory-adapter{width:62px;height:62px;min-width:62px;opacity:0}.field-anvil-accessibility{position:absolute;inset:0;pointer-events:none}body:has([data-testid=inventory-screen],[data-testid=crafting-screen]) .harness-fab{display:none}.field-anvil-close-adapter{position:absolute;top:calc(28dvh + 4px);right:max(4px,calc((100vw - 1080px)/2 + 4px));width:44px;height:44px;border:0;border-radius:8px;padding:0;opacity:0;background:transparent;pointer-events:auto;cursor:pointer}.hunter-journal-close-adapter{top:max(calc(100dvh - 915px),calc(22dvh + 5px));right:max(6px,calc((100vw - 1080px)/2 + 6px));width:38px;height:38px}@media(max-width:429px){.hunter-journal-close-adapter{width:32px;height:30px}}@media(max-height:519px){.field-anvil-close-adapter{top:calc(28dvh + 2px)}.hunter-journal-close-adapter{top:calc(22dvh + 5px)}}.hud-top-left{top:var(--safe-top);left:var(--safe-left);min-width:min(48vw,204px);max-width:min(58vw,248px);padding:.62rem .78rem .7rem;display:grid;gap:.12rem;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,12px 100%,0 calc(100% - 12px));border:1px solid rgb(221 188 112 / 58%);border-radius:2px;background:linear-gradient(90deg,rgb(212 177 94 / 12%),transparent 22%),linear-gradient(145deg,#051616eb,#082823db);box-shadow:inset 0 0 0 2px #070f0eb3,0 10px 32px #0008086b;backdrop-filter:blur(8px)}.hud-top-left strong{font-family:Georgia,Times New Roman,serif;font-size:1.08rem;line-height:1.05;color:#f7edcf;text-shadow:0 2px 8px rgb(0 0 0 / 68%)}.hud-top-left>span{color:#b7c8b7;font-family:Georgia,Times New Roman,serif;font-size:.66rem;letter-spacing:.06em}.hud-top-left .eyebrow{color:#79d6ad;font-family:Georgia,Times New Roman,serif;letter-spacing:.13em}.hud-map-rail{top:calc(var(--safe-top) + 138px);right:var(--safe-right);display:grid;gap:.42rem;justify-items:end}.hud-bottom-left{left:var(--safe-left);bottom:calc(var(--safe-bottom) + 76px);display:grid;gap:.45rem;justify-items:start}.hud-bottom-right{right:var(--safe-right);bottom:var(--safe-bottom);display:flex;gap:.45rem}.joystick-control{display:grid;justify-items:center;gap:.25rem;pointer-events:auto}.joystick-control>span{width:104px;height:14px;opacity:0;pointer-events:none}.travel-speed-cycle{width:104px;min-height:30px;height:30px;padding:0;border:0;opacity:0;background:transparent;cursor:pointer;touch-action:manipulation}.virtual-joystick{position:relative;width:104px;height:104px;padding:0;border:0;border-radius:50%;background:transparent;box-shadow:none;-webkit-tap-highlight-color:transparent;touch-action:none}.virtual-joystick:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.context-action{position:absolute;z-index:4;left:50%;bottom:calc(var(--safe-bottom) + .25rem);min-height:64px;width:min(52vw,344px);max-width:344px;box-sizing:border-box;padding:.62rem 1.2rem;display:flex;gap:.72rem;align-items:center;justify-content:center;transform:translate(-50%);overflow:hidden;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px),0 10px);border:2px solid #a87b38;border-radius:3px;color:#241b11;background:linear-gradient(90deg,rgb(255 255 255 / 22%),transparent 18% 82%,rgb(106 70 24 / 9%)),linear-gradient(160deg,#f1ddb0,#d9bd7f);box-shadow:inset 0 0 0 2px #fff6d38c,inset 0 0 22px #66401129,0 10px 30px #00080875;font-family:Georgia,Times New Roman,serif}.context-action svg{width:28px;min-width:28px;color:#183e34}.context-action>span{min-width:0;display:grid;gap:.08rem;text-align:left}.context-action small{color:#6b542f;font-size:.56rem;font-weight:800;letter-spacing:.15em}.context-action strong{overflow:hidden;font-size:.94rem;text-overflow:ellipsis;white-space:nowrap}.bottom-sheet{position:absolute;z-index:8;left:50%;bottom:0;width:min(540px,100%);padding:.55rem max(1rem,var(--safe-right)) calc(1rem + var(--safe-bottom)) max(1rem,var(--safe-left));display:grid;gap:.85rem;transform:translate(-50%);border:1px solid var(--line);border-bottom:0;border-radius:24px 24px 0 0;background:linear-gradient(155deg,#10382ef5,#061b17fa);box-shadow:0 -18px 48px #00100c47;backdrop-filter:blur(20px);animation:sheet-enter .26s var(--ease-out)}@keyframes sheet-enter{0%{transform:translate(-50%,24px);opacity:0}}.sheet-handle{width:38px;height:4px;margin:0 auto .1rem;border-radius:99px;background:#e2fff13b}.bottom-sheet header{display:flex;justify-content:space-between;align-items:start;gap:1rem}.bottom-sheet h2{margin-top:.18rem;font-family:Georgia,Times New Roman,serif;font-size:1.65rem}.sheet-description{color:var(--ink-soft);font-size:.9rem;line-height:1.45}.sheet-facts{display:flex;gap:.55rem}.sheet-facts span{min-height:34px;padding:.35rem .65rem;display:inline-flex;gap:.3rem;align-items:center;border:1px solid var(--line);border-radius:99px;color:var(--ink-soft);background:#ffffff0a;font-size:.72rem}.sheet-facts svg{width:16px}.map-control-debug{color:#ffcf7a;border-color:#ffb45bb8;box-shadow:inset 0 0 0 3px #050d0cad,inset 0 0 0 4px #ffb25338,0 0 18px #ff8b3938,0 8px 24px #00080861}.debug-reset-location{width:100%;min-height:42px;margin:.7rem 0 .85rem;border:1px solid rgb(123 224 177 / 58%);border-radius:10px;color:var(--mint);background:#062b23b8;font:inherit;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.debug-reset-location:active{transform:scale(.98);background:#144e3cd6}.debug-monster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.bottom-sheet.monster-spawner-sheet{height:min(760px,calc(100dvh - var(--safe-top) - 12px));max-height:calc(100dvh - var(--safe-top) - 12px);grid-template-rows:auto auto auto auto minmax(0,1fr);align-content:stretch;overflow:hidden}.monster-spawner-sheet .debug-monster-grid{min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;align-content:start;scrollbar-gutter:stable}@media(max-height:540px){.bottom-sheet.monster-spawner-sheet{grid-template-rows:auto auto auto minmax(0,1fr);gap:.45rem}.monster-spawner-sheet .sheet-description{display:none}.monster-spawner-sheet .debug-reset-location{margin:.2rem 0}}.debug-monster-choice{min-height:58px;padding:.62rem .65rem;display:flex;gap:.58rem;align-items:center;border:1px solid rgb(225 191 111 / 34%);border-radius:12px;color:var(--ink);background:linear-gradient(145deg,#ffffff1a,#00141152);text-align:left;cursor:pointer}.debug-monster-choice:active{transform:scale(.98);border-color:var(--amber)}.debug-monster-choice>span:last-child{min-width:0;display:grid;gap:.12rem}.debug-monster-choice strong{overflow:hidden;font-family:Georgia,Times New Roman,serif;font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.debug-monster-choice small{color:var(--ink-soft);font-size:.56rem;letter-spacing:.06em;text-transform:uppercase}.debug-monster-swatch{width:16px;height:32px;flex:0 0 auto;border:1px solid rgb(255 246 211 / 62%);border-radius:50% 50% 42% 42%;box-shadow:0 0 14px currentColor;opacity:.84}.combat-hud{position:absolute;inset:0;isolation:isolate;pointer-events:none;--combat-safe-bottom: 7%;--combat-hud-safe-top: 15%}.combat-swipe-layer{position:absolute;z-index:5;top:var(--combat-hud-safe-top);right:2vw;bottom:var(--combat-safe-bottom);left:2vw;pointer-events:auto;touch-action:none;overscroll-behavior:contain;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.combat-swipe-layer.is-locked{cursor:default}.combat-rendered-control{position:absolute;z-index:8;padding:0;border:0;border-radius:50%;color:transparent;background:transparent;box-shadow:none;pointer-events:auto;touch-action:manipulation}.combat-rendered-control:focus-visible{outline:2px solid #ffe89c;outline-offset:4px;background:#ffe89c14}.combat-orbit-input{position:absolute;z-index:30;right:max(6.8dvh,calc(env(safe-area-inset-right) + 18px));bottom:calc(var(--combat-safe-bottom) + 6.8dvh);width:0;height:0;pointer-events:none}.combat-orbit-input.is-open{z-index:40}.combat-orbit-input.is-open .combat-rendered-control{z-index:1}.combat-weapon-toggle{touch-action:none;top:0;left:0;width:clamp(84px,11.6dvh,112px);height:clamp(84px,11.6dvh,112px);transform:translate(-50%,-50%)}.combat-weapon-choice{top:0;left:0;width:clamp(60px,8.2dvh,78px);height:clamp(60px,8.2dvh,78px);transform:translate(calc(-50% + var(--orbit-input-x)),calc(-50% + var(--orbit-input-y)))}.combat-flee-input{left:max(12px,env(safe-area-inset-left));bottom:calc(var(--combat-safe-bottom) + 12px);width:clamp(72px,9.4dvh,94px);height:clamp(72px,9.4dvh,94px)}.combat-recovery-inputs{position:absolute;z-index:18;inset:0;pointer-events:none}.combat-recovery-input{position:absolute;border-radius:8px}.combat-downed-continue-input{z-index:12;transform:none;border-radius:14px}.combat-rendered-control:disabled{pointer-events:none}@media(max-width:480px){.hud-map-rail{gap:.34rem}.context-action{bottom:calc(var(--safe-bottom) + 9rem);width:min(62vw,290px)}.virtual-joystick{width:94px;height:94px}.joystick-thumb{width:38px;height:38px}}@media(orientation:landscape)and (max-height:560px){.joystick-control{position:relative}.travel-speed-cycle{position:absolute;left:calc(100% + 8px);bottom:40px;width:110px;height:44px;min-height:44px}.hud-top-left{max-width:38vw}.bottom-sheet{left:auto;right:0;bottom:0;width:min(390px,46vw);height:100%;max-height:100%;align-content:center;transform:none;border-radius:22px 0 0 22px;border-bottom:1px solid var(--line)}.virtual-joystick{width:90px;height:90px}}.panel-surface{position:absolute;z-index:8;inset:var(--safe-top) var(--safe-right) var(--safe-bottom) auto;width:min(440px,calc(100% - var(--safe-left) - var(--safe-right)));padding:1.15rem;overflow:auto;display:grid;align-content:start;gap:1rem;border:1px solid var(--line);border-radius:22px;background:linear-gradient(160deg,#0f362cf2,#061b17f7);box-shadow:var(--shadow);backdrop-filter:blur(22px);animation:panel-enter .24s var(--ease-out)}@keyframes panel-enter{0%{transform:translate(24px);opacity:0}}.panel-surface>header{display:flex;justify-content:space-between;align-items:start;gap:1rem}.panel-surface h1{margin-top:.15rem;font-family:Georgia,Times New Roman,serif;font-size:2rem;line-height:1}.panel-message{color:var(--ink-soft);font-size:.82rem;line-height:1.45}.settings-list{display:grid;gap:.5rem}.setting-row,.quality-row{min-height:66px;padding:.7rem .75rem;display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:center;border:1px solid var(--line);border-radius:14px;background:#ffffff08}.setting-row>span,.quality-row>span{display:grid;gap:.18rem}.setting-row small,.quality-row small{color:var(--ink-muted);font-size:.7rem;line-height:1.3}.setting-row input{position:absolute;opacity:0}.setting-row i{width:46px;height:26px;padding:3px;border-radius:99px;background:#29483f}.setting-row i:after{content:"";width:20px;height:20px;display:block;border-radius:50%;background:#d6e7df;transition:transform .16s ease}.setting-row input:checked+i{background:var(--emerald)}.setting-row input:checked+i:after{transform:translate(20px);background:#09251e}.quality-row select{min-height:40px;border:1px solid var(--line);border-radius:11px;padding:0 .55rem;color:var(--ink);background:var(--forest-900)}.build-facts{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.build-facts div{padding:.6rem;display:grid;gap:.15rem;border:1px solid var(--line);border-radius:12px;text-align:center}.build-facts dt{color:var(--ink-muted);font-size:.62rem;text-transform:uppercase}.build-facts dd{margin:0;font-size:.75rem;font-weight:800}.danger-link{color:#ffc2b7}@media(max-width:600px){.panel-surface{inset:auto 0 0;width:100%;max-height:calc(100% - var(--safe-top));padding-bottom:calc(1rem + var(--safe-bottom));border-radius:24px 24px 0 0}}.harness-fab{position:fixed;z-index:9;top:calc(var(--safe-top) + 58px);right:var(--safe-right);min-width:178px;min-height:52px;padding:.42rem .58rem;display:grid;grid-template-columns:36px minmax(0,1fr);gap:.55rem;align-items:center;border:1px solid rgb(102 241 194 / 68%);border-radius:12px;color:#e7fff6;background:linear-gradient(135deg,#0e3a30f5,#041916f5),#041916f5;box-shadow:0 10px 30px #0008067f,inset 0 1px #dbfff31f;backdrop-filter:blur(10px);cursor:pointer;text-align:left}.harness-fab:hover{border-color:#9dffda;background:linear-gradient(135deg,#154f41fa,#06221dfa),#06221dfa;box-shadow:0 12px 34px #00080694,0 0 18px #65edbb2e,inset 0 1px #dbfff329}.harness-fab:focus-visible{outline:2px solid #b9ffe6;outline-offset:3px}.harness-fab-mark{width:36px;height:36px;display:grid;place-items:center;border:1px solid rgb(157 255 218 / 48%);border-radius:9px;color:#071d17;background:#79ebbd;box-shadow:0 0 14px #65edbb38;font-family:ui-monospace,Cascadia Code,monospace;font-size:.62rem;font-weight:950;letter-spacing:.06em}.harness-fab-copy{min-width:0;display:grid;gap:.08rem}.harness-fab-copy strong{color:#effff9;font-size:.78rem;line-height:1.1;white-space:nowrap}.harness-fab-copy small{color:#a8ddca;font-family:ui-monospace,Cascadia Code,monospace;font-size:.58rem;line-height:1.15;white-space:nowrap}.harness-fab-copy kbd{margin-left:.18rem;padding:.06rem .22rem;border:1px solid rgb(168 221 202 / 36%);border-radius:4px;color:#dffbef;background:#0008066b;font:inherit}.battle-camera-tuner{--camera-debug-line: rgb(111 238 204 / 48%);position:fixed;z-index:12;top:calc(var(--safe-top) + 136px);right:auto;left:max(8px,var(--safe-left));width:218px;max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 150px);padding:.58rem;overflow-y:auto;display:grid;gap:.48rem;border:1px solid var(--camera-debug-line);border-radius:13px;color:#eafff8;opacity:.5;background:linear-gradient(150deg,#05221ef0,#031112f5);box-shadow:0 12px 38px #00070885,inset 0 1px #ddfff51a;backdrop-filter:blur(10px);transform:none;font-family:ui-monospace,Cascadia Code,monospace;touch-action:manipulation;pointer-events:none}.battle-camera-tuner>*{pointer-events:auto}.battle-camera-tuner header{display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:.35rem;align-items:start;cursor:grab;touch-action:none;user-select:none}.battle-camera-tuner[data-dragging=true] header{cursor:grabbing}.battle-camera-tuner header>div{display:grid;gap:.08rem}.battle-camera-tuner header span{color:#65edbb;font-size:.58rem;font-weight:900;letter-spacing:.1em}.battle-camera-tuner header strong{font-size:.76rem}.battle-camera-tuner header button{min-height:28px;padding:0;font-size:.9rem;line-height:1}.battle-camera-tuner-toggle{position:fixed;z-index:12;top:49%;right:auto;left:max(8px,var(--safe-left));width:48px;height:48px;border:1px solid rgb(111 238 204 / 58%);border-radius:12px;color:#06221b;background:#72edc0;box-shadow:0 10px 28px #0007087a;opacity:.5;transform:translateY(-50%);font:900 .68rem ui-monospace,Cascadia Code,monospace;cursor:pointer}.battle-camera-tuner-toggle:focus-visible{outline:2px solid #d4fff0;outline-offset:3px}.battle-camera-tuner-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.2rem;color:#aee7d4;font-size:.56rem;text-align:center}.battle-camera-tuner-values span{padding:.2rem .12rem;border:1px solid rgb(111 238 204 / 18%);border-radius:5px;background:#00080959}.battle-camera-axis-guide{padding:.3rem .36rem;display:grid;gap:.08rem;border:1px solid rgb(111 238 204 / 22%);border-radius:7px;color:#b9e6d7;background:#00080952;font-size:.51rem;line-height:1.25}.battle-camera-axis-guide strong{color:#f4d67d;font-size:.53rem;letter-spacing:.025em}.battle-camera-tuner button{min-width:0;min-height:36px;padding:.3rem .36rem;border:1px solid var(--camera-debug-line);border-radius:8px;color:#effff9;background:#67eebf14;font:inherit;font-size:.66rem;font-weight:800;cursor:pointer}.battle-camera-tuner button:hover{border-color:#adffe2;background:#67eebf2e}.battle-camera-tuner button:active{transform:translateY(1px)}.battle-camera-tuner button:focus-visible{outline:2px solid #c5ffeb;outline-offset:2px}.battle-camera-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.22rem}.battle-camera-modes button{min-height:31px;padding:.22rem;color:#aee7d4;font-size:.58rem}.battle-camera-modes button.is-active{border-color:#f4d67d;color:#17271f;background:#efd178}.battle-camera-axis-controls{display:grid;gap:.22rem}.battle-camera-axis-controls>div{display:grid;grid-template-columns:minmax(0,1fr) 42px 42px;gap:.24rem;align-items:center}.battle-camera-axis-controls span{color:#8fd7c0;font-size:.62rem;font-weight:900}.battle-camera-axis-controls span b{color:#f4d67d}.battle-camera-axis-controls button{min-height:32px;padding:0;font-size:.92rem}.battle-camera-zoom{display:grid;grid-template-columns:38px 1fr 38px;gap:.28rem;align-items:center;color:#aee7d4;font-size:.58rem;text-align:center}.battle-camera-tuner-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.28rem}.battle-camera-tuner-actions .is-export{grid-column:1 / -1;border-color:#f5d786;color:#14261f;background:#f0cf75}.battle-camera-tuner-actions .battle-scene-toggle{grid-column:1 / -1;border-color:#ffd2779e;color:#ffeec1;background:#efd1781f}.battle-camera-tuner-actions .battle-scene-toggle[aria-pressed=true]{border-color:#65edbb;color:#052219;background:#71e9ba}.battle-camera-tuner-actions .is-export:hover{border-color:#fff0b7;background:#ffe29a}.dialogue-composition-tuner{--dialogue-debug-line: rgb(111 238 204 / 48%);position:fixed;z-index:13;top:calc(var(--safe-top) + 136px);right:max(8px,var(--safe-right));width:270px;max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 150px);padding:.58rem;overflow-y:auto;display:grid;gap:.48rem;border:1px solid var(--dialogue-debug-line);border-radius:13px;color:#eafff8;opacity:.5;background:linear-gradient(150deg,#05221ef0,#031112f5);box-shadow:0 12px 38px #00070885,inset 0 1px #ddfff51a;backdrop-filter:blur(10px);transform:none;font-family:ui-monospace,Cascadia Code,monospace;touch-action:manipulation;pointer-events:none}.dialogue-composition-tuner>*{pointer-events:auto}.dialogue-composition-tuner header{display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:.35rem;align-items:start;cursor:grab;touch-action:none;user-select:none}.dialogue-composition-tuner[data-dragging=true] header{cursor:grabbing}.dialogue-composition-tuner header>div{display:grid;gap:.08rem}.dialogue-composition-tuner header span{color:#65edbb;font-size:.58rem;font-weight:900;letter-spacing:.1em}.dialogue-composition-tuner header strong{font-size:.76rem}.dialogue-composition-tuner header button{min-height:28px;padding:0;font-size:.9rem;line-height:1}.dialogue-composition-tuner-toggle{position:fixed;z-index:13;top:49%;right:max(8px,var(--safe-right));width:52px;height:48px;border:1px solid rgb(111 238 204 / 58%);border-radius:12px;color:#06221b;background:#72edc0;box-shadow:0 10px 28px #0007087a;opacity:.5;transform:translateY(-50%);font:900 .68rem ui-monospace,Cascadia Code,monospace;cursor:pointer}.dialogue-composition-tuner-toggle:focus-visible{outline:2px solid #d4fff0;outline-offset:3px}.dialogue-composition-guide{padding:.3rem .36rem;display:grid;gap:.08rem;border:1px solid rgb(111 238 204 / 22%);border-radius:7px;color:#b9e6d7;background:#00080952;font-size:.51rem;line-height:1.25}.dialogue-composition-guide strong{color:#f4d67d;font-size:.53rem;letter-spacing:.025em}.dialogue-composition-character{padding:.38rem;display:grid;gap:.3rem;border:1px solid rgb(111 238 204 / 22%);border-radius:8px;background:#0008093d}.dialogue-composition-character h3{margin:0;color:#f4d67d;font-size:.62rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.dialogue-composition-axis{display:grid;grid-template-columns:minmax(0,1fr) 30px minmax(76px,1.45fr) 30px;gap:.22rem;align-items:center}.dialogue-composition-axis label{min-width:0;display:grid;gap:.04rem;color:#aee7d4;font-size:.56rem;line-height:1.1}.dialogue-composition-axis output{color:#ecfff8;font-size:.62rem;font-weight:900}.dialogue-composition-axis button,.dialogue-composition-actions button{min-width:0;min-height:30px;padding:.22rem;border:1px solid var(--dialogue-debug-line);border-radius:7px;color:#effff9;background:#67eebf14;font:inherit;font-size:.72rem;font-weight:900;cursor:pointer}.dialogue-composition-axis button:hover,.dialogue-composition-actions button:hover{border-color:#adffe2;background:#67eebf2e}.dialogue-composition-axis button:active,.dialogue-composition-actions button:active{transform:translateY(1px)}.dialogue-composition-axis button:focus-visible,.dialogue-composition-actions button:focus-visible{outline:2px solid #c5ffeb;outline-offset:2px}.dialogue-composition-axis input{width:100%;accent-color:#f4d67d;cursor:ew-resize}.dialogue-composition-actions{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:.28rem}.dialogue-composition-actions .is-export{border-color:#f5d786;color:#14261f;background:#f0cf75}.dialogue-composition-actions .is-export:hover{border-color:#fff0b7;background:#ffe29a}.app-root.flow-exploration .harness-fab{right:calc(var(--safe-right) + 64px)}.app-root:is(.flow-exploration,.flow-area-map) .harness-fab{top:auto;right:max(22px,var(--safe-right));bottom:calc(var(--safe-bottom) + 238px);min-width:44px;min-height:44px;width:44px;padding:5px;grid-template-columns:1fr;gap:0;opacity:.65;border-color:#a4c0ad40;background:#10272b;box-shadow:none}.app-root.flow-area-map .harness-fab{display:none}@media(max-height:560px){.app-root.flow-exploration .harness-fab{right:calc(var(--safe-right) + 76px);bottom:calc(var(--safe-bottom) + 84px)}}.app-root:is(.flow-exploration,.flow-area-map) .harness-fab-copy{display:none}.app-root:is(.flow-exploration,.flow-area-map) .harness-fab-mark{background:transparent;color:#b8c9ba;border:0;box-shadow:none}.developer-harness-input-shield{position:fixed;z-index:29;inset:0;cursor:not-allowed;background:#0008071a}.developer-harness{--dev-bg: #071512;--dev-surface: #0b211c;--dev-surface-raised: #102b24;--dev-line: rgb(151 224 197 / 22%);--dev-line-strong: rgb(151 224 197 / 42%);--dev-text: #ecfff8;--dev-muted: #a8c8bc;--dev-green: #65edbb;--dev-amber: #ffd277;--dev-red: #ff9f91;position:fixed;z-index:30;inset:var(--safe-top) var(--safe-right) var(--safe-bottom) auto;width:min(760px,56vw);min-width:520px;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr);border:1px solid var(--dev-line-strong);border-radius:14px;color:var(--dev-text);background:var(--dev-bg);box-shadow:-18px 20px 80px #000504b8;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:13px;line-height:1.35}.developer-harness.is-collapsed{inset:var(--safe-top) var(--safe-right) auto auto;width:min(480px,calc(100vw - var(--safe-left) - var(--safe-right)));min-width:0;grid-template-rows:auto}.developer-harness>header{min-width:0;padding:.72rem .82rem;display:flex;gap:.75rem;justify-content:space-between;align-items:center;border-bottom:1px solid var(--dev-line);background:#091c17}.developer-harness.is-collapsed>header{border-bottom:0}.developer-harness>header>div:first-child{min-width:0}.developer-harness>header .eyebrow{margin:0;color:var(--dev-green);font-family:ui-monospace,Cascadia Code,monospace;font-size:.62rem;letter-spacing:.11em}.developer-harness h2{margin:.12rem 0 0;overflow:hidden;color:var(--dev-text);font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.developer-harness-header-actions{display:flex;flex:0 0 auto;gap:.4rem;align-items:center}.developer-harness-header-actions label{padding:.35rem .48rem;display:flex;gap:.35rem;align-items:center;border:1px solid var(--dev-line);border-radius:7px;color:var(--dev-muted);font-size:.68rem;white-space:nowrap}.developer-harness-header-actions input{accent-color:var(--dev-green)}.developer-harness button,.developer-harness select,.developer-harness input{font:inherit}.developer-harness button,.developer-harness .dev-file-button{min-height:32px;padding:.36rem .62rem;border:1px solid var(--dev-line);border-radius:7px;color:var(--dev-text);background:#ffffff0a;cursor:pointer}.developer-harness button:hover:not(:disabled),.developer-harness .dev-file-button:hover{border-color:var(--dev-line-strong);background:#65edbb1a}.developer-harness button:focus-visible,.developer-harness input:focus-visible,.developer-harness select:focus-visible,.developer-harness summary:focus-visible{outline:2px solid var(--dev-green);outline-offset:2px}.developer-harness button:disabled{cursor:not-allowed;opacity:.38}.developer-harness .dev-primary{border-color:#63dcae;color:#062119;background:#71e9ba;font-weight:800}.developer-harness .dev-primary:hover:not(:disabled){border-color:#b7ffe3;color:#041b14;background:#91f5d0}.developer-harness .dev-danger{border-color:#ff9f918f;color:#ffd8d1;background:#82231857}.developer-harness .dev-danger:hover:not(:disabled){border-color:#ffb2a6;color:#fff1ed;background:#9a302285}.developer-harness>nav,.dev-subtabs{padding:.42rem .5rem;display:flex;gap:.32rem;overflow-x:auto;border-bottom:1px solid var(--dev-line);background:#081813;scrollbar-width:thin}.developer-harness>nav button,.dev-subtabs button,.quality-buttons button{min-height:34px;white-space:nowrap}.developer-harness>nav button.active,.dev-subtabs button.active{border-color:var(--dev-green);color:#061d16;background:var(--dev-green);font-weight:800}.lab-body{min-width:0;padding:.9rem;overflow:auto;user-select:text;scrollbar-color:#376a59 #071512}.lab-body.is-combat-lab{padding:0}.lab-body>section:not(.developer-combat-lab),.lab-body>section:not(.developer-combat-lab)>*{min-width:0}.lab-body>section:not(.developer-combat-lab){display:grid;gap:.85rem}.lab-body h3{margin:0;color:var(--dev-amber);font-size:1.2rem}.lab-body label{display:grid;gap:.3rem;color:var(--dev-muted);font-size:.75rem}.lab-body input:not([type=checkbox]):not([type=file]),.lab-body select{min-height:36px;border:1px solid var(--dev-line);border-radius:7px;padding:.3rem .52rem;color:var(--dev-text);background:#0d2821}.lab-grid,.dev-metric-grid{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem}.lab-grid>div,.dev-metric{min-width:0;padding:.55rem .62rem;display:grid;gap:.14rem;border:1px solid var(--dev-line);border-radius:7px;background:#ffffff08}.lab-grid dt,.dev-metric dt{color:var(--dev-muted);font-size:.62rem;font-weight:700;letter-spacing:.055em;text-transform:uppercase}.lab-grid dd,.dev-metric dd{margin:0;overflow-wrap:anywhere;color:var(--dev-text);font-family:ui-monospace,Cascadia Code,monospace;font-size:.7rem}.dev-metric.is-good{border-color:#65edbb7a}.dev-metric.is-warn{border-color:#ffd27794}.dev-metric.is-danger{border-color:#ff9f919e;background:#7e1f1633}.quality-buttons,.dev-action-row{display:flex;flex-wrap:wrap;gap:.38rem;align-items:center}.asset-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.asset-gallery>div{min-width:0;padding:.62rem;display:grid;gap:.18rem;border:1px solid var(--dev-line);border-radius:8px}.asset-preview{width:100%;aspect-ratio:1.15;display:block;border-radius:7px;background-color:#ffffff0a;background-repeat:no-repeat}.asset-gallery strong,.asset-gallery span,.asset-gallery small{overflow-wrap:anywhere}.asset-gallery span,.asset-gallery small{color:var(--dev-muted);font-size:.68rem}.lab-body pre,.dev-section pre{max-height:320px;margin:0;overflow:auto;padding:.65rem;border:1px solid var(--dev-line);border-radius:7px;color:#cdfbea;background:#030d0b;font:.68rem/1.45 ui-monospace,Cascadia Code,monospace;white-space:pre-wrap}.lab-error,.dev-warning{color:#ffc0b5}.developer-combat-lab{min-width:0;display:grid;align-content:start}.dev-global-bar{position:sticky;z-index:3;top:0;padding:.55rem .62rem;display:grid;gap:.45rem;border-bottom:1px solid var(--dev-line-strong);background:#051310f5;box-shadow:0 8px 18px #00060542;backdrop-filter:blur(12px)}.dev-live-status{display:flex;flex-wrap:wrap;gap:.48rem;align-items:center;color:var(--dev-muted);font-family:ui-monospace,Cascadia Code,monospace;font-size:.68rem}.dev-live-status>span{width:9px;height:9px;border-radius:50%;background:#72827c;box-shadow:0 0 0 3px #72827c24}.dev-live-status>span.is-live{background:var(--dev-green);box-shadow:0 0 0 3px #65edbb24,0 0 12px #65edbb73}.dev-live-status strong{color:var(--dev-text)}.dev-live-status code{padding:.14rem .32rem;border:1px solid var(--dev-line);border-radius:4px;color:#bfe4d7;background:#07130f}.dev-global-bar select{width:72px}.dev-subtabs{position:sticky;z-index:2;top:95px;background:#071512f7}.dev-status{margin:0;padding:.5rem .68rem;border-bottom:1px solid var(--dev-line);color:#c4dfd5;background:#091c17;font-size:.72rem}.dev-panel-grid{padding:.68rem;display:grid;gap:.55rem}.dev-section{min-width:0;border:1px solid var(--dev-line);border-radius:9px;background:var(--dev-surface);overflow:clip}.dev-section>summary{padding:.58rem .68rem;color:var(--dev-amber);background:var(--dev-surface-raised);cursor:pointer;font-size:.75rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase}.dev-section>div{padding:.64rem;display:grid;gap:.55rem}.dev-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem}.dev-control{min-width:0;padding:.48rem .54rem;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:center;border:1px solid var(--dev-line);border-radius:7px;color:var(--dev-muted);background:#ffffff05}.dev-control.is-overridden{border-color:#ffd27794;box-shadow:inset 3px 0 var(--dev-amber)}.dev-control>span:first-child{min-width:0;display:grid;gap:.12rem}.dev-control b,.dev-toggle b{color:var(--dev-text);font-size:.7rem}.dev-control small,.dev-toggle small{color:var(--dev-muted);font:.61rem ui-monospace,Cascadia Code,monospace}.dev-control>select,.dev-control>input,.dev-control-input input{width:112px}.dev-control-input{display:flex;gap:.28rem;align-items:center}.dev-control-input button{min-height:30px;padding-inline:.4rem;font-size:.62rem}.dev-toggle{padding:.48rem .55rem;display:flex!important;grid-template-columns:none!important;gap:.48rem!important;align-items:flex-start;border:1px solid var(--dev-line);border-radius:7px;background:#ffffff05}.dev-toggle input{margin-top:.14rem;accent-color:var(--dev-green)}.dev-toggle>span{display:grid;gap:.12rem}.dev-help{margin:0;color:var(--dev-muted);font-size:.7rem}.dev-affinity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.dev-affinity-grid label{padding:.45rem;display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:.45rem;align-items:center;border:1px solid var(--dev-line);border-radius:7px;text-transform:capitalize}.dev-affinity-grid label.is-active{border-color:var(--dev-amber);box-shadow:inset 3px 0 var(--dev-amber)}.dev-swatch-row{display:flex;flex-wrap:wrap;gap:.7rem;color:var(--dev-muted);font-size:.67rem}.dev-swatch-row span{display:flex;gap:.3rem;align-items:center}.dev-swatch-row i{width:20px;height:3px;display:inline-block;background:#fff}.dev-swatch-row i.raw{background:#ff5b57}.dev-swatch-row i.candidate{background:#4de9ff}.dev-swatch-row i.rejected{background:#ff4ec8}.dev-swatch-row i.confirmed{background:#6aff9d}.dev-file-button{position:relative;display:inline-flex;align-items:center;overflow:hidden}.dev-file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.dev-matrix{max-height:390px;overflow:auto;display:grid;gap:.35rem}.dev-matrix>button{padding:.5rem;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:.48rem;align-items:center;border:1px solid var(--dev-line);border-radius:7px;text-align:left}.dev-matrix strong{color:var(--dev-amber);font-family:ui-monospace,Cascadia Code,monospace}.dev-matrix span{min-width:0;overflow-wrap:anywhere;color:var(--dev-muted);font-size:.68rem}.dev-matrix small{color:#d1e9e0;font-size:.64rem}@media(max-width:920px){.developer-harness{width:min(680px,calc(100vw - var(--safe-left) - var(--safe-right)));min-width:0}}@media(max-width:620px){.harness-fab{top:calc(var(--safe-top) + 50px);min-width:158px;min-height:48px;grid-template-columns:32px minmax(0,1fr);gap:.46rem}.harness-fab-mark{width:32px;height:32px}.harness-fab-copy kbd{display:none}.battle-camera-tuner{top:calc(var(--safe-top) + 150px);right:auto;left:max(6px,var(--safe-left));width:204px;padding:.48rem;gap:.38rem;transform:none}.battle-camera-tuner-toggle{top:calc(var(--safe-top) + 150px);right:auto;left:max(6px,var(--safe-left));transform:none}.dialogue-composition-tuner{top:calc(var(--safe-top) + 150px);right:auto;left:max(6px,var(--safe-left));width:min(270px,calc(100vw - var(--safe-left) - var(--safe-right) - 12px));padding:.48rem;gap:.38rem;transform:none}.dialogue-composition-tuner-toggle{top:calc(var(--safe-top) + 150px);right:auto;left:max(6px,var(--safe-left));transform:none}.developer-harness,.developer-harness.is-collapsed{inset:0;width:100%;min-width:0;border:0;border-radius:0}.developer-harness.is-collapsed{inset:0 0 auto}.developer-harness>header{padding-top:calc(.55rem + var(--safe-top))}.developer-harness-header-actions label{display:none}.dev-global-bar{position:static}.dev-subtabs{top:0}.dev-control-grid,.dev-affinity-grid{grid-template-columns:1fr}.dev-control>select,.dev-control>input,.dev-control-input input{width:104px}}@media(max-width:390px){.lab-grid,.dev-metric-grid,.asset-gallery{grid-template-columns:1fr}.dev-matrix>div{grid-template-columns:24px minmax(0,1fr)}.dev-matrix button{grid-column:2}}.app-root.flow-combat:has([data-phase=player-attack],[data-phase=player-defense]) .harness-fab{top:calc(15% + 8px);min-width:44px;min-height:44px;width:44px;padding:5px;grid-template-columns:1fr;gap:0;opacity:.65}.app-root.flow-combat:has([data-phase=player-attack],[data-phase=player-defense]) .harness-fab-copy{display:none}html[data-battle-scene-fade]:not([data-battle-scene-fade="0.000"]) .harness-fab{visibility:hidden;pointer-events:none}
