/* V18: people, materials and connected product exploration. */
.restaurant-experience .restaurant-theater{height:980px}
.restaurant-experience .scene-marker.person-card{display:block;width:300px;max-width:37%;min-height:0;padding:0;gap:0;overflow:hidden;border:1px solid #b19472;border-bottom:5px solid #3b302b;border-radius:12px 3px 15px 4px;background:linear-gradient(125deg,#302a28,#161820);box-shadow:inset 0 1px #b39d7655,4px 8px 0 #100f13,0 28px 40px #000a;transform:rotate(-2deg) perspective(1000px) rotateY(5deg);transition:background 1s,border-color 1s,border-radius 1s,box-shadow 1s,transform 1s,opacity .8s;animation:none;filter:none;clip-path:none}
.restaurant-experience .marker-orders.person-card{top:74px;left:6%;right:auto;bottom:auto}
.restaurant-experience .marker-cost.person-card{top:74px;right:6%;left:auto;bottom:auto;transform:rotate(2deg) perspective(1000px) rotateY(-5deg)}
.restaurant-experience .marker-cash.person-card{top:auto;bottom:69px;left:calc(50% - 150px);right:auto;transform:rotate(-1deg)}
.restaurant-experience .person-card:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(121deg,transparent 0 38px,#d6ba9933 39px,transparent 40px 120px);z-index:3;pointer-events:none;opacity:.5;transition:opacity 1s}
.restaurant-experience .person-card:after{inset:0;left:0;right:0;bottom:0;height:auto;border:1px solid #ffffff16;border-radius:inherit;background:none;box-shadow:inset 0 0 18px #0007;z-index:4}
.restaurant-experience .scene-marker.person-card>div{grid-column:auto;min-width:0}
.person-media{height:167px;position:relative;overflow:hidden;border-bottom:1px solid #ad967459}
.person-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 32%;transition:opacity 1.2s,transform 1.6s,filter 1.2s}
.person-before{opacity:1;filter:saturate(.8) contrast(1.1)}.person-after{opacity:0;transform:scale(1.12)}
.person-media:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0b1524c9,transparent 40%,#0003);pointer-events:none}
.card-fracture{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#e9ce9f90;stroke-width:1;filter:drop-shadow(1px 2px 1px #000);z-index:2;transition:opacity .8s}
.restaurant-experience .person-number{position:absolute;top:12px;left:13px;color:#ffdeb8;font-style:normal;font-size:15px;font-weight:800;z-index:3;text-shadow:0 2px 7px #000}
.person-state{position:absolute;bottom:12px;left:14px;z-index:3}
.restaurant-experience .person-state span{font-size:8px;font-weight:700;letter-spacing:.1em;color:#ffc18c}
.restaurant-experience .person-card .marker-figure{position:absolute;inset:auto 3px 0 auto;margin:0;width:80px;height:76px;z-index:3;grid-column:auto}
.restaurant-experience .person-card .marker-figure img{filter:drop-shadow(0 7px 4px #0008)}
.person-copy{position:relative;padding:16px 17px 12px;min-height:111px}
.restaurant-experience .person-copy>span{font-size:12px;font-weight:800;letter-spacing:.02em;line-height:1.4}
.restaurant-experience .person-copy>small{font-size:11px;line-height:1.5;margin-top:6px;max-width:100%;color:#c8bab0}
.person-signal{height:12px;display:flex;gap:4px;align-items:end;margin-top:10px;opacity:.65}
.person-signal i{display:block;height:3px;width:10px;background:#c19167;border-radius:2px;transition:height 1s,background 1s}
.person-signal i:nth-child(3n){height:7px}.person-signal i:nth-child(2n){opacity:.35}
.restaurant-experience:is([data-state=rebuilding],[data-state=connected]) .person-card{background:linear-gradient(125deg,#16364bed,#071726f5);border-color:#a4dfff99;border-bottom-color:#476c83;border-radius:22px;box-shadow:inset 0 1px #d5f5ff99,0 5px 0 #18364e,0 26px 45px #0009,0 0 28px #74d9ff29;transform:perspective(1000px) rotateY(0) rotateX(0)}
.restaurant-experience:is([data-state=rebuilding],[data-state=connected]) .person-after{opacity:1;transform:scale(1)}
.restaurant-experience:is([data-state=rebuilding],[data-state=connected]) .person-before{opacity:0;transform:scale(.97)}
.restaurant-experience:is([data-state=rebuilding],[data-state=connected]) .person-card:before,.restaurant-experience:is([data-state=rebuilding],[data-state=connected]) .card-fracture{opacity:0}
.restaurant-experience:is([data-state=rebuilding],[data-state=connected]) .person-copy>small{color:#c4dcea}
.restaurant-experience:is([data-state=rebuilding],[data-state=connected]) .person-state span{color:#a4f7d1}
.restaurant-experience:is([data-state=rebuilding],[data-state=connected]) .person-signal i{background:#9aeacb;height:5px;opacity:1;box-shadow:0 0 7px #85efd855}
.restaurant-experience:is([data-state=rebuilding],[data-state=connected]) .person-signal i:nth-child(2n){height:8px}
.restaurant-experience:is([data-state=rebuilding],[data-state=connected]) .person-signal i:nth-child(3n){height:11px}
.restaurant-experience[data-state=charging] .person-card{opacity:0;transform:translateY(-15px) scale(.88) rotateX(10deg);filter:blur(4px)}
.restaurant-experience[data-state=rebuilding] .person-card{opacity:.35}
.restaurant-experience[data-state=connected] .person-card{opacity:1}
.restaurant-experience .scene-control,.restaurant-experience[data-state=connected] .scene-control{top:50%}
.restaurant-experience .diagnostic-one,.restaurant-experience .diagnostic-two{top:18%}.restaurant-experience .diagnostic-three{bottom:18%}
/* Mental map: eight branches remain visible, one concise resource panel is expanded. */
.operation-map{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 25% 45%,#173b584d,transparent 65%),#081426}
.operation-map .chapter-heading{max-width:950px;margin:0 auto 40px;text-align:center}
.operation-map .chapter-heading>p:last-child{max-width:590px;margin:22px auto 0}
.map-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:24px;max-width:1450px;margin:auto;align-items:stretch}
.map-canvas{position:relative;min-width:0;min-height:630px;isolation:isolate;border:1px solid #76bdda33;border-radius:30px;background:radial-gradient(ellipse,#1a4c5f44,transparent 66%),linear-gradient(#88d6ff06 1px,transparent 1px),linear-gradient(90deg,#88d6ff06 1px,transparent 1px),#06121ff2;background-size:auto,32px 32px,32px 32px,auto;box-shadow:inset 0 1px #c9f2ff22,0 35px 60px #0004;overflow:hidden}
.map-links{position:absolute;inset:35px 0 50px;width:100%;height:calc(100% - 85px);pointer-events:none;overflow:visible;fill:none;stroke-width:1.5}
.map-perimeter{stroke:#71baff15;stroke-dasharray:4 8}
.map-route{stroke:#7dbaca40;transition:stroke .4s}.map-route.is-active{stroke:#ffb37eaa;filter:drop-shadow(0 0 6px #ffba8066)}
.map-stream{stroke:#a9edff;stroke-width:2;stroke-dasharray:8 45;stroke-dashoffset:0;animation:mapFlow 7s linear infinite;opacity:.45}
.map-route.is-active .map-stream{stroke:#ffe1bd;opacity:1;stroke-width:3;animation-duration:3s}
.map-radar{position:absolute;left:50%;top:50%;width:440px;max-width:90%;aspect-ratio:1;translate:-50% -50%;border:1px solid #89d4e82b;border-radius:50%;background:conic-gradient(from 0deg,transparent 76%,#80deff13 98%,transparent);animation:mapOrbit 30s linear infinite;pointer-events:none}
.map-radar:before,.map-radar:after{content:'';position:absolute;inset:16%;border:1px dashed #99d8ef26;border-radius:50%}.map-radar:after{inset:32%;border-style:solid;border-color:#ffc08c22}
.map-nodes{position:absolute;inset:35px 13px 50px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:28px 12px;align-items:center;justify-items:center}
.map-node{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:9px;width:100%;max-width:190px;min-height:130px;padding:18px 12px 15px;color:#e5f0f7;background:linear-gradient(135deg,#183145f5,#091827f5);border:1px solid #8bc5da45;border-radius:18px;box-shadow:inset 0 1px #daf3ff26,0 5px 0 #020a15,0 17px 30px #0005;cursor:pointer;transition:transform .3s,border-color .3s,box-shadow .3s,background .3s;text-align:left;font-family:inherit}
.map-node svg{width:25px;height:25px;stroke:#9bccde;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.map-node b{font-size:12px;line-height:1.3;letter-spacing:0}.map-node small{font-size:9px;line-height:1.5;color:#aec3d0;font-weight:400}.node-index{position:absolute;top:16px;right:12px;font-size:9px;letter-spacing:.06em;color:#7693a9}
.map-node:hover{transform:translateY(-5px);border-color:#b6e7fa99}.map-node.is-active{border-color:#ffc391cc;background:linear-gradient(130deg,#44352c,#172c3b);box-shadow:inset 0 1px #ffedce88,0 5px 0 #402c22,0 15px 30px #0007,0 0 30px #ffa45e25}
.map-node.is-active svg{stroke:#ffcc9b}.map-node.is-active .node-index{color:#ffcc9b}
.map-node:focus-visible{outline:3px solid #c9edff;outline-offset:5px}
.map-node-0{grid-area:1/1}.map-node-1{grid-area:1/2}.map-node-2{grid-area:1/3}.map-node-3{grid-area:2/1}.map-node-4{grid-area:2/3}.map-node-5{grid-area:3/1}.map-node-6{grid-area:3/2}.map-node-7{grid-area:3/3}
.map-hub{grid-area:2/2;position:relative;display:grid;place-items:center;aspect-ratio:1;width:100%;max-width:175px;border:1px solid #b3e5f59c;border-radius:50%;background:radial-gradient(circle,#2a566dcc,#0a2033);box-shadow:inset 0 0 25px #82d9ff1a,0 0 30px #91dafa29,0 20px 35px #0008}
.map-hub:before{content:'';position:absolute;inset:-8px;border:1px dashed #9ad3e377;border-radius:50%;animation:mapOrbit 45s linear infinite}.map-hub:after{content:'';position:absolute;inset:-15px;border:1px solid #88d5f522;border-radius:50%;animation:mapBreathe 4s ease-in-out infinite}
.hub-core{text-align:center;padding:12px}.hub-core small{font-size:7px;letter-spacing:.07em;color:#cce4ef;display:block}.hub-core strong{font-size:clamp(16px,2vw,25px);letter-spacing:-.04em;display:block;margin:9px 0;color:#fff1df}.hub-core span{font-size:6px;letter-spacing:.09em;color:#f5bd8e;display:block}
.map-canvas-label{position:absolute;left:23px;right:23px;bottom:18px;display:flex;align-items:center;gap:8px;font-size:7px;letter-spacing:.08em;color:#acd2e0}.map-canvas-label i{width:5px;height:5px;background:#a2ebcc;border-radius:50%;box-shadow:0 0 8px #83ecb3}.map-canvas-label span{margin-left:auto;color:#94aebf}
.map-detail{display:flex;flex-direction:column;padding:30px;min-width:0;border:1px solid #9ed3f34a;border-radius:26px;background:linear-gradient(145deg,#193248eb,#091827);box-shadow:inset 0 1px #c3e7ff33,0 20px 45px #0005}
.map-panel[hidden]{display:none!important}.map-panel{animation:mapReveal .45s ease-out}.map-panel-label{color:#f9bb87;font-size:9px;letter-spacing:.1em;font-weight:700;margin-bottom:17px}.map-panel h3{font-size:clamp(25px,2.4vw,34px);line-height:1.14;letter-spacing:-.04em;font-weight:700;max-width:15ch;margin:0 0 24px;color:#f8f5ef}
.map-panel ul{padding:0;margin:0;list-style:none;display:grid;gap:0}.map-panel li{display:flex;gap:10px;align-items:baseline;font-size:12px;line-height:1.5;padding:9px 0;border-bottom:1px solid #acd3e31c;color:#e0eaf0}.map-panel li>span{color:#a1d6e8;font-size:13px;flex:none}
.map-note{font-size:11px;line-height:1.65;color:#b9cdd9;margin:20px 0 15px;padding-left:12px;border-left:2px solid #f3b27c66}
.map-sources{font-size:10px;color:#b7ccd7;margin-bottom:20px}.map-sources summary{cursor:pointer;line-height:1.6}.map-sources div{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.map-sources a{text-decoration:underline;text-underline-offset:3px;color:#eac098}
body .map-cta{margin-top:auto;padding:13px 17px;font-size:9px;min-height:50px;gap:8px;justify-content:space-between;box-shadow:inset 0 1px #d5e8fc33,0 8px 20px #0003}body .map-cta>span{width:25px;height:25px;font-size:15px;flex:none}
.map-availability{text-align:center;max-width:720px;margin:26px auto 0;color:#aec1d1;font-size:12px;line-height:1.7}
@keyframes mapFlow{to{stroke-dashoffset:-212}}@keyframes mapOrbit{to{rotate:360deg}}@keyframes mapBreathe{50%{scale:1.05;opacity:.35}}@keyframes mapReveal{from{opacity:.2;translate:0 7px}to{opacity:1;translate:0 0}}
.operation-map.is-idle *,.motion-paused .operation-map *{animation-play-state:paused!important}
@media(min-width:1500px){.map-node{padding:20px;max-width:215px}.map-node b{font-size:14px}.map-node small{font-size:10px}}
@media(max-width:1050px){.map-layout{grid-template-columns:minmax(0,1fr)}.map-canvas{min-height:630px}.map-node{max-width:210px}.map-node b{font-size:14px}.map-node small{font-size:11px}.map-detail{min-height:0}.map-panel ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.map-panel h3{max-width:100%;font-size:30px}.map-cta{align-self:flex-start}.map-hub{max-width:165px}.hub-core strong{font-size:25px}.hub-core small{font-size:9px}.hub-core span{font-size:7px}.map-panel-label{font-size:10px}.map-detail .map-cta{margin-top:10px}}
@media(max-width:600px){.restaurant-experience .restaurant-theater{height:910px}.restaurant-experience .scene-marker.person-card{width:43%;max-width:none;border-radius:11px 3px 11px 4px;min-height:0;padding:0;transform:rotate(-1deg)}.restaurant-experience .marker-orders.person-card{left:4%;top:74px}.restaurant-experience .marker-cost.person-card{right:4%;top:74px;transform:rotate(1deg)}.restaurant-experience .marker-cash.person-card{width:57%;left:21.5%;bottom:67px;top:auto;transform:rotate(-1deg)}.person-media{height:126px}.restaurant-experience .marker-cash .person-media{height:139px}.person-copy{padding:12px 10px 10px;min-height:108px}.restaurant-experience .person-copy>span{font-size:9px;line-height:1.45;overflow-wrap:normal}.restaurant-experience .person-copy>small{font-size:9px;line-height:1.55}.restaurant-experience .person-number{top:8px;left:9px;font-size:12px}.person-state{bottom:9px;left:9px}.restaurant-experience .person-state span{font-size:6px;letter-spacing:.05em}.restaurant-experience .person-card .marker-figure{width:53px;height:55px;right:0;bottom:0}.person-signal{gap:3px;margin-top:8px}.person-signal i{width:7px}.restaurant-experience:is([data-state=rebuilding],[data-state=connected]) .person-card{border-radius:17px;transform:none}.restaurant-experience .scene-control,.restaurant-experience[data-state=connected] .scene-control{top:50%}.operation-map{padding-inline:18px}.operation-map .chapter-heading h2{font-size:clamp(27px,7.6vw,40px)}.operation-map .chapter-heading>p:last-child{font-size:13px;max-width:30ch}.map-layout{gap:16px}.map-canvas{min-height:500px;border-radius:23px}.map-nodes{inset:24px 8px 40px;gap:22px 8px}.map-links{inset:24px 0 40px;height:calc(100% - 64px)}.map-node{min-height:119px;border-radius:13px;padding:13px 8px;gap:8px}.map-node b{font-size:10px;line-height:1.45}.map-node small{font-size:8px;line-height:1.55}.map-node svg{width:21px;height:21px}.node-index{right:7px;top:13px;font-size:7px}.map-hub{max-width:102px}.hub-core{padding:6px}.hub-core strong{font-size:16px;margin:7px 0}.hub-core small{font-size:5px}.hub-core span{font-size:4.5px}.map-hub:before{inset:-4px}.map-hub:after{inset:-9px}.map-canvas-label{font-size:6px;left:16px;right:16px;bottom:16px;gap:6px}.map-canvas-label span{max-width:40%;text-align:right;line-height:1.5}.map-detail{padding:25px 20px;border-radius:23px}.map-panel h3{font-size:28px;max-width:16ch}.map-panel ul{grid-template-columns:1fr}.map-panel li{font-size:12px;padding-block:10px}.map-note{font-size:11px}.map-availability{font-size:11px;margin-top:22px}.map-detail .map-cta{width:100%;font-size:9px;align-self:stretch;min-height:52px}.map-sources{font-size:11px}}
@media(prefers-reduced-motion:reduce){.operation-map *{animation:none!important;transition:none!important}.person-card,.person-media img,.person-signal i,.card-fracture{transition:none!important}.map-node:hover{transform:none}}
.map-node b{overflow-wrap:anywhere}
