/* montserrat-latin-500-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('assets/fonts/montserrat-latin-500-normal.woff2') format('woff2');
}
/* montserrat-cyrillic-500-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('assets/fonts/montserrat-cyrillic-500-normal.woff2') format('woff2');
}
/* montserrat-latin-600-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('assets/fonts/montserrat-latin-600-normal.woff2') format('woff2');
}
/* montserrat-cyrillic-600-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('assets/fonts/montserrat-cyrillic-600-normal.woff2') format('woff2');
}
/* montserrat-latin-700-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('assets/fonts/montserrat-latin-700-normal.woff2') format('woff2');
}
/* montserrat-cyrillic-700-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('assets/fonts/montserrat-cyrillic-700-normal.woff2') format('woff2');
}
/* montserrat-latin-900-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 900;
  src: url('assets/fonts/montserrat-latin-900-normal.woff2') format('woff2');
}
/* montserrat-cyrillic-900-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 900;
  src: url('assets/fonts/montserrat-cyrillic-900-normal.woff2') format('woff2');
}
:root{font-family:Montserrat,Arial,sans-serif;font-weight:500;color:#253331;background:#19382f;font-synthesis:none;--mint:#a2f4e9;--teal:#00cbb4;--blue:#1200a8}*{box-sizing:border-box}body{margin:0}button,input,a{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #008c7c;outline-offset:3px}button{transition:transform .15s,box-shadow .15s}button:hover:not(:disabled){transform:translateY(-2px)}h1,h2,p{margin-top:0}h1,h2{font-weight:900;letter-spacing:-.035em}p{line-height:1.5}.primary{background:var(--blue);color:white;border-radius:17px;padding:18px 34px;font-weight:700;box-shadow:0 5px 9px #15284924}.secondary{padding:13px 22px;background:#ffffffbc;border-radius:13px;color:#263d38;font-weight:700}.small{font-size:13px}.muted{color:#57736a}.landing{height:100dvh;background:linear-gradient(#10272033,#10272044),url('assets/office-start.jpg') center/cover;display:flex;align-items:center;justify-content:center;padding:24px}.panel{max-height:100%;display:flex;flex-direction:column;width:min(850px,100%);background:var(--mint);border-radius:38px;overflow:hidden;box-shadow:0 24px 90px #082e4140}.panel-title{flex:none;background:var(--teal);color:white;padding:38px 45px;text-align:center;border-radius:0 0 36px 36px}.panel-title h1{font-size:clamp(27px,3vw,43px);margin:0}.panel-body{padding:30px 44px;overflow-y:auto;min-height:0}.panel-body p{font-size:19px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;margin-bottom:13px}.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:25px}label{display:block;font-weight:bold;margin-bottom:9px}input{width:100%;border:2px solid transparent;border-radius:13px;background:#fff;padding:18px;color:#243c35}form{max-width:480px;margin:auto}.help{font-size:13px!important;margin:12px 0;color:#40665e}.error{color:#941e31;font-size:14px;margin:12px 0}.topline{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:25px}.email{overflow-wrap:anywhere;font-size:13px}.locations{display:grid;grid-template-columns:1fr 1fr;gap:26px}.location{background:white;padding:12px;border-radius:25px;text-align:left;color:inherit;overflow:hidden}.thumb{height:clamp(90px,21dvh,195px);border-radius:17px;background-size:cover;background-position:left center}.location h2{font-size:25px;margin:15px 8px 8px}.location p{font-size:14px;margin:5px 8px 12px}.progress{height:5px;border-radius:10px;background:#dceae5;overflow:hidden;margin:15px 8px}.progress span{height:100%;display:block;background:var(--teal)}.stats{display:flex;justify-content:center;gap:30px;margin-top:25px;font-size:14px}.game-shell{height:100dvh;display:flex;flex-direction:column;background:#172d28;overflow:hidden}.game-header{height:64px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:10px 22px;background:#fff;gap:20px}.game-header h1{font-size:19px;margin:0}.game-header .secondary{background:#edf6f1;padding:10px 15px}.map-scroll{flex:1;min-height:0;min-width:0;overflow-x:auto;overflow-y:hidden;display:flex;scrollbar-width:none;overscroll-behavior-x:contain}.scene{position:relative;flex:none;margin-inline:auto;background-size:100% 100%;isolation:isolate}.hotspot{position:absolute;transform:translate(-50%,-50%);padding:0;background:transparent;border-radius:12px;z-index:2;touch-action:none}.hotspot:hover:not(:disabled){transform:translate(-50%,-50%);box-shadow:0 0 0 3px #ffffffa0,0 0 25px #00cbb4}.hotspot.selected{outline:3px solid #fff;box-shadow:0 0 0 6px var(--teal)}.hotspot img{width:100%;height:100%;object-fit:contain;pointer-events:none}.done-mark{position:absolute;transform:translate(-50%,-50%);border-radius:50%;background:#00cbb4;color:white;width:23px;height:23px;display:grid;place-items:center;pointer-events:none}.bins-panel{flex:none;width:clamp(132px,24dvh,270px);padding:12px 10px;z-index:3;background:transparent;align-self:flex-start}.counter{background:var(--teal);color:white;font-size:clamp(18px,3.5dvh,36px);font-weight:900;text-align:center;border-radius:12px;padding:7px;margin-bottom:8px}.bins{display:grid;grid-template-columns:1fr 1fr;gap:4px}.bin{position:relative;border-radius:12px;background:#ffffffb8;backdrop-filter:blur(4px);min-width:0;height:clamp(66px,12dvh,130px);padding:9px 3px 5px;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:5px;font-size:clamp(8px,1.35dvh,14px);font-weight:700;line-height:1.1;text-align:center}.bin:last-child{grid-column:2}.bin:hover,.bin.over{background:var(--mint);box-shadow:0 0 0 3px white}.bin-icon{position:relative;display:block;width:44%;height:48%;background:var(--bin);border-radius:4px 4px 9px 9px;box-shadow:inset -8px 0 #0002,2px 4px 3px #0003;margin-bottom:8px;transform:perspective(130px) rotateY(-10deg);color:#fff;font-size:clamp(16px,3.5dvh,34px);line-height:1.7}.bin-icon:before{content:'';position:absolute;top:-5px;left:-9%;width:118%;height:8px;background:var(--bin);border-radius:3px;box-shadow:0 2px 0 #0002}.tooltip{display:none;position:absolute;right:110%;top:0;width:290px;background:#fff;color:#253331;padding:18px;border-radius:15px;box-shadow:0 7px 20px #0003;font-size:15px;font-weight:500;line-height:1.4;text-align:left;pointer-events:none}.bin:hover .tooltip,.bin:focus-visible .tooltip{display:block}.game-footer{background:#fff;flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;font-size:13px}.selection{font-weight:700}.keycap{padding:5px 8px;background:#edf5f0;border-radius:7px}.notice{color:#557269;font-size:12px;margin-top:6px}.loading{padding:50px;text-align:center;color:white}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}dialog{border:0;border-radius:28px;max-width:520px;width:calc(100% - 32px);padding:35px;background:#effffb;color:#263d38;box-shadow:0 20px 90px #0005}dialog::backdrop{background:#041c2266;backdrop-filter:blur(3px)}dialog h2{font-size:28px}dialog p{font-size:18px}.star{font-size:85px;text-align:center;margin:0 0 18px}.admin{min-height:100svh;background:#eff6f2;padding:40px}.admin-wrap{max-width:1250px;margin:auto}.admin h1{font-size:36px}.admin-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:25px 0}.admin-card{background:white;padding:25px;border-radius:20px}.admin-card strong{display:block;font-size:36px;color:#007e6e;margin-top:10px}.table-wrap{overflow:auto;background:white;border-radius:16px}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:14px}th,td{padding:17px;text-align:left;border-bottom:1px solid #e2ebe5}th{color:#4e6960;font-size:12px}a{color:#1800a8}.admin-tools{display:flex;gap:12px;align-items:center;margin:24px 0}.admin-tools input{max-width:350px}.pill{background:#d6f9e9;border-radius:15px;padding:5px 9px;font-size:12px}
html,body{width:100%;height:100%;overflow:hidden}#app{height:100%;min-height:0}
[hidden]{display:none!important}.game-area{flex:1;display:flex;min-height:0;min-width:0}.map-column{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.map-scroll::-webkit-scrollbar{display:none}
.map-navigation{height:32px;flex:none;display:flex;align-items:center;gap:10px;padding:3px 18px;background:#e7faf3;color:#236c60;font-size:15px;font-weight:700}.scroll-label{font-size:11px;white-space:nowrap}.map-navigation input{appearance:none;-webkit-appearance:none;min-width:0;flex:1;height:8px;padding:0;background:#b1d8cf;border:0;border-radius:20px;cursor:ew-resize}.map-navigation input::-webkit-slider-thumb{appearance:none;width:clamp(40px,8vw,110px);height:12px;border-radius:20px;background:var(--teal);box-shadow:0 1px 4px #00776944}.map-navigation input::-moz-range-thumb{width:60px;height:12px;border:0;border-radius:20px;background:var(--teal)}
.admin{height:100dvh;overflow:auto}.panel-body,.admin,dialog{scrollbar-width:thin;scrollbar-color:#00cbb4 #d5ece6}dialog{max-height:calc(100dvh - 32px);overflow-y:auto}.bin:last-child{grid-column:2}.bin:hover .tooltip,.bin:focus-visible .tooltip{z-index:10}.game-header{height:52px}.game-header .email{max-width:30%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice{font-size:10px;max-width:850px}.selection{font-weight:600}.tooltip{max-width:calc(100vw - 165px)}
@media(max-width:700px){.landing{padding:16px}.panel{border-radius:24px}.panel-title{padding:24px 18px;border-radius:0 0 24px 24px}.panel-title h1{font-size:25px}.panel-body{padding:22px}.panel-body p{font-size:15px}.locations{gap:12px}.location{padding:8px;border-radius:18px}.location h2{font-size:19px;margin:12px 4px 6px}.location p{font-size:12px;margin-inline:4px}.topline{gap:8px}.email{font-size:11px}.primary{padding:15px 20px}.secondary{padding:10px 14px}.stats{font-size:11px;gap:12px}.game-header{height:46px;padding:7px 12px}.game-header h1{font-size:14px}.game-header .email{display:none}.game-area{position:relative}.bins-panel{width:116px;padding:8px 5px}.bin{height:clamp(70px,12dvh,108px);font-size:8px;border-radius:9px}.bin-icon{width:24px;font-size:23px;height:36px}.counter{font-size:21px}.game-footer{font-size:11px;padding:8px 12px}.notice{display:none}.scroll-label{display:none}.map-navigation{padding:3px 10px;gap:5px}.tooltip{font-size:12px;padding:12px;right:calc(100% + 5px);width:210px;max-width:calc(100vw - 130px)}.admin{padding:20px 12px}.admin-cards{gap:8px}.admin-card{padding:12px;font-size:11px}.admin-tools{flex-wrap:wrap}}
@media(max-height:550px){.landing{padding:12px}.panel-title{padding:16px 24px}.panel-title h1{font-size:26px}.panel-body{padding:18px 26px}.panel-body p{font-size:14px}.actions{margin-top:15px}.game-header{height:40px}.game-footer{padding:6px 12px;font-size:11px}.notice{display:none}.bins-panel{width:132px;padding:6px}.counter{font-size:19px;padding:4px;margin-bottom:5px}.bin{height:calc((100dvh - 124px)/4);font-size:8px;gap:3px;padding:6px 2px 3px;border-radius:7px}.bin-icon{width:22px;height:45%;font-size:16px;line-height:1.3;margin-bottom:2px}.bin-icon:before{height:5px;top:-3px}.game-header h1{font-size:14px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* На узком высоком экране контейнеры занимают отдельную строку под картой. */
@media(max-width:700px) and (min-height:551px){
 .game-area{flex-direction:column}.map-column{width:100%}.bins-panel{width:100%;padding:7px 5px;align-self:stretch}.bins{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.bin{height:82px;font-size:8px;padding:8px 2px 4px;justify-content:flex-start}.bin:last-child{grid-column:auto}.bin-icon{height:33px;width:24px;flex:none;margin-bottom:4px}.counter{position:fixed;top:8px;right:10px;width:64px;padding:4px;font-size:17px;border-radius:8px;margin:0}.game-header h1{font-size:11px;margin-right:74px}.tooltip{display:none!important}
}
body{position:fixed;inset:0} 

.landing.office-complete{background-image:linear-gradient(#10272033,#10272044),url('assets/office-clean.jpg')}
.bin-image{display:block;width:65%;height:60%;min-height:0;object-fit:contain;flex:none;margin-bottom:3px;pointer-events:none}.star{display:block;width:min(280px,75%);height:auto;max-height:25dvh;object-fit:contain;margin:0 auto 22px}.hotspot img{display:block}.bin{gap:3px}
@media(max-width:700px){.bin-image{width:36px;height:42px}}
@media(max-height:550px){.bin-image{width:30px;height:50%;margin-bottom:1px}}
/* Корзины — отдельные полупрозрачные карточки непосредственно над картой. */
.game-area{position:relative;display:block}.map-column{width:100%;height:100%}.bins-panel{position:absolute;right:12px;top:12px;left:auto;bottom:auto;width:clamp(104px,18dvh,180px);padding:0;background:none;z-index:8;pointer-events:none}.bins-panel .bin{pointer-events:auto}.bins-panel .counter{position:static;width:auto;font-size:clamp(16px,2.8dvh,27px);margin:0 0 5px;padding:5px}.bins-panel .bins{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.bins-panel .bin{height:clamp(54px,9dvh,94px);padding:6px 2px 4px;background:rgba(255,255,255,.7);font-size:clamp(7px,1.1dvh,11px);border-radius:10px;gap:3px;justify-content:center}.bins-panel .bin:last-child{grid-column:2}.bins-panel .bin-image{width:57%;height:57%;margin:0}.bin:hover,.bin.over{background:#effffbd9;box-shadow:none}.game-header h1{margin-right:0}
.hotspot,.hotspot:hover:not(:disabled),.hotspot.selected{outline:none;box-shadow:none;transform:translate(-50%,-50%);cursor:pointer;transition:none}.hotspot:focus-visible{outline:2px dashed white;outline-offset:3px}.scene-shade{display:none;position:absolute;inset:0;background:rgba(5,15,18,.30);z-index:3}.has-selection .scene-shade{display:block}.hotspot.selected{z-index:4}.item-hint{position:absolute;z-index:9;width:min(380px,calc(100% - 24px));padding:22px 34px 20px 22px;background:linear-gradient(120deg,#fff,#eafff9);border-radius:20px;box-shadow:0 8px 32px #0003;color:#253331}.item-hint h2{font-size:17px;font-weight:700;line-height:1.35;letter-spacing:0;margin:0 0 9px}.item-hint p{font-size:14px;line-height:1.5;margin:0}.hint-close{position:absolute;right:7px;top:5px;width:27px;height:27px;background:none;font-size:24px;color:#54726a;padding:0}.scene-shade{cursor:default}
@media(max-width:700px){.bins-panel{width:112px;top:8px;right:8px}.bins-panel .bin{height:62px;font-size:8px}.bins-panel .bin-image{width:28px;height:34px}.item-hint{width:min(290px,calc(100% - 20px));padding:15px 30px 15px 16px}.item-hint h2{font-size:14px}.item-hint p{font-size:12px}.game-header h1{margin-right:0;font-size:13px}}
@media(max-height:550px){.bins-panel{width:110px;top:7px;right:8px}.bins-panel .bin{height:clamp(40px,10dvh,55px);font-size:7px;border-radius:7px;padding:4px 2px}.bins-panel .bin-image{height:53%;width:24px}.bins-panel .counter{font-size:16px;padding:4px}.item-hint{padding:14px 30px 14px 16px}.item-hint h2{font-size:14px}.item-hint p{font-size:12px}}
.moving-item{position:fixed;z-index:1000;object-fit:contain;pointer-events:none;user-select:none;filter:drop-shadow(0 6px 7px #0003)}.result-icon{width:68px;height:68px;display:grid;place-items:center;border-radius:50%;font-family:Arial,sans-serif;font-size:50px;font-weight:700;margin:10px auto 22px}.result-icon.correct{color:#12894e;background:#d7f9e5}.result-icon.incorrect{color:#cf344a;background:#ffe2e6}.answer-dialog>h2{text-align:center}.bin.answer-correct::after,.bin.answer-incorrect::after{position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;font-size:38px;font-weight:900;background:#eefff6d9;color:#12894e;content:'✓'}.bin.answer-incorrect::after{content:'×';color:#cf344a;background:#fff0f2d9}
dialog.victory-dialog{background:#a2f4e9;width:min(620px,calc(100% - 32px));max-width:620px;padding:0 0 36px;border-radius:36px;box-shadow:none}.victory-dialog>h2{background:#00cbb4;color:white;text-align:center;font-size:28px;margin:0;padding:40px 24px;border-radius:0 0 36px 36px}.victory-dialog>div:not(.actions){padding:22px 50px 0}.victory-dialog .star{width:270px;max-height:25dvh;margin:0 auto 24px}.victory-dialog p{font-size:17px;line-height:1.35;margin-bottom:12px;font-weight:500}.victory-dialog .actions{margin:28px 24px 0}.victory-dialog .primary{font-size:16px;padding:16px 28px;border-radius:15px}.victory-dialog::backdrop{background:#00000012;backdrop-filter:none}
@media(max-width:600px),(max-height:600px){dialog.victory-dialog{width:min(470px,calc(100% - 24px));padding-bottom:24px;border-radius:28px}.victory-dialog>h2{padding:27px 18px;font-size:23px;border-radius:0 0 28px 28px}.victory-dialog>div:not(.actions){padding:18px 30px 0}.victory-dialog p{font-size:14px}.victory-dialog .star{width:210px;margin-bottom:20px}.victory-dialog .actions{margin-top:22px}.victory-dialog .primary{font-size:13px;padding:13px 20px}}

.answer-dialog>div:not(.actions){text-align:center}
dialog.rules-dialog{width:min(850px,calc(100% - 32px));max-width:850px;background:var(--mint);padding:0 0 30px;border-radius:38px}
.rules-dialog>h2{background:var(--teal);color:white;text-align:center;padding:38px 45px;margin:0;border-radius:0 0 36px 36px;font-size:clamp(27px,3vw,43px)}
.rules-dialog>div:not(.actions){padding:30px 44px 0}
.rules-dialog p{font-size:19px}
.rules-dialog .actions{margin:25px 24px 0}
@media(max-width:600px){.rules-dialog>h2{padding:26px 22px}.rules-dialog>div:not(.actions){padding:24px 22px 0}.rules-dialog p{font-size:16px}}

html:not(.keyboard-navigation) button:focus-visible,html:not(.keyboard-navigation) a:focus-visible{outline:none}

/* Не выделять игровую сцену при перетаскивании и свайпах. */
.game-shell{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.game-shell img{-webkit-user-drag:none;-webkit-touch-callout:none}
.hotspot img{display:block}
.bin{color:#253331;-webkit-appearance:none;appearance:none}
.bin>span:not(.tooltip){color:inherit}

/* Компактная типографика окон и подсказок. */
.panel-title h1{font-size:clamp(23px,2.5vw,35px)}
.panel-body p{font-size:16px}.location h2{font-size:21px}
dialog h2{font-size:23px}dialog p{font-size:15px}
.rules-dialog>h2{font-size:clamp(23px,2.5vw,35px)}.rules-dialog p{font-size:16px}
.victory-dialog>h2{font-size:24px}.victory-dialog p{font-size:15px}
.item-hint h2{font-size:15px}.item-hint p{font-size:12px}.tooltip{font-size:13px}
.bins-panel .bin{font-size:clamp(7px,1dvh,10px)}
.result-check{width:18px;height:18px;padding:0;accent-color:#008c7c}.admin-tools{flex-wrap:wrap}
@media(max-width:700px){.item-hint h2{font-size:12px}.item-hint p{font-size:11px}.bins-panel .bin{font-size:7px}.tooltip{font-size:12px}}
@media(max-width:600px),(max-height:600px){.victory-dialog>h2{font-size:20px}.victory-dialog p{font-size:12px}.rules-dialog p{font-size:14px}}

.hotspot[data-item="office-2"]:not(.selected){z-index:1}
