/* Shared world layout. The canvas retains its own measured viewport. */
.world-station{--station-height:calc(100svh - 61px);height:var(--station-height);min-height:480px;display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;background:#fbf7ee;position:sticky;top:0;align-self:start;z-index:8}
.world-station .stage{height:100%!important;min-height:0!important;width:100%;border:0}
.world-dock{position:relative;background:#fbf7ee;border-top:1px solid #d2c5af;padding:12px 16px;color:#241b15;z-index:9}
.world-cue{font:13px/1.4 var(--sans);margin:0 0 9px;color:#4e3629}
.world-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.world-actions button{min-width:0;min-height:44px;padding:10px 12px;border:1px solid #c9bba4;border-radius:4px;background:transparent;color:#4e3629;cursor:pointer;font:500 12px/1.3 var(--sans);transition:background-color 180ms,color 180ms,border-color 180ms}
.world-actions button:first-child{background:#4e3629;border-color:#4e3629;color:#fff9ee}
.world-actions button:disabled{opacity:.45;cursor:default}
.world-actions button:focus-visible{outline:3px solid #a81f15;outline-offset:2px}
.world-actions button:active:not(:disabled){transform:translateY(1px)}
.world-station .legend{max-width:calc(100% - 24px);left:12px;bottom:12px;font-size:11px;letter-spacing:0;gap:8px 14px;padding:7px 10px;border-radius:3px;background:rgba(251,247,238,.94);color:#34291e;pointer-events:none}
.world-station .banner{bottom:70px;max-width:90%;font-size:12px;pointer-events:none}
.world-station .cams{bottom:auto;height:auto;top:12px;right:12px;max-width:calc(100% - 24px);gap:4px}
.world-station .cams button{min-height:34px;font-size:10px;padding:8px}
.world-station .hud{top:56px;left:12px;max-width:calc(100% - 24px)}
.world-station .hud span{font-size:10px}
.world-station .vign{opacity:.5}
.world-station .board-help{bottom:62px;left:12px;max-width:90%;font:11px/1.4 var(--mono);padding:6px 8px;background:rgba(18,39,39,.86);color:#f7eedb;pointer-events:none}
.world-station .probability-scale{display:block;font-size:10px}
.captain-comparison{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}
.captain-comparison div{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap}
.captain-comparison span{font:11px/1.3 var(--sans);color:#6a5847}
.captain-comparison strong{font:500 13px/1.3 var(--mono)}
.world-actions #askBtn,.world-actions #fireBtn{display:grid;grid-template-columns:1fr auto;gap:3px 8px;text-align:left}
.world-actions button b{font:600 13px/1.2 var(--sans)}
.world-actions button u{font:500 12px/1.2 var(--mono);text-decoration:none}
.world-actions button i{grid-column:1/-1;font:11px/1.2 var(--sans);font-style:normal}
.world-provenance summary{cursor:pointer;font:500 12px/1.5 var(--sans);color:#4e3629;min-height:30px}
.world-provenance>.cblock{padding:14px 0 0;border:0}
.world-provenance .receipt{grid-template-columns:1fr;gap:8px}
.world-provenance dd{font-size:12px}
.world-provenance .receipt-dl{margin-top:12px}
/* Original transport controls move as one unit, preserving quiz locking. */
.world-dock #block-transport{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:0;border:0}
.world-dock #block-transport>.clabel{display:none}
.world-dock #dir-seg{gap:5px}
.world-dock #dir-seg button{padding:8px;min-height:40px}
.world-dock #dir-seg small{display:none}
.world-dock #dir-seg strong{font-size:12px;margin:0}
.world-dock .trow{margin:0;gap:5px}
.world-dock .trow button{min-height:40px;font-size:11px}
.world-dock .rail-wrap{grid-column:1/-1;margin:0}
.world-dock .rail-caption{font-size:10px;margin-bottom:2px}
.world-dock input[type=range]{height:30px;margin:0;width:100%}
body[data-experience=time] .hero{padding:30px clamp(20px,7vw,110px)}
body[data-experience=time] .hero h1{font-size:clamp(48px,6vw,84px);line-height:.95;margin:16px 0}
body[data-experience=time] .hero .lede{max-width:730px;font-size:20px}
body[data-experience=time] .hero .microline{margin-top:14px;padding-top:12px;font-size:11px}
@media(min-width:801px) and (max-width:1080px){
  body .shell{grid-template-columns:minmax(0,1fr) 330px}
  body .console{max-height:calc(100svh - 61px);overflow:auto}
  .world-station .hud span:nth-child(n+3){display:none}
  .world-station .board-help{max-width:calc(100% - 24px)}
}
@media(max-width:800px){
  body .shell{grid-template-columns:1fr;min-height:0}
  .world-station{--station-height:clamp(360px,52svh,480px);min-height:0;box-shadow:0 8px 24px #241b1514}
  body .console{max-height:none;overflow:visible}
  .console button,.console input,.console summary{scroll-margin-top:calc(clamp(360px,52svh,480px) + 16px)}
  .world-station .hud{top:54px}
  .world-station .hud span:nth-child(n+2),.world-station .hud .reads{display:none}
  .world-station .legend{font-size:10px;padding:5px 7px;gap:4px 9px;bottom:8px}
  .world-station .board-help{display:none}
  .world-station .banner{bottom:65px;padding:8px 10px;font-size:11px}
  .world-dock{padding:10px 12px}
  .world-cue{font-size:12px}
  .captain-comparison strong{font-size:12px}
  .world-station .cams button{min-height:36px}
  .world-dock .rail-caption>span:last-child{display:none}
}
@media(max-height:560px) and (max-width:800px){.world-station{position:relative;height:400px}}
/* Embedded project pages retain bounded panels; primary controls stay in view. */
html.is-embed .world-station{--station-height:clamp(500px,56vw,760px);min-height:0}
html.is-embed .world-station .stage{height:100%!important}
@media(min-width:801px){html.is-embed .console{max-height:clamp(500px,56vw,760px)}}
@media(max-width:800px){html.is-embed .world-station{--station-height:400px}html.is-embed .console{max-height:none}}
@media(prefers-reduced-motion:reduce){.world-actions button{transition:none}.world-actions button:active:not(:disabled){transform:none}}

@media(max-width:650px){body .project-nav{grid-template-columns:1fr auto}body .project-nav>span{display:none}}
.world-station .banner{width:max-content}
/* Bound the control panel inside a main-page embed on small screens. */
@media(max-width:800px){
 html.is-embed .world-station{position:relative}
 html.is-embed .console{max-height:320px;overflow:auto;overscroll-behavior-y:auto}
 html.is-embed .console button,html.is-embed .console input,html.is-embed .console summary{scroll-margin-top:16px}
}

/* Progressive disclosure: the scene and its primary action lead. */
.world-station{grid-template-rows:auto minmax(0,1fr) auto auto}
.world-viewbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:8px 16px;border-bottom:1px solid #d2c5af;background:#fbf7ee;color:#6a5847;z-index:12;font:12px/1.4 var(--sans)}
.world-view{position:relative;flex-shrink:0}
.world-view>summary{cursor:pointer;list-style:none;padding:8px 10px;border:1px solid #d2c5af;border-radius:5px;color:#4e3629;font:500 12px/1.4 var(--sans)}
.world-view>summary::-webkit-details-marker{display:none}
.world-view>summary::after{content:'＋';margin-left:12px}
.world-view[open]>summary::after{content:'−'}
.world-view-content{position:absolute;right:0;top:calc(100% + 8px);width:min(320px,calc(100vw - 32px));padding:16px;background:#fbf7ee;border:1px solid #d2c5af;border-radius:6px;box-shadow:0 12px 32px #241b1526}
.world-view-content .cams,.world-view-content .hud,.world-view-content .board-help{position:static;max-width:none;width:auto;margin:0;display:flex;flex-wrap:wrap;gap:6px;padding:0;background:none;color:#4e3629;pointer-events:auto}
.world-view-content .cams{justify-content:flex-start;margin-bottom:16px}
.world-view-content .cams button{min-height:44px;padding:10px 12px;border:1px solid #c9bba4;border-radius:4px;background:transparent;color:#4e3629;font:500 12px/1.3 var(--sans);letter-spacing:0;text-transform:none;backdrop-filter:none}
.world-view-content .cams button.on{background:#4e3629;color:#fff9ee;border-color:#4e3629}
.world-view-content .hud span{display:inline!important;padding:0;background:none;border:0;backdrop-filter:none;color:#6a5847;font:10px/1.6 var(--mono);letter-spacing:0}
.world-view-content .hud b{color:inherit}
.world-view-content .hud .reads{display:flex!important;gap:10px;flex-wrap:wrap}
.world-view-content .board-help{margin-top:12px;font:12px/1.5 var(--sans)}
.world-view-help{margin:12px 0 0;font:12px/1.5 var(--sans)}
.world-station .world-scene-legend{position:static;display:flex;flex-wrap:wrap;max-width:none;width:100%;margin:0;padding:10px 16px;border-radius:0;background:#f3ede2;border-top:1px solid #d2c5af;color:#6a5847;font:11px/1.5 var(--sans);gap:4px 16px;letter-spacing:0}
.world-scene-legend span{white-space:normal}
.world-scene-legend i{width:14px!important;height:4px!important}
.world-station .banner{bottom:16px}
.world-dock{padding:16px}
.world-cue{margin-bottom:12px}
body[data-experience=planning] .world-cue{padding-right:58px;min-height:28px}
.world-reset{min-height:32px;padding:6px 9px;border:1px solid #c9bba4;border-radius:4px;background:transparent;color:#6a5847;font:12px/1.3 var(--sans);letter-spacing:0;text-transform:none;cursor:pointer}
.world-dock>.world-reset{position:absolute;right:16px;top:12px}
.console .cblock{padding:20px 22px;flex-shrink:0}
.console .chead h3{font-size:24px;line-height:1.2;max-width:25ch}
.console .chead .headsub,.console .chead .sub{font:14px/1.6 var(--sans);margin:12px 0 0;color:var(--ink-soft)}
.console .clabel{font:500 11px/1.4 var(--sans);letter-spacing:.02em;text-transform:none;gap:12px}
.console .clabel em{font:11px/1.4 var(--sans);letter-spacing:0;opacity:.8;text-align:right}
.console .seg button,.console .seg2 button,.console .qlist button{min-height:44px}
.console .seg button small{font:10px/1.4 var(--sans);letter-spacing:0;text-transform:none}
.console .seg button strong{font-size:13px}
.console #worldSeg small{display:none}
.console .world-disclosure,.console .world-provenance{border:0;border-bottom:1px solid var(--rule);padding:0;flex-shrink:0}
.world-disclosure>summary,.console .world-provenance>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:16px 22px;list-style:none;cursor:pointer;font:500 13px/1.5 var(--sans);color:#4e3629}
.world-disclosure>summary::-webkit-details-marker,.world-provenance>summary::-webkit-details-marker{display:none}
.world-disclosure>summary::after,.world-provenance>summary::after{content:'＋';font:16px/1 var(--sans);color:#8d7965}
.world-disclosure[open]>summary::after,.world-provenance[open]>summary::after{content:'−'}
.console .world-disclosure>.cblock,.console .world-provenance>.cblock{border:0;padding:0 22px 20px}
.console .world-disclosure[open]>summary,.console .world-provenance[open]>summary{color:#241b15}
.console .world-disclosure .clabel{color:#806e5d}
.console .world-decision .verdict{margin-top:0;padding:0;background:none;border:0}
.console .world-decision .flags{margin-top:16px}
.console .world-decision .verdict small{font-size:12px;line-height:1.6}
.console .runrow:empty{display:none}
.world-view summary:focus-visible,.world-disclosure summary:focus-visible,.world-provenance summary:focus-visible,.world-reset:focus-visible{outline:2px solid #a81f15;outline-offset:-3px}
@media(hover:hover){.world-disclosure>summary:hover,.world-provenance>summary:hover,.world-view>summary:hover,.world-reset:hover{background:#eee5d7}}
@media(max-width:800px){
 .world-station{position:relative;--station-height:clamp(440px,65svh,560px);box-shadow:none}
 .console button,.console input,.console summary{scroll-margin-top:16px}
 .world-viewbar{padding:8px 12px;font-size:11px}
 .world-view>summary{font-size:11px;min-height:40px}
 .world-station .world-scene-legend{padding:8px 12px;font-size:10px;gap:3px 12px}
 .world-dock{padding:12px}
 .console .chead h3{font-size:23px}
 .console .cblock{padding:20px}
 html.is-embed .world-station{--station-height:480px}
 html.is-embed .console{max-height:none;overflow:visible}
}
.console .chead .sub{text-transform:none;letter-spacing:0}
