/* Strategy-specific content, on the shared Architecture shell. */
.skip-link{position:fixed;top:8px;left:8px;z-index:10;padding:10px 16px;background:var(--n-0);transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.dochead.hero{padding:32px;margin-bottom:32px}
.dochead h1{font-size:30px;max-width:30ch}
.head-grid{grid-template-columns:minmax(0,1fr) 260px;gap:32px}
.sec{padding:0;margin-bottom:64px;border:0;scroll-margin-top:24px}
.sec .section-head h2{margin:3px 0 0}
.section-head .data-label{font-size:10px}
.section-head{align-items:flex-start}
.section-num{margin-top:3px}
.section-num{width:auto;min-width:26px;padding:0 7px}
.table-scroll{overflow-x:auto;background:var(--n-0);border:1px solid var(--border-default);border-radius:12px;margin:22px 0 16px}
.table-scroll table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:600px}
.table-scroll.inv table{min-width:940px}
.table-scroll.inv td{vertical-align:top}
.table-scroll.inv td code{overflow-wrap:break-word}
.table-scroll th{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:500;text-align:left;background:var(--n-50);color:var(--fg-muted);padding:10px 12px;border-bottom:1px solid var(--border-default)}
.table-scroll td{padding:12px;vertical-align:top;color:var(--fg-secondary);border-bottom:1px solid var(--n-100)}
.table-scroll tr:last-child td{border-bottom:0}
.table-scroll tbody tr:hover{background:var(--n-50)}
.flow-card{margin:24px 0}
.flow-card svg{min-width:620px}
.flow-card figcaption{max-width:90ch}
.diagram-title{font-family:var(--font-body);font-size:14px;font-weight:600;fill:var(--fg-primary)}
.diagram-meta{font-family:var(--font-mono);font-size:10px;fill:var(--fg-secondary)}
.strategy-diagram .data-label{color:var(--o-700);margin-bottom:8px}
.panel>p{padding:12px 16px}
.rule{border-left:2px solid var(--o-500);padding:4px 0 4px 16px;margin:24px 0}
.rule-k{display:block;font-family:var(--font-mono);font-size:11px;color:var(--o-700);margin-bottom:8px;text-transform:uppercase}
.ref{border:1px solid var(--border-default);border-radius:12px;background:var(--n-0);margin:24px 0;overflow:hidden}
.ref-row{padding:16px;border-bottom:1px solid var(--n-100)}
.ref-row:last-child{border:0}
.ref-name{font-weight:600;margin-bottom:8px;overflow-wrap:anywhere}
.ref-tier{display:block;font-family:var(--font-mono);font-size:10px;color:var(--fg-muted);font-weight:400;margin-top:4px}
pre{overflow-x:auto;background:var(--n-900);color:var(--n-100);padding:20px;border-radius:12px}
code{overflow-wrap:anywhere}
.main p,.main li,.main a{overflow-wrap:anywhere}
@media(max-width:1100px){.head-grid{grid-template-columns:1fr}.head-grid>div:last-child{display:grid;grid-template-columns:1fr 1fr;gap:16px}}
@media(max-width:640px){.dochead.hero{padding:20px}.dochead h1{font-size:26px}.head-grid>div:last-child{grid-template-columns:1fr}.section-head h2.section-title{font-size:17px}.flow-card{padding:14px}.sec{margin-bottom:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Shared testing guidance. */
#testing .blk{border:1px solid var(--border);border-radius:4px;background:var(--surface);padding:18px 20px;margin:0 0 12px}#testing .blk-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}#testing .blk-h h4{margin:0;font-size:15px}#testing .chip{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:3px;border:1px solid var(--n300);color:var(--fg-muted);white-space:nowrap}#testing .chip.now{border-color:var(--o500);color:var(--o700)}#testing .chip.owed{border-color:var(--y700);color:var(--y700)}#testing .blk .lead{margin:0 0 10px;font-size:14px;color:var(--fg-2)}#testing ul.tight{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}#testing ul.tight li{color:var(--fg-2);font-size:14px}#testing ul.tight li strong{color:var(--fg)}#testing .qlist{margin:0 0 18px;padding-left:20px}#testing .qlist li{font-size:15px;margin:0 0 5px}#testing .qlist a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--n300)}#testing .qlist a:hover{color:var(--o700);border-bottom-color:var(--o500)}#testing .snip{background:var(--n50);border:1px solid var(--border);border-radius:4px;padding:9px 12px;margin:8px 0 12px;overflow-x:auto}#testing .snip code{font-family:var(--mono);font-size:12.5px;color:var(--fg);white-space:pre}#testing h5.sub{font-family:var(--font-display);font-size:14px;margin:18px 0 6px;color:var(--fg)}#testing .qa{margin-top:14px;padding-top:12px;border-top:1px dashed var(--border)}#testing .qa p{margin:0 0 5px;font-size:13.5px;color:var(--fg-2)}#testing .qa p:last-child{margin-bottom:0}#testing .qa-a,#testing .qa-u{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;margin-bottom:2px}#testing .qa-a{color:var(--g700)}#testing .qa-u{color:var(--y700)}#testing .flowq{margin:14px 0 0}#testing .fq{display:grid;grid-template-columns:28px minmax(0,1fr);gap:14px;align-items:start;padding:0 0 18px 0;position:relative}#testing .fq::after{content:"";position:absolute;left:13px;top:26px;bottom:2px;width:1px;background:var(--n300)}#testing .fq.last::after{display:none}#testing .fq-n{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--o500);color:var(--o700);font-family:var(--mono);font-size:12px;background:var(--surface);position:relative;z-index:1}#testing .fq b{font-size:14.5px}#testing .fq p{margin:3px 0 0;font-size:14px;color:var(--fg-2)}


#testing .chip{white-space:normal}
#testing .blk{border-radius:12px}

.decision-record{margin:0;border-bottom:1px solid var(--border-default);padding:14px 0;scroll-margin-top:24px}
.decision-record summary{cursor:pointer;font-weight:600;line-height:1.6}
.decision-record .record-status{font-size:11px;color:var(--fg-muted);font-weight:400;margin-left:8px}
.decision-record[open]{padding-bottom:20px}
/* Register compatibility: the decision-register parser reads div.adr and div.oq div.q, whose doc.css styling belongs to the legacy cards. These wrappers carry the register contract around the compact decision-record and stay visually inert. */
.adr.decision-frame{margin:0;border:0;border-radius:0;background:none;overflow:visible}
.adr.decision-frame .super-tag{all:revert;box-sizing:border-box}
.adr.decision-frame .super-note{margin:0;padding:0;border:0;border-radius:0;background:none;font-size:inherit;color:inherit}
.adr.decision-frame .super-note b{font-weight:bolder;color:inherit}
.oq.decision-frame{display:block;margin:0;border:0;border-radius:0;background:none;overflow:visible}
.oq .q.decision-frame{padding:0;border-bottom:0}
.oq .q.decision-frame h4{display:inline;margin:0;font:inherit;color:inherit}
.oq .q.decision-frame h4::before{content:none}
.oq .q.decision-frame p{margin:0 0 14px;padding-left:0;max-width:74ch;font-size:13px;line-height:1.6;color:var(--fg-2)}
.oq .q.decision-frame p+p{margin-top:0}
.oq .q.decision-frame .who{font-family:inherit;font-size:13px;letter-spacing:normal;text-transform:none;color:var(--fg-2)}
.decision-frame .record-status.badge{display:inline;gap:normal;align-items:normal;padding:0;border:0;border-radius:0;background:none;color:var(--fg-muted);font-family:inherit;font-size:11px;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal}

/* Shared Vault ownership demonstration (developers/#drift). State comes from data-step on the figure; each element lists the steps it shows in with data-on. */
.vd{--vd-ease:cubic-bezier(.16,1,.3,1);--vd-dur:5200ms;overflow:visible}
.vd svg{min-width:0;flex:none}
.vd-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.vd-toggle{display:inline-flex;align-items:center;gap:6px;font:500 11px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-secondary);background:var(--n-0);border:1px solid var(--border-default);border-radius:var(--r-pill);padding:7px 12px;cursor:pointer;transition:border-color .12s,color .12s,background-color .12s}
.vd-toggle:hover{border-color:var(--n-400);color:var(--fg-primary)}
.vd-toggle svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.vd-toggle .vd-i-play{display:none;fill:currentColor}
.vd-toggle[aria-pressed="true"] .vd-i-pause{display:none}
.vd-toggle[aria-pressed="true"] .vd-i-play{display:block}
.vd :is(button):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}

