/* A passenger's view: physical cabin fills the scene, with the control on the seat. */
#project-dingdong .project-visual,#project-dingdong.interface-chapter .project-visual,.motion-off #project-dingdong .project-visual{inset:0;height:100%;overflow:hidden}
#project-dingdong .visual-object{transform:none!important;transition:none!important}
#project-dingdong .project-heading{z-index:6;pointer-events:none;text-shadow:0 2px 25px #000}
#project-dingdong .project-heading h2{color:#edf3f9}
#project-dingdong .story-stage{color:#98a9bc}
#project-dingdong .story-subtitles{z-index:8;text-shadow:0 2px 16px #000}
#project-dingdong .story-controls{z-index:9}
.dingdong-cabin{height:100%;width:100%;position:relative;overflow:hidden;background:#090d13;color:#dce8f2;font-family:var(--mono);isolation:isolate}
.cabin-world{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1s}
.cabin-ready .cabin-world{opacity:1}
.cabin-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#090d13 0%,#090d13df 12%,#090d1355 25%,transparent 43%,#090d1322 62%,#090d13f5 86%,#090d13 100%),linear-gradient(90deg,#090d1399,transparent 26%,transparent 76%,#090d1388);z-index:2}
.cabin-location{position:absolute;left:6%;top:23%;font-size:7px;letter-spacing:.08em;color:#a5b7c9;z-index:3;display:flex;align-items:center;gap:8px;opacity:.8}
.cabin-location i{height:3px;width:3px;border-radius:50%;background:#90b5bd}
.seat-display{position:absolute;left:39%;top:40%;width:22%;height:22%;z-index:4;background:radial-gradient(ellipse at 60% 0%,#1f3d52,#0b1726 75%);border:1px solid #8fb7d635;border-radius:3px;box-shadow:inset 0 0 25px #7bc7ed08,0 0 22px #5db7d80c;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:9px 9px 7px;overflow:hidden;color:#dae8f5;transform:translateZ(0)}
.seat-display-top{position:absolute;top:7px;left:10px;right:10px;display:flex;align-items:center;gap:10px;font-size:5px;letter-spacing:.07em;color:#678da9}
.seat-display-top>span:first-child{font-size:8px;color:#b9d2e5;letter-spacing:0}
.seat-display-top i{width:3px;height:3px;background:#89b8a1;border-radius:50%;margin-left:auto}
.seat-display-title{font-size:13px;color:#d9e7ef;letter-spacing:-.03em;margin:15px 0 7px}
.cabin-call-button{font-family:var(--mono);display:flex;align-items:center;justify-content:center;gap:9px;min-height:39px;padding:7px 12px;border:1px solid #93b6c979;border-radius:25px;background:#19364a;color:#d7e8f3;font-size:8px;cursor:pointer;box-shadow:0 0 0 0 #8ec8dc45;animation:cabin-call-pulse 2.5s ease-out infinite;transition:background .25s,border-color .25s}
.cabin-call-button:hover{background:#264d61;border-color:#c5dfec}
.cabin-call-button:focus-visible{outline:2px solid #d3edf5;outline-offset:4px}
.cabin-call-button svg{height:22px;width:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.seat-display-hint{font-size:5px;line-height:1.5;color:#7a9cb3;margin-top:7px;text-align:center}
[data-call-state=called] .cabin-call-button{animation:none;background:#39412e;border-color:#c4bc7f;color:#e8dfac}
.cabin-call-light{position:absolute;top:17%;left:53%;height:24px;width:35px;z-index:3;opacity:0;transition:opacity .4s;pointer-events:none}
.cabin-call-light i{display:block;width:6px;height:6px;border-radius:50%;background:#e5c88a;box-shadow:0 0 18px 4px #e7b75888}
[data-call-state=called] .cabin-call-light{opacity:1}
.cabin-activity,.cabin-insight{position:absolute;z-index:7;width:252px;background:linear-gradient(140deg,#101d2bf5,#102131eb);border:1px solid #7e9fb849;border-radius:12px;box-shadow:0 12px 45px #0005,inset 0 1px 0 #d6ecff0b;backdrop-filter:blur(14px);padding:20px 22px;animation:cabin-pop-in .55s both}
.cabin-activity[hidden],.cabin-insight[hidden]{display:none}
.cabin-activity{left:calc(50% + 190px);top:32%}
.cabin-popup-kicker{font-size:7px;letter-spacing:.09em;color:#7eabc5;display:flex;align-items:center;gap:8px}
.cabin-popup-kicker i{height:4px;width:4px;border-radius:50%;background:#a2ccb4;box-shadow:0 0 9px #a2ccb444}
.cabin-activity dl{margin:15px 0 12px;display:grid;gap:10px}
.cabin-activity dl>div{display:flex;justify-content:space-between;gap:12px;font-size:9px;line-height:1.5}
.cabin-activity dt{color:#91a6bb}
.cabin-activity dd{margin:0;color:#bdd6cd}
.cabin-activity dd.unknown{color:#dac28e}
.cabin-activity small{font-size:5px;line-height:1.6;color:#5f7c95;display:block;border-top:1px solid #88adcc20;padding-top:10px}
.cabin-insight{right:calc(50% + 190px);top:52%;border-color:#b5a98538;width:270px}
.cabin-insight .cabin-popup-kicker{color:#b7aa8b;font-size:6px}
.cabin-insight strong{display:block;color:#e6e7df;font-size:15px;line-height:1.6;font-weight:400;letter-spacing:-.03em;margin:11px 0 8px}
#project-dingdong .cabin-insight p{font-size:8px;color:#8e9ca9;line-height:1.8;max-width:none;margin:0}
.cabin-action-cue{position:absolute;z-index:7;left:50%;bottom:24%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:8px;font-size:8px;color:#b5c6d3;white-space:nowrap;text-shadow:0 2px 10px #000}
.cabin-cue-dot{width:4px;height:4px;border-radius:50%;background:#92b6c8;box-shadow:0 0 0 0 #92b6c850;animation:cabin-call-pulse 2.5s infinite;flex:none}
[data-call-state=called] .cabin-cue-dot{animation:none;background:#c3bd91}
.cabin-audio-note{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.cabin-audio-note.cabin-audio-error{left:8%;right:8%;bottom:18%;width:auto;height:auto;clip-path:none;overflow:visible;text-align:center;color:#c8b58e;font-size:7px;line-height:1.6;z-index:8}
.cabin-fallback{position:absolute;inset:0;background:radial-gradient(ellipse at 48% 28%,#465564 0%,#1f2a38 20%,#0c131e 65%);perspective:600px}
.cabin-ready .cabin-fallback{display:none}
.fallback-seat{position:absolute;left:calc(50% - 135px);top:25%;bottom:5%;width:270px;border-radius:55px 55px 14px 14px;background:linear-gradient(100deg,#101c2b,#2c4054 30%,#25364b 70%,#0c1420);border:1px solid #62728766;box-shadow:inset 0 0 0 12px #101b2a;transform:rotateX(-3deg)}
.fallback-seat.side{left:calc(50% + 160px);opacity:.65;transform:rotateY(-15deg) scale(.95)}
.fallback-window{position:absolute;left:7%;top:30%;height:150px;width:70px;border-radius:45px;background:linear-gradient(#738da6,#b8c4ca 60%,#d4c7af);border:12px solid #435568;transform:rotateY(25deg);box-shadow:0 0 45px #9ebccc35}
.cabin-no-webgl .seat-display{left:calc(50% - 98px);width:196px;top:42%;height:125px}
@keyframes cabin-call-pulse{0%{box-shadow:0 0 0 0 #8ec8dc38}75%,100%{box-shadow:0 0 0 9px #8ec8dc00}}
@keyframes cabin-pop-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1050px){.cabin-activity{left:auto;right:5%;width:220px;padding:17px}.cabin-insight{right:auto;left:5%;width:230px;padding:17px}.cabin-insight strong{font-size:13px}}
@media(max-width:750px){.cabin-activity{top:24%;width:210px;padding:13px 16px;right:5%}.cabin-activity dl{gap:7px;margin:10px 0 8px}.cabin-activity dl>div{font-size:8px}.cabin-insight{top:auto;bottom:25%;left:5%;width:230px;padding:14px 17px}.cabin-location{top:20%;font-size:6px}.cabin-action-cue{bottom:20%;font-size:7px}}
@media(max-width:600px){
 #project-dingdong .project-visual,#project-dingdong.interface-chapter .project-visual,.motion-off #project-dingdong .project-visual{inset:0;height:100%}
 #project-dingdong .project-heading{top:6.5%}
 .cabin-vignette{background:linear-gradient(#090d13 0%,#090d13dc 14%,#090d1370 27%,transparent 43%,#090d1333 63%,#090d13ed 82%,#090d13 100%)}
 .cabin-location{top:19%;left:7%;font-size:5px}
 .cabin-activity{top:23%;left:auto;right:7%;width:205px;padding:12px 15px}
 .cabin-popup-kicker{font-size:6px}
 .cabin-activity dl{gap:6px;margin:9px 0 7px}
 .cabin-activity dl>div{font-size:7px}
 .cabin-activity small{font-size:4px;padding-top:6px}
 .cabin-insight{top:auto;bottom:23%;left:7%;right:7%;width:auto;padding:13px 15px}
 .cabin-insight strong{font-size:12px;line-height:1.5;margin:7px 0 5px}
 .cabin-insight strong br{display:none}
 #project-dingdong .cabin-insight p{font-size:7px;line-height:1.7}
 .cabin-action-cue{bottom:20%;font-size:6px;gap:7px;max-width:90%;white-space:normal;text-align:center;width:max-content}
 .seat-display{padding:7px 6px 6px}
 .seat-display-title{font-size:11px;margin-top:12px;margin-bottom:6px}
 .seat-display-top{font-size:4px;top:6px;left:8px;right:8px;gap:7px}
 .seat-display-top>span:first-child{font-size:6px}
 .cabin-call-button{min-height:35px;padding:6px 9px;font-size:7px;gap:6px}
 .cabin-call-button svg{width:19px;height:19px}
 .seat-display-hint{font-size:4px;margin-top:6px}
}
@media(prefers-reduced-motion:reduce){.dingdong-cabin *{animation:none!important;transition:none!important}}
.motion-off .dingdong-cabin *{animation:none!important;transition:none!important}
