:root{color-scheme:light;--bg: #f6f3ee;--surface: #ffffff;--surface-2: #f2eee8;--surface-3: #e9e4dc;--border: #e2dbd0;--border-strong: #cfc6b8;--text: #1e1b18;--muted: #6e665c;--accent: #d6284c;--accent-soft: #fbe3e8;--accent-ink: #ffffff;--read: #2b74d8;--read-soft: #e3eefc;--write: #e08a00;--write-soft: #fff1d6;--ok: #24914b;--bad: #d6284c;--code-bg: #faf8f4;--shadow: 0 1px 2px rgba(40, 30, 20, .06), 0 4px 16px rgba(40, 30, 20, .05);--c-load: #2b74d8;--c-variable: #7a4fd6;--c-jump: #d9661f;--c-exception: #d6284c;--c-call: #0e8a8c;--c-return: #a8327a;--c-arith: #2f8f3a;--c-data: #9a7a00;--c-class: #8a5a2b;--c-misc: #8a8580;--t-nil: #8a8580;--t-bool: #c25e00;--t-int: #2b5fd8;--t-str: #2f8f3a;--t-sym: #7a4fd6;--t-ary: #0e8a8c;--t-proc: #a8327a;--t-obj: #8a5a2b;--t-class: #6b4a2b;--t-exc: #d6284c;--frame-0: #6e665c;--frame-1: #2b74d8;--frame-2: #d6284c;--frame-3: #2f8f3a;--frame-4: #a8327a;--frame-5: #d9661f;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans: "Noto Sans JP", system-ui, -apple-system, "Hiragino Sans", "Yu Gothic UI", sans-serif;--radius: 12px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #121418;--surface: #1a1d23;--surface-2: #22262e;--surface-3: #2b303a;--border: #2c313b;--border-strong: #3c4350;--text: #e9e6e1;--muted: #9aa0a9;--accent: #ff4d6d;--accent-soft: #3a1820;--read: #5aa2ff;--read-soft: #182a44;--write: #ffb02e;--write-soft: #3b2c10;--code-bg: #16181d;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 20px rgba(0, 0, 0, .25);--c-load: #5aa2ff;--c-variable: #a98bff;--c-jump: #ff9a4d;--c-exception: #ff4d6d;--c-call: #2dc7c9;--c-return: #e46bb4;--c-arith: #5fcf6c;--c-data: #e0c24a;--c-class: #d29b67;--c-misc: #9aa0a9;--t-nil: #9aa0a9;--t-bool: #ff9a4d;--t-int: #6fa8ff;--t-str: #5fcf6c;--t-sym: #b79bff;--t-ary: #2dc7c9;--t-proc: #e46bb4;--t-obj: #d29b67;--t-class: #e0b48a;--t-exc: #ff4d6d;--frame-0: #9aa0a9;--frame-1: #5aa2ff;--frame-2: #ff4d6d;--frame-3: #5fcf6c;--frame-4: #e46bb4;--frame-5: #ff9a4d}}:root[data-theme=dark]{color-scheme:dark;--bg: #121418;--surface: #1a1d23;--surface-2: #22262e;--surface-3: #2b303a;--border: #2c313b;--border-strong: #3c4350;--text: #e9e6e1;--muted: #9aa0a9;--accent: #ff4d6d;--accent-soft: #3a1820;--read: #5aa2ff;--read-soft: #182a44;--write: #ffb02e;--write-soft: #3b2c10;--code-bg: #16181d;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 20px rgba(0, 0, 0, .25);--c-load: #5aa2ff;--c-variable: #a98bff;--c-jump: #ff9a4d;--c-exception: #ff4d6d;--c-call: #2dc7c9;--c-return: #e46bb4;--c-arith: #5fcf6c;--c-data: #e0c24a;--c-class: #d29b67;--c-misc: #9aa0a9;--t-nil: #9aa0a9;--t-bool: #ff9a4d;--t-int: #6fa8ff;--t-str: #5fcf6c;--t-sym: #b79bff;--t-ary: #2dc7c9;--t-proc: #e46bb4;--t-obj: #d29b67;--t-class: #e0b48a;--t-exc: #ff4d6d;--frame-0: #9aa0a9;--frame-1: #5aa2ff;--frame-2: #ff4d6d;--frame-3: #5fcf6c;--frame-4: #e46bb4;--frame-5: #ff9a4d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:var(--accent)}code,kbd,pre{font-family:var(--mono);font-size:.88em}:not(pre)>code{background:var(--surface-2);padding:.1em .35em;border-radius:5px}kbd{border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;padding:0 .35em;background:var(--surface)}h1,h2,h3,h4{line-height:1.3;margin:0 0 .5em}p{margin:0 0 .8em}.muted{color:var(--muted)}.small{font-size:.85em}.mono{font-family:var(--mono)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:9px;padding:7px 13px;font:inherit;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,transform .1s}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.ghost{background:transparent}.btn.big{padding:11px 22px;font-size:16px;border-radius:11px}.btn.small{padding:3px 9px;font-size:13px}.icon{width:18px;height:18px;flex:none}.icon-btn{padding:7px 9px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px clamp(16px,4vw,40px);background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:500;white-space:nowrap}.brand b{font-weight:900}.logo{width:28px;height:28px}.site-header nav{display:flex;align-items:center;gap:clamp(10px,2vw,24px)}.site-header nav a{color:var(--text);text-decoration:none;font-size:14px;white-space:nowrap}.site-header nav a:hover{color:var(--accent)}.theme-btn{font:inherit;font-size:13px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:99px;padding:2px 12px;cursor:pointer}main{max-width:1640px;margin:0 auto;padding:0 clamp(16px,3vw,40px)}.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center;padding:clamp(40px,8vw,96px) 0 clamp(32px,6vw,72px)}.eyebrow{display:inline-block;color:var(--accent);font-weight:700;font-size:13px;letter-spacing:.08em;margin-bottom:8px}.hero h1{font-size:clamp(38px,6vw,72px);font-weight:900;letter-spacing:-.01em;margin-bottom:14px}.tagline{font-size:clamp(18px,2.2vw,24px);font-weight:700;display:flex;flex-wrap:wrap;gap:.5em;margin-bottom:18px}.tagline i{color:var(--accent);font-style:normal}.lead{font-size:16px;color:var(--muted);max-width:36em}.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.hero-diagram{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:var(--shadow);font-family:var(--mono);font-size:13px;min-width:0}.hd-title{font-family:var(--sans);font-size:12px;font-weight:700;color:var(--muted);margin-bottom:8px}.hd-title code{font-size:11px}.hd-insn{display:grid;grid-template-columns:16px 76px 1fr;gap:6px;padding:4px 8px;border-radius:7px;transition:background .3s;white-space:nowrap;overflow:hidden}.hd-insn.done{color:var(--muted)}.hd-insn.cur{background:var(--accent-soft);color:var(--text)}.hd-pc{color:var(--accent)}.hd-op{font-weight:600}.hd-reg,.hd-out{display:flex;justify-content:space-between;gap:8px;padding:4px 10px;border:1px solid var(--border);border-radius:7px;margin-bottom:5px;transition:background .3s,border-color .3s}.hd-reg small{color:var(--muted);font-family:var(--sans)}.hd-reg.hit{background:var(--write-soft);border-color:var(--write);animation:pop .5s}.hd-out{margin-top:10px;border-style:dashed}.section-head{max-width:820px;margin-bottom:20px}.section-head h2{font-size:clamp(24px,3vw,34px);font-weight:900}.section-head p{color:var(--muted)}.simulator{position:relative;padding:24px 0 48px;border-top:1px solid var(--border)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;position:sticky;top:58px;z-index:10}.tb-group{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.tb-group.status{margin-left:auto;gap:14px;font-size:13px;color:var(--muted)}.stat b{color:var(--text);font-family:var(--mono);font-size:15px}.select{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);min-width:0}.select select{font:inherit;font-size:14px;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:9px;padding:6px 10px;max-width:min(320px,60vw)}.file-chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:12.5px;background:var(--surface-2);border-radius:99px;padding:3px 11px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-chip small{color:var(--muted)}.step-btn{min-width:128px}.speed{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.speed input{width:90px;accent-color:var(--accent)}.speed-val{font-family:var(--mono);min-width:44px}.badge{font-size:12px;font-weight:700;padding:2px 10px;border-radius:99px}.badge.ok{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.badge.bad{background:var(--accent-soft);color:var(--bad)}.alert{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);padding:10px 14px;margin-bottom:16px}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 80%,transparent);border:3px dashed var(--accent);border-radius:18px;font-size:20px;font-weight:700;text-align:center;pointer-events:none}.drop-overlay .icon{width:48px;height:48px;color:var(--accent)}.sim-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.2fr) minmax(0,.9fr);gap:16px;align-items:start}.col{display:flex;flex-direction:column;gap:16px;min-width:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;overflow:hidden}.panel-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;padding:10px 14px;border-bottom:1px solid var(--border)}.panel-head h3{font-size:14px;font-weight:700;margin:0}.panel-sub{font-size:12px;color:var(--muted);min-width:0}.panel-actions{margin-left:auto}.panel-body{padding:12px 14px}.toggle{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);cursor:pointer}.toggle input{accent-color:var(--accent)}.seg-toggle{display:inline-flex;border:1px solid var(--border-strong);border-radius:8px;overflow:hidden}.seg-toggle button{font:inherit;font-size:12px;border:0;background:transparent;color:var(--muted);padding:2px 10px;cursor:pointer}.seg-toggle button.on{background:var(--text);color:var(--bg)}.value{font-family:var(--mono);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:100%;vertical-align:bottom}.t-nil{color:var(--t-nil)}.t-bool{color:var(--t-bool)}.t-int{color:var(--t-int)}.t-str{color:var(--t-str)}.t-sym{color:var(--t-sym)}.t-ary{color:var(--t-ary)}.t-proc{color:var(--t-proc)}.t-obj{color:var(--t-obj)}.t-class{color:var(--t-class);font-weight:600}.t-exc{color:var(--t-exc)}.cat-load{--cat: var(--c-load)}.cat-variable{--cat: var(--c-variable)}.cat-jump{--cat: var(--c-jump)}.cat-exception{--cat: var(--c-exception)}.cat-call{--cat: var(--c-call)}.cat-return{--cat: var(--c-return)}.cat-arith{--cat: var(--c-arith)}.cat-data{--cat: var(--c-data)}.cat-class{--cat: var(--c-class)}.cat-misc{--cat: var(--c-misc)}.opname{font-family:var(--mono);font-weight:600;color:var(--cat, var(--text))}.irep-tabs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px;max-height:96px;overflow-y:auto}.irep-tab{font:inherit;font-size:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);border-radius:7px;padding:1px 9px;cursor:pointer;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.irep-tab.active{color:var(--text);border-color:var(--border-strong)}.irep-tab.cur:before{content:"● ";color:var(--accent)}.irep-tab.sel{background:var(--text);border-color:var(--text);color:var(--bg)}.irep-no{font-family:var(--mono);opacity:.7}.iseq-panel .panel-body{padding-bottom:6px}.iseq-head,.insn{display:grid;grid-template-columns:14px 58px 104px 96px minmax(0,1fr) 26px;align-items:center;gap:6px}.iseq-head{font-size:11px;color:var(--muted);padding:0 6px 4px;border-bottom:1px solid var(--border)}.iseq{font-family:var(--mono);font-size:12.5px;max-height:520px;overflow:auto;position:relative;margin:0 -6px}.insn{padding:2px 6px;border-left:3px solid transparent;border-radius:0 6px 6px 0;white-space:nowrap;min-width:460px}.insn:hover{background:var(--surface-2)}.insn.last{background:color-mix(in srgb,var(--cat) 9%,transparent)}.insn.cur{background:var(--accent-soft);border-left-color:var(--accent)}.insn.landed{animation:land .7s}.insn.hover-target{outline:1px dashed var(--c-jump)}.insn .addr{color:var(--muted);text-align:right}.pc-mark{color:var(--accent);font-weight:700;font-size:11px;margin-right:3px}.ret-mark{color:var(--c-return);margin-right:4px}.insn .bytes{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;opacity:.8}.insn .line{color:var(--muted);text-align:right;font-size:11px}.operands{overflow:hidden;text-overflow:ellipsis}.tok{margin-right:.7em}.tok-reg{color:var(--text)}.tok-sym{color:var(--t-sym)}.tok-lit{color:var(--t-str)}.tok-int{color:var(--t-int)}.tok-irep{color:var(--c-class)}.tok-addr{color:var(--c-jump);cursor:help}.tok-text{color:var(--muted)}.comment{color:var(--muted);font-size:11.5px}.bp{width:12px;height:12px;border-radius:50%;border:1px solid transparent;background:transparent;padding:0;cursor:pointer}.insn:hover .bp{border-color:var(--border-strong)}.bp.on{background:var(--bad);border-color:var(--bad)}.source{list-style:none;margin:0;padding:0;font-family:var(--mono);font-size:12.5px;max-height:280px;overflow:auto}.source li{display:flex;gap:12px;padding:0 6px;border-radius:5px;white-space:pre}.source li.cur{background:var(--accent-soft)}.source .ln{color:var(--muted);min-width:2ch;text-align:right;-webkit-user-select:none;user-select:none}.source code{background:none;padding:0;font-size:1em}.stages{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.stage{border:1px solid var(--border);border-radius:10px;padding:9px 12px;background:var(--surface-2);display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:start}.stage-label{font-weight:700;font-size:13px;display:flex;align-items:center;gap:6px;white-space:nowrap}.stage-no{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--surface-3);font-size:11px}.stage-arrow{text-align:center;color:var(--muted);line-height:1;font-size:12px;transform:rotate(90deg);height:8px}.stages.run .stage{animation:stage-on var(--dur, .9s) both}.stages.run .s2{animation-delay:calc(var(--dur, .9s) / 3)}.stages.run .s3{animation-name:stage-on-final;animation-delay:calc(var(--dur, .9s) * 2 / 3)}.stages.run .stage .stage-no{animation:inherit;animation-name:none}.stages.run .s3 .stage-no,.stages.pending .s1 .stage-no{background:var(--accent);color:var(--accent-ink)}.stages.pending .s1{border-color:var(--accent)}.fetch-line{font-size:13px;margin-bottom:6px}.bytebox{display:flex;flex-wrap:wrap;gap:4px}.seg{text-align:center}.seg-bytes{display:flex;border:1.5px solid var(--segc, var(--border-strong));border-radius:6px;overflow:hidden}.byte{font-family:var(--mono);font-size:13px;padding:2px 6px;background:color-mix(in srgb,var(--segc, var(--border-strong)) 14%,var(--surface))}.byte+.byte{border-left:1px dashed var(--segc, var(--border-strong))}.seg-label{font-size:10.5px;color:var(--muted);font-family:var(--mono)}.seg-op{--segc: var(--accent)}.seg-a{--segc: var(--read)}.seg-b{--segc: var(--c-arith)}.seg-c{--segc: var(--c-variable)}.seg-EXT1,.seg-EXT2,.seg-EXT3{--segc: var(--c-misc)}.decode-op{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px}.decode-op .opname{font-size:16px}.chip{font-size:11px;background:var(--surface-3);border-radius:99px;padding:1px 8px;color:var(--muted)}.decode-operands{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.operand{font-family:var(--mono);font-size:12.5px;border:1.5px solid var(--segc);border-radius:6px;padding:0 7px}.semantics{display:block;font-size:12.5px;color:var(--muted);background:none!important;padding:0!important;overflow-wrap:anywhere}.op-ja{font-size:13px;color:var(--muted);margin-bottom:4px}.exec-desc{font-family:var(--mono);font-size:13px;font-weight:600;margin:0;overflow-wrap:anywhere}.event{display:inline-block;margin-top:6px;font-size:12px;font-weight:700;padding:1px 10px;border-radius:99px;background:var(--surface-3)}.ev-call{background:color-mix(in srgb,var(--c-call) 18%,transparent);color:var(--c-call)}.ev-return{background:color-mix(in srgb,var(--c-return) 18%,transparent);color:var(--c-return)}.ev-raise,.ev-error{background:var(--accent-soft);color:var(--bad)}.ev-rescue{background:color-mix(in srgb,var(--c-jump) 18%,transparent);color:var(--c-jump)}.ev-halt{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.regs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.reg{border:1.5px solid var(--border);border-radius:9px;padding:5px 9px 6px;background:var(--surface);min-width:0;transition:border-color .2s,background .2s}.reg.role-temp{background:var(--surface-2)}.reg-head{display:flex;align-items:baseline;gap:6px;font-size:11.5px;margin-bottom:1px;min-width:0}.reg-no{font-family:var(--mono);font-weight:600}.reg-role{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-self .reg-role{color:var(--c-class)}.role-arg .reg-role{color:var(--c-call);font-weight:700}.role-local .reg-role{color:var(--c-variable);font-weight:700}.role-block .reg-role{color:var(--c-return)}.reg-abs{margin-left:auto;font-family:var(--mono);color:var(--muted);font-size:10px;opacity:.7}.reg .value{font-size:13.5px}.reg.read{border-color:var(--read);box-shadow:0 0 0 2px var(--read-soft)}.reg.written{border-color:var(--write);background:var(--write-soft);animation:pop .6s}.legend{display:flex;gap:14px;margin-top:10px;font-size:12px;color:var(--muted)}.lg:before{content:"";display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1.5px solid}.lg-read:before{border-color:var(--read);background:var(--read-soft)}.lg-write:before{border-color:var(--write);background:var(--write-soft)}.native-note p{font-size:13px;color:var(--muted)}.stackview .hint{font-size:12.5px;color:var(--muted)}.stack-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;margin-bottom:6px}.sl:before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--c);margin-right:4px}.sl small{color:var(--muted);font-family:var(--mono)}.srows{max-height:440px;overflow:auto;font-family:var(--mono);font-size:12.5px}.srow{display:grid;grid-template-columns:30px auto 92px minmax(0,1fr);align-items:center;gap:8px;padding:0 6px;border-radius:5px;min-height:24px}.srow.overlap{background:var(--surface-2)}.srow.written{background:var(--write-soft);animation:pop .6s}.sidx{color:var(--muted);text-align:right;font-size:11px}.sbars{display:flex;gap:2px;align-self:stretch}.sbar{width:5px}.sbar.in{background:var(--c)}.sbar.top{border-radius:3px 3px 0 0}.sbar.base{border-radius:0 0 3px 3px}.slabel{display:flex;gap:6px;white-space:nowrap;overflow:hidden}.sreg{font-weight:600}.sreg+.sreg{opacity:.75;font-weight:400}.frames{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:300px;overflow:auto}.frame{width:100%;text-align:left;font:inherit;color:inherit;background:var(--surface-2);border:1px solid var(--border);border-left:4px solid var(--c);border-radius:8px;padding:6px 10px;cursor:pointer;display:flex;flex-direction:column;gap:1px;min-width:0}.frame.sel{border-color:var(--c);background:var(--surface);box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 25%,transparent)}.frame-label{font-family:var(--mono);font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frame-meta{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:11.5px;color:var(--muted)}.frame-self{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kind{font-weight:700}.kind-method{color:var(--c-call)}.kind-block{color:var(--c-return)}.kind-class{color:var(--c-class)}.kind-native{color:var(--c-misc)}.console{margin:0;background:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-height:64px;max-height:220px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.console .err{color:var(--bad);font-weight:600}.pool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px 14px}.pool-grid h4,.vars-panel h4{font-size:12px;color:var(--muted);margin-bottom:4px}.kv{list-style:none;margin:0;padding:0;font-family:var(--mono);font-size:12px}.kv li{display:flex;gap:8px;padding:1px 6px;border-radius:5px;min-width:0}.kv li.used{background:var(--read-soft);outline:1px solid var(--read)}.kv .k{color:var(--muted);flex:none}.kv .v{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.learn{padding:40px 0 64px;border-top:1px solid var(--border)}.lesson-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.lesson-tabs button{font:inherit;font-size:14px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:99px;padding:5px 14px 5px 6px;cursor:pointer;display:inline-flex;align-items:center;gap:7px}.lesson-tabs button.on{background:var(--text);color:var(--bg);border-color:var(--text)}.lesson-no{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface-3);color:var(--text);font-size:12px;font-weight:700}.lesson-tabs button.on .lesson-no{background:var(--accent);color:var(--accent-ink)}.lesson{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:clamp(16px,3vw,32px);box-shadow:var(--shadow)}.lesson-body h3{font-size:17px}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px 32px;margin-top:20px}.tip{margin-top:20px;background:var(--surface-2);border-radius:10px;padding:10px 14px;font-size:14px}.flow{display:grid;grid-template-columns:1fr auto 1fr auto 1.2fr;align-items:center;gap:12px}.flow-box{border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:var(--surface-2);min-width:0}.flow-box pre{margin:6px 0 0;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.flow-tag{display:block;font-size:11px;font-weight:700;color:var(--accent)}.flow-arrow{display:flex;flex-direction:column;align-items:center;font-family:var(--mono);font-weight:600;font-size:13px}.flow-arrow:after{content:"→";font-size:22px;color:var(--accent);line-height:1}.flow-arrow small{font-family:var(--sans);font-weight:400;color:var(--muted)}.vm-loop ol{margin:6px 0 0;padding-left:1.3em;font-size:13px}.compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compare h4{font-size:12px;color:var(--muted)}.compare pre,pre.cmd{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:0 0 10px;font-size:12.5px;overflow-x:auto}.reglist{list-style:none;padding:0;margin:0 0 12px;font-size:14px}.reglist li{margin-bottom:4px}.role-chip{display:inline-block;min-width:56px;text-align:center;font-family:var(--mono);font-size:12px;font-weight:600;border-radius:6px;padding:0 6px;margin-right:8px;border:1.5px solid}.role-chip.role-self{color:var(--c-class)}.role-chip.role-arg{color:var(--c-call)}.role-chip.role-block{color:var(--c-return)}.role-chip.role-local{color:var(--c-variable)}.role-chip.role-temp{color:var(--muted)}.callfig{display:flex;justify-content:center;gap:24px;--cell: 30px;font-family:var(--mono);font-size:12.5px}.win{display:flex;flex-direction:column-reverse;width:170px}.win.callee{margin-bottom:calc(var(--cell) * 3)}.win-title{font-family:var(--sans);font-weight:700;font-size:12px;text-align:center;padding-top:6px}.win .cell{height:var(--cell);display:flex;align-items:center;padding:0 10px;border:1px solid var(--border-strong);margin-top:-1px;background:var(--surface)}.win.caller .cell{border-left:4px solid var(--frame-0)}.win.callee .cell{border-left:4px solid var(--frame-1)}.win .cell.shared{background:var(--write-soft)}.formats{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:12px}.fmt{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--surface-2)}.fmt-name{margin-bottom:6px}.fmt .byte{min-width:26px;text-align:center}.hex-wrap{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:20px;align-items:start}.hex{font-family:var(--mono);font-size:12px;background:var(--code-bg);border:1px solid var(--border);border-radius:10px;padding:8px 10px;max-height:480px;overflow:auto}.hrow{display:flex;gap:12px;white-space:nowrap}.hoff{color:var(--muted)}.hbytes{display:inline-grid;grid-template-columns:repeat(16,2.4ch)}.hchars{display:inline-grid;grid-template-columns:repeat(16,1.1ch);color:var(--muted)}.hb{text-align:center;border-radius:3px;cursor:default;background:color-mix(in srgb,var(--rc, transparent) 20%,transparent)}.hb.hl{background:var(--rc);color:#fff}.rk-header{--rc: var(--c-misc)}.rk-section{--rc: #6c6c80}.rk-irep-header{--rc: var(--c-variable)}.rk-iseq{--rc: var(--accent)}.rk-catch{--rc: var(--c-jump)}.rk-pool{--rc: var(--c-arith)}.rk-syms{--rc: var(--c-call)}.rk-debug{--rc: var(--c-data)}.rk-lvar{--rc: var(--c-class)}.rk-end{--rc: var(--c-misc)}.regions{list-style:none;margin:0;padding:0;font-size:13px;max-height:480px;overflow:auto}.regions li{display:flex;align-items:center;gap:8px;padding:2px 8px;border-radius:6px}.regions li.hl{background:var(--surface-2)}.regions li.kinds{flex-wrap:wrap;gap:4px 12px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.kind-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px}.sw{width:12px;height:12px;border-radius:3px;background:var(--rc);flex:none}.rlabel{flex:1;min-width:0}.rrange{font-family:var(--mono);color:var(--muted);font-size:11.5px;white-space:nowrap}.op-filter{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.op-filter input{font:inherit;font-size:15px;padding:8px 12px;border-radius:9px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);max-width:420px}.cat-chips{display:flex;flex-wrap:wrap;gap:6px}.cat-chips button{font:inherit;font-size:13px;border:1.5px solid var(--cat, var(--border-strong));color:var(--cat, var(--text));background:transparent;border-radius:99px;padding:1px 12px;cursor:pointer}.cat-chips button.on{background:var(--cat, var(--text));color:var(--bg)}.optable-wrap{max-height:560px;overflow:auto;border:1px solid var(--border);border-radius:10px}.optable{width:100%;border-collapse:collapse;font-size:13.5px}.optable th{position:sticky;top:0;background:var(--surface-2);text-align:left;font-size:12px;color:var(--muted);padding:6px 10px}.optable td{padding:5px 10px;border-top:1px solid var(--border);vertical-align:top}.optable .sem{font-size:12px;color:var(--muted);min-width:220px}.site-footer{border-top:1px solid var(--border);padding:24px clamp(16px,4vw,40px);font-size:13px;color:var(--muted);text-align:center}@keyframes pop{0%{transform:scale(1.06);box-shadow:0 0 0 6px color-mix(in srgb,var(--write) 35%,transparent)}to{transform:scale(1);box-shadow:0 0 0 0 transparent}}@keyframes land{0%{box-shadow:inset 0 0 0 2px var(--c-jump)}to{box-shadow:inset 0 0 0 0 transparent}}@keyframes stage-on{0%{border-color:var(--border);background:var(--surface-2)}15%,60%{border-color:var(--accent);background:var(--accent-soft)}to{border-color:var(--border);background:var(--surface-2)}}@keyframes stage-on-final{0%{border-color:var(--border);background:var(--surface-2)}30%,to{border-color:var(--accent);background:var(--surface)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:1320px){.sim-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.col-right{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}@media(max-width:900px){.hero,.sim-grid,.flow{grid-template-columns:minmax(0,1fr)}.flow-arrow:after{content:"↓"}.hex-wrap{grid-template-columns:minmax(0,1fr)}.toolbar{position:static}.tb-group.status{margin-left:0}.site-header nav a{display:none}}@media(max-width:560px){body{font-size:14px}.iseq-head,.insn{grid-template-columns:12px 56px 150px minmax(0,1fr) 20px;min-width:0}.insn .words,.iseq-head span:nth-child(3){display:none}.insn .comment{display:none}.hero-diagram{grid-template-columns:minmax(0,1fr)}.stage{grid-template-columns:minmax(0,1fr);gap:4px}.compare{grid-template-columns:minmax(0,1fr)}.callfig{gap:8px}.win{width:46%}.speed input{width:70px}}.cat-local{--cat: var(--c-variable)}.cat-var{--cat: var(--c-class)}.cat-put{--cat: var(--c-load)}.cat-stack{--cat: var(--c-misc)}.cat-send{--cat: var(--c-call)}.cat-opt{--cat: var(--c-arith)}.cat-branch{--cat: var(--c-jump)}.cat-define{--cat: var(--c-return)}.cat-throw{--cat: var(--c-exception)}.cat-other{--cat: var(--c-misc)}.iseq-head,.insn{grid-template-columns:14px 62px 40px 178px minmax(0,1fr) 26px}.insn{min-width:580px}.insn.in-range{background:color-mix(in srgb,var(--c-exception) 10%,transparent)}.words{display:flex;gap:2px}.words i{width:7px;height:11px;border-radius:2px;background:var(--border-strong)}.words i.w-op{background:var(--cat, var(--accent))}.tok-local{color:var(--c-variable);font-weight:600}.tok-num{color:var(--t-int)}.tok-label{color:var(--c-jump);cursor:help}.tok-iseq{color:var(--c-class);cursor:pointer;text-decoration:underline dotted}.tok-cd{color:var(--c-call)}.tok-plain{color:var(--muted)}.catch-table{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}.catch-table h4{font-size:12px;color:var(--muted);margin-bottom:4px}.catch-table table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12px}.catch-table th{text-align:left;font-family:var(--sans);font-weight:500;color:var(--muted);font-size:11px;padding:2px 6px}.catch-table td{padding:2px 6px;border-top:1px solid var(--border)}.catch-table tr:hover td{background:var(--surface-2)}.ct{font-weight:700;color:var(--c-misc)}.ct-rescue,.ct-ensure{color:var(--c-exception)}.ct-break,.ct-next,.ct-retry,.ct-redo{color:var(--c-jump)}.link{font:inherit;background:none;border:none;padding:0;color:var(--c-class);text-decoration:underline dotted;cursor:pointer}.hint{font-size:12px;color:var(--muted);margin:6px 0 0}.wordbox{display:flex;flex-wrap:wrap;gap:4px}.word{display:flex;flex-direction:column;align-items:center;min-width:0;max-width:100%}.word-val{font-family:var(--mono);font-size:12.5px;padding:2px 8px;border:1.5px solid var(--wc);border-radius:6px;background:color-mix(in srgb,var(--wc) 12%,var(--surface));max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.word-label{font-size:10.5px;color:var(--muted);font-family:var(--mono)}.w-insn{--wc: var(--accent)}.w-operand{--wc: var(--read)}.wordbox.big{margin:14px 0 18px}.wordbox.big .w-insn+.w-insn,.wordbox.big .w-operand+.w-insn{margin-left:10px}.operand{--segc: var(--read);overflow-wrap:anywhere}.stack-effect{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-family:var(--mono);font-size:12.5px}.se-label{font-family:var(--sans);font-size:11px;color:var(--muted)}.se-pop{color:var(--bad)}.se-push{color:var(--ok)}.se-arrow{color:var(--muted)}.popush{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px}.pp{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:12.5px}.pp b{font-size:11px;border-radius:99px;padding:0 7px;color:var(--accent-ink)}.pp-pop b{background:var(--bad)}.pp-push b{background:var(--ok)}.pp .value{font-family:var(--mono);border:1px solid var(--border);border-radius:5px;padding:0 5px;background:var(--surface)}.pp-pop .value{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--bad) 60%,transparent)}.ev-escape{background:color-mix(in srgb,var(--c-variable) 18%,transparent);color:var(--c-variable)}.stack-panel .panel-body{padding-bottom:8px}.sl.sel{font-weight:700;text-decoration:underline}.srows.yarv{max-height:560px}.srows.yarv .srow{grid-template-columns:30px 6px minmax(84px,128px) minmax(0,1fr) auto;gap:8px;min-height:25px;border-radius:0;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.srows.yarv .sbar{align-self:stretch;width:6px;background:var(--c, transparent)}.srow.k-free{opacity:.45}.srow.k-free .sbar{background:transparent}.srow.k-env{background:color-mix(in srgb,var(--c) 6%,transparent)}.srow.k-env .slabel{color:var(--muted)}.srow.k-local .slabel b{color:var(--c-variable)}.srow.k-recv .slabel b{color:var(--c-class)}.srow.sel{background:color-mix(in srgb,var(--c) 12%,transparent)}.srow .slabel{display:flex;align-items:baseline;gap:6px;overflow:hidden;white-space:nowrap}.srow .slabel small{color:var(--muted);font-family:var(--sans);font-size:10.5px;overflow:hidden;text-overflow:ellipsis}.envname{font-weight:500}.sval{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.envdata{font-size:11.5px;color:var(--muted)}.srow.pushed{background:color-mix(in srgb,var(--ok) 16%,transparent);animation:push-in .5s}.srow.written:not(.pushed){background:var(--write-soft);animation:pop .6s}.srow.popped{opacity:.7}.srow.popped .sval .value{text-decoration:line-through;text-decoration-color:var(--bad)}.srow.read{box-shadow:inset 0 0 0 1.5px var(--read)}.sptr{display:flex;gap:4px;white-space:nowrap}.ptr{font-family:var(--mono);font-size:10.5px;font-weight:700;border-radius:4px;padding:0 5px}.ptr-sp{color:var(--accent-ink);background:var(--accent)}.ptr-sp2{color:var(--muted);border:1px solid var(--border-strong)}.ptr-ep{color:var(--c, var(--c-variable));border:1.5px solid var(--c, var(--c-variable))}.heapval{display:inline-flex;align-items:center;gap:5px}.badge-heap{font-family:var(--sans);font-size:10px;font-weight:700;color:var(--c-variable);border:1px solid var(--c-variable);border-radius:99px;padding:0 6px}.lg-push:before{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 16%,transparent)}.lg-pop:before{border-color:var(--bad);background:transparent}@keyframes push-in{0%{transform:translate(-10px);opacity:.2}to{transform:none;opacity:1}}.kind-top{color:var(--c-misc)}.kind-rescue,.kind-ensure{color:var(--c-exception)}.kind-cfunc{color:var(--c-misc)}.kind-lambda{color:var(--c-return)}.source-panel .panel-actions{display:flex;gap:6px}.editor{width:100%;min-height:220px;resize:vertical;font-family:var(--mono);font-size:13px;line-height:1.55;color:var(--text);background:var(--code-bg);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;-moz-tab-size:2;tab-size:2}.editor:focus{outline:2px solid var(--accent);outline-offset:1px}.alert pre{margin:0;white-space:pre-wrap;font-family:var(--mono);font-size:12.5px;flex:1;min-width:0;overflow-x:auto}.hd-st{margin-top:12px}.hd-stack{display:flex;flex-direction:column-reverse;gap:4px;min-height:92px;border:1.5px dashed var(--border-strong);border-top:none;border-radius:0 0 9px 9px;padding:6px}.hd-slot{text-align:center;padding:3px 8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border)}.hd-slot.new{background:color-mix(in srgb,var(--ok) 16%,transparent);border-color:var(--ok);animation:push-in .4s}.hd-empty{text-align:center;color:var(--muted);font-family:var(--sans);font-size:12px;margin:auto 0}.stack-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0 20px}.ss{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}.ss-insn{font-weight:700}.ss-stack{display:flex;flex-direction:column-reverse;gap:3px;min-height:60px;justify-content:flex-start;border:1.5px dashed var(--border-strong);border-top:none;border-radius:0 0 7px 7px;padding:4px;font-family:var(--mono)}.ss-stack span{text-align:center;background:var(--surface-2);border-radius:5px}.ss small{color:var(--muted)}.framefig{display:flex;flex-direction:column;gap:3px;margin-top:10px;font-size:13px}.ff{border:1px solid var(--border);border-left:5px solid var(--fc);border-radius:6px;padding:4px 10px;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;background:var(--surface)}.ff small{color:var(--muted)}.ff-op{--fc: var(--ok)}.ff-env{--fc: var(--c-misc)}.ff-local{--fc: var(--c-variable)}.ff-recv{--fc: var(--c-class)}.op-filter .toggle{font-size:13px}@media(max-width:560px){.iseq-head,.insn{grid-template-columns:12px 56px 168px minmax(0,1fr) 20px;min-width:470px}.srows.yarv .srow{grid-template-columns:26px 5px minmax(70px,96px) minmax(0,1fr) auto;gap:6px}}.callgrid{display:grid;grid-template-columns:56px minmax(0,1fr) minmax(0,1fr);gap:3px 10px;max-width:640px;margin:0 auto 20px;font-family:var(--mono);font-size:12.5px}.cg-head{font-family:var(--sans);font-size:12px;font-weight:700;color:var(--muted)}.cg-row{display:contents}.cg-idx{color:var(--muted);text-align:right;align-self:center}.cg-cell{border:1px solid var(--border);border-left:5px solid var(--fc, var(--border));border-radius:6px;padding:3px 8px;background:var(--surface);min-width:0;overflow-wrap:anywhere}.cg-free{color:var(--muted);border-style:dashed;background:transparent}.cg-op{--fc: var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--surface))}.cg-env{--fc: var(--frame-0)}.cg-env2{--fc: var(--frame-1)}.cg-local{--fc: var(--frame-1);background:color-mix(in srgb,var(--ok) 10%,var(--surface));font-weight:600}.cg-recv{--fc: var(--frame-1)}.lang-switch{display:inline-flex;border:1px solid var(--border-strong);border-radius:99px;overflow:hidden}.lang-switch button{font:inherit;font-size:13px;border:none;background:transparent;color:var(--muted);padding:4px 11px;cursor:pointer}.lang-switch button.on{background:var(--text);color:var(--bg)}.lang-switch button,.theme-btn{white-space:nowrap}@media(max-width:560px){.site-header .brand span b{display:none}.lang-switch button{padding:4px 8px}}
