:root{--ink:#29362f;--muted:#758076;--orange:#e86c31;--paper:#f0eee5;--line:#d9ddd1;--panel:rgba(249,248,239,.91);font-family:Arial,Helvetica,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}html,body,main{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--paper)}button{font:inherit;cursor:pointer;color:inherit;border:0}button:focus-visible{outline:3px solid #e86c31;outline-offset:4px}button:disabled{cursor:wait;opacity:.5}canvas{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:none}.brand{position:absolute;left:32px;top:30px;display:flex;align-items:center;gap:13px;pointer-events:none}.brand-mark{height:32px;display:flex;align-items:flex-end;gap:4px}.brand-mark i{display:block;width:6px;background:var(--orange);height:17px}.brand-mark i:nth-child(2){height:24px}.brand-mark i:nth-child(3){height:31px}.brand strong{font-size:27px;letter-spacing:3.4px;font-weight:800;line-height:1}.brand strong span,.loading-logo span{font-size:10px;vertical-align:top;letter-spacing:0;margin-left:3px}.brand small{display:block;font-size:8px;font-weight:700;letter-spacing:2.4px;margin-top:7px}.view-tools{position:absolute;top:30px;right:32px;display:flex;gap:8px}.tool{background:rgba(249,248,239,.9);border:1px solid rgba(255,255,255,.85);border-radius:22px;padding:12px 17px;font-size:12px;box-shadow:0 4px 18px #2536260a;backdrop-filter:blur(12px);display:flex;gap:7px;align-items:center}.tool.active{color:#506c52}.tool.icon-only{font-size:20px;padding:7px 14px}.production-panel{position:absolute;right:32px;top:98px;width:251px;border:1px solid #ffffffbf;background:var(--panel);backdrop-filter:blur(20px);box-shadow:0 16px 60px #24382312;border-radius:18px;padding:25px 22px 20px}.eyebrow{font-size:9px;letter-spacing:1.6px;font-weight:700;display:flex;gap:7px;align-items:center}.live-dot{width:5px;height:5px;background:#899b73;border-radius:50%}h1{font-size:35px;letter-spacing:-1.5px;line-height:1.04;margin:17px 0 11px;font-weight:600}.intro{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 20px}nav{border-top:1px solid var(--line)}nav button{width:100%;display:flex;gap:11px;text-align:left;padding:13px 0;background:none;align-items:center;border-bottom:1px solid var(--line);transition:color .2s}nav button b{font-size:10px;line-height:23px;border:1px solid #cbd2c4;border-radius:50%;width:24px;height:24px;text-align:center;font-weight:400;color:#788475}nav button span{font-size:12px;font-weight:600;flex:1}nav button small{display:block;color:#92998e;font-size:8px;margin-top:4px;font-weight:400}nav button i{font-style:normal;color:#9aa393;font-size:12px}nav button:hover,nav button.current{color:var(--orange)}nav button.current b{background:var(--orange);color:#fff;border-color:var(--orange)}.color-heading{font-size:10px;margin-top:22px;font-weight:600}.color-heading span{display:block;font-size:9px;color:var(--muted);margin-top:5px;font-weight:400}#colors{display:flex;gap:12px;margin-top:13px}.swatch{border-radius:50%;width:27px;height:27px;background:var(--color);border:4px solid #f9f8ef;outline:1px solid transparent}.swatch.chosen{outline-color:var(--color)}.output{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:21px;padding-top:16px}.output span{font-size:10px;color:var(--muted)}.output strong{font-size:23px;font-weight:400;font-variant-numeric:tabular-nums}.transport-bar{position:absolute;left:32px;bottom:70px;display:flex;gap:10px;align-items:center}.play{border-radius:25px;background:var(--orange);color:#fff8ee;display:flex;gap:12px;align-items:center;padding:17px 23px;font-size:12px;font-weight:600;box-shadow:0 7px 25px #ac552b30}.play:hover{background:#d95b24}#play-icon{font-size:12px;min-width:12px}.speeds{display:flex;gap:1px;background:#f8f7eeeb;padding:4px;border-radius:22px;box-shadow:0 3px 15px #25362608}.speeds button{background:none;border-radius:16px;font-size:11px;padding:10px;color:#819078}.speeds .selected{background:#dce3d3;color:#40553f}.secondary,.reset{padding:13px 15px;background:#f8f7eeeb;border-radius:23px;font-size:11px}.secondary[aria-pressed=true]{color:var(--orange)}.reset{font-size:20px;padding:8px 14px}.journey{position:absolute;left:33px;bottom:148px;width:250px}.journey span{font-size:11px;color:#52664e}.journey>div{height:2px;background:#cbd5c34d;margin-top:9px;overflow:hidden}.journey i{display:block;height:2px;background:var(--orange);width:0%;transition:width .2s}footer{position:absolute;bottom:27px;left:32px;right:32px;font-size:9px;color:#78856f;display:flex;gap:28px;pointer-events:none}.selection{position:absolute;left:32px;bottom:192px;width:264px;background:var(--panel);border:1px solid #fff9;border-radius:15px;padding:22px;backdrop-filter:blur(16px);box-shadow:0 12px 35px #25362612}.selection small{color:var(--orange);font-size:8px;letter-spacing:1.4px}.selection h2{font-size:22px;letter-spacing:-.7px;line-height:1.05;margin:9px 0}.selection p{font-size:11px;line-height:1.6;color:var(--muted);margin:12px 0 17px}.selection>button:last-child{display:flex;justify-content:space-between;background:none;border-top:1px solid var(--line);width:100%;padding:13px 0 0;font-size:11px}.selection>button:last-child span{color:var(--orange);font-size:16px}.close{position:absolute;right:12px;top:10px;background:none;font-size:18px;color:#92998b}.loading{position:absolute;inset:0;background:#eeeee5;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:20;transition:opacity .7s}.loading.loaded{opacity:0;pointer-events:none}.loading-logo{font-size:52px;font-weight:800;letter-spacing:5px}.loading p{font-size:12px;color:#89917d;margin:27px 0 16px}.loading-track{width:210px;height:3px;background:#dbe0d2;overflow:hidden}.loading-track i{height:100%;display:block;background:var(--orange);width:0;transition:width .3s}.loading small{margin-top:24px;font-size:10px;color:#98a18c}.loading.error p{color:#b44d31;max-width:400px;line-height:1.6;text-align:center}#toast{position:absolute;bottom:150px;left:50%;transform:translate(-50%,10px);border-radius:20px;padding:12px 20px;background:#354b36ee;color:#fbf7e9;font-size:11px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;white-space:nowrap}#toast.visible{opacity:1;transform:translate(-50%,0)}#mobile-panel-toggle{display:none}@media(max-height:780px) and (min-width:801px){.production-panel{top:89px;padding:17px 20px;width:239px}h1{font-size:30px;margin-top:12px}.intro{margin-bottom:13px}nav button{padding:10px 0}.color-heading{margin-top:15px}.output{margin-top:15px;padding-top:12px}.production-panel .eyebrow{font-size:8px}}@media(max-width:1000px){.view-tools .tool span{display:none}.production-panel{right:20px;width:224px;padding:20px}.brand{left:22px}.transport-bar{left:22px;gap:6px}.secondary{font-size:10px;padding:13px}.play{padding:16px 19px;font-size:11px}.journey{left:23px}footer{left:22px}.view-tools{right:20px}}@media(max-width:800px){.brand{top:23px}.brand strong{font-size:21px}.brand small{font-size:6px}.brand-mark{transform:scale(.8)}.view-tools{top:20px}.tool{padding:10px 13px}.production-panel{display:none;top:78px;right:18px;max-height:calc(100% - 210px);overflow-y:auto;width:235px}.production-panel.mobile-open{display:block}.production-panel h1{font-size:27px}.intro{display:none}nav{margin-top:17px}nav button{padding:11px 0}#mobile-panel-toggle{display:block;position:absolute;right:18px;bottom:74px;background:#f8f7eeee;padding:16px;border-radius:24px;font-size:11px}.transport-bar{bottom:74px;left:18px}.transport-bar .secondary,.reset{display:none}.play{padding:16px;font-size:11px}.speeds button{padding:9px}.journey{bottom:143px;left:20px;width:210px}footer{bottom:25px;left:20px;font-size:8px;display:block;line-height:1.7}footer span{display:block}.selection{bottom:185px;left:18px;width:230px}.view-tools{gap:5px}.brand strong span{font-size:6px}#toast{bottom:195px;font-size:10px;max-width:90%;white-space:normal;text-align:center}}

footer{flex-wrap:wrap;gap:5px 20px;max-width:calc(100% - 340px);line-height:1.5;color:#687566} @media(max-width:800px){footer{max-width:calc(100% - 40px);font-size:8px}}

body[data-lighting=night] .brand{color:#fff3de} body[data-lighting=night] footer,body[data-lighting=night] .journey span{color:#c3d1e1}

[hidden]{display:none!important}
#fps-meter{position:absolute;right:30px;top:88px;font-size:10px;opacity:.72;font-variant-numeric:tabular-nums}
.keyboard-setting{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:19px 0 5px}.keyboard-setting select{font:11px Arial,sans-serif;border:1px solid #cbd2c4;border-radius:7px;background:#fffaf1;color:#29362f;padding:8px 10px}
.visit-tool{background:#293e37;color:#fff5df;border-color:#ffffff30}.view-tools .visit-tool span{display:inline}
#animate-selection,#resume-visit{display:flex;justify-content:space-between;background:none;border-top:1px solid var(--line);width:100%;padding:13px 0 0;font-size:11px}#resume-visit{margin-top:15px;color:#df662d}
.visiting .production-panel,.visiting .transport-bar,.visiting .journey,.visiting footer,.visiting #roof,.visiting #overview,.visiting #mobile-panel-toggle{display:none}
.visiting .brand{color:#fff7e7;text-shadow:0 2px 14px #12221c99}.visiting .brand small{letter-spacing:1.8px}
.visiting .selection{left:50%;bottom:50%;transform:translate(-50%,50%);width:330px;padding:28px;background:#f9f7edfa;z-index:6}.visiting .selection h2{font-size:28px}.visiting .selection p{font-size:13px}
#fps-hud{position:absolute;inset:0;pointer-events:none;color:#fff8eb;text-shadow:0 1px 5px #15231dcc}
#fps-crosshair{position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:#fff5df;box-shadow:0 0 0 1px #1a3026b3;transform:translate(-50%,-50%);transition:box-shadow .15s}
#fps-crosshair.can-interact{box-shadow:0 0 0 5px #e86c3180,0 0 0 6px #fff3dfbb}
#fps-prompt{position:absolute;top:calc(50% + 22px);left:50%;transform:translateX(-50%);font-size:12px;font-weight:700;line-height:28px;text-align:center;width:29px;height:29px;background:#172b22d9;border:1px solid #fff5df99;border-radius:6px;box-shadow:0 2px 8px #10271c33}
#fps-controls{position:absolute;bottom:28px;left:25px;right:25px;font-size:11px;text-align:center;line-height:1.7}
#visit-pause{pointer-events:auto;position:absolute;bottom:64px;right:25px;border:1px solid #fff5;background:#172b22b3;color:#fff8eb;border-radius:20px;padding:11px 17px;font-size:11px;backdrop-filter:blur(10px)}
.visit-menu{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:376px;max-height:calc(100% - 150px);overflow:auto;padding:29px 30px 22px;background:#f9f7edfa;border:1px solid #fff8;border-radius:20px;box-shadow:0 20px 100px #14251e55;z-index:5;backdrop-filter:blur(16px)}
.visit-menu>small,.visit-stops>small{font-size:8px;letter-spacing:1.6px;color:#d7612a;font-weight:bold}.visit-menu h2{font-size:30px;line-height:1.03;letter-spacing:-1px;margin:12px 0}.visit-menu p{color:#738070;font-size:12px;line-height:1.6}.visit-key-help{display:flex;flex-wrap:wrap;gap:10px 14px;margin:21px 0;font-size:10px}.visit-key-help span{white-space:nowrap}kbd{font:10px Arial,sans-serif;border:1px solid #c9d0bf;background:#fffaf1;padding:3px 5px;border-radius:4px;margin-right:2px}.visit-menu .play{width:100%;justify-content:space-between;font-size:12px;padding:15px 20px}.visit-stops{margin-top:25px}.visit-stops>small{display:block;color:#829079;margin-bottom:9px}.visit-stops button{display:flex;justify-content:space-between;background:none;border-bottom:1px solid #d9ddd1;width:100%;text-align:left;padding:10px 0;font-size:11px}.visit-stops button:hover{color:#d7612a}#leave-visit{font-size:10px;background:none;margin-top:19px;padding:0;color:#738070}
@media(max-width:800px){.visiting .brand{top:26px}.visit-menu{width:min(356px,calc(100% - 34px));padding:24px;max-height:calc(100% - 140px)}#fps-controls{font-size:9px;bottom:20px}#fps-prompt{font-size:10px;max-width:90%;white-space:normal;text-align:center}.visiting .selection{width:min(330px,calc(100% - 36px))}.view-tools .visit-tool{padding:10px 13px;font-size:11px}}

.scene-viewport{position:relative;width:100%;height:100%;isolation:isolate;overflow:hidden}
.scene-caption{display:none}.brand,.view-tools,.production-panel{z-index:3}.selection{z-index:4}
.zone-labels{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.zone-label{position:absolute;top:0;left:0;pointer-events:auto;white-space:nowrap;background:#1b3139ed;color:#fff;border:1px solid #ffffff65;border-left:3px solid #ef782e;border-radius:7px;padding:8px 10px;font-size:11px;font-weight:700;line-height:1;box-shadow:0 3px 12px #12282020;touch-action:manipulation;user-select:none}
.zone-label:hover,.zone-label.selected{background:#c95826;border-color:#ffe1c7}.zone-label.zone-pin{width:40px;height:40px;display:grid;place-items:center;padding:0;border:2px solid #fff4df;border-radius:13px;background:#213d42;font-size:12px;box-shadow:0 3px 10px #142b3a38}
.zone-label{transition:opacity .18s linear}.zone-label:hover,.zone-label:focus-visible{opacity:1!important;z-index:20001!important}
.zone-leaders{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.zone-leaders line{stroke:#f7f3e4;stroke-width:2;filter:drop-shadow(0 1px 1px #17353c)}
#stages button.focused{color:#bd5628}#stages button.focused b{background:#e86c31;border-color:#e86c31;color:white}
.mobile-controls{display:none}.panel-caption{font-size:9px;letter-spacing:1.5px;font-weight:700;color:#819080;margin:0 0 10px}

html.compact-layout{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}
body.compact-layout{height:auto;min-height:100svh;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:none}
.compact-layout #experience{height:auto;min-height:100svh;overflow:visible}
.compact-layout .scene-viewport{height:clamp(320px,calc(100svh - 340px),600px);width:100%}
.compact-layout .scene-viewport:before{content:'';position:absolute;inset:0 0 auto;height:70px;background:linear-gradient(#eeece3ed,#eeece300);pointer-events:none;z-index:3}
.compact-layout .brand{top:max(20px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));gap:9px}
.compact-layout .brand strong{font-size:21px;letter-spacing:2.5px}.compact-layout .brand strong span{font-size:7px}.compact-layout .brand small{font-size:6px;letter-spacing:1.9px}.compact-layout .brand-mark{transform:scale(.8);transform-origin:left center;width:22px}
.compact-layout .scene-caption{display:block;position:absolute;top:max(27px,env(safe-area-inset-top));right:18px;color:#6d7d6e;font-size:8px;letter-spacing:1.5px;z-index:3}
.compact-layout .production-panel{display:none!important}
.compact-layout .mobile-controls{display:block;position:relative;width:100%;padding:15px max(18px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#f7f5eb;border-top:1px solid #dddccd;box-shadow:0 -8px 35px #28403006;z-index:5}
.mobile-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;background:#e7e9dd;border-radius:15px;max-width:640px;margin:auto}
.mobile-tabs button{min-height:44px;background:transparent;border-radius:11px;font-size:12px;font-weight:600;color:#72816f}
.mobile-tabs button[aria-selected=true]{background:#fffdf5;color:#c55727;box-shadow:0 2px 8px #34432c0b}
.mobile-tab-panel{padding:20px 0 0;max-width:640px;margin:auto}
.compact-layout .mobile-status{display:flex;gap:15px;align-items:center;justify-content:space-between;margin-bottom:18px}
.compact-layout .journey{position:static;width:auto;flex:1;min-width:0}.compact-layout .journey span{font-size:11px;line-height:1.5}.compact-layout .journey>div{margin-top:7px}
.compact-layout .output{padding:0;margin:0;border:0;gap:9px;flex:none}.compact-layout .output span{font-size:9px;max-width:52px;line-height:1.4}.compact-layout .output strong{font-size:22px}
.compact-layout .transport-bar{position:static;display:grid;grid-template-columns:1fr;gap:10px;align-items:stretch}
.compact-layout .play{justify-content:center;min-height:48px;font-size:13px;border-radius:14px;padding:14px 17px}
.compact-layout .speeds{display:grid;grid-template-columns:repeat(3,1fr);padding:4px;border:1px solid #e1e3d6;background:#eeeee3;border-radius:13px}
.compact-layout .speeds button{min-height:40px;font-size:12px;border-radius:9px;padding:9px}.compact-layout .speeds .selected{background:#d5deca;color:#3f563c}
.compact-layout #color-options{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:18px;padding-top:17px;border-top:1px solid #e1e2d6}
.compact-layout .color-heading{font-size:11px;margin:0}.compact-layout .color-heading span{font-size:10px}
.compact-layout #colors{margin:0;gap:6px}.compact-layout .swatch{width:36px;height:36px;border-width:5px}
.compact-layout #stages{margin:0;border:0}.compact-layout #stages button{min-height:50px;padding:12px 0}.compact-layout #stages button small{display:none}.compact-layout #stages button span{font-size:13px}
.compact-layout #panel-ateliers{max-height:390px;overflow-y:auto;overscroll-behavior-y:contain;scroll-padding:15px;padding-bottom:5px}
.compact-layout #mobile-stages{margin-bottom:22px}.site-zones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.site-zones button{background:#fffdf4;border:1px solid #e2e3d6;border-radius:10px;text-align:left;min-height:44px;padding:10px 12px;font-size:11px;line-height:1.3}
.compact-layout .view-tools{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.compact-layout .view-tools .tool{justify-content:center;border:1px solid #dfe3d5;border-radius:12px;min-height:46px;padding:12px 10px;font-size:12px}
.compact-layout .view-tools .tool span{display:inline}.compact-layout .view-tools #overview{grid-column:1/-1;font-size:15px}.compact-layout #overview:after{content:'Vue d’ensemble';font-size:12px}
.compact-layout .mobile-view-actions{display:grid;grid-template-columns:1fr 48px;gap:8px;margin-top:9px}.compact-layout #follow,.compact-layout #reset{display:block;position:static;min-height:44px;border:1px solid #dfe3d5;background:#fffdf4;border-radius:12px}.compact-layout #follow{font-size:12px}
.touch-guide{font-size:11px;line-height:1.7;color:#6b7c68;margin:17px 0 8px}.fps-note{font-size:10px;line-height:1.6;color:#8b9386;margin:0}
.compact-layout #navigation-help{display:none}
.compact-layout .selection{position:relative;left:auto;bottom:auto;transform:none;width:100%;padding:20px;margin:0 0 20px;box-shadow:none;background:#fffdf4}.compact-layout .selection p{font-size:12px}.compact-layout .selection .close{top:0;right:0;width:44px;height:44px}.compact-layout #animate-selection{min-height:44px}
.compact-layout #toast{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));max-width:90%;white-space:normal;text-align:center;z-index:12}
.compact-layout .loading{position:fixed}
.compact-layout.visiting{height:100dvh;overflow:hidden}.compact-layout.visiting #experience,.compact-layout.visiting .scene-viewport{height:100dvh;min-height:0}.compact-layout.visiting .scene-caption{display:none}
.compact-layout.visiting .selection{position:absolute;left:50%;bottom:50%;transform:translate(-50%,50%);width:min(330px,calc(100% - 36px));margin:0;z-index:6}
.compact-layout.visiting .view-tools{position:absolute;top:20px;right:18px;display:flex}.compact-layout.visiting .view-tools .tool{min-height:40px}.compact-layout.visiting .visit-menu{width:min(356px,calc(100% - 34px));max-height:calc(100% - 140px);padding:24px}
.compact-layout.visiting .brand strong{font-size:17px;letter-spacing:1.5px}.compact-layout.visiting .brand small{font-size:5px}
.service-catalog{margin:10px 0 16px;color:var(--ink,#30433b);font-size:11px}.service-catalog summary{cursor:pointer;padding:8px 0}.service-catalog>div{display:grid;grid-template-columns:1fr 1fr;gap:5px}.service-catalog button{background:#e9ecdf;border:0;border-radius:8px;padding:9px 6px;color:inherit;text-align:left;cursor:pointer}.service-catalog button:hover{background:#dce3d0}
