:root{--navy: #2a2f67;--navy-deep: #1b1f4a;--green: #009456;--green-dark: #007744;--green-soft: #eaf7f1;--ink: #141833;--paper: #f1f5fa;--card: #ffffff;--line: #d9e1ee;--line-soft: #e9eef7;--muted: #5e6a88;--stage: #101538;--bad: #a83028;--r: 6px;--sans: "Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100%;font-family:var(--sans);font-size:16px;line-height:1.55;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background-image:linear-gradient(to right,rgba(42,47,103,.055) 1px,transparent 1px),linear-gradient(to bottom,rgba(42,47,103,.055) 1px,transparent 1px),linear-gradient(to right,rgba(42,47,103,.085) 1px,transparent 1px),linear-gradient(to bottom,rgba(42,47,103,.085) 1px,transparent 1px);background-size:36px 36px,36px 36px,180px 180px,180px 180px}#root{position:relative;z-index:1}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid rgba(0,148,86,.55);outline-offset:2px;border-radius:4px}.app{display:flex;flex-direction:column;min-height:100vh}.skip{position:absolute;left:-9999px;top:0;background:var(--card);padding:10px 14px;border-radius:var(--r);z-index:50}.skip:focus{left:12px;top:12px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:14px clamp(16px,4vw,40px);background:#ffffffeb;-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;min-width:0}.brand-logo{height:40px;width:auto;display:block}.brand-name{font-size:17px;font-weight:600;color:var(--navy);line-height:1.2}.brand-sub{font-size:12.5px;color:var(--muted);line-height:1.3}.mode-pick{display:flex;align-items:center;gap:10px;min-width:0}.mode-pick>span{font-size:13px;color:var(--muted);white-space:nowrap}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:16px}.who{display:flex;align-items:center;gap:6px}.who-name{font-size:13.5px;color:var(--navy);font-weight:500}.boot{min-height:100vh}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--card);color:var(--navy);border:1px solid var(--line);border-radius:var(--r);padding:8px 34px 8px 12px;font-size:14px;font-weight:500;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%);background-position:calc(100% - 17px) 52%,calc(100% - 12px) 52%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;transition:border-color .15s ease,box-shadow .15s ease;max-width:100%}select:hover{border-color:#b9c4d9}.page{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:clamp(24px,5vw,56px) clamp(16px,4vw,40px) 64px}.hero{max-width:760px;margin:0 auto;text-align:center}.hero h1{margin:0 0 12px;font-size:clamp(30px,5vw,46px);font-weight:700;letter-spacing:-.025em;line-height:1.12;color:var(--navy);text-wrap:balance}.hero p{margin:0 auto 32px;max-width:54ch;font-size:17px;color:var(--muted);text-wrap:pretty}.chamber{position:relative;display:block;width:100%;padding:clamp(30px,6vw,54px) 24px;border:2px dashed rgba(42,47,103,.28);border-radius:10px;background-color:var(--card);background-image:linear-gradient(to right,rgba(42,47,103,.07) 1px,transparent 1px),linear-gradient(to bottom,rgba(42,47,103,.07) 1px,transparent 1px),linear-gradient(to right,rgba(42,47,103,.11) 1px,transparent 1px),linear-gradient(to bottom,rgba(42,47,103,.11) 1px,transparent 1px);background-size:30px 30px,30px 30px,150px 150px,150px 150px;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.chamber.is-over{border-color:var(--green);background-color:var(--green-soft);box-shadow:0 14px 40px #00945624}.chamber-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px}.chamber svg{display:block;margin-bottom:10px}.chamber-title{font-size:18px;font-weight:600;color:var(--navy)}.chamber-hint{font-size:14px;color:var(--muted);margin-bottom:18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--card);color:var(--navy);border-radius:var(--r);padding:10px 18px;font-size:15px;font-weight:500;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .12s ease;touch-action:manipulation}.btn:hover:not(:disabled){border-color:var(--navy);background:#f7f9fd}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--green);border-color:var(--green);color:#fff}.btn-primary:hover:not(:disabled){background:var(--green-dark);border-color:var(--green-dark)}.btn-lg{padding:14px 26px;font-size:16px}.btn-sm{padding:6px 10px;font-size:13px}.btn-quiet{border-color:transparent;background:transparent;color:var(--muted);padding:8px 10px}.btn-quiet:hover:not(:disabled){background:var(--line-soft);color:var(--navy);border-color:transparent}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:clamp(26px,5vw,36px);box-shadow:0 24px 60px #1015381a}.login-brand{display:flex;align-items:center;gap:13px;margin-bottom:26px}.login-title{font-size:19px;font-weight:600;color:var(--navy);line-height:1.2}.login-org{font-size:12.5px;color:var(--muted)}.login-form{display:flex;flex-direction:column;gap:14px}.login-field{display:flex;flex-direction:column;gap:5px}.login-field>span{font-size:13px;color:var(--muted)}.login-field input{width:100%;padding:11px 12px;font-size:15px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r);transition:border-color .15s ease,box-shadow .15s ease}.login-field input:hover{border-color:#b9c4d9}.login-field input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #0094562e}.login-form .btn{width:100%;margin-top:4px}.login-error{margin:0;padding:10px 12px;font-size:14px;color:var(--bad);background:#a830280d;border:1px solid rgba(168,48,40,.3);border-radius:var(--r)}.login-hint{margin:22px 0 0;font-size:12.5px;color:var(--muted);line-height:1.5}.work{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,1fr);gap:clamp(16px,2.5vw,28px);align-items:start}.stage-card{background:var(--stage);border-radius:10px;overflow:hidden;box-shadow:0 20px 50px #10153838}.stage{position:relative;height:clamp(300px,52vh,620px);display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none}.stage.can-pan{cursor:grab}.stage.is-panning{cursor:grabbing}.stage-frame{position:relative;overflow:hidden;background:#0a0d22}.stage-img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.grid-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(to right,rgba(150,200,255,.22) 1px,transparent 1px),linear-gradient(to bottom,rgba(150,200,255,.22) 1px,transparent 1px),linear-gradient(to right,rgba(150,200,255,.5) 1.5px,transparent 1.5px),linear-gradient(to bottom,rgba(150,200,255,.5) 1.5px,transparent 1.5px);background-size:var(--cell, 64px) var(--cell, 64px),var(--cell, 64px) var(--cell, 64px),calc(var(--cell, 64px) * 5) calc(var(--cell, 64px) * 5),calc(var(--cell, 64px) * 5) calc(var(--cell, 64px) * 5)}.grid-center{position:absolute;left:50%;top:50%;width:calc(var(--cell, 64px) * 5);height:calc(var(--cell, 64px) * 5);transform:translate(-50%,-50%);border:1.5px solid rgba(0,220,140,.5);background:#00dc8c0d}.loupe{position:absolute;left:0;top:0;width:140px;height:140px;border-radius:50%;border:2px solid rgba(0,210,140,.85);background-repeat:no-repeat;box-shadow:0 0 0 1px #0006,0 12px 32px #00000080,inset 0 0 26px #0000004d;pointer-events:none;opacity:0;display:none;transition:opacity .15s ease}.loupe.on{opacity:1}.loupe:after{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;transform:translate(-50%,-50%);background:linear-gradient(to right,transparent 7px,rgba(0,220,140,.9) 7px,rgba(0,220,140,.9) 9px,transparent 9px),linear-gradient(to bottom,transparent 7px,rgba(0,220,140,.9) 7px,rgba(0,220,140,.9) 9px,transparent 9px)}@media(hover:hover)and (pointer:fine){.loupe{display:block}}.scan{position:absolute;left:0;right:0;height:24%;pointer-events:none;background:linear-gradient(to bottom,#00945600,#0094562e 45%,#78f0be8c 50%,#00945600);animation:sweep 2.1s cubic-bezier(.45,0,.55,1) infinite}@keyframes sweep{0%{transform:translateY(-110%)}to{transform:translateY(460%)}}.stage-foot{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#0b0f2b;border-top:1px solid rgba(255,255,255,.07);color:#9fb0d8}.zoom{display:flex;align-items:center;gap:2px}.zoom button{border:1px solid rgba(255,255,255,.14);background:#ffffff0a;color:#dce4f7;border-radius:5px;width:32px;height:30px;font-size:16px;line-height:1;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.zoom button:hover{background:#ffffff1f;border-color:#ffffff47}.zoom-reset{width:auto!important;padding:0 12px;font-size:13px!important}.stage-foot .value{font-size:13px;min-width:46px;text-align:center;font-variant-numeric:tabular-nums}.grid-pick{display:flex;align-items:center;gap:8px;font-size:13px;margin-left:auto}.stage-tip{font-size:12.5px;color:#7d8cb5;white-space:nowrap}@media(hover:none),(max-width:1160px){.stage-tip{display:none}}.grid-pick select{background-color:#ffffff0f;color:#dce4f7;border-color:#ffffff29;padding:6px 30px 6px 10px;font-size:13px;background-image:linear-gradient(45deg,transparent 50%,#dce4f7 50%),linear-gradient(135deg,#dce4f7 50%,transparent 50%)}.grid-pick select:hover{border-color:#ffffff57}.grid-pick select option{color:var(--navy);background:#fff}.result-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:clamp(22px,3vw,32px);min-height:260px;display:flex;flex-direction:column}@media(min-width:901px){.result-card{position:sticky;top:92px}}.count-block{text-align:left}.count{font-size:clamp(64px,9vw,116px);font-weight:700;line-height:.9;letter-spacing:-.04em;color:var(--navy);font-variant-numeric:tabular-nums}.count.approx:before{content:"≈";font-size:.55em;vertical-align:.18em;margin-right:.06em;color:var(--muted)}.count-unit{margin-top:10px;font-size:15px;color:var(--muted)}.count-comment{margin:14px 0 0;font-size:14.5px;color:var(--navy);background:var(--green-soft);border-radius:var(--r);padding:11px 13px}.block-title{font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--muted);margin:0 0 12px}.divider{height:1px;background:var(--line-soft);margin:24px 0;border:0}.types{display:flex;flex-direction:column;gap:14px}.type-row{display:flex;align-items:baseline;gap:10px;font-size:15px}.type-row .name{min-width:0;overflow-wrap:anywhere}.type-row .num{margin-left:auto;font-weight:600;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap}.type-row .num small{font-weight:400;color:var(--muted);font-size:13px;margin-left:6px}.bar{height:5px;border-radius:3px;background:var(--line-soft);margin-top:7px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--green);transform-origin:left center;animation:grow .65s cubic-bezier(.22,1,.36,1) both}.bar>i.alt{background:var(--navy)}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.obs{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.obs li{position:relative;padding-left:20px;font-size:15px;line-height:1.5;animation:rise .42s cubic-bezier(.22,1,.36,1) both}@keyframes rise{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.obs li:before{content:"";position:absolute;left:2px;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--green)}.counting{display:flex;flex-direction:column;gap:14px;justify-content:center;flex:1}.counting-title{font-size:19px;font-weight:600;color:var(--navy)}.counting-hint{font-size:14.5px;color:var(--muted)}.pulse{display:flex;gap:7px}.pulse i{width:9px;height:9px;border-radius:50%;background:var(--green);animation:blink 1.25s ease-in-out infinite}.pulse i:nth-child(2){animation-delay:.18s}.pulse i:nth-child(3){animation-delay:.36s}@keyframes blink{0%,to{opacity:.22;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.idle{display:flex;flex-direction:column;gap:12px;justify-content:center;flex:1}.idle-title{font-size:19px;font-weight:600;color:var(--navy)}.idle-hint{font-size:14.5px;color:var(--muted);margin-bottom:6px}.message-error{display:flex;flex-direction:column;gap:14px;justify-content:center;flex:1}.message-error p{margin:0;font-size:15.5px;color:var(--bad)}.result-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.drop-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;background:#f1f5fad6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:veil-in .14s ease-out}@keyframes veil-in{0%{opacity:0}to{opacity:1}}.drop-veil-frame{display:flex;flex-direction:column;align-items:center;gap:6px;padding:clamp(28px,5vw,52px) clamp(28px,8vw,88px);border:2px dashed var(--green);border-radius:14px;background:#fffffff0;box-shadow:0 26px 70px #10153833;text-align:center}.drop-veil-frame svg{margin-bottom:10px}.drop-veil-frame strong{font-size:clamp(20px,3vw,26px);font-weight:700;color:var(--navy)}.drop-veil-frame span{font-size:14.5px;color:var(--muted)}.foot{padding:20px clamp(16px,4vw,40px) 28px;display:flex;align-items:center;gap:14px;font-size:13px;color:var(--muted)}.foot img{height:22px;width:auto;opacity:.75}@media(max-width:900px){.work{grid-template-columns:1fr}.stage{height:clamp(240px,42vh,420px)}}@media(max-width:560px){.topbar{flex-wrap:wrap;gap:10px;padding:12px 16px}.brand-logo{height:34px}.brand-name{font-size:15.5px}.brand-sub{display:none}.topbar-right{width:100%;justify-content:space-between}.mode-pick>span{display:none}.mode-pick select{padding:7px 30px 7px 10px;font-size:13.5px}.stage-foot{flex-wrap:wrap}.grid-pick{margin-left:0;width:100%;justify-content:space-between}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
