.npc-lab,.sd-legacy{display:none!important}
.sv-page{--wood:#754329;--wood2:#43291d;--paper:#f6e3b5;--paper2:#ffefc7;--green:#3e7044;--blue:#145d98;--red:#a74932;--ink:#35251a;position:absolute;inset:1.7% 2.5% 2.7%;display:grid;grid-template-rows:82px minmax(0,1fr) 72px;gap:9px;overflow:hidden;color:var(--ink);font-family:"Noto Sans SC",sans-serif;background:linear-gradient(rgba(139,91,47,.07) 1px,transparent 1px) 0 0/17px 17px,linear-gradient(90deg,rgba(139,91,47,.07) 1px,transparent 1px) 0 0/17px 17px,rgba(249,234,193,.64)}
.sv-page *{box-sizing:border-box}.sv-page button,.sv-page a{font:inherit;cursor:pointer}.sv-page button:focus-visible,.sv-page a:focus-visible{outline:3px solid #2b86c5;outline-offset:2px}.sv-page ::selection{color:#fff;background:#21669d}
.sv-titlebar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:8px 17px 8px 12px;border:3px solid #98673e;background:linear-gradient(#fff0c6,#f4dca7);box-shadow:inset 0 0 0 3px rgba(255,255,255,.45),0 5px 11px rgba(52,31,20,.15)}
.sv-brand{display:flex;align-items:center;gap:12px;min-width:0}.sv-brand-mark{position:relative;display:grid;place-items:center;flex:0 0 60px;width:60px;height:60px;border:4px solid var(--wood2);background:#497a43;box-shadow:inset 0 0 0 3px #8cab5a,0 4px 8px rgba(39,24,16,.2)}.sv-brand-mark:after{content:"NPC";position:absolute;right:-7px;bottom:-5px;padding:2px 4px;border:2px solid var(--wood2);color:#fff4d1;background:var(--red);font-family:"IBM Plex Mono",monospace;font-size:7px;font-weight:900}.sv-brand-mark svg{width:48px;height:48px;stroke:var(--wood2);stroke-width:2;stroke-linejoin:miter}.sv-brand-mark .leaf{fill:#dfbc61}.sv-brand-mark .face{fill:#f2d584}.sv-brand-mark .eye{fill:var(--wood2)}.sv-brand-mark .star{fill:#f1d045;stroke:none}.sv-brand h2{margin:0;color:#261b13;font-family:"Knewave","Noto Sans SC",sans-serif;font-size:28px;font-weight:400;letter-spacing:.055em;line-height:1}.sv-brand p{margin:6px 0 0;font-size:12.5px;font-weight:750;line-height:1.15}
.sv-ai-note{position:relative;flex:0 0 248px;margin:0;padding:11px 17px;border:2px solid #a97843;color:#154f82;background:linear-gradient(150deg,#f5df97,#edce80);box-shadow:0 6px 11px rgba(52,32,19,.17),inset 0 0 0 2px rgba(255,247,207,.48);font-family:"Caveat",cursive;font-size:18px;line-height:1.02;transform:rotate(-2.4deg)}.sv-ai-note:before{content:"";position:absolute;top:-7px;left:42%;width:48px;height:12px;background:rgba(224,200,148,.72);transform:rotate(4deg)}.sv-ai-note b{margin-left:6px;color:var(--red)}
.sv-main-grid{display:grid;grid-template-columns:minmax(0,59fr) minmax(0,41fr);gap:14px;min-height:0}.sv-room,.sv-questlog{position:relative;min-width:0;min-height:0;border:9px solid var(--wood);outline:3px solid var(--wood2);outline-offset:-7px;box-shadow:inset 0 0 0 2px #bd8150,0 8px 15px rgba(43,27,18,.23)}.sv-room{padding:7px;background:#211a18}.sv-wood-sign,.sv-quest-sign{position:absolute;z-index:6;top:-19px;left:17px;margin:0;padding:7px 14px;border:4px solid var(--wood2);color:#0d5187;background:linear-gradient(#d29a5d,#b97442);box-shadow:inset 0 0 0 2px rgba(255,226,164,.45),0 4px 8px rgba(45,27,17,.24);font-family:"Knewave","Noto Sans SC",sans-serif;font-size:16px;font-weight:400;letter-spacing:.025em;transform:rotate(-.7deg)}
.sv-room-scene{position:relative;width:100%;height:100%;overflow:hidden;background:#16191f}.sv-room-scene>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 52%;image-rendering:pixelated;filter:saturate(.98) contrast(1.03)}.sv-room-scene:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 3px rgba(247,208,133,.32)}
.sv-time-card{position:absolute;z-index:4;top:56px;left:13px;width:104px;padding:10px 7px 8px;border:4px solid var(--wood2);background:linear-gradient(#fae9bb,#efd49a);box-shadow:inset 0 0 0 3px rgba(255,255,255,.42),5px 7px 12px rgba(31,20,15,.3)}.sv-time-card>strong{display:block;margin:0 4px 5px;padding-bottom:5px;border-bottom:2px solid rgba(114,72,40,.32);font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.08em}.sv-time-card button{display:grid;grid-template-columns:1fr 18px;align-items:center;width:100%;min-height:28px;padding:0 6px;border:2px solid transparent;color:#402c1e;background:transparent;font-family:"IBM Plex Mono",monospace;font-size:10px;font-weight:800;text-align:left}.sv-time-card button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter}.sv-time-card button:hover{background:#e8ca8d}.sv-time-card button[aria-pressed=true]{border-color:#174d7a;color:#fff6d8;background:#256ba4;box-shadow:inset 0 0 0 2px #6aa3cb}
.sv-dialogue{position:absolute;z-index:5;right:13px;bottom:57px;width:165px;margin:0;padding:10px 12px;border:4px solid var(--wood2);color:#38271c;background:#fff0bf;box-shadow:inset 0 0 0 2px #deb978,0 6px 11px rgba(31,20,14,.25);font-size:11px;font-weight:800;line-height:1.35}.sv-dialogue:after{content:"";position:absolute;left:25px;bottom:-11px;width:15px;height:15px;border-right:4px solid var(--wood2);border-bottom:4px solid var(--wood2);background:#fff0bf;transform:rotate(45deg)}.sv-dialogue b{float:right;color:var(--red);font-size:16px}.sv-watch{position:absolute;z-index:5;left:50%;bottom:12px;display:flex;align-items:center;justify-content:center;gap:8px;min-width:188px;height:42px;border:4px solid var(--wood2);color:#fff2cd;background:linear-gradient(#8b593b,#6c402c);box-shadow:inset 0 0 0 2px #b77e4b,0 5px 9px rgba(31,19,13,.27);font-family:"IBM Plex Mono",monospace;font-size:10px;font-weight:900;letter-spacing:.045em;transform:translateX(-50%);transition:filter 150ms ease,margin 150ms ease}.sv-watch:hover{filter:brightness(1.13);margin-bottom:2px}.sv-watch svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2}.sv-watch .fill{fill:currentColor;stroke:none}.sv-room-status{position:absolute;z-index:4;right:9px;top:9px;padding:4px 6px;color:#ffe9b3;background:rgba(42,27,22,.82);font-family:"IBM Plex Mono",monospace;font-size:7px;font-weight:800;letter-spacing:.06em}
.sv-questlog{display:grid;grid-template-rows:minmax(0,1fr) 49px 33px;gap:7px;padding:18px 10px 8px;background:repeating-linear-gradient(0deg,#4d763b 0 5px,#456d35 5px 10px)}.sv-quest-sign{display:flex;align-items:center;gap:7px;left:13px}.sv-quest-sign svg{width:17px;height:17px;fill:none;stroke:#315e38;stroke-width:2.5;stroke-linecap:square;stroke-linejoin:miter}.sv-quest-list{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:8px;min-height:0}.sv-quest{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) auto 26px;gap:7px;align-items:center;min-height:0;padding:8px;border:4px solid var(--wood2);color:var(--ink);background:linear-gradient(#fff0c8,#efd7a0);box-shadow:inset 0 0 0 3px rgba(255,255,255,.38),0 5px 9px rgba(27,18,13,.24);text-align:left;transition:filter 150ms ease,transform 180ms cubic-bezier(.22,1,.36,1)}.sv-quest:before{content:"";position:absolute;inset:5px;border:1px dashed rgba(135,84,40,.28);pointer-events:none}.sv-quest:hover{filter:brightness(1.04);transform:translateX(3px)}.sv-seal{position:relative;z-index:1;display:grid;place-items:center;width:34px;height:34px;border:3px solid #97683a;border-radius:50%;color:#13598f;background:#efd083;box-shadow:inset 0 0 0 2px #ffebb3;font-family:"IBM Plex Mono",monospace;font-size:10px;font-weight:900}.sv-quest-copy{position:relative;z-index:1}.sv-quest-copy strong{display:block;color:var(--blue);font-family:"IBM Plex Mono",monospace;font-size:10.5px;line-height:1.05}.sv-quest-copy small{display:block;margin-top:4px;font-size:9px;font-weight:700;line-height:1.3}.sv-mini-icons{position:relative;z-index:1;display:flex;gap:4px}.sv-mini-icons i{display:grid;place-items:center;width:24px;height:25px;border:2px solid #93683e;background:#e8cf92;box-shadow:inset 0 0 0 2px rgba(255,255,255,.4)}.sv-enter{position:relative;z-index:1;width:24px;height:28px;border:2px solid #2d5739;background:#39744a}.sv-enter:before,.sv-enter:after{content:"";position:absolute;background:#fff1c9}.sv-enter:before{left:5px;top:12px;width:11px;height:3px}.sv-enter:after{right:4px;top:8px;width:8px;height:8px;border-top:3px solid #fff1c9;border-right:3px solid #fff1c9;background:transparent;transform:rotate(45deg)}
.sv-nexus{display:flex;align-items:center;justify-content:center;gap:7px;border:4px solid var(--wood2);color:#fff1ce;background:linear-gradient(#9a6040,#77462f);box-shadow:inset 0 0 0 2px #bc7d4b,0 4px 8px rgba(27,18,13,.24);font-family:"IBM Plex Mono",monospace;font-size:8.5px;font-weight:900;letter-spacing:.06em;text-decoration:none;transition:filter 150ms ease,transform 150ms ease}.sv-nexus:hover{filter:brightness(1.12);transform:translateY(-2px)}.sv-nexus b{font-size:14px}.sv-quest-foot{align-self:center;margin:0;color:#f7e1ad;font-family:"IBM Plex Mono",monospace;font-size:6.5px;font-weight:800;letter-spacing:.08em;text-align:center}
.sv-inventory{display:flex;align-items:center;justify-content:center;gap:7px;padding:5px 12px 6px;border-top:3px solid rgba(112,72,41,.35);background:rgba(245,224,173,.48)}.sv-inventory-title{padding:6px 9px;border:3px solid var(--wood2);color:#fff0c8;background:var(--wood);box-shadow:inset 0 0 0 2px #a66c42;font-family:"IBM Plex Mono",monospace;font-size:7.5px;font-weight:900;line-height:1.15;text-align:center}.sv-tool{position:relative;display:grid;place-items:center;width:64px;height:62px;padding:4px;border:4px solid var(--wood2);color:#175f99;background:#edd49a;box-shadow:inset 0 0 0 3px #f9eac1,inset 0 -7px 0 rgba(171,119,64,.12),0 5px 9px rgba(46,29,19,.21);image-rendering:pixelated;transition:transform 160ms ease,filter 150ms ease,background-color 150ms ease}.sv-tool:hover{filter:brightness(1.06);transform:translateY(-4px)}.sv-tool.is-selected{background:#e5be65;box-shadow:inset 0 0 0 3px #fff0b3,inset 0 -7px 0 rgba(137,83,36,.16),0 0 0 2px #7b4c2f,0 7px 12px rgba(38,26,18,.25)}.sv-tool>img{display:block;width:52px;height:52px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 0 rgba(78,45,27,.22))}.sv-tool em{position:absolute;z-index:12;left:50%;bottom:calc(100% + 8px);min-width:130px;padding:7px 8px;border:3px solid var(--wood2);color:#38271c;background:#fff0c4;box-shadow:inset 0 0 0 2px #dcb879,0 6px 10px rgba(38,24,16,.25);font-size:8px;font-style:normal;line-height:1.3;opacity:0;pointer-events:none;transform:translate(-50%,5px);transition:opacity 140ms ease,transform 170ms ease}.sv-tool:hover em,.sv-tool:focus-visible em{opacity:1;transform:translate(-50%,0)}.sv-tool em b{display:block;color:var(--blue);font-family:"IBM Plex Mono",monospace;font-size:9px}.sv-tool>i,.sv-mini-icons i{position:relative;color:inherit}
.sv-tool i:before,.sv-tool i:after,.sv-mini-icons i:before,.sv-mini-icons i:after,.sv-research-tools>article>i:before,.sv-research-tools>article>i:after{content:"";position:absolute;box-sizing:border-box}.research:before{left:4px;top:3px;width:20px;height:20px;border:4px solid currentColor;border-radius:50%}.research:after{left:24px;top:23px;width:14px;height:4px;background:currentColor;transform:rotate(45deg)}.book:before{inset:4px 18px 4px 2px;border:3px solid currentColor;background:#f7df9f}.book:after{inset:4px 2px 4px 18px;border:3px solid currentColor;background:#f7df9f}.dialogue:before{inset:4px;border:3px solid currentColor;border-radius:45%}.dialogue:after{left:9px;bottom:1px;width:9px;height:9px;border-left:3px solid currentColor;transform:skew(-28deg)}.map:before{inset:3px;border:3px solid currentColor;background:linear-gradient(currentColor 0 0) 50% 0/3px 100% no-repeat,linear-gradient(currentColor 0 0) 0 50%/100% 3px no-repeat}.map:after{left:4px;top:4px;width:14px;height:14px;background:rgba(255,255,255,.28)}.code:before{left:4px;top:9px;width:16px;height:16px;border-left:4px solid currentColor;border-bottom:4px solid currentColor;transform:rotate(45deg)}.code:after{right:4px;top:9px;width:16px;height:16px;border-right:4px solid currentColor;border-top:4px solid currentColor;transform:rotate(45deg)}.wrench:before{left:15px;top:2px;width:9px;height:34px;border:4px solid currentColor;transform:rotate(42deg)}.wrench:after{left:2px;bottom:1px;width:14px;height:14px;border:4px solid currentColor;border-radius:50%}.game:before{inset:7px 2px 4px;border:3px solid currentColor}.game:after{left:7px;top:15px;width:12px;height:3px;background:currentColor;box-shadow:4px -4px 0 -1px currentColor}
.sv-modal{position:absolute;z-index:50;inset:0;display:grid;place-items:center;padding:16px;background:rgba(30,23,18,.72);opacity:0;visibility:hidden;transition:opacity 180ms ease,visibility 180ms ease}.sv-modal.is-open{opacity:1;visibility:visible}.sv-window{position:relative;width:min(97%,1030px);max-height:96%;overflow:auto;padding:14px;border:10px solid var(--wood2);outline:3px solid #151311;outline-offset:-7px;color:var(--ink);background:linear-gradient(rgba(131,86,43,.055) 1px,transparent 1px) 0 0/100% 21px,var(--paper);box-shadow:0 18px 31px rgba(17,12,9,.46),inset 0 0 0 4px #ce9454;transform:translateY(8px);transition:transform 220ms cubic-bezier(.22,1,.36,1)}.sv-window:before{content:"";position:absolute;inset:7px;border:2px solid rgba(255,240,196,.65);pointer-events:none}.sv-modal.is-open .sv-window{transform:translateY(0)}.sv-window-head{position:relative;z-index:1;display:flex;align-items:start;gap:11px;padding:0 0 10px;border-bottom:3px solid #b6773d}.sv-window-head>div{flex:1}.sv-window-num{display:grid;place-items:center;width:47px;height:37px;color:#fff;background:#1473c5;box-shadow:inset 0 0 0 3px rgba(255,255,255,.28);font-family:"IBM Plex Mono",monospace;font-size:16px;font-weight:900}.sv-window-head h3{margin:0;color:#0e538d;font-family:"IBM Plex Mono",monospace;font-size:17px;line-height:1}.sv-window-head p{margin:5px 0 0;font-size:11px;font-weight:750}.sv-close{position:relative;width:36px;height:34px;border:4px solid var(--wood2);background:#c65035;box-shadow:inset 0 0 0 2px #e88360}.sv-close span:before,.sv-close span:after{content:"";position:absolute;left:8px;top:13px;width:15px;height:3px;background:#352117}.sv-close span:before{transform:rotate(45deg)}.sv-close span:after{transform:rotate(-45deg)}
.sv-research-board{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(310px,.88fr);grid-template-rows:50px minmax(0,1fr) 82px;grid-template-areas:"scene route" "scene notes" "tools sticky";gap:10px;margin-top:11px}.sv-research-scene{grid-area:scene;position:relative;min-height:330px;margin:0;overflow:hidden;border:5px solid var(--wood2);background:#251b16;box-shadow:inset 0 0 0 3px #9e683d}.sv-research-scene img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.sv-research-scene figcaption{position:absolute;right:17px;top:18px;padding:10px 12px;border:4px solid var(--wood2);background:#fff0bf;box-shadow:inset 0 0 0 2px #dfb978,0 5px 9px rgba(36,23,15,.24);font-size:11px;font-weight:800;line-height:1.4}.sv-research-route{grid-area:route;display:grid;grid-template-columns:auto 1fr 22px 1.2fr auto;align-items:center;gap:5px;padding:6px 8px;border:3px solid var(--wood2);background:#ead092;box-shadow:inset 0 0 0 2px #f9e7b8}.sv-research-route span{color:#795235;font-family:"IBM Plex Mono",monospace;font-size:6px;font-weight:900}.sv-research-route b{color:var(--blue);font-family:"IBM Plex Mono",monospace;font-size:9px;text-align:center}.sv-research-route i{position:relative;height:3px;background:var(--blue)}.sv-research-route i:after{content:"";position:absolute;right:-1px;top:-4px;border-left:7px solid var(--blue);border-top:5px solid transparent;border-bottom:5px solid transparent}.sv-research-notes{grid-area:notes;padding:11px 14px;border:4px solid var(--wood2);background:linear-gradient(rgba(137,92,48,.08) 1px,transparent 1px) 0 0/100% 22px,#f9e7b8;box-shadow:inset 0 0 0 3px rgba(255,255,255,.4)}.sv-research-notes h4{margin:0 0 8px;padding-bottom:7px;border-bottom:2px dashed rgba(112,72,40,.32);font-family:"IBM Plex Mono",monospace;font-size:12px;text-align:center}.sv-research-notes ul{display:grid;gap:5px;margin:0;padding:0;list-style:none}.sv-research-notes li{position:relative;padding:1px 0 3px 24px;border-bottom:1px solid rgba(117,76,41,.17);font-size:9.5px}.sv-research-notes li:before{content:"";position:absolute;left:2px;top:0;width:13px;height:13px;border:2px solid #785d3d;background:#fff2c9;box-shadow:inset 0 0 0 2px #ead29a}.sv-research-notes li:nth-child(-n+3):after{content:"✓";position:absolute;left:4px;top:-3px;color:#3b7548;font-size:13px;font-weight:900}.sv-research-tools{grid-area:tools;display:grid;grid-template-columns:1fr 1fr;gap:8px}.sv-research-tools article{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:8px;padding:8px;border:4px solid var(--wood2);background:#f7e5b7;box-shadow:inset 0 0 0 2px #dcb678}.sv-research-tools>article>i{position:relative;width:36px;height:36px;color:var(--blue)}.sv-research-tools p{margin:0}.sv-research-tools strong{display:block;color:var(--blue);font-family:"IBM Plex Mono",monospace;font-size:9px}.sv-research-tools span{display:block;margin-top:3px;font-size:8px;font-weight:700}.sv-sticky{grid-area:sticky;align-self:stretch;margin:0;padding:13px 16px;border:2px solid #aa7b45;color:#18558a;background:#f0d58d;box-shadow:0 5px 9px rgba(46,29,18,.18);font-family:"Caveat",cursive;font-size:17px;line-height:1.08;transform:rotate(-2deg)}.sv-sticky b{color:var(--red)}
.sv-build-bench{display:grid;grid-template-columns:1.06fr 28px .9fr 28px 1fr 28px .68fr;align-items:stretch;gap:5px;margin-top:12px}.sv-craft-zone,.sv-build-result{position:relative;min-width:0;padding:10px;border:4px solid var(--wood2);background:linear-gradient(#fae9bd,#efd5a0);box-shadow:inset 0 0 0 3px rgba(255,255,255,.38)}.sv-craft-zone h4{margin:0 0 8px;padding-bottom:6px;border-bottom:2px dashed rgba(115,72,38,.28);font-family:"IBM Plex Mono",monospace;font-size:9.5px}.sv-craft-zone ul{margin:7px 0 0;padding-left:14px;font-size:8px;line-height:1.45}.sv-paper-stack{height:105px;padding:10px;border:3px solid #8a633e;background:#dfc591}.sv-paper-stack span{display:block;width:88%;margin-bottom:6px;padding:5px 6px;border:2px solid #87613f;background:#fff0c5;font-size:6.5px}.sv-paper-stack span:nth-child(2){margin-left:12%}.sv-tool-stamp{position:absolute;right:14px;top:106px;padding:3px 5px;color:#fff;background:#30734d;font-family:"IBM Plex Mono",monospace;font-size:7px;font-style:normal}.sv-tile-map{position:relative;height:105px;border:3px solid #7c5938;background-color:#79ad6c;background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px);background-size:15px 15px}.sv-tile-map>span{position:absolute;left:50%;top:51%;width:50px;height:34px;border:4px solid #65422d;background:#d89958;transform:translate(-50%,-25%)}.sv-tile-map>span:before{content:"";position:absolute;left:-8px;top:-23px;border-left:29px solid transparent;border-right:29px solid transparent;border-bottom:25px solid #994b3c}.sv-tile-map>span:after{content:"";position:absolute;left:18px;bottom:0;width:12px;height:21px;background:#684733}.sv-tile-map b{position:absolute;right:5px;bottom:4px;padding:3px 5px;color:#fff;background:#5d4a91;font-family:"IBM Plex Mono",monospace;font-size:7px}.sv-craft-zone pre{height:105px;margin:0;padding:10px;color:#d9e7cc;background:#202d34;box-shadow:inset 0 0 0 3px #43545b;font-family:"IBM Plex Mono",monospace;font-size:7px;line-height:1.45}.sv-craft-zone pre span{color:#f1c875}.sv-code-mark{position:absolute;right:16px;top:110px;color:#72aee1;font-family:"IBM Plex Mono",monospace;font-size:11px}.sv-build-arrow{align-self:center;position:relative;height:4px;background:var(--blue)}.sv-build-arrow:after{content:"";position:absolute;right:-1px;top:-6px;border-left:9px solid var(--blue);border-top:8px solid transparent;border-bottom:8px solid transparent}.sv-build-result{display:grid;place-items:center;align-content:center;gap:20px;color:#fff0ca;background:linear-gradient(#9c6745,#71422d);text-align:center}.sv-build-result strong{font-family:"IBM Plex Mono",monospace;font-size:8.5px;line-height:1.3}.sv-pixel-chest{position:relative;width:53px;height:40px;border:4px solid #3d281d;background:#8d5838;box-shadow:inset 0 0 0 4px #bd7b41}.sv-pixel-chest:before{content:"";position:absolute;left:-4px;top:-17px;width:53px;height:18px;border:4px solid #3d281d;background:#a96b3d}.sv-pixel-chest:after{content:"";position:absolute;left:19px;top:13px;width:11px;height:14px;border:3px solid #493124;background:#dfae49}.sv-build-summary{display:flex;align-items:center;justify-content:center;gap:8px;margin:10px 0 0;padding:8px;border:3px solid #244d35;color:#fff1cc;background:#356448;box-shadow:inset 0 0 0 2px #65916a;font-family:"IBM Plex Mono",monospace;font-size:9px;font-weight:900;letter-spacing:.055em}.sv-build-summary i{position:relative;width:25px;height:3px;background:#fff0c9}.sv-build-summary i:after{content:"";position:absolute;right:-1px;top:-4px;border-left:7px solid #fff0c9;border-top:5px solid transparent;border-bottom:5px solid transparent}
.sv-debug-room{position:relative;min-height:365px;margin-top:11px;overflow:hidden;border:6px solid var(--wood2);background:#121921;box-shadow:inset 0 0 0 3px #9c683e}.sv-debug-room>img{display:block;width:100%;height:365px;object-fit:cover;image-rendering:pixelated;filter:saturate(.94) brightness(.92)}.sv-debug-room:after{content:"CLICK A SLIME TO INSPECT";position:absolute;left:14px;top:12px;padding:4px 6px;color:#ffe4a9;background:rgba(39,25,20,.78);font-family:"IBM Plex Mono",monospace;font-size:7px;font-weight:900;letter-spacing:.06em}.sv-slime{position:absolute;z-index:3;display:flex;flex-direction:column;align-items:center;width:105px;padding:0;border:0;color:#fff4d2;background:transparent;text-shadow:0 2px 2px #1d120f}.sv-slime i{position:relative;width:64px;height:52px;background:#5db66a;clip-path:polygon(30% 0,70% 0,70% 10%,83% 10%,83% 22%,92% 22%,92% 39%,100% 39%,100% 87%,92% 87%,92% 100%,8% 100%,8% 87%,0 87%,0 39%,8% 39%,8% 22%,17% 22%,17% 10%,30% 10%);filter:drop-shadow(0 5px 0 rgba(20,13,12,.43))}.sv-slime i:before{content:"";position:absolute;left:18px;top:24px;width:8px;height:9px;background:#fff2ca;box-shadow:21px 0 #fff2ca}.sv-slime i:after{content:"";position:absolute;left:19px;top:26px;width:4px;height:5px;background:#30251d;box-shadow:21px 0 #30251d}.sv-slime span{margin-top:3px;padding:3px 5px;background:rgba(42,28,23,.82);font-family:"IBM Plex Mono",monospace;font-size:7px;font-weight:900;white-space:nowrap}.sv-slime[data-sd-debug=asset]{left:9%;top:20%}.sv-slime[data-sd-debug=key]{left:37%;top:52%}.sv-slime[data-sd-debug=loop]{left:13%;top:62%}.sv-slime[data-sd-debug=stack]{left:48%;top:23%}.sv-slime[data-sd-debug=key] i{background:#4d83cf}.sv-slime[data-sd-debug=loop] i{background:#9a65b4}.sv-slime[data-sd-debug=stack] i{background:#d65c4d}.sv-slime.is-selected i{filter:drop-shadow(0 0 8px #f6d666) drop-shadow(0 5px 0 rgba(20,13,12,.43))}.sv-slime.is-fixed{opacity:.32}.sv-slime.is-fixed:after{content:"✓";position:absolute;left:50%;top:8px;display:grid;place-items:center;width:50px;height:42px;color:#d9ffd6;background:rgba(35,105,57,.82);font-size:28px;transform:translateX(-50%)}.sv-debug-note{position:absolute;z-index:5;top:16px;right:14px;width:278px;min-height:325px;padding:12px 14px;border:5px solid var(--wood2);background:rgba(250,231,184,.97);box-shadow:inset 0 0 0 3px #d1a466,0 8px 14px rgba(21,14,11,.36)}.sv-debug-note h4{margin:0 0 7px;color:#8f3d2f;font-family:"IBM Plex Mono",monospace;font-size:10px}.sv-debug-note dl{margin:0}.sv-debug-note dt{display:inline-block;margin-top:6px;padding:2px 5px;color:#fff1cc;background:var(--blue);font-family:"IBM Plex Mono",monospace;font-size:7px;font-weight:900}.sv-debug-note dd{margin:2px 0 0;font-size:8.5px;font-weight:650;line-height:1.33}.sv-debug-note .sd-test{width:100%;min-height:33px;margin-top:8px;border:4px solid var(--wood2);color:#fff1cc;background:linear-gradient(#8b573a,#70402c);box-shadow:inset 0 0 0 2px #b77e4b;font-family:"IBM Plex Mono",monospace;font-size:8px;font-weight:900}.sv-debug-note .sd-test:disabled{color:#275f3b;background:#b8d090}.sv-complete{position:absolute;z-index:7;left:50%;top:50%;width:56%;margin:0;padding:20px 13px;border:5px solid var(--wood2);color:#49311f;background:#f4dc96;box-shadow:inset 0 0 0 3px #fff0ba,0 12px 25px rgba(19,12,9,.44);text-align:center;opacity:0;pointer-events:none;transform:translate(-50%,-44%);transition:opacity 190ms ease,transform 240ms cubic-bezier(.22,1,.36,1)}.sv-complete.is-visible{opacity:1;transform:translate(-50%,-50%)}.sv-complete strong{display:block;color:#287144;font-family:"IBM Plex Mono",monospace;font-size:20px}.sv-complete span{display:block;margin-top:5px;font-family:"IBM Plex Mono",monospace;font-size:10px}
.sv-game-stage{display:grid;grid-template-columns:minmax(0,1fr) 238px;gap:12px;margin-top:12px}.sv-video-cabinet{position:relative;display:grid;place-items:center;min-width:0;padding:9px;border:6px solid var(--wood2);background:#171413;box-shadow:inset 0 0 0 3px #ae7441}.sv-video-cabinet>span{position:absolute;z-index:2;left:18px;top:-10px;padding:4px 8px;border:3px solid var(--wood2);color:#fff0c7;background:var(--red);font-family:"IBM Plex Mono",monospace;font-size:7px;font-weight:900}.sv-video{display:block;width:100%;max-height:430px;background:#080909;object-fit:contain}.sv-proof-board{display:grid;grid-template-rows:auto 1fr auto;gap:7px;min-height:0}.sv-proof-note{margin:5px 7px 2px;padding:13px 16px;border:2px solid #aa7b45;color:#17558b;background:#efd48a;box-shadow:0 5px 9px rgba(46,29,18,.18);font-family:"Caveat",cursive;font-size:18px;line-height:1.05;transform:rotate(2deg)}.sv-proof-board figure{position:relative;min-height:0;margin:0;padding:5px;border:4px solid var(--wood2);background:#c58e51;box-shadow:inset 0 0 0 2px #e0b873}.sv-proof-board figure img{display:block;width:100%;height:100%;max-height:127px;object-fit:cover}.sv-proof-board figure.wide img{object-position:50% 17%}.sv-proof-board>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.sv-proof-board>div figure img{height:94px}.sv-proof-board figcaption{position:absolute;left:8px;bottom:7px;padding:3px 5px;color:#fff0cb;background:rgba(43,29,22,.84);font-family:"IBM Plex Mono",monospace;font-size:6px;font-weight:900}

/* Song's Room UI — intentionally scoped to the left scene only. */
.sv-room{
  padding:6px;
  border-style:solid;
  border-width:9px 7px 10px 9px;
  border-color:#4d2c1c #3f2519 #55321f #4b2a1b;
  outline:3px solid #2d1b13;
  outline-offset:-2px;
  background:repeating-linear-gradient(0deg,#9e6136 0 5px,#8b512f 5px 8px);
  box-shadow:inset 0 0 0 2px #d49a5c,inset 0 0 0 6px #6d4027,0 8px 15px rgba(43,27,18,.3)
}
.sv-room:before,.sv-room:after{
  content:"";
  position:absolute;
  z-index:3;
  top:5px;
  width:7px;
  height:7px;
  border:2px solid #382117;
  background:#c68a4b;
  box-shadow:inset 0 0 0 1px #f0b96c,0 418px 0 -2px #c68a4b;
  pointer-events:none
}
.sv-room:before{left:5px}.sv-room:after{right:4px}
.sv-room-scene{
  border:4px solid #412619;
  box-shadow:0 0 0 2px #c08049,0 0 0 4px #6e4026,inset 0 0 0 3px rgba(255,216,145,.22)
}
.sv-room-scene:after{
  box-shadow:inset 0 0 0 2px #3a251a,inset 0 0 0 4px rgba(216,145,75,.45)
}
.sv-wood-sign{
  top:-20px;
  left:15px;
  min-width:138px;
  padding:12px 16px 10px;
  border:0;
  clip-path:polygon(5px 2px,23% 2px,25% 0,73% 1px,75% 3px,calc(100% - 5px) 2px,100% 7px,calc(100% - 2px) calc(100% - 6px),calc(100% - 7px) 100%,72% calc(100% - 2px),69% 100%,23% calc(100% - 1px),20% calc(100% - 3px),4px 100%,0 calc(100% - 6px),2px 7px);
  color:#123f68;
  background:
    linear-gradient(90deg,rgba(255,226,160,.15),transparent 28%,rgba(91,48,25,.11) 29% 31%,transparent 32%),
    repeating-linear-gradient(0deg,#c58a52 0 5px,#bb7c48 5px 7px);
  box-shadow:inset 0 0 0 3px #4a2b1b,inset 0 0 0 5px #e0ad6d,inset 0 -7px 0 rgba(92,47,25,.15);
  filter:drop-shadow(1px 5px 4px rgba(39,23,15,.34));
  font-family:"IBM Plex Mono","Noto Sans SC",monospace;
  font-size:15.5px;
  font-weight:900;
  letter-spacing:-.035em;
  text-align:center;
  transform:rotate(-1.1deg)
}
.sv-wood-sign:before{
  content:"";
  position:absolute;
  left:7px;
  top:7px;
  width:4px;
  height:4px;
  background:#74462b;
  box-shadow:120px -1px #74462b,1px 31px #74462b,121px 30px #74462b
}
.sv-time-card{
  top:54px;
  left:11px;
  width:102px;
  padding:11px 7px 9px;
  border-style:solid;
  border-width:4px 3px 5px 4px;
  border-color:#5a3622 #704329 #4b2c1d #623922;
  border-radius:3px 1px 4px 2px;
  background:
    radial-gradient(circle at 0 0,rgba(119,63,29,.27),transparent 16px),
    radial-gradient(circle at 100% 0,rgba(119,63,29,.22),transparent 15px),
    radial-gradient(circle at 0 100%,rgba(119,63,29,.18),transparent 14px),
    linear-gradient(#fff0c8,#efd49a);
  box-shadow:inset 0 0 0 2px #fff0c7,inset 0 0 0 4px rgba(187,126,66,.23),4px 7px 11px rgba(31,20,15,.38);
  transform:rotate(-.75deg)
}
.sv-time-card:before{
  content:"";
  position:absolute;
  inset:3px;
  border:1px dashed rgba(112,67,34,.28);
  pointer-events:none
}
.sv-time-card:after{
  content:"";
  position:absolute;
  left:14px;
  top:-11px;
  width:4px;
  height:12px;
  border:1px solid #3e291e;
  background:#8e603a;
  box-shadow:67px 1px 0 -1px #8e603a;
  transform:rotate(5deg);
  pointer-events:none
}
.sv-time-card>strong,.sv-time-card button{position:relative;z-index:1}
.sv-time-card>strong{
  margin:0 4px 6px;
  padding:0 0 5px;
  border-bottom:2px solid rgba(111,68,37,.22);
  font-family:"IBM Plex Mono",monospace;
  font-size:11px;
  font-weight:900;
  letter-spacing:.035em
}
.sv-time-card button{
  grid-template-columns:1fr 20px;
  min-height:29px;
  padding:0 5px;
  border:2px solid transparent;
  font-size:10px;
  font-weight:900
}
.sv-time-card button:nth-of-type(1){transform:translateX(1px)}
.sv-time-card button:nth-of-type(2){transform:translateX(-1px)}
.sv-time-card button:nth-of-type(3){transform:translateX(1px)}
.sv-time-card button:nth-of-type(4){transform:translateX(0)}
.sv-time-card button:nth-of-type(1) svg{color:#d38e1f}
.sv-time-card button:nth-of-type(2) svg{color:#466581}
.sv-time-card button:nth-of-type(4) svg{color:#6a4a2e}
.sv-time-card button:hover{background:#ead09a}
.sv-time-card button[aria-pressed=true]{
  border-color:#356d9e;
  color:#17344c;
  background:#84b8e3;
  box-shadow:inset 0 0 0 2px rgba(218,239,255,.55)
}
.sv-time-card button[aria-pressed=true] svg{
  width:18px;
  height:18px;
  padding:2px;
  color:#fff4ce;
  background:#1768aa;
  box-shadow:inset 0 0 0 1px #0f4d82
}
.sv-dialogue{
  right:14px;
  bottom:66px;
  width:128px;
  min-height:72px;
  padding:10px 10px 18px;
  border:0;
  clip-path:polygon(7px 0,calc(100% - 7px) 0,calc(100% - 7px) 3px,100% 3px,100% calc(100% - 18px),calc(100% - 4px) calc(100% - 18px),calc(100% - 4px) calc(100% - 13px),47px calc(100% - 13px),35px 100%,32px calc(100% - 13px),6px calc(100% - 13px),6px calc(100% - 16px),0 calc(100% - 16px),0 7px,3px 7px,3px 3px,7px 3px);
  color:#2f2118;
  background:#4b2c1c;
  box-shadow:none;
  filter:drop-shadow(2px 6px 5px rgba(31,20,14,.34));
  font-size:11.5px;
  font-weight:900;
  line-height:1.38;
  isolation:isolate;
  transform:rotate(.65deg)
}
.sv-dialogue:before{
  content:"";
  position:absolute;
  z-index:0;
  inset:3px;
  clip-path:polygon(6px 0,calc(100% - 6px) 0,calc(100% - 6px) 3px,100% 3px,100% calc(100% - 16px),43px calc(100% - 16px),32px 100%,29px calc(100% - 16px),0 calc(100% - 16px),0 6px,3px 6px,3px 3px,6px 3px);
  background:linear-gradient(rgba(133,83,39,.08) 1px,transparent 1px) 0 7px/100% 17px,#fff0c4;
  box-shadow:inset 0 0 0 2px #e2bd7a
}
.sv-dialogue:after{
  content:"";
  position:absolute;
  z-index:0;
  right:6px;
  top:6px;
  width:3px;
  height:3px;
  background:#aa7140
}
.sv-dialogue span,.sv-dialogue b{position:relative;z-index:1}
.sv-dialogue span{display:block;padding:1px 5px 0}
.sv-dialogue b{position:absolute;right:10px;bottom:18px;color:#ef3f38;font-size:16px;line-height:1}
.sv-watch{
  bottom:15px;
  min-width:205px;
  height:39px;
  border:4px solid #4b2b1c;
  color:#fff3d2;
  background:repeating-linear-gradient(0deg,#8d5938 0 6px,#7b4a31 6px 8px);
  box-shadow:inset 0 0 0 2px #bd8050,inset 0 -4px 0 rgba(59,34,24,.22);
  font-size:9px;
  letter-spacing:.045em;
  isolation:isolate;
  transform:translateX(-50%) rotate(.45deg)
}
.sv-watch:before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-9px -12px;
  clip-path:polygon(8px 1px,44% 0,46% 2px,calc(100% - 6px) 1px,100% 7px,calc(100% - 2px) calc(100% - 7px),calc(100% - 8px) 100%,57% calc(100% - 1px),55% 100%,7px calc(100% - 1px),0 calc(100% - 7px),2px 7px);
  background:repeating-linear-gradient(0deg,#a86a3b 0 7px,#925630 7px 10px);
  box-shadow:inset 0 0 0 3px #4a2b1b,inset 0 0 0 5px #c5834a;
  filter:drop-shadow(2px 6px 4px rgba(31,19,13,.34))
}
.sv-watch:after{content:"";position:absolute;z-index:1;left:-7px;top:-4px;width:4px;height:4px;background:#684027;box-shadow:210px 1px #684027,1px 39px #684027,209px 40px #684027}
.sv-watch svg,.sv-watch span{position:relative;z-index:2}
.sv-watch:hover{filter:brightness(1.1);margin-bottom:1px}
.sv-watch svg{width:18px;height:18px;filter:drop-shadow(0 1px 0 #3f281c)}
.sv-watch svg>path:first-child{fill:#fff3d2;stroke:#fff3d2}
.sv-watch svg .fill{fill:#70452f;stroke:none}

/* Generated room UI kit v3 — the room illustration remains the untouched base asset. */
.sv-room{
  padding:0;
  border:14px solid transparent;
  border-image-source:url("assets/projects/npc/room-ui-v3/scene-frame.png");
  border-image-slice:100 105;
  border-image-width:14px;
  border-image-outset:3px;
  border-image-repeat:stretch;
  outline:0;
  background:#25170f;
  box-shadow:0 9px 16px rgba(43,27,18,.31)
}
.sv-room:before,.sv-room:after{content:none}
.sv-room-scene{border:0;box-shadow:inset 0 0 0 2px rgba(47,25,14,.55)}
.sv-room-scene:after{box-shadow:inset 0 0 0 2px rgba(255,214,143,.2)}
.sv-wood-sign{
  top:-23px;
  left:14px;
  display:grid;
  place-items:center;
  width:151px;
  min-width:0;
  height:46px;
  padding:0 19px 2px;
  border:0;
  clip-path:none;
  color:#123f68;
  background:url("assets/projects/npc/room-ui-v3/room-sign.png") center/100% 100% no-repeat;
  box-shadow:none;
  filter:drop-shadow(1px 5px 4px rgba(39,23,15,.35));
  font-family:"IBM Plex Mono","Noto Sans SC",monospace;
  font-size:13px;
  font-weight:900;
  letter-spacing:-.035em;
  text-shadow:0 1px 0 #e7b16a;
  transform:rotate(-1.2deg)
}
.sv-wood-sign:before,.sv-wood-sign:after{content:none}
.sv-time-card{
  top:51px;
  left:9px;
  width:105px;
  height:171px;
  padding:27px 14px 15px;
  border:0;
  border-radius:0;
  clip-path:none;
  color:#35251a;
  background:url("assets/projects/npc/room-ui-v3/time-board.png") center/100% 100% no-repeat;
  box-shadow:none;
  filter:drop-shadow(3px 6px 4px rgba(31,20,15,.38));
  transform:rotate(-.65deg)
}
.sv-time-card:before,.sv-time-card:after{content:none}
.sv-time-card>strong{
  margin:0 2px 4px;
  padding:0 0 4px;
  border-bottom:2px solid rgba(112,68,35,.18);
  font-family:"IBM Plex Mono",monospace;
  font-size:11px;
  font-weight:900;
  letter-spacing:.025em
}
.sv-time-card button{
  grid-template-columns:1fr 19px;
  min-height:25px;
  padding:0 4px;
  border:0;
  font-size:9.5px;
  font-weight:900;
  transform:none!important
}
.sv-time-card button:hover{background:rgba(219,187,121,.4)}
.sv-time-card button[aria-pressed=true]{
  border:0;
  clip-path:polygon(3px 0,100% 0,calc(100% - 2px) 100%,0 100%,0 3px);
  color:#17344c;
  background:#83b9e5;
  box-shadow:inset 0 0 0 2px #3974a6,inset 0 0 0 3px rgba(218,239,255,.5)
}
.sv-time-card button svg{width:15px;height:15px}
.sv-time-card button[aria-pressed=true] svg{width:18px;height:18px;padding:2px;color:#fff4ce;background:#1768aa;box-shadow:inset 0 0 0 1px #0f4d82}
.sv-dialogue{
  right:8px;
  bottom:72px;
  width:148px;
  min-height:0;
  height:68px;
  padding:11px 12px 16px 25px;
  border:0;
  clip-path:none;
  color:#2f2118;
  background:url("assets/projects/npc/room-ui-v3/dialogue-bubble.png") center/100% 100% no-repeat;
  box-shadow:none;
  filter:drop-shadow(2px 6px 5px rgba(31,20,14,.34));
  font-size:11px;
  font-weight:900;
  line-height:1.35;
  isolation:auto;
  transform:rotate(.5deg)
}
.sv-dialogue:before,.sv-dialogue:after{content:none}
.sv-dialogue span{display:block;padding:0;position:relative;z-index:auto}
.sv-dialogue b{position:absolute;right:12px;bottom:17px;color:#ef3f38;font-size:14px;line-height:1;z-index:auto}
.sv-watch{
  left:49%;
  bottom:-1px;
  display:flex;
  width:214px;
  min-width:0;
  height:62px;
  padding:1px 16px 0 55px;
  border:0;
  color:#fff3d2;
  background:url("assets/projects/npc/room-ui-v3/gameplay-button.png") center/100% 100% no-repeat;
  box-shadow:none;
  filter:drop-shadow(2px 6px 4px rgba(31,19,13,.35));
  font-family:"IBM Plex Mono",monospace;
  font-size:9px;
  font-weight:900;
  letter-spacing:.035em;
  isolation:auto;
  transform:translateX(-50%) rotate(.35deg)
}
.sv-watch:before,.sv-watch:after{content:none}
.sv-watch svg{display:none}
.sv-watch span{position:relative;z-index:auto}
.sv-watch:hover{filter:brightness(1.08) drop-shadow(2px 7px 4px rgba(31,19,13,.38));margin-bottom:1px}
.sv-page .sv-watch{font-family:"IBM Plex Mono",monospace;font-size:9px;font-weight:900}
.sv-page .sv-watch span{white-space:nowrap}

/* NPC page-only paper skin.
   This deliberately stops at the NPC pane: no shared project-book surface,
   module geometry, content, or interaction is changed here. */
#project-pane-npc{
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(circle at 9% 13%,rgba(128,76,38,.08) 0 1px,transparent 1.6px),
    radial-gradient(circle at 82% 24%,rgba(117,65,34,.06) 0 1px,transparent 1.5px),
    radial-gradient(circle at 26% 78%,rgba(121,72,39,.055) 0 1px,transparent 1.4px),
    linear-gradient(rgba(118,79,48,.04) 1px,transparent 1px) 0 0/24px 24px,
    linear-gradient(90deg,rgba(118,79,48,.04) 1px,transparent 1px) 0 0/24px 24px,
    repeating-linear-gradient(0deg,rgba(112,73,43,.025) 0 1px,transparent 1px 8px),
    linear-gradient(104deg,#ead8b8 0%,#f5e8cf 18%,#f8edd8 51%,#f3e3c7 82%,#e8d2ad 100%);
  box-shadow:
    inset 0 0 0 1px rgba(101,61,34,.3),
    inset 0 0 24px rgba(91,50,28,.13);
}
#project-pane-npc::before,#project-pane-npc::after{content:none}
.sv-page{
  box-sizing:border-box;
  isolation:isolate;
  background:transparent;
  box-shadow:none;
}
.sv-page::before,.sv-page::after{content:none}
.sv-page>.sv-inventory{
  border-top-color:transparent;
  background:transparent;
}

/* NPC title lockup only: individual pieces sit directly on the paper. */
#project-pane-npc .sv-titlebar{
  overflow:visible;
  padding:3px 14px 3px 10px;
  border:0;
  background:transparent;
  box-shadow:none;
}
#project-pane-npc .sv-brand{
  align-items:center;
  gap:11px;
}
#project-pane-npc .sv-brand-mark{
  position:relative;
  display:block;
  flex:0 0 61px;
  width:61px;
  height:61px;
  overflow:hidden;
  border:0;
  border-radius:15px;
  background:transparent;
  box-shadow:0 4px 8px rgba(70,39,22,.15);
}
#project-pane-npc .sv-brand-mark::after{content:none}
#project-pane-npc .sv-brand-mark img{
  position:absolute;
  left:-11.4px;
  top:-1.65px;
  display:block;
  width:83.95px;
  max-width:none;
  height:auto;
  image-rendering:auto;
}
#project-pane-npc .sv-brand h2{
  margin:0;
  color:#3b2a20;
  font-family:"ZCOOL KuaiLe","IBM Plex Mono","Noto Sans SC",sans-serif;
  font-size:26px;
  font-weight:700;
  letter-spacing:.028em;
  line-height:1;
  text-shadow:1px 1px 0 rgba(105,66,41,.16);
}
#project-pane-npc .sv-brand p{
  margin:6px 0 0;
  color:#4a3427;
  font-family:"LXGW WenKai","Noto Sans SC",sans-serif;
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.025em;
  line-height:1.15;
}
#project-pane-npc .sv-ai-note{
  position:relative;
  flex:0 0 224px;
  margin:0 3px 0 0;
  padding:12px 18px 10px;
  border:0;
  border-radius:2px 4px 1px 3px;
  color:#275d91;
  background:#efd68f;
  box-shadow:0 6px 11px rgba(70,39,22,.2);
  font-family:"Caveat",cursive;
  font-size:18px;
  line-height:1.02;
  transform:rotate(-2deg);
}
#project-pane-npc .sv-ai-note::before{
  top:-6px;
  left:39%;
  width:54px;
  height:13px;
  background:rgba(220,202,161,.68);
  box-shadow:0 1px 2px rgba(80,53,31,.08);
  transform:rotate(3deg);
}
#project-pane-npc .sv-ai-note b{color:#c75a50}

/* Quest Log v2: regenerated as a single pixel-game noticeboard. */
#project-pane-npc .sv-questlog{
  position:relative;
  display:block;
  padding:0;
  border:0;
  outline:0;
  overflow:hidden;
  background:url("assets/projects/npc/quest-ui-v2/quest-board-transparent-v3.png") center/100% 100% no-repeat;
  box-shadow:none;
  image-rendering:pixelated;
}
#project-pane-npc .sv-quest-sign{
  position:absolute;
  z-index:4;
  top:3.2%;
  left:6%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:40%;
  height:8.7%;
  margin:0;
  padding:0;
  border:0;
  color:#155b91;
  background:transparent;
  box-shadow:none;
  font-family:"ZCOOL KuaiLe","LXGW WenKai",sans-serif;
  font-size:19px;
  font-weight:900;
  letter-spacing:.025em;
  transform:rotate(-.5deg);
}
#project-pane-npc .sv-quest-sign svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:#367546;
  stroke-width:2.4;
  stroke-linecap:square;
  stroke-linejoin:miter;
}
#project-pane-npc .sv-quest-list{
  position:absolute;
  z-index:3;
  top:13.25%;
  right:5.3%;
  left:5.3%;
  display:grid;
  grid-template-rows:repeat(3,minmax(0,1fr));
  gap:2.3%;
  height:56.9%;
}
#project-pane-npc .sv-quest{
  position:relative;
  display:grid;
  grid-template-columns:40px minmax(0,1fr) auto 18px;
  gap:5px;
  align-items:center;
  min-height:0;
  padding:4px 8px;
  border:0;
  color:#3c2a1f;
  background:transparent;
  box-shadow:none;
  text-align:left;
  transition:filter 140ms ease,transform 180ms cubic-bezier(.22,1,.36,1);
}
#project-pane-npc .sv-quest::before{content:none}
#project-pane-npc .sv-quest:hover{
  filter:brightness(1.04);
  transform:translateX(2px);
}
#project-pane-npc .sv-seal,
#project-pane-npc .sv-quest-copy,
#project-pane-npc .sv-mini-icons,
#project-pane-npc .sv-enter{align-self:center}
#project-pane-npc .sv-quest:nth-child(2)>*,
#project-pane-npc .sv-quest:nth-child(3)>*{
  transform:translateY(4px);
}
#project-pane-npc .sv-seal{
  display:grid;
  place-items:center;
  width:39px;
  height:39px;
  border:3px solid #a46f2f;
  border-radius:50%;
  color:#155b91;
  background:#f2cb62;
  box-shadow:inset 0 0 0 2px #ffe9a5,0 2px 0 rgba(91,53,28,.18);
  font-family:"IBM Plex Mono",monospace;
  font-size:12px;
  font-weight:900;
}
#project-pane-npc .sv-quest-copy strong{
  display:block;
  color:#155b91;
  font-family:"IBM Plex Mono",monospace;
  font-size:14.5px;
  font-weight:900;
  line-height:1.05;
}
#project-pane-npc .sv-quest-copy small{
  display:block;
  margin-top:4px;
  color:#493429;
  font-family:"Noto Sans SC",sans-serif;
  font-size:11px;
  font-weight:800;
  line-height:1.22;
}
#project-pane-npc .sv-mini-icons{
  display:flex;
  align-items:flex-end;
  align-self:center;
  gap:5px;
}
#project-pane-npc .sv-mini-tool{
  display:grid;
  grid-template-rows:36px auto;
  place-items:center;
  min-width:37px;
  color:#493429;
}
#project-pane-npc .sv-mini-tool img{
  display:block;
  width:36px;
  height:36px;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 1px 0 rgba(73,45,29,.18));
}
#project-pane-npc .sv-mini-tool em{
  margin-top:1px;
  font-family:"Noto Sans SC",sans-serif;
  font-size:7.6px;
  font-style:normal;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}
#project-pane-npc .sv-enter{
  position:relative;
  width:18px;
  height:22px;
  border:0;
  background:transparent;
}
#project-pane-npc .sv-enter::before{
  left:1px;
  top:9px;
  width:11px;
  height:3px;
  background:#17669f;
}
#project-pane-npc .sv-enter::after{
  right:1px;
  top:6px;
  width:7px;
  height:7px;
  border-top:3px solid #17669f;
  border-right:3px solid #17669f;
  background:transparent;
  transform:rotate(45deg);
}
#project-pane-npc .sv-nexus{
  position:absolute;
  z-index:4;
  right:5.4%;
  bottom:3.6%;
  display:grid;
  place-content:center;
  justify-items:center;
  gap:3px;
  width:45%;
  height:21%;
  padding:10px 13px 11px;
  border:5px solid #4d2c1b;
  color:#342318;
  background:
    linear-gradient(90deg,transparent 0 23%,rgba(112,55,27,.13) 24% 25%,transparent 26% 71%,rgba(255,198,120,.1) 72% 73%,transparent 74%),
    repeating-linear-gradient(0deg,rgba(89,43,22,.15) 0 2px,rgba(238,169,93,.08) 2px 5px,rgba(107,55,28,.1) 5px 7px),
    linear-gradient(180deg,#d58c4e 0 12%,#c57a43 13% 48%,#b86b3b 49% 73%,#a95f36 74% 100%);
  box-shadow:
    inset 0 0 0 3px #e4a25f,
    inset 0 0 0 6px rgba(104,52,27,.22),
    inset 0 -6px 0 rgba(77,36,20,.18),
    0 5px 8px rgba(53,31,19,.32);
  font-family:"IBM Plex Mono",monospace;
  font-weight:900;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  clip-path:polygon(2% 0,98% 1%,100% 5%,99% 96%,97% 100%,2% 99%,0 95%,1% 5%);
  transform:rotate(-.45deg);
  transition:filter 150ms ease,transform 160ms cubic-bezier(.22,1,.36,1),box-shadow 150ms ease;
}
#project-pane-npc .sv-nexus::before{
  content:"";
  position:absolute;
  z-index:1;
  inset:6px;
  pointer-events:none;
  background:
    radial-gradient(circle,#f0bd72 0 2px,#6b3b21 3px 4px,transparent 5px) left top/11px 11px no-repeat,
    radial-gradient(circle,#f0bd72 0 2px,#6b3b21 3px 4px,transparent 5px) right top/11px 11px no-repeat,
    radial-gradient(circle,#f0bd72 0 2px,#6b3b21 3px 4px,transparent 5px) left bottom/11px 11px no-repeat,
    radial-gradient(circle,#f0bd72 0 2px,#6b3b21 3px 4px,transparent 5px) right bottom/11px 11px no-repeat;
}
#project-pane-npc .sv-nexus::after{
  content:"";
  position:absolute;
  z-index:0;
  inset:8px;
  border:2px solid rgba(86,43,24,.34);
  box-shadow:inset 0 1px 0 rgba(255,199,119,.3);
  pointer-events:none;
}
#project-pane-npc .sv-nexus-main{
  position:relative;
  z-index:2;
  font-size:11.5px;
  font-weight:900;
  letter-spacing:.035em;
  line-height:1.2;
}
#project-pane-npc .sv-nexus-main strong{
  color:#172f48;
  font-size:13.5px;
  font-weight:900;
  white-space:nowrap;
}
#project-pane-npc .sv-nexus small{
  position:relative;
  z-index:2;
  font-size:6.8px;
  font-weight:800;
  letter-spacing:.025em;
  line-height:1;
  opacity:.88;
}
#project-pane-npc .sv-nexus:hover{
  filter:brightness(1.08) saturate(1.03);
  transform:rotate(-.45deg) translateY(-3px);
  box-shadow:
    inset 0 0 0 3px #edb16f,
    inset 0 0 0 6px rgba(104,52,27,.18),
    inset 0 -6px 0 rgba(77,36,20,.13),
    0 8px 11px rgba(53,31,19,.3);
}
#project-pane-npc .sv-nexus:focus-visible{
  outline:3px solid #1a6398;
  outline-offset:2px;
}
#project-pane-npc .sv-quest-foot{display:none}

/* Research & Design modal — faithful pixel-game research panel. */
#project-pane-npc .sv-modal[data-sd-modal="research"]{
  padding:12px;
  background:rgba(34,25,19,.78);
}
#project-pane-npc .sv-research-window{
  width:min(94%,890px);
  height:min(91%,560px);
  max-height:91%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
  padding:10px 11px 12px;
  border:7px solid #29272b;
  outline:3px solid #171418;
  outline-offset:-2px;
  color:#2f241d;
  background:
    linear-gradient(rgba(126,79,38,.055) 1px,transparent 1px) 0 0/100% 18px,
    #f4dca7;
  box-shadow:
    0 8px 13px rgba(17,11,8,.44),
    inset 0 0 0 3px #8d4d2a,
    inset 0 0 0 6px #d99548;
  transform:scale(.97);
  transform-origin:center;
  transition:transform 210ms cubic-bezier(.22,1,.36,1);
}
#project-pane-npc .sv-modal.is-open .sv-research-window{transform:scale(1)}
#project-pane-npc .sv-research-window::before{
  inset:6px;
  border:2px solid rgba(255,239,188,.76);
  box-shadow:inset 0 0 0 1px rgba(108,60,31,.3);
}
#project-pane-npc .sv-research-window .sv-window-head{
  min-height:66px;
  align-items:center;
  gap:12px;
  padding:4px 5px 8px 10px;
  border-bottom:3px solid #9b592f;
}
#project-pane-npc .sv-research-window .sv-window-num{
  flex:0 0 50px;
  width:50px;
  height:45px;
  border:3px solid #1762a7;
  color:#fff;
  background:#1d73d2;
  box-shadow:inset 0 0 0 2px #5ca6ed,2px 3px 0 rgba(50,42,32,.18);
  font-size:18px;
  line-height:1;
}
#project-pane-npc .sv-research-window .sv-window-head h3{
  color:#0d4f8d;
  font-family:"IBM Plex Mono",monospace;
  font-size:17px;
  font-weight:900;
  letter-spacing:.035em;
  line-height:1;
}
#project-pane-npc .sv-research-window .sv-window-head p{
  margin-top:5px;
  color:#17334c;
  font-size:10.5px;
  font-weight:800;
  line-height:1.18;
}
#project-pane-npc .sv-research-window .sv-close{
  align-self:flex-start;
  flex:0 0 36px;
  width:36px;
  height:36px;
  margin:1px 0 0;
  border:4px solid #4b281b;
  background:#cf5636;
  box-shadow:inset 0 0 0 2px #eb8258,2px 3px 0 rgba(62,34,22,.22);
  transition:filter 120ms ease,transform 120ms ease;
}
#project-pane-npc .sv-research-window .sv-close:hover{
  filter:brightness(1.12);
  transform:scale(1.04);
}
#project-pane-npc .sv-research-window .sv-close span::before,
#project-pane-npc .sv-research-window .sv-close span::after{
  left:7px;
  top:13px;
  width:15px;
  height:3px;
  background:#3a2018;
}
#project-pane-npc .sv-research-board{
  display:grid;
  grid-template-columns:minmax(0,1.22fr) minmax(280px,.86fr);
  grid-template-rows:minmax(0,1fr) minmax(86px,27%);
  grid-template-areas:"scene notes" "tools sticky";
  gap:6px;
  margin-top:6px;
  min-height:0;
}
#project-pane-npc .sv-research-scene{
  grid-area:scene;
  min-height:0;
  border:4px solid #4b2c20;
  background:#271b16;
  box-shadow:inset 0 0 0 2px #a8683e,0 3px 5px rgba(77,43,25,.2);
}
#project-pane-npc .sv-research-scene img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(1.03) contrast(1.03);
}
#project-pane-npc .sv-research-scene figcaption{
  right:7%;
  top:8%;
  min-width:150px;
  padding:8px 11px;
  border:3px solid #5a3421;
  color:#2f251e;
  background:#fff0c8;
  box-shadow:inset 0 0 0 2px #e1bd79,2px 3px 5px rgba(49,29,18,.25);
  font-size:10.5px;
  font-weight:800;
  line-height:1.35;
}
#project-pane-npc .sv-research-scene figcaption::after{
  content:"";
  position:absolute;
  left:23%;
  bottom:-10px;
  width:16px;
  height:16px;
  border-right:3px solid #5a3421;
  border-bottom:3px solid #5a3421;
  background:#fff0c8;
  transform:rotate(45deg);
}
#project-pane-npc .sv-research-route{display:none}
#project-pane-npc .sv-research-notes{
  grid-area:notes;
  min-height:0;
  padding:10px 13px 9px;
  border:4px solid #4b2c20;
  background:
    linear-gradient(rgba(132,84,43,.13) 1px,transparent 1px) 0 48px/100% 28px,
    #f9e7b9;
  box-shadow:inset 0 0 0 2px rgba(255,251,218,.58),0 3px 5px rgba(77,43,25,.2);
}
#project-pane-npc .sv-research-notes h4{
  margin:0 0 5px;
  padding:0 0 6px;
  border-bottom:2px solid rgba(157,96,47,.46);
  color:#251b16;
  font-family:"IBM Plex Mono",monospace;
  font-size:12.5px;
  font-weight:900;
  text-align:center;
}
#project-pane-npc .sv-research-notes ul{
  display:grid;
  gap:0;
  margin:0;
  padding:0;
}
#project-pane-npc .sv-research-notes li{
  min-height:25px;
  display:flex;
  align-items:center;
  padding:0 0 0 31px;
  border-bottom:1px solid rgba(143,90,48,.17);
  color:#2f251e;
  font-family:"IBM Plex Mono",monospace;
  font-size:9.5px;
  font-weight:650;
  line-height:1.1;
}
#project-pane-npc .sv-research-notes li::before{
  left:4px;
  top:50%;
  width:17px;
  height:17px;
  border:2px solid #83745f;
  background:#fff0c6;
  box-shadow:inset 0 0 0 2px #ead29a;
  transform:translateY(-50%);
}
#project-pane-npc .sv-research-notes li::after{content:none}
#project-pane-npc .sv-research-tools{
  grid-area:tools;
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:6px;
}
#project-pane-npc .sv-research-tools article{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  gap:5px;
  min-width:0;
  padding:6px 8px;
  border:4px solid #4b2c20;
  background:#f7e5b7;
  box-shadow:inset 0 0 0 2px rgba(255,251,218,.55),0 3px 5px rgba(77,43,25,.2);
  transition:filter 140ms ease,transform 150ms ease,box-shadow 150ms ease;
}
#project-pane-npc .sv-research-tools article:hover{
  filter:brightness(1.05);
  transform:translateY(-2px);
  box-shadow:inset 0 0 0 4px rgba(255,251,218,.68),0 6px 0 rgba(77,43,25,.22);
}
#project-pane-npc .sv-research-tools article>img{
  display:block;
  width:34px;
  height:34px;
  object-fit:contain;
  image-rendering:pixelated;
}
#project-pane-npc .sv-research-tools p{margin:0;text-align:center}
#project-pane-npc .sv-research-tools strong{
  display:block;
  color:#134f88;
  font-family:"IBM Plex Mono",monospace;
  font-size:9.5px;
  font-weight:900;
  line-height:1.12;
}
#project-pane-npc .sv-research-tools span{
  display:block;
  margin-top:4px;
  color:#29333b;
  font-size:7.5px;
  font-weight:800;
  line-height:1.15;
}
#project-pane-npc .sv-sticky{
  grid-area:sticky;
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 3px 0 0;
  padding:10px 13px;
  border:2px solid #aa783e;
  color:#15528c;
  background:#f1d789;
  box-shadow:2px 4px 7px rgba(82,50,28,.2);
  font-size:14px;
  line-height:1.2;
  transform:rotate(-1.2deg);
  animation:sv-note-settle 380ms cubic-bezier(.22,1,.36,1) both;
}
#project-pane-npc .sv-sticky b{margin-left:6px;color:#ca5548}
@keyframes sv-note-settle{
  from{opacity:.7;transform:translateY(-5px) rotate(-3deg)}
  to{opacity:1;transform:translateY(0) rotate(-1.2deg)}
}
@media(prefers-reduced-motion:reduce){
  #project-pane-npc .sv-research-window,
  #project-pane-npc .sv-research-tools article,
  #project-pane-npc .sv-sticky{animation:none;transition:none}
}