.vd-steps{list-style:none;margin:14px 0 18px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.vd-step{position:relative;overflow:hidden;width:100%;display:flex;align-items:flex-start;gap:8px;text-align:left;font:inherit;font-size:12.5px;line-height:1.4;color:var(--fg-secondary);background:var(--n-0);border:1px solid var(--border-default);border-radius:var(--r-field);padding:10px 12px 12px;cursor:pointer;transition:border-color .15s,background-color .15s,color .15s}
.vd-step:hover{border-color:var(--n-400)}
.vd-step[aria-current="step"]{border-color:var(--o-500);background:var(--o-50);color:var(--fg-primary);font-weight:600}
.vd-n{flex:none;font:500 11px/18px var(--font-mono);color:var(--fg-muted)}
.vd-step[aria-current="step"] .vd-n{color:var(--n-700)}
.vd-bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--o-500);transform:scaleX(0);transform-origin:left}
.vd.is-playing .vd-step[aria-current="step"] .vd-bar{animation:vd-fill var(--vd-dur) linear forwards}
@keyframes vd-fill{to{transform:scaleX(1)}}

.vd-stage{display:grid;grid-template-columns:minmax(190px,1fr) minmax(0,2.2fr);gap:20px;align-items:start}
.vd-prs{display:grid;gap:10px}
.vd-pr{border:1px solid var(--border-default);border-radius:var(--r-card);background:var(--n-0);padding:12px 14px;transition:opacity .3s,background-color .3s}
.vd[data-step="4"] .vd-pr.a{background:var(--n-50)}
.vd[data-step="4"] .vd-pr.a .vd-tag{background:var(--n-600)}
.vd-pr-h{display:flex;align-items:center;gap:8px}
.vd-pr-t{font-size:12.5px;font-weight:600;line-height:1.35}
.vd-pr-s{display:grid;margin-top:8px;font:400 11px/1.4 var(--font-mono);color:var(--fg-muted)}
.vd-pr-s>span{grid-area:1/1}

