/* A deliberately paced, daylight journey through the connected facility. */
.terminal-scroll{--terminal-base-height:2050svh;--terminal-stage-height:clamp(510px,calc(100svh - 124px),980px);--terminal-pace-extra:0;height:calc(var(--terminal-base-height) + (var(--terminal-base-height) - var(--terminal-stage-height)) * var(--terminal-pace-extra));position:relative}
.terminal-chapter-anchor{position:absolute;left:0;height:1px;width:1px;scroll-margin-top:110px;pointer-events:none}
.terminal-stage{height:calc(100svh - 124px);max-height:980px;min-height:510px;top:94px;display:block;overflow:clip;background:radial-gradient(ellipse at 50% 40%,#fafff8 5%,#edf5ee 48%,#dae8e2 100%);isolation:isolate;color:#17352d}
.terminal-stage [hidden]{display:none!important}
.terminal-world,.terminal-overlay,.terminal-detections{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.terminal-world{opacity:var(--model,1)}.terminal-world canvas{width:100%;height:100%;display:block}
.terminal-overlay{z-index:3}.terminal-detections{z-index:4;opacity:var(--model,1)}
.terminal-heading{position:absolute;left:28px;top:26px;z-index:5;max-width:360px;padding:20px 23px;border-radius:15px;background:#fafff5eb;backdrop-filter:blur(12px);box-shadow:0 8px 35px #1a30280b;pointer-events:none}
.terminal-heading>p:first-child{font-size:11px;margin:0 0 11px;color:#527363}.terminal-heading h3{font-size:clamp(25px,2.8vw,40px);line-height:1.08;letter-spacing:-1.4px;margin:0 0 12px}.terminal-heading>p:last-child{font-size:13px;line-height:1.5;max-width:290px;margin:0;color:#587366}
.terminal-opening{position:absolute;inset:0;z-index:2;opacity:var(--photo,1);background:#dbe6df;pointer-events:none}.terminal-opening img{width:100%;height:100%;object-fit:cover;object-position:center}.terminal-opening:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#173e49b0,transparent 45%)}.terminal-opening-caption{position:absolute;bottom:90px;left:44px;z-index:2;color:white;font-size:clamp(24px,3.3vw,48px);line-height:1.08;letter-spacing:-1.6px;font-weight:600;max-width:600px}
.terminal-asset-tag{position:absolute;display:flex;align-items:center;gap:7px;transform:translate(-50%,-100%);color:#21483b;background:#fcfff6f2;border:1px solid #60bd9d;border-radius:8px;padding:7px 10px;box-shadow:0 5px 20px #16382f18;white-space:nowrap}.terminal-asset-tag i{height:6px;width:6px;border-radius:50%;background:#60bd9d}.terminal-asset-tag span{font-size:9px;line-height:1.2}.terminal-asset-tag strong{font-size:13px;display:block;margin-top:2px}.terminal-asset-tag:after{content:'';height:14px;width:1px;background:#60bd9d;position:absolute;left:50%;top:100%}.tag-blocked{border-color:#d85d50;color:#974236}.tag-blocked i,.tag-blocked:after{background:#d85d50}.tag-endpoint{padding:10px 14px;border-width:2;box-shadow:0 0 0 5px #ffffff80,0 4px 20px #345a4020}.tag-endpoint strong{font-size:15px}.tag-endpoint:after{height:25px;width:2px}.tag-endpoint i{height:8px;width:8px}.tag-endpoint.tag-from{transform:translate(-100%,-100%)}.tag-endpoint.tag-from:after{left:100%}.tag-endpoint.tag-to{transform:translate(0,-100%)}.tag-endpoint.tag-to:after{left:0}
.terminal-story-foot{position:absolute;z-index:10;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 26px;background:#f6faf0ed;color:#5b7969;font-size:10px;min-height:58px;border-top:1px solid #779e811f}.terminal-story-foot label{display:flex;align-items:center;gap:16px;white-space:nowrap}.terminal-story-foot input{width:160px;accent-color:#60bd9d;height:12px;cursor:ew-resize}.terminal-story-foot input:focus-visible{outline:2px solid #89c2ff;outline-offset:5px}
.ray-orb-wrap{position:absolute;left:50%;top:calc(40% - 14% * var(--welcome,0));width:calc(230px - 60px * var(--welcome,0));height:calc(230px - 60px * var(--welcome,0));transform:translate(-50%,-50%) scale(calc(.5 + var(--orb,0)*.5));opacity:var(--orb,0);z-index:4;pointer-events:none}.ray-orb-halo{position:absolute;inset:-90px;background:radial-gradient(ellipse,#60bd9d27,transparent 68%);border-radius:50%}.ray-orb{position:absolute;inset:0;border-radius:50%;overflow:hidden;box-shadow:inset -25px -25px 50px #1c476b88,inset 4px 4px 25px #e5fff7cc,0 25px 80px #4c918a30;background:radial-gradient(circle at 28% 25%,#d7f9e7,#60bd9d 27%,#72b3bf 55%,#5974b3 83%)}.ray-orb-flow{position:absolute;inset:-30%;background:conic-gradient(from 30deg,transparent 5%,#89c2ff99 20%,transparent 32%,#d2ffeb88 47%,transparent 60%,#7b6bb777 78%,transparent 95%);filter:blur(18px);animation:ray-flow 14s linear infinite}.ray-orb-core{position:absolute;inset:6%;border:1px solid #e9fff477;border-radius:50%;background:radial-gradient(circle at 30% 20%,#f2fff640,transparent 45%)}.ray-orb span{position:absolute;inset:10%;border:1px solid #e2fff588;border-radius:50%;transform:rotate(-35deg) scaleX(.32)}.ray-orb span:nth-last-child(2){transform:rotate(30deg) scaleX(.53)}.ray-orb span:last-child{transform:rotate(70deg) scaleX(.7)}@keyframes ray-flow{to{transform:rotate(360deg)}}
.ray-welcome{position:absolute;left:50%;top:66%;transform:translate(-50%,-50%);width:90%;text-align:center;color:#254f40;z-index:5;opacity:calc(var(--orb,0) * var(--welcome-show,0));pointer-events:none}.ray-welcome h3{font-size:clamp(30px,4.2vw,56px);letter-spacing:-1.8px;margin:0 0 12px}.ray-welcome p{font-size:18px;line-height:1.4;color:#698476;margin:0}.story-orb .terminal-heading{background:transparent;box-shadow:none;backdrop-filter:none;max-width:330px}.story-orb .terminal-heading h3{font-size:28px}.terminal-stage[data-chapter='5'] .terminal-heading{opacity:0}.terminal-stage[data-chapter='5'] .ray-welcome{top:54%}
.ray-story-query{position:absolute;bottom:82px;left:50%;transform:translateX(-50%);width:min(770px,calc(100% - 64px));z-index:6;background:#ffffff;color:#254f40;border:1px solid #adcdbd;border-radius:19px;padding:21px 64px 24px 26px;opacity:var(--query,0);box-shadow:0 15px 50px #3d73551a;min-height:115px}.ray-story-query>span:first-child{font-size:11px;display:block;margin-bottom:10px;color:#779383}.ray-story-query p{font-size:21px;line-height:1.35;margin:0;font-weight:500;min-height:30px}.ray-input-placeholder{color:#9eafa3}.ray-query-arrow{position:absolute;right:19px;top:42%;font-size:21px;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;background:#dceee3}.ray-typing-caret{display:none;vertical-align:middle;height:24px;width:2px;margin-left:3px;background:#60bd9d}.is-typing .ray-typing-caret{display:inline-block;animation:ray-caret .85s step-end infinite}@keyframes ray-caret{50%{opacity:0}}
.ray-analysis-panel{position:absolute;right:24px;top:24px;bottom:80px;width:310px;z-index:5;background:#fbfff7f2;backdrop-filter:blur(16px);border:1px solid #ffffffaa;border-radius:17px;padding:21px;overflow:auto;box-shadow:0 12px 45px #183a3010;opacity:var(--checks,0)}.ray-analysis-header{display:flex;align-items:center;gap:9px}.ray-analysis-header strong{font-size:20px}.ray-analysis-header>span:last-child{margin-left:auto;font-size:9px;color:#6a7c72}.ray-mini-orb{height:26px;width:26px;border-radius:50%;background:radial-gradient(circle at 25% 25%,#d3fff3,#60bd9d 40%,#89c2ff 70%,#7b6bb7);box-shadow:inset -2px -2px 5px #143b6c40}.ray-analysis-question{font-size:19px;line-height:1.25;font-weight:600;letter-spacing:-.5px;margin:20px 0}.ray-evidence{display:flex;gap:10px;padding:12px 0;opacity:.6;border-top:1px solid #3b665022}.ray-evidence.check-active{opacity:1}.ray-evidence>i{font-style:normal;flex-shrink:0;background:#e4eee4;color:#3d765e;font-size:11px;display:grid;place-items:center;border-radius:50%;width:22px;height:22px}.ray-evidence:nth-child(2)>i{background:#fae3de;color:#bc5748}.ray-evidence strong{font-size:12px}.ray-evidence p{font-size:11px;line-height:1.5;margin:5px 0 6px;color:#557064}.ray-evidence div>span{font-size:9px;color:#6d8b7a;display:block}.ray-plan-result{margin-top:12px;padding:14px;border:1px solid #60bd9d77;border-radius:12px;background:#e5f0e5}.ray-plan-result>span{font-size:10px;color:#557766}.ray-plan-result strong{display:block;font-size:24px;margin:4px 0 7px;letter-spacing:-1px}.ray-plan-result p{font-size:11px;line-height:1.4;margin:0;color:#557064}.story-analysis .terminal-heading{max-width:300px;left:24px;top:24px;padding:17px 20px}.story-analysis .terminal-heading h3{font-size:28px}.story-analysis .terminal-heading>p:last-child{font-size:12px}
.terminal-weather{position:absolute;left:24px;bottom:82px;width:min(510px,calc(100% - 370px));z-index:5;padding:22px;border-radius:16px;background:#fafff7ed;box-shadow:0 15px 60px #24403015;opacity:var(--weather,0)}.terminal-weather>span{font-size:10px;color:#698576}.terminal-weather h4{font-size:22px;font-weight:600;letter-spacing:-.7px;margin:10px 0 20px}.weather-comparison{display:grid;grid-template-columns:1fr 1fr;gap:12px}.weather-comparison>div{padding:16px;border:1px solid #b8d8c2;border-radius:12px;background:#edf6ec}.weather-comparison .weather-tomorrow{background:#edf2f4;border-color:#c3d1d9}.weather-comparison svg{width:52px;height:34px;fill:none;stroke:#668b9e;stroke-width:1.6;display:block;margin-bottom:12px}.weather-comparison strong{font-size:13px;display:block}.weather-comparison p{font-size:11px;margin:5px 0;color:#547163}.weather-comparison span{font-size:9px;line-height:1.4;color:#779082;display:block}
.terminal-drawing-map{position:absolute;inset:20px 20px 70px;z-index:7;display:flex;flex-direction:column;border:1px solid #d9e4d9;border-radius:17px;overflow:hidden;background:#f8fcf4;opacity:var(--drawings,0);box-shadow:0 10px 50px #36554018}.drawing-map-title{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;background:#fcfff8;border-bottom:1px solid #dce5db}.drawing-map-title>div:first-child>span{display:block;font-size:10px;color:#6e8c78;margin-bottom:5px}.drawing-map-title strong{font-size:21px;font-weight:500;letter-spacing:-.6px}.drawing-map-legend{font-size:10px;display:flex;align-items:center;gap:7px;white-space:nowrap;color:#6c8374}.drawing-map-legend i,.drawing-map-legend b{display:inline-block;background:#327fa1;width:14px;height:3px}.drawing-map-legend b{background:#c45447;margin-left:10px}.connected-canvas{position:relative;flex:1;min-height:0;background:#edf2ec;display:grid;place-items:center}.connected-canvas svg{width:100%;height:100%;min-height:0}.drawing-internal-route,.drawing-continuation{stroke-dasharray:1;stroke-dashoffset:calc(1 - clamp(0,(var(--network,0)*5 - var(--sheet)),1));}.terminal-drawing-map>p{font-size:10px;line-height:1.45;color:#78917c;padding:10px 20px;margin:0;border-top:1px solid #dce5db;background:#fcfff8}.story-drawings .ray-analysis-panel,.story-drawings .terminal-heading{opacity:0;pointer-events:none}
.terminal-fallback{position:absolute;inset:0}.terminal-fallback img{width:100%;height:100%;object-fit:cover;opacity:.75}.terminal-no-script{position:absolute;inset:20px;background:#f8fcf2;z-index:20;border-radius:16px;padding:30px}.terminal-no-script h3{font-size:32px}.terminal-no-script p{max-width:520px;line-height:1.6}
@media(min-width:1500px){.terminal-heading{left:40px;top:34px}.ray-analysis-panel{right:35px;top:34px;width:335px}.terminal-drawing-map{inset:25px 30px 74px}}
@media(max-width:900px){.terminal-heading{max-width:280px}.terminal-heading h3{font-size:28px}.ray-analysis-panel{width:265px;padding:17px}.ray-analysis-question{font-size:17px}.story-analysis .terminal-heading{max-width:255px}.terminal-weather{width:calc(100% - 330px)}.weather-comparison{gap:8px}.weather-comparison>div{padding:10px}.drawing-map-title strong{font-size:18px}.drawing-map-legend{font-size:8px}}
@media(max-width:650px){.terminal-scroll{--terminal-base-height:2000svh;--terminal-stage-height:clamp(510px,calc(100svh - 96px),980px)}.terminal-stage{top:78px;height:calc(100svh - 96px);min-height:510px}.terminal-heading{left:15px;top:16px;max-width:245px;padding:16px 18px}.terminal-heading h3{font-size:27px}.terminal-heading>p:last-child{font-size:11px}.terminal-heading>p:first-child{font-size:9px}.terminal-opening-caption{left:22px;bottom:82px;font-size:30px}.terminal-story-foot{padding:13px 15px;min-height:52px;font-size:8px}.terminal-story-foot label{gap:8px}.terminal-story-foot label>span{display:none}.terminal-story-foot input{width:105px}.terminal-asset-tag{padding:5px 7px}.terminal-asset-tag strong{font-size:11px}.terminal-asset-tag span{font-size:7px}.tag-endpoint strong{font-size:12px}.ray-orb-wrap{top:calc(40% - 13% * var(--welcome,0));width:calc(170px - 20px * var(--welcome,0));height:calc(170px - 20px * var(--welcome,0));}.ray-welcome h3{font-size:35px}.ray-welcome p{font-size:15px}.terminal-stage[data-chapter='5'] .ray-welcome{top:49%}.ray-story-query{bottom:76px;width:calc(100% - 30px);padding:17px 45px 19px 19px;min-height:120px}.ray-story-query p{font-size:19px}.ray-query-arrow{right:12px;width:28px;height:28px;font-size:18px}.story-analysis .terminal-heading{left:15px;top:14px;max-width:calc(100% - 30px);padding:13px 16px}.story-analysis .terminal-heading h3{font-size:24px;margin-bottom:8px}.story-analysis .terminal-heading>p:last-child{font-size:11px}.ray-analysis-panel{left:15px;right:15px;top:auto;bottom:65px;width:auto;max-height:200px;padding:14px 16px;border-radius:13px}.ray-analysis-header>span:last-child{font-size:9px}.ray-analysis-question{display:none}.ray-evidence{display:none;padding:10px 0 0;border-top:0}.ray-evidence.check-active{display:flex}.ray-evidence strong{font-size:12px}.ray-evidence p{font-size:11px}.ray-plan-result{display:none}.terminal-weather{left:15px;right:15px;top:151px;bottom:auto;width:auto;padding:16px}.terminal-weather h4{font-size:18px;margin:6px 0 12px}.weather-comparison>div{padding:11px}.weather-comparison svg{width:36px;height:26px;margin-bottom:7px}.terminal-drawing-map{inset:14px 12px 65px}.drawing-map-title{padding:14px 15px;display:block}.drawing-map-title strong{font-size:18px;display:block;max-width:270px}.drawing-map-legend{margin-top:11px;font-size:9px}.connected-canvas{overflow:auto;display:block}.connected-canvas svg{width:100%;height:100%;display:block;}.terminal-drawing-map>p{font-size:9px;padding:10px 14px}}
@media(prefers-reduced-motion:reduce){.ray-orb-flow,.ray-typing-caret{animation:none}.terminal-scroll{--terminal-base-height:1800svh}}

/* The entire presentation moves into the proposal inside Ray, then the click
   opens a drawing workspace above it. Keep the scroll control outside the zoom. */
.terminal-scene-frame { position:absolute; inset:0; transform-origin:0 0; will-change:transform; background:#e3eeeb; }
.ray-plan-result { appearance:none; display:block; width:100%; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.ray-plan-result > span { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.ray-plan-result > span svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.3; }
.ray-plan-result:hover, .ray-plan-result:focus-visible { border-color:#3d9775; background:#dceee1; outline:2px solid #60bd9d; outline-offset:3px; }
.story-clicked .ray-plan-result { background:#d2e9da; border-color:#3b9874; box-shadow:0 0 0 2px #60bd9d33; }
.ray-analysis-panel { scrollbar-width:thin; scrollbar-color:#a8c6b6 transparent; }
.ray-plan-cursor { position:absolute; z-index:9; width:30px; height:38px; pointer-events:none; filter:drop-shadow(0 3px 3px #173a3033); }
.ray-plan-cursor > svg { position:relative; width:30px; height:38px; fill:#fff; stroke:#17352d; stroke-width:2; stroke-linejoin:round; transform:scale(calc(1 - .14 * var(--press,0))); transform-origin:3px 2px; }
.ray-plan-cursor > span { position:absolute; left:3px; top:2px; width:56px; height:56px; border:2px solid #379975; background:#60bd9d22; border-radius:50%; opacity:var(--press,0); transform:translate(-50%,-50%) scale(calc(.25 + 1.2 * var(--click,0))); }
@media (max-width:650px) {
 .story-plan .ray-analysis-panel { max-height:320px; }
 .story-plan .ray-plan-result { display:block; margin-top:16px; padding:18px; }
 .story-plan .ray-evidence.check-active { padding-top:12px; }
 .story-plan .ray-plan-result strong { font-size:27px; }
 .ray-plan-cursor { width:26px; height:33px; }
 .ray-plan-cursor > svg { width:26px; height:33px; }
}

/* Engineering records have their own readable phase after the equipment. */
.ray-knowledge{position:absolute;inset:0;z-index:5;pointer-events:none}
.ray-knowledge-card{position:absolute;display:grid;grid-template-columns:30px 1fr;column-gap:12px;align-content:center;padding:17px;background:#fcfff9;border:1px solid #88b5a4;border-radius:15px;box-shadow:0 12px 36px #214e3920;color:#173e31;will-change:transform,opacity;transform-origin:center}
.ray-knowledge-icon{width:28px;height:28px;color:#347c65;align-self:center}
.ray-knowledge-card strong{display:block;font-size:20px;line-height:1.15;font-weight:700;letter-spacing:-.5px;white-space:nowrap}
.ray-knowledge-card div>span{display:block;font-size:11px;line-height:1.35;margin-top:5px;color:#55776a}
.ray-knowledge-reference{grid-column:1/-1;display:flex;align-items:center;gap:7px;margin-top:13px;padding-top:10px;border-top:1px solid #dce9df}
.ray-knowledge-reference i{width:5px;height:5px;flex-shrink:0;border-radius:50%;background:#3da982}
.ray-knowledge-card .ray-knowledge-reference>span{font-size:10px;margin:0;color:#3e6b58}
.ray-knowledge-reference svg{margin-left:auto;width:15px;height:15px;color:#59917b}
@media(max-width:900px) and (min-width:651px){.ray-orb-wrap{width:calc(190px - 20px * var(--welcome,0));height:calc(190px - 20px * var(--welcome,0))}.ray-knowledge-card{padding:12px;gap:8px;grid-template-columns:24px 1fr}.ray-knowledge-icon{width:23px;height:23px}.ray-knowledge-card strong{font-size:17px}.ray-knowledge-card div>span{font-size:10px}}
@media(max-width:650px){.ray-knowledge-card{padding:12px 10px;gap:7px;grid-template-columns:21px 1fr;border-radius:12px;box-shadow:0 8px 24px #214e3920}.ray-knowledge-icon{width:21px;height:21px}.ray-knowledge-card strong{font-size:15px;letter-spacing:-.35px}.ray-knowledge-card div>span{font-size:9px;margin-top:4px}.ray-knowledge-reference{margin-top:8px;padding-top:7px;gap:5px}.ray-knowledge-card .ray-knowledge-reference>span{font-size:8px}.ray-knowledge-reference svg{width:11px;height:11px}}

/* The maintenance label points from beside the volume, leaving the route clear. */
.tag-blocked:after{display:none}