/* Create & Build modal — compact pixel crafting workflow. */
#project-pane-npc .sv-modal[data-sd-modal="create"]{
  padding:12px;
  background:rgba(34,25,19,.78);
}
#project-pane-npc .sv-build-window{
  width:min(95%,960px);
  height:auto;
  max-height:88%;
  display:grid;
  grid-template-rows:auto auto;
  overflow:hidden;
  padding:10px 11px 12px;
  border:7px solid #29272b;
  outline:3px solid #171418;
  outline-offset:-2px;
  color:#30241b;
  background:
    linear-gradient(rgba(126,79,38,.055) 1px,transparent 1px) 0 0/100% 18px,
    #f4dca7;
  box-shadow:0 8px 13px rgba(17,11,8,.44),inset 0 0 0 3px #8d4d2a,inset 0 0 0 6px #d99548;
  transform:scale(.97);
  transform-origin:center;
  transition:transform 210ms cubic-bezier(.22,1,.36,1);
}
#project-pane-npc .sv-modal.is-open .sv-build-window{transform:scale(1)}
#project-pane-npc .sv-build-window::before{
  inset:6px;
  border:2px solid rgba(255,239,188,.76);
  box-shadow:inset 0 0 0 1px rgba(108,60,31,.3);
}
#project-pane-npc .sv-build-window .sv-window-head{
  min-height:66px;
  align-items:center;
  gap:12px;
  padding:4px 5px 8px 10px;
  border-bottom:3px solid #9b592f;
}
#project-pane-npc .sv-build-window .sv-window-num{
  flex:0 0 50px;
  width:50px;
  height:45px;
  border:3px solid #1762a7;
  color:#fff;
  background:#1d73d2;
  box-shadow:inset 0 0 0 2px #5ca6ed,2px 3px 0 rgba(50,42,32,.18);
  font-size:18px;
}
#project-pane-npc .sv-build-window .sv-window-head h3{
  color:#0d4f8d;
  font-family:"IBM Plex Mono",monospace;
  font-size:17px;
  font-weight:900;
  letter-spacing:.035em;
}
#project-pane-npc .sv-build-window .sv-window-head p{
  margin-top:5px;
  color:#17334c;
  font-size:10.5px;
  font-weight:800;
}
#project-pane-npc .sv-build-window .sv-close{
  align-self:flex-start;
  flex:0 0 36px;
  width:36px;
  height:36px;
  margin:1px 0 0;
  border:4px solid #4b281b;
  background:#cf5636;
  box-shadow:inset 0 0 0 2px #eb8258,2px 3px 0 rgba(62,34,22,.22);
}
#project-pane-npc .sv-build-window .sv-close span::before,
#project-pane-npc .sv-build-window .sv-close span::after{
  left:7px;
  top:13px;
  width:15px;
  height:3px;
}
#project-pane-npc .sv-build-bench{
  display:grid;
  grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr) 24px minmax(0,1.05fr) 24px minmax(0,.8fr);
  align-items:stretch;
  gap:4px;
  min-height:0;
  margin-top:7px;
}
#project-pane-npc .sv-craft-zone,
#project-pane-npc .sv-build-result{
  position:relative;
  min-width:0;
  padding:9px 10px 8px;
  border:4px solid #6a4128;
  color:#32251c;
  background:
    radial-gradient(circle at 8px 8px,#d2a064 0 2px,transparent 3px),
    radial-gradient(circle at calc(100% - 8px) 8px,#d2a064 0 2px,transparent 3px),
    linear-gradient(rgba(139,87,42,.06) 1px,transparent 1px) 0 0/100% 18px,
    #f7e4b7;
  box-shadow:inset 0 0 0 2px rgba(255,249,213,.58),0 3px 5px rgba(75,43,25,.22);
}
#project-pane-npc .sv-craft-zone h4{
  margin:0 0 7px;
  padding-bottom:6px;
  border-bottom:2px solid rgba(124,74,36,.27);
  font-family:"IBM Plex Mono",monospace;
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
}
#project-pane-npc .sv-build-art{
  position:relative;
  display:grid;
  place-items:center;
  height:120px;
  margin-bottom:7px;
  overflow:hidden;
  border:3px solid #8a613d;
  background:#e4c894;
  box-shadow:inset 0 0 0 2px rgba(255,244,198,.42);
}
#project-pane-npc .sv-dialogue-art{grid-template-columns:45% 55%;padding:10px;background:#e8d1a2}
#project-pane-npc .sv-dialogue-art>img{z-index:2;width:72px;height:72px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(2px 3px 0 rgba(71,44,30,.2))}
#project-pane-npc .sv-copy-sheet{
  position:relative;
  display:block;
  width:72px;
  height:88px;
  border:3px solid #7a5738;
  background:#fff0c7;
  box-shadow:-8px 6px 0 #e7cb92,-10px 8px 0 2px #84613e;
  transform:rotate(4deg);
}
#project-pane-npc .sv-copy-sheet i{display:block;width:70%;height:3px;margin:13px auto 0;background:#b78d5c;box-shadow:0 9px #b78d5c}
#project-pane-npc .sv-map-art{background:#4d6b52}
#project-pane-npc .sv-map-art>img{display:block;width:100%;height:100%;object-fit:cover;image-rendering:pixelated;filter:saturate(1.04)}
#project-pane-npc .sv-tiled-stamp{
  position:absolute;
  right:7px;
  top:7px;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:3px solid #4b356d;
  color:#fff;
  background:#7756ad;
  box-shadow:inset 0 0 0 2px #a18ac7;
  font-family:"IBM Plex Mono",monospace;
  font-size:15px;
}
#project-pane-npc .sv-code-art{background:#202a32}
#project-pane-npc .sv-code-art pre{
  width:100%;
  height:100%;
  margin:0;
  padding:13px 45px 10px 11px;
  color:#c9d9c6;
  background:linear-gradient(90deg,#273640 0 26px,#1e2930 27px);
  box-shadow:none;
  font-family:"IBM Plex Mono",monospace;
  font-size:6.8px;
  line-height:1.55;
}
#project-pane-npc .sv-code-art pre span{color:#e9b962}
#project-pane-npc .sv-code-art>img{position:absolute;right:5px;top:8px;width:54px;height:54px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.24))}
#project-pane-npc .sv-craft-zone ul{
  margin:0;
  padding:0;
  list-style:none;
  font-size:7.4px;
  font-weight:650;
  line-height:1.45;
}
#project-pane-npc .sv-craft-zone li{position:relative;padding-left:12px}
#project-pane-npc .sv-craft-zone li::before{content:"◆";position:absolute;left:1px;top:0;color:#9c774b;font-size:5px}
#project-pane-npc .sv-build-arrow{
  align-self:center;
  position:relative;
  width:100%;
  height:4px;
  background:#17669f;
  box-shadow:0 1px 0 rgba(255,255,255,.3);
}
#project-pane-npc .sv-build-arrow::after{
  content:"";
  position:absolute;
  right:-1px;
  top:-6px;
  border-left:10px solid #17669f;
  border-top:8px solid transparent;
  border-bottom:8px solid transparent;
}
#project-pane-npc .sv-build-result{
  display:grid;
  grid-template-rows:auto 1fr auto;
  justify-items:center;
  gap:5px;
  padding:8px 8px 10px;
  color:#34241a;
  text-align:center;
}
#project-pane-npc .sv-build-result>p{
  justify-self:end;
  margin:0 1px 0 0;
  color:#15528c;
  font-family:"Caveat",cursive;
  font-size:12px;
  line-height:1;
  text-align:left;
  transform:rotate(-2deg);
}
#project-pane-npc .sv-build-result>p b{color:#c95347}
#project-pane-npc .sv-result-object{position:relative;align-self:end;width:96px;height:138px}
#project-pane-npc .sv-pixel-chest{
  position:absolute;
  left:7px;
  bottom:2px;
  width:84px;
  height:68px;
  border:5px solid #4c2d20;
  background:repeating-linear-gradient(0deg,#955737 0 8px,#7d472f 9px 13px);
  box-shadow:inset 0 0 0 4px #b96f40,0 5px 7px rgba(64,37,22,.25);
}
#project-pane-npc .sv-pixel-chest::before{
  content:"";
  position:absolute;
  left:-5px;
  top:-23px;
  width:84px;
  height:25px;
  border:5px solid #4c2d20;
  background:linear-gradient(#aa6940,#875035);
  box-shadow:inset 0 0 0 4px #c5844e;
}
#project-pane-npc .sv-pixel-chest::after{
  content:"";
  position:absolute;
  left:33px;
  top:17px;
  width:14px;
  height:18px;
  border:3px solid #4c2d20;
  background:#dfad45;
}
#project-pane-npc .sv-potted-plant{
  position:absolute;
  z-index:2;
  left:33px;
  top:0;
  width:34px;
  height:64px;
}
#project-pane-npc .sv-potted-plant::before{
  content:"";
  position:absolute;
  left:10px;
  bottom:16px;
  width:14px;
  height:38px;
  background:#496c32;
  box-shadow:-14px -5px 0 2px #5e8b3d,13px -15px 0 3px #47762f,-7px -27px 0 4px #6c9841,9px -33px 0 3px #527e35;
}
#project-pane-npc .sv-potted-plant::after{
  content:"";
  position:absolute;
  left:5px;
  bottom:0;
  width:24px;
  height:21px;
  border:3px solid #5a3320;
  background:#b66e39;
  box-shadow:inset 0 0 0 3px #d79250;
}
#project-pane-npc .sv-build-result strong{
  color:#2d2119;
  font-family:"IBM Plex Mono",monospace;
  font-size:10px;
  font-weight:900;
  line-height:1.25;
}
#project-pane-npc .sv-build-summary{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:27px;
  margin:7px 0 0;
  padding:5px 10px;
  border:3px solid #6a4128;
  color:#2f251c;
  background:#eed69f;
  box-shadow:inset 0 0 0 2px rgba(255,247,207,.54);
  font-family:"IBM Plex Mono",monospace;
  font-size:8px;
  font-weight:900;
  letter-spacing:.035em;
}
#project-pane-npc .sv-build-summary i{width:23px;height:3px;background:#17669f}
#project-pane-npc .sv-build-summary i::after{border-left-color:#17669f}
@media(prefers-reduced-motion:reduce){
  #project-pane-npc .sv-build-window{transition:none}
}