.vd-tag{display:inline-flex;align-items:center;gap:5px;font:500 11px/1 var(--font-mono);letter-spacing:.03em;padding:4px 8px;border-radius:var(--r-tag);white-space:nowrap}
.vd-tag b{font-weight:600}
.vd-tag.a{background:var(--n-900);color:var(--n-0)}
.vd-tag.b{background:var(--o-50);color:var(--n-900);box-shadow:inset 0 0 0 1px var(--o-500)}

.vd-ledger{background:var(--n-0);border:1px solid var(--border-default);border-radius:var(--r-card);overflow:hidden}
.vd-ledger-h{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:9px 14px;background:var(--n-50);border-bottom:1px solid var(--border-default);font:500 10.5px/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--n-600)}
.vd-ledger-h span:first-child{color:var(--n-900)}
.vd-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 14px;border-bottom:1px solid var(--n-100)}
.vd-row:last-child{border-bottom:0}
.vd-path{flex:1 1 auto;min-width:0;font:400 12px/1.4 var(--font-mono);color:var(--fg-primary);background:none;padding:0}
.vd-owner{position:relative;display:grid;justify-items:end;align-items:center;min-width:118px;flex:none}
.vd-owner>*{grid-area:1/1}
.vd-owner>.vd-note{position:absolute;right:100%;top:50%;margin:-11px 10px 0 0}
.vd-free{font:400 11px/1 var(--font-mono);color:var(--fg-muted);display:inline-flex;align-items:center;gap:6px}
.vd-free::before{content:"";width:6px;height:6px;border-radius:50%;border:1.5px solid var(--n-400)}

.vd-note{display:inline-flex;align-items:center;gap:5px;font:500 11px/1 var(--font-mono);padding:4px 8px;border-radius:var(--r-tag);white-space:nowrap}
.vd-note svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.vd-note.refuse{color:var(--r-700);background:var(--r-50);box-shadow:inset 0 0 0 1px var(--r-500)}
.vd-note.held{color:var(--fg-muted);box-shadow:inset 0 0 0 1px var(--n-300);border-radius:var(--r-tag);background:transparent}
.vd-note.held{background-image:repeating-linear-gradient(135deg,transparent 0 4px,var(--n-100) 4px 5px)}

