:root{--bg:#eef0e8;--paper:#fcfaf4;--ink:#2d352e;--muted:#697267;--line:#d8ded1;--green:#355d49;--green-light:#e4ebdc;--gold:#9c733d;--warm:#f3eadb;--rust:#8b553d;--shadow:0 14px 40px #25372a0a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-size:14px;line-height:1.6}button,input{font:inherit}button{cursor:pointer;border:1px solid #c4cebc;border-radius:7px;background:var(--paper);color:var(--green);padding:9px 13px;text-align:left;line-height:1.45}button:hover:not(:disabled),.file-button:hover{background:#e1ead8;border-color:#8b9f7c}button:disabled{cursor:not-allowed;color:#807e72;background:#eeeee6;border-color:#d7d8cc}button:focus-visible,input:focus-visible,a:focus-visible,summary:focus-visible,.phone:focus-visible{outline:3px solid var(--gold);outline-offset:3px}a{color:var(--green)}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.13;margin:0}h1{font-size:28px}h2{font-size:30px}h3{font-size:24px}p{margin:0 0 12px}small{display:block}button strong{font-weight:600}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:10px;font-weight:700;line-height:1.5;color:var(--muted);margin:0 0 8px}.muted{color:var(--muted)}.quiet{font-size:11px;color:var(--muted);line-height:1.6;margin:8px 0 0}.text-button{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;padding:5px 0;font-size:12px}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover:not(:disabled){background:#244b38;color:#fff}.primary:disabled{background:#e6e8dd;color:#797e6e}.page-header,main,footer{width:min(1640px,100%);margin:auto;padding-left:48px;padding-right:48px}.page-header{padding-top:28px;padding-bottom:28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand-lockup{display:flex;gap:14px;align-items:center}.brand-mark{font:44px/1 Georgia,serif;color:var(--gold)}.brand-lockup .eyebrow{font-size:9px;margin-bottom:3px}.local-badge{display:flex;align-items:center;gap:8px;padding:6px 11px;border:1px solid var(--line);border-radius:99px;color:var(--muted);font-size:11px}.local-badge span{width:6px;height:6px;border-radius:50%;background:#82936a}.intro{display:grid;grid-template-columns:1fr 310px;gap:40px;padding:42px 0 32px}.intro h2{font-size:46px;line-height:1.08;margin-bottom:18px}.intro>div>p:last-child{max-width:660px;color:var(--muted);font-size:14px}.load-controls{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.load-controls p{font-size:11px!important;line-height:1.5;margin-top:12px;max-width:230px!important}.file-button{border:1px solid var(--green);background:var(--green);color:#fff;border-radius:7px;padding:12px 16px;display:flex;gap:30px;align-items:center;cursor:pointer;font-weight:600;font-size:13px;margin-bottom:7px}.file-button:hover{color:var(--green)}#chapter-file{position:absolute;width:1px;height:1px;opacity:0;clip-path:inset(50%)}.load-controls:focus-within .file-button{outline:2px solid var(--gold);outline-offset:3px}.review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 0;margin-bottom:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.toolbar-actions{display:flex;gap:7px;flex-wrap:wrap}.toolbar-actions button{font-size:11px;padding:7px 10px}.review-toolbar p{font-size:11px;color:var(--muted);margin:0;text-align:right}.review-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:36px;align-items:start}.map-column,.preview-column{min-width:0}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:0 0 20px}.section-heading h2{font-size:29px}.count-label{font-size:10px;color:var(--muted);white-space:nowrap;margin-bottom:4px}.bucket-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:22px}.bucket-tile{display:flex;gap:13px;padding:13px 14px;background:#f7f8f1;align-items:flex-start}.bucket-tile.selected{border-color:var(--green);background:#e2ead9}.bucket-number{font:26px/1.2 Georgia,serif;color:#8c9d7b;flex:none}.bucket-tile strong{display:block;font-size:12px;line-height:1.45}.bucket-tile small{font-size:10px;color:var(--muted);line-height:1.5;margin-top:4px}.map-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:13px}.map-controls>button{font-size:11px}.map-controls label{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:9px}.map-controls input{min-width:150px;max-width:230px;width:100%;padding:7px 10px;background:var(--paper);border:1px solid var(--line);border-radius:6px;font-size:11px;color:var(--ink)}.map-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:9px;color:var(--muted);width:100%;align-items:center}.map-legend>span{display:flex;align-items:center;gap:5px}.legend-line{width:22px;border-top:1px solid #869a7b}.legend-line.bypass{border-top:1px dashed var(--gold)}.legend-dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.map-description{font-size:11px;color:var(--muted);margin:13px 0 18px;max-width:680px}.swimlane-map{position:relative;padding-left:32px}.route-lines{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}.route-line{fill:none;stroke:#b7c4ac;stroke-width:1.2;opacity:.75}.route-line.bypass,.route-line.return{stroke:#b5976e;stroke-dasharray:4 4}.route-line.highlight{stroke:var(--green);stroke-width:2;opacity:1}.map-bucket{position:relative;margin-bottom:28px}.map-bucket-header{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;padding:13px 0 11px;background:var(--bg);border-top:1px solid var(--line)}.map-bucket-header .eyebrow{margin:0}.map-bucket-header>span{font-size:10px;color:var(--muted)}.quest-row{display:grid;grid-template-columns:repeat(var(--lanes),minmax(0,1fr));gap:28px;margin:13px 0 38px;align-items:start}.map-card{position:relative;z-index:1;grid-column:var(--lane);min-width:0;background:var(--paper);border:1px solid #ced6c4;border-radius:8px;box-shadow:0 4px 10px #283b2c03}.map-card.focused{border:1.5px solid var(--green);box-shadow:0 0 0 3px #d6e1cc}.node-heading{padding:16px 17px 12px}.node-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:9px;color:var(--muted);margin-bottom:7px}.node-meta>span:first-child{text-transform:uppercase;letter-spacing:.1em}.route-badge{padding:1px 5px;background:#e7eddf;border-radius:3px;color:#566d4e}.node-title{display:flex;width:100%;justify-content:space-between;gap:8px;align-items:start;background:none;border:0;border-radius:2px;color:var(--ink);padding:0;font:21px/1.2 Georgia,serif}.node-title span{font:14px/1.4 system-ui;color:#839474}.node-id{font-size:9px;color:#8b9184;margin:7px 0 0}.map-choice-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(145px,100%),1fr));gap:1px;background:var(--line);border-top:1px solid var(--line);border-radius:0 0 8px 8px}.map-choice{background:#f6f7ef;padding:12px 13px;min-width:0;border-radius:0 0 7px 7px}.map-choice.chosen{background:#e4ecdb}.map-choice.unavailable{background:#f2f1e9}.map-option-title{border:0;background:transparent;padding:0;color:var(--green);font-size:11px;line-height:1.5;font-weight:600;width:100%}.map-option-title:hover{background:transparent!important;text-decoration:underline}.route-destination{border-top:1px solid #dde2d5;padding-top:8px;margin-top:11px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-size:9px;color:var(--muted)}.route-destination button{border:0;padding:0;background:transparent;font-size:10px;line-height:1.5;color:#56704d}.bypass-tag{color:var(--gold);font-size:9px}.multi-unlock{font-size:9px;color:var(--gold);margin:10px 0 3px}.condition-label{display:block;font-size:9px;color:var(--rust);margin-top:8px;font-weight:600}.lock-reasons{font-size:11px;line-height:1.6;color:var(--rust);padding-left:16px;margin:9px 0 0}.lock-reasons li+li{margin-top:5px}.map-card .lock-reasons{font-size:9px;line-height:1.5}.kinds{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}.kind{font-size:9px;line-height:1.45;padding:4px 6px;border-radius:4px;background:#e8eddf;color:#5b704d}.kind.cost{background:#f0e5d2;color:#88643a}.map-card .kind{font-size:8px;padding:3px 5px}.amount-note{font-size:9px;color:var(--muted);margin:5px 0 0}.phone{border:7px solid #d4dbcc;border-radius:27px;background:var(--paper);box-shadow:var(--shadow);overflow:visible}.phone-status{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 18px;border-bottom:1px solid var(--line);font-size:9px;color:var(--muted);letter-spacing:.02em}.phone-dot{width:5px;height:5px;background:var(--green);border-radius:50%}.phone-content{padding:24px 22px 26px}.phone-content h2{font-size:30px;line-height:1.12;margin:7px 0 14px}.phone-content>.eyebrow{font-size:9px}.speakers{font-size:11px;color:#718069;margin-top:0;margin-bottom:18px}.story-copy{font:17px/1.7 Georgia,"Times New Roman",serif;color:#353a30;margin:19px 0}.story-copy p{margin-bottom:17px;overflow-wrap:anywhere;white-space:normal}.speaker-inline{font-weight:600}.options{border-top:1px solid var(--line);margin-top:25px}.quest-option{padding-top:17px;margin-top:1px}.quest-option+.quest-option{padding-top:18px}.choice-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:#e9efdf;border-color:#cad6bc;padding:13px 14px;font-size:12px;font-weight:600}.choice-button>span{font-weight:400;font-size:12px;flex:none}.chosen-label{padding:10px 13px;background:#e7eddf;border-left:2px solid #8da174;font-size:11px;color:var(--green);line-height:1.5;margin:15px 0 22px}.continue-block{border-top:1px solid var(--line);padding-top:17px;margin-top:25px}.continue-button{width:100%;display:flex;align-items:center;justify-content:space-between;font-size:13px;padding:13px 15px;margin-top:12px}.effect-notes{font-size:10px;color:var(--muted);padding-left:16px;margin:14px 0}.gate-notice{padding:13px;background:var(--warm);border:1px solid #e2d5bd;border-radius:5px;font-size:11px;margin-bottom:15px}.gate-notice .lock-reasons{margin-top:6px}.inspection-footer{border-top:1px solid var(--line);padding:16px 20px;display:flex;flex-direction:column;gap:8px}.inspection-footer button{font-size:11px}.review-panel{background:#f6f7ef;border:1px solid var(--line);border-radius:8px;padding:16px 18px;margin-top:16px}.review-panel>summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--green)}.review-panel>summary>span{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-left:14px;margin-top:3px}.review-panel[open]>summary{margin-bottom:15px}.review-warning{font-size:10px;line-height:1.6;color:var(--muted);border-left:2px solid var(--gold);padding-left:10px}.milestone{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);align-items:flex-start;cursor:pointer}.milestone input{accent-color:var(--green);margin-top:4px;flex:none}.milestone strong{font-size:11px;line-height:1.5;display:block}.milestone small{font-size:10px;line-height:1.6;color:var(--muted);margin-top:4px}.milestone .override-label{color:var(--gold)}.state-summary{margin-top:18px}.state-group h4{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:16px 0 8px}.state-group ul{list-style:none;margin:0;padding:0}.state-group li{display:flex;align-items:start;justify-content:space-between;gap:12px;font-size:10px;margin-top:7px}.state-group strong{text-align:right;font-weight:500;color:var(--green)}.history-list{list-style:none;padding:0;margin:0}.history-list>li{padding:12px 0;border-bottom:1px solid var(--line)}.history-type{display:block;font-size:9px;color:var(--muted);margin-bottom:3px}.history-list strong{font-size:11px;line-height:1.5;display:block}.history-list p,.history-list details{font-size:11px;margin:6px 0}.history-list details>summary{cursor:pointer;font-size:10px;color:var(--green)}.history-list details p{font:14px/1.65 Georgia,serif;padding-top:8px}.review-event{border-left:2px solid #c5af87;padding-left:10px!important}.review-event p{font-size:10px;color:var(--muted)}.empty-map{padding:35px 30px;background:#f7f8f0;border:1px dashed #bfcbb2;border-radius:8px;min-height:390px}.empty-map h2{font-size:33px;max-width:440px;margin:13px 0 20px}.empty-map>p{color:var(--muted);max-width:550px;font-size:13px}.empty-map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:40px;border-top:1px solid var(--line);padding-top:24px}.empty-map-grid span{font:23px Georgia,serif;color:#a2b18e}.empty-map-grid h3{font-size:19px;line-height:1.3;margin:12px 0}.empty-map-grid p{font-size:11px;line-height:1.7;color:var(--muted)}.empty-phone{padding-top:42px;padding-bottom:46px}.empty-symbol{font:56px Georgia,serif;color:#b4be9e;margin-bottom:25px}.empty-phone p:not(.eyebrow){font-size:13px;line-height:1.7}.synthetic-notice,.notice,.import-errors,.reset-confirm{border:1px solid #d7bf94;background:#f8edd9;padding:14px 18px;border-radius:7px;margin:0 0 18px;font-size:12px}.synthetic-notice{display:flex;gap:10px;flex-wrap:wrap;color:#826031}.synthetic-notice strong{font-size:10px;letter-spacing:.08em}.import-errors{color:#8a3927;white-space:pre-wrap;overflow-wrap:anywhere}.reset-confirm{margin-top:-10px}.reset-confirm button{margin-right:8px;font-size:11px}.scene-art{margin:20px 0}.scene-art img{display:block;width:100%;height:auto;border-radius:5px}.scene-art figcaption,.art-pending{font-size:10px;color:var(--muted);line-height:1.6;margin-top:6px}.art-pending{border:1px dashed var(--line);padding:12px;margin:15px 0}.art-pending>span{font-size:9px;text-transform:uppercase;letter-spacing:.1em}.art-pending p{margin:5px 0 0}.quest-thread{border-bottom:1px solid var(--line);padding:15px 0}.thread-status{display:block;font-size:9px;color:var(--muted);margin-bottom:7px}.thread-button{width:100%;display:flex;justify-content:space-between;gap:10px;padding:11px 13px;font-size:12px;margin-bottom:5px}.required-pending{margin-top:20px;font-size:10px;color:var(--rust)}.required-pending summary{cursor:pointer}.map-no-match{padding:30px;color:var(--muted)}#validation ul{padding-left:15px;font-size:10px;overflow-wrap:anywhere}footer{padding-top:38px;padding-bottom:30px;margin-top:40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;font-size:10px;color:var(--muted)}footer p{margin:0}.skip-link{position:absolute;left:10px;top:-100px;z-index:10;background:var(--paper);padding:10px}.skip-link:focus{top:10px}[hidden]{display:none!important}
.callback-controls,.readiness-controls{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.callback-controls h4,.readiness-controls h4,.milestones h4{font-size:11px;color:var(--green);margin:0 0 8px}.milestones h4{margin-top:18px}.readiness-controls{background:#f4ecdd;padding:13px;border:1px solid #e3d4b9;border-radius:6px}.callback{padding-top:13px}.callback button{width:100%;font-size:11px}.map-card.route-closed{border-style:dashed}.closed-badge{background:#eee3d4;color:var(--rust)}
@media(min-width:1700px){.review-layout{grid-template-columns:minmax(0,1fr) 410px;gap:44px}.phone-content{padding:27px}}
@media(max-width:1180px){.page-header,main,footer{padding-left:28px;padding-right:28px}.review-layout{grid-template-columns:minmax(0,1fr) 340px;gap:24px}.quest-row{gap:16px}.node-heading{padding:13px}.map-choice{padding:10px}.node-title{font-size:18px}.bucket-overview{grid-template-columns:1fr}.phone-content{padding:23px 19px}.empty-map-grid{grid-template-columns:1fr;gap:18px}.empty-map-grid h3{margin:7px 0}.empty-map-grid>div{display:grid;grid-template-columns:35px 1fr;gap:0 8px}.empty-map-grid p{grid-column:2}.empty-map-grid span{grid-row:span 2}}
@media(max-width:900px){.review-layout{grid-template-columns:minmax(0,1fr) 315px;gap:18px}.page-header,main,footer{padding-left:20px;padding-right:20px}.intro{grid-template-columns:1fr 235px;gap:20px}.intro h2{font-size:38px}.quest-row{grid-template-columns:1fr;gap:24px}.map-card{grid-column:1}.swimlane-map{padding-left:25px}.map-choice-row{grid-template-columns:repeat(auto-fit,minmax(min(135px,100%),1fr))}.section-heading h2{font-size:25px}.section-heading .count-label{font-size:9px}.phone-content{padding:21px 16px}.phone-content h2{font-size:28px}.story-copy{font-size:16px}.empty-map{padding:25px 20px}}
@media(max-width:710px){.page-header{padding-top:20px;padding-bottom:20px}.page-header h1{font-size:24px}.local-badge{font-size:9px;padding:4px 8px}.brand-mark{font-size:35px}.brand-lockup{gap:9px}.brand-lockup .eyebrow{font-size:8px}.intro{grid-template-columns:1fr;padding-top:30px;padding-bottom:25px;gap:22px}.intro h2{font-size:38px}.load-controls{display:grid;grid-template-columns:1fr;gap:4px;justify-items:start}.load-controls p{max-width:none!important;margin:5px 0}.file-button{padding:11px 15px}.review-layout{grid-template-columns:1fr;gap:28px}.preview-column{grid-row:1}.phone{max-width:420px;margin-left:auto;margin-right:auto}.preview-column>.section-heading{max-width:420px;margin-left:auto;margin-right:auto}.review-panel{max-width:420px;margin-left:auto;margin-right:auto}.phone-content{padding:25px}.phone-content h2{font-size:32px}.story-copy{font-size:18px}.review-toolbar{align-items:start;gap:10px}.review-toolbar p{font-size:9px;max-width:105px}.bucket-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.quest-row{grid-template-columns:repeat(var(--lanes),minmax(0,1fr))}.map-card{grid-column:var(--lane)}.empty-map-grid{grid-template-columns:1fr}.map-legend{font-size:10px}footer{flex-direction:column;gap:8px}}
@media(max-width:450px){.page-header,main,footer{padding-left:16px;padding-right:16px}.page-header{align-items:flex-start;gap:10px}.local-badge{font-size:8px;white-space:nowrap}.page-header h1{font-size:22px}.bucket-overview{grid-template-columns:1fr}.quest-row{grid-template-columns:1fr}.map-card{grid-column:1}.phone{border-width:6px}.phone-content{padding:22px 19px}.review-toolbar{flex-direction:column}.review-toolbar p{max-width:none;text-align:left}.map-choice-row{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.page-header,main,footer{width:100%;padding:12px}.review-layout{grid-template-columns:1fr}.preview-column{break-before:page}.load-controls,.review-toolbar,.map-controls,.reset-confirm{display:none}.phone{max-width:460px}.route-lines{display:none}.map-card{break-inside:avoid}.review-panel{break-inside:avoid}}
/* Optional authored overview stays compact until opened, with normal document flow. */
.story-overview-panel{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:18px 22px;margin:0 0 28px}.story-overview-panel>summary{cursor:pointer;font:23px/1.3 Georgia,serif;color:var(--green)}.story-overview-panel>summary>span{font:11px/1.5 system-ui;color:var(--muted);margin-left:12px}.story-overview-panel[open]>summary{margin-bottom:18px}.overview-warning,.count-explanation{font-size:10px;color:var(--muted);line-height:1.6}.overview-premise,.overview-cast-group,.overview-ties,.overview-endings{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.story-overview-panel h3{font-size:23px;margin-bottom:14px}.story-overview-panel h3>span{font:11px system-ui;color:var(--muted);margin-left:6px}.overview-copy{font-size:12px;line-height:1.75;overflow-wrap:anywhere}.overview-copy p{margin-bottom:9px}.overview-cast{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:20px}.character-summary h4,.overview-ending-grid h4{font:20px/1.3 Georgia,serif;margin:0 0 9px}.overview-label{font-size:9px;color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin:12px 0 3px}.overview-ties ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:18px}.overview-ties li>strong{font-size:11px}.overview-ending-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));gap:20px}.overview-outcome{font-size:11px;margin:6px 0}.content-counts{display:flex;gap:7px 16px;flex-wrap:wrap;font-size:10px;color:var(--muted);padding:11px 0;border-top:1px solid var(--line)}.content-counts strong{font-size:14px;font-weight:500;color:var(--green)}.count-explanation{margin:0 0 20px;max-width:690px}
@media(max-width:710px){.story-overview-panel{padding:16px}.story-overview-panel>summary>span{display:block;margin:5px 0 0 16px}}
.ending-outcomes-panel{background:var(--paper)}.ending-outcome-group{padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}.ending-outcome-group:first-child{padding-top:0;margin-top:0;border-top:0}.ending-outcome-group h3{font-size:20px;margin:0 0 12px}.ending-outcome-group h4{font:16px/1.4 Georgia,serif;margin:12px 0 7px}.ending-copy{font:15px/1.75 Georgia,serif;overflow-wrap:anywhere}.ending-copy p{margin-bottom:14px}.ending-mapping-notes{font-size:10px;color:var(--rust);padding-top:12px;border-top:1px solid var(--line)}.ending-mapping-notes ul{padding-left:15px}
.story-preview-controls{background:#f4f1e7;border:1px solid #dbd5c0;border-radius:8px;padding:15px 17px;margin-top:16px}.preview-funding{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.preview-funding input{accent-color:var(--green);margin-top:4px;flex:none}.preview-funding strong{font-size:11px;line-height:1.5;display:block}.preview-funding small{font-size:10px;line-height:1.6;color:var(--muted);margin-top:6px}.needed-progress{margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}.needed-progress:first-child{margin-top:0;padding-top:0;border:0}.needed-progress h3{font:17px/1.4 Georgia,serif}.needed-callback{margin-top:15px}.needed-callback>p{font-size:10px;line-height:1.6;margin-bottom:7px}.needed-callback button{width:100%;font-size:11px;background:#e5ecdc}.needed-callback .quiet{margin-top:7px}
@media(max-width:710px){.story-preview-controls{max-width:420px;margin-left:auto;margin-right:auto}}
.final-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:23px;padding-top:18px;border-top:1px solid var(--line)}.final-actions button{font-size:12px}
/* Portrait backdrop: keep the complete frame, with a plain panel over its lower third.
   The 48%-of-width overlap is approximately one third of a 2:3 portrait’s height. */
.scene-layout{position:relative}.scene-layout>.scene-art{margin:0}.scene-layout>.scene-art img{display:block;width:100%;height:auto;object-fit:contain}.scene-panel{position:relative;z-index:1;margin:-48% 10px 0;padding:20px 16px 0;background:var(--paper);border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0}.scene-panel>.story-copy{margin-top:17px}.scene-panel>.eyebrow{font-size:9px}.scene-panel h2{font-size:28px}.scene-layout:has(img[hidden])>.scene-panel{margin-top:14px}.scene-panel .options,.scene-panel .continue-block{margin-top:20px}.scene-panel .scene-art{margin-top:0}
@media(max-width:450px){.scene-panel{margin-left:7px;margin-right:7px;padding-left:12px;padding-right:12px}.scene-panel h2{font-size:26px}}

/* Contract details use natural document flow; no fixed height or inner scrolling. */
.design-contract{margin:12px 0;font-size:10px;line-height:1.55;overflow-wrap:anywhere}.design-contract dl{margin:0}.contract-row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;padding:5px 0;border-bottom:1px solid var(--line)}.contract-row dt{font-weight:600;color:var(--green)}.contract-row dd{margin:0;min-width:0}.contract-row ul{margin:0;padding-left:14px}.contract-row li+li{margin-top:5px}.contract-row small,.contract-none,.contract-note{color:var(--muted)}.contract-row small{font-size:9px}.contract-explanation{margin-top:4px}.contract-note{font-size:9px;margin:7px 0 0}.contract-details>summary,.contract-proposals>summary{cursor:pointer;color:var(--green)}.contract-details[open]>summary{margin-bottom:6px}.contract-proposals{border-left:2px solid var(--gold);padding-left:8px;margin-top:10px}.contract-proposals>summary{color:var(--rust)}.contract-proposals dl{margin-top:7px}.map-card .design-contract{font-size:9px}.map-card .contract-row{grid-template-columns:minmax(0,1fr);gap:2px}

.resource-map{padding:18px}.resource-map table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:12px}.resource-map th,.resource-map td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere}.resource-map th{color:var(--green)}.resource-map p{font-size:12px;color:var(--muted)}

.playthrough-link{display:block;padding:14px 18px;border-radius:12px;background:var(--green,#245947);color:white;text-decoration:none;font-weight:700;text-align:center;min-height:48px;box-sizing:border-box}.playthrough-link:focus-visible{outline:3px solid #b85c25;outline-offset:3px}

/* Read-only contract references; no route or choice controls. */
.design-contract dl{margin:0}.contract-row{margin:14px 0}.contract-row dt{font-weight:700}.contract-row dd{margin:6px 0}.design-contract ul{padding-left:20px}.design-contract li{margin:8px 0}.design-contract small{display:block;font-size:.82em;color:var(--muted,#706757);margin:4px 0}.requirement-state{font-weight:600}.requirement-context{margin:6px 0}.requirement-context summary,.requirement-sources summary,.requirement-group summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.requirement-context p{line-height:1.5}.contract-authored-detail p{margin:8px 0}.contract-note{font-size:.85em}.requirements-tree{max-width:100%;overflow-wrap:anywhere}
