@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=VT323&family=Righteous&family=Fredoka:wght@700&display=swap");:root{--ground:#f5f6f4;--surface:#ffffff;--ink:#1b1d21;--muted:#5d636b;--line:#dcdfe3;--accent:#1f4fb8;--accent-soft:#e8eefb}*{box-sizing:border-box}body,html{height:100%;margin:0}body{background:var(--ground);color:var(--ink);font-family:IBM Plex Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5}.shell{max-width:760px;height:100%;margin:0 auto;display:flex;flex-direction:column;padding:0 16px}.header{padding:28px 0 16px;border-bottom:1px solid var(--line)}.header h1{margin:0;font-size:1.5rem;font-weight:600}.header p{margin:4px 0 0;color:var(--muted);font-size:.95rem}.log{flex:1 1;overflow-y:auto;padding:24px 0;display:flex;flex-direction:column;gap:16px}.msg{max-width:85%;padding:12px 16px;border-radius:12px;white-space:pre-wrap}.msg.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.msg.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}.msg.error{align-self:stretch;max-width:none;background:#fdf0ee;border:1px solid #f1c7c0;color:#8a2a1c}.msg.notice{font-size:.9em;font-style:italic;opacity:.85;border-style:dashed}.composer{display:flex;gap:8px;padding:16px 0 24px;border-top:1px solid var(--line)}.composer textarea{flex:1 1;resize:none;font:inherit;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);min-height:48px;max-height:160px}.composer button{font:inherit;font-weight:500;background:var(--accent);color:#fff;border:0;border-radius:10px;padding:0 20px;cursor:pointer}.composer button:disabled{opacity:.5;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.typing:after{content:"▍";animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.typing:after{animation:none}}.jobbar{padding:12px 0;border-bottom:1px solid var(--line);font-size:.95rem}.linkish{font:inherit;background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.linkish:disabled{opacity:.5;cursor:default}.jobloaded{display:flex;gap:12px;align-items:baseline;justify-content:space-between;flex-wrap:wrap}.jobpanel{display:flex;flex-direction:column;gap:8px}.jobpanel label{font-weight:500}.jobpanel .row{display:flex;gap:8px}.jobpanel .row.end{justify-content:flex-end}.jobpanel .row.between{justify-content:space-between}.jobpanel input,.jobpanel textarea{flex:1 1;font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.jobpanel textarea{resize:vertical}.jobpanel .row button:not(.linkish){font:inherit;font-weight:500;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:10px 16px;cursor:pointer}.jobpanel .row button:not(.linkish):disabled{opacity:.5;cursor:default}.hint{margin:0;color:var(--muted);font-size:.9rem}.joberror{margin:0;color:#8a2a1c}.layout{height:100%;display:flex;flex-direction:column}.stage{flex:none;display:flex;justify-content:center;padding:12px 16px 0}.desk{width:min(100%,520px,calc(28vh * 1.45))}.layout .shell{flex:1 1;min-height:0;width:100%;height:auto}@media (min-width:1000px) and (orientation:landscape){.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,720px);grid-template-rows:100%;max-width:1600px;margin:0 auto;grid-column-gap:24px;column-gap:24px}.stage{align-items:center;padding:24px}.desk{width:min(100%,760px,calc((100vh - 48px) * 1.45))}.layout .shell{height:100%;margin:0}}.voicenote{padding:8px 0 0}.crt-text{font-family:VT323,Courier New,monospace;fill:#39FF6A}.crt-cursor{fill:#39FF6A;animation:crt-blink 1s steps(1) infinite}.crt-dot{animation:2.4s linear infinite;opacity:0}.crt-dot-1{animation-name:crt-dot-1}.crt-dot-2{animation-name:crt-dot-2}.crt-dot-3{animation-name:crt-dot-3}.crt-dot-4{animation-name:crt-dot-4}.crt-dot-5{animation-name:crt-dot-5}@keyframes crt-blink{50%{opacity:0}}.crt-blink-slow{animation:crt-blink 1.6s steps(1) infinite}.crt-card{animation:crt-card-in .5s ease-out}@keyframes crt-card-in{0%{opacity:0}to{opacity:1}}@keyframes crt-dot-1{0%,8%{opacity:0}8.01%,88%{opacity:1}88.01%,to{opacity:0}}@keyframes crt-dot-2{0%,22%{opacity:0}22.01%,88%{opacity:1}88.01%,to{opacity:0}}@keyframes crt-dot-3{0%,36%{opacity:0}36.01%,88%{opacity:1}88.01%,to{opacity:0}}@keyframes crt-dot-4{0%,50%{opacity:0}50.01%,88%{opacity:1}88.01%,to{opacity:0}}@keyframes crt-dot-5{0%,64%{opacity:0}64.01%,88%{opacity:1}88.01%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.crt-blink-slow,.crt-card,.crt-cursor,.crt-dot{animation:none;opacity:1}}.msg.assistant a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.lognotice{position:fixed;top:12px;right:16px;z-index:50;max-width:min(340px,calc(100vw - 32px));display:flex;align-items:flex-start;gap:8px;padding:8px 8px 8px 12px;background:var(--surface);color:var(--muted);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.08);font-size:.85rem;line-height:1.4;animation:lognotice-in .2s ease-out}.lognotice span{flex:1 1}.lognotice-close{flex:none;border:0;background:none;color:var(--muted);font-size:1.1rem;line-height:1;padding:0 4px;cursor:pointer}.lognotice-close:hover{color:var(--ink)}@keyframes lognotice-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.lognotice{animation:none}}.imagezoom{position:fixed;z-index:50;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border-radius:12px;background:#0b0d10;box-shadow:0 12px 40px rgba(0,0,0,.35);animation:imagezoom-in .12s ease-out}.imagezoom img{display:block;max-width:100%;height:auto;object-fit:contain;border-radius:6px}.imagezoom-caption{color:#e8e8e8;font-size:.85rem;text-align:center}@keyframes imagezoom-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.imagezoom{animation:none}}.screen-hover{position:absolute;cursor:zoom-in;border-radius:6%}.screen-hover:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lamp-overlay,.lamp-text-layer{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:5}.lamp-text-layer{z-index:6}.lamp-bubble-text{position:absolute;transform:translate(-50%,-50%);text-align:center;font-family:Righteous,IBM Plex Sans,system-ui,sans-serif;font-size:.95rem;line-height:1.35;font-weight:400;opacity:0}.device{position:relative;display:block;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;border-radius:12px}.device:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.device-label{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:3px;padding:0 6px;white-space:nowrap;line-height:1.25;font-family:VT323,Courier New,monospace;font-size:clamp(12px,1.6vw,17px);letter-spacing:.06em;color:#3d3426;background:#F3ECDD;border:1px solid #8a7b60;border-radius:4px}.device-label b{font-weight:400}.device-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px);padding:6px 10px;border-radius:8px;background:var(--accent);color:#fff;font-size:13px;font-weight:500;line-height:1.3;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.2);opacity:0;pointer-events:none;z-index:20;transition:opacity .15s ease-out,transform .15s ease-out}.device-tip:after{content:"";position:absolute;top:100%;left:50%;margin-left:-6px;border:6px solid transparent;border-top:6px solid var(--accent)}.device-mic .device-tip{left:0;transform:translateY(4px)}.device-mic .device-tip:after{left:24px}@media (hover:hover){.device:hover .device-tip{opacity:1;transform:translate(-50%)}.device-mic:hover .device-tip{transform:translate(0)}}.device:focus-visible .device-tip{opacity:1;transform:translate(-50%)}.device-mic:focus-visible .device-tip{transform:translate(0)}@media (prefers-reduced-motion:reduce){.device-switch *,.device-tip{transition:none!important}}