/* Everything driven by data-on starts hidden and arrives from the pull-request side. Exits are quicker than entrances. */
.vd [data-on]{opacity:0;visibility:hidden;transform:translateX(-18px);transition:opacity .15s ease-in,transform .15s ease-in,visibility 0s .15s}
.vd .vd-free,.vd .vd-pr-s>span,.vd .vd-out{transform:none}
.vd[data-step="0"] [data-on~="0"],.vd[data-step="1"] [data-on~="1"],.vd[data-step="2"] [data-on~="2"],.vd[data-step="3"] [data-on~="3"],.vd[data-step="4"] [data-on~="4"]{opacity:1;visibility:visible;transform:none;transition:opacity .4s var(--vd-ease) .08s,transform .5s var(--vd-ease) .08s,visibility 0s}
.vd[data-step="2"] .vd-note.refuse{animation:vd-refuse .5s .35s both}
.vd[data-step="2"] .vd-row[data-file="claude"]{animation:vd-flash 1.1s .35s}
@keyframes vd-refuse{0%{transform:translateX(0)}30%{transform:translateX(-5px)}60%{transform:translateX(3px)}100%{transform:none}}
@keyframes vd-flash{0%,100%{background-color:transparent}25%{background-color:var(--r-50)}}

.vd-outcome{display:grid;margin-top:18px;padding-top:14px;border-top:1px solid var(--border-default)}
.vd-out{grid-area:1/1;margin:0;max-width:80ch;font-size:13px;line-height:1.6;color:var(--fg-secondary)}
.vd-out code{font-size:12px}
.vd-verdict{display:inline-flex;align-items:center;gap:6px;margin-right:8px;font:600 11px/1 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;padding:4px 8px 4px 6px;border-radius:var(--r-tag);vertical-align:1px}
.vd-verdict svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vd-verdict{color:var(--n-900)}
.vd-out.ok .vd-verdict{background:var(--g-50);box-shadow:inset 0 0 0 1px var(--g-500)}
.vd-out.ok .vd-verdict svg{stroke:var(--g-700)}
.vd-out.no .vd-verdict{background:var(--r-50);box-shadow:inset 0 0 0 1px var(--r-500)}
.vd-out.no .vd-verdict svg{stroke:var(--r-700)}
.vd-out.end .vd-verdict{background:var(--n-100);box-shadow:inset 0 0 0 1px var(--n-300)}

