:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#233c34;background:#f7f5ee;font-synthesis:none;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;min-height:48px;border:1px solid #b9c6bc;background:#fffdf7;color:inherit;border-radius:9px;padding:10px 15px}button:hover:not(:disabled){background:#edf3e9}button:focus-visible,a:focus-visible{outline:3px solid #a14a15;outline-offset:4px}button:disabled{cursor:default;opacity:.65}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d8ddd0;padding:21px 4vw}.brand{font-family:Georgia,serif;font-size:30px;font-weight:bold;color:#174f41;text-decoration:none}.brand span{font:12px system-ui;letter-spacing:1px;font-weight:500}.prototype,.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:750}.prototype{color:#586b5d}main{max-width:1800px;margin:auto;padding:32px 4vw}.intro h1{font:clamp(36px,5vw,62px)/1.1 Georgia,serif;margin:12px 0}.intro #meta{color:#59685b}.eyebrow{color:#587147}.notice{font-size:14px;border-left:3px solid #b58a38;padding:8px 14px;max-width:850px;background:#f0ead9}.toolbar{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:28px}.toolbar nav,.actions{display:flex;gap:8px;flex-wrap:wrap}.toolbar nav{padding:5px;background:#e7eadf;border-radius:12px}.toolbar nav button{background:transparent;border:0}.toolbar nav button[aria-pressed=true]{background:#174f41;color:white;box-shadow:0 2px 4px #0002}.actions{align-items:center}.progress{display:flex;align-items:center;gap:16px;font-size:12px;margin:24px 0;color:#506456}progress{accent-color:#437b56;height:8px;flex:1;max-width:240px}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:24px}.layout{min-width:0;background:#fffdf8;border:1px solid #d8dfd2;border-radius:16px;overflow:hidden}.layout-heading{display:flex;align-items:center;gap:14px;padding:20px 24px;border-bottom:1px solid #d8dfd2;background:#eef1e6}.layout-letter{display:inline-grid;place-items:center;background:#174f41;color:#fff;font:22px Georgia;width:40px;height:40px;border-radius:50%;flex-shrink:0}.layout-heading h2{font:24px Georgia;margin:0}.layout-heading p{margin:4px 0 0;font-size:13px;color:#59685b}.layout-body{padding:24px}.stage{position:relative;padding-bottom:26px}.stage:not(:last-child):after{content:'↓';position:absolute;bottom:0;left:50%;color:#789078}.stage-label{font-size:12px;font-weight:650;margin-bottom:10px}.stage-label span{color:#6c7e67;margin-right:8px}.branches{display:flex;gap:12px;align-items:flex-start}.node{flex:1;min-width:0;border:1px solid #c9d3c3;border-radius:11px;background:white;overflow:hidden}.node.selected{border:2px solid #21634e;box-shadow:0 3px 10px #254f3812}.node.completed{background:#edf5e9}.step-button{display:block;text-align:left;width:100%;border:0;border-radius:0;background:transparent;padding:15px}.node-top{display:flex;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:.5px;margin-bottom:10px;color:#5e715b}.step-button strong{display:block;font-size:16px;line-height:1.35}.step-bottom{display:block;font-size:11px;margin-top:12px;color:#506d57}.details{padding:20px;border-top:1px solid #d7dfcf}.details h3{font:26px/1.2 Georgia;margin:8px 0 16px}.details p{font-size:15px}.ingredients{padding:14px 14px 14px 30px;background:#f1f1e6;border-radius:8px;font-size:14px}.ingredients li{margin:5px 0}.dependencies{border-top:1px solid #d6dfce;margin-top:20px;padding-top:14px;font-size:12px}.dependencies p{font-size:12px}.dependency{font-size:12px;min-height:44px;padding:5px 9px;margin:3px 0}.complete{background:#174f41;color:white;width:100%;margin-top:10px}.complete:hover:not(:disabled){background:#28654d}.complete:disabled{background:#dde6d7;color:#3c503e}.note{border-left:3px solid #b58a38;padding-left:12px}.layout-b .layout-body{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,1fr);gap:24px}.layout-b aside{align-self:start;background:#f5f5ec;border-radius:12px;position:sticky;top:16px}.layout-b aside .details{border:0}.layout-b .step-button{min-height:130px}.comparison .layout-b .layout-body{display:block}.comparison .layout-b aside{position:static;margin-top:20px}.footnote{font-size:12px;color:#657161;margin:24px 0;max-width:850px}.empty{background:#edf0e6;border:1px dashed #acbba5;border-radius:16px;padding:48px;max-width:720px}.empty h2{font:28px Georgia}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:1199px){.compare-button{display:none}}@media(max-width:700px){main{padding:22px 16px}.prototype{display:none}.layout-b .layout-body{display:block}.layout-b aside{position:static;margin-top:20px}.layout-body{padding:16px}.layout-heading{padding:18px 16px}.branches{flex-direction:column}.node{width:100%}.progress{flex-wrap:wrap;gap:8px}.progress #save-status{width:100%}.toolbar nav{width:100%}.toolbar nav button{flex:1;font-size:13px}.layout-b .step-button{min-height:100px}.empty{padding:28px}.brand span{font-size:10px}}
.requires{display:block;font-size:11px;color:#52665a;margin-top:8px}.node:has(.node-top span:first-child){border-left-width:4px}.node:has(.node-top span:first-child){border-left-color:#326b4b}.node:has([data-select="pastry-mix"]),.node:has([data-select="pastry-chill"]),.node:has([data-select="roll"]){border-left-color:#9b6529}.node:has([data-select="poach"]),.node:has([data-select="dice-chicken"]),.node:has([data-select="oven"]),.node:has([data-select="bake"]){border-left-color:#a65e47}.node:has([data-select="reserve-stock"]),.node:has([data-select="sauce"]){border-left-color:#356b83}.node:has([data-select="assemble"]){background:#eaf0e6}.stage:not(:last-child):after{content:''}.stage{padding-bottom:18px}#equipment{font-size:13px;max-width:900px}summary{cursor:pointer;min-height:44px;padding:10px 0}.layout-b .layout-body{display:block}.layout-b .flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.layout-b .stage{padding:0}.layout-b .branches{display:flex;flex-direction:column;gap:6px}.layout-b .node{width:100%}.layout-b .step-button{min-height:100px;padding:10px}.layout-b .step-button strong{font-size:13px}.layout-b .node-top{font-size:9px;margin-bottom:6px}.layout-b .step-bottom{display:none}.layout-b .stage-label{font-size:10px;min-height:30px}.layout-b .requires{font-size:10px}.layout-b aside{position:static;margin-top:24px}.layout-b .node.selected{background:#193f34;color:white}.layout-b .node.selected .node-top,.layout-b .node.selected .requires{color:#eaf0e6}.layout-b .node.selected .step-button:hover{background:#285847}@media(max-width:700px){.layout-b .flow{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-b .step-button{min-height:110px}}@media(min-width:1200px){.comparison .branches{flex-wrap:wrap}.comparison .layout-a .node{flex-basis:40%}.comparison .layout-a .node.selected{flex-basis:100%}}
.layout-b .stage,.layout-b .branches{display:contents}.layout-b .stage-label{display:none}.layout-b .flow{gap:8px}.layout-b .node{align-self:stretch}.layout-b .step-button{height:100%;min-height:105px}.layout-b .flow:before{content:'Parallel branches · ← names required steps';grid-column:1 / -1;font-size:11px;color:#617269;margin-bottom:4px}.layout-b .node{border-left-width:3px}
.flow{position:relative}.connections{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;z-index:0}.connections>path{fill:none;stroke:#8b9d88;stroke-width:1.2;opacity:.6}.stage .node{position:relative;z-index:1}.stage-label{position:relative;z-index:1}.node{background:#fffdf8}
.map-help{font-size:13px;color:#52665a;margin:0 0 14px}.map-scroll{overflow-x:auto;overscroll-behavior-x:contain;border:1px solid #d8dfd2;border-radius:12px;padding:18px;background:#f7f8f1}.map-scroll:focus-visible{outline:3px solid #a14a15;outline-offset:3px}.stable-map{position:relative}.map-arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-arrows>path{fill:none;stroke:#617269;stroke-width:1.7}.map-node{position:absolute;width:160px;height:94px;min-height:94px;text-align:left;background:#fffdf8;padding:10px;border:1px solid #aabca5;box-shadow:0 2px 4px #193f3408;border-left:4px solid #326b4b;display:flex;flex-direction:column;justify-content:space-between;border-radius:9px}.map-node strong{font-size:14px;line-height:1.15}.map-node span{font-size:10px}.map-node .map-state{font-size:11px}.map-node.selected{background:#193f34;color:white;outline:2px solid #193f34;outline-offset:2px}.map-node.selected:hover{background:#285847}.map-node.completed:not(.selected){background:#eaf0e6}.map-node[data-select^="pastry"],.map-node[data-select="roll"]{border-left-color:#9b6529}.map-node[data-select="poach"],.map-node[data-select="dice-chicken"],.map-node[data-select="oven"],.map-node[data-select="bake"]{border-left-color:#a65e47}.map-node[data-select="reserve-stock"],.map-node[data-select="sauce"]{border-left-color:#356b83}.map-node[data-select="assemble"]{border-width:2px;background:#eaf0e6}.map-node[data-select="assemble"].selected{background:#193f34}.lane-title{position:absolute;top:0;font-size:11px;letter-spacing:1px;font-weight:700}.map-label{position:absolute;font-size:11px;background:#f7f8f1;padding:4px;color:#356b83}.gate-label{color:#326b4b;font-weight:650}.layout-b aside{border:1px solid #cad5ca}
@media(min-width:1200px){#workspace:not(.comparison) .layout-b .layout-body{display:grid;grid-template-columns: minmax(780px,1.8fr) minmax(280px,1fr);gap:20px}#workspace:not(.comparison) .layout-b .map-help{grid-column:1 / -1}#workspace:not(.comparison) .layout-b aside{margin:0;position:sticky;top:20px;align-self:start}.comparison .layout-b aside{position:static}}
