:root{--bg:#0e0e0e;--fg:#e8e8e8;--dim:#8b8b8b;--line:#5c5c5c;--accent:#d77757;--ok:#4eba65;--danger:#ff6b6b;--font:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Noto Sans Mono CJK JP", "Osaka-Mono", monospace;--cursor-jitter:0px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);width:100%;height:100%;color:var(--fg);font-family:var(--font);-webkit-text-size-adjust:100%;touch-action:manipulation;overflow:hidden}input{-webkit-user-select:text;user-select:text}#app{height:100%;font-size:clamp(12px,3.4vw,15px);line-height:1.5;position:fixed;top:0;left:0;right:0;overflow:hidden}#stage{position:absolute;inset:0}#term{padding:calc(var(--safe-area-inset-top,env(safe-area-inset-top,0px)) + 12px) calc(var(--safe-area-inset-right,env(safe-area-inset-right,0px)) + 12px) calc(var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)) + 16px) calc(var(--safe-area-inset-left,env(safe-area-inset-left,0px)) + 12px);z-index:1;word-break:break-word;max-width:860px;margin:0 auto;position:absolute;inset:0;overflow-y:auto}.msg .body,#typed{white-space:pre-wrap}.dim{color:var(--dim)}.accent{color:var(--accent)}.ok{color:var(--ok)}.gap{height:1.5em}.indent{padding-left:2ch}b{color:#fff;font-weight:700}.box{border:1px solid var(--line);border-radius:8px;padding:.25em 1ch}.welcome{border-color:var(--accent);margin:.5em 0 1em;padding:.5em 1.5ch}.tips{margin-bottom:1.5em;padding-left:1ch}.msg{gap:1ch;margin:.6em 0 0;display:flex}.msg .bullet,.msg .elbow{flex:none}.msg .body{flex:1;min-width:0}.msg.user{color:var(--dim)}.msg.tool-result{margin-top:0;padding-left:2ch}.msg.tool-result .elbow{color:var(--dim)}#prompt{border-color:var(--line);min-height:2.2em;margin-top:1em;padding:.3em 1ch;position:relative}#prompt.focused{border-color:#9a9a9a}.prompt-mark{color:var(--fg);margin-right:1ch}#placeholder{color:#5f5f5f}#input{opacity:0;color:#0000;caret-color:#0000;background:0 0;border:0;width:100%;font-size:16px;position:absolute;inset:0}#cursor,.fall-cursor{vertical-align:-.25em;width:.62em;height:1.2em;display:inline-block}#cursor{transform:translate(var(--cursor-jitter), 0);animation:1.05s step-end infinite blink}#cursor svg,.fall-cursor svg{width:100%;height:100%;display:block}@keyframes blink{50%{opacity:0}}#hint{white-space:nowrap;color:var(--dim);flex-wrap:wrap;justify-content:space-between;gap:0 2ch;padding:.3em 1ch 0;font-size:.85em;display:flex}#meter.danger{color:var(--danger)}#vibe{aspect-ratio:1/1.3;opacity:0;pointer-events:none;z-index:0;filter:drop-shadow(0 0 18px #d7775773);will-change:transform, opacity;width:min(80vw,52vh);position:absolute;bottom:0;left:50%}#vibe svg,#vibe canvas{width:100%;height:100%;display:block}#vibe canvas{display:none;position:absolute;inset:0}#vibe.is-3d canvas{display:block}#vibe.is-3d svg{display:none}#fall-layer{pointer-events:none;z-index:2;font-family:var(--font);position:absolute;inset:0}.fall-char,.fall-edge,.fall-cursor{transform-origin:50%;white-space:pre;will-change:transform;position:absolute;top:0;left:0}.fall-char{display:block}#result{z-index:3;text-align:center;background:#0000008c;flex-direction:column;justify-content:center;align-items:center;gap:1.2em;padding:24px 16px;animation:.6s ease-out both fade-in;display:flex;position:absolute;inset:0}#result[hidden]{display:none}.result-title{color:#fff;text-shadow:0 0 24px #d77757cc;font-size:clamp(22px,7vw,44px);font-weight:800}.result-sub{color:var(--dim)}.result-buttons{gap:2ch;display:flex}.result-buttons button{font:inherit;color:var(--fg);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;padding:.5em 2.5ch;font-size:1.1em}.result-buttons button:hover,.result-buttons button:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}#share{border-color:var(--accent);color:var(--accent)}.follow{color:var(--dim);align-items:center;gap:.6ch;margin-top:.4em;text-decoration:none;display:inline-flex}.follow .x-logo{width:1.1em;height:1.1em;color:var(--fg)}.follow-handle{color:var(--fg);text-underline-offset:3px;text-decoration:underline}.follow:hover .follow-handle,.follow:focus-visible .follow-handle{color:var(--accent)}@keyframes fade-in{0%{opacity:0}}
