CoolFace
Datasetpublic

cy0307/awesome-loop-engineering

Awesome Loop Engineering Dataset A structured dataset of 1022 papers, official docs, tools, benchmarks, patterns, critiques, and implementation guides for recurring AI-agent systems. Resource Atlas · GitHub field guide · Resource selection · Report a correction   Dataset Summary Each row connects an original source to its contribution, novelty, impact, publication details, lifecycle stages, audience, evidence type, link status, and… See the full description on the dataset page: https://huggingface.co/datasets/cy0307/awesome-loop-engineering.

sourceHugging Facecc0-1.0updated 3d agoView on Hugging Face
3likes4.9kdownloads
index.html2569 linesDownload Raw Back to docs
1<!doctype html>2<html lang="en">3  <head>4    <meta charset="utf-8">5    <meta name="viewport" content="width=device-width, initial-scale=1">6    <title>Awesome Loop Engineering</title>7    <meta name="description" content="Explore 1022 resources from model recurrence to governed agent operations, then build with 22 patterns, 22 contracts, and 8 runtime starters.">8    <meta name="robots" content="index,follow">9    <meta name="author" content="Chaoyue He">10    <link rel="canonical" href="https://chaoyue0307.github.io/awesome-loop-engineering/">11    <link rel="icon" href="assets/favicon-32.png" type="image/png" sizes="32x32">12    <link rel="apple-touch-icon" href="assets/apple-touch-icon.png" sizes="180x180">13    <link rel="preconnect" href="https://fonts.googleapis.com">14    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>15    <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500;600&amp;family=Inter:wght@400;500;600;700;800&amp;display=swap" rel="stylesheet">16    <meta property="og:type" content="website">17    <meta property="og:title" content="Awesome Loop Engineering">18    <meta property="og:description" content="Explore 1022 papers, docs, tools, benchmarks, and guides, then build recurring agent systems with 22 patterns, 22 contracts, and 8 starters.">19    <meta property="og:url" content="https://chaoyue0307.github.io/awesome-loop-engineering/">20    <meta property="og:image" content="https://chaoyue0307.github.io/awesome-loop-engineering/assets/social-preview-1022-v10.png">21    <meta property="og:image:width" content="1280">22    <meta property="og:image:height" content="640">23    <meta property="og:image:alt" content="Awesome Loop Engineering: design loops, not just prompts.">24    <meta name="twitter:card" content="summary_large_image">25    <meta name="twitter:title" content="Awesome Loop Engineering">26    <meta name="twitter:description" content="1022 resources from model recurrence to agent operations, plus 22 patterns, 22 contracts, and 8 starters for building reliable loops.">27    <meta name="twitter:image" content="https://chaoyue0307.github.io/awesome-loop-engineering/assets/social-preview-1022-v10.png">28    <link rel="alternate" type="application/atom+xml" title="Awesome Loop Engineering releases" href="https://github.com/ChaoYue0307/awesome-loop-engineering/releases.atom">29    <link rel="alternate" type="application/atom+xml" title="Awesome Loop Engineering commits" href="https://github.com/ChaoYue0307/awesome-loop-engineering/commits/main.atom">30    <style>31      :root {32        color-scheme: light;33        --paper: #f7f9fc;34        --surface: #ffffff;35        --ink: #121722;36        --muted: #5c6678;37        --quiet: #7c8799;38        --line: #cfd7e5;39        --line-strong: #9eabc0;40        --blue: #155eef;41        --cyan: #08a9c4;42        --green: #0c9b68;43        --violet: #7055d9;44        --maxw: 1180px;45      }46      * { box-sizing: border-box; }47      html { scroll-behavior: smooth; scroll-padding-top: 84px; }48      body {49        margin: 0;50        background: var(--paper);51        color: var(--ink);52        font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;53        line-height: 1.62;54        -webkit-font-smoothing: antialiased;55      }56      a { color: var(--blue); text-decoration-thickness: 1px; text-underline-offset: 3px; }57      a:hover { color: #0f49bd; }58      button, input, select { font: inherit; }59      .wrap { width: min(var(--maxw), calc(100% - 48px)); margin: 0 auto; }60      .skip {61        position: absolute;62        left: -9999px;63        top: 0;64        z-index: 100;65        background: var(--ink);66        color: #fff;67        padding: 10px 16px;68      }69      .skip:focus { left: 0; }70      a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible {71        outline: 3px solid rgba(21, 94, 239, 0.32);72        outline-offset: 3px;73      }74      .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; }75      .icon {76        display: block;77        width: 1em;78        height: 1em;79        flex: 0 0 auto;80        color: currentColor;81        stroke-width: 2;82      }83 84      header.site {85        position: sticky;86        top: 0;87        z-index: 50;88        background: rgba(247, 249, 252, 0.94);89        border-bottom: 1px solid var(--line);90        -webkit-backdrop-filter: blur(14px);91        backdrop-filter: blur(14px);92      }93      .nav { display: flex; align-items: center; min-height: 66px; gap: 22px; }94      .brand {95        display: inline-flex;96        align-items: center;97        gap: 10px;98        color: var(--ink);99        font-weight: 800;100        text-decoration: none;101        white-space: nowrap;102      }103      .brand:hover { color: var(--ink); }104      .brand .logo { display: block; width: 32px; height: 32px; flex: 0 0 auto; object-fit: contain; }105      .links { display: flex; align-items: center; gap: 18px; margin-left: 8px; }106      .links a { position: relative; color: var(--muted); font-size: 0.84rem; font-weight: 600; text-decoration: none; }107      .links a:hover { color: var(--ink); }108      .links a[aria-current="location"] { color: var(--blue); }109      .links a[aria-current="location"]::after {110        position: absolute;111        right: 0;112        bottom: -8px;113        left: 0;114        height: 2px;115        background: var(--blue);116        content: "";117      }118      .spacer { flex: 1; }119      .project-links { display: flex; gap: 8px; }120      .nav-link, .button {121        display: inline-flex;122        align-items: center;123        justify-content: center;124        gap: 7px;125        min-height: 40px;126        border: 1px solid var(--line-strong);127        border-radius: 6px;128        padding: 8px 14px;129        color: var(--ink);130        background: var(--surface);131        font-size: 0.86rem;132        font-weight: 700;133        line-height: 1.2;134        text-decoration: none;135      }136      .nav-link .icon, .button .icon, .menu-btn .icon { width: 17px; height: 17px; }137      .nav-link:hover, .button:hover { border-color: var(--blue); color: var(--blue); text-decoration: none; }138      .nav-link.primary, .button.primary { background: var(--blue); border-color: var(--blue); color: #fff; }139      .nav-link.primary:hover, .button.primary:hover { background: #0f49bd; border-color: #0f49bd; color: #fff; }140      .menu-btn {141        display: none;142        align-items: center;143        gap: 7px;144        min-height: 40px;145        border: 1px solid var(--line-strong);146        border-radius: 6px;147        padding: 7px 12px;148        color: var(--ink);149        background: var(--surface);150        font-size: 0.82rem;151        font-weight: 700;152        cursor: pointer;153      }154      .menu-icon-close { display: none; }155      .menu-btn[aria-expanded="true"] .menu-icon-open { display: none; }156      .menu-btn[aria-expanded="true"] .menu-icon-close { display: block; }157      .mobile-nav-only, .definition-compact, .mobile-diagram { display: none; }158 159      main { overflow: hidden; }160      section { padding: 86px 0; border-top: 1px solid var(--line); }161      .hero { position: relative; isolation: isolate; min-height: 0; overflow: hidden; padding: 52px 0 16px; border-top: 0; text-align: center; }162      .hero .wrap { position: relative; z-index: 1; }163      .hero-copy { position: relative; z-index: 2; }164      .hero-system {165        width: min(100%, 1120px);166        margin: 28px auto 0;167        border-top: 1px solid var(--line-strong);168        border-bottom: 1px solid var(--line-strong);169        background: var(--surface);170      }171      .scene-head {172        display: flex;173        align-items: center;174        justify-content: space-between;175        gap: 20px;176        min-height: 42px;177        border-bottom: 1px solid var(--line);178        padding: 9px 2px;179        color: var(--quiet);180        font-family: "IBM Plex Mono", ui-monospace, monospace;181        font-size: 0.66rem;182        text-transform: uppercase;183      }184      .scene-head strong { color: var(--blue); }185      .scene-flow { text-align: right; }186      .scene-flow span { color: var(--ink); font-weight: 700; }187      .scene-flow i { padding: 0 6px; color: var(--blue); font-style: normal; }188      .hero-scene {189        position: relative;190        z-index: 0;191        min-width: 0;192        width: 100%;193        height: 330px;194        overflow: hidden;195        background: #f4f7fc;196        pointer-events: none;197      }198      .hero-scene canvas { display: block; width: 100%; height: 100%; opacity: 0.96; }199      .scene-fallback { display: none; align-items: center; justify-content: center; height: 100%; color: var(--muted); font-size: 0.82rem; }200      .hero-scene[data-scene-state="fallback"] canvas { display: none; }201      .hero-scene[data-scene-state="fallback"] .scene-fallback { display: flex; }202      .scene-key {203        display: flex;204        align-items: center;205        justify-content: center;206        gap: 26px;207        min-height: 34px;208        border-top: 1px solid var(--line);209        color: var(--muted);210        font-size: 0.68rem;211      }212      .scene-key-item { display: inline-flex; align-items: center; gap: 7px; }213      .scene-key-item::before {214        width: 16px;215        height: 5px;216        border-radius: 2px;217        background: var(--blue);218        content: "";219      }220      .scene-key-item.packet::before { background: var(--cyan); }221      .scene-key-item.agents::before { background: var(--blue); }222      .scene-key-item.evidence::before { background: var(--green); }223      .scene-key-item.state::before { background: var(--violet); }224      .scene-outcomes {225        display: flex;226        align-items: center;227        justify-content: center;228        gap: 26px;229        min-height: 34px;230        border-top: 1px solid var(--line);231        color: var(--muted);232        font-size: 0.7rem;233      }234      .scene-outcome { display: inline-flex; align-items: center; gap: 7px; }235      .scene-outcome::before { width: 7px; height: 7px; border-radius: 50%; background: var(--blue); content: ""; }236      .scene-outcome.retry::before { background: var(--violet); }237      .scene-outcome.escalate::before { background: #d97706; }238      .scene-outcome.exit::before { background: var(--green); }239      .hero-inspector {240        display: grid;241        grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.55fr);242        gap: 24px;243        align-items: center;244        min-width: 0;245        border-top: 1px solid var(--line);246        padding: 12px 0;247      }248      .mental-model { padding: 18px 0 52px; }249      .section-label {250        display: flex;251        align-items: center;252        gap: 8px;253        margin: 0 0 12px;254        color: var(--blue);255        font-family: "IBM Plex Mono", ui-monospace, monospace;256        font-size: 0.74rem;257        font-weight: 600;258        text-transform: uppercase;259      }260      .section-label .icon { width: 15px; height: 15px; margin-top: 1px; }261      h1, h2, h3, p { overflow-wrap: anywhere; }262      h1 { max-width: 900px; margin: 0 auto; font-size: 3.85rem; line-height: 1.04; font-weight: 800; }263      h2 { margin: 0; font-size: 2.45rem; line-height: 1.14; font-weight: 800; }264      h3 { margin: 0; font-size: 1.02rem; line-height: 1.35; }265      .hero-kicker { width: fit-content; max-width: 100%; justify-content: center; margin: 0 auto 14px; }266      .tagline { margin: 18px auto 0; color: var(--blue); font-size: 1.5rem; font-weight: 700; }267      .lead { max-width: 780px; margin: 14px auto 0; color: var(--muted); font-size: 1.08rem; }268      .actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 26px; }269      .loop-stage-rail {270        display: grid;271        grid-template-columns: repeat(6, minmax(0, 1fr));272        max-width: 880px;273        margin: 28px auto 0;274        border: 1px solid var(--line-strong);275        border-radius: 6px;276        background: rgba(247, 249, 252, 0.94);277        overflow: hidden;278      }279      .loop-stage {280        display: flex;281        align-items: center;282        justify-content: center;283        gap: 7px;284        min-width: 0;285        min-height: 46px;286        border: 0;287        padding: 8px 9px;288        color: var(--muted);289        background: transparent;290        font-size: 0.76rem;291        font-weight: 700;292        cursor: pointer;293      }294      .loop-stage + .loop-stage { border-left: 1px solid var(--line); }295      .loop-stage:hover { color: var(--ink); background: rgba(255, 255, 255, 0.72); }296      .loop-stage[aria-pressed="true"] { color: #fff; background: var(--blue); }297      .loop-stage-number { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 0.66rem; }298      .loop-stage-detail {299        min-height: 24px;300        max-width: 820px;301        margin: 10px auto 0;302        color: var(--muted);303        font-size: 0.82rem;304      }305      .loop-stage-detail strong { color: var(--ink); }306      .hero-system .loop-stage-rail {307        grid-template-columns: repeat(6, minmax(0, 1fr));308        width: 100%;309        max-width: none;310        margin: 0;311      }312      .hero-system .loop-stage:nth-child(n) { border-top: 0; }313      .hero-system .loop-stage:first-child { border-left: 0; }314      .hero-inspector .loop-stage-detail {315        min-height: 54px;316        max-width: none;317        margin: 0;318        border-left: 3px solid var(--blue);319        padding: 7px 0 0 14px;320        text-align: left;321      }322      .hero-visual { max-width: 780px; margin: 0 auto; }323      .hero-visual picture, .hero-visual img, .diagram img { display: block; width: 100%; height: auto; }324      .hero-visual picture, .diagram-scroll {325        width: 100%;326        overflow: hidden;327        border: 1px solid var(--line);328        border-radius: 6px;329        background: var(--surface);330      }331      .stats {332        display: grid;333        grid-template-columns: repeat(5, 1fr);334        max-width: 1000px;335        margin: 34px auto 0;336        border-top: 1px solid var(--line-strong);337        border-bottom: 1px solid var(--line-strong);338      }339      .stat { position: relative; padding: 17px 12px; text-align: left; }340      .stat + .stat { border-left: 1px solid var(--line); }341      .stat b { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 1.35rem; line-height: 1.2; }342      .stat b .icon { width: 18px; height: 18px; color: var(--blue); }343      .stat span { color: var(--quiet); font-size: 0.76rem; font-weight: 600; text-transform: uppercase; }344      .definition { max-width: 900px; margin: 0 auto 28px; color: var(--muted); font-size: 0.92rem; text-align: center; }345      .definition strong { color: var(--ink); }346 347      .mobile-stack { display: none; }348      .desktop-stack-scene {349        position: relative;350        width: 100%;351        height: 442px;352        border: 1px solid var(--line-strong);353        border-radius: 6px 6px 0 0;354        background: #f4f7fc;355        overflow: hidden;356      }357      .desktop-stack-scene canvas,358      .desktop-stack-scene .desktop-stack-visual {359        position: absolute;360        inset: 0;361        display: block;362        width: 100%;363        height: 100%;364      }365      .desktop-stack-scene canvas { opacity: 0.98; }366      .desktop-stack-scene .desktop-stack-visual { object-fit: cover; transition: opacity 180ms ease; }367      .desktop-stack-scene[data-scene-ready="true"] .desktop-stack-visual { opacity: 0; pointer-events: none; }368      .desktop-stack-scene[data-scene-state="fallback"] canvas { display: none; }369      .desktop-stack-key {370        display: grid;371        grid-template-columns: repeat(2, minmax(0, 1fr));372        border: 1px solid var(--line-strong);373        border-top: 0;374        border-radius: 0 0 6px 6px;375        background: var(--surface);376        color: var(--muted);377        font-size: 0.73rem;378        line-height: 1.45;379        text-align: left;380      }381      .desktop-stack-key span { min-width: 0; padding: 11px 14px; }382      .desktop-stack-key span + span { border-left: 1px solid var(--line); }383      .desktop-stack-key strong { color: var(--ink); }384 385      .section-head { display: grid; grid-template-columns: minmax(250px, 0.78fr) minmax(360px, 1.22fr); gap: 64px; align-items: end; margin-bottom: 36px; }386      .section-intro { max-width: 720px; margin: 0; color: var(--muted); }387      .audit-note { margin: -17px 0 28px; border-top: 1px solid var(--line); padding-top: 13px; color: var(--muted); font-size: 0.8rem; }388      .audit-note strong { color: var(--ink); }389      .loop-layer-map {390        display: grid;391        grid-template-columns: repeat(3, minmax(0, 1fr));392        margin: 0 0 28px;393        border-top: 1px solid var(--line-strong);394        border-bottom: 1px solid var(--line-strong);395      }396      .loop-layer-item { min-width: 0; padding: 18px 20px 18px 0; }397      .loop-layer-item + .loop-layer-item { border-left: 1px solid var(--line); padding-left: 20px; }398      .loop-layer-item span { display: block; color: var(--blue); font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 0.64rem; font-weight: 700; text-transform: uppercase; }399      .loop-layer-item strong { display: block; margin-top: 6px; color: var(--ink); font-size: 0.92rem; }400      .loop-layer-item p { margin: 6px 0 0; color: var(--muted); font-size: 0.78rem; line-height: 1.5; }401      .diagram { width: 100%; margin: 0; }402      .caption { margin: 13px 0 0; color: var(--quiet); font-size: 0.78rem; text-align: right; }403      .supporting-visual { margin: 0 0 34px; }404 405      .contract-need {406        display: grid;407        grid-template-columns: 210px minmax(0, 1fr);408        gap: 34px;409        margin-bottom: 30px;410        border-top: 1px solid var(--line-strong);411        border-bottom: 1px solid var(--line);412        padding: 22px 0;413      }414      .contract-need h3 { margin: 0; font-size: 0.96rem; }415      .contract-need p { max-width: 870px; margin: 0; color: var(--muted); font-size: 0.9rem; line-height: 1.6; }416      .contract-layers-head {417        display: grid;418        grid-template-columns: 210px minmax(0, 1fr);419        gap: 34px;420        align-items: baseline;421        margin-bottom: 12px;422      }423      .contract-layers-head h3 { margin: 0; font-size: 0.96rem; }424      .contract-layers-head p { margin: 0; color: var(--muted); font-size: 0.84rem; }425      .contract-layers {426        display: grid;427        grid-template-columns: repeat(4, minmax(0, 1fr));428        margin-bottom: 36px;429        border-top: 1px solid var(--line-strong);430        border-bottom: 1px solid var(--line-strong);431      }432      .contract-layer { min-width: 0; padding: 18px 20px 18px 0; }433      .contract-layer + .contract-layer { border-left: 1px solid var(--line); padding-left: 20px; }434      .contract-layer strong { display: block; color: var(--ink); font-size: 0.88rem; }435      .contract-layer span { display: block; margin-top: 6px; color: var(--muted); font-size: 0.78rem; line-height: 1.5; }436      .contract-layer.contract-policy strong { color: var(--blue); }437      .contract-phases {438        display: grid;439        grid-template-columns: repeat(3, minmax(0, 1fr));440        margin-top: 30px;441        border-top: 1px solid var(--line-strong);442        border-bottom: 1px solid var(--line-strong);443      }444      .contract-phase { min-width: 0; padding: 20px 22px 20px 0; }445      .contract-phase + .contract-phase { border-left: 1px solid var(--line); padding-left: 22px; }446      .contract-phase-label {447        display: block;448        margin-bottom: 8px;449        color: var(--blue);450        font-family: "IBM Plex Mono", ui-monospace, monospace;451        font-size: 0.65rem;452        font-weight: 650;453        text-transform: uppercase;454      }455      .contract-phase h3 { margin: 0; font-size: 0.94rem; }456      .contract-phase p { margin: 7px 0 0; color: var(--muted); font-size: 0.8rem; line-height: 1.5; }457      .contract-phase small { display: block; margin-top: 10px; color: var(--quiet); font-size: 0.7rem; line-height: 1.45; }458      .contract-example { margin-top: 38px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }459      .contract-example-head {460        display: grid;461        grid-template-columns: 210px minmax(0, 1fr);462        gap: 34px;463        padding: 22px 0;464        border-bottom: 1px solid var(--line);465      }466      .contract-example-head h3 { margin: 0; font-size: 1rem; }467      .contract-example-head p { max-width: 820px; margin: 0; color: var(--muted); font-size: 0.86rem; line-height: 1.55; }468      .contract-example-row {469        display: grid;470        grid-template-columns: 180px minmax(0, 1fr);471        gap: 34px;472        padding: 14px 0;473        border-bottom: 1px solid var(--line);474      }475      .contract-example-row strong { color: var(--ink); font-size: 0.8rem; }476      .contract-example-row p { margin: 0; color: var(--muted); font-size: 0.8rem; line-height: 1.5; }477      .contract-example-result {478        display: flex;479        align-items: center;480        justify-content: space-between;481        gap: 20px;482        padding: 16px 0;483      }484      .contract-example-result p { margin: 0; color: var(--ink); font-size: 0.82rem; font-weight: 700; line-height: 1.5; }485      .contract-example-result a { flex: 0 0 auto; font-size: 0.8rem; font-weight: 700; }486 487      .mobile-contract-summary, .mobile-lifecycle-summary { border-top: 1px solid var(--line-strong); }488      .mobile-contract-group { padding: 15px 0 0; }489      .mobile-contract-group + .mobile-contract-group { margin-top: 4px; }490      .mobile-contract-group > p {491        margin: 0 0 7px;492        color: var(--blue);493        font-family: "IBM Plex Mono", ui-monospace, monospace;494        font-size: 0.68rem;495        font-weight: 600;496        text-transform: uppercase;497      }498      .mobile-contract-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }499      .mobile-contract-part {500        display: grid;501        grid-template-columns: 24px minmax(0, 1fr);502        gap: 7px;503        align-items: baseline;504        min-width: 0;505        padding: 10px 8px 10px 0;506        border-top: 1px solid var(--line);507      }508      .mobile-contract-part:nth-child(even) { padding-left: 10px; border-left: 1px solid var(--line); }509      .mobile-contract-part span {510        color: var(--quiet);511        font-family: "IBM Plex Mono", ui-monospace, monospace;512        font-size: 0.65rem;513        font-weight: 600;514      }515      .mobile-contract-part strong { font-size: 0.86rem; line-height: 1.3; }516      .mobile-next-action {517        display: flex;518        align-items: baseline;519        justify-content: space-between;520        gap: 16px;521        margin: 15px 0 0;522        padding: 13px 0;523        border-top: 1px solid var(--blue);524        border-bottom: 1px solid var(--line-strong);525      }526      .mobile-next-action strong { color: var(--blue); font-size: 0.86rem; }527      .mobile-next-action span { color: var(--muted); font-size: 0.76rem; text-align: right; }528 529      .mobile-lifecycle-list {530        display: grid;531        grid-template-columns: repeat(2, minmax(0, 1fr));532        margin: 0;533        padding: 0;534        list-style: none;535      }536      .mobile-lifecycle-list li {537        display: grid;538        grid-template-columns: 24px minmax(0, 1fr);539        gap: 7px;540        min-width: 0;541        padding: 13px 8px 13px 0;542        border-bottom: 1px solid var(--line);543      }544      .mobile-lifecycle-list li:nth-child(even) { padding-left: 10px; border-left: 1px solid var(--line); }545      .mobile-lifecycle-list span {546        color: var(--blue);547        font-family: "IBM Plex Mono", ui-monospace, monospace;548        font-size: 0.65rem;549        font-weight: 600;550      }551      .mobile-lifecycle-list strong { display: block; font-size: 0.88rem; line-height: 1.25; }552      .mobile-lifecycle-list small { display: block; margin-top: 3px; color: var(--muted); font-size: 0.7rem; line-height: 1.4; }553      .mobile-lifecycle-outcomes {554        display: grid;555        grid-template-columns: repeat(3, minmax(0, 1fr));556        border-bottom: 1px solid var(--line-strong);557      }558      .mobile-lifecycle-outcomes div { min-width: 0; padding: 12px 8px 13px 0; }559      .mobile-lifecycle-outcomes div + div { padding-left: 9px; border-left: 1px solid var(--line); }560      .mobile-lifecycle-outcomes strong { display: block; color: var(--blue); font-size: 0.78rem; }561      .mobile-lifecycle-outcomes span { display: block; margin-top: 2px; color: var(--muted); font-size: 0.66rem; line-height: 1.35; }562 563      .principles, .link-grid, .pattern-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }564      .contribute-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }565      .principle, .card, .pattern {566        min-width: 0;567        border-top: 1px solid var(--line-strong);568        padding: 18px 22px 18px 0;569      }570      .principle + .principle, .card + .card, .pattern + .pattern { padding-left: 22px; }571      .principle p, .card p { margin: 7px 0 0; color: var(--muted); font-size: 0.9rem; }572      .principle h3, .card h3, footer h4 { display: flex; align-items: flex-start; gap: 8px; }573      .principle h3 .icon, .card h3 .icon, footer h4 .icon { width: 17px; height: 17px; margin-top: 2px; color: var(--blue); }574      .principles { margin-top: 34px; }575      .choice-why {576        display: grid;577        grid-template-columns: 220px minmax(0, 1fr);578        gap: 34px;579        margin-bottom: 0;580        border-top: 1px solid var(--line-strong);581        border-bottom: 1px solid var(--line);582        padding: 22px 0;583      }584      .choice-why h3 { margin: 0; font-size: 0.96rem; }585      .choice-why p { max-width: 850px; margin: 0; color: var(--muted); font-size: 0.9rem; line-height: 1.6; }586      .choice-fit {587        display: grid;588        grid-template-columns: repeat(2, minmax(0, 1fr));589        margin-bottom: 30px;590        border-bottom: 1px solid var(--line-strong);591      }592      .choice-fit-column { min-width: 0; padding: 22px 24px 22px 0; }593      .choice-fit-column + .choice-fit-column { border-left: 1px solid var(--line); padding-left: 24px; }594      .choice-fit-label { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--ink); font-size: 0.88rem; }595      .choice-fit-label .icon { width: 17px; height: 17px; color: var(--green); }596      .choice-fit-column:last-child .choice-fit-label .icon { color: var(--violet); }597      .choice-fit ul { margin: 12px 0 0; padding-left: 18px; }598      .choice-fit li { margin-top: 7px; color: var(--muted); font-size: 0.82rem; line-height: 1.5; }599      .choice-fit li::marker { color: var(--blue); }600      .choice-steps {601        display: grid;602        grid-template-columns: repeat(4, minmax(0, 1fr));603        border-top: 1px solid var(--line-strong);604        border-bottom: 1px solid var(--line-strong);605      }606      .choice-step { min-width: 0; padding: 20px 20px 20px 0; }607      .choice-step + .choice-step { border-left: 1px solid var(--line); padding-left: 20px; }608      .choice-step .number {609        display: block;610        margin-bottom: 8px;611        color: var(--blue);612        font-family: "IBM Plex Mono", ui-monospace, monospace;613        font-size: 0.67rem;614        font-weight: 700;615      }616      .choice-step strong { display: block; font-size: 0.9rem; }617      .choice-step p { margin: 6px 0 0; color: var(--muted); font-size: 0.78rem; line-height: 1.5; }618      .choice-sequence { margin: 16px 0 28px; color: var(--muted); font-size: 0.84rem; line-height: 1.55; }619      .choice-sequence strong { color: var(--ink); }620      .pattern-grid { gap: 0; border-top: 1px solid var(--line-strong); }621      .pattern {622        display: flex;623        min-height: 178px;624        flex-direction: column;625        color: var(--ink);626        text-decoration: none;627        transition: color 140ms ease, border-color 140ms ease;628      }629      .pattern-grid .pattern:nth-child(n) { border-top: 0; border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); padding: 20px 22px; }630      .pattern-grid .pattern:nth-child(3n+1) { border-left: 0; padding-left: 0; }631      .pattern-grid .pattern:nth-child(3n) { padding-right: 0; }632      .pattern:hover { color: var(--blue); border-color: var(--blue); text-decoration: none; }633      .pattern .category {634        display: block;635        margin-bottom: 8px;636        color: var(--blue);637        font-family: "IBM Plex Mono", ui-monospace, monospace;638        font-size: 0.62rem;639        font-weight: 650;640        text-transform: uppercase;641      }642      .pattern .sym { display: block; color: var(--quiet); font-size: 0.76rem; line-height: 1.4; }643      .pattern .name { display: block; margin-top: 6px; font-weight: 760; line-height: 1.35; }644      .pattern .outcome { display: block; margin-top: auto; padding-top: 14px; color: var(--muted); font-size: 0.74rem; line-height: 1.5; }645      .pattern .outcome strong { color: var(--ink); }646      .filter-row { display: flex; align-items: center; gap: 18px; margin: 0 0 16px; }647      .pattern-filter {648        width: min(100%, 460px);649        min-height: 44px;650        border: 1px solid var(--line-strong);651        border-radius: 6px;652        padding: 10px 13px;653        color: var(--ink);654        background: var(--surface);655      }656      .pattern-filter::placeholder { color: var(--quiet); }657      .filter-row > a { margin-left: auto; font-size: 0.8rem; font-weight: 700; }658      .filter-empty { margin: 0 0 18px; color: var(--muted); }659 660      .card { display: block; color: var(--ink); text-decoration: none; }661      a.card:hover { color: var(--blue); border-color: var(--blue); text-decoration: none; }662      .runtime-kind {663        display: block;664        margin-bottom: 8px;665        color: var(--blue);666        font-family: "IBM Plex Mono", ui-monospace, monospace;667        font-size: 0.64rem;668        font-weight: 650;669        line-height: 1.2;670        text-transform: uppercase;671      }672      .runtime-kind.executable { color: var(--green); }673      .future-grid {674        display: grid;675        grid-template-columns: repeat(3, minmax(0, 1fr));676        border-top: 1px solid var(--line-strong);677        border-bottom: 1px solid var(--line-strong);678      }679      .future-track {680        display: flex;681        min-width: 0;682        flex-direction: column;683        padding: 24px 24px 24px 0;684      }685      .future-track + .future-track { border-left: 1px solid var(--line); padding-left: 24px; }686      .future-track h3 { display: flex; align-items: center; gap: 9px; margin: 0; font-size: 1rem; }687      .future-track h3 .icon { width: 18px; height: 18px; color: var(--blue); }688      .future-track ul { margin: 16px 0 22px; padding-left: 19px; }689      .future-track li { margin-top: 9px; color: var(--muted); font-size: 0.86rem; line-height: 1.5; }690      .future-track li::marker { color: var(--blue); }691      .future-output { margin: auto 0 0; border-top: 1px solid var(--line); padding-top: 14px; color: var(--quiet); font-size: 0.76rem; line-height: 1.5; }692      .future-output strong { display: block; margin-bottom: 3px; color: var(--ink); }693      .future-steps {694        display: grid;695        grid-template-columns: repeat(4, minmax(0, 1fr));696        border-bottom: 1px solid var(--line-strong);697      }698      .future-step { min-width: 0; padding: 20px 20px 20px 0; }699      .future-step + .future-step { border-left: 1px solid var(--line); padding-left: 20px; }700      .future-step span {701        display: block;702        color: var(--blue);703        font-family: "IBM Plex Mono", ui-monospace, monospace;704        font-size: 0.63rem;705        font-weight: 700;706        text-transform: uppercase;707      }708      .future-step strong { display: block; margin-top: 6px; font-size: 0.88rem; }709      .future-step p { margin: 5px 0 0; color: var(--muted); font-size: 0.76rem; line-height: 1.5; }710      .future-shared {711        display: grid;712        grid-template-columns: 180px minmax(0, 1fr) auto;713        gap: 22px;714        align-items: center;715        border-bottom: 1px solid var(--line-strong);716        padding: 20px 0;717      }718      .future-shared strong { font-size: 0.92rem; }719      .future-shared p { margin: 0; color: var(--muted); font-size: 0.84rem; line-height: 1.55; }720      .star-history-chart {721        display: block;722        width: 100%;723        color: inherit;724        line-height: 0;725        text-decoration: none;726      }727      .star-history-chart img { display: block; width: 100%; height: auto; }728      .growth-note {729        display: flex;730        align-items: center;731        justify-content: space-between;732        gap: 24px;733        border-bottom: 1px solid var(--line-strong);734        padding: 20px 0;735      }736      .growth-note p { max-width: 760px; margin: 0; color: var(--muted); font-size: 0.88rem; }737      .growth-note .button { flex: 0 0 auto; }738      code {739        border: 1px solid var(--line);740        border-radius: 4px;741        padding: 1px 5px;742        background: #eef2f8;743        color: var(--ink);744        font-family: "IBM Plex Mono", ui-monospace, monospace;745        font-size: 0.84em;746      }747      .maturity-guide {748        display: grid;749        grid-template-columns: 180px minmax(0, 1fr);750        gap: 30px;751        align-items: start;752        margin: 0 0 30px;753        border-top: 1px solid var(--line-strong);754        border-bottom: 1px solid var(--line);755        padding: 20px 0;756      }757      .maturity-guide h3 { margin: 0; font-size: 0.96rem; line-height: 1.35; }758      .maturity-guide p { margin: 0; color: var(--muted); font-size: 0.88rem; line-height: 1.62; }759      .maturity-guide p + p { margin-top: 8px; }760      .maturity-guide strong { color: var(--ink); }761      .levels { border-top: 1px solid var(--line-strong); }762      .level {763        display: grid;764        grid-template-columns: 64px minmax(190px, 0.72fr) minmax(0, 2.2fr);765        gap: 24px;766        align-items: start;767        padding: 25px 0;768        border-bottom: 1px solid var(--line);769      }770      .level .number { padding-top: 2px; color: var(--blue); font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 0.76rem; font-weight: 700; }771      .level-intro h3 { margin: 0; font-size: 1rem; line-height: 1.35; }772      .level-intro p { margin: 6px 0 0; color: var(--muted); font-size: 0.82rem; line-height: 1.5; }773      .level-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 0; }774      .level-facts > div { min-width: 0; }775      .level-facts dt { color: var(--quiet); font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 0.62rem; font-weight: 650; letter-spacing: 0; text-transform: uppercase; }776      .level-facts dd { margin: 6px 0 0; color: var(--muted); font-size: 0.8rem; line-height: 1.52; }777 778      .resource-explorer { border-top: 1px solid var(--line-strong); }779      .resource-toolbar {780        display: grid;781        grid-template-columns: minmax(240px, 1.4fr) repeat(4, minmax(132px, 0.66fr)) auto;782        gap: 10px;783        padding: 16px 0;784        border-bottom: 1px solid var(--line);785      }786      .resource-input, .resource-select {787        width: 100%;788        min-height: 44px;789        border: 1px solid var(--line-strong);790        border-radius: 6px;791        padding: 9px 12px;792        color: var(--ink);793        background: var(--surface);794      }795      .resource-input::placeholder { color: var(--quiet); }796      .resource-reset, .resource-more {797        align-items: center;798        justify-content: center;799        gap: 7px;800        min-height: 44px;801        border: 1px solid var(--line-strong);802        border-radius: 6px;803        padding: 9px 13px;804        color: var(--ink);805        background: var(--surface);806        font-weight: 700;807        cursor: pointer;808      }809      .resource-reset { display: inline-flex; }810      .resource-reset .icon { width: 15px; height: 15px; }811      .resource-reset:hover, .resource-more:hover { border-color: var(--blue); color: var(--blue); }812      .resource-collections { display: flex; flex-wrap: wrap; gap: 0; border-bottom: 1px solid var(--line); }813      .resource-collection {814        display: inline-flex;815        align-items: center;816        justify-content: center;817        gap: 6px;818        min-height: 42px;819        border: 0;820        border-bottom: 2px solid transparent;821        padding: 9px 14px;822        color: var(--muted);823        background: transparent;824        font-size: 0.82rem;825        font-weight: 700;826        cursor: pointer;827      }828      .resource-collection:hover { color: var(--ink); }829      .resource-collection[aria-pressed="true"] { border-bottom-color: var(--blue); color: var(--blue); }830      .resource-collection .icon { width: 15px; height: 15px; }831      .resource-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 58px; border-bottom: 1px solid var(--line-strong); }832      .resource-count { margin: 0; color: var(--muted); font-size: 0.86rem; }833      .resource-sort { width: auto; min-width: 176px; }834      .resource-list { min-height: 180px; }835      .resource-row-head {836        display: grid;837        grid-template-columns: minmax(0, 1.5fr) 72px minmax(170px, 0.55fr) minmax(130px, 0.4fr);838        gap: 22px;839        padding: 11px 0;840        border-bottom: 1px solid var(--line-strong);841        color: var(--quiet);842        font-family: "IBM Plex Mono", ui-monospace, monospace;843        font-size: 0.66rem;844        font-weight: 650;845        text-transform: uppercase;846      }847      .resource-item {848        display: grid;849        grid-template-columns: minmax(0, 1.5fr) 72px minmax(170px, 0.55fr) minmax(130px, 0.4fr);850        gap: 12px 22px;851        align-items: start;852        padding: 18px 0 16px;853        border-bottom: 1px solid var(--line);854      }855      .resource-work, .resource-publication, .resource-evidence { min-width: 0; }856      .resource-title { color: var(--ink); font-weight: 760; line-height: 1.35; text-decoration: none; }857      .resource-title:hover { color: var(--blue); }858      .resource-item p { margin: 0; }859      .resource-contribution { margin-top: 6px !important; color: var(--muted); font-size: 0.86rem; line-height: 1.5; }860      .resource-authors { margin-top: 7px !important; color: var(--quiet); font-size: 0.76rem; line-height: 1.45; }861      .resource-meta { margin-top: 7px; color: var(--quiet); font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 0.68rem; overflow-wrap: anywhere; }862      .resource-cell-label { display: none; margin-bottom: 5px; color: var(--quiet); font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 0.62rem; font-weight: 650; text-transform: uppercase; }863      .resource-year-value { color: var(--ink); font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 0.9rem; font-weight: 700; }864      .resource-year.is-empty { min-height: 1px; }865      .resource-venue { display: block; color: var(--ink); font-size: 0.82rem; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }866      .resource-publisher, .resource-date, .resource-identifier { display: block; margin-top: 4px; color: var(--quiet); font-size: 0.72rem; line-height: 1.4; overflow-wrap: anywhere; }867      .resource-type-label { display: block; color: var(--ink); font-size: 0.78rem; font-weight: 700; }868      .resource-signal { display: block; margin-top: 5px; color: var(--green); font-size: 0.68rem; font-weight: 700; text-transform: uppercase; }869      .resource-signal.contextual { color: var(--violet); }870      .resource-signal.medium { color: var(--blue); }871      .resource-signal.unverified { color: var(--quiet); }872      .resource-source-status { display: block; margin-top: 4px; color: var(--quiet); font-size: 0.7rem; line-height: 1.4; }873      .resource-details, .resource-details:last-child { grid-column: 1 / -1; margin-top: 2px; border: 0; border-top: 1px dashed var(--line); border-bottom: 0; padding: 9px 0 0; }874      .resource-details summary { width: fit-content; color: var(--blue); font-size: 0.72rem; font-weight: 700; }875      .resource-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; padding: 14px 0 4px; }876      .resource-detail h4 { margin: 0 0 5px; color: var(--quiet); font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 0.64rem; text-transform: uppercase; }877      .resource-detail p { color: var(--muted); font-size: 0.78rem; line-height: 1.5; }878      .resource-bibliography + .resource-bibliography { margin-top: 5px; }879      .resource-actions { display: flex; justify-content: center; padding-top: 18px; }880      .resource-empty, .resource-loading { margin: 0; padding: 28px 0; color: var(--muted); }881      details { border-top: 1px solid var(--line-strong); padding: 18px 0; }882      details:last-child { border-bottom: 1px solid var(--line-strong); }883      summary { cursor: pointer; font-weight: 750; }884      details p { max-width: 850px; margin: 10px 0 0; color: var(--muted); }885 886      footer { padding: 58px 0 48px; border-top: 1px solid var(--line-strong); background: #eef2f8; }887      .footer-grid { display: grid; grid-template-columns: 1.45fr 0.8fr 0.8fr 0.8fr; gap: 32px; }888      .footer-grid > * { min-width: 0; }889      footer h4 { margin: 0 0 10px; font-size: 0.9rem; }890      footer a { display: block; padding: 3px 0; color: var(--muted); font-size: 0.84rem; text-decoration: none; }891      footer a:hover { color: var(--blue); }892      .cite { position: relative; margin-top: 12px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); overflow: auto; }893      .cite pre { min-width: 460px; margin: 0; padding: 16px; color: #344054; font: 0.74rem/1.55 "IBM Plex Mono", ui-monospace, monospace; }894      .copy { position: absolute; top: 8px; right: 8px; border: 1px solid var(--line-strong); border-radius: 4px; padding: 4px 9px; background: var(--surface); color: var(--ink); font-size: 0.72rem; font-weight: 700; cursor: pointer; }895      .legal { margin: 30px 0 0; color: var(--quiet); font-size: 0.8rem; }896 897      @media (min-width: 1041px) {898        #runtimes .link-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }899        #runtimes .card { padding-left: 22px; }900        #runtimes .card:nth-child(4n+1) { padding-left: 0; }901      }902      @media (max-width: 1040px) {903        .links { display: none; }904        .menu-btn { display: inline-flex; }905        .nav { position: relative; }906        .links.open {907          position: absolute;908          top: 66px;909          left: -24px;910          right: -24px;911          display: flex;912          flex-direction: column;913          align-items: stretch;914          gap: 0;915          margin: 0;916          padding: 10px 24px 14px;917          border-bottom: 1px solid var(--line);918          background: var(--paper);919          box-shadow: 0 14px 30px rgba(18, 23, 34, 0.09);920          max-height: calc(100vh - 66px);921          overflow-y: auto;922        }923        .links.open a { padding: 9px 0; }924        .links.open .mobile-nav-only { display: flex; align-items: center; gap: 8px; }925        .links.open a[aria-current="location"]::after { display: none; }926      }927      @media (max-width: 920px) {928        .hero-system {929          width: 100%;930          margin-top: 28px;931        }932        .hero-scene { height: 316px; }933        .hero-inspector { grid-template-columns: 1fr; gap: 12px; padding: 14px 0; }934        .hero-system .loop-stage-rail { grid-template-columns: repeat(6, minmax(0, 1fr)); }935        .hero-inspector .loop-stage-detail { min-height: 42px; }936      }937      @media (max-width: 820px) {938        .wrap { width: min(var(--maxw), calc(100% - 32px)); }939        .links.open { left: -16px; right: -16px; padding-inline: 16px; }940        section { padding: 68px 0; }941        .hero { min-height: 0; padding: 40px 0 24px; }942        .hero-system { margin-top: 24px; }943        .hero-scene { width: 100%; height: 286px; }944        .hero-scene canvas { opacity: 1; }945        .hero-system .loop-stage-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }946        .hero-system .loop-stage:nth-child(n) { border-top: 0; border-left: 1px solid var(--line); }947        .hero-system .loop-stage:nth-child(3n+1) { border-left: 0; }948        .hero-system .loop-stage:nth-child(n+4) { border-top: 1px solid var(--line); }949        h1 { font-size: 2.7rem; }950        h2 { font-size: 2rem; }951        .section-head { grid-template-columns: 1fr; gap: 16px; align-items: start; }952        .contract-need, .contract-layers-head, .contract-example-head { grid-template-columns: 180px minmax(0, 1fr); gap: 24px; }953        .contract-layers { grid-template-columns: repeat(2, minmax(0, 1fr)); }954        .contract-layer:nth-child(n) { border-left: 1px solid var(--line); padding: 18px; }955        .contract-layer:nth-child(2n+1) { border-left: 0; padding-left: 0; }956        .contract-layer:nth-child(n+3) { border-top: 1px solid var(--line); }957        .contract-phase { padding-right: 18px; }958        .contract-phase + .contract-phase { padding-left: 18px; }959        .contract-example-row { grid-template-columns: 150px minmax(0, 1fr); gap: 24px; }960        .stats { grid-template-columns: repeat(2, 1fr); }961        .stat + .stat { border-left: 0; }962        .stat:nth-child(even) { border-left: 1px solid var(--line); }963        .stat:nth-child(n+3) { border-top: 1px solid var(--line); }964        .stat:last-child { grid-column: 1 / -1; border-left: 0; }965        .principles, .link-grid, .pattern-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }966        .choice-why { grid-template-columns: 180px minmax(0, 1fr); gap: 24px; }967        .choice-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }968        .choice-step:nth-child(n) { border-left: 1px solid var(--line); padding: 18px; }969        .choice-step:nth-child(2n+1) { border-left: 0; padding-left: 0; }970        .choice-step:nth-child(n+3) { border-top: 1px solid var(--line); }971        .pattern-grid .pattern:nth-child(n) { border-left: 1px solid var(--line); padding: 20px; }972        .pattern-grid .pattern:nth-child(2n+1) { border-left: 0; padding-left: 0; }973        .pattern-grid .pattern:nth-child(2n) { padding-right: 0; }974        .future-grid { grid-template-columns: 1fr; }975        .future-track { padding: 20px 0; }976        .future-track + .future-track { border-top: 1px solid var(--line); border-left: 0; padding-left: 0; }977        .future-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }978        .future-step:nth-child(n) { border-left: 1px solid var(--line); padding: 18px; }979        .future-step:nth-child(2n+1) { border-left: 0; padding-left: 0; }980        .future-step:nth-child(n+3) { border-top: 1px solid var(--line); }981        .future-shared { grid-template-columns: 1fr; gap: 10px; align-items: start; }982        .growth-note { align-items: flex-start; flex-direction: column; gap: 14px; }983        .maturity-guide { grid-template-columns: 150px minmax(0, 1fr); gap: 24px; }984        .level { grid-template-columns: 52px minmax(0, 1fr); gap: 16px; }985        .level .number { grid-row: 1 / 3; }986        .level-intro, .level-facts { grid-column: 2; }987        .level-facts { grid-template-columns: 1fr; gap: 12px; }988        .level-facts > div { display: grid; grid-template-columns: 108px minmax(0, 1fr); gap: 14px; }989        .level-facts dd { margin-top: 0; }990        .resource-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }991        .resource-toolbar label:first-child { grid-column: 1 / -1; }992        .resource-reset { width: 100%; }993        .resource-row-head { display: none; }994        .resource-item { grid-template-columns: 72px minmax(0, 1fr) minmax(120px, 0.72fr); gap: 14px 18px; }995        .resource-work, .resource-details { grid-column: 1 / -1; }996        .resource-cell-label { display: block; }997        .resource-detail-grid { gap: 14px 22px; }998        .footer-grid { grid-template-columns: 1fr 1fr; }999        .loop-stage-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }1000        .loop-stage:nth-child(4) { border-left: 0; }1001        .loop-stage:nth-child(n+4) { border-top: 1px solid var(--line); }1002      }1003      @media (min-width: 561px) and (max-width: 768px) {1004        .star-history-chart { max-width: 680px; margin-inline: auto; }1005      }1006      @media (max-width: 600px) {1007        .project-links .nav-link:first-child { display: none; }1008        .project-links { gap: 6px; }1009      }1010      @media (max-width: 560px) {1011        html { scroll-padding-top: 74px; }1012        .nav { min-height: 64px; gap: 8px; }1013        .links.open { top: 64px; max-height: calc(100vh - 64px); }1014        .nav-link { min-height: 44px; padding-inline: 12px; }1015        .brand { min-width: 0; gap: 8px; }1016        .brand .logo { width: 28px; height: 28px; }1017        .brand .brand-text { display: block; font-size: 0.78rem; line-height: 1.1; }1018        .menu-btn { width: 44px; min-height: 44px; justify-content: center; padding: 0; }1019        .menu-label { display: none; }1020        .menu-btn .icon { width: 18px; height: 18px; }1021        section { padding: 56px 0; }1022        h1 { font-size: 2.25rem; line-height: 1.08; }1023        h2 { font-size: 1.85rem; line-height: 1.16; }1024        .section-label { align-items: flex-start; margin-bottom: 9px; font-size: 0.68rem; line-height: 1.4; }1025        .section-label .icon { width: 14px; height: 14px; margin-top: 1px; }1026        .section-head { gap: 12px; margin-bottom: 24px; }1027        .section-intro { font-size: 0.95rem; }1028        .contract-need, .contract-layers-head, .contract-example-head { grid-template-columns: 1fr; gap: 8px; }1029        .contract-need { margin-bottom: 24px; padding: 18px 0; }1030        .contract-need p { font-size: 0.84rem; line-height: 1.55; }1031        .contract-layers-head { margin-bottom: 10px; }1032        .contract-layers { grid-template-columns: 1fr; margin-bottom: 28px; }1033        .contract-layer:nth-child(n) { border-top: 1px solid var(--line); border-left: 0; padding: 14px 0; }1034        .contract-layer:first-child { border-top: 0; }1035        .contract-layer span { margin-top: 4px; }1036        .contract-phases { grid-template-columns: 1fr; margin-top: 24px; }1037        .contract-phase:nth-child(n) { border-top: 1px solid var(--line); border-left: 0; padding: 16px 0; }1038        .contract-phase:first-child { border-top: 0; }1039        .contract-example { margin-top: 30px; }1040        .contract-example-head { padding: 18px 0; }1041        .contract-example-row { grid-template-columns: 1fr; gap: 5px; padding: 13px 0; }1042        .contract-example-result { align-items: flex-start; flex-direction: column; gap: 9px; padding: 15px 0; }1043        .hero { min-height: 0; padding: 20px 0 6px; }1044        .hero-kicker { max-width: 100%; align-items: center; margin: 0 auto 10px; line-height: 1.35; text-align: left; }1045        .tagline { margin-top: 11px; font-size: 1.18rem; }1046        .lead { margin-top: 6px; font-size: 0.95rem; line-height: 1.48; }1047        .actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; max-width: 420px; gap: 8px; margin: 12px auto 0; }1048        .actions .button { min-width: 0; min-height: 44px; padding-inline: 8px; font-size: 0.82rem; }1049        .actions .button .icon { width: 16px; height: 16px; }1050        .hero-system { display: flex; flex-direction: column; margin-top: 8px; }1051        .scene-head { order: 1; justify-content: center; min-height: 24px; padding: 2px 0; }1052        .scene-flow { display: none; }1053        .hero-scene { order: 2; width: 100%; height: 224px; }1054        .hero-scene canvas { opacity: 1; }1055        .scene-key { display: none; }1056        .scene-key-item { justify-content: flex-start; min-width: 0; min-height: 34px; padding: 7px 8px; }1057        .scene-key-item:nth-child(even) { border-left: 1px solid var(--line); }1058        .scene-key-item:nth-child(n+3) { border-top: 1px solid var(--line); }1059        .scene-key-item::before { width: 13px; flex: 0 0 auto; }1060        .scene-outcomes { order: 5; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; min-height: 34px; padding: 0; font-size: 0.62rem; line-height: 1.3; }1061        .scene-outcome { justify-content: flex-start; gap: 5px; min-width: 0; padding: 8px 6px; }1062        .scene-outcome + .scene-outcome { border-left: 1px solid var(--line); }1063        .scene-outcome::before { width: 6px; height: 6px; flex: 0 0 auto; }1064        .hero-inspector { order: 3; gap: 8px; padding: 0 0 6px; }1065        .loop-stage-rail { margin-top: 20px; }1066        .hero-system .loop-stage-rail { margin: 0; }1067        .loop-stage { min-height: 44px; padding-inline: 6px; font-size: 0.71rem; }1068        .loop-stage-number { font-size: 0.61rem; }1069        .loop-stage-detail { min-height: 40px; margin-top: 8px; font-size: 0.75rem; line-height: 1.45; }1070        .hero-inspector .loop-stage-detail { min-height: 36px; margin: 0; padding: 4px 8px 0 12px; line-height: 1.42; }1071        .mental-model { padding: 30px 0 46px; }1072        .definition { margin-bottom: 18px; font-size: 0.88rem; line-height: 1.55; text-align: left; }1073        .definition-full { display: none; }1074        .definition-compact { display: inline; }1075        .hero-visual { width: min(100%, 420px); }1076        .hero-visual .desktop-stack-visual { display: none; }1077        .desktop-stack-scene, .desktop-stack-key { display: none; }1078        .mobile-stack {1079          display: block;1080          border: 1px solid var(--line-strong);1081          border-radius: 6px;1082          background: var(--surface);1083          overflow: hidden;1084          text-align: left;1085        }1086        .mobile-stack-head { padding: 15px 15px 13px; border-bottom: 1px solid var(--line); }1087        .mobile-stack-eyebrow {1088          display: block;1089          color: var(--blue);1090          font-family: "IBM Plex Mono", ui-monospace, monospace;1091          font-size: 0.62rem;1092          font-weight: 650;1093          text-transform: uppercase;1094        }1095        .mobile-stack-head strong { display: block; margin-top: 3px; font-size: 1.12rem; line-height: 1.25; }1096        .mobile-stack-list { margin: 0; padding: 0; list-style: none; }1097        .mobile-stack-layer {1098          display: grid;1099          grid-template-columns: 30px minmax(0, 1fr);1100          gap: 10px;1101          min-width: 0;1102          padding: 13px 14px 14px 12px;1103          border-left: 4px solid var(--ink);1104        }1105        .mobile-stack-layer + .mobile-stack-layer { border-top: 1px solid var(--line); }1106        .mobile-stack-layer.loop { border-left-color: var(--blue); background: #eef4ff; }1107        .mobile-stack-layer.harness { border-left-color: var(--cyan); }1108        .mobile-stack-layer.context { border-left-color: var(--green); }1109        .mobile-stack-number {1110          padding-top: 2px;1111          color: var(--quiet);1112          font-family: "IBM Plex Mono", ui-monospace, monospace;1113          font-size: 0.64rem;1114          font-weight: 700;1115        }1116        .mobile-stack-layer.loop .mobile-stack-number, .mobile-stack-layer.loop strong { color: var(--blue); }1117        .mobile-stack-layer.harness strong { color: #087f99; }1118        .mobile-stack-layer.context strong { color: #087b53; }1119        .mobile-stack-layer strong { display: block; font-size: 0.92rem; line-height: 1.3; }1120        .mobile-stack-layer p { margin: 3px 0 0; color: var(--muted); font-size: 0.74rem; line-height: 1.45; }1121        .mobile-stack-note {1122          margin: 0;1123          border-top: 1px solid var(--line-strong);1124          padding: 11px 14px 12px;1125          color: var(--muted);1126          font-size: 0.72rem;1127          line-height: 1.45;1128        }1129        .mobile-stack-note strong { color: var(--blue); }1130        .stats { margin-top: 20px; }1131        .stat { min-height: 76px; padding: 14px 11px; }1132        .stat b { font-size: 1.22rem; }1133        .stat span { font-size: 0.68rem; }1134        .desktop-diagram { display: none; }1135        .mobile-diagram { display: block; }1136        .supporting-visual { display: none; }1137        .mobile-contract-summary { border-bottom: 1px solid var(--line-strong); }1138        .mobile-contract-group { padding: 16px 0 0; }1139        .mobile-contract-group + .mobile-contract-group { margin-top: 14px; border-top: 1px solid var(--line); }1140        .mobile-contract-group > p { margin-bottom: 9px; border-left: 3px solid var(--blue); padding-left: 9px; }1141        .mobile-contract-grid { gap: 6px; }1142        .mobile-contract-part {1143          grid-template-columns: 28px minmax(0, 1fr);1144          gap: 7px;1145          min-height: 48px;1146          padding: 9px;1147          border: 1px solid var(--line);1148          border-radius: 6px;1149          background: var(--surface);1150        }1151        .mobile-contract-part:nth-child(even) { padding-left: 9px; border-left: 1px solid var(--line); }1152        .mobile-contract-part span {1153          display: inline-flex;1154          align-items: center;1155          justify-content: center;1156          width: 24px;1157          height: 24px;1158          border: 1px solid #b8ccf8;1159          border-radius: 50%;1160          color: var(--blue);1161          background: #eef4ff;1162        }1163        .mobile-next-action {1164          display: grid;1165          grid-template-columns: 96px minmax(0, 1fr);1166          gap: 10px;1167          margin-top: 16px;1168          border-top: 1px solid #b8ccf8;1169          border-bottom: 0;1170          border-left: 3px solid var(--blue);1171          padding: 13px 12px;1172          background: #eef4ff;1173        }1174        .mobile-next-action span { text-align: left; }1175        .mobile-lifecycle-summary { border-bottom: 1px solid var(--line-strong); }1176        .mobile-lifecycle-list { grid-template-columns: 1fr; }1177        .mobile-lifecycle-list li {1178          grid-template-columns: 34px minmax(0, 1fr);1179          gap: 10px;1180          align-items: center;1181          min-height: 58px;1182          padding: 10px 0;1183        }1184        .mobile-lifecycle-list li:nth-child(even) { padding-left: 0; border-left: 0; }1185        .mobile-lifecycle-list span {1186          display: inline-flex;1187          align-items: center;1188          justify-content: center;1189          width: 30px;1190          height: 30px;1191          border: 1px solid #b8ccf8;1192          border-radius: 50%;1193          background: #eef4ff;1194        }1195        .mobile-lifecycle-list strong { font-size: 0.91rem; }1196        .mobile-lifecycle-list small { margin-top: 2px; font-size: 0.73rem; }1197        .mobile-lifecycle-outcomes { gap: 6px; padding-top: 10px; }1198        .mobile-lifecycle-outcomes div { padding: 10px 8px 12px; border-top: 2px solid var(--violet); background: var(--surface); }1199        .mobile-lifecycle-outcomes div:nth-child(2) { border-top-color: #d97706; }1200        .mobile-lifecycle-outcomes div:nth-child(3) { border-top-color: var(--green); }

Showing the first 1,200 of 2569 lines. Download the file for the rest.