#project-pane-npc .sv-crafting-scene{
  position:relative;
  margin:7px 0 0;
  overflow:hidden;
  border:5px solid #5a3421;
  background:#5c321d;
  box-shadow:inset 0 0 0 3px #b8753e,0 4px 7px rgba(52,30,18,.3);
  aspect-ratio:2.4/1;
}
#project-pane-npc .sv-crafting-scene>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  image-rendering:pixelated;
}
#project-pane-npc .sv-crafting-scene figcaption{position:absolute;inset:0}
#project-pane-npc .sv-inspect-hotspot{
  position:absolute;
  z-index:2;
  display:block;
  border:0;
  border-radius:0;
  color:transparent;
  background:transparent;
  cursor:help;
  -webkit-tap-highlight-color:transparent;
}
#project-pane-npc .sv-hotspot-dialogue{left:1.5%;top:6%;width:25%;height:68%}
#project-pane-npc .sv-hotspot-map{left:26%;top:5%;width:25%;height:65%}
#project-pane-npc .sv-hotspot-config{left:51%;top:9%;width:24%;height:60%}
#project-pane-npc .sv-hotspot-result{right:1.5%;top:8%;width:23.5%;height:67%}
#project-pane-npc .sv-inspect-hotspot:focus-visible{
  outline:3px dashed #ffe3a2;
  outline-offset:-7px;
  box-shadow:inset 0 0 0 4px rgba(57,35,22,.56);
}
#project-pane-npc .sv-inspect-hotspot.is-active::after{
  content:"";
  position:absolute;
  right:9px;
  bottom:9px;
  width:8px;
  height:8px;
  border:2px solid #ffe5a6;
  background:#17669f;
  box-shadow:2px 2px 0 rgba(54,31,20,.72);
}
#project-pane-npc .sv-crafting-caption{
  position:absolute;
  z-index:1;
  left:34%;
  bottom:12.5%;
  width:31%;
  margin:0;
  color:#493429;
  font-family:"IBM Plex Mono",monospace;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1.2;
  text-align:center;
  pointer-events:none;
}
#project-pane-npc .sv-inspect-panel{
  position:absolute;
  z-index:5;
  width:clamp(160px,22%,224px);
  margin:0;
  padding:12px 14px 11px;
  border:3px solid #563421;
  border-radius:0;
  color:#3c291c;
  background:
    linear-gradient(rgba(119,75,35,.07) 1px,transparent 1px) 0 0/100% 17px,
    radial-gradient(circle at 12px 10px,rgba(134,83,39,.15) 0 1px,transparent 2px),
    rgba(249,226,169,.94);
  box-shadow:inset 0 0 0 2px rgba(255,247,209,.68),4px 5px 9px rgba(45,26,16,.34);
  clip-path:polygon(2px 0,calc(100% - 4px) 0,calc(100% - 4px) 3px,100% 3px,100% calc(100% - 5px),calc(100% - 3px) calc(100% - 5px),calc(100% - 3px) 100%,4px 100%,4px calc(100% - 3px),0 calc(100% - 3px),0 4px,2px 4px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(7px) scale(.98);
  transform-origin:50% 100%;
  transition:opacity 130ms ease-out,transform 170ms cubic-bezier(.22,1,.36,1),visibility 130ms;
}
#project-pane-npc .sv-inspect-panel.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}
#project-pane-npc .sv-inspect-panel::after{
  content:"";
  position:absolute;
  bottom:-10px;
  left:27px;
  width:15px;
  height:15px;
  border-right:3px solid #563421;
  border-bottom:3px solid #563421;
  background:#f4dca2;
  transform:rotate(45deg);
}
#project-pane-npc .sv-inspect-panel h4{
  margin:0 0 5px;
  padding-bottom:5px;
  border-bottom:2px dashed rgba(105,64,31,.3);
  color:#12588f;
  font-family:"IBM Plex Mono",monospace;
  font-size:11px;
  font-weight:900;
  line-height:1.15;
}
#project-pane-npc .sv-inspect-panel p{
  margin:0 0 5px;
  font-size:9px;
  font-weight:750;
  line-height:1.35;
}
#project-pane-npc .sv-inspect-panel ul{
  display:grid;
  gap:2px;
  margin:0;
  padding:0;
  list-style:none;
  font-family:"IBM Plex Mono",monospace;
  font-size:8px;
  font-weight:800;
  line-height:1.35;
}
#project-pane-npc .sv-inspect-panel li::before{content:"◆";margin-right:6px;color:#a56832;font-size:6px}
#project-pane-npc .sv-inspect-panel b{color:#bd4b43}
#project-pane-npc .sv-inspect-panel>strong{display:block;color:#12588f;font-family:"IBM Plex Mono",monospace;font-size:8px;line-height:1.35}
#project-pane-npc .sv-panel-dialogue{left:18%;top:11%}
#project-pane-npc .sv-panel-map{left:36%;bottom:8%}
#project-pane-npc .sv-panel-config{left:56%;top:7%}
#project-pane-npc .sv-panel-result{right:7%;bottom:9%}
#project-pane-npc .sv-panel-map::after{left:48%}
#project-pane-npc .sv-panel-config::after{left:72%}
#project-pane-npc .sv-panel-result::after{left:auto;right:28px}
@media(max-width:720px){
  #project-pane-npc .sv-inspect-panel{width:min(190px,58%);padding:9px 10px 8px}
  #project-pane-npc .sv-inspect-panel h4{font-size:9px}
  #project-pane-npc .sv-inspect-panel p{font-size:7.5px}
  #project-pane-npc .sv-inspect-panel ul,#project-pane-npc .sv-inspect-panel>strong{font-size:7px}
  #project-pane-npc .sv-panel-dialogue{left:8%;top:8%}
  #project-pane-npc .sv-panel-map{left:24%;bottom:6%}
  #project-pane-npc .sv-panel-config{left:40%;top:6%}
  #project-pane-npc .sv-panel-result{right:4%;bottom:7%}
}
.sv-page>.sv-titlebar,
.sv-page>.sv-main-grid,
.sv-page>.sv-inventory,
.sv-page>.sv-modal{
  position:relative;
  z-index:1;
}
.sv-page>.sv-modal{position:absolute;z-index:50}
@media(prefers-reduced-motion:reduce){.sv-modal,.sv-window,.sv-quest,.sv-tool,.sv-watch,.sv-nexus,.sv-complete{transition:none!important}}

