:root{--ruka-bg: #0b1220;--ruka-bg-elevated: #111827;--ruka-surface: #0f172a;--ruka-fg: #e5e7eb;--ruka-muted: #9ca3af;--ruka-border: #23324a;--ruka-link: #22d3ee;--ruka-link-visited: #f59e0b;--ruka-code-bg: #0b1220}:root{--bg: var(--ruka-bg, #0b1220);--bg-elevated: var(--ruka-bg-elevated, #111827);--surface: var(--ruka-surface, #0f172a);--fg: var(--ruka-fg, #e5e7eb);--muted: var(--ruka-muted, #9ca3af);--border: var(--ruka-border, #23324a);--accent: var(--ruka-link, #22d3ee);--code-bg: var(--ruka-code-bg, #0b1220);--accent-soft: #67e8f9;--warn: #f87171;--shadow: 0 18px 44px rgba(3, 7, 18, .42);color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 12% 16%,rgba(34,211,238,.12),transparent 34%),radial-gradient(circle at 84% 4%,rgba(59,130,246,.11),transparent 30%),linear-gradient(176deg,var(--bg),#101a2f 46%,var(--bg));color:var(--fg);font-family:Iosevka,Fira Code,monospace}.shell{width:100%;margin:0;padding:.35rem .6rem 1rem;display:grid;gap:.85rem}.masthead{border:1px solid rgba(75,97,136,.42);border-radius:14px;background:linear-gradient(140deg,#121c34f5,#0c1627f2);box-shadow:var(--shadow);padding:.8rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;animation:rise .3s ease-out}.masthead-copy{min-width:0}.actions-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}.masthead h1{font-family:inherit;margin:0;font-size:clamp(1.2rem,1rem + .7vw,1.6rem);letter-spacing:.03em}.masthead p{margin:.2rem 0 0;color:var(--muted);font-size:.84rem}.compile{border:1px solid transparent;background:linear-gradient(130deg,#0891b2,var(--accent));color:#041117;border-radius:10px;font-weight:700;font-family:inherit;padding:.7rem 1rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.secondary{border:1px solid var(--border);background:#101c33;color:var(--fg);border-radius:10px;font-weight:700;font-family:inherit;padding:.7rem .9rem;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease}.secondary:hover{transform:translateY(-1px);border-color:var(--accent-soft);background:#132743}.example-select{min-width:15rem}.compile:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px #22d3ee42}.compile:disabled{opacity:.6;cursor:wait}.workspace{display:grid;gap:.9rem;animation:rise .36s ease-out}.editor-workspace{min-height:calc(100vh - 150px);display:grid;gap:.85rem}.editor-main{min-width:0;display:grid;gap:.5rem}.editor-side{min-width:0;display:grid;gap:.6rem;align-content:start}.editor-label{margin:0;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.editor-surface{border:1px solid rgba(82,104,144,.38);border-radius:12px;background:linear-gradient(180deg,#0a1221fa,#080e1bfa);position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff08}.source-editor,.cm-editor,.cm-scroller{min-height:210px}.cm-editor{color:var(--fg);font:inherit;background:transparent}.cm-gutters{border-right:0!important;background:linear-gradient(180deg,#0f1a2f,#0b1424);color:var(--muted)}.cm-gutter{background:transparent}.cm-lineNumbers .cm-gutterElement{padding:0 .5rem 0 .75rem;color:#5f6673;min-width:2.35rem}.cm-activeLineGutter{color:var(--accent-soft)!important;background:#22d3ee14}.cm-editor.cm-focused{outline:none;box-shadow:inset 0 0 0 2px #22d3ee52}.cm-scroller{overflow:auto}.cm-content,.cm-line{font-family:inherit;line-height:1.45}.cm-content{padding:.8rem;caret-color:transparent}.cm-selectionBackground{background:#22d3ee42!important}.cm-cursor,.cm-dropCursor{border-left:2px solid var(--accent-soft)!important}.diag-line-error{background:#f8717129;box-shadow:inset 2px 0 #f87171b8}.diag-line-warning{background:#fbbf2426;box-shadow:inset 2px 0 #fbbf24b8}.diag-line-info{background:#38bdf824;box-shadow:inset 2px 0 #38bdf8b8}.tok-keyword{color:#67e8f9;font-weight:700}.tok-boolean,.tok-number{color:#f59e0b}.tok-string{color:#bbf7d0}.tok-comment{color:#7f8ea3;font-style:italic}.tok-ident{color:#b6c2d1}.tok-var-name{color:#4ade80}.tok-fn-name{color:#38bdf8;font-weight:600}.tok-type-name{color:#c4b5fd}.tok-operator{color:#93c5fd}.tok-delimiter{color:var(--muted)}.tok-error{color:#fff;background:var(--warn)}.diag{border-bottom:2px wavy rgba(248,113,113,.88)}.diag-mark-error{border-bottom-color:#f87171eb}.diag-mark-warning{border-bottom-color:#fbbf24e6}.diag-mark-info{border-bottom-color:#38bdf8e6}.ident-mark{border-radius:3px}.ident-mark-active{background:#22c55e47;box-shadow:inset 0 0 0 1px #22c55ea6}.ident-mark-peer{background:#3b82f62e;box-shadow:inset 0 0 0 1px #3b82f673}.diag-syntax{background:#f8717133}.diag-check,.diag-meta,.diag-mir_lower,.diag-codegen,.diag-runtime{border-bottom-color:#fbbf24e0}.status{margin:0;font-size:.78rem;color:var(--muted);border:1px solid rgba(120,138,167,.35);border-radius:999px;padding:.42rem .7rem;background:#07101fd1;min-width:5.5rem;text-align:center}.status[data-kind=busy]{color:var(--accent-soft);border-color:#22d3ee73}.status[data-kind=error]{color:var(--warn);border-color:#f8717173}.diagnostics{border:1px solid rgba(148,163,184,.35);background:#0f172a;border-radius:12px;padding:.6rem;color:#e5e7eb;display:grid;gap:.4rem}.diagnostics[hidden]{display:none}.identifier-info{border:1px solid rgba(59,130,246,.34);background:#081830d1;border-radius:10px;padding:.55rem .62rem;color:#dbeafe;display:grid;gap:.2rem}.identifier-info[hidden]{display:none}.identifier-info-title,.identifier-info-body{margin:0;font-size:.78rem;line-height:1.4}.identifier-info-body{color:#93c5fd}.diag-item{font-size:.86rem;border:1px solid var(--diag-border, rgba(248, 113, 113, .36));background:var(--diag-bg, rgba(248, 113, 113, .12));border-left:4px solid var(--diag-accent, #f87171);border-radius:8px;padding:.45rem .55rem;display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.diag-badge{border:1px solid var(--diag-border, rgba(248, 113, 113, .36));border-radius:999px;padding:.08rem .42rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;line-height:1.45}.diag-badge-phase{color:var(--diag-accent, #f87171);background:#02061773}.diag-badge-severity{color:#0b1220;border-color:transparent;background:var(--diag-accent, #f87171)}.diag-severity-error{--diag-accent: #f87171;--diag-border: rgba(248, 113, 113, .4);--diag-bg: rgba(248, 113, 113, .12)}.diag-severity-warning{--diag-accent: #fbbf24;--diag-border: rgba(251, 191, 36, .4);--diag-bg: rgba(251, 191, 36, .1)}.diag-severity-info{--diag-accent: #38bdf8;--diag-border: rgba(56, 189, 248, .4);--diag-bg: rgba(56, 189, 248, .1)}.diag-phase-syntax .diag-badge-phase{color:#fecaca}.diag-phase-check .diag-badge-phase{color:#fde68a}.diag-phase-meta .diag-badge-phase{color:#bfdbfe}.diag-phase-mir_lower .diag-badge-phase,.diag-phase-codegen .diag-badge-phase{color:#ddd6fe}.diag-phase-runtime .diag-badge-phase{color:#a5f3fc}.diag-inline-hint{margin-left:.6rem;border:1px solid var(--diag-inline-border, rgba(248, 113, 113, .45));border-radius:999px;padding:.06rem .45rem;font-size:.72rem;line-height:1.4;color:var(--diag-inline-fg, #fecaca);background:var(--diag-inline-bg, rgba(248, 113, 113, .16));vertical-align:middle}.diag-inline-error{--diag-inline-border: rgba(248, 113, 113, .55);--diag-inline-fg: #fecaca;--diag-inline-bg: rgba(248, 113, 113, .2)}.diag-inline-warning{--diag-inline-border: rgba(251, 191, 36, .55);--diag-inline-fg: #fde68a;--diag-inline-bg: rgba(251, 191, 36, .18)}.diag-inline-info{--diag-inline-border: rgba(56, 189, 248, .55);--diag-inline-fg: #bae6fd;--diag-inline-bg: rgba(56, 189, 248, .18)}.cm-tooltip.diag-tooltip,.diag-tooltip{border:1px solid rgba(148,163,184,.45);border-radius:8px;padding:.45rem .5rem;background:#0b1220;color:#e5e7eb;box-shadow:0 12px 28px #02061773;max-width:min(48ch,70vw)}.cm-editor .cm-tooltip{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}.cm-editor .cm-tooltip:before,.cm-editor .cm-tooltip:after{display:none!important}.diag-tooltip-phase{display:inline-block;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.25rem}.diag-tooltip-message{margin:0;font-size:.78rem;line-height:1.4}.diag-tooltip-error .diag-tooltip-phase{color:#fca5a5}.diag-tooltip-warning .diag-tooltip-phase{color:#fcd34d}.diag-tooltip-info .diag-tooltip-phase{color:#7dd3fc}.cm-tooltip.ident-tooltip,.ident-tooltip{border-color:#94a3b89e;background:#08101ef5;border-radius:10px;padding:.28rem .4rem;box-shadow:0 8px 18px #02061752;max-width:min(36ch,56vw)}.ident-tooltip-line{font-family:Fira Code,JetBrains Mono,ui-monospace,monospace;font-size:.75rem;line-height:1.3}.diag-loc{border:0;padding:0;margin:0;background:none;color:var(--accent-soft);text-decoration:underline;text-underline-offset:.14em;font:inherit;cursor:pointer}.diag-loc:hover,.diag-loc:focus-visible{color:#a5f3fc}.syntax-help{border:1px solid rgba(75,97,136,.3);border-radius:12px;background:#0d1628b8;overflow:hidden}.syntax-help-summary{list-style:none;cursor:pointer;padding:.65rem .75rem;display:flex;align-items:center;justify-content:flex-start;gap:.8rem}.syntax-help-summary::-webkit-details-marker{display:none}.syntax-help-summary:after{content:"+";color:var(--muted);font-size:.9rem;margin-left:.25rem}.syntax-help[open] .syntax-help-summary:after{content:"-"}.syntax-help-body{border-top:1px solid var(--border);padding:.65rem .75rem .75rem;display:grid;gap:.45rem}.syntax-help-label{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.syntax-help-chip{border:1px solid rgba(103,232,249,.4);border-radius:999px;padding:.1rem .55rem;font-size:.72rem;color:var(--accent-soft);background:#22d3ee1a;text-transform:lowercase}.syntax-help-summary .syntax-help-chip{margin-left:auto}.syntax-help-title,.syntax-help-hint,.syntax-help-subconstructs,.syntax-help-error,.syntax-help-links{margin:0;font-size:.86rem}.syntax-help-title{color:var(--fg);font-weight:700}.syntax-help-hint{color:var(--muted)}.syntax-help-subconstructs{margin:0;padding-left:1rem;color:#b6c2d1;display:grid;gap:.2rem}.syntax-help-subconstructs[hidden]{display:none}.syntax-help-subconstructs li{line-height:1.35}.syntax-help-snippet{margin:0;border:1px solid var(--border);border-radius:8px;padding:.55rem .65rem;background:var(--code-bg);color:var(--fg);line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.syntax-help-snippet[hidden]{display:none}.syntax-help-error{color:#fca5a5}.syntax-help-error[hidden]{display:none}.syntax-help-links{display:flex;flex-wrap:wrap;gap:.4rem;color:var(--muted)}.syntax-help-links a{color:var(--accent)}@media(min-width:1120px)and (min-aspect-ratio:5/4){.editor-workspace{grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:.85rem;align-items:start}.syntax-help{align-self:start}}.output-workspace{min-height:calc(100vh - 150px);display:grid;grid-template-rows:auto minmax(0,1fr);gap:.55rem;animation:rise .42s ease-out}.tablist{display:flex;flex-wrap:wrap;gap:.4rem;padding:.2rem 0}.tab{border:1px solid rgba(85,107,147,.28);background:#0f1a2f80;color:var(--muted);border-radius:999px;font:inherit;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;padding:.45rem .6rem;cursor:pointer;transition:border-color .12s ease,color .12s ease,background .12s ease}.tab-group-start{margin-left:.65rem;position:relative}.tab-group-start:before{content:"";position:absolute;left:-.52rem;top:.35rem;bottom:.35rem;width:1px;background:#788aa757}.tab:hover{border-color:var(--accent-soft);color:var(--fg)}.tab.is-active{background:#22d3ee29;border-color:var(--accent-soft);color:var(--fg)}.tab-panel{min-height:0}.tab-panel[hidden]{display:none}.diagram{min-height:260px;max-height:520px;overflow:auto;padding:.5rem}.diagram-toolbar{display:flex;flex-wrap:wrap;gap:.45rem;padding:.75rem .75rem 0}.diagram-tool{padding:.45rem .7rem;font-size:.8rem}.ast-browser,.ir-browser{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.9fr);min-height:calc(100vh - 190px)}.ast-browser-main{min-width:0;border:1px solid rgba(75,97,136,.28);border-radius:12px;background:radial-gradient(circle at 14% 12%,rgba(34,211,238,.08),transparent 34%),linear-gradient(180deg,#0a1324f5,#070f1dfa)}.ir-browser-main{min-width:0;border:1px solid rgba(75,97,136,.28);border-radius:12px;background:radial-gradient(circle at 14% 12%,rgba(59,130,246,.08),transparent 34%),linear-gradient(180deg,#0a1324f5,#070f1dfa)}.ast-graph-canvas,.ir-graph-canvas{height:calc(100vh - 240px)}.ast-inspector,.ir-inspector{border:1px solid rgba(75,97,136,.28);border-radius:12px;padding:1rem;display:grid;align-content:start;gap:.75rem;background:linear-gradient(180deg,#0e172af5,#0a111efa)}.ast-inspector-title,.ast-inspector-summary,.ast-inspector-hint,.ast-inspector-links,.ir-inspector-title,.ir-inspector-summary,.ir-inspector-hint{margin:0}.ast-inspector-title,.ir-inspector-title{font-size:1rem;font-weight:700;color:var(--fg)}.ast-inspector-summary,.ir-inspector-summary{color:var(--fg)}.ast-inspector-hint,.ir-inspector-hint{color:var(--muted);font-size:.88rem;line-height:1.5}.ast-inspector-details,.ir-inspector-details{margin:0;padding-left:1.1rem;color:#d6e2f2;display:grid;gap:.4rem}.ast-inspector-links{display:flex;flex-wrap:wrap;gap:.75rem}.ast-inspector-links a{color:var(--accent)}.diagram svg{min-width:100%}@media(max-width:980px){.ast-browser,.ir-browser{grid-template-columns:minmax(0,1fr)}.ast-browser-main,.ir-browser-main{border-bottom-right-radius:12px;border-bottom-left-radius:12px}.ast-graph-canvas,.ir-graph-canvas{height:420px}.tab-group-start{margin-left:0}.tab-group-start:before{display:none}}.rust{margin:0;min-height:calc(100vh - 190px);max-height:calc(100vh - 190px);overflow:auto;padding:.9rem;line-height:1.45;border:1px solid rgba(75,97,136,.28);border-radius:12px;background:linear-gradient(180deg,#0a1221fa,#080e1bfa);color:var(--fg)}.rust.hljs .hljs-keyword,.rust.hljs .hljs-meta .hljs-keyword{color:#67e8f9;font-weight:700}.rust.hljs .hljs-title.function_,.rust.hljs .hljs-title.function{color:#38bdf8;font-weight:600}.rust.hljs .hljs-type,.rust.hljs .hljs-built_in{color:#c4b5fd}.rust.hljs .hljs-string,.rust.hljs .hljs-char.escape_,.rust.hljs .hljs-symbol{color:#bbf7d0}.rust.hljs .hljs-number,.rust.hljs .hljs-literal{color:#f59e0b}.rust.hljs .hljs-comment,.rust.hljs .hljs-quote{color:#7f8ea3;font-style:italic}.rust.hljs .hljs-attr,.rust.hljs .hljs-attribute,.rust.hljs .hljs-meta{color:#93c5fd}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:980px){.masthead{flex-direction:column;align-items:flex-start}.shell{padding:.25rem .25rem .75rem}.actions-row{width:100%;justify-content:stretch}.compile,.secondary,.status{width:100%}.output-workspace{min-height:0}.rust{min-height:420px;max-height:none}.editor-workspace,.ast-browser,.ir-browser{min-height:0}}
