/* Retro terminal is scoped to KIM. Existing Light/Dark page layouts stay intact. */
#hollvania-content [role=tabpanel][hidden]{display:none!important}
#hollvania-content [role=tablist]{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
#hollvania-content [role=tab]{font-size:16px;padding:10px 18px}
#hollvania-content [role=tab][aria-selected=true]{border-color:var(--accent,#548eae);background:var(--accent,#548eae);color:#07121b}
#hollvania-content .kim-tools nav{display:flex;flex-wrap:wrap;gap:8px}
#hollvania-content .kim-tools nav a{font-size:14px;padding:9px 12px;white-space:normal}
#hollvania-content .kim-npc h2{overflow-wrap:anywhere;font-size:20px;line-height:1.5}
.kim-terminal{--kt-bg:#090d17;--kt-panel:#101a2b;--kt-line:#7e97b6;--kt-text:#e3efff;--kt-muted:#a2b6d0;--kt-blue:#8bcaff;background:var(--kt-bg);color:var(--kt-text);border:3px double var(--kt-line);font-family:GalmuriKO,Galmuri11,monospace;font-size:16px;line-height:1.7;box-shadow:inset 0 0 40px #00112355;margin:16px 0}
.kim-terminal *{box-sizing:border-box}
.kim-terminal h2,.kim-terminal h3,.kim-terminal strong,.kim-terminal button{font-family:inherit}
.kim-terminal h2{font-size:22px;line-height:1.5;color:var(--kt-text);margin:0 0 16px;overflow-wrap:anywhere}
.kim-terminal h3{font-size:18px;margin:8px 0;color:var(--kt-text)}
.kim-terminal p{margin:8px 0 16px;line-height:1.8}
.kim-terminal small{font-size:13px;line-height:1.6;color:var(--kt-muted)}
.kim-terminal a{color:var(--kt-blue);text-decoration:underline}
.kim-terminal button{color:var(--kt-text);border:1px solid #6a809d;background:var(--kt-panel);border-radius:0;padding:10px 14px;font-size:16px;line-height:1.6;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:pointer;min-height:44px;box-shadow:none}
.kim-terminal button:hover,.kim-terminal button:focus-visible{background:#1f456b;border-color:#c4e5ff;color:#fff;outline:2px solid #80ccff;outline-offset:2px}
.kim-terminal button:disabled{opacity:.45;cursor:default}
.kim-terminal [hidden]{display:none!important}
.kim-terminal-bar{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px;border-bottom:3px double var(--kt-line);padding:12px 18px;letter-spacing:1px}
.kim-terminal-bar span{font-size:13px;color:var(--kt-muted)}
.kim-terminal .kim-sound-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:4px 10px;min-height:34px;font-size:13px;margin-left:auto;white-space:nowrap}.kim-sound-toggle svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:square}.kim-terminal .kim-sound-toggle[aria-pressed=true]{color:#a7b6c9;background:#101724}
.kim-cable-scene{max-width:620px;margin:10px auto 16px}.kim-cable-scene svg{display:block;width:100%;height:auto}.kim-cable-pc{fill:#c9c0a6;stroke:#938c79;stroke-width:4}.kim-cable-port{fill:#182322;stroke:#716d61;stroke-width:5}.kim-cable-vents{fill:none;stroke:#7b7869;stroke-width:4}.kim-cable-scene text{fill:#474c3f;font-size:12px;font-family:monospace}.kim-cable-plug{transform:translateX(280px);animation:kimCableInsert 1s ease-in-out both}.kim-cable-plug rect{fill:#d6cdb2;stroke:#7e7e70;stroke-width:3}.kim-cable-wire{fill:none;stroke:#a49d89;stroke-width:13;stroke-linecap:round}.kim-cable-contacts{fill:#b9ad8d;stroke:#e6dec7;stroke-width:3}.kim-cable-stripes{fill:none;stroke:#8a8675;stroke-width:2}.kim-cable-led{fill:#8fee9d;animation:kimCableReady .2s 1s both}@keyframes kimCableInsert{0%,15%{transform:translateX(60px)}85%{transform:translateX(278px)}100%{transform:translateX(280px)}}@keyframes kimCableReady{from{fill:#3a4b37}to{fill:#8fee9d}}
.kim-terminal-nav{display:flex;flex-wrap:wrap;gap:8px;padding:12px 18px;border-bottom:1px solid #526882}
.kim-terminal-nav button{padding:5px 12px;font-size:14px}
.kim-terminal-body{padding:24px;min-height:260px}
.kim-terminal-footer{padding:16px 24px;border-top:3px double var(--kt-line);font-size:13px;color:var(--kt-muted);line-height:1.8}
.kim-terminal-help,.kim-choice-note{font-size:14px!important;color:var(--kt-muted)}
.kim-boot{padding:26px 0;min-height:240px}
.kim-boot-line{color:#91dfff}.kim-boot-line span{animation:kimBlink .5s steps(2) infinite}@keyframes kimBlink{50%{opacity:0}}
.kim-contacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}
.kim-contacts button{display:flex;gap:14px;align-items:center;padding:18px}
.kim-contacts img{object-fit:contain;flex-shrink:0;background:#1d2a3e;width:64px;height:64px;image-rendering:auto}
.kim-contacts span{min-width:0}.kim-contacts strong{display:block;font-size:17px}.kim-contacts small{display:block;margin-top:8px}.kim-contacts b{color:#83e8b3;margin-left:auto}
.kim-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0}
.kim-stages strong,.kim-stages small{display:block}.kim-stages small{margin-top:6px}
.kim-convo-search{display:block;margin:20px 0;color:var(--kt-muted);font-size:14px}
.kim-convo-search input{display:block;width:100%;min-width:0;border:1px solid #7e97b6;border-radius:0;background:#101a2b;color:#e3efff;font:inherit;font-size:16px;padding:12px;margin-top:8px}
.kim-conversation-list{display:grid;gap:12px}.kim-conversation-list strong,.kim-conversation-list small{display:block}.kim-conversation-list small{margin-top:8px;color:var(--kt-blue)}
.kim-chat-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.kim-chat-heading h2{margin-bottom:0}
.kim-npc-title{display:flex;align-items:center;gap:14px;margin:0 0 14px;min-width:0}.kim-npc-title img{width:52px;height:52px;object-fit:contain;flex-shrink:0;border:1px solid #7186a2;background:#142133;image-rendering:pixelated}.kim-npc-title h2{margin:0}.kim-npc-title div{min-width:0}.kim-npc-title small{display:block;margin-top:4px;color:#b4dcff}
.kim-search-count{font-size:14px;color:#9cddff}.kim-conversation-list button>strong+strong{padding-top:8px;border-top:1px dashed #43566c;margin-top:8px}
.kim-source-links button{font-size:13px;padding:4px 10px;min-height:32px;margin-left:auto}
.kim-input-wait{color:#a4d6ff;padding:12px}.kim-input-wait span,.kim-bubble p.is-typing::after{animation:kimBlink .75s steps(2) infinite}.kim-bubble p.is-typing::after{content:'▌';color:#a4d6ff;margin-left:2px}
.kim-boot-progress p{animation:kimBootLine .2s steps(2) both}.kim-boot-progress p:nth-child(1){animation-delay:1.2s}.kim-boot-progress p:nth-child(2){animation-delay:2.2s}.kim-boot-progress p:nth-child(3){animation-delay:3.4s}@keyframes kimBootLine{from{opacity:0}to{opacity:1}}
.kim-session-score{border:1px solid #7186a2;padding:8px 12px;white-space:normal;font-size:14px}.kim-session-score b{font-size:20px;color:#8bf4cc;margin-left:8px}
.kim-source-links{display:flex;flex-wrap:wrap;gap:18px;margin:16px 0;font-size:14px}
.kim-chat-log{min-height:150px;max-height:42vh;overflow-y:auto;overscroll-behavior:contain;padding:18px;border:1px solid #526882;scrollbar-color:#728db0 #101a2b;background:#070b12}
.kim-bubble{border-left:2px solid #a9d5ff;padding:10px 16px;margin:0 9% 18px 0;background:#121e31;overflow-wrap:anywhere}
.kim-bubble-player{border-color:#a6e4b8;margin:0 0 18px 9%;background:#142521}
.kim-bubble strong{color:#a2d9ff;font-size:14px}.kim-bubble-player strong{color:#b4efc6}.kim-bubble p{margin:6px 0 0}
.kim-chat-event{color:var(--kt-muted);font-size:14px;border-bottom:1px dashed #43566c;padding:6px 0;overflow-wrap:anywhere}.kim-chat-event small{font-size:11px;margin-left:8px}
.kim-state{font-size:13px;color:var(--kt-muted);margin:6px 0;overflow-wrap:anywhere}.kim-state summary{cursor:pointer}
.kim-replies{margin-top:22px}.kim-choices{display:grid;gap:12px}.kim-choices button{display:flex;flex-direction:column;gap:8px;width:100%;padding:14px 16px}
.kim-effects{display:flex;gap:8px;flex-wrap:wrap}.kim-effect{display:inline-block;border:1px solid #7186a2;padding:2px 8px;font-size:13px;line-height:1.6}
.kim-terminal .kim-effect-chem{color:#8bf4cc}.kim-terminal .kim-effect-romance{color:#ffadd5}.kim-terminal .kim-effect-block{color:#ffbd8e}
.kim-condition{border:1px dashed #e1bd83;padding:18px}.kim-condition details{font-size:13px;color:#c5d3e8}.kim-condition code,.kim-condition pre{white-space:pre-wrap;overflow-wrap:anywhere;color:#c5d3e8}
.kim-chat-ended{padding:20px;border:1px solid #a3c5df;color:#c4e5ff}.kim-retro-emoji{display:inline-block;width:24px;height:24px;object-fit:contain;vertical-align:middle;image-rendering:pixelated}
@media(max-width:800px){.kim-stages{grid-template-columns:repeat(2,minmax(0,1fr))}.kim-contacts{grid-template-columns:1fr}.kim-terminal-body{padding:16px}.kim-terminal-footer{padding:14px 16px}.kim-terminal-bar,.kim-terminal-nav{padding:12px}.kim-contacts button{padding:12px}.kim-terminal h2{font-size:19px}}
@media(max-width:450px){.kim-terminal{font-size:15px}.kim-terminal-body{padding:12px}.kim-stages{gap:8px}.kim-stages button{font-size:14px;padding:10px}.kim-terminal-nav{gap:6px}.kim-terminal-nav button{font-size:13px;padding:5px 8px}.kim-chat-log{padding:10px}.kim-bubble{padding:10px;margin-right:3%}.kim-bubble-player{margin-left:3%;margin-right:0}.kim-contacts img{width:48px;height:48px}.kim-contacts strong{font-size:15px}#hollvania-content .kim-tools nav a{font-size:13px;padding:8px;max-width:100%}}
@media(prefers-reduced-motion:reduce){.kim-boot-line span,.kim-input-wait span,.kim-bubble p.is-typing::after,.kim-boot-progress p,.kim-cable-plug,.kim-cable-led{animation:none}}

.kim-photo-program-intro{position:fixed;inset:0;z-index:22000;background:#03090b;color:#d7e8df;isolation:isolate;overflow:hidden;font:15px/1.7 GalmuriKO,monospace;transition:background .9s}.kim-photo-program-intro *{box-sizing:border-box}.kim-photo-stage{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;transition:opacity .9s}.kim-photo-canvas{position:relative;width:min(100vw,calc(100vh * 1.860465));aspect-ratio:640/344;transform-origin:49% 46.6%;transition:transform 1.6s cubic-bezier(.38,0,.15,1);will-change:transform}.kim-photo-canvas>img{display:block;width:100%;height:100%}.kim-photo-glass{position:absolute;left:33.5%;top:25.6%;width:30.9%;height:41.9%;border-radius:8%/11%;overflow:hidden;background:#020909;opacity:0;transition:opacity .15s;box-shadow:0 0 18px #8ad5b43d}.kim-photo-glass.powered{opacity:1}.kim-photo-glass:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(transparent 0,transparent 2px,#0004 3px);opacity:.25}.kim-photo-light{position:absolute;inset:0;background:radial-gradient(ellipse,#c5f6e1,#517c69 25%,#0f302a 60%,#061411);opacity:0;transform:scaleY(.007) scaleX(.7)}.powered .kim-photo-light{animation:kimPhotoPower .75s ease-out forwards}.kim-photo-glass pre{position:absolute;inset:0;padding:10% 8%;margin:0;white-space:pre-wrap;font:clamp(5px,.9vw,12px)/1.55 GalmuriKO,monospace;color:#a9d4b7;text-shadow:0 0 4px #96d9b355;opacity:0}.powered pre{animation:kimPhotoCopy .35s .7s both}@keyframes kimPhotoPower{0%{opacity:.9;transform:scaleY(.007) scaleX(.45)}40%{opacity:1;transform:scaleY(.014) scaleX(.95)}80%{opacity:.8;transform:scaleY(.98) scaleX(1)}100%{opacity:.24;transform:scale(1)}}@keyframes kimPhotoCopy{from{opacity:0}to{opacity:1}}
.kim-photo-controls{position:absolute;left:0;right:0;bottom:0;z-index:4;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:30px 4vw 22px;background:linear-gradient(transparent,#030a09df)}.kim-photo-controls p{color:#c1dfcc;font:13px/1.6 GalmuriKO,monospace;margin:0}.kim-photo-controls>div{display:flex;gap:8px}.kim-photo-controls button{border:1px solid #769383;background:#06140fe8;color:#e1eee6;font:13px/1.5 GalmuriKO,monospace;padding:9px 15px;min-height:40px;cursor:pointer}.kim-photo-controls button:focus-visible{outline:2px solid #b2e6c9;outline-offset:3px}
.kim-launch-window{position:fixed;left:calc(50vw - 280px);top:calc(50vh - 155px);width:560px;height:310px;z-index:3;border:2px solid #9aa99d;background:#0b1716;box-shadow:inset 0 0 0 1px #162924,8px 10px 0 #0005,0 24px 70px #0009;opacity:0;transform:scale(.82);visibility:hidden;transition:opacity .25s,transform .35s,left .95s cubic-bezier(.22,.7,.18,1),top .95s cubic-bezier(.22,.7,.18,1),width .95s cubic-bezier(.22,.7,.18,1),height .95s cubic-bezier(.22,.7,.18,1);overflow:hidden}.kim-launch-window.visible{visibility:visible;opacity:1;transform:scale(1)}.kim-launch-window.expanding{box-shadow:inset 0 0 0 1px #162924;transform:none}.kim-launch-window.dissolve{opacity:0;transition:opacity .25s}
.kim-app-titlebar{display:flex;align-items:center;gap:9px;height:42px;padding:5px 9px;border-bottom:1px solid #a4b8a9;background:linear-gradient(90deg,#3e6756,#1d3c34);color:#edf4ed;font:14px/1.3 GalmuriKO,monospace;flex-shrink:0;box-sizing:border-box}.kim-app-titlebar strong{font:inherit;font-weight:bold;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kim-app-titlebar small{font-size:12px;color:#bfdbce}.kim-app-icon{display:inline-grid;place-content:center;width:25px;height:25px;flex-shrink:0;background:#a3c2af;color:#132e23;border:2px outset #b4cfbd;font:700 16px/1 monospace}.kim-app-titlebar nav{display:flex;gap:6px;margin-left:auto}.kim-app-titlebar nav button{font:12px/1.3 GalmuriKO,monospace;color:#e8f2eb;border:1px solid #95aa9d;background:#18372a;padding:4px 8px;min-height:27px;cursor:pointer;white-space:nowrap}.kim-app-titlebar nav button:last-child{font-size:19px;line-height:1;min-width:28px;padding:1px 6px}.kim-app-titlebar nav button:focus-visible{outline:2px solid #d4f0d9;outline-offset:2px}.kim-launch-caption{margin-left:auto;font-size:11px;color:#c6dbce}.kim-launch-content{position:absolute;inset:42px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;gap:10px;color:#d7e8df;text-align:center}.kim-launch-logo{font:700 38px/1.2 GalmuriKO,monospace;color:#c0dfca;letter-spacing:5px}.kim-launch-content strong{font:16px/1.5 GalmuriKO,monospace}.kim-launch-content p{font:12px/1.5 GalmuriKO,monospace;color:#9eb4a8;margin:0}.kim-launch-progress{display:flex;gap:3px;padding:4px;width:220px;height:21px;border:2px inset #7b8c80;background:#08130f}.kim-launch-progress i{flex:1;background:#9ec9af;opacity:.1;animation:kimProgramLoad .65s steps(2) infinite}.kim-launch-progress i:nth-child(3n){animation-delay:.16s}.kim-launch-progress i:nth-child(3n+1){animation-delay:.32s}@keyframes kimProgramLoad{50%{opacity:1}}
.kim-photo-program-intro.reveal-site{background:transparent}.kim-photo-program-intro.reveal-site .kim-photo-stage{opacity:0}.kim-photo-program-intro.reveal-site .kim-photo-controls p{visibility:hidden}.kim-photo-program-intro.reveal-site .kim-photo-controls{background:none}.kim-program-ready{border:2px solid #92a69a!important;border-top:0!important;box-shadow:5px 7px 0 #0002!important}.kim-program-ready>.kim-app-titlebar{margin:-1px -1px 0}.kim-program-ready>.kim-terminal-bar{border-bottom-width:1px}.kim-program-ready .kim-app-titlebar button{border-radius:0;box-shadow:none}.kim-program-ready .kim-app-titlebar small{font-size:12px}.kim-program-ready .kim-app-titlebar strong{margin:0}#kim-dialogue-panel{scroll-margin-top:80px}
@media(max-width:650px){.kim-launch-window{left:5vw;top:calc(50vh - 145px);width:90vw;height:290px}.kim-photo-controls{padding:25px 16px 18px;display:block}.kim-photo-controls>div{margin-top:10px;justify-content:flex-end}.kim-photo-controls button{font-size:12px;padding:8px 11px}.kim-photo-controls p{font-size:12px}.kim-app-titlebar{font-size:13px;gap:7px}.kim-app-titlebar strong small{display:none}.kim-app-titlebar nav button{font-size:11px;padding:4px 6px}.kim-launch-content strong{font-size:14px}.kim-photo-glass pre{font-size:5px}}
@font-face{font-family:DOSMyungjo;src:url('../arsenal-assets/DOSMyungjo.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
.kim-photo-program-intro .kim-photo-glass pre{font-family:DOSMyungjo,monospace!important;font-weight:400;font-synthesis:none}
@media(prefers-reduced-motion:reduce){.kim-photo-canvas,.kim-photo-stage,.kim-photo-program-intro,.kim-launch-window{transition:none!important}.kim-photo-light,.kim-photo-glass pre,.kim-launch-progress i{animation:none!important}}