/* DEBUG & PLAY — one fixed game-scene background with independent slime sprites. */
#project-pane-npc .sv-debug-window{
  width:min(99%,1100px);
  max-height:96%;
  overflow:hidden;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  box-shadow:0 18px 32px rgba(13,9,8,.5);
}
#project-pane-npc .sv-debug-window::before{display:none}
#project-pane-npc .sv-debug-scene{
  position:relative;
  width:100%;
  aspect-ratio:2.393/1;
  margin:0;
  overflow:hidden;
  isolation:isolate;
  background:#171119;
}
#project-pane-npc .sv-debug-backdrop{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  image-rendering:pixelated;
}
#project-pane-npc .sv-debug-close{
  position:absolute;
  z-index:8;
  right:1.25%;
  top:2.3%;
  width:4.8%;
  height:11.2%;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
#project-pane-npc .sv-debug-close:focus-visible{
  outline:3px dashed #ffe2a0;
  outline-offset:-4px;
}
#project-pane-npc .sv-debug-slime{
  position:absolute;
  z-index:3;
  width:13.5%;
  aspect-ratio:1;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  transform-origin:50% 82%;
  transition:transform 140ms cubic-bezier(.22,1,.36,1),filter 140ms ease-out;
  -webkit-tap-highlight-color:transparent;
}
#project-pane-npc .sv-debug-slime img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 6px 3px rgba(16,10,12,.5));
}
#project-pane-npc .sv-debug-slime span{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}
#project-pane-npc .sv-debug-slime:hover{transform:translateY(-2px) scale(1.025)}
#project-pane-npc .sv-debug-slime.is-selected,
#project-pane-npc .sv-debug-slime:focus-visible{
  outline:0;
  filter:brightness(1.1) drop-shadow(0 0 5px rgba(255,225,139,.9));
  transform:translateY(-3px) scale(1.055);
}
#project-pane-npc .sv-debug-slime.is-selected::after,
#project-pane-npc .sv-debug-slime:focus-visible::after{
  content:"";
  position:absolute;
  left:22%;
  right:22%;
  bottom:12%;
  height:5%;
  border-radius:50%;
  background:rgba(255,222,133,.72);
  box-shadow:0 0 7px rgba(255,215,112,.68);
}
#project-pane-npc .sv-debug-slime-dialogue{left:7.5%;top:43%}
#project-pane-npc .sv-debug-slime-map{left:21.5%;top:62%}
#project-pane-npc .sv-debug-slime-schedule{left:36%;top:43%}
#project-pane-npc .sv-debug-slime-event{left:49.5%;top:62%}
#project-pane-npc .sv-debug-copy{
  position:absolute;
  z-index:5;
  left:63.5%;
  top:26%;
  width:20.7%;
  height:60%;
  padding:0 1%;
  color:#49382e;
  font-size:clamp(7.4px,1vw,10px);
  line-height:1.38;
  opacity:1;
  transition:opacity 70ms ease-out;
}
#project-pane-npc .sv-debug-copy.is-changing{opacity:0}
#project-pane-npc .sv-debug-copy h4{
  margin:0 0 4%;
  color:#4b3427;
  font-family:"IBM Plex Mono",monospace;
  font-size:1.28em;
  font-weight:700;
  line-height:1.16;
  letter-spacing:-.02em;
  white-space:nowrap;
}
#project-pane-npc .sv-debug-copy dl{
  display:grid;
  grid-template-rows:repeat(4,minmax(0,1fr));
  gap:2%;
  height:69%;
  margin:0;
}
#project-pane-npc .sv-debug-copy dl>div{min-height:0}
#project-pane-npc .sv-debug-copy dt{
  display:inline-block;
  margin:0 0 .25em;
  padding:1px 4px;
  color:#f7e9bf;
  background:#315e8a;
  box-shadow:inset 0 0 0 1px rgba(255,242,198,.28);
  font-family:"IBM Plex Mono",monospace;
  font-size:.85em;
  font-weight:800;
  line-height:1.15;
}
#project-pane-npc .sv-debug-copy dd{
  margin:0;
  font-size:1em;
  font-weight:550;
  line-height:1.38;
}
#project-pane-npc .sv-debug-copy code{
  color:#67402f;
  font-family:"IBM Plex Mono",monospace;
  font-size:.93em;
  font-weight:750;
}
#project-pane-npc .sv-debug-code-list{display:grid;margin-top:.2em;gap:0}
#project-pane-npc .sv-debug-code-list code{display:block;line-height:1.2}
#project-pane-npc .sv-debug-fixed{
  position:absolute;
  left:18%;
  bottom:2.8%;
  display:grid;
  place-items:center;
  width:65%;
  height:9.5%;
  color:#fff2c9;
  font-family:"IBM Plex Mono",monospace;
  font-size:.96em;
  font-weight:900;
  letter-spacing:.025em;
  text-shadow:0 1px #294126;
}
@media(max-width:720px){
  #project-pane-npc .sv-debug-copy{font-size:6.5px}
  #project-pane-npc .sv-debug-copy dt{padding:0 2px}
  #project-pane-npc .sv-debug-copy h4{margin-bottom:2%}
  #project-pane-npc .sv-debug-copy dl{gap:0;height:72%}
}
@media(prefers-reduced-motion:reduce){
  #project-pane-npc .sv-debug-slime,#project-pane-npc .sv-debug-copy{transition:none!important}
}