@media(max-width:820px){
  .vd-steps{grid-template-columns:1fr 1fr}
  .vd-steps li:last-child{grid-column:1/-1}
  .vd-stage{grid-template-columns:1fr;gap:12px}
  .vd-prs{grid-template-columns:1fr 1fr}
  .vd [data-on]{transform:translateY(-10px)}
  .vd .vd-free,.vd .vd-pr-s>span,.vd .vd-out{transform:none}
}
@media(max-width:520px){
  .vd-prs{grid-template-columns:1fr}
  .vd-row{flex-wrap:wrap;row-gap:4px}
  .vd-path{flex-basis:100%}
  .vd-owner{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){
  .vd [data-on],.vd[data-step] [data-on~="0"],.vd[data-step] [data-on~="1"],.vd[data-step] [data-on~="2"],.vd[data-step] [data-on~="3"],.vd[data-step] [data-on~="4"]{transform:none!important}
  .vd [data-on]{transition:opacity .15s,visibility 0s}
  .vd[data-step="2"] .vd-note.refuse,.vd[data-step="2"] .vd-row[data-file="claude"]{animation:none}
  .vd.is-playing .vd-step[aria-current="step"] .vd-bar{animation-duration:var(--vd-dur)}
}
.vd figcaption{border-top:0;padding-top:0;margin-top:14px}

.vd-flow{list-style:none;display:flex;flex-wrap:wrap;gap:6px 0;margin:14px 0;padding:0}
.vd-flow li{display:inline-flex;align-items:center;font:500 11px/1 var(--font-mono);letter-spacing:.03em;color:var(--fg-primary);background:var(--n-0);border:1px solid var(--border-default);border-radius:var(--r-tag);padding:6px 10px}
.vd-flow li:not(:last-child)::after{content:"→" / "";position:absolute;right:-20px;color:var(--fg-muted)}
.vd-flow li:not(:last-child){margin-right:28px;position:relative}
.vd-flow li:last-child{border-color:var(--o-500);background:var(--o-50)}
.vd-steps li{display:flex}
.vd-step{height:auto;flex:1}
/* Leave room below the last section so a navigation jump can bring it to the top of the page. */
.main>div.sec:last-of-type{min-height:80vh}
/* Mark the docs section the reader is in within the site menu. */

/* Build Plan outline (2.2): one document with its register inside, and the records that stay outside it. */
.bp-figure{margin:20px 0 24px}
.bp-doc{background:var(--n-0);border:1px solid var(--border-default);border-radius:12px;padding:18px 20px}
.bp-doc-head{margin:0 0 4px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:15px}
.bp-meta{margin:0 0 14px;font-family:var(--font-mono);font-size:11.5px;color:var(--fg-muted)}
.bp-sections{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.bp-sec{background:var(--n-50);border:1px solid var(--border-default);border-left:3px solid var(--n-400);border-radius:8px;padding:12px 14px}
.bp-core{border-left-color:var(--o-500)}
.bp-sec p,.bp-register p,.bp-recovery p{margin:0}
.bp-name{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;font-weight:600;color:var(--fg-primary);margin-bottom:4px!important}
.bp-label{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--o-700)}
.bp-log .bp-label{color:var(--fg-muted)}
.bp-sec p:not(.bp-name),.bp-register p:not(.bp-name),.bp-recovery p:not(.bp-name){font-size:13.5px;color:var(--fg-secondary)}
.bp-recovery{margin-top:10px;padding:10px 12px;background:var(--n-0);border:1px dashed var(--o-500);border-radius:6px}
.bp-register{margin-top:10px;padding:12px 14px;background:var(--y-50);border:2px dashed var(--y-500);border-radius:8px}
.bp-register .bp-label{color:var(--y-700)}
.bp-pending{font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--y-700);border:1px solid var(--y-500);border-radius:6px;padding:2px 8px;background:var(--n-0)}
.bp-outside{margin-top:14px;padding:14px 16px;border:1px solid var(--n-300);border-radius:12px}
.bp-outside .data-label{margin:0 0 10px}
.bp-outside ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bp-outside li{display:flex;flex-direction:column;gap:4px}
.bp-outside li span{font-size:13.5px;color:var(--fg-secondary)}
.bp-figure figcaption{margin-top:12px;padding:0;border:0;font-family:var(--font-body);font-size:13px;color:var(--fg-muted);max-width:90ch}
/* Screenshot figure in 4.4 step 9 */
.evidence-shot{margin:16px 0 20px}
.evidence-shot img{display:block;max-width:100%;height:auto;max-height:520px;width:auto;border:1px solid var(--border-default);border-radius:12px}
.evidence-shot figcaption{margin-top:10px;padding:0;border:0;font-family:var(--font-body);font-size:13px;color:var(--fg-muted);max-width:90ch}
@media(max-width:640px){.bp-doc{padding:14px}.bp-outside ul{grid-template-columns:1fr}}
.guide-main .ref-disclosure>ul.tight+p{margin-top:16px;padding-top:12px;border-top:1px dashed var(--border-default)}

/* File treatment: the outline reads as a Markdown file in an editor tab. */
.bp-doc{padding:0;overflow:hidden;box-shadow:0 1px 0 var(--n-100),0 6px 18px rgba(0,0,0,.05)}
.bp-file{display:flex;align-items:center;gap:8px;padding:9px 14px;background:var(--n-50);border-bottom:1px solid var(--border-default);font-family:var(--font-mono);font-size:12px;color:var(--fg-secondary)}
.bp-file-icon{flex:none;color:var(--o-700)}
.bp-file-name{min-width:0;overflow-wrap:anywhere}
.bp-file-type{margin-left:auto;flex:none;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted)}
.bp-page{padding:18px 20px 20px;background:var(--n-0)}
.bp-doc-head{font-size:17px}
.bp-doc-head .bp-label::before{content:"# ";color:var(--n-400)}
.bp-sections{gap:6px}
.bp-sec{background:transparent;border:0;border-left:0;border-radius:0;padding:10px 0 10px 14px;box-shadow:inset 2px 0 0 var(--n-100)}
.bp-core{box-shadow:inset 2px 0 0 var(--o-500)}
.bp-core>.bp-name .bp-label::before,.bp-log>.bp-name .bp-label::before,.bp-register>.bp-name .bp-label::before{content:"## ";color:var(--n-400)}
.bp-recovery .bp-label::before{content:"### ";color:var(--n-400)}
.bp-register{background:var(--y-50)}
@media(max-width:640px){.bp-page{padding:14px}.bp-file-type{display:none}}
.bp-file .bp-file-icon{width:14px;height:14px;min-width:0;max-width:14px;display:block}
