/* First paint: floors hold their height before their frames arrive and the hero paints its
   drawn parts at once (design notes round one, note 1). */

/* The device choice, as runtime/quit/frame-boot.js and main.js make it (and
   tools/quit-site/renditions.mjs states it for srcset): phone below 768 px wide, on a tall
   tablet, or on a touch screen with a short viewport (a phone turned to landscape keeps the
   phone composition, note 8). Once frame-boot has chosen, the host carries the choice. */
:root{--quit-hero-s1:min(calc((71vh - .75 * var(--q-ca-room,0px)) / 1060),calc(100vw / 2736));--quit-hero-w:calc(100vw / 2736);--quit-hero-h:max(calc(1160 * var(--quit-hero-w)),calc(1010 * var(--quit-hero-w) + 56px));--quit-column:480px}

/* 1. Every scene's box has its final height from the first paint, before its template is
   chosen and before any image: the host carries both compositions' proportions
   (tools/quit-site/render.mjs). A host whose scene was replaced (the arcade machines) takes
   its content's height. */
[data-quit-frame-host]:is(:empty,:has(>.frame-surface)){aspect-ratio:var(--host-aspect-desktop,auto)}
@media (max-width:767px),(max-width:1199px) and (max-aspect-ratio:3/4),(pointer:coarse) and (max-height:500px){
 [data-quit-frame-host]:is(:empty,:has(>.frame-surface)){aspect-ratio:var(--host-aspect-phone,auto)}
}
[data-quit-frame-host][data-frame-choice="desktop"]:is(:empty,:has(>.frame-surface)){aspect-ratio:var(--host-aspect-desktop,auto)}
[data-quit-frame-host][data-frame-choice="phone"]:is(:empty,:has(>.frame-surface)){aspect-ratio:var(--host-aspect-phone,auto)}
/* The desktop SEND IT hero is its own size (runtime/quit/frames.css .q-hero--wide): the monitor and the
   LIVE BUYS tape across the full width. 100vw stands in for the hero's container width before it exists. */
@media (min-width:768px) and (not ((max-width:1199px) and (max-aspect-ratio:3/4))) and (not ((pointer:coarse) and (max-height:500px))){
 [data-floor-section="game"]>[data-quit-frame-host]:empty{aspect-ratio:auto;min-height:var(--quit-hero-h)}
}
[data-floor-section="game"]>[data-quit-frame-host]:has(>:is(.q-hero,.q-hero-phone)){aspect-ratio:auto;min-height:0}

/* The arcade's machines (runtime/arcade/cabinet) replace its scene and stand taller than the frame:
   the host reserves their mounted height from the first paint, so no floor below the arcade moves
   when they mount and the header's floor links land where they aim (DESIGN round two, A1).
   Measured on build ten: desktop 0.5733 w + 48 px (1280 to 2560 wide), phones 3.069 w + 475 px
   (360 to 430 wide); wider phones and tablets are re-aimed by main.js instead. */
[data-floor-section="arcade"]{container-type:inline-size}
html:not([data-device="phone"]) [data-floor-section="arcade"]>[data-quit-frame-host]{min-height:calc(57.33cqw + 48px)}
@media (max-width:480px){html[data-device="phone"] [data-floor-section="arcade"]>[data-quit-frame-host]{min-height:calc(300cqw + 436px)}}
/* Design pass, 22 Oct 2026: the reserve above (re-measured on phones after the lobby's tighter bands, 3.00 w + 436 px at
   360, 393 and 430) and the host's frame aspect ratio together made the box wider than the screen (933 px on a 360
   phone, 1,693 on 1440), and the old frame's blurred placeholder was stretched across it until the machines mounted.
   The box keeps its reserved height inside the page width, on the floor's own ground. */
