:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#293e49;background:#edf0f1;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,select{font:inherit;cursor:pointer}button{background:#fff;border:1px solid #d7dfe3;color:#455b66;border-radius:5px;padding:9px 13px}button:hover{background:#f2f5f6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c55140;outline-offset:3px}header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#fafbfc;border-bottom:1px solid #d8e0e3}.brand{display:flex;align-items:center;gap:13px}.brand i{width:24px;height:31px;background:#bb4337;clip-path:polygon(0 0,100% 0,100% 70%,62% 100%,0 100%)}strong{font-size:19px;font-weight:600}.brand small{display:block;font-size:9px;color:#8b999f;letter-spacing:1.7px;margin-top:5px}header>span{font-size:12px;color:#83919a}.layout{display:grid;grid-template-columns:224px 1fr;min-height:calc(100vh - 78px)}aside{background:#fafbfc;border-right:1px solid #d8e0e3;padding:29px 12px;display:flex;flex-direction:column}.caption{font-size:10px;letter-spacing:1.5px;color:#8b9ba2}aside>.caption{padding:0 14px 24px}nav button{width:100%;display:flex;text-align:left;align-items:center;gap:13px;border:0;border-left:2px solid transparent;background:transparent;border-radius:0;padding:18px 12px;margin-bottom:5px}nav button.active{background:#f6eae6;border-left-color:#b94538;color:#a03e33}nav .num{font:12px monospace;color:#8e9da4}nav b{font-size:14px;font-weight:500}nav small{display:block;font-size:10px;margin-top:6px;color:#8c999f}.aside-note{margin-top:auto;padding:60px 15px 0;font-size:11px;color:#87969e;line-height:1.9}.aside-note b{color:#667b85;font-weight:500}.aside-note span{font-size:9px;letter-spacing:1px}main{min-width:0}.stage{height:calc(100vh - 270px);min-height:540px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#f6f8f8,#e5eaec)}canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.topline{position:absolute;top:20px;left:26px;right:26px;display:flex;justify-content:space-between;z-index:2;gap:10px}.segments{padding:3px;display:flex;background:#fffffff0;border:1px solid #d4dfe3;border-radius:7px}.segments button{border:0;font-size:12px;background:transparent}.segments button.active{background:#304b59;color:white}.tools{display:flex;gap:7px}.tools button{font-size:12px;background:#ffffffd9}.scene-title{position:absolute;left:30px;top:92px;pointer-events:none}.scene-title span{font-size:10px;letter-spacing:2px;color:#b74d40}h1{font-size:28px;font-weight:500;letter-spacing:1px;margin:11px 0} .scene-title p{font-size:12px;color:#7e919a;max-width:460px;line-height:1.7}.scene-note{position:absolute;right:26px;bottom:93px;text-align:right;font-size:10px;color:#8b9ba3;line-height:1.8}#legend{position:absolute;left:30px;bottom:99px;display:flex;gap:14px;flex-wrap:wrap;max-width:65%;font-size:11px;color:#637b87}#legend span{display:flex;align-items:center;gap:6px}#legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.playbar{position:absolute;left:26px;right:26px;bottom:20px;background:#fffffff0;border:1px solid #d6e0e4;border-radius:7px;padding:12px 16px;display:flex;align-items:center;gap:20px}.playbar button{border:0;padding:6px 0;min-width:65px;font-size:12px;background:transparent}.timeline{flex:1}.timeline>div{display:flex;justify-content:space-between;font-size:10px;color:#778c96}input{width:100%;accent-color:#ba4a3d;height:12px;margin:7px 0 0}select{border:0;background:transparent;color:#586f7b;font-size:12px}.info{padding:27px 30px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;background:#fafbfc;border-top:1px solid #d5dfe3}.info>div+div{border-left:1px solid #dfe5e8;padding-left:28px}h2{font-size:15px;font-weight:500;margin:11px 0}.info p{font-size:12px;line-height:1.95;color:#6c818c;margin:0}.boundary h2{color:#ad5347}#labels{position:absolute;inset:0;pointer-events:none}.label{position:absolute;font-size:10px;color:#49606d;background:#ffffffe8;border:1px solid #d3dfe4;border-radius:3px;padding:5px 8px;transform:translate(-50%,-50%);white-space:nowrap}.label:before{content:"";width:4px;height:4px;background:#a64e40;display:inline-block;border-radius:50%;margin-right:6px}dialog{max-width:960px;width:90%;max-height:86vh;border:1px solid #d2dce1;border-radius:12px;padding:32px;color:#3c5562}dialog::backdrop{background:#23384477;backdrop-filter:blur(5px)}dialog #close{float:right}dialog h2{font-size:24px}dialog p,dialog li{font-size:13px;line-height:1.9;color:#6b818c}a{color:#a3493b}table{border-collapse:collapse;width:100%;font-size:12px;margin:24px 0}td,th{padding:14px 12px;text-align:left;border-bottom:1px solid #dce4e8;line-height:1.7}th{background:#edf2f4;font-weight:500}.small{font-size:11px!important}#error{position:absolute;inset:40% 15%;padding:30px;background:white;z-index:9}.tablewrap{overflow:auto}@media(max-width:950px){header>span{display:none}.layout{grid-template-columns:180px 1fr}.topline{left:16px;right:16px}.tools{gap:4px}.tools button{padding:8px}.scene-title{left:20px}.info{gap:15px;padding:20px}.info>div+div{padding-left:15px}}@media(max-width:700px){header{padding:0 16px;height:68px}strong{font-size:16px}.brand small{font-size:8px}header button{font-size:11px}.layout{display:block}aside{padding:9px 8px;border-bottom:1px solid #d8e0e3}aside>.caption,.aside-note{display:none}nav{display:flex;overflow:auto}nav button{flex-shrink:0;width:auto;padding:11px 12px;margin:0;border-left:0;border-bottom:2px solid transparent;gap:7px}nav button.active{border-bottom-color:#b94538}nav b{font-size:12px}nav small{display:none}.stage{height:640px;min-height:0}.topline{flex-wrap:wrap;top:12px}.segments button{padding:8px 10px}.tools button{font-size:10px}.scene-title{top:110px}h1{font-size:24px}.scene-title p{max-width:300px}.info{grid-template-columns:1fr;gap:22px}.info>div+div{border-left:0;border-top:1px solid #e0e5e8;padding:20px 0 0}.scene-note{display:none}#legend{left:20px;max-width:90%;bottom:100px;gap:9px;font-size:10px}.playbar{left:14px;right:14px;gap:10px;padding:12px}.label{font-size:9px;padding:3px}.brand i{width:20px;height:26px}}
/* Manufacturing timeline */
.manufacturing{min-height:660px;height:calc(100vh - 285px)}
#factory-controls{position:absolute;left:26px;right:26px;bottom:95px;background:#ffffffed;border:1px solid #d5dfe4;border-radius:7px;padding:10px 12px}
#factory-controls[hidden]{display:none}.factory-heading{display:flex;justify-content:space-between;font-size:10px;color:#8a9aa2;margin:0 3px 8px}#factory-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}#factory-steps button{font-size:11px;padding:9px 5px;text-align:left;border:0;background:#f2f5f6;white-space:nowrap}#factory-steps button span{color:#91a0a7;font:10px monospace;margin-right:7px}#factory-steps button.active{background:#f4e5e0;color:#a24436}#factory-steps button.active span{color:#ad5142}.manufacturing #legend{bottom:195px}.manufacturing .scene-note{bottom:192px}.manufacturing .scene-title p{max-width:470px}.manufacturing .label{font-size:10px}.manufacturing .scene-title{top:88px}.segments button{padding:9px 11px}
@media(max-width:1050px){.manufacturing #legend{bottom:198px}.manufacturing .scene-note{display:none}#factory-steps{grid-template-columns:repeat(3,1fr)}#factory-controls{bottom:91px}.manufacturing #legend{bottom:221px}}
@media(max-width:700px){.manufacturing{height:770px;min-height:770px}.segments button{padding:8px 9px;font-size:11px}.manufacturing .scene-title{top:105px}.manufacturing .scene-title p{max-width:320px}#factory-controls{left:14px;right:14px;padding:9px}.factory-heading{font-size:9px}#factory-steps button{font-size:10px;padding:9px 5px}#factory-steps button span{margin-right:4px}.manufacturing #legend{bottom:220px;font-size:9px}.manufacturing .label{font-size:8px;padding:3px 4px}}
#material-lens{position:absolute;right:25px;top:90px;width:250px;background:#ffffffed;border:1px solid #d2dfe5;border-radius:8px;padding:12px;box-shadow:0 5px 20px #3554640b;pointer-events:none}#material-lens[hidden]{display:none}#lens-title{font-size:11px;letter-spacing:.5px;color:#577180;margin-bottom:8px}#lens-canvas{width:100%;height:auto;cursor:default;border-radius:4px}#lens-status{font-size:11px;display:block;color:#3f6476;margin-top:9px;font-weight:500}#lens-note{font-size:10px;color:#889ba5;line-height:1.6;margin:7px 0 0}.scene-title p{max-width:430px!important}@media(max-width:1150px){#material-lens{width:200px;right:16px;top:175px}.scene-title p{max-width:350px!important}}@media(max-width:700px){#material-lens{width:180px;right:14px;top:199px;padding:9px}#lens-note{font-size:9px}#lens-title,#lens-status{font-size:10px}.stage{height:830px}.manufacturing{height:970px;min-height:970px}}
#viewport{position:absolute;inset:0}.mobile-route,.mobile-heading,.mobile-gesture,.mobile-camera,.mobile-lens-toggle{display:none}
@media(max-width:700px){
 body{background:#edf2f5}header{height:56px;padding:0 14px}header .brand small{display:none}header .brand i{height:23px;width:18px}header #about{min-height:38px;background:#f5f7f9}aside{padding:12px 14px;background:#fff}#routes{display:none}.mobile-route{display:block}.mobile-route>span,.mobile-heading{display:block;font-size:11px;color:#738995;margin-bottom:7px;letter-spacing:.3px}#route-select{display:block;width:100%;min-height:46px;padding:10px 13px;border:1px solid #cedce3;border-radius:7px;font-size:16px;color:#334f60;background:#f7fafb}
 .stage,.stage.manufacturing{display:flex;flex-direction:column;min-height:0;height:auto;overflow:visible;padding:12px 14px 0;gap:0;background:#edf2f5}
 .topline{position:static;display:block;order:0;margin:0 0 14px}.segments{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:transparent;border:0;padding:0}.segments button{min-height:58px;border:1px solid #d3dfe5;text-align:left;padding:9px 12px;font-size:13px;background:#fafcfd;border-radius:7px}.segments button:after{content:attr(data-hint);display:block;font-size:10px;margin-top:4px;color:#8598a3}.segments button.active{background:#355665;border-color:#355665;color:white}.segments button.active:after{color:#c2d6df}.tools{display:none}
 .scene-title,.manufacturing .scene-title{position:static;order:1;pointer-events:auto;margin:0 0 6px}.scene-title #eyebrow{display:none}.scene-title h1{font-size:19px;margin:0 0 4px}.scene-title p{font-size:11px;line-height:1.6;margin:0;color:#7b8f9a;max-width:none!important}
 #viewport{position:relative;inset:auto;order:2;width:100%;height:290px;border:1px solid #d3e0e6;border-radius:9px;overflow:hidden;margin-top:6px;background:radial-gradient(ellipse at 50% 40%,#f6f8f9,#e2eaf0)}#scene{height:100%;touch-action:pan-y;cursor:default}#viewport.interactive #scene{touch-action:none;cursor:grab}.mobile-camera{display:flex;position:absolute;left:9px;right:9px;bottom:9px;gap:5px;align-items:center}.mobile-camera button{min-width:42px;min-height:38px;padding:5px 10px;font-size:12px;background:#fffffff2;border-color:#c8d7df}.mobile-camera #manipulate{margin-right:auto;min-width:105px}.mobile-camera #manipulate[aria-pressed=true]{background:#355665;color:white}.mobile-gesture{display:block;position:absolute;left:10px;top:9px;right:10px;font-size:10px;color:#738997;pointer-events:none}.mobile-gesture span{display:none}
 #labels .label{font-size:9px;padding:3px 4px}#legend,.manufacturing #legend{position:static;order:3;max-width:none;width:100%;gap:10px;padding:9px 3px;font-size:10px;line-height:1.6}.scene-note{display:none}
 .playbar{position:sticky;bottom:8px;order:4;left:auto;right:auto;width:100%;padding:10px;gap:9px;margin:0 0 12px;border-radius:8px;z-index:4;background:#fff;box-shadow:0 3px 14px #233e5112}.playbar #play{min-width:72px;min-height:44px;background:#355665;color:white;border-radius:6px;font-size:13px}.playbar .timeline{min-width:0}.timeline>div{font-size:10px;display:block;line-height:1.5}#phase{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#progressText{display:none}#progress{height:26px;margin:0;touch-action:pan-y}.playbar #speed{min-width:48px;min-height:44px;font-size:12px;padding:0}
 #factory-controls{position:static;order:5;width:100%;padding:12px;margin-bottom:12px;border-radius:8px}.factory-heading{font-size:11px;display:block;line-height:1.7;margin:0 0 9px}.factory-heading span:last-child{display:none}#factory-steps{grid-template-columns:1fr 1fr;gap:7px}#factory-steps button{min-height:44px;padding:10px 8px;font-size:12px;white-space:normal;border:1px solid transparent}#factory-steps button.active{border-color:#d08a7e;background:#f8e8e2}#factory-steps button span{font-size:11px}
 #material-lens{position:static;order:6;width:100%;padding:12px;margin:0 0 14px;box-shadow:none;pointer-events:auto}#lens-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:38px;padding:0;border:0;background:transparent;font-size:13px;color:#375867;margin-bottom:8px}#lens-toggle span{font-size:11px;color:#8397a2}#lens-canvas{max-width:330px;margin:0 auto;touch-action:pan-y}#lens-title{font-size:11px;margin-bottom:7px}#lens-status{font-size:12px;margin-top:10px}#lens-note{font-size:11px}#material-lens.collapsed>:not(#lens-toggle){display:none}#material-lens.collapsed #lens-toggle{margin-bottom:0}
 .info{padding:18px 17px;gap:15px}.info p{font-size:13px;line-height:1.85}.info .caption{display:none}.info h2{font-size:14px}.info>div+div{padding-top:15px}dialog{width:calc(100% - 24px);padding:18px;max-height:86dvh}dialog h2{font-size:20px}dialog #close{min-height:44px}#error{position:absolute;inset:30% 20px;order:2;max-height:160px}
}
@media(max-width:370px){#viewport{height:270px}.segments button{font-size:12px}.playbar #play{min-width:64px}.playbar{gap:6px}}
@media(max-width:700px) and (orientation:landscape){#viewport{height:300px}.segments{grid-template-columns:repeat(4,1fr)}}

/* Quiet utility entry, with a comfortable touch target. */
header #about{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;min-height:32px;padding:5px 8px;border:0;border-radius:4px;background:transparent;color:#71838d;font-size:12px;font-weight:400;line-height:1.4;transition:color .15s,background .15s}
header #about:hover{color:#344f5e;background:#eef2f4}
header #about .entry-arrow{font-size:11px;opacity:.65}
@media(max-width:700px){header #about{min-height:44px;padding:8px 5px;font-size:11px}}

/* Brand lockup from the red industrial design specification. */
header{position:sticky;top:0;z-index:20}
.brand{gap:14px;min-width:0}.brand .company-logo{display:block;width:82px;height:38px;object-fit:contain;flex-shrink:0}
.brand>div{border-left:1px solid #d9e0e5;padding-left:14px}.brand small{display:block;font-size:10px;line-height:14px;letter-spacing:.08em;font-weight:400}
@media(max-width:700px){header{height:62px;padding:0 10px;gap:5px}.brand{gap:8px}.brand .company-logo{width:72px;height:34px}.brand>div{padding-left:8px}.brand strong{font-size:14px}.brand small,header .brand small{display:block;font-size:8px;line-height:12px;letter-spacing:.08em;margin-top:3px}header #about{padding:8px 3px;font-size:10px}}

.brand .logo-dark{display:none}html[data-theme=dark] .brand .logo-light{display:none}html[data-theme=dark] .brand .logo-dark{display:block}
.brand strong{display:block;font-size:18px;line-height:24px;font-weight:650}.brand small,header .brand small{font-size:10px;line-height:14px;margin:0;letter-spacing:.08em}.appearance{padding:15px 28px;background:#fafbfc;border-top:1px solid #d8e0e3;font-size:12px}.appearance select{padding:8px;border:1px solid #d8e0e3;border-radius:4px}#theme-toggle{font-size:11px;padding:6px 8px;background:transparent;border:0;white-space:nowrap;margin-left:auto}header>span{margin:auto}
@media(max-width:800px){.brand .company-logo{width:72px;height:34px}.brand strong{font-size:15px;line-height:21px}.brand small,header .brand small{font-size:9px;line-height:13px;margin:0}header>span{display:none}header{gap:4px;padding:0 8px}.brand{gap:6px}.brand>div{padding-left:6px}#theme-toggle{padding:8px 3px;font-size:10px}header #about{font-size:10px;padding:8px 2px}}
html[data-theme=dark]{color-scheme:dark;color:#edf2f7;background:#151c23}
html[data-theme=dark] body,html[data-theme=dark] .stage{background:#151c23;color:#edf2f7}
html[data-theme=dark] header,html[data-theme=dark] aside,html[data-theme=dark] .info,html[data-theme=dark] .appearance{background:#19232d;border-color:#415565}
html[data-theme=dark] :is(button,select,.segments,.playbar,#factory-controls,#material-lens,dialog,.label,.mobile-route,#viewport){background:#202d38;color:#edf2f7;border-color:#415565}
html[data-theme=dark] :is(p,small,.caption,#legend,.scene-note,.timeline>div,.mobile-heading,.mobile-route>span,label){color:#a7b8c6}
html[data-theme=dark] :is(.info p,dialog p,dialog li,td){color:#bdcbd7}
html[data-theme=dark] :is(.info>div+div,.brand>div,td,th){border-color:#415565}
html[data-theme=dark] :is(a,header #about,#theme-toggle){color:#b7d7ed}
html[data-theme=dark] button:hover{background:#304553}
html[data-theme=dark] nav button.active{background:#412b30;color:#ff928b;border-color:#ff928b}
html[data-theme=dark] :is(.segments button.active,button[data-fstep].active){background:#bad7e8;color:#17232d}
html[data-theme=dark] :is(.boundary h2,#eyebrow){color:#ff928b}
html[data-theme=dark] :is(th,#route-select){background:#16212b;color:#edf2f7}

/* Sidebar rhythm matches the production simulation navigation. */
@media(min-width:701px){#routes button{padding:10px 11px;margin-bottom:0;gap:12px;line-height:1.4;border-radius:0 4px 4px 0}#routes b{font-size:14px;line-height:1.4}#routes small{font-size:10px;line-height:1.4;margin-top:3px}}

:root{--header-height:78px;--directory-width:238px}header{height:var(--header-height);z-index:30}.layout{display:block;padding-left:var(--directory-width)}#route-sidebar{position:fixed;top:var(--header-height);bottom:0;left:0;width:var(--directory-width);padding:0;z-index:20;overflow:hidden}.directory-head{min-height:72px;padding:18px 15px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;font-size:12px}.directory-head small{display:block;font-size:9px;letter-spacing:.12em;margin-top:4px;color:#8b979f}#directory-toggle{padding:5px 8px;line-height:18px;font-size:16px}#route-sidebar .mobile-route{display:none}#routes{display:block;overflow-y:auto;min-height:0;flex:1}#routes button{display:flex;width:calc(100% - 18px);margin:2px 9px;padding:10px;gap:9px;font-size:12px;line-height:1.4;border:0;border-left:2px solid transparent;border-radius:0;background:transparent}#routes button.active{background:#f8eae7;color:#a32f29;border-left-color:#d9362b}#routes b{font-size:12px}#routes .num{font:11px monospace}#routes .route-icon{width:18px;height:18px;flex-shrink:0}#routes small{display:block;margin-top:3px}#route-sidebar .aside-note{padding:16px 18px;flex-shrink:0}.directory-narrow{--directory-width:64px}.directory-narrow .directory-head{padding:18px 16px}.directory-narrow .directory-head>div,.directory-narrow #routes .num,.directory-narrow #routes button>div,.directory-narrow .aside-note{display:none}.directory-narrow #routes button{justify-content:center;padding:12px 8px}.appearance{margin-left:var(--directory-width)}#directory-scrim{position:fixed;inset:var(--header-height) 0 0 64px;background:#101a2680;border:0;border-radius:0;z-index:19}#directory-scrim[hidden]{display:none}#directory-toggle:focus-visible,#routes button:focus-visible{outline:2px solid #399acc;outline-offset:3px}
@media(min-width:801px) and (max-width:1000px){body:not(.directory-narrow){--directory-width:200px}}
@media(max-width:800px){.layout{padding-left:0}.layout>main{margin-left:64px}.appearance{margin-left:64px}#route-sidebar{width:64px}.directory-open #route-sidebar{width:238px}.topline{left:10px;right:10px}.segments{max-width:100%}.segments button{min-width:0;padding:8px 6px}.info{overflow-wrap:anywhere}header>span{display:none}}
@media(max-width:700px){:root{--header-height:62px}.stage .scene-title{left:14px}.scene-title p{max-width:calc(100vw - 105px)}}
html[data-theme=dark] #routes button.active{background:#412b30;color:#ff928b;border-left-color:#ff928b}
@media(max-width:800px){.mobile-camera{gap:4px}.mobile-camera button{white-space:nowrap;padding:8px 6px;min-width:0;font-size:11px}}

.playbar #replay{min-width:46px;white-space:nowrap}@media(max-width:800px){.playbar{gap:8px}.playbar #replay{min-width:36px;font-size:11px;padding:6px 0}.playbar .timeline{min-width:0}}