/* RESEARCH & DESIGN — complete raster game interface; DOM only supplies close behavior. */
#project-pane-npc .sv-research-window{
  width:min(95%,760px);
  max-height:96%;
  overflow:hidden;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  box-shadow:0 18px 32px rgba(13,9,8,.5);
}
#project-pane-npc .sv-research-window::before{display:none}
#project-pane-npc .sv-research-complete{
  position:relative;
  width:100%;
  aspect-ratio:1.392/1;
  margin:0;
  overflow:hidden;
  background:#17151b;
}
#project-pane-npc .sv-research-complete>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  image-rendering:pixelated;
}
#project-pane-npc .sv-research-close{
  position:absolute;
  z-index:2;
  right:1.9%;
  top:3.2%;
  width:5.7%;
  height:9.2%;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
#project-pane-npc .sv-research-close:focus-visible{
  outline:3px dashed #ffe2a0;
  outline-offset:-4px;
}

/* GAMEPLAY PREVIEW — one baked pixel-art interface with only live video and close behavior layered above it. */
#project-pane-npc .sv-game-window{
  width:min(96%,960px);
  max-height:96%;
  overflow:hidden;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  box-shadow:0 18px 34px rgba(13,9,8,.54);
}
#project-pane-npc .sv-game-window::before{display:none}
#project-pane-npc .sv-game-complete{
  position:relative;
  width:100%;
  aspect-ratio:1729/910;
  margin:0;
  overflow:hidden;
  background:#17151b;
}
#project-pane-npc .sv-game-backdrop{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  image-rendering:pixelated;
}
#project-pane-npc .sv-game-video{
  position:absolute;
  z-index:2;
  left:5.55%;
  top:31.1%;
  width:63.35%;
  height:55.2%;
  border:0;
  border-radius:0;
  background:#111217;
  object-fit:contain;
}
#project-pane-npc .sv-game-close{
  position:absolute;
  z-index:3;
  right:2.4%;
  top:4.5%;
  width:5.4%;
  height:9.5%;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
