.aoi-hc{display:block;box-sizing:border-box;max-width:760px;width:100%;margin:24px auto;padding:18px;border:1px solid #735682;border-radius:18px;background:#21172e;color:#f4eaf8;font:14px/1.5 system-ui,sans-serif;text-align:start;isolation:isolate}
.aoi-hc *{box-sizing:border-box}.aoi-hc [hidden]{display:none!important}.aoi-hc.hc-simple{width:240px;max-width:100%;padding:12px;border-radius:20px}.aoi-hc .hc-viewport{position:relative;overflow:hidden;isolation:isolate;border-radius:12px;background:radial-gradient(ellipse at center,#34213e,#191321);min-height:300px}.aoi-hc.hc-simple .hc-viewport{min-height:150px}.aoi-hc .hc-stage{display:flex;position:relative;align-items:center;justify-content:center;min-height:inherit;padding:14px}.aoi-hc glitched-hacker-cat{position:relative;z-index:1;flex-shrink:0}.aoi-hc .hc-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px}.aoi-hc button,.aoi-hc summary{font:inherit;cursor:pointer}.aoi-hc button{border:1px solid #836c92;border-radius:8px;background:#342340;color:#efffea;min-height:36px;padding:6px 12px;margin:3px}.aoi-hc button:hover{background:#493252}.aoi-hc button:focus-visible,.aoi-hc summary:focus-visible,.aoi-hc input:focus-visible,.aoi-hc select:focus-visible,.aoi-hc a:focus-visible{outline:3px solid #d9f2a7;outline-offset:3px}.aoi-hc .hc-status{font-size:12px;text-align:center;color:#dfebba;margin:8px 0}.aoi-hc .hc-status:empty{display:none}.aoi-hc .hc-credit{font-size:10px;text-align:center;color:#cab8d3;margin:10px 0 0}.aoi-hc a{color:#d9f2a7}.aoi-hc details{border:1px solid #665173;border-radius:10px;margin-top:12px;padding:10px;background:#281b34}.aoi-hc summary{font-weight:650;padding:3px}.aoi-hc .hc-help{font-size:13px;color:#d6c6e0}.aoi-hc .hc-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-top:14px}.aoi-hc label{display:flex;flex-direction:column;gap:5px;min-width:0}.aoi-hc label.hc-check{flex-direction:row;align-items:center}.aoi-hc label>span{font-size:13px}.aoi-hc select,.aoi-hc input:not([type=checkbox]){width:100%;min-width:0;font:16px system-ui}.aoi-hc select{background:#f4edf8;color:#281b34;border:1px solid #a98db9;padding:8px;border-radius:5px}.aoi-hc input{accent-color:#bce799}.aoi-hc input[type=color]{height:36px}.aoi-hc input[type=checkbox]{width:18px;height:18px}.aoi-hc fieldset{min-width:0;border:1px solid #836c92;border-radius:8px}.aoi-hc output{font-size:12px;color:#d9f2a7}.aoi-hc .hc-fallback{display:block;width:140px;margin:auto;color:#00e5a0}.aoi-hc .hc-fallback svg{display:block;width:100%;height:auto}@media(max-width:500px){.aoi-hc{padding:12px}.aoi-hc .hc-fields{grid-template-columns:1fr}.aoi-hc .hc-viewport{min-height:260px}.aoi-hc glitched-hacker-cat{max-width:100%}.aoi-hc button{min-height:42px}}

.aoi-hc.hc-simple:has(>.hc-menu[open]){width:100%;max-width:760px;min-width:0}.aoi-hc.hc-simple:has(>.hc-menu[open]) .hc-viewport{min-height:260px}.aoi-hc.hc-simple>.hc-menu:not([open]){border:0;background:transparent;margin-top:4px;padding:0;text-align:center}.aoi-hc.hc-simple>.hc-menu:not([open])>summary{font-size:12px;color:#d9f2a7}.aoi-hc.hc-simple .hc-fields{grid-template-columns:1fr}@media(min-width:600px){.aoi-hc.hc-simple:has(>.hc-menu[open]) .hc-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Companion UI: small controls remain outside the animated habitat. */
.aoi-hc{position:relative;min-width:0;contain:inline-size;padding-top:44px;--hc-mint:#b6ffe0;--hc-rain:#85c9f8}
.aoi-hc.hc-simple{padding:38px 8px 8px;width:240px;background:linear-gradient(145deg,#251c32,#17121f);box-shadow:0 10px 32px #0002}
.aoi-hc>.hc-actions{position:absolute;top:4px;left:6px;right:40px;justify-content:flex-end;margin:0;gap:0;z-index:5}
.aoi-hc .hc-icon{display:inline-grid;place-items:center;width:30px;height:30px;min-height:30px;padding:0;margin:0 2px;border:0;background:transparent;color:#b8a7c6;border-radius:50%;font:18px/1 system-ui;list-style:none}
.aoi-hc .hc-icon:hover{background:#ffffff15;color:#e5ffef}
.aoi-hc .hc-menu>summary.hc-icon{position:absolute;top:4px;right:6px;font-size:19px;color:#b8a7c6;z-index:5}
.aoi-hc .hc-menu>summary::-webkit-details-marker{display:none}
.aoi-hc>.hc-menu:not([open]){padding:0;margin:0;border:0;background:none}
.aoi-hc>.hc-menu[open]{margin:12px 0 0;max-height:55vh;overflow:auto}
.aoi-hc .hc-viewport{outline-offset:3px;cursor:pointer}
.aoi-hc .hc-stage{overflow:hidden;min-height:inherit}
.aoi-hc .hc-actor{position:relative;z-index:3;display:grid;place-items:center;flex-shrink:0;max-width:100%;color:var(--hc-mint);transform-origin:50% 15%}
.aoi-hc .hc-actor glitched-hacker-cat{display:block;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;transform-origin:50% 55%}
.aoi-hc .hc-viewport:focus-visible{outline:2px solid #d9f2a7}
.aoi-hc .hc-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.aoi-hc .hc-thought{position:absolute;left:8px;right:8px;bottom:5px;z-index:4;text-align:center;font:10px/1.3 ui-monospace,monospace;color:#d7f7e9;text-shadow:0 1px 4px #000;pointer-events:none}
.aoi-hc .hc-thought:empty{display:none}
.aoi-hc .hc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0;font-size:11px}
.aoi-hc .hc-stats meter{width:100%;accent-color:#a1e9c1}
.aoi-hc .hc-toys{display:flex;flex-wrap:wrap;gap:4px}.aoi-hc .hc-toys button{font-size:12px;padding:6px 8px}
.aoi-hc.hc-floating{position:fixed;z-index:1000000;margin:0;width:260px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;box-shadow:0 16px 80px #0007}
.aoi-hc.hc-floating:has(>.hc-menu[open]){width:min(560px,calc(100vw - 16px))}
.aoi-hc.hc-fullscreen,.aoi-hc:fullscreen{position:fixed!important;inset:0!important;z-index:2147483001;width:100vw!important;max-width:none!important;height:100dvh;max-height:none;margin:0!important;border:0;border-radius:0;padding:48px 20px 20px;background:radial-gradient(ellipse at center,#35213e,#100e17);display:flex;flex-direction:column}
.aoi-hc.hc-fullscreen>.hc-viewport{flex:1;min-height:200px}.aoi-hc.hc-fullscreen .hc-stage{height:100%;min-height:200px}.aoi-hc.hc-fullscreen .hc-actor glitched-hacker-cat{width:min(52vmin,500px);max-width:100%}
.aoi-hc.hc-fullscreen .hc-thought{font-size:clamp(12px,1.6vw,18px);bottom:16px}.aoi-hc.hc-fullscreen>.hc-menu[open]{flex:0 1 auto;max-height:40vh;width:min(760px,100%);align-self:center}.aoi-hc.hc-fullscreen .hc-menu>summary.hc-icon{top:8px;right:14px}.aoi-hc.hc-fullscreen>.hc-actions{top:8px;right:50px}
.aoi-hc.hc-held .hc-actor{transform:rotate(var(--held-angle,6deg)) scale(.92,1.08);transition:transform .15s;cursor:grabbing}.aoi-hc.hc-held glitched-hacker-cat{cursor:grabbing}
.aoi-hc .hc-grip{display:none;position:absolute;top:1%;left:50%;width:36px;transform:translateX(-50%);font:bold 30px/1 monospace;text-align:center;color:#ffd6a8;filter:drop-shadow(0 0 6px #ffd6a8)}
.aoi-hc .hc-grip i{display:block;width:4px;height:20px;margin:-12px auto 0;border-radius:4px;background:currentColor}.aoi-hc.hc-held .hc-grip{display:block}
.aoi-hc .hc-paws{display:none;position:absolute;bottom:4%;left:30%;width:40%;justify-content:space-between;pointer-events:none}.aoi-hc .hc-paws i{width:18%;height:22px;border:2px solid currentColor;border-top:0;border-radius:0 0 12px 12px;transform-origin:top center}
.aoi-hc.hc-held .hc-paws{display:flex;bottom:-5%}.aoi-hc.hc-held .hc-paws i{height:35px;transform:rotate(8deg)}.aoi-hc.hc-held .hc-paws i+ i{transform:rotate(-8deg)}
.aoi-hc[data-activity=knead] .hc-paws,.aoi-hc[data-activity=groom] .hc-paws{display:flex}.aoi-hc[data-activity=groom] .hc-paws{bottom:38%;left:20%;transform:rotate(-28deg)}
.aoi-hc[data-activity=knead] .hc-paws i{animation:hc-knead .65s ease-in-out infinite alternate}.aoi-hc[data-activity=knead] .hc-paws i+i{animation-delay:-.65s}
.aoi-hc .hc-life-prop{position:absolute;right:14%;top:22%;font:22px monospace;color:#ffdc83;text-shadow:0 0 12px currentColor;z-index:3;pointer-events:none;animation:hc-prop 2s ease-in-out infinite alternate}
.aoi-hc[data-activity=yarn] .hc-life-prop{top:auto;bottom:18%;color:#ff95d6;animation:hc-yarn 2s ease-in-out infinite alternate}
.aoi-hc[data-activity=fish] .hc-life-prop{top:auto;bottom:24%;color:#90d7ff;animation:hc-fish 2s ease-in-out infinite alternate}
.aoi-hc[data-activity=nap] .hc-life-prop{color:#c7baff;animation:hc-dream 2.5s ease-in-out infinite}.aoi-hc[data-activity=firefly] .hc-life-prop{font-size:16px;animation:hc-firefly 3s ease-in-out infinite alternate}
.aoi-hc .hc-weather{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;opacity:var(--weather-strength,.35);transition:background 2s}
.aoi-hc .hc-weather i{position:absolute;display:block}.aoi-hc .hc-sun{display:none;width:68px;height:68px;right:12%;top:12%;border-radius:50%;background:#ffe8a4;box-shadow:0 0 40px 22px #ffd76d5e,0 0 100px 45px #ffe8a426;animation:hc-sun 12s ease-in-out infinite alternate}
.aoi-hc .hc-cloud{display:none;width:55%;height:30%;left:0;top:-8%;border-radius:50%;background:#818da7;filter:blur(12px);box-shadow:70px 8px 18px #53617a;animation:hc-cloud 8s ease-in-out infinite alternate}
.aoi-hc .hc-drops{display:none;position:absolute;inset:0}.aoi-hc .hc-drops i{left:var(--x);top:-20%;width:1px;height:18%;background:linear-gradient(transparent,#a9dbff);animation:hc-rain var(--duration) linear var(--delay) infinite}
.aoi-hc [data-weather=sun] .hc-sun{display:block}.aoi-hc [data-weather=sun]{background:linear-gradient(135deg,transparent,#ffe3a520)}
.aoi-hc [data-weather=rain] .hc-drops,.aoi-hc [data-weather=storm] .hc-drops,.aoi-hc [data-weather=storm] .hc-cloud{display:block}
.aoi-hc [data-weather=storm]{background:#18365733}.aoi-hc [data-weather=storm] .hc-drops{transform:skewX(-20deg)}.aoi-hc [data-weather=storm] .hc-drops i{animation-duration:.65s;width:2px}
.aoi-hc:not(.hc-running) .hc-weather *,.aoi-hc:not(.hc-running) .hc-life-prop,.aoi-hc:not(.hc-running) .hc-paws i{animation-play-state:paused}
@keyframes hc-knead{to{transform:translateY(10px) scaleY(.7)}}@keyframes hc-prop{to{transform:translate(-18px,-8px) rotate(12deg)}}@keyframes hc-yarn{to{transform:translateX(-90px) rotate(-180deg)}}@keyframes hc-fish{to{transform:translate(-45px,-30px) rotate(-20deg)}}@keyframes hc-dream{from{opacity:0;transform:translateY(0)}50%{opacity:1}to{opacity:0;transform:translate(-10px,-25px)}}@keyframes hc-firefly{to{transform:translate(-100px,45px)}}@keyframes hc-rain{to{transform:translate(12px,750%)}}@keyframes hc-cloud{to{transform:translateX(20%)}}@keyframes hc-sun{to{transform:scale(1.2);opacity:.6}}
@media(prefers-reduced-motion:reduce){.aoi-hc .hc-weather *,.aoi-hc .hc-life-prop,.aoi-hc .hc-paws i{animation:none!important}.aoi-hc .hc-weather,.aoi-hc.hc-held .hc-actor{transition:none}}
@media(max-width:500px){.aoi-hc .hc-icon{min-height:32px;width:32px;height:32px}.aoi-hc.hc-fullscreen{padding:46px 8px 8px}.aoi-hc.hc-fullscreen .hc-actor glitched-hacker-cat{width:min(65vw,40vh)}}
/* Companion scenes: rocket, friendly pursuit and three terminal tiers. */
.aoi-hc .hc-scene{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden;--hack-accent:#91fbd4}
.aoi-hc .hc-scene>*{display:none}
.aoi-hc .hc-exhaust{display:none;position:absolute;top:80%;left:42%;width:16%;height:52%;z-index:-1;background:linear-gradient(#fff4b9,#ffb34f 35%,#ff6c8055,transparent);clip-path:polygon(0 0,100% 0,80% 38%,95% 62%,50% 100%,10% 60%,25% 35%);filter:drop-shadow(0 0 8px #ffb34f);animation:hc-thrust .18s ease-in-out infinite alternate}
.aoi-hc[data-activity=rocket] .hc-exhaust{display:block}
.aoi-hc .hc-scene[data-scene=dog] .hc-dog{display:block;position:absolute;bottom:16%;left:0;width:24%;max-width:160px;color:#ffc882;filter:drop-shadow(0 0 4px #ffc88255);animation:hc-dog-run 3s ease-in-out infinite}
.aoi-hc .hc-dog-legs{transform-origin:50% 70%;animation:hc-dog-stride .2s ease-in-out infinite alternate}
.aoi-hc .hc-console{position:absolute;padding:6px;border:1px solid #91fbd477;border-radius:5px;background:#101d2fe8;color:var(--hack-accent);font:clamp(6px,1vw,11px)/1.5 ui-monospace,monospace;box-shadow:0 0 20px #91fbd415;white-space:normal}
.aoi-hc .hc-console b{display:block;letter-spacing:.12em;border-bottom:1px solid #91fbd444;padding-bottom:3px}.aoi-hc .hc-console pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0;min-height:3em}
.aoi-hc .hc-console-main{left:3%;bottom:12%;width:45%;max-width:300px;transform:rotate(-5deg)}
.aoi-hc .hc-console-side{right:3%;top:12%;width:39%;max-width:260px;transform:rotate(5deg)}
.aoi-hc .hc-scene[data-scene=hack] .hc-console-main{display:block}
.aoi-hc .hc-scene[data-scene=hack]:is([data-tier="2"],[data-tier="3"]) .hc-console-side{display:block}
.aoi-hc .hc-hack-meter{height:3px;background:#91fbd422}.aoi-hc .hc-hack-meter i{display:block;height:100%;background:currentColor;width:0}
.aoi-hc .hc-data-rain{position:absolute;inset:-20% 5% 0;color:#91fbd4;opacity:.3;white-space:pre;font:clamp(10px,2vw,22px)/2 monospace;letter-spacing:1em;animation:hc-data-stream 3s linear infinite}
.aoi-hc .hc-scene[data-scene=hack][data-tier="3"]{--hack-accent:#e5b7ff}
.aoi-hc .hc-scene[data-scene=hack][data-tier="3"] :is(.hc-data-rain,.hc-orbit,.hc-hack-grid){display:block}
.aoi-hc .hc-orbit{position:absolute;left:20%;top:15%;width:60%;height:70%;border:1px dashed #d19cff77;border-radius:50%;animation:hc-orbit 9s linear infinite;box-shadow:0 0 25px #d19cff22,inset 0 0 25px #d19cff22}
.aoi-hc .hc-orbit:after{content:'✧';position:absolute;left:10%;top:10%;color:#e5b7ff;font-size:24px}
.aoi-hc .hc-hack-grid{position:absolute;inset:0;background:linear-gradient(#d19cff18 1px,transparent 1px),linear-gradient(90deg,#d19cff18 1px,transparent 1px);background-size:24px 24px;opacity:.6}
.aoi-hc:is([data-activity=hack1],[data-activity=hack2],[data-activity=hack3]) .hc-paws{display:flex;bottom:12%;left:28%;width:44%}
.aoi-hc:is([data-activity=hack1],[data-activity=hack2],[data-activity=hack3]) .hc-paws i{animation:hc-knead .22s ease-in-out infinite alternate;height:14px}.aoi-hc:is([data-activity=hack1],[data-activity=hack2],[data-activity=hack3]) .hc-paws i+i{animation-delay:-.22s}
.aoi-hc:not(.hc-running) :is(.hc-scene *,.hc-exhaust){animation-play-state:paused}
@keyframes hc-thrust{to{transform:scaleX(.7) scaleY(.8);opacity:.7}}
@keyframes hc-dog-run{0%{transform:translateX(20%)}45%{transform:translateX(280%)}50%{transform:translateX(280%) scaleX(-1)}95%{transform:translateX(20%) scaleX(-1)}100%{transform:translateX(20%)}}
@keyframes hc-dog-stride{to{transform:skewX(20deg) translateY(-3px)}}
@keyframes hc-data-stream{to{transform:translateY(20%)}}
@keyframes hc-orbit{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.aoi-hc :is(.hc-scene *,.hc-exhaust){animation:none!important}}
/* Inline companion shell; no page overlays or external terminal service. */
.aoi-hc .hc-shell-toggle{font:600 12px/1 ui-monospace,monospace;letter-spacing:-1px}
.aoi-hc .hc-shell-toggle[aria-expanded=true]{background:#b6ffe018;color:#b6ffe0}
.aoi-hc.hc-simple.hc-shell-open{width:100%;max-width:560px;min-width:0}
.aoi-hc.hc-floating.hc-shell-open{width:min(560px,calc(100vw - 16px))}
.aoi-hc .hc-shell{min-width:0;margin-top:10px;border:1px solid #8bbca450;border-radius:10px;background:#10171d;color:#cbf3dc;text-align:left;overflow:hidden;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}
.aoi-hc .hc-shell-head{display:flex;align-items:center;gap:10px;padding:6px 10px;border-bottom:1px solid #9be4bd25;background:#b6ffe008}
.aoi-hc .hc-shell-head b{color:#acffcd;font-size:11px;letter-spacing:.15em;white-space:nowrap}
.aoi-hc .hc-shell-head>span{flex:1;min-width:0;color:#91a6a0;font:10px/1.4 system-ui}
.aoi-hc .hc-shell-head button{background:none;border:0;padding:0;margin:0;width:28px;height:28px;min-height:28px;color:#a3b6b0;font-size:20px}
.aoi-hc .hc-shell-log{height:160px;max-height:24dvh;overflow:auto;overscroll-behavior:contain;padding:10px;scrollbar-color:#486a5a #10171d}
.aoi-hc .hc-shell-line{display:grid;grid-template-columns:30px minmax(0,1fr);gap:5px;margin:0 0 9px;white-space:pre-wrap;overflow-wrap:anywhere;font:inherit}
.aoi-hc .hc-shell-line>span:first-child{color:#8cba9e}.aoi-hc .hc-shell-you{color:#a9b6dc}.aoi-hc .hc-shell-error{color:#ffc899}
.aoi-hc .hc-shell-quick{display:flex;gap:4px;flex-wrap:wrap;padding:5px 10px;border-top:1px solid #9be4bd18}
.aoi-hc .hc-shell-quick button{font:10px/1.4 ui-monospace,monospace;min-height:26px;padding:3px 7px;margin:0;border:1px solid #73998355;background:#18272a;color:#b3d9c4;border-radius:5px}
.aoi-hc .hc-shell-form{display:flex;align-items:center;gap:8px;margin:0;padding:8px 10px;border-top:1px solid #9be4bd25}
.aoi-hc .hc-shell-form>span{font-size:10px;color:#9debb9;white-space:nowrap}
.aoi-hc .hc-shell-form input{flex:1;min-width:0;padding:6px 4px;border:0;border-radius:3px;background:#10171d;color:#d9ffe8;box-shadow:none;font:16px/1.4 ui-monospace,monospace}
.aoi-hc .hc-shell-form input::placeholder{color:#869b92;font-size:12px}
.aoi-hc .hc-shell-form button{min-height:32px;margin:0;padding:2px 8px;background:#27483a;border:1px solid #7decb455;color:#bdffda}
.aoi-hc .hc-shell-hint{margin:0;padding:0 10px 8px;color:#92a69d;font:10px/1.4 system-ui}
.aoi-hc.hc-fullscreen>.hc-shell{width:min(760px,100%);align-self:center;flex:0 1 auto;max-height:48dvh;overflow:auto}
@media(max-width:500px){.aoi-hc .hc-shell-form{gap:4px}.aoi-hc .hc-shell-form>span{font-size:8px}.aoi-hc .hc-shell-head{gap:6px}.aoi-hc .hc-shell-quick button{min-height:30px}}
