:root{color-scheme:light;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;--canvas: oklch(97% .006 250);--surface: oklch(99% .004 250);--panel: oklch(94% .007 250);--panel-strong: oklch(89% .009 250);--text: oklch(24% .018 250);--text-muted: oklch(48% .018 250);--border: oklch(84% .01 250);--focus: oklch(58% .12 255);--ruby: oklch(55% .14 25);--ruby-soft: oklch(94% .025 25);--python: oklch(56% .13 255);--python-soft: oklch(94% .025 255);--warning: oklch(64% .13 75);--warning-soft: oklch(96% .025 75);--success: oklch(58% .11 155);--success-soft: oklch(95% .03 155);--syntax-keyword: oklch(48% .13 255);--syntax-title: oklch(44% .12 155);--syntax-string: oklch(43% .12 135);--syntax-number: oklch(48% .13 25);--syntax-comment: oklch(54% .018 250);--syntax-built-in: oklch(47% .12 285);--syntax-meta: oklch(48% .11 75);--syntax-punctuation: oklch(42% .018 250);--shadow-rail: 0 1px 2px color-mix(in oklch, var(--text) 8%, transparent);--shadow-popover: 0 12px 32px color-mix(in oklch, var(--text) 14%, transparent);--radius-sm: 6px;--radius-md: 8px;--ease: cubic-bezier(.16, 1, .3, 1)}[data-theme=dark]{color-scheme:dark;--canvas: oklch(20% .01 250);--surface: oklch(24% .012 250);--panel: oklch(29% .013 250);--panel-strong: oklch(35% .014 250);--text: oklch(91% .008 250);--text-muted: oklch(72% .012 250);--border: oklch(42% .014 250);--focus: oklch(70% .11 255);--ruby: oklch(69% .13 25);--ruby-soft: oklch(31% .04 25);--python: oklch(72% .11 255);--python-soft: oklch(31% .04 255);--warning: oklch(76% .11 75);--warning-soft: oklch(32% .045 75);--success: oklch(72% .1 155);--success-soft: oklch(32% .045 155);--syntax-keyword: oklch(78% .1 255);--syntax-title: oklch(76% .09 155);--syntax-string: oklch(78% .09 135);--syntax-number: oklch(79% .1 25);--syntax-comment: oklch(66% .014 250);--syntax-built-in: oklch(78% .095 285);--syntax-meta: oklch(80% .09 75);--syntax-punctuation: oklch(76% .012 250)}*{box-sizing:border-box}html{background:var(--canvas);color:var(--text);scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--canvas);color:var(--text)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app{min-height:100vh;background:var(--canvas);color:var(--text)}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:24px;align-items:center;padding:16px 24px;border-bottom:1px solid var(--border);background:color-mix(in oklch,var(--surface) 94%,transparent);box-shadow:var(--shadow-rail)}.topbar__identity{min-width:0}.pair-marker,.section-kicker,.level-pill{display:inline-flex;align-items:center;width:fit-content;min-height:24px;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);background:var(--surface);font-size:.8125rem;font-weight:650;line-height:1.2}.pair-marker{color:var(--focus)}.topbar h1{margin:8px 0 4px;font-size:2rem;font-weight:650;line-height:1.15;letter-spacing:0}.topbar p{max-width:72ch;margin:0;color:var(--text-muted);font-size:.9375rem;line-height:1.5}.topbar__controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.searchbox{display:grid;grid-template-columns:auto minmax(170px,280px);align-items:center;gap:8px;min-height:38px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted)}.searchbox input{min-width:0;border:0;outline:0;background:transparent;color:var(--text);font-size:.9375rem}.segmented{display:inline-grid;grid-auto-flow:column;gap:2px;min-height:38px;padding:3px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel)}.segmented button,.ghost-button,.icon-button,.chip{border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text);transition:background-color .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease)}.segmented button{min-width:58px;min-height:30px;padding:5px 8px;font-size:.8125rem;font-weight:650}.segmented button[data-active=true]{background:var(--surface);border-color:var(--border)}.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:7px 10px;border-color:var(--border);background:var(--surface);font-size:.8125rem;font-weight:650}.ghost-button:hover,.icon-button:hover,.chip:hover{border-color:var(--focus);background:var(--panel)}.ghost-button.compact{min-height:28px;padding:4px 7px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-color:var(--border);background:var(--surface)}.icon-button[aria-pressed=true]{color:var(--success);background:var(--success-soft)}.layout{display:grid;grid-template-columns:260px minmax(0,1fr) 300px;gap:20px;align-items:start;max-width:1680px;margin:0 auto;padding:20px 24px 48px}.left-rail,.right-rail{position:sticky;top:114px;display:grid;gap:14px;max-height:calc(100vh - 130px);overflow:auto}.rail-section,.intro-band,.decision-matrix,.lane-section,.comparison-cell{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.rail-section{padding:14px}.rail-heading{display:flex;align-items:center;gap:7px;margin-bottom:10px;color:var(--text-muted)}.rail-heading h2,.progress-summary h2,.decision-note h2{margin:0;color:var(--text);font-size:.8125rem;font-weight:650;line-height:1.3}.learning-path{display:grid;gap:9px;padding:0;margin:0;list-style:none;counter-reset:path}.learning-path li{display:grid;grid-template-columns:auto 1fr;column-gap:8px;row-gap:2px;align-items:start;color:var(--text);font-size:.875rem;line-height:1.35}.learning-path li:before{counter-increment:path;content:counter(path);display:inline-grid;place-items:center;width:22px;height:22px;border-radius:var(--radius-sm);background:var(--panel);color:var(--text-muted);font-size:.75rem;font-weight:650}.learning-path small{grid-column:2;color:var(--text-muted)}.lane-list,.tool-list{display:grid;gap:7px}.lane-button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;min-height:34px;padding:7px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);text-align:left}.lane-button[data-active=true]{border-color:var(--focus);background:color-mix(in oklch,var(--focus) 12%,var(--surface))}.lane-button span,.tool-link span,.equivalent-row span{min-width:0;overflow-wrap:anywhere}.lane-button small{color:var(--text-muted);font-size:.75rem}.progress-bar{height:8px;overflow:hidden;border-radius:999px;background:var(--panel)}.progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--success)}.progress-summary p,.decision-note p{margin:9px 0 0;color:var(--text-muted);font-size:.8125rem;line-height:1.45}.main-flow{display:grid;gap:18px;min-width:0}.intro-band,.decision-matrix,.lane-section{padding:20px}.intro-band h2,.decision-matrix h2,.lane-section h2,.comparison-flow h2{margin:6px 0 0;font-size:1.5rem;font-weight:650;line-height:1.2;letter-spacing:0}.section-heading,.lane-section__heading{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading small,.lane-section__heading small{color:var(--text-muted);font-size:.8125rem;font-weight:650;white-space:nowrap}.lane-section__heading p{max-width:70ch;margin:6px 0 0;color:var(--text-muted);line-height:1.5}.decision-matrix .section-heading p{max-width:72ch;margin:6px 0 0;color:var(--text-muted);line-height:1.45}.decision-matrix__rows{display:grid;border-top:1px solid var(--border)}.decision-row{display:grid;grid-template-columns:minmax(126px,.42fr) minmax(0,.9fr) minmax(0,.9fr) minmax(170px,.62fr);gap:10px 14px;align-items:start;padding:9px 0;border-bottom:1px solid var(--border)}.decision-row:last-child{border-bottom:0;padding-bottom:0}.decision-row__choice{display:grid;align-content:start;gap:6px}.decision-row__choice span{width:fit-content;min-height:23px;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);color:var(--text-muted);font-size:.75rem;font-weight:650;line-height:1.2;text-transform:capitalize}.decision-row[data-tier=primary] .decision-row__choice span{border-color:color-mix(in oklch,var(--focus) 35%,var(--border));background:color-mix(in oklch,var(--focus) 10%,var(--surface));color:var(--focus)}.decision-row[data-tier=secondary] .decision-row__choice span{background:var(--surface)}.decision-row__choice h3{margin:0;font-size:.9375rem;font-weight:650;line-height:1.25}.decision-row__instinct,.decision-row__when{margin:0;color:var(--text-muted);font-size:.8125rem;line-height:1.35}.decision-row__instinct strong,.decision-row__when strong{display:block;margin-bottom:3px;color:var(--text);font-size:.75rem;font-weight:650}.decision-row__instinct span,.decision-row__when span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.decision-row__links{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.decision-row__links span{color:var(--text-muted);font-size:.75rem;font-weight:650}.decision-row__links a{display:inline-flex;max-width:100%;min-height:25px;align-items:center;gap:4px;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);font-size:.75rem;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.decision-row__links a:hover{border-color:var(--focus);color:var(--text)}.decision-row__more{padding-inline:2px}.index-band{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:10px;padding:9px 0;border-block:1px solid var(--border)}.index-band .section-heading{align-items:baseline;justify-content:start;gap:8px;margin:0;padding-inline:2px;white-space:nowrap}.index-band h2{margin:0;font-size:.875rem;font-weight:650;line-height:1.25;letter-spacing:0}.ecosystem-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.ecosystem-profile{display:grid;gap:12px;min-width:0;padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel)}.ecosystem-profile[data-role=source]{background:color-mix(in oklch,var(--ruby-soft) 45%,var(--surface))}.ecosystem-profile[data-role=target]{background:color-mix(in oklch,var(--python-soft) 45%,var(--surface))}.ecosystem-profile header span{color:var(--text-muted);font-size:.8125rem;font-weight:650}.ecosystem-profile h3{margin:4px 0 0;font-size:1rem;font-weight:650;line-height:1.35}.ecosystem-profile p{margin:0;color:var(--text-muted);line-height:1.5}.tool-pills,.tag-list,.doc-links,.category-grid{display:flex;flex-wrap:wrap;gap:7px}.tool-pills a,.tag-list span{display:inline-flex;min-height:25px;align-items:center;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);font-size:.75rem;font-weight:650}.equivalent-list{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;padding:0 2px 4px;scrollbar-width:thin}.equivalent-row{display:inline-flex;flex:0 0 auto;max-width:320px;min-height:32px;align-items:center;gap:7px;padding:6px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:.8125rem;line-height:1.2}.equivalent-row:hover{border-color:var(--focus);background:var(--panel)}.equivalent-row__source{min-width:0;color:var(--ruby);font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equivalent-row__target{min-width:0;color:var(--python);font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equivalent-row__arrow{color:var(--text-muted)}.comparison-flow,.cell-stack{display:grid;gap:14px}.comparison-cell{scroll-margin-top:132px;padding:16px}.cell-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.cell-header h3{margin:8px 0 4px;font-size:1rem;font-weight:650;line-height:1.35}.cell-header p{max-width:70ch;margin:0;color:var(--text-muted);line-height:1.5}.cell-actions{display:flex;gap:7px}.instinct-grid,.code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.code-grid[data-visibility=ruby],.code-grid[data-visibility=python]{grid-template-columns:minmax(0,1fr)}.instinct-block,.code-panel,.learning-notes section{min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel)}.instinct-block{padding:12px}.instinct-block.source{background:color-mix(in oklch,var(--ruby-soft) 55%,var(--surface))}.instinct-block.target{background:color-mix(in oklch,var(--python-soft) 55%,var(--surface))}.instinct-block h4,.learning-notes h4{margin:0 0 6px;font-size:.8125rem;font-weight:650;line-height:1.3}.instinct-block p,.learning-notes p{margin:0;color:var(--text-muted);font-size:.9375rem;line-height:1.55}.code-panel{background:var(--panel);overflow:hidden}.code-panel[data-language=ruby] header{color:var(--ruby)}.code-panel[data-language=python] header{color:var(--python)}.code-panel header{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:.8125rem;font-weight:650}.code-panel pre{min-height:120px;max-height:360px;overflow:auto;margin:0;padding:12px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.8125rem;line-height:1.55;tab-size:2;white-space:pre}.code-panel code{color:var(--text)}.code-panel .hljs-keyword,.code-panel .hljs-selector-tag,.code-panel .hljs-subst{color:var(--syntax-keyword);font-weight:650}.code-panel .hljs-title,.code-panel .hljs-title.function_,.code-panel .hljs-title.class_,.code-panel .hljs-attr,.code-panel .hljs-attribute{color:var(--syntax-title)}.code-panel .hljs-string,.code-panel .hljs-regexp,.code-panel .hljs-symbol,.code-panel .hljs-bullet{color:var(--syntax-string)}.code-panel .hljs-number,.code-panel .hljs-literal{color:var(--syntax-number)}.code-panel .hljs-comment,.code-panel .hljs-quote{color:var(--syntax-comment);font-style:italic}.code-panel .hljs-built_in,.code-panel .hljs-type,.code-panel .hljs-variable,.code-panel .hljs-params{color:var(--syntax-built-in)}.code-panel .hljs-meta,.code-panel .hljs-doctag,.code-panel .hljs-section{color:var(--syntax-meta)}.code-panel .hljs-punctuation,.code-panel .hljs-operator{color:var(--syntax-punctuation)}.learning-notes{display:grid;gap:10px;margin-top:12px}.learning-notes section{padding:12px}.learning-notes .warning-note{border-color:color-mix(in oklch,var(--warning) 45%,var(--border));background:var(--warning-soft)}.learning-notes .failure-note{border-style:dashed}.cell-footer{display:grid;gap:10px;margin-top:12px}.doc-links a{display:inline-flex;align-items:center;gap:5px;min-height:27px;padding:4px 7px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--focus);background:var(--surface);font-size:.75rem;font-weight:650}.chip{min-height:30px;padding:5px 8px;border-color:var(--border);background:var(--surface);font-size:.75rem;font-weight:650}.chip[data-active=true]{background:var(--panel-strong);border-color:var(--focus)}.tool-link{display:grid;gap:4px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.tool-link:hover{border-color:var(--focus)}.tool-link span{display:flex;align-items:center;gap:5px;font-size:.875rem;font-weight:650}.tool-link small,.tool-link em{color:var(--text-muted);font-size:.75rem;font-style:normal}@media(max-width:1260px){.layout{grid-template-columns:230px minmax(0,1fr)}.right-rail{position:static;grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr));max-height:none;overflow:visible}}@media(max-width:920px){.topbar{position:static;grid-template-columns:1fr}.topbar__controls{justify-content:start;flex-wrap:wrap}.searchbox{grid-template-columns:auto minmax(0,1fr);width:100%}.layout{grid-template-columns:1fr;padding:16px 14px 36px}.left-rail,.right-rail{position:static;grid-template-columns:1fr;max-height:none;overflow:visible}.lane-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ecosystem-grid,.instinct-grid,.code-grid,.right-rail{grid-template-columns:1fr}.decision-row{grid-template-columns:minmax(108px,.55fr) minmax(0,1fr);gap:8px 12px}.decision-row__when{grid-column:2}.decision-row__links{grid-column:1 / -1}}@media(max-width:560px){.topbar{padding:14px}.topbar h1{font-size:1.5rem}.segmented{width:100%}.segmented button{min-width:0}.lane-list{grid-template-columns:1fr}.intro-band,.decision-matrix,.lane-section,.comparison-cell{padding:14px}.decision-row{grid-template-columns:minmax(96px,.55fr) minmax(0,1fr);gap:7px 10px;padding-block:8px}.decision-row__choice{gap:5px}.decision-row__choice h3{font-size:.875rem}.decision-row__instinct span,.decision-row__when span{-webkit-line-clamp:1}.index-band{padding-block:9px}.section-heading,.lane-section__heading,.cell-header{grid-template-columns:1fr;display:grid}.index-band .section-heading{display:flex}.cell-actions{justify-content:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