#project-pane-npc .sv-game-close:focus-visible{
  outline:3px dashed #ffe2a0;
  outline-offset:-4px;
}
@media(max-width:640px){
  #project-pane-npc .sv-game-window{width:98%}
  #project-pane-npc .sv-game-video{left:5.65%;top:31.2%;width:63.15%;height:55%}
}

/* Quest Log Nexus sign — generated as one complete pixel-art asset. */
#project-pane-npc .sv-nexus{
  display:block;
  right:3.8%;
  bottom:6.4%;
  width:47%;
  height:auto;
  aspect-ratio:1860/845;
  padding:0;
  border:0;
  color:inherit;
  background:transparent;
  box-shadow:none;
  clip-path:none;
  transform:rotate(-.35deg);
  transition:filter 150ms ease,transform 160ms cubic-bezier(.22,1,.36,1);
}
#project-pane-npc .sv-nexus::before,
#project-pane-npc .sv-nexus::after{display:none}
#project-pane-npc .sv-nexus>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 4px 3px rgba(53,31,19,.3));
}
#project-pane-npc .sv-nexus:hover{
  filter:brightness(1.07) saturate(1.02);
  transform:rotate(-.35deg) translateY(-3px);
  box-shadow:none;
}
#project-pane-npc .sv-nexus:focus-visible{
  outline:3px dashed #ffe1a0;
  outline-offset:2px;
}

/* Keep the third Quest Log row aligned one grid step lower. */
#project-pane-npc .sv-quest-list > .sv-quest:nth-child(3){
  top:6px;
}

/* NPC page title: compact, heavy bitmap-style RPG menu lettering. */
#project-pane-npc .sv-brand h2{
  font-family:"IBM Plex Mono",monospace;
  font-size:26px;
  font-weight:900;
  letter-spacing:.012em;
  -webkit-font-smoothing:none;
  text-rendering:geometricPrecision;
  text-shadow:1px 0 0 #3b2a20,0 1px 0 rgba(105,66,41,.32);
}
