.companion-root{--accent:#b8860b;--blue:#2471a3;--purple:#6c3483;--muted:#a89878;--bg:#fffcf5;color:#2a2a2a}.companion-root .companion-prose{color:#2a2a2a;font-family:Georgia,Times New Roman,serif;font-size:18px;line-height:30px}.companion-root h2,.companion-root h3{color:#2a2a2a;margin:28px 0 12px;font-family:Georgia,Times New Roman,serif;font-weight:400}.companion-root h2{font-size:24px;line-height:1.3}.companion-root h3{color:#4a7a2e;border-bottom:1px solid #d4c9b0;padding-bottom:6px;font-size:18px}.companion-root .panel>h3:first-of-type,.companion-root section>h3:first-of-type{margin-top:24px}.companion-root code{color:#5a4a2a;background:#f0ece0;border:1px solid #e2d8c3;border-radius:3px;padding:1px 5px;font-family:Courier New,monospace;font-size:.92em}.companion-root b{color:#2a2a2a}.companion-root em{color:#4a3f2f}.companion-root .panel-head{margin-bottom:20px}.companion-root .panel-n{letter-spacing:.08em;text-transform:uppercase;color:#8a8070;margin-bottom:6px;font-family:Georgia,serif;font-size:12px;display:inline-block}.companion-root .panel-head h2{margin:0 0 8px}.companion-root .panel-head .companion-prose{color:#665;border-left:3px solid #d4c9b0;padding-left:12px;font-style:normal}.companion-root .panel-head+.companion-prose{color:#433a2c;margin-bottom:18px}.companion-root .picker-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:20px 0;display:grid}.companion-root .picker-card{text-align:left;cursor:pointer;background:#fffcf5;border:1px solid #d4c9b0;border-radius:8px;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;padding:14px 16px;font-family:Georgia,serif;transition:border-color .15s,background .15s;display:flex}.companion-root .picker-card:hover{background:#f5f0e8;border-color:#4a7a2e}.companion-root .picker-n{color:#b8860b;font-size:12px;font-weight:700}.companion-root .picker-label{color:#2a2a2a;font-size:16px}.companion-root .picker-q{color:#665;font-size:13px;font-style:italic}.companion-root p.aside{color:#5a5040;background:#f5f0e8;border-left:3px solid #8a8070;border-radius:0 6px 6px 0;margin:16px 0;padding:10px 14px;font-size:14px;display:block}.companion-root .callout{background:#fffcf5;border:1px solid #d4c9b0;border-radius:8px;margin:18px 0;padding:14px 18px}.companion-root .callout .label{letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:700}.companion-root .callout.gold{background:#fdf6e3;border-color:#e6cd8a}.companion-root .callout.gold .label{color:#9c7a1e}.companion-root .callout.blue{background:#eaf2f8;border-color:#b7d3e6}.companion-root .callout.blue .label{color:#2471a3}.companion-root .callout.big{padding:18px 22px;font-size:15px}.companion-root .done-when{background:#eef5e8;border:1px solid #c3dab0;border-left:4px solid #4a7a2e;border-radius:0 8px 8px 0;margin:22px 0;padding:14px 18px}.companion-root .done-when .label{letter-spacing:.05em;text-transform:uppercase;color:#3d6625;margin-bottom:6px;font-size:12px;font-weight:700}.companion-root p.next-line{color:#2a2a2a;margin-top:10px;font-weight:700}.companion-root .seed-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:18px 0;display:grid}.companion-root .seed{background:#fffcf5;border:1px solid #d4c9b0;border-radius:8px;min-width:0;padding:16px}.companion-root .seed-title{color:#4a7a2e;margin-bottom:8px;font-family:Georgia,serif;font-size:16px;font-weight:700}.companion-root .seed .companion-prose{color:#433a2c}.companion-root .code-block{background:#f7f3ea;border:1px solid #d4c9b0;border-radius:8px;margin:16px 0;overflow:hidden}.companion-root .code-block-header{background:#ece3d0;border-bottom:1px solid #d4c9b0;justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.companion-root .code-lang{letter-spacing:.06em;text-transform:uppercase;color:#8a7350;font-family:Georgia,serif;font-size:11px}.companion-root .copy-btn{color:#5a4a2a;cursor:pointer;background:#fffcf5;border:1px solid #c9bb98;border-radius:999px;padding:3px 10px;font-family:Georgia,serif;font-size:12px;transition:background .15s,border-color .15s}.companion-root .copy-btn:hover{color:#fffcf5;background:#4a7a2e;border-color:#4a7a2e}.companion-root .code-block pre{color:#3a3226;-webkit-overflow-scrolling:touch;background:0 0;max-width:100%;margin:0;padding:14px 16px;font-family:Courier New,monospace;font-size:13px;line-height:1.55;overflow-x:auto}.companion-root .wb-table{-webkit-overflow-scrolling:touch;border-collapse:collapse;background:#fffcf5;border:1px solid #d4c9b0;border-radius:6px;max-width:100%;margin:16px 0;font-size:14px;display:block;overflow-x:auto}.companion-root .wb-table th,.companion-root .wb-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e6ddc8;padding:8px 12px}.companion-root .wb-table th{color:#4a3f2f;white-space:nowrap;background:#ece3d0;font-weight:700}.companion-root .wb-table tr:last-child td{border-bottom:none}.companion-root .wb-table a{color:#4a7a2e;font-weight:700;text-decoration:none}.companion-root .wb-table a:hover{text-decoration:underline}.companion-root ol.beats,.companion-root ol.diag-quiz,.companion-root ul.checklist{margin:14px 0 14px 4px;padding:0;list-style:none}.companion-root ol.beats li,.companion-root ol.diag-quiz li,.companion-root ul.checklist li{color:#433a2c;margin-bottom:8px;padding:4px 0 4px 32px;line-height:1.5;position:relative}.companion-root ol.beats{counter-reset:beats}.companion-root ol.beats li{counter-increment:beats}.companion-root ol.beats li:before{content:counter(beats);color:#fffcf5;background:#4a7a2e;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex;position:absolute;top:3px;left:0}.companion-root ol.diag-quiz{counter-reset:quiz}.companion-root ol.diag-quiz li{counter-increment:quiz;border-left:2px solid #d4c9b0;margin-left:4px;padding-left:16px}.companion-root ol.diag-quiz li:before{content:counter(quiz) ".";color:#b8860b;font-size:13px;font-weight:700;position:absolute;top:4px;left:-1px;transform:translate(-100%)}.companion-root ul.checklist li:before{content:"✓";color:#4a7a2e;font-weight:700;position:absolute;top:3px;left:2px}.companion-root .fail-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:18px 0;display:grid}.companion-root .fail{background:#fdeaea;border:1px solid #eec5c5;border-radius:8px;min-width:0;padding:16px}.companion-root .fail-n{letter-spacing:.06em;text-transform:uppercase;color:#a4413a;font-size:11px;font-weight:700}.companion-root .fail-title{color:#7a2a24;margin:4px 0 8px;font-family:Georgia,serif;font-size:17px}.companion-root .fail .companion-prose{color:#5a3530}.companion-root p.fail-shape{color:#5a3530;margin-top:8px;font-size:14px}.companion-root p.fail-shape a{color:#4a7a2e;font-weight:700}.companion-root .ramp{grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0;display:grid}.companion-root .ramp-col{background:#fffcf5;border:1px solid #d4c9b0;border-radius:8px;min-width:0;padding:14px}.companion-root .ramp-tier{letter-spacing:.06em;text-transform:uppercase;border-radius:999px;margin-bottom:8px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.companion-root .ramp-basic .ramp-tier{color:#1e7e46;background:#e8f8f0}.companion-root .ramp-intermediate .ramp-tier{color:#2471a3;background:#eaf2f8}.companion-root .ramp-advanced .ramp-tier{color:#6c3483;background:#f3e5f5}.companion-root .ramp-col .companion-prose{color:#5a5040;margin-bottom:10px}.companion-root .ramp-chips{flex-wrap:wrap;gap:6px;display:flex}.companion-root .ramp-chip{color:#4a3f2f;background:#f7f3ea;border:1px solid #c9bb98;border-radius:999px;padding:3px 10px;font-size:12px;text-decoration:none;transition:background .15s,border-color .15s}.companion-root .ramp-chip:hover{color:#fffcf5;background:#4a7a2e;border-color:#4a7a2e}.companion-root .filter-bar-lite{border-bottom:1px solid #d4c9b0;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0;padding-bottom:10px;display:flex}.companion-root .filter-label{color:#665;margin-right:4px;font-size:13px}.companion-root .filter-btn{color:#665;cursor:pointer;background:#fffcf5;border:1px solid #d4c9b0;border-radius:999px;padding:5px 14px;font-family:Georgia,serif;font-size:13px;transition:color .15s,border-color .15s,background .15s}.companion-root .filter-btn:hover{color:#2a2a2a;border-color:#8a8070}.companion-root .filter-btn.active{color:#fffcf5;background:#4a7a2e;border-color:#4a7a2e}.companion-root .shape-count{color:#8a8070;margin-left:auto;font-size:13px}.companion-root .shape-list{flex-direction:column;gap:20px;margin-top:16px;display:flex}.companion-root .shape-card{background:#fffcf5;border:1px solid #d4c9b0;border-radius:10px;overflow:hidden}.companion-root .shape-card.hidden{display:none}.companion-root .shape-card-inner{align-items:flex-start;gap:20px;padding:20px;display:flex}.companion-root .svg-panel{background:#f7f3ea;border:1px solid #e6ddc8;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:200px;padding:8px;display:flex}.companion-root .svg-panel svg{max-width:100%;height:auto}.companion-root .content-panel{flex:1;min-width:0}.companion-root .card-header{margin-bottom:12px}.companion-root .shape-name{color:#2a2a2a;margin:0 0 4px;font-family:Georgia,serif;font-size:20px;font-weight:700}.companion-root .shape-tagline{color:#665;margin:0 0 8px;font-size:14px}.companion-root .tag-row{flex-wrap:wrap;gap:6px;display:flex}.companion-root .tag{letter-spacing:.02em;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}.companion-root .tag.complexity-basic{color:#1e7e46;background:#e8f8f0}.companion-root .tag.complexity-intermediate{color:#2471a3;background:#eaf2f8}.companion-root .tag.complexity-advanced{color:#6c3483;background:#f3e5f5}.companion-root .tag.type-tag{color:#5a4a2a;background:#f0ece0;font-weight:400}.companion-root .section-label{letter-spacing:.06em;text-transform:uppercase;color:#8a8070;margin-bottom:4px;font-size:11px;font-weight:700}.companion-root .guidance-text{color:#433a2c;margin:0 0 14px;font-size:14px}.companion-root .diagnosis{border-top:1px solid #e6ddc8;margin-bottom:14px;padding-top:10px}.companion-root .diag-row{grid-template-columns:140px 1fr;gap:10px;padding:6px 0;font-size:13px;display:grid}.companion-root .diag-row p{color:#433a2c;margin:0}.companion-root .diag-label{letter-spacing:.04em;text-transform:uppercase;padding-top:1px;font-size:11px;font-weight:700}.companion-root .diag-label.sym{color:#a4413a}.companion-root .diag-label.esc{color:#3d6625}.companion-root .shape-jump{color:#4a7a2e;font-weight:700;text-decoration:none}.companion-root .shape-jump:hover{text-decoration:underline}.companion-root .shape-card .code-block{margin-top:0}.companion-root .inline-goto{font-family:Georgia,serif;font-size:inherit;color:#4a7a2e;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}.companion-root .inline-goto:hover{color:#3d6625}@media (width<=560px){.companion-root{padding:16px}.companion-root .picker-grid,.companion-root .seed-grid,.companion-root .fail-grid,.companion-root .ramp{grid-template-columns:1fr}.companion-root .shape-card-inner{flex-direction:column;padding:16px}.companion-root .svg-panel{width:100%}.companion-root .content-panel{width:100%;min-width:0}.companion-root .diag-row{grid-template-columns:1fr;gap:2px}.companion-root h2{font-size:20px}.companion-root .filter-bar-lite{gap:6px}.companion-root .shape-count{width:100%;margin-left:0}}