[data-floor-section="arcade"]>[data-quit-frame-host]{max-width:100%;background-image:none!important;background-color:#080e0b}

/* Floors below the first screen are laid out, painted and given their lazy art only as they come
   near: their boxes keep the height above, so nothing moves when they do.
   Not a floor that holds the raids board (WHAT YOU GET): the board repaints while the floor is still skipped, and Chrome
   then loses later style changes under that host, so its layers kept the pending rule's opacity 0 after they decoded
   and phones showed an empty plate (6 of 6 runs on an iPhone 13 profile, 22 Oct 2026; none of the other 22 floors). */
[data-floor-section]:not([data-floor-section="game"])>[data-quit-frame-host]:has(>.frame-surface):not(:has([data-quit-raids-panel])){content-visibility:auto}

/* 2. The phone composition in landscape (note 8): centred at a phone's width rather than
   stretched across the screen. tools/quit-site/renditions.mjs sizes its images to match. */
@media (orientation:landscape) and (max-width:767px),(pointer:coarse) and (max-height:500px){
 html:not([data-device="desktop"]) [data-quit-frame-host]{width:min(100%,var(--quit-column));margin-inline:auto}
}
@media (orientation:landscape){
 html[data-device="phone"] [data-quit-frame-host]{width:min(100%,var(--quit-column));margin-inline:auto}
 /* The community block between the floors keeps to the same column, stacked as on the phone. */
 html[data-device="phone"] .q-community{max-width:var(--quit-column);grid-template-columns:minmax(0,1fr);padding:16px;gap:16px}
}

/* 2b. The remaining loading picture is a subdued hint of the floor. Multiplying by
   dark green keeps a tiny stretched thumbnail from looking like the finished art. */
[data-quit-frame-host]{background-color:#28372e;background-blend-mode:multiply;background-repeat:no-repeat;background-image:var(--lqip-desktop,none);background-size:var(--lqip-size-desktop,100% 100%);background-position:var(--lqip-pos-desktop,0 0)}
@media (max-width:767px),(max-width:1199px) and (max-aspect-ratio:3/4),(pointer:coarse) and (max-height:500px){
 [data-quit-frame-host]{background-image:var(--lqip-phone,none);background-size:var(--lqip-size-phone,100% 100%);background-position:var(--lqip-pos-phone,0 0)}
}
[data-quit-frame-host][data-frame-choice="desktop"]{background-image:var(--lqip-desktop,none);background-size:var(--lqip-size-desktop,100% 100%);background-position:var(--lqip-pos-desktop,0 0)}
[data-quit-frame-host][data-frame-choice="phone"]{background-image:var(--lqip-phone,none);background-size:var(--lqip-size-phone,100% 100%);background-position:var(--lqip-pos-phone,0 0)}

/* 3. Plates show immediately after decoding. Each layer fades in independently. */
[data-quit-frame-host] .frame-surface{background:#0a0d0b}
[data-quit-frame-host]:not([data-quit-scene="shown"]) .frame-surface{opacity:0!important}
[data-quit-frame-host] .frame-surface :is(.frame-layer img:where(:not([data-show-mount] *)),.frame-cutout__art){transition:opacity .18s ease-out}
[data-quit-frame-host] .frame-surface :is(.frame-layer img:where(:not([data-show-mount] *)),.frame-cutout__art)[data-quit-decoded="pending"]{opacity:0!important}
/* The SEND IT hero keeps its drawn parts on screen while its art arrives: only the art waits. */
[data-floor-section="game"]>[data-quit-frame-host]:not([data-quit-scene="shown"]) .frame-surface{opacity:1!important}
[data-floor-section="game"]>[data-quit-frame-host] .frame-image[data-quit-decoded="pending"]{opacity:0!important}

/* 4. The hero's drawn parts, painted from the stylesheet in the first frame and covered by
   the art when it fades in (they sit under the plate). Frame pixels are in the surface's
   container units: 100cqw is the frame's width (2736 desktop, 1536 phone). */
[data-floor-section="game"] .frame-surface::before,[data-floor-section="game"] .frame-surface::after{content:"";position:absolute;z-index:-1;pointer-events:none}
/* Desktop monitor and deck: the bezel, the deck plate and its ALL TIME HIGH screen. */
[data-floor-section="game"] .frame-surface[data-frame="desktop-game"][data-hero-part="left"]::before{left:.731cqw;top:.146cqw;width:68.567cqw;height:51.1cqw;border-radius:1.2cqw;
 background:linear-gradient(#06100d,#06100d) 2.303cqw 42.215cqw/19.882cqw 6.724cqw no-repeat,linear-gradient(#152a1d,#152a1d) 2.193cqw 42.105cqw/20.102cqw 6.944cqw no-repeat,
  linear-gradient(#262b27,#262b27) .146cqw 40.863cqw/68.421cqw .15cqw no-repeat,linear-gradient(#141715,#101311) .146cqw 40.863cqw/68.421cqw 10.088cqw no-repeat,
  linear-gradient(#1a1d1b,#121513) 0 0/100% 40.716cqw no-repeat;box-shadow:inset 0 0 0 .11cqw #2c312d}
/* The LIVE BUYS column: its panel, and the drawn title until the lettering arrives. */
[data-floor-section="game"] .frame-surface[data-frame="desktop-game"][data-hero-part="feed"]::before{left:69.883cqw;top:.219cqw;width:29.678cqw;height:51.17cqw;border-radius:.6cqw;background:#070f0c;box-shadow:inset 0 0 0 .11cqw #232924}
[data-floor-section="game"] .frame-surface[data-frame="desktop-game"][data-hero-part="feed"]::after{content:"LIVE BUYS"/"";left:70.906cqw;top:1.974cqw;width:16.447cqw;height:2.997cqw;display:flex;align-items:center;font:700 2.45cqw/1 var(--t-font-display,"Silkscreen",monospace);letter-spacing:.05em;color:#ee5614;text-shadow:.1cqw .1cqw 0 #3a1003;white-space:nowrap}
/* Phone: the deck plate with its ALL TIME HIGH screen, the LIVE BUYS panel and its title. */
[data-floor-section="game"] .frame-surface[data-frame="phone-game"]::before{left:1.823cqw;top:73.828cqw;width:96.354cqw;height:94.27cqw;
 background:linear-gradient(#070f0c,#070f0c) .2cqw 38.09cqw/calc(100% - .4cqw) 55.98cqw no-repeat,linear-gradient(#232924,#232924) 0 37.89cqw/100% 56.38cqw no-repeat,
  linear-gradient(#06100d,#06100d) 1.953cqw 2.213cqw/92.448cqw 9.245cqw no-repeat,linear-gradient(#152a1d,#152a1d) 1.823cqw 2.083cqw/92.708cqw 9.505cqw no-repeat,
  linear-gradient(#141715,#101311) 0 0/100% 37.89cqw no-repeat;border-radius:.8cqw}
[data-floor-section="game"] .frame-surface[data-frame="phone-game"]::after{content:"LIVE BUYS"/"";left:3.906cqw;top:113.281cqw;width:30.99cqw;height:5.208cqw;display:flex;align-items:center;font:700 4.3cqw/1 var(--t-font-display,"Silkscreen",monospace);letter-spacing:.05em;color:#ee5614;text-shadow:.15cqw .15cqw 0 #3a1003;white-space:nowrap}
/* The stage screen: dark glass behind the labelled WARM-UP line (the multiplier slot's label
   and the caption are live text above it). It fades as the stage art fades in. */
[data-floor-section="game"] .q-stage::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:2.4% / 3.6%;
 background:radial-gradient(120% 95% at 50% 38%,#11211a 0%,#09140f 55%,#040907 100%);box-shadow:inset 0 0 0 .18cqw #1d2823,inset 0 0 4cqw #000;transition:opacity .45s ease-out}
[data-floor-section="game"]>[data-quit-frame-host][data-quit-scene="shown"] .q-stage::before{opacity:0}
/* BUY, EJECT and CHEER as drawn plates, under their cut-out art. Their names stay on the
   cut-out's own label for assistive technology (the drawn lettering has empty alt text). */
[data-floor-section="game"] .frame-cutout:is([data-region="game.buy"],[data-region="game.eject"],[data-region="game.cheer"])::before{position:absolute;z-index:-1;pointer-events:none;display:flex;align-items:center;justify-content:center;line-height:1;white-space:nowrap;font-family:var(--t-font-display,"Silkscreen",monospace);font-weight:700;letter-spacing:0}
[data-floor-section="game"] .frame-cutout[data-region="game.buy"]::before{content:"BUY $QUIT"/"";left:3%;right:3.5%;top:9%;bottom:24%;border-radius:.55cqw;background:linear-gradient(#ff7a2a,#ec520e 55%,#d9470a);box-shadow:0 .55cqw 0 #8a2704,inset 0 .1cqw 0 #ffb27a;font-size:2.7cqw;color:#170a03}
[data-floor-section="game"] .frame-cutout:is([data-region="game.eject"],[data-region="game.cheer"])::before{left:16%;top:5%;width:68%;height:66%;border-radius:50%;font-size:1.05cqw}
[data-floor-section="game"] .frame-cutout[data-region="game.eject"]::before{content:"EJECT"/"";background:radial-gradient(circle at 42% 34%,#ff5a45,#d71c16 58%,#a3120c);box-shadow:0 .62cqw 0 #6e0c07,0 .62cqw 0 .42cqw #1c1e1c;color:#3d0604}
[data-floor-section="game"] .frame-cutout[data-region="game.cheer"]::before{content:"CHEER"/"";background:radial-gradient(circle at 42% 34%,#4fe373,#12a83a 58%,#0b7a28);box-shadow:0 .62cqw 0 #075219,0 .62cqw 0 .42cqw #1c1e1c;color:#062e12}
[data-floor-section="game"] .frame-surface[data-frame="phone-game"] .frame-cutout[data-region="game.buy"]::before{left:1%;right:1%;top:3%;bottom:16%;border-radius:1cqw;box-shadow:0 1.2cqw 0 #8a2704,inset 0 .2cqw 0 #ffb27a;font-size:5.6cqw}
[data-floor-section="game"] .frame-surface[data-frame="phone-game"] .frame-cutout:is([data-region="game.eject"],[data-region="game.cheer"])::before{left:12%;top:2%;width:76%;height:72%;font-size:2.4cqw;box-shadow:0 1.1cqw 0 #3a0b07,0 1.1cqw 0 .8cqw #1c1e1c}
[data-floor-section="game"]>[data-quit-frame-host][data-quit-scene="shown"] .frame-cutout::before{visibility:hidden;transition:visibility 0s .45s}
/* LIVE BUYS: seven rows in the drawn row style, empty until data. The rule under each row
   stays for a row without a buy; the faint placeholders show only until the page is ready. */
[data-quit-trade-row]:empty{background:linear-gradient(#0d4521,#0d4521) 0 93%/100% 1.8% no-repeat}
[data-device="phone"] [data-quit-trade-row]:empty{background:linear-gradient(#0a582d,#0a582d) 0 99%/100% 2.2% no-repeat}
html:not([data-quit-ready]) [data-quit-trade-row]:empty{background:linear-gradient(#0d4521,#0d4521) 0 93%/100% 1.8% no-repeat,
 radial-gradient(closest-side,#0f2a1c 86%,transparent 100%) 7.4% 40.9%/12% 56% no-repeat,
 linear-gradient(#0c2217,#0c2217) 31.6% 17.9%/21% 22% no-repeat,linear-gradient(#0c2217,#0c2217) 29.8% 59%/16% 22% no-repeat,
 linear-gradient(#0c2217,#0c2217) 64.4% 17.9%/10% 22% no-repeat,linear-gradient(#0c2217,#0c2217) 85.3% 59%/32% 22% no-repeat}
html[data-device="phone"]:not([data-quit-ready]) [data-quit-trade-row]:empty{background:linear-gradient(#0a582d,#0a582d) 0 99%/100% 2.2% no-repeat,
 radial-gradient(closest-side,#0f2a1c 86%,transparent 100%) 3.3% 50%/8% 70% no-repeat,
 linear-gradient(#0c2217,#0c2217) 20.5% 25.7%/23% 25% no-repeat,linear-gradient(#0c2217,#0c2217) 20.2% 73.3%/16% 25% no-repeat,
 linear-gradient(#0c2217,#0c2217) 52.2% 50%/9% 30% no-repeat,linear-gradient(#0c2217,#0c2217) 87.8% 50%/26% 30% no-repeat}

/* 5. The show takes the stage only once it has drawn (note 1: never black once a scene has
   been painted). Until main.js marks the mount data-quit-show-painted, the show's box stays
   invisible and the drawn stage art stays (frames.css hides that art once the stage is
   mounted); the drawn characters sit above the stage, so they fade out only once the show has
   faded in under them. */
/* (The painted layers' rules never reach into the show itself: on the phone the show mounts inside the painted stage
   layer, and its overlay's pictures, a cameo's inset and the mouth shapes, were hidden with the painted art: an empty
   black inset, FINAL10 for QA8 F1.) */
[data-show-mount]>.show{transition:opacity .4s ease-out}
[data-show-mount]:not([data-quit-show-painted])>.show{opacity:0;pointer-events:none}
.frame-surface:has([data-show="mounted"]:not([data-quit-show-painted])) [data-show-art] img:where(:not([data-show-mount] *)){visibility:visible}
.frame-surface:has([data-quit-show-painted]) [data-show-art] img:where(:not([data-show-mount] *)){opacity:0!important;transition:opacity .25s ease-out .4s,visibility 0s .65s}

/* Content that arrives above the reader (the community block, the arcade machines) does not push
   what they are reading: scroll anchoring, which the shared theme turns off, is on for the QUIT
   pages that hold scenes. */
html:has([data-quit-frame-host]){overflow-anchor:auto}

/* 6. The community below SEND IT mounts beside ready (runtime/quit/main.js). Until main.js
   says it mounted or never will (data-quit-community), the block holds the mounted block's own
   height, so nothing below it moves when YOUR X ON THE LIVE SHOW arrives and a link to a floor
   further down lands where it points (build-community lane, 23 Oct 2026: the block grew from 219
   to 1,520 px at 1440 after load and moved FLOOR 15 and every floor under it). The height is
   the block's width times a plus b, per stretch of viewport width, from the mounted block
   measured every 2 to 4 px from 320 to 2560 px with the holders answered
   (tools/quit-site/community-reserve.mjs writes the lines between the markers; a padding in
   percent is a share of the block's own width, so a scrollbar is not counted). Display
   overrides the components' [hidden] rule, which is important; the block stays invisible and
   out of the reading order. Only when scripts run (boot.js marks the page before its body is
   parsed). A phone held sideways keeps the first screen's share, as before. The room is let go
   when main.js marks the block failed (none) or not answered in 15 s (late), and, should main.js
   never run, by itself 15 s after the first paint (q-reserve-release), so nobody is left before
   a held blank (04-a8's condition, 23 Oct 2026). Important, so no reduced-motion rule that turns
   animations off can keep the room held; it is a step, not a motion. The block's own minimum
   (community.css, the old console's) is not held either, so a page whose scripts stopped keeps no
   blank at all once the room goes. */
@keyframes q-reserve-release{to{padding-top:0}}
html[data-boot]:not([data-quit-community]) .q-community[hidden]{display:block!important;visibility:hidden;padding:0;min-height:0}
html[data-boot]:not([data-quit-community]) .q-community[hidden]::before{content:"";display:block;padding-top:calc(var(--qc-res-a) + var(--qc-res-b));animation:q-reserve-release 0s linear 15s forwards!important}
/* COMMUNITY reservation: start */
:root{--qc-res-a:53.8152%;--qc-res-b:1947.7px}
@media (min-width:340px){:root{--qc-res-a:-644.5000%;--qc-res-b:4315.0px}}
@media (min-width:344px){:root{--qc-res-a:53.5215%;--qc-res-b:1927.7px}}
@media (min-width:412px){:root{--qc-res-a:973.5000%;--qc-res-b:-1879.4px}}
@media (min-width:416px){:root{--qc-res-a:53.9714%;--qc-res-b:1909.5px}}
@media (min-width:444px){:root{--qc-res-a:54.7917%;--qc-res-b:1901.0px}}
@media (min-width:462px){:root{--qc-res-a:-1688.5000%;--qc-res-b:9975.4px}}
@media (min-width:466px){:root{--qc-res-a:53.7497%;--qc-res-b:1891.4px}}
@media (min-width:536px){:root{--qc-res-a:-1163.5000%;--qc-res-b:8440.3px}}
@media (min-width:540px){:root{--qc-res-a:53.8947%;--qc-res-b:1890.7px}}
@media (min-width:660px){:root{--qc-res-a:-1490.5000%;--qc-res-b:12114.5px}}
@media (min-width:664px){:root{--qc-res-a:54.0121%;--qc-res-b:1889.8px}}
@media (min-width:692px){:root{--qc-res-a:56.9996%;--qc-res-b:1852.8px}}
@media (min-width:768px){:root{--qc-res-a:59.6505%;--qc-res-b:1822.2px}}
@media (min-width:900px){:root{--qc-res-a:57.5362%;--qc-res-b:1736.5px}}
@media (min-width:1200px){:root{--qc-res-a:95.1935%;--qc-res-b:147.8px}}
@media (min-width:1552px){:root{--qc-res-a:96.0483%;--qc-res-b:134.9px}}
@media (min-width:1776px){:root{--qc-res-a:94.3751%;--qc-res-b:169.5px}}
@media (min-width:1952px){:root{--qc-res-a:97.2926%;--qc-res-b:115.2px}}
@media (min-width:2500px){:root{--qc-res-a:89.7618%;--qc-res-b:306.7px}}
@media (min-width:768px) and (max-width:1199.98px) and (max-aspect-ratio:3/4){:root{--qc-res-a:57.0006%;--qc-res-b:1852.8px}}
@media (min-width:921px) and (max-width:1199.98px) and (max-aspect-ratio:3/4){:root{--qc-res-a:55.0073%;--qc-res-b:1766.3px}}
/* COMMUNITY reservation: end */
@media (pointer:coarse) and (max-height:500px){
 html[data-boot]:not([data-quit-community]) .q-community[hidden]{min-height:max(0px,calc(100vh - var(--t-header-phone,62px) - 100vw * 2068 / 1536))}
 html[data-boot]:not([data-quit-community]) .q-community[hidden]::before{padding-top:0}
}
/* 6b. The help desk's chat (runtime/components/ChatWindow.js, mounted by frame-controls.js) holds
   its mounted height in the phone layout before it arrives, the same way: on a phone the
   terminal grew by 626 px when the chat came in. Desktops draw the desk in its scene's fixed
   box, so nothing moves there. A chat that never comes lets the room go after 15 s. */
@media (max-width:767px),(max-width:1199px) and (max-aspect-ratio:3/4){
 html[data-boot]:is([data-device="phone"],:not([data-device])) [data-quit-help-desk]:empty::before{content:"";display:block;padding-top:calc(var(--qd-res-a) + var(--qd-res-b));animation:q-reserve-release 0s linear 15s forwards!important}
}
/* HELP DESK reservation: start */
:root{--qd-res-a:0.0000%;--qd-res-b:626.0px}
@media (min-width:768px) and (max-width:1199.98px) and (max-aspect-ratio:3/4){:root{--qd-res-a:0.0000%;--qd-res-b:626.0px}}
/* HELP DESK reservation: end */

@media (prefers-reduced-motion:reduce){
 [data-quit-frame-host] .frame-surface,[data-quit-frame-host] .frame-surface :is(.frame-image,.frame-layer img:where(:not([data-show-mount] *)),.frame-cutout__art),[data-floor-section="game"] .q-stage::before,[data-show-mount]>.show,.frame-surface:has([data-quit-show-painted]) [data-show-art] img:where(:not([data-show-mount] *)){transition:none}
}

/* 7. The EX-EMPLOYEES floor (runtime/quit/exit-lab.js, mounted by community.js mountQuitCollection) holds its mounted
   height from the first paint, so nothing below it moves when the lab arrives (badges audit, 22 Oct 2026: CLS 0.302 on
   a throttled /badges; audit SHOP-13, 23 Oct 2026: on the home page the floor still grew by 70 px on a desktop and 254 px
   on a phone when THE WINDOW and the CONNECT WALLET plate came in, and every floor below it moved). The heights are the
   mounted lab's own as visitors see it, with the holder window's live answer, measured every 2 to 4 px of width from 320
   to 2560 px (tools/ex-employees-art/reserve-sweep.mjs) in macOS and in Linux type, whose line breaks differ by a few
   px on a phone, and fitted to their mean within 3 px per stretch of width (reserve-fit.py writes the lines between the
   markers). W is the page's width: on the home page the floor's own width, so a scrollbar
   is not counted. Only when scripts run (boot.js marks the page before its body is parsed); a mount that fails marks the
   host unavailable and the box collapses. */
.q-collection[data-quit-collection]{--xe-res-w:100vw}
[data-floor-section="badges"]{container-type:inline-size}
[data-floor-section="badges"]>.q-collection[data-quit-collection]{--xe-res-w:100cqw}
html[data-boot] .q-collection[data-quit-collection][hidden]:not([data-collection-state="unavailable"]){display:block!important;visibility:hidden;min-height:calc(var(--xe-res-a) * var(--xe-res-w) + var(--xe-res-b))}
/* EX-EMPLOYEES reservation: start */
:root{--xe-res-a:-1.48000;--xe-res-b:5496.9px}
@media (min-width:326px){:root{--xe-res-a:5.54000;--xe-res-b:3214.1px}}
@media (min-width:330px){:root{--xe-res-a:-3.83000;--xe-res-b:6292.3px}}
@media (min-width:334px){:root{--xe-res-a:3.33000;--xe-res-b:3912.6px}}
@media (min-width:340px){:root{--xe-res-a:5.54000;--xe-res-b:3167.9px}}
@media (min-width:344px){:root{--xe-res-a:-1.27500;--xe-res-b:5494.7px}}
@media (min-width:348px){:root{--xe-res-a:4.11054;--xe-res-b:3637.1px}}
@media (min-width:364px){:root{--xe-res-a:3.34150;--xe-res-b:3918.4px}}
@media (min-width:374px){:root{--xe-res-a:4.28650;--xe-res-b:3568.9px}}
@media (min-width:382px){:root{--xe-res-a:5.55750;--xe-res-b:3088.1px}}
@media (min-width:388px){:root{--xe-res-a:8.04794;--xe-res-b:2110.2px}}
@media (min-width:412px){:root{--xe-res-a:6.02500;--xe-res-b:2950.5px}}
@media (min-width:418px){:root{--xe-res-a:8.60571;--xe-res-b:1875.2px}}
@media (min-width:430px){:root{--xe-res-a:8.42609;--xe-res-b:1946.2px}}
@media (min-width:452px){:root{--xe-res-a:8.07150;--xe-res-b:2100.4px}}
@media (min-width:460px){:root{--xe-res-a:6.67500;--xe-res-b:2731.8px}}
@media (min-width:466px){:root{--xe-res-a:14.59500;--xe-res-b:-968.3px}}
@media (min-width:470px){:root{--xe-res-a:8.76250;--xe-res-b:1748.6px}}
@media (min-width:484px){:root{--xe-res-a:3.91000;--xe-res-b:4083.2px}}
@media (min-width:488px){:root{--xe-res-a:2.02500;--xe-res-b:5032.2px}}
@media (min-width:492px){:root{--xe-res-a:7.25000;--xe-res-b:2475.1px}}
@media (min-width:498px){:root{--xe-res-a:8.79375;--xe-res-b:1724.7px}}
@media (min-width:512px){:root{--xe-res-a:9.41900;--xe-res-b:1399.4px}}
@media (min-width:522px){:root{--xe-res-a:7.43250;--xe-res-b:2415.0px}}
@media (min-width:528px){:root{--xe-res-a:7.50850;--xe-res-b:2401.9px}}
@media (min-width:538px){:root{--xe-res-a:8.84500;--xe-res-b:1692.1px}}
@media (min-width:546px){:root{--xe-res-a:10.43200;--xe-res-b:843.1px}}
@media (min-width:554px){:root{--xe-res-a:7.79500;--xe-res-b:2275.5px}}
@media (min-width:558px){:root{--xe-res-a:11.01957;--xe-res-b:515.1px}}
@media (min-width:570px){:root{--xe-res-a:10.41804;--xe-res-b:850.9px}}
@media (min-width:586px){:root{--xe-res-a:12.90050;--xe-res-b:-588.3px}}
@media (min-width:594px){:root{--xe-res-a:7.53050;--xe-res-b:2597.0px}}
@media (min-width:602px){:root{--xe-res-a:11.33536;--xe-res-b:302.1px}}
@media (min-width:616px){:root{--xe-res-a:17.31500;--xe-res-b:-3389.5px}}
@media (min-width:620px){:root{--xe-res-a:10.96000;--xe-res-b:535.7px}}
@media (min-width:624px){:root{--xe-res-a:10.18000;--xe-res-b:1035.1px}}
@media (min-width:632px){:root{--xe-res-a:16.14000;--xe-res-b:-2741.3px}}
@media (min-width:636px){:root{--xe-res-a:8.62000;--xe-res-b:2032.0px}}
@media (min-width:646px){:root{--xe-res-a:7.29170;--xe-res-b:2884.8px}}
@media (min-width:666px){:root{--xe-res-a:-7.63000;--xe-res-b:12792.2px}}
@media (min-width:670px){:root{--xe-res-a:7.17750;--xe-res-b:2900.7px}}
@media (min-width:680px){:root{--xe-res-a:9.79843;--xe-res-b:641.6px}}
@media (min-width:692px){:root{--xe-res-a:10.02250;--xe-res-b:497.2px}}
@media (min-width:698px){:root{--xe-res-a:10.41300;--xe-res-b:248.5px}}
@media (min-width:706px){:root{--xe-res-a:9.47500;--xe-res-b:896.1px}}
@media (min-width:710px){:root{--xe-res-a:9.92750;--xe-res-b:587.1px}}
@media (min-width:716px){:root{--xe-res-a:2.86714;--xe-res-b:5631.2px}}
@media (min-width:728px){:root{--xe-res-a:1.85095;--xe-res-b:6366.5px}}
@media (min-width:750px){:root{--xe-res-a:1.90142;--xe-res-b:6320.6px}}
@media (min-width:768px){:root{--xe-res-a:1.85971;--xe-res-b:6338.6px}}
@media (min-width:822px){:root{--xe-res-a:0.17306;--xe-res-b:7718.3px}}
@media (min-width:855px){:root{--xe-res-a:-4.27333;--xe-res-b:11506.6px}}
@media (min-width:861px){:root{--xe-res-a:0.17403;--xe-res-b:7690.7px}}
@media (min-width:987px){:root{--xe-res-a:0.67433;--xe-res-b:6464.7px}}
@media (min-width:999px){:root{--xe-res-a:0.74376;--xe-res-b:6385.6px}}
@media (min-width:1047px){:root{--xe-res-a:0.71000;--xe-res-b:6402.4px}}
@media (min-width:1053px){:root{--xe-res-a:0.67333;--xe-res-b:6460.3px}}
@media (min-width:1059px){:root{--xe-res-a:0.72953;--xe-res-b:6381.6px}}
@media (min-width:1194px){:root{--xe-res-a:0.74401;--xe-res-b:6375.9px}}
@media (min-width:1233px){:root{--xe-res-a:0.78689;--xe-res-b:6310.3px}}
@media (min-width:1260px){:root{--xe-res-a:0.73202;--xe-res-b:6401.8px}}
@media (min-width:1280px){:root{--xe-res-a:2.37524;--xe-res-b:104.8px}}
@media (min-width:1312px){:root{--xe-res-a:2.37616;--xe-res-b:79.5px}}
@media (min-width:1340px){:root{--xe-res-a:2.31875;--xe-res-b:169.6px}}
@media (min-width:1356px){:root{--xe-res-a:2.23855;--xe-res-b:262.8px}}
@media (min-width:1452px){:root{--xe-res-a:1.64597;--xe-res-b:1118.3px}}
/* EX-EMPLOYEES reservation: end */

/* The cabinet room supplies its own first plate, so hidden fallback layers wait for a mount failure. */
[data-quit-frame-host][data-quit-scene="held"]>.frame-surface{display:none}
