.tool-layout{display:flex;position:relative;flex:1;min-height:0;width:100%}.catalog{width:var(--panel-w);min-width:var(--panel-w);height:100%;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);transition:margin-left var(--dur-3) var(--ease-inout)}.catalog-parts{flex-direction:row}.panel-collapsed .catalog{margin-left:calc(-1 * var(--panel-w))}.is-narrow .catalog{position:absolute;top:0;bottom:0;left:0;height:auto;width:min(var(--panel-w),100%);min-width:0;z-index:var(--z-drawer)}.is-narrow .panel-toggle{left:min(var(--panel-w),calc(100% - 42px));z-index:calc(var(--z-drawer) + 1)}.is-narrow.panel-collapsed .panel-toggle{left:0}.is-narrow .hud-left{left:50px;right:var(--sp-2)}.is-narrow .modebar{flex-wrap:wrap}.cat-rail{width:66px;min-width:66px;height:100%;display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-2) 0;overflow-y:auto;background:var(--surface-deep)}.cat-ico{width:48px;height:48px;padding:var(--sp-1);border-radius:var(--r-md);cursor:pointer;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;transition:background var(--dur-1),border-color var(--dur-1)}.cat-ico img{max-width:100%;max-height:100%;object-fit:contain;filter:brightness(.92)}.cat-ico:hover{background:var(--surface-hover)}.cat-ico.on{background:var(--accent-soft);border-color:var(--game-amber)}.cat-ico.on img{filter:brightness(1.1)}.cat-ico-all{font-size:var(--fs-lg);color:var(--muted)}.cat-ico.on .cat-ico-all{color:var(--accent-ink)}.cat-ico-txt{font-size:var(--fs-lg);font-weight:var(--fw-black);color:var(--muted)}.cat-main{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;background-color:var(--bp-bg);background-image:linear-gradient(var(--bp-line) 1px,transparent 1px),linear-gradient(90deg,var(--bp-line) 1px,transparent 1px),linear-gradient(160deg,var(--bp-grad-a),var(--bp-grad-b) 70%);background-size:26px 26px,26px 26px,100% 100%}.cat-main .search{margin:var(--sp-2);width:auto;background:#090f1699;border-color:var(--bp-border);color:var(--bp-text)}.cat-main .search::placeholder{color:var(--bp-ph)}.panel-toggle{position:absolute;top:50%;left:var(--panel-w);z-index:var(--z-raised);transform:translateY(-50%);width:42px;height:210px;padding:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,var(--surface-hover),var(--surface));cursor:pointer;border:none;clip-path:polygon(0 0,100% 16%,100% 84%,0 100%);filter:drop-shadow(2px 0 6px var(--shadow));transition:left var(--dur-3) var(--ease-inout),background var(--dur-1)}.panel-toggle:hover{background:linear-gradient(90deg,var(--border-2),var(--surface-hover))}.panel-toggle:focus-visible:before{width:8px;background:var(--focus);opacity:1}.panel-toggle .pt-label{writing-mode:vertical-rl;transform:rotate(180deg);font-size:var(--fs-xs);font-weight:var(--fw-black);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink);pointer-events:none}.panel-toggle:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--game-amber);opacity:.9}.panel-collapsed .panel-toggle{left:0}.panel-hint-key{position:absolute;top:50%;left:calc(var(--panel-w) + 56px);z-index:var(--z-raised);transform:translateY(-50%);pointer-events:none;padding:5px 11px;border-radius:var(--r-md);background:var(--key-bg);color:var(--key-fg);font-size:var(--fs-xs);font-weight:var(--fw-black);letter-spacing:var(--tr-wide);box-shadow:0 2px 6px var(--shadow);transition:left var(--dur-3) var(--ease-inout)}.panel-collapsed .panel-hint-key{left:56px}.search{width:100%;min-height:var(--ctl-h-sm);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border-3);background:var(--surface-deep);color:var(--text);font-size:var(--fs-sm);transition:border-color var(--dur-1)}.search::placeholder{color:var(--muted)}.search:focus{border-color:var(--focus)}.chip{min-height:var(--ctl-h-xs);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-pill);font-size:var(--fs-2xs);cursor:pointer;background:var(--surface-deep);color:var(--muted);border:1px solid var(--border-2);transition:border-color var(--dur-1),color var(--dur-1),background var(--dur-1)}.chip:hover:not(:disabled){border-color:var(--border-3);color:var(--text-2)}.chip:disabled{opacity:.4;cursor:default}.chip:has(svg),.chip.has-ico{display:inline-flex;align-items:center;justify-content:center;gap:5px}.chip:has(svg)>svg,.chip.has-ico .brand-ico{flex:none}.chip.on{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-line)}.cat-main .chip.on{background:var(--bp-sel);color:var(--bp-on);border-color:var(--bp-sel-border)}.subgroups{display:flex;flex-wrap:wrap;gap:5px;padding:var(--sp-2) 2px var(--sp-1)}.more{display:block;width:100%;margin:var(--sp-2) 0 var(--sp-1);padding:var(--sp-2);background:var(--surface-deep);color:var(--muted);border:1px solid var(--border-2);border-radius:var(--r-sm);font-size:var(--fs-xs);cursor:pointer;transition:border-color var(--dur-1),color var(--dur-1)}.more:hover{border-color:var(--accent-line);color:var(--text-2)}.catalog-list{flex:1;overflow-y:auto;padding:var(--sp-1) var(--sp-3) var(--sp-4)}.group{margin-bottom:var(--sp-4);content-visibility:auto;contain-intrinsic-size:auto 320px}.group-title{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 2px var(--sp-2);font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--bp-on);text-shadow:0 1px 3px rgba(0,0,0,.4)}.group-badge{font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.02em;color:var(--bp-text-4);padding:2px var(--sp-2);border-radius:var(--r-sm);background:#00000038;border:1px solid rgba(255,255,255,.16)}.group-badge.is-required{color:var(--on-accent);background:var(--accent);border-color:transparent;white-space:nowrap}.isec-title .group-badge.is-required,.bparts-cat-title .group-badge.is-required{margin-inline-start:var(--sp-2)}.cat-head{margin:var(--sp-4) 2px var(--sp-1);padding-bottom:var(--sp-1);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--bp-text-2);border-bottom:1px solid var(--bp-border)}.group:first-child .cat-head{margin-top:0}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--sp-2)}.tile{padding:0;border:none;background:none;cursor:pointer;display:flex;flex-direction:column;gap:var(--sp-1)}.tile-cell{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1 / 1;padding:5px;overflow:hidden;border-radius:var(--r-sm);border:1px solid var(--bp-plate-border);transition:border-color var(--dur-1),background-color var(--dur-1),transform var(--dur-1) var(--ease-out)}.tile-img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}.tile:hover .tile-cell{border-color:var(--bp-hover-border);background-color:var(--bp-plate-hover)}.tile:active .tile-cell{transform:scale(.97)}.tile-cap{font-size:var(--fs-2xs);line-height:var(--lh-snug);color:var(--text-2);font-weight:var(--fw-medium);text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tile-size{position:absolute;top:3px;right:4px;z-index:1;font-size:9.5px;font-weight:var(--fw-bold);font-family:var(--font-mono);color:var(--bp-text-2);background:#0006;padding:0 4px;border-radius:var(--r-xs)}.tile-kind{position:absolute;top:3px;left:4px;z-index:1;font-size:9.5px;font-weight:var(--fw-bold);color:#f0d9a8;background:#46300cb8;padding:0 4px;border-radius:var(--r-xs)}.cat-main .tile-cell{border-color:var(--bp-tile-border);background:var(--bp-tile-bg);background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:14px 14px,14px 14px}.cat-main .tile:hover .tile-cell{border-color:var(--bp-on);background-color:var(--bp-tile-hover)}.cat-main .tile.on .tile-cell{border-color:var(--game-amber);background-color:var(--game-amber-soft);box-shadow:inset 0 0 0 1px var(--game-amber)}.cat-main .tile-cap{color:var(--bp-text);font-weight:var(--fw-semi)}.cat-main .empty{color:var(--bp-text-3)}.cat-main .more,.cat-main .chip{background:#090f1673;color:var(--bp-text-2);border-color:var(--bp-border)}.part{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;padding:var(--sp-2);border-radius:var(--r-sm);background:transparent;border:1px solid transparent;color:var(--text-2);cursor:pointer;font-size:var(--fs-sm)}.part:hover{background:var(--surface-hover)}.part.on{background:var(--bp-sel);border-color:var(--bp-sel-border);color:var(--bp-on)}.empty{color:var(--muted-2);padding:var(--sp-4);font-size:var(--fs-sm)}.stage{position:relative;flex:1;min-width:0;min-height:0}.build-loader{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-raised);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);pointer-events:none;background:var(--bp-scrim)}.bl-walk{width:min(91px,12vw);aspect-ratio:190 / 196;overflow:hidden}.bl-walk img{height:100%;display:block;max-width:none}.bl-text{color:var(--bp-text-2);font-size:var(--fs-sm);font-weight:var(--fw-semi)}.bl-bar{width:min(160px,26vw);height:3px;border-radius:var(--r-xs);background:var(--bp-tile-bg);overflow:hidden}.bl-bar i{display:block;height:100%;background:var(--game-amber);transition:width var(--dur-3) var(--ease-out)}.bl-pct{color:var(--bp-text-3);font-size:var(--fs-2xs)}@media (prefers-reduced-motion: no-preference){.bl-walk img{animation-name:bl-walk;animation-iteration-count:infinite}@keyframes bl-walk{0%{transform:translate(0)}to{transform:translate(-100%)}}}.build-notice{display:flex;align-items:flex-start;gap:var(--sp-3);flex-wrap:wrap;margin:var(--sp-4) 0 0;max-width:min(680px,100%);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);border:1px solid var(--warn-ink);background:var(--overlay-strong);color:var(--text);font-size:var(--fs-xs)}.build-notice.is-float{position:absolute;top:var(--sp-3);left:50%;transform:translate(-50%);z-index:var(--z-dropdown);align-items:center;margin:0;max-width:min(680px,calc(100% - 2 * var(--sp-4)))}.build-notice-title{display:flex;align-items:center;gap:var(--sp-2);color:var(--warn-ink)}.build-notice.is-alert{border-color:var(--danger)}.build-notice.is-alert .build-notice-title{color:var(--danger-ink)}.build-notice-part{color:var(--accent-ink)}a.build-notice-part{text-decoration:underline;text-underline-offset:2px}a.build-notice-part:hover{color:var(--text)}.build-notice ul{margin:0;padding-left:var(--sp-4)}.build-notice code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs)}.build-notice .btn{flex:none;padding:var(--sp-1) var(--sp-2);font-size:var(--fs-2xs)}.hovercard{position:absolute;top:var(--sp-4);left:80px;z-index:var(--z-dropdown);width:388px;max-height:calc(100% - 200px);overflow-y:auto;background:var(--overlay-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-2);border-radius:var(--r-lg);box-shadow:var(--sh-3);pointer-events:none;animation:hc-in var(--dur-1) var(--ease-out)}@keyframes hc-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (pointer: coarse){.hovercard{display:none}}.hc-head{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:linear-gradient(120deg,var(--bp-head-a),var(--bp-head-b));border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:1px solid var(--bp-head-line)}.hc-head-txt{flex:1;min-width:0}.hc-cat{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--bp-text-2)}.hc-tier{font-size:var(--fs-2xs);font-weight:var(--fw-bold);padding:1px 7px;border-radius:var(--r-sm);background:#00000047;color:var(--bp-text-4);text-transform:capitalize}.hc-name{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--bp-on);margin-top:3px;line-height:var(--lh-snug)}.hc-body{padding:var(--sp-3) var(--sp-4) var(--sp-4)}.hc-dim{font-size:var(--fs-xs);font-weight:var(--fw-semi);color:var(--text-2)}.hc-desc{margin-top:var(--sp-2);font-size:var(--fs-xs);line-height:var(--lh-base);color:var(--text-2);white-space:pre-line}.hc-bars{margin-top:var(--sp-3);display:flex;flex-direction:column;gap:7px}.hc-bar{display:grid;grid-template-columns:1fr 150px;align-items:center;gap:var(--sp-3)}.hc-bar-left{text-align:right;font-size:var(--fs-xs);color:var(--muted)}.hc-bar-left b{color:var(--text);font-weight:var(--fw-bold);margin-left:5px}.hc-track{height:12px;background:var(--hc-track);border-radius:var(--r-xs);overflow:hidden;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 6px,transparent 6px 12px)}.hc-fill{display:block;height:100%;background:linear-gradient(90deg,var(--bp-fill-a),var(--bp-text-2));border-radius:var(--r-xs)}.hc-cost{margin-top:var(--sp-4);display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.hc-cost-title{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-2)}.hc-cost-item{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--text);font-weight:var(--fw-semi)}.hc-cost-item img{width:20px;height:20px;object-fit:contain}.toolbar{position:absolute;bottom:0;left:0;right:0;z-index:var(--z-raised);display:flex;align-items:center;gap:var(--sp-4);justify-content:space-between;padding:var(--sp-2) var(--sp-4);background:var(--overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);padding-bottom:max(var(--sp-2),env(safe-area-inset-bottom))}.toolbar button{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border:1px solid var(--border-3);background:var(--surface-deep);color:var(--text-2);cursor:pointer;font-size:var(--fs-sm);transition:border-color var(--dur-1),color var(--dur-1)}.toolbar button:hover:not(:disabled){border-color:var(--accent-line)}.toolbar button:disabled{opacity:.4;cursor:default}.toolbar button.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger-ink)}.tb-left{display:flex;gap:var(--sp-3);align-items:center;min-width:200px}.tb-count{font-size:var(--fs-sm);font-weight:var(--fw-semi)}.tb-count.is-near{color:var(--warn-ink)}.tb-sel{font-size:var(--fs-xs);color:var(--accent-ink)}.tb-mid{display:flex;gap:5px;align-items:center;flex-wrap:wrap;min-width:0}.tb-hint{font-size:var(--fs-xs);color:var(--muted-2)}.tb-right{display:flex;gap:var(--sp-1)}.toolbar{flex-wrap:wrap}.toolbar .tb-hint{margin:0;max-width:none;white-space:nowrap}.info-desc{font-size:var(--fs-md);line-height:var(--lh-base);color:var(--text-2);white-space:pre-line;max-width:var(--measure)}.hotkeys{position:absolute;bottom:calc(var(--toolbar-h) + var(--sp-1));z-index:var(--z-raised);display:flex;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-md);background:var(--overlay-soft);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);left:var(--sp-2);right:var(--sp-2);margin-inline:auto;width:fit-content;max-width:100%;flex-wrap:wrap;justify-content:center}.hk{display:flex;align-items:center;gap:7px;background:none;border:none;color:var(--text-2);cursor:pointer;padding:3px var(--sp-2);font-size:var(--fs-xs);border-radius:var(--r-sm)}.hk:hover{color:var(--text);background:var(--hover-tint)}.hk-label{white-space:nowrap}.hk-key{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;border-radius:var(--r-sm);background:var(--key-bg);color:var(--key-fg);font-weight:var(--fw-bold);font-size:var(--fs-xs);box-shadow:0 1px 0 var(--key-shadow)}.hk:hover .hk-key{background:#fff}.hk.is-hint{cursor:default}.hk.is-hint:hover{color:var(--text-2);background:none}.hk.is-hint .hk-key+.hk-key{margin-left:-4px}.hk.is-hint:hover .hk-key{background:var(--key-bg)}.camera-speed-trigger{border:1px solid var(--border-3);color:var(--text);gap:var(--sp-2)}.camera-speed-trigger[aria-expanded=true]{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.ui-pop.camera-speed-pop{width:300px;padding:var(--sp-4)}.camera-speed-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);font-weight:var(--fw-bold)}.camera-speed-heading output{color:var(--accent-ink);font-variant-numeric:tabular-nums}.camera-speed-keys{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-1) 0 var(--sp-3);color:var(--text-2);font-size:var(--fs-xs)}.camera-speed-keys [role=img]{display:inline-flex;gap:2px}.camera-speed-range{display:block;width:100%;height:28px;padding:0;margin:0;border:0;background:transparent;box-shadow:none;accent-color:var(--accent);cursor:pointer}.camera-speed-limits{display:flex;justify-content:space-between;color:var(--text-2);font-size:var(--fs-xs)}.camera-speed-presets{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.camera-speed-presets button{flex:1;min-height:36px;border:1px solid var(--border-3);border-radius:var(--r-sm);background:transparent;color:var(--text);cursor:pointer}.camera-speed-presets button:hover{background:var(--hover-tint)}.camera-speed-presets button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.camera-speed-boost{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-3) 0 var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-2)}.camera-speed-reset{padding:var(--sp-1) 0;border:0;background:none;color:var(--text-2);text-decoration:underline;font-size:var(--fs-xs);cursor:pointer}.camera-speed-reset:disabled{opacity:.55;cursor:default}.camera-speed-reset:not(:disabled):hover{color:var(--text)}.jlegend{position:absolute;left:var(--sp-4);z-index:var(--z-raised);max-width:210px;bottom:calc(var(--toolbar-h) + var(--hotkeys-h) + var(--sp-2) + env(safe-area-inset-bottom,0px));padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--overlay-soft);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border)}.jlegend-hint{margin:0;font-size:var(--fs-xs);color:var(--muted)}.jlegend-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.jlegend-list li{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-2)}.jlegend-ico{flex:none;width:20px;height:20px;object-fit:contain}.hud-left{position:absolute;top:60px;left:var(--sp-4);z-index:var(--z-raised);display:flex;align-items:flex-start;gap:var(--sp-2)}.floors{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-lg);background:var(--overlay-soft);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border)}.modebar{display:flex;gap:var(--sp-2)}.mode-chip{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--overlay-soft);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);color:var(--text-2);cursor:pointer;font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:.06em;text-transform:uppercase;text-align:left;max-width:190px;line-height:1.25}.mode-chip:hover{color:var(--text);border-color:var(--border-2)}.mode-chip.on{color:var(--accent-ink);border-color:var(--accent-ink);background:var(--accent-soft)}.mode-chip.on .mode-key{color:var(--accent-ink);border-color:var(--accent-ink)}.mode-key{flex:none;min-width:22px;padding:2px 6px;text-align:center;border:1px solid var(--border-2);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-2)}.floor-key{padding:var(--sp-1)}.lights-key{margin-top:var(--sp-1);opacity:.45}.lights-key.on{opacity:1}.lights-key.on .hk-key{color:var(--game-lamp);border-color:var(--game-lamp-border);background:var(--game-lamp-bg)}.floor-list{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--sp-1) 0}.floor-item{width:26px;height:24px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--muted-2);border-radius:var(--r-sm);transition:color var(--dur-1),background var(--dur-1),opacity var(--dur-1);background:none;border:0;padding:0;cursor:pointer}.floor-item:hover{color:var(--text)}.floor-item.on{color:var(--accent-ink);background:var(--accent-soft)}.floor-item.hidden-floor{opacity:.4;text-decoration:line-through}.floor-item.hidden-floor:hover{opacity:1}.stat-row{display:flex;justify-content:space-between;gap:var(--sp-4);font-size:var(--fs-sm);padding:2px 0}.stat-label{color:var(--muted)}.stat-val{color:var(--text);font-variant-numeric:tabular-nums;font-weight:var(--fw-semi)}.inspector{position:absolute;top:56px;right:var(--sp-4);z-index:var(--z-raised);min-width:190px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border)}.inspector.game{width:var(--ins-w);padding:0;overflow:hidden;background:var(--overlay-strong);border:1px solid var(--border-3);border-radius:var(--r-lg);box-shadow:var(--sh-2)}.ins-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) var(--sp-2);border-bottom:1px solid var(--border-2)}.ins-name{flex:1;background:none;border:none;color:var(--text);font-size:var(--fs-base);font-weight:var(--fw-black);letter-spacing:var(--tr-wide);text-transform:uppercase}.ins-name::placeholder{color:var(--muted-2);text-transform:none;font-weight:var(--fw-bold);letter-spacing:0}.ins-pencil{color:var(--muted);font-size:var(--fs-md)}.inspector.game.is-narrow{top:auto;right:var(--sp-2);left:50px;width:auto;bottom:calc(var(--toolbar-h) + var(--hotkeys-h) + var(--warn-h, 0px) + var(--sp-3) + env(safe-area-inset-bottom,0px));max-height:50vh;overflow-y:auto}.inspector.game.is-folded>*:not(.ins-head){display:none}.inspector.game.is-folded .ins-head{border-bottom:none}.ins-fold{flex:none;width:44px;height:44px;margin:-10px -10px -10px 0;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--muted);cursor:pointer}.ins-fold:hover{color:var(--text)}.ins-bar{padding:var(--sp-2) var(--sp-4) var(--sp-2)}.ins-bar-head{display:flex;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-2);font-weight:var(--fw-semi);margin-bottom:6px}.ins-bar-val{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.ins-bar-dim{color:var(--muted-2);font-weight:var(--fw-medium)}.ins-track{height:10px;border-radius:var(--r-xs);background:var(--hc-track);overflow:hidden}.ins-fill{height:100%;background:linear-gradient(90deg,var(--game-amber),var(--game-amber-2));border-radius:var(--r-xs)}.ins-line{display:flex;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);color:var(--text-2);font-weight:var(--fw-semi)}.ins-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3) var(--sp-2);padding:var(--sp-3) var(--sp-4) var(--sp-4);margin-top:var(--sp-1);border-top:1px solid var(--border-2)}.ins-cell{display:flex;align-items:center;gap:var(--sp-2);padding:2px;min-width:0}.ins-ico{width:38px;height:38px;object-fit:contain;flex:none}.ins-cell-txt{display:flex;flex-direction:column;min-width:0;line-height:var(--lh-tight)}.ins-cell-txt span{color:var(--muted);font-size:var(--fs-2xs)}.ins-cell-txt b{color:var(--text);font-size:var(--fs-lg);font-weight:var(--fw-black);font-variant-numeric:tabular-nums}.ins-cost{padding:var(--sp-3) var(--sp-4) var(--sp-3);border-top:1px solid var(--border-2)}.ins-cost-title{font-size:var(--fs-xs);color:var(--muted);font-weight:var(--fw-semi);margin-bottom:7px}.ins-cost-row{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-2);align-items:center}.ins-cost-item{display:flex;align-items:center;gap:4px;min-width:0}.ins-res-ico{width:22px;height:22px;object-fit:contain;flex:none}.ins-cost-item span{color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.warnstack{position:absolute;right:var(--sp-4);z-index:var(--z-raised);width:var(--ins-w);bottom:calc(var(--toolbar-h) + var(--hotkeys-h) + var(--sp-2) + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:var(--sp-2)}.warn-item{position:relative}.warn-bar{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:38px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);cursor:pointer;background:var(--overlay-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-2);color:var(--text-2);font-size:var(--fs-xs);text-align:left;box-shadow:var(--sh-1);transition:border-color var(--dur-1),color var(--dur-1),background var(--dur-1)}.warn-bar.is-core{border-color:var(--warn-core-line);color:var(--warn-core-ink)}.warn-bar.is-info{border-color:var(--warn-info-line);color:var(--warn-info-ink)}.warn-bar.is-alert{border-color:var(--warn-alert-line);color:var(--warn-alert-ink)}.warn-bar.is-open,.warn-bar:hover{background:var(--overlay)}.warn-ico{flex:none;width:20px;height:20px;background:currentColor;-webkit-mask:url(/icons/game/icon-circleWarning.png) center / contain no-repeat;mask:url(/icons/game/icon-circleWarning.png) center / contain no-repeat}.warn-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;letter-spacing:var(--tr-caps);font-weight:var(--fw-bold)}.warn-count{flex:none;font-variant-numeric:tabular-nums;font-weight:var(--fw-bold)}.warn-card{position:absolute;right:100%;bottom:0;margin-right:var(--sp-2);width:var(--ins-w);z-index:var(--z-dropdown);display:flex;flex-direction:column;max-height:60vh;border-radius:var(--r-md);overflow:hidden;background:var(--overlay-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-3);box-shadow:var(--sh-2)}.warn-card-head{display:flex;align-items:center;gap:var(--sp-2);min-height:38px;padding:var(--sp-2) var(--sp-3);background:var(--surface-2);border-bottom:1px solid var(--border-2);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text)}.warn-card.is-core .warn-card-head{color:var(--warn-core-ink)}.warn-card.is-info .warn-card-head{color:var(--warn-info-ink)}.warn-card.is-alert .warn-card-head{color:var(--warn-alert-ink)}.warn-card-title{flex:1;min-width:0}.warn-card-count{flex:none;font-variant-numeric:tabular-nums}.warn-card-body{padding:var(--sp-3);overflow-y:auto}.warn-card-msg{margin:0 0 var(--sp-2);color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-base)}.warn-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.warn-row{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:var(--sp-3);width:100%;min-height:32px;padding:var(--sp-1) 0;background:none;border:none;cursor:pointer;color:var(--text-2);font-size:var(--fs-sm);text-align:left}.warn-row:hover{color:var(--text)}.warn-row.is-missing{color:var(--warn-alert-ink)}.warn-row.is-missing .warn-row-name:before{content:"";display:inline-block;width:5px;height:5px;margin-right:6px;border-radius:50%;background:currentColor;vertical-align:middle}.warn-row-ico{width:22px;height:22px;background:var(--warn-ico, none) center / contain no-repeat}.warn-row-ico.is-tint{background:var(--game-ico);-webkit-mask:var(--warn-ico, none) center / contain no-repeat;mask:var(--warn-ico, none) center / contain no-repeat}.warn-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warn-row-count{font-variant-numeric:tabular-nums;font-weight:var(--fw-bold)}.warn-act{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--border-2)}@media (max-width: 719px){.warnstack{width:auto}.warn-title{display:none}.warn-card{right:auto;left:0;bottom:calc(100% + var(--sp-1));width:min(300px,78vw)}.toolbar .tb-hint{display:none}}.allparams{border-top:1px solid var(--border);padding-top:var(--sp-2)}.allparams>summary{display:flex;align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--muted);list-style:none;-webkit-user-select:none;user-select:none}.allparams>summary::-webkit-details-marker{display:none}.allparams>summary .ui-ico{flex:none;transition:transform var(--dur-1) var(--ease-out)}.allparams[open]>summary .ui-ico{transform:rotate(90deg)}.ap-group{margin-top:var(--sp-2)}.ap-comp{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--accent-ink);margin:var(--sp-1) 0 2px;font-family:var(--font-mono)}.ap-toggle{margin-top:var(--sp-2);padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs);cursor:pointer;background:none;border:1px solid var(--border-3);border-radius:var(--r-sm);color:var(--muted)}.ap-toggle:hover{border-color:var(--accent-line);color:var(--text-2)}.tool{display:flex;flex-direction:column;height:100%;min-height:0}.terr,.terr-stage{position:absolute;top:0;right:0;bottom:0;left:0}.terr-stage canvas{display:block;width:100%;height:100%}.terr-skel{position:absolute;top:0;right:0;bottom:0;left:0}.terr-tools{position:absolute;left:var(--sp-3);top:var(--sp-3);width:fit-content;max-width:calc(100% - var(--sp-3) * 2 - 44px);display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border);background:var(--overlay-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.terr-tools label{display:flex;gap:5px;align-items:center;color:var(--muted);font-size:var(--fs-xs)}.terr-tools input,.terr-tools select,.terr-tools button{background:var(--surface);border:1px solid var(--border-3);color:var(--text);border-radius:var(--r-sm);padding:var(--sp-1) 7px;font:inherit;font-size:var(--fs-xs)}.terr-tools button{cursor:pointer}.terr-tools button:hover:not(:disabled){border-color:var(--accent-line)}.terr-tools button:disabled{opacity:.45;cursor:default}.terr-tools button.primary,.terr-tools button.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)}.terr-tools .seg{display:inline-flex}.terr-tools .seg button{border-radius:0}.terr-tools .seg button:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}.terr-tools .seg button:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}.terr-tools .seg button+button{border-left:none}.terr-tools input[type=range]{width:110px;padding:0;accent-color:var(--accent)}.terr-help{position:absolute;left:var(--sp-3);top:calc(var(--sp-3) + 96px);width:min(420px,40%);display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border);background:var(--overlay-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-base)}.terr-help p{margin:0}.terr-ask{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);height:100%;padding:var(--sp-6);color:var(--muted);font-size:var(--fs-sm);text-align:center}.terr-ask button{background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-ink);border-radius:var(--r-sm);padding:6px 12px;font:inherit;cursor:pointer}.tool-unit{color:var(--muted);font-size:var(--fs-xs)}.tool-note{color:var(--accent-ink);font-size:var(--fs-xs)}.tool-bar{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;padding:var(--sp-2);background:var(--surface-alt);border-bottom:1px solid var(--border)}.tool-bar label{display:flex;gap:5px;align-items:center;color:var(--muted);font-size:var(--fs-xs)}.tool-bar input,.tool-bar select,.tool-bar button{background:var(--surface);color:var(--text);border:1px solid var(--border-3);border-radius:var(--r-sm);padding:var(--sp-1) 7px;font:inherit;font-size:var(--fs-xs)}.tool-bar button{cursor:pointer}.tool-bar button:hover:not(:disabled){border-color:var(--bp-hover-border)}.tool-bar button:disabled{opacity:.45;cursor:default}.tool-bar button.primary,.tool-bar button.on{background:var(--bp-panel);border-color:var(--bp-sel-border);color:var(--bp-on)}.tool-bar .seg{display:inline-flex}.tool-bar .seg button{border-radius:0}.tool-bar .seg button:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}.tool-bar .seg button:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0;border-left:none}.tool-msg{color:var(--ok-ink);font-size:var(--fs-xs)}.tool-body{flex:1;display:flex;min-height:0}.tool-view{flex:1;min-width:0}.tool-side{width:300px;min-width:300px;overflow:auto;padding:var(--sp-2);background:var(--surface-alt);border-left:1px solid var(--border);display:flex;flex-direction:column;gap:var(--sp-2)}.tool-hint{color:var(--muted-2);font-size:var(--fs-xs);line-height:var(--lh-snug)}.tool-fields{display:grid;grid-template-columns:1fr 1fr;gap:5px var(--sp-1)}.tool-fields .hd{grid-column:1 / -1;color:var(--muted);font-weight:var(--fw-semi);font-size:var(--fs-xs)}.tool-fields label{display:flex;align-items:center;gap:5px}.tool-fields span{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs);width:22px}.tool-fields input{width:100%;background:var(--surface);color:var(--text);border:1px solid var(--border-3);border-radius:var(--r-sm);padding:3px var(--sp-1);font-size:var(--fs-xs)}.tool-list{display:flex;flex-direction:column;gap:var(--sp-1)}.tool-row{border:1px solid var(--border-2);border-radius:var(--r-sm);padding:var(--sp-1) var(--sp-2);cursor:pointer}.tool-row.on{border-color:var(--game-amber);background:var(--accent-soft)}.tool-row .nm{font-weight:var(--fw-semi);font-size:var(--fs-xs)}.tool-row .co{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-2xs)}.tool-row .rm{float:right;color:var(--danger-ink);background:none;border:0;padding:0;cursor:pointer;line-height:1}.tool-row .rm:hover{color:var(--danger)}.thumb-body{align-items:flex-start;gap:var(--sp-4);padding:var(--sp-4);overflow:auto}.thumb-canvas canvas{outline:1px solid var(--bp-plate-border);background:var(--bp-scene);display:block}.thumb-canvas.is-wide canvas{max-width:min(100%,640px);height:auto}.thumb-side{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-1)}.thumb-count{font-size:var(--fs-xl);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.thumb-slug{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-xs)}.thumb-bar{height:6px;border-radius:var(--r-xs);background:var(--surface-hover);overflow:hidden}.thumb-bar i{display:block;height:100%;background:var(--accent)}.thumb-sub{color:var(--muted-2);font-size:var(--fs-xs);line-height:var(--lh-snug)}.thumb-res{margin:0;color:var(--text-2);font-family:var(--font-mono);font-size:var(--fs-2xs);line-height:var(--lh-base);white-space:pre-wrap}.cmp{gap:1px;background:var(--border)}.cmp-cell{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--surface-deep)}.cmp-cap{padding:5px var(--sp-2);font-size:var(--fs-xs);color:var(--text);background:var(--surface-alt);display:flex;gap:var(--sp-2)}.cmp-cap span{color:var(--muted-2);font-family:var(--font-mono);font-size:var(--fs-2xs)}.cmp-cell canvas{flex:1}.picker{position:relative}.picker-btn{display:flex;align-items:center;gap:7px;width:100%;padding:3px var(--sp-1);background:var(--surface);color:var(--text);border:1px solid var(--border-3);border-radius:var(--r-sm);cursor:pointer;text-align:left}.picker-btn:hover{border-color:var(--bp-hover-border)}.picker-img{width:30px;height:30px;object-fit:contain;flex:none;border-radius:var(--r-xs)}.picker-img.big{width:74px;height:74px}.picker-img.is-none{display:grid;place-items:center;color:var(--muted-2);border:1px dashed var(--border-3);background:none}.picker-name{min-width:0;flex:1;display:flex;flex-direction:column;line-height:var(--lh-tight)}.picker-name b{font-size:var(--fs-xs);font-weight:var(--fw-semi);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-name i{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted-2);font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-caret{color:var(--muted-2);font-size:var(--fs-2xs)}.picker-pop{position:fixed;z-index:var(--z-drawer);background:var(--surface-alt);border:1px solid var(--border-3);border-radius:var(--r-md);box-shadow:var(--sh-3);padding:var(--sp-2)}.picker-search{width:100%;padding:5px var(--sp-2);font-size:var(--fs-xs);background:var(--surface-deep);color:var(--text);border:1px solid var(--border-3);border-radius:var(--r-sm)}.picker-count{margin:5px 0 var(--sp-2);color:var(--muted-2);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--sp-1);overflow:auto;overscroll-behavior:contain}.picker-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 3px;background:var(--surface-deep);border:1px solid var(--border-2);border-radius:var(--r-sm);color:var(--text);cursor:pointer}.picker-item:hover{border-color:var(--bp-hover-border)}.picker-item.on{border-color:var(--game-amber);background:var(--accent-soft)}.picker-cap{font-size:var(--fs-2xs);line-height:var(--lh-tight);text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.picker-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent-ink);margin-right:4px;vertical-align:.15em}.picker-shared{font-size:var(--fs-2xs);line-height:1;color:var(--muted-2);border:1px solid var(--border-2);border-radius:var(--r-xs);padding:1px 4px}.picker-empty{grid-column:1 / -1;color:var(--muted-2);font-size:var(--fs-xs);padding:var(--sp-3);text-align:center}.viewer-skel{width:100%;height:100%;background:var(--bp-scene);display:flex;align-items:center;justify-content:center}.viewer-skel:after{content:"";width:38%;aspect-ratio:4 / 3;max-height:55%;border-radius:var(--r-md);background:#ffffff1c}@media (prefers-reduced-motion: no-preference){.viewer-skel:after{animation:ui-pulse 1.2s var(--ease-inout) infinite}}.page{background:var(--bg)}.page-inner:not(.stpage){min-height:calc(100dvh - var(--header-h))}.page-inner{max-width:var(--container);margin:0 auto;padding:var(--sp-4) var(--gutter) var(--sp-20)}.kicker{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--accent-ink)}.kicker--muted{color:var(--muted-2)}.ipage-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--muted-2);min-height:24px}.ipage-crumbs a{color:var(--muted);text-decoration:none}.ipage-crumbs a:hover{color:var(--text-2);text-decoration:underline;text-underline-offset:2px}.ipage-crumbs>:not(:first-child):before{content:"/" / "";opacity:.5;margin-right:var(--sp-2)}.ipage-title{margin:var(--sp-2) 0 0;font-size:var(--fs-2xl);font-weight:var(--fw-black);overflow-wrap:break-word}.ipage-sub{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted-2);overflow-wrap:anywhere}.ipage-lead{margin:var(--sp-3) 0 0;max-width:var(--measure);color:var(--muted);font-size:var(--fs-base)}.iflag{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-2xs);letter-spacing:var(--tr-wide);color:var(--text-2);border:1px solid var(--border-2);border-radius:var(--r-sm);padding:2px var(--sp-2);background:var(--surface)}.iflag.warn{color:var(--accent-ink);border-color:var(--accent-line);background:var(--accent-soft)}.iflag.tier{font-family:var(--font-mono);color:var(--accent-ink);border-color:var(--accent-line);clip-path:polygon(0 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%)}.iflag.rar{background:var(--rar-bg);border-color:var(--rar-edge);color:var(--text)}.ipage-badges{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-3)}.isec{margin-top:var(--gap-block)}.isec+.isec{margin-top:var(--sp-8)}.isec-title{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3);padding-bottom:var(--sp-2);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--muted);border-bottom:1px solid var(--border)}.isec-count{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--muted-2);border:1px solid var(--border-2);border-radius:var(--r-xs);padding:0 5px}.isec-head{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}.isec-head>.isec-title{margin:0;padding:0;border-bottom:0;flex:0 1 auto}.isec-link{margin:calc(-1 * var(--sp-2)) calc(-1 * var(--sp-2)) calc(-1 * var(--sp-2)) auto;padding:var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:var(--fw-semi);color:var(--accent-ink);text-decoration:none;text-transform:none;letter-spacing:0}.isec-link:hover{text-decoration:underline;text-underline-offset:3px}.isec-hint{margin:calc(-1 * var(--sp-1)) 0 var(--sp-3);font-size:var(--fs-xs);color:var(--muted-2);max-width:var(--measure)}.isec-body{display:block}.isec-err{margin-top:var(--sp-6);font-size:var(--fs-sm);color:var(--danger-ink)}.igrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--sp-2)}.icat{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);cursor:pointer;text-align:left;text-decoration:none;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);transition:border-color var(--dur-1),background var(--dur-1)}.icat:hover{border-color:var(--accent-line);background:var(--surface-hover)}.igrid.rows{grid-template-columns:1fr;gap:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.igrid.rows .icat{border:none;border-radius:0;border-bottom:1px solid var(--border);background:transparent}.igrid.rows .icat:last-child{border-bottom:none}.igrid.rows .icat:hover{background:var(--surface-hover)}.igrid.rows .icat-ico{width:32px;height:32px}.icat-ico{width:44px;height:44px;object-fit:contain;flex:none}.icat-name{font-size:var(--fs-md);font-weight:var(--fw-semi);color:inherit;text-decoration:none}.icat-count{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted-2)}.icards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:var(--sp-2)}.icard{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);cursor:pointer;text-align:left;text-decoration:none;min-width:0;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text-2);transition:border-color var(--dur-1),background var(--dur-1)}.icard:hover{border-color:var(--accent-line);background:var(--surface-hover)}.icard-txt{display:flex;flex-direction:column;gap:1px;min-width:0}.icard-name{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text);text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.icard-sub{font-size:var(--fs-2xs);color:var(--muted-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icard-tier{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--accent-ink);border:1px solid var(--border-2);border-radius:var(--r-xs);padding:1px 5px;flex:none}.icards.rows{grid-template-columns:1fr;gap:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.icards.rows .icard{border:none;border-radius:0;border-bottom:1px solid var(--border);background:transparent}.icards.rows .icard:last-child{border-bottom:none}.icards.rows .icard:hover{background:var(--surface-hover)}.prows{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.prow{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);min-width:0;text-decoration:none;color:var(--text-2);border-bottom:1px solid var(--border);transition:background var(--dur-1)}.prow:last-child{border-bottom:none}.prow:hover{background:var(--surface-hover)}.prow-cell{flex:none;width:44px;height:44px;padding:3px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);border:1px solid var(--bp-plate-border);background:var(--bp-scene)}.prow-txt{display:flex;flex-direction:column;gap:1px;min-width:0}.prow-name{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text)}.prow-sub{font-size:var(--fs-2xs);color:var(--muted-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prow-kind,.prow-size{flex:none;font-size:var(--fs-2xs);padding:1px 5px;border:1px solid var(--border-2);border-radius:var(--r-xs)}.prow-kind{margin-left:auto;color:var(--muted)}.prow-kind+.prow-size{margin-left:0}.prow-size{margin-left:auto;color:var(--accent-ink)}.prow-note{flex:none;margin-left:auto;font-size:var(--fs-2xs);color:var(--muted-2)}.filters{position:sticky;top:var(--header-h);z-index:var(--z-base);display:flex;flex-direction:column;gap:var(--sp-2);margin:var(--sp-4) 0 var(--sp-5);padding:var(--sp-3) 0;background:var(--bg);border-bottom:1px solid var(--border)}.filters-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.filters-row .chip,.ap-panel-head .chip,.ui-field .chip,.bmine-tools .chip,.filters-row .seg-view button,.bmine-tools .seg-view button{min-height:var(--ctl-h-sm)}.filters .search{width:min(280px,100%)}.filters-spacer{flex:1}.filters-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted-2);white-space:nowrap}.chipset{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.chipset-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--muted-2);margin-right:2px}.chip-mono{font-family:var(--font-mono)}.chip-n{margin-left:5px;padding-left:5px;border-left:1px solid var(--border-2);font-family:var(--font-mono)}.chip.on .chip-n{border-left-color:currentColor;opacity:.75}.chip-rar{display:inline-block;width:8px;height:8px;margin-right:5px;vertical-align:0;border-radius:2px;background:var(--rar-bg);box-shadow:inset 0 0 0 1px var(--rar-edge)}.seg-view{display:inline-flex;border:1px solid var(--border-2);border-radius:var(--r-md);overflow:hidden}.view-switch{position:absolute;left:50%;transform:translate(-50%);bottom:var(--sp-2);z-index:3;max-width:calc(100% - var(--sp-4));overflow-x:auto;background:var(--surface);box-shadow:var(--sh-1)}.seg-view button{padding:var(--sp-2) var(--sp-3);background:var(--surface);border:none;cursor:pointer;color:var(--muted);font-size:var(--fs-xs)}.seg-view button+button{border-left:1px solid var(--border-2)}.seg-view button.on{background:var(--accent-soft);color:var(--accent-ink)}.seg-view button:focus-visible{outline-offset:-2px}.item3d-peek{position:absolute;right:var(--sp-2);top:var(--sp-2);z-index:3;display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:var(--sp-1) var(--sp-2);cursor:pointer;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-md);box-shadow:var(--sh-1);color:var(--muted);font-size:var(--fs-xs)}.item3d-peek:hover{color:var(--text-2);border-color:var(--accent-line)}.item3d-peek[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)}@media (pointer: coarse){.item3d-peek{min-height:var(--tap)}}.empty-state{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-8) 0;color:var(--muted)}.empty-state-txt{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);min-width:0}.empty-state b{color:var(--text);font-size:var(--fs-lg)}.empty-state-ico{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface-alt);color:var(--muted-2)}.empty-state.is-error .empty-state-ico{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-ink)}.empty-state.is-error b{color:var(--text)}.ipage-head{padding:var(--sp-1) 0 var(--sp-4);border-bottom:1px solid var(--border)}.ipage-title-row{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-3)}.ipage-titles{min-width:0;flex:1}.ipage-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}@media (max-width: 719px){.ipage-title-row{flex-wrap:wrap;align-items:flex-start}.ipage-actions{flex-basis:100%}}.ipage-thumb{width:56px;height:56px;object-fit:contain;flex:none;padding:var(--sp-1);border:1px solid var(--bp-plate-border);border-radius:var(--r-md)}.entity{display:grid;gap:var(--sp-6);align-items:start;margin-top:var(--sp-5)}@media (min-width: 960px){.entity{grid-template-columns:minmax(0,1fr) 340px;gap:var(--sp-10)}.entity-side{position:sticky;top:calc(var(--header-h) + var(--sp-4))}}.entity-main{min-width:0}.entity-side{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.factsheet{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.factsheet-title{margin:0;padding:var(--sp-3);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--muted);border-bottom:1px solid var(--border)}.dl{display:grid;grid-template-columns:1fr auto;margin:0}.dl dt,.dl dd{margin:0;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);border-bottom:1px solid var(--border)}.dl dt{color:var(--muted)}.dl dd{color:var(--text);font-weight:var(--fw-semi);font-variant-numeric:tabular-nums;text-align:right}.dl>*:last-child dt,.dl>*:last-child dd{border-bottom:none}.dl dd.mono{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-normal);overflow-wrap:anywhere}.techbox{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-alt)}.techbox>summary{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--muted)}.techbox>summary::-webkit-details-marker{display:none}.techbox>summary .ui-ico{flex:none;transition:transform var(--dur-1) var(--ease-out)}.techbox[open]>summary .ui-ico{transform:rotate(90deg)}.techbox[open]{padding-bottom:var(--sp-3)}.techbox .isec{margin:0 var(--sp-3)}.techbox .isec+.isec{margin-top:var(--sp-4)}.techbox .isec-title{font-size:10px}.toc{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-5) var(--sp-6)}.toc-col{min-width:0}.toc-head{display:flex;align-items:center;gap:var(--sp-2);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);text-decoration:none;font-size:var(--fs-md);font-weight:var(--fw-semi);color:var(--text)}.toc-head:hover{color:var(--accent-ink)}.toc-head img{object-fit:contain;flex:none}.toc-head i,.toc-subs i{font-family:var(--font-mono);font-style:normal;font-size:var(--fs-2xs);color:var(--muted-2);margin-left:auto}.toc-subs{display:flex;flex-direction:column;padding-top:var(--sp-1)}.toc-subs a,.ui-toc-skel .toc-subs span{display:flex;align-items:center;gap:var(--sp-2);padding:3px 0;font-size:var(--fs-sm);color:var(--muted);text-decoration:none}.toc-subs a:hover{color:var(--text)}.toc.rows{grid-template-columns:1fr;gap:var(--sp-4)}.toc.rows .toc-subs{flex-direction:row;flex-wrap:wrap;column-gap:var(--sp-4)}.toc.rows .toc-subs i{margin-left:0}.toc.cards{gap:var(--sp-4);align-items:start;grid-template-columns:repeat(auto-fill,minmax(min(272px,100%),1fr))}.toc.cards .toc-col{padding:var(--sp-3) var(--sp-3) var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.toc.cards .toc-head{gap:var(--sp-3);padding-bottom:var(--sp-3);margin-bottom:var(--sp-1);font-size:var(--fs-lg);letter-spacing:-.01em}.toc.cards .toc-subs a,.toc.cards.ui-toc-skel .toc-subs span{padding:var(--sp-1) var(--sp-2);margin:0 calc(-1 * var(--sp-2));border-radius:var(--r-sm);font-size:var(--fs-sm)}.toc.cards .toc-subs a:hover{background:var(--hover-tint);color:var(--text)}.toc-sub-ico{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:none;color:var(--muted-2)}.toc-sub-ico img{width:20px;height:20px;object-fit:contain}.toc-subs a:hover .toc-sub-ico{color:var(--accent-ink)}.toc.cards .toc-things{display:flex;flex-wrap:wrap;gap:var(--sp-1);padding-top:var(--sp-2)}.toc-thing{display:inline-flex;text-decoration:none;border-radius:var(--r-sm)}.toc-thing:hover{outline:1px solid var(--accent-line);outline-offset:1px}.toc-more{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 var(--sp-1);border-radius:var(--r-sm);text-decoration:none;background:var(--surface-2);border:1px solid var(--border-2);font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted)}.toc-more:hover{color:var(--text);border-color:var(--accent-line)}.ui-toc-skel .toc-head,.ui-toc-skel .toc-subs span{background:var(--surface-hover);border-radius:var(--r-xs);color:transparent}.ui-toc-skel .toc-head{border-bottom-color:transparent}.ui-toc-skel .toc-subs span{width:70%}.ui-toc-skel .toc-subs span:nth-child(2){width:55%}@media (prefers-reduced-motion: no-preference){.ui-toc-skel .toc-head,.ui-toc-skel .toc-subs span{animation:ui-pulse 1.2s var(--ease-inout) infinite}}.isec .stat-row{justify-content:space-between;padding:var(--sp-2) 0;font-size:var(--fs-sm);border-bottom:1px solid var(--border)}.item3d{position:relative;aspect-ratio:16 / 10;max-height:460px;border-radius:var(--r-md);border:1px solid var(--bp-plate-border);overflow:hidden;background:var(--bp-scene)}.item3d-hint{position:absolute;left:var(--sp-2);bottom:var(--sp-2);z-index:2;pointer-events:none;display:flex;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);background:#090f168c;color:var(--bp-text-2);font-size:var(--fs-2xs);opacity:0;transition:opacity var(--dur-2)}.item3d:hover .item3d-hint,.item3d:focus-within .item3d-hint{opacity:1}.item3d.empty>div:not(.item3d-ph){visibility:hidden}.item3d-ph{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);color:var(--bp-ph);font-size:var(--fs-xs)}.viewer-failed{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);text-align:center;background:var(--bp-scene);color:var(--bp-ph);font-size:var(--fs-xs)}.item-ico{object-fit:contain}.item-ico.ph{background:var(--surface-hover);border-radius:var(--r-sm);flex:none}.item-short{margin-top:var(--sp-4);font-size:var(--fs-base);color:var(--text-2);white-space:pre-line;max-width:var(--measure)}.inote-title{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text);margin-bottom:var(--sp-2)}.inote{white-space:pre-wrap;font-family:var(--font-lore);font-size:var(--fs-base);line-height:var(--lh-loose);max-width:62ch;padding:var(--sp-4) var(--sp-5);color:var(--text-2);background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--r-md)}.iref-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:var(--sp-1)}.iref{display:flex;align-items:center;gap:var(--sp-2);min-width:0;text-align:left;cursor:pointer;text-decoration:none;padding:6px var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);transition:border-color var(--dur-1),background var(--dur-1)}.iref:hover{background:var(--surface-hover);border-color:var(--accent-line);color:var(--text)}.iref-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;color:inherit}.iref-amt{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}.iref-note{margin-left:auto;font-size:var(--fs-xs);color:var(--muted-2);white-space:nowrap;font-variant-numeric:tabular-nums}.iref-note+.iref-amt{margin-left:var(--sp-2)}.ivariant{display:flex;flex-direction:column;gap:2px}.ivariant-role{font-size:var(--fs-2xs);color:var(--muted-2);padding-left:var(--sp-2)}.irec{padding:var(--sp-3) 0;border-bottom:1px solid var(--border)}.irec-head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);font-size:var(--fs-xs);color:var(--muted)}.irec-tier{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--accent-ink);border:1px solid var(--border-2);border-radius:var(--r-xs);padding:1px 5px}.irec-flow{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.irec-flow .iref-list{flex:1 1 240px}.rec-arrow{color:var(--accent-ink);font-weight:var(--fw-bold)}.rec-time{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted-2)}.ctn-3d{max-width:640px;margin-top:var(--sp-4)}.ctn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-3);margin-top:var(--sp-4);align-items:stretch}.ctn-grid a.ctn-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);text-decoration:none;color:inherit;transition:border-color var(--dur-1),background-color var(--dur-1)}.ctn-card:hover{border-color:var(--focus);background:var(--surface-2)}.ctn-card:active{transform:scale(.995)}.ctn-thumb{flex:none;width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);border:1px solid var(--bp-plate-border);background:var(--bp-scene);overflow:hidden}.ctn-thumb img{max-width:100%;max-height:100%;object-fit:contain}.ctn-txt{display:flex;flex-direction:column;gap:1px;min-width:0}.ctn-name{font-weight:var(--fw-bold);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere}.ctn-sub{font-size:var(--fs-xs);color:var(--muted)}.ctn-alt{font-size:var(--fs-2xs);color:var(--muted-2)}.iloot-head{display:flex;gap:var(--sp-3);align-items:baseline;font-size:var(--fs-2xs);color:var(--muted-2);padding-bottom:var(--sp-1);border-bottom:1px solid var(--border)}.iloot-set{text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--muted)}.iloot-chance{margin-left:auto;color:var(--text-2);font-family:var(--font-mono)}.iloot-chance-label{color:var(--muted-2);font-family:var(--font-ui)}.iloot-table+.iloot-table{margin-top:var(--sp-4)}.iloot-mode{margin-top:var(--sp-3)}.iloot-mode-name{font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:var(--sp-1)}.iloot-row{display:flex;gap:var(--sp-3);align-items:center;padding:var(--sp-1) 0;border-bottom:1px solid var(--border)}.iloot-row:last-child{border-bottom:none}.iloot-count{margin-left:auto;color:var(--text-2);font-size:var(--fs-xs);white-space:nowrap}.iopen-where,.lo-keys{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:baseline}.iopen-where,.lo-keys{margin-left:auto;justify-content:flex-end}.lo-keys{font-size:var(--fs-xs)}.iopen-n{color:var(--muted);font-size:var(--fs-xs)}.iloot-row:has(.lo-keys) .lo-pts{margin-left:var(--sp-3)}.iopen-where>*+*:before,.lo-keys>*+*:before{content:"·";color:var(--muted);margin-right:var(--sp-2)}.iopen-where .iloot-count{margin-left:0}.loc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-3);margin-top:var(--sp-4);align-items:stretch}.loc-grid a.loc-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);overflow:hidden;text-decoration:none;color:inherit;transition:border-color var(--dur-1),background-color var(--dur-1)}.loc-card:hover{border-color:var(--focus);background:var(--surface-2)}.loc-card:active{transform:scale(.995)}.loc-shot{aspect-ratio:16 / 10;background:var(--bp-scene);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center}.loc-shot img{width:100%;height:100%;object-fit:cover;display:block}.loc-shot-none{color:var(--muted-2)}.loc-txt{display:flex;flex-direction:column;gap:1px;padding:var(--sp-3);min-width:0}.loc-name{font-weight:var(--fw-bold);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow-wrap:anywhere}.loc-sub{font-size:var(--fs-xs);color:var(--muted)}.lo-tags{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}.lo-tag{font-size:var(--fs-2xs);padding:2px var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-2)}.lo-tag.is-off{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)}.lo-pts{margin-left:auto;color:var(--text-2);font-size:var(--fs-xs);white-space:nowrap}.lo-chances{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.lo-chance{padding:2px var(--sp-2);border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2);font-size:var(--fs-xs)}.pagenav{display:flex;gap:var(--sp-2);margin-top:var(--sp-10);border-top:1px solid var(--border);padding-top:var(--sp-4)}.pagenav a{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text-2);text-decoration:none;transition:border-color var(--dur-1)}.pagenav a:hover{border-color:var(--accent-line)}.pagenav a.next{text-align:right}.pagenav small{font-size:var(--fs-2xs);color:var(--muted-2);text-transform:uppercase;letter-spacing:var(--tr-caps)}.pagenav b{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page :where(p,li,dd,.info-desc,.prose,.isec-body,.ipage-lead,.inote) a{color:var(--link)}.tile-cap,.tile{text-decoration:none;color:inherit}.ipage-crumbs+.kicker{margin-top:var(--sp-4)}.nw-filters{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-5)}.nw-list{list-style:none;margin:var(--sp-6) 0 var(--sp-8);padding:0;display:grid;gap:var(--sp-3)}.nw-item{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:var(--sp-4) var(--sp-5)}.nw-item.is-pinned{border-color:var(--accent-line)}.nw-item{display:flex;gap:var(--sp-4);align-items:flex-start}.nw-item-body{min-width:0;flex:1}.nw-cover{flex:none;width:160px;aspect-ratio:16 / 10;overflow:hidden;border-radius:var(--r-sm);background:var(--surface-deep);border:1px solid var(--border)}.nw-cover img{width:100%;height:100%;object-fit:cover;display:block}@media (max-width: 620px){.nw-item{flex-direction:column}.nw-cover{width:100%}}.nw-article-cover{display:block;width:100%;max-width:var(--measure);margin-top:var(--sp-5);aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-deep)}.nw-item-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3)}.nw-kind{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:var(--tr-caps);border:1px solid var(--border-2);border-radius:var(--r-sm);padding:2px var(--sp-2);color:var(--text-2);background:var(--surface-alt)}.nw-kind.is-game-patch{color:var(--accent-ink);border-color:var(--accent-line);background:var(--accent-soft)}.nw-date{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted-2)}.nw-pin{color:var(--accent-ink);font-size:var(--fs-sm)}.nw-item-title{margin:var(--sp-3) 0 0;font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-snug)}.nw-item-title a{color:var(--text);text-decoration:none}.nw-item-title a:hover{color:var(--link);text-decoration:underline;text-underline-offset:3px}.nw-item-excerpt{margin:var(--sp-2) 0 0;max-width:var(--measure);color:var(--muted);font-size:var(--fs-md)}.nw-untranslated{margin:var(--sp-3) 0 0;font-size:var(--fs-sm);color:var(--muted)}.nw-translation{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:24px;max-width:100%;padding:0;font:inherit;font-size:var(--fs-xs);line-height:var(--lh-base);border:0;border-radius:var(--r-xs);background:none;color:var(--muted);text-align:left;cursor:pointer}.nw-translation:hover,.nw-translation[aria-expanded=true]{color:var(--text)}.nw-translation:hover{text-decoration:underline;text-underline-offset:3px}.nw-translation-pop{width:300px;font-size:var(--fs-sm);color:var(--text-2)}.nw-translation-pop p{margin:var(--sp-1);line-height:var(--lh-base)}.nw-article-language{margin-top:var(--sp-3)}@media (pointer: coarse){.nw-translation{min-height:var(--tap)}}.nw-article-body{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:var(--sp-5) var(--sp-6);margin-top:var(--sp-4)}@media (max-width: 719px){.nw-article-body{padding:var(--sp-4)}}.nw-article .nw-item-head{margin-top:var(--sp-4)}.nw-article-body .nw-item-head{margin-top:0}.nw-body{margin-top:var(--sp-6);max-width:var(--measure);color:var(--text-2);line-height:var(--lh-base)}.nw-body>*+*{margin-top:var(--sp-4)}.nw-body h2{margin-top:var(--sp-8);font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text)}.nw-body h3{margin-top:var(--sp-6);font-size:var(--fs-lg);font-weight:var(--fw-semi);color:var(--text)}.nw-body ul,.nw-body ol{padding-left:var(--sp-5)}.nw-body li+li{margin-top:var(--sp-2)}.nw-body a{color:var(--link)}.nw-body code{font-family:var(--font-mono);font-size:.9em;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--r-sm);padding:1px 4px}.nw-body pre{background:var(--surface-deep);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);overflow-x:auto}.nw-body pre code{background:none;border:0;padding:0}.nw-body blockquote{border-left:2px solid var(--accent-line);padding-left:var(--sp-4);color:var(--muted)}.nw-body img{max-width:100%;height:auto;border-radius:var(--r-md)}.nw-body table{display:block;overflow-x:auto;border-collapse:collapse;font-size:var(--fs-sm)}.nw-body th,.nw-body td{border:1px solid var(--border);padding:var(--sp-2) var(--sp-3);text-align:left}.nw-refs{margin-top:var(--sp-10)}.pre-links{list-style:none;margin:var(--sp-3) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1)}.nw-meta{margin-top:var(--sp-8);display:flex;flex-wrap:wrap;gap:var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted-2)}.nw-mentions,.tb-mentions{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2)}.tb-mentions li{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.tb-mentions a{color:var(--link);text-decoration:none}.tb-mentions a:hover{text-decoration:underline;text-underline-offset:2px}.tb-mention-note{color:var(--muted);font-size:var(--fs-xs)}.nw-mentions a{color:var(--link);text-decoration:none}.nw-mentions a:hover{text-decoration:underline;text-underline-offset:2px}.nw-mentions .nw-date{margin-left:var(--sp-2)}.isec-more{margin:var(--sp-2) 0 0;font-size:var(--fs-sm)}.isec-more a{color:var(--link);text-decoration:none}.isec-more a:hover{text-decoration:underline;text-underline-offset:2px}.chip:active,.seg-view button:active,.icat:active,.icard:active{transform:translateY(1px)}.map-modes{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-bottom:var(--sp-2)}.map-mode{font:inherit;font-size:var(--fs-xs);line-height:1;min-height:var(--ctl-h-sm);display:inline-flex;align-items:center;gap:var(--sp-1);padding:0 var(--sp-3);color:var(--text-2);background:var(--surface-2);cursor:pointer;border:1px solid var(--border);border-radius:var(--r-sm);transition:color var(--dur-1),border-color var(--dur-1),background var(--dur-1)}.map-mode:hover{color:var(--text);border-color:var(--focus)}.map-mode:active{transform:translateY(1px)}.map-mode.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)}.map-modes-note{margin:0 0 var(--sp-2);font-size:var(--fs-2xs);color:var(--muted)}@media (pointer: coarse){.map-mode{min-height:var(--tap)}}.scene-floors{position:absolute;right:var(--sp-2);top:50%;transform:translateY(-50%);z-index:var(--z-raised);display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:var(--sp-1);border-radius:var(--r-md);border:1px solid var(--border);background:var(--overlay-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.scene-floor{min-width:30px;min-height:26px;padding:0 var(--sp-1);display:flex;align-items:center;justify-content:center;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-bold);line-height:1;color:var(--text-2);background:none;border:0;border-radius:var(--r-sm);cursor:pointer;transition:color var(--dur-1),background var(--dur-1)}.scene-floor.is-all{font-size:var(--fs-2xs);font-weight:var(--fw-semi);letter-spacing:.02em;padding-bottom:var(--sp-1);margin-bottom:2px;border-bottom:1px solid var(--border);border-radius:var(--r-sm) var(--r-sm) 0 0}.scene-floor:hover{color:var(--text);background:var(--hover-tint)}.scene-floor.on{color:var(--accent-ink);background:var(--accent-soft)}@media (pointer: coarse){.scene-floor{min-height:var(--tap);min-width:var(--tap)}}@media (max-width: 719px){.scene-stage:has(.scene-floors) .scene-help.is-docked{max-width:calc(100% - 124px)}.scene-stage:has(.scene-floors) .scene-help.is-docked{white-space:normal}.scene-stage:has(.scene-floors) .scene-card{max-width:calc(100% - 72px)}}.scene-map-wrap{position:relative}.scene-map-wrap.is-full{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-scrim);display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--bg);overflow:auto;overscroll-behavior:contain}.scene-stage{position:relative}.scene-map-wrap.is-full .scene-stage{flex:1 1 auto;min-height:0}.scene-map-wrap.is-full .scene-map{height:100%}.scene-stage{--scene-btn: 30px}.scene-full{position:absolute;top:var(--sp-2);right:var(--sp-2);z-index:var(--z-raised);display:inline-flex;align-items:center;justify-content:center;width:var(--scene-btn);height:var(--scene-btn);padding:0;cursor:pointer;color:var(--muted);background:var(--surface);border:1px solid var(--border-3);border-radius:var(--r-sm)}.scene-flight-speed{position:absolute;top:var(--sp-2);right:calc(var(--sp-2) * 2 + var(--scene-btn));z-index:var(--z-raised)}.scene-flight-speed .camera-speed-trigger{height:var(--scene-btn);background:var(--surface)}.scene-full:hover{color:var(--text);border-color:var(--accent-line)}@media (pointer: coarse){.scene-stage{--scene-btn: var(--tap)}}.scene-wasd{display:grid;grid-template-columns:repeat(3,22px);gap:2px;justify-items:center;flex:none}.scene-wasd .hk-key{grid-row:2}.scene-wasd .hk-key:first-child{grid-row:1;grid-column:2}.scene-cross{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;pointer-events:none;background:linear-gradient(var(--bp-text),var(--bp-text)) center / 2px 14px no-repeat,linear-gradient(var(--bp-text),var(--bp-text)) center / 14px 2px no-repeat;filter:drop-shadow(0 0 1px var(--shadow))}.scene-lock{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap;font-size:var(--fs-sm);color:var(--text);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border);background:color-mix(in oklch,var(--surface) 90%,transparent);box-shadow:var(--sh-2)}.scene-map{position:relative;height:520px;border-radius:var(--r-md);border:1px solid var(--border);overflow:hidden;touch-action:none}@media (max-width: 720px){.scene-map{height:60vh;min-height:320px}}.scene-map canvas{display:block}.scene-load{position:absolute;inset:0 0 auto 0;height:2px;background:#0000002e;pointer-events:none}.scene-load i{display:block;height:100%;background:var(--accent);transition:width .3s linear}.scene-map-tip{position:absolute;right:var(--sp-2);bottom:var(--sp-2);pointer-events:none;font-size:var(--fs-2xs);color:var(--text-2);background:color-mix(in oklch,var(--surface) 85%,transparent);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px var(--sp-2);max-width:calc(100% - var(--sp-4));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-legend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-top:var(--sp-2);font-size:var(--fs-2xs);color:var(--text-2)}.scene-leg{display:inline-flex;align-items:center;gap:var(--sp-1);font:inherit;color:var(--text-2);cursor:pointer;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-2);margin:calc(-1 * var(--sp-2)) 0;transition:color var(--dur-1),border-color var(--dur-1)}.scene-leg:hover:not(:disabled){border-color:var(--border);color:var(--text)}.scene-leg:active:not(:disabled){transform:scale(.98)}.scene-leg[aria-pressed=false]{color:var(--muted-2)}.scene-leg:disabled{cursor:default;opacity:var(--op-disabled)}.scene-leg i{width:10px;height:10px;border-radius:2px;transform:rotate(45deg);border:1px solid currentColor}.scene-leg-n{font-size:var(--fs-2xs);color:var(--muted-2)}.scene-toggle{margin-left:auto;font:inherit;color:var(--text-2);cursor:pointer;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-1) var(--sp-2);transition:border-color var(--dur-1),color var(--dur-1)}.scene-toggle:hover{border-color:var(--focus);color:var(--text)}.scene-toggle:active{transform:scale(.98)}.scene-help{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:0 0;pointer-events:none;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--sp-1) var(--sp-3);max-width:min(400px,calc(100% - var(--sp-6)));padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border);background:color-mix(in oklch,var(--surface) 90%,transparent);box-shadow:var(--sh-2);color:var(--muted);white-space:nowrap;font-size:var(--fs-sm)}.scene-help>strong,.scene-help>span.scene-help-note{grid-column:1 / -1}.scene-help strong{color:var(--text);font-size:var(--fs-sm);margin-bottom:2px}.scene-help>span{display:contents}.scene-help>span>:first-child{justify-self:center;min-height:30px}.scene-help svg{flex:none}.scene-help>span.scene-help-note{display:block;min-height:0;white-space:normal;font-size:var(--fs-xs);color:var(--muted)}.mouse-glyph{position:relative;display:inline-flex;flex:none;color:var(--muted-2)}.mouse-glyph svg+svg{position:absolute;top:0;right:0;bottom:0;left:0;color:var(--accent-ink)}.scene-help.is-docked{left:var(--sp-3);top:var(--sp-3);transform:none;opacity:.62;padding:var(--sp-2) var(--sp-3);font-size:92%}.scene-help.is-corner{left:var(--sp-3);top:auto;bottom:var(--sp-3);transform:none;padding:var(--sp-2) var(--sp-3);font-size:92%}.scene-card{position:absolute;left:var(--sp-3);bottom:var(--sp-3);pointer-events:none;display:flex;flex-direction:column;gap:var(--sp-1);max-width:min(420px,calc(100% - var(--sp-4)));padding:var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border);background:color-mix(in oklch,var(--surface) 94%,transparent);box-shadow:var(--sh-2)}.scene-card.is-pinned{pointer-events:auto;padding-right:var(--sp-6)}.scene-card-row{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.scene-card-name{font-size:var(--fs-sm);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.scene-card-row{text-decoration:none;border-radius:var(--r-xs)}a.scene-card-row:hover .scene-card-name{color:var(--accent);text-decoration:underline}.scene-card-x{position:absolute;top:var(--sp-1);right:var(--sp-1);display:grid;place-items:center;width:28px;height:28px;border:0;background:none;color:var(--muted-2);cursor:pointer;border-radius:var(--r-xs)}.scene-card-x:hover{color:var(--text);background:var(--surface-2)}.scene-card-note{font-size:var(--fs-xs);color:var(--muted-2)}.scene-card-thumb{width:30px;height:30px;object-fit:contain;flex:none;border-radius:var(--r-xs);background:var(--bp-scene)}.ihover{position:fixed;z-index:var(--z-dropdown);pointer-events:none;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border-2);border-radius:var(--r-md);background:var(--surface);box-shadow:0 8px 24px var(--shadow);font-size:var(--fs-xs);color:var(--text-2)}.ihover-head{display:flex;align-items:center;gap:var(--sp-3)}.ihover-titles{display:flex;flex-direction:column;gap:2px;min-width:0}.ihover-name{font-size:var(--fs-sm);color:var(--text)}.phover-thumb{width:62px;height:62px;object-fit:contain;flex:none;border:1px solid var(--bp-plate-border);border-radius:var(--r-sm)}.phover-meta{font-size:var(--fs-2xs);color:var(--muted-2)}.ihover-titles .iflag{align-self:flex-start;font-size:9.5px;line-height:1.6;padding:0 5px;border-radius:var(--r-xs);letter-spacing:.04em}.ihover-desc{white-space:pre-line;color:var(--muted);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.ihover-stats{display:grid;grid-template-columns:1fr auto;gap:2px var(--sp-3);margin:0}.ihover-stats>div{display:contents}.ihover-stats dt{color:var(--muted-2)}.ihover-stats dd{margin:0;color:var(--text);font-variant-numeric:tabular-nums}.tech-intro{margin:var(--sp-3) 0 0;max-width:var(--measure);color:var(--muted)}.tech-fcard,.tech-title,.tech-node,.tech-cost{--tech-line: oklch(from var(--tech-plate, var(--tech-accent, var(--border))) 55% c h)}.tech-factions{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:var(--sp-3);margin-top:var(--sp-5);align-items:stretch}.tech-factions a.tech-fcard{display:flex;flex-direction:column;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);text-decoration:none;color:inherit;border-left:3px solid var(--tech-line);transition:border-color var(--dur-1),background-color var(--dur-1)}.tech-fcard:hover{border-color:var(--focus);background:var(--surface-2)}.tech-fcard:hover .tech-fimg{filter:brightness(1.08)}.tech-fwidget{position:relative;display:block;container-type:inline-size}.tech-fimg{display:block;width:100%;height:auto;aspect-ratio:var(--fw-aspect, 1.63)}.tech-fplate{position:absolute;right:var(--fw-plate-right, .5%);bottom:var(--fw-plate-bottom, 3%);width:var(--fw-plate-w, 45%);height:var(--fw-plate-h, 44%);background:#00000040;border-radius:1.5cqw}.tech-fpname{position:absolute;right:var(--fw-text-right, 7.5%);bottom:var(--fw-text-bottom, 16%);width:var(--fw-text-w, 37%);height:var(--fw-text-h, 22%);display:flex;align-items:center;justify-content:center;text-align:center;padding:0 1.5cqw;line-height:1.15;font-size:4.2cqw;letter-spacing:.02em;color:#fff;font-weight:var(--fw-bold);text-transform:uppercase}.tech-fleader{position:absolute;left:var(--fw-leader-x, 25%);bottom:var(--fw-leader-bottom, 12%);transform:translate(-50%);white-space:nowrap;color:#fff;font-weight:var(--fw-bold);text-transform:uppercase;font-size:3cqw;letter-spacing:.02em;text-shadow:0 1px 3px #000,0 0 10px rgba(0,0,0,.85)}.tech-fbody{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) var(--sp-4)}.tech-bar{position:relative;display:block;height:10px;border-radius:2px;overflow:hidden;background:var(--tech-bar-track)}.tech-bar-fill{display:block;height:100%;background:var(--tech-accent, var(--focus));transition:width var(--dur-2, .2s) var(--ease-out, ease-out)}.tech-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:url(/ui/tech/progress-bg.png) center/100% 100% no-repeat;opacity:.25}.tech-marks>.tech-bar{margin-top:var(--sp-1)}.tech-fmeta{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-xs);color:var(--muted)}.tech-flore{font-size:var(--fs-sm);color:var(--muted-2);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.tech-title{border-bottom:2px solid var(--tech-line);padding-bottom:var(--sp-2)}.tech-banner{--tech-band-base: oklch(16% .012 250);display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);min-height:60px;padding:0 var(--sp-4) 0 var(--sp-2);background:var(--tech-band, none) center/100% 100% no-repeat,var(--tech-band-base);border-radius:var(--r-md);border-bottom:0;color:#fff}.tech-banner-name{text-transform:uppercase;letter-spacing:.04em;min-width:0;font-size:clamp(1.15rem,4.4vw,var(--fs-2xl))}.tech-banner-mark{width:clamp(46px,8vw,68px);height:auto;margin:-6px 0;flex:none}.tech-hero{display:grid;grid-template-columns:1fr;gap:var(--sp-5);align-items:start}@media (min-width: 900px){.tech-hero{grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:var(--sp-6)}}.tech-hero-main{min-width:0}.tech-art{display:block;width:100%;max-width:min(100%,720px);height:auto;margin:var(--sp-4) 0 0;aspect-ratio:2 / 1}.tech-cost{margin-top:var(--sp-4);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);border-left:3px solid var(--tech-line, var(--border))}.tech-cost-title{margin:0 0 var(--sp-2);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--muted)}.tech-cost .iref-list{grid-template-columns:1fr}.tech-cost .iref-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}:is(.tech-lore,.tech-art)+.tech-fmeta{margin-top:var(--sp-4)}.tech-lore{margin:var(--sp-3) 0 0;max-width:var(--measure);color:var(--muted);white-space:pre-line}.tech-list{margin-top:var(--gap-block)}.tech-list>.tech-tiers{margin:0 var(--sp-3)}.tech-tiers{display:grid;grid-template-columns:1fr;gap:var(--sp-5);margin-top:var(--gap-block)}@media (min-width: 960px){.tech-tiers{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4);align-items:start}}.tech-tier{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.tech-tier-title{margin:0;padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--muted)}.tech-node{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);scroll-margin-top:calc(var(--header-h, 56px) + var(--sp-4))}.tech-node.is-target{border-color:var(--tech-line)}.tech-node-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2)}.tech-node-tier{font-size:var(--fs-2xs);color:var(--muted-2)}.tech-node-name{margin:0;font-size:var(--fs-sm);font-weight:var(--fw-bold);overflow-wrap:anywhere}.tech-unlock{display:flex;flex-direction:column;gap:var(--sp-2)}.tech-unlock+.tech-unlock{margin-top:var(--sp-4)}.tech-block{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.tech-block-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--muted-2)}.tech-need{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2)}.tech-need-link{display:inline-flex;align-items:baseline;gap:6px;font-size:var(--fs-xs);color:var(--accent-ink);text-decoration:none}.tech-need-link:hover{text-decoration:underline;text-underline-offset:3px}.tech-need-fac{font-size:var(--fs-2xs);color:var(--muted-2)}.tech-ref-lines{display:flex;flex-direction:column;min-width:0}.tech-ref-lines>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tech-ref-lines>:first-child{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.tech-ref-img{flex:none;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);border:1px solid var(--bp-plate-border);background:var(--bp-scene);overflow:hidden}.tech-ref-img img{max-width:100%;max-height:100%;object-fit:contain}.tech-graph-wrap{margin-top:var(--gap-block);max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}@media (min-width: 1500px){.tech-graph-wrap{width:calc(var(--container) + 120px);max-width:none;margin-left:calc((100% - var(--container) - 120px) / 2)}}.tech-graph{position:relative;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--r-md)}.tech-graph-lines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.tech-edge{fill:none;stroke:var(--tech-edge);stroke-width:1.5;transition:stroke var(--dur-1),stroke-width var(--dur-1)}.tech-edge.is-done{stroke:var(--tech-edge-done);stroke-width:2}.tech-edge.is-any{stroke-dasharray:5 4}.tech-edge.is-path{stroke:var(--tech-path);stroke-width:2.5;filter:drop-shadow(0 0 1px var(--tech-path-halo)) drop-shadow(0 0 1px var(--tech-path-halo))}.tech-graph-head{position:absolute;top:var(--sp-3);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--muted-2);line-height:20px}.tech-gslot{position:absolute}.tech-graph a.tech-gnode{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box;display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-2) 0 var(--sp-4);border:0;background:none;color:var(--bp-text);text-decoration:none;font-size:var(--fs-sm);line-height:1.2;transition:box-shadow var(--dur-1),opacity var(--dur-1)}.tech-gnode:before,.tech-gnode:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.tech-gnode:before{z-index:0;background:var(--tech-surface, var(--bp-plate));-webkit-mask:url(/ui/tech/node-bg.png) center / 100% 100% no-repeat;mask:url(/ui/tech/node-bg.png) center / 100% 100% no-repeat;transition:background var(--dur-1)}.tech-gnode:after{z-index:2;background:var(--tech-accent, var(--border));-webkit-mask:url(/ui/tech/node-frame.png) center / 100% 100% no-repeat;mask:url(/ui/tech/node-frame.png) center / 100% 100% no-repeat}.tech-gnode>*{position:relative;z-index:1}.tech-gnode:hover:before,.tech-gnode:focus-visible:before{background:color-mix(in srgb,var(--tech-surface, var(--bp-plate)) 82%,#fff)}.tech-gnode:focus-visible{box-shadow:0 0 0 3px var(--tech-accent, var(--focus))}.tech-gnode-img{flex:none;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.tech-gnode-img.is-plate{box-sizing:border-box;padding:2px;border-radius:var(--r-sm);border-width:1px;border-style:solid}.tech-gnode-img img{max-width:100%;max-height:100%;object-fit:contain}.tech-gnode-txt{display:flex;flex-direction:column;gap:2px;min-width:0}.tech-gnode-name{font-weight:var(--fw-bold);line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow-wrap:anywhere}.tech-gnode-meta{display:flex;align-items:center;gap:3px;font-size:var(--fs-2xs);color:var(--bp-text-2)}.tech-gnode-meta .ui-ico{flex:none;opacity:.8}.tech-graph-hint{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--muted-2)}.tech-gtip{position:absolute;left:calc(100% + 12px);top:-6px;z-index:5;display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3);pointer-events:none;background:color-mix(in srgb,var(--bp-scene) 50%,#000);color:var(--bp-text);border:1px solid var(--tech-accent, var(--border));border-radius:var(--r-sm);box-shadow:var(--sh-3, 0 8px 24px rgba(0, 0, 0, .45));font-size:var(--fs-xs);line-height:1.35}.tech-gtip.is-left{left:auto;right:calc(100% + 12px)}.tech-gtip.is-up{top:auto;bottom:-6px}.tech-gtip.is-pinned{pointer-events:auto;z-index:7;border-color:var(--tech-accent, var(--focus));box-shadow:0 0 0 1px var(--tech-accent, var(--focus)),var(--sh-3, 0 8px 24px rgba(0, 0, 0, .45))}.tech-gtip.is-pinned a.tech-gtip-row{text-decoration:none}.tech-gtip.is-pinned a.tech-gtip-row:hover,.tech-gtip.is-pinned a.tech-gtip-row:focus-visible{background:#ffffff24}.tech-gtip-more{align-self:start;margin-top:2px;color:var(--tech-accent, var(--bp-text));font-size:var(--fs-xs)}.tech-gslot.is-pinned .tech-gnode{box-shadow:0 0 0 2px var(--tech-accent, var(--focus))}.tech-gtip-head{position:relative;display:flex;flex-direction:column;gap:2px;margin:calc(-1 * var(--sp-3)) calc(-1 * var(--sp-3)) 0;padding:var(--sp-2) var(--sp-3);padding-right:64px;background:linear-gradient(90deg,var(--tech-acquired, color-mix(in srgb, var(--tech-accent, var(--focus)) 38%, var(--bp-plate))),var(--tech-acquired-end, color-mix(in srgb, var(--tech-accent, var(--focus)) 24%, var(--bp-plate))));color:#fff;border-bottom:1px solid rgba(0,0,0,.35);border-radius:var(--r-sm) var(--r-sm) 0 0}.tech-gtip-meta{align-self:start;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:1px 5px;border-radius:3px;background:#0000006b}.tech-gtip-node{font-size:var(--fs-2xs);color:#fff;overflow-wrap:anywhere}.tech-gtip-tier{flex:none;color:#fff;font-family:var(--font-mono);font-size:var(--fs-2xs)}.tech-gtip-title{font-size:19px;font-weight:700;line-height:1.15;overflow-wrap:anywhere}.tech-gtip-state{color:var(--tech-accent, var(--bp-text-2));font-weight:var(--fw-bold);font-size:var(--fs-2xs)}.tech-gtip-thumb{position:absolute;top:var(--sp-2);right:var(--sp-2);width:52px;height:52px;object-fit:contain}.tech-gtip-desc{margin:0;color:var(--bp-text-2);white-space:pre-line;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}.tech-gtip-rows{display:flex;flex-direction:column;gap:2px}.tech-gtip-row{display:flex;align-items:center;gap:var(--sp-2);min-width:0;padding:3px 5px;border-radius:3px;background:#ffffff0f;color:var(--bp-text)}.tech-gtip-rowname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tech-gtip-row .mono{flex:none;color:var(--bp-text)}.tech-gtip-rowico{flex:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.tech-gtip-rowico img{max-width:100%;max-height:100%;object-fit:contain}.tech-gtip-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--bp-text-3, #b3aa9c)}.tech-gcheck{position:absolute;left:-11px;top:50%;transform:translateY(-50%);z-index:3;display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:var(--surface-alt);cursor:pointer;transition:transform var(--dur-1),filter var(--dur-1)}.tech-gcheck:hover:not(:disabled){transform:translateY(-50%) scale(1.12)}.tech-gcheck:disabled{cursor:progress;filter:saturate(.4)}.tech-gcheck img{display:block}.tech-graph a.tech-gnode[data-state=acquired]:before{background:linear-gradient(90deg,var(--tech-acquired, color-mix(in srgb, var(--tech-accent, var(--focus)) 38%, var(--bp-plate))),var(--tech-acquired-end, color-mix(in srgb, var(--tech-accent, var(--focus)) 24%, var(--bp-plate))))}.tech-graph a.tech-gnode[data-state=acquired]{color:#fff}.tech-graph a.tech-gnode[data-state=acquired] .tech-gnode-meta{color:#fff;background:#00000073;align-self:start;padding:0 4px;border-radius:3px}.tech-graph a.tech-gnode[data-state=available]:before{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--tech-surface, var(--bp-plate)) 90%,var(--tech-accent, #fff)) 0 3px,var(--tech-surface, var(--bp-plate)) 3px 6.5px)}.tech-graph a.tech-gnode[data-state=available]:after{filter:drop-shadow(0 0 4px var(--tech-accent, var(--focus)))}.tech-graph a.tech-gnode[data-state=locked]:before{background:var(--tech-locked, var(--bp-plate))}.tech-graph a.tech-gnode[data-state=locked]{opacity:.7}.tech-graph a.tech-gnode[data-state=locked]:after{background:var(--bp-plate-border)}.tech-graph a.tech-gnode[data-state=locked]:hover,.tech-graph a.tech-gnode[data-state=locked]:focus-visible{opacity:1}.tech-node[data-state=acquired]{border-left:3px solid var(--tech-line)}.tech-node[data-state=locked] .tech-node-name{color:var(--muted)}.tech-marks{margin-top:var(--gap-block);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-alt)}.tech-marks>.isec-title{margin-bottom:0}.tech-marks-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3)}.tech-marks-head .isec-title{margin:0}.tech-marks-note{margin:0;max-width:var(--measure);font-size:var(--fs-sm);color:var(--muted)}.tech-marks-warn{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--muted)}.tech-marks-warn .ui-ico{flex:none;color:var(--warning, var(--muted-2))}.tech-mark{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.tech-mark-ico{flex:none}.lv-row{display:flex;align-items:stretch;gap:0;margin-top:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-alt);overflow:hidden}.lv-grade{flex:none;width:64px;margin:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:1;color:var(--lv-ink);background:var(--lv-d)}.lv-grade[data-tier=S]{background:var(--lv-s)}.lv-grade[data-tier=A]{background:var(--lv-a)}.lv-grade[data-tier=B]{background:var(--lv-b)}.lv-grade[data-tier=C]{background:var(--lv-c)}.lv-grade[data-tier=D]{background:var(--lv-d)}.lv-grade--none{background:var(--surface-2);color:var(--muted)}.lv-row--none{background:var(--surface)}.lv-tiles{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-2)}.lv-tile{position:relative;width:92px;display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-1);border-radius:var(--r-sm);color:var(--text-2);text-decoration:none}.lv-tile:hover{background:var(--surface-hover);color:var(--text)}.lv-tile-name{font-size:var(--fs-2xs);line-height:1.25;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lv-num{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--text)}.lv-num img{display:block}.lv-num--none{color:var(--muted-2)}.lv-tile-partial{position:absolute;top:2px;right:4px;color:var(--muted-2);font-size:var(--fs-xs)}.lv-method{margin-top:var(--gap-block)}.lv-method p{margin:var(--sp-3) 0 0;padding:0 var(--sp-3);max-width:var(--measure);font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--muted)}.lv-method p:first-of-type{margin-top:0}.lv-note{margin:var(--sp-3) 0 0;max-width:var(--measure);font-size:var(--fs-sm);color:var(--muted)}.lv-skel{margin-top:var(--sp-3);height:320px;border-radius:var(--r-md);background:var(--surface-alt)}@media (max-width: 560px){.lv-grade{width:40px;font-size:var(--fs-xl)}.lv-tile{width:78px}}.keychain{margin-top:var(--gap-block)}.keychain-warn{margin:0;padding:0 var(--sp-3);max-width:var(--measure);font-size:var(--fs-sm);color:var(--muted)}.keychain-rows{margin:var(--sp-3) 0 0;padding:0 var(--sp-3);display:grid;gap:var(--sp-3)}.keychain-rows>div{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:var(--sp-3);align-items:start}.keychain-rows dd .iref{width:fit-content;max-width:100%}.keychain-rows dt{padding-top:var(--sp-2);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:var(--tr-caps);color:var(--muted-2)}.keychain-rows dd{margin:0;font-size:var(--fs-sm);color:var(--text-2)}.keychain-hint{display:block;color:var(--muted)}.keychain-mode{display:block;font-size:var(--fs-xs);color:var(--muted-2)}@media (max-width: 560px){.keychain-rows>div{grid-template-columns:1fr;gap:2px}}
