@font-face{font-family:'Evangelie Ucs';src:url('fonts/evangelie-ucs.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0401,U+0410-044F,U+0451}
@font-face{font-family:'Ruslan Display';src:url('fonts/ruslan-display.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
/* The source sand is ungraded. The small optical layer ends ABOVE the first
   dune pixels in source coordinates; cover/crop updates its bounds on resize.
   No blur, duplicate video, or per-frame pixel processing. */
.stage .media{filter:none}
.polarizer{position:absolute;inset:0 0 auto;height:var(--grade-end,56%);pointer-events:none;background:linear-gradient(180deg,#082b551c,transparent);-webkit-backdrop-filter:contrast(1.12) saturate(1.07) brightness(.98);backdrop-filter:contrast(1.12) saturate(1.07) brightness(.98);-webkit-mask-image:linear-gradient(#000 0px,#000 var(--grade-solid,80%),transparent 100%);mask-image:linear-gradient(#000 0px,#000 var(--grade-solid,80%),transparent 100%)}
.stage[data-orientation=portrait] .polarizer{-webkit-backdrop-filter:contrast(1.09) saturate(1.025) brightness(.99);backdrop-filter:contrast(1.09) saturate(1.025) brightness(.99);opacity:.55}
/* Physical objects on the scene; typography stays live and accessible. */
.ice-map{position:absolute;inset:0;pointer-events:none;z-index:4}
.map-object{position:absolute;display:block;aspect-ratio:1;border:0;padding:0;background:none;color:#33251d;cursor:pointer;pointer-events:auto;perspective:700px}
.object-art{--object-lean:-4deg;position:absolute;inset:0;display:block;translate:0 -10.8%;transform:none;transform-origin:50% 86%;transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .35s;pointer-events:none}
.map-object:nth-child(even) .object-art{--object-lean:4deg}
.object-art img{display:block;width:100%;height:100%;object-fit:contain}
.map-object:focus-visible{outline-color:#123c50;outline-offset:5px}
@media(hover:hover) and (pointer:fine){.map-object:hover .object-art{transform:rotate(var(--object-lean));filter:brightness(1.035)}}
.map-object:focus-visible .object-art{transform:rotate(var(--object-lean));filter:brightness(1.035)}

.stage .dropdown{background:linear-gradient(135deg,#edfafff5,#cae9eff5);color:#183b49;border:1px solid #fff9;box-shadow:6px 8px 0 #8bb7c65c,0 18px 40px #102d4422;backdrop-filter:blur(16px)}
.stage .dropdown a{color:#183b49}
.stage .dropdown a+a{border-color:#193a4a24}
.stage .start{color:#173b4b;background:linear-gradient(145deg,#e5f8ffe8,#b4dae5ee);border:1px solid #f2feff;box-shadow:4px 5px 0 #5d91a588,0 12px 25px #193e4e26;text-shadow:none}
.stage .start span{color:#265467}
body .toast{background:linear-gradient(135deg,#f1fbff,#cfe9ef);border:1px solid #fff9;color:#173c4b;box-shadow:4px 5px 0 #78a6b37a,0 12px 25px #193e4e26;font-size:16px;padding:16px 20px;text-align:center;width:max-content;max-width:calc(100vw - 32px)}
.nav .nav-contact{text-decoration:underline;text-underline-offset:6px;text-decoration-color:#ffffff75}
.ice-dialog{--dialog-ink:#163b4a;position:fixed;inset:0;margin:auto;width:min(760px,calc(100vw - 40px));max-height:calc(100dvh - 48px);border:1px solid #f7ffff;border-radius:3px;background:linear-gradient(135deg,#f1fbfff7,#e0f1f5f7 60%,#c7e7eff7);color:var(--dialog-ink);padding:0;box-shadow:8px 10px 0 #88b5c4a6,0 35px 100px #172f4f40;overflow:auto;overscroll-behavior:contain;color-scheme:light;scrollbar-color:#a4c6d0 transparent}
.ice-dialog::backdrop{background:#24465d57;backdrop-filter:blur(9px)}
.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px 10px 32px;border-bottom:1px solid #20415124;font:400 14px/1.6 var(--f-sans);letter-spacing:.02em;position:sticky;top:0;background:#e9f6faee;backdrop-filter:blur(12px);z-index:2}
.dialog-close{border:0;background:none;font:400 30px/1.4 var(--f-sans);color:#163b4a;width:44px;height:44px;cursor:pointer;flex:0 0 44px}
.dialog-close:hover{background:#fff8}
.dialog-content{padding:32px clamp(24px,5vw,58px) 44px}
.eyebrow{font-size:14px;font-weight:400;letter-spacing:.04em;text-transform:uppercase;margin:0 0 20px;color:#426777}
.ice-dialog h2{font:400 clamp(30px,4.6vw,44px)/1.4 var(--f-sans);letter-spacing:0;margin:0 0 24px;text-wrap:balance;outline:none}
.panel-lead{font:400 18px/1.65 var(--f-sans);max-width:540px;margin:0 0 24px;color:#365866}
.ice-dialog h3{font-size:20px;font-weight:400;line-height:1.5;letter-spacing:0;margin:0 0 6px}
.ice-dialog p{ text-wrap:pretty }
.service-list article{display:flex;gap:26px;border-top:1px solid #254d5d25;padding:19px 0}
.service-list article>span{font:400 14px/2 var(--f-sans);color:#5e7d89}
.service-list p,.process-list p,.start-small p{font-size:16px;line-height:1.6;color:#426471;margin:0}
.process-list{counter-reset:step;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:24px 32px;margin:28px 0;padding:0}
.process-list li::before{counter-increment:step;content:'0' counter(step);font-size:14px;color:#527684;display:block;border-top:1px solid #254d5d25;padding-top:16px;margin-bottom:12px}
.start-small{border-left:2px solid #82b7c7;padding:4px 0 4px 18px;margin:24px 0}
.frost-action{display:flex;align-items:center;gap:12px;width:fit-content;min-height:56px;padding:2px 18px 2px 6px;color:#153e51;text-decoration:none;font:400 18px/1.5 var(--f-sans);border:1px solid #ffffffe6;background:linear-gradient(145deg,#f6fdffb3,#c5e3edb3);box-shadow:3px 4px 0 #93bac780;transition:transform .2s,box-shadow .2s;margin-top:22px}
.frost-action img{width:64px;height:43px;object-fit:contain;flex:none}
.frost-action>span{margin-left:auto}
.frost-action:hover{transform:translateY(-2px);box-shadow:3px 6px 0 #93bac780}
.ice-dialog :is(a,button,input,textarea,summary):focus-visible{outline:2px solid #235d76;outline-offset:4px}
#briefForm label,#briefForm legend{display:block;font-size:16px;font-weight:400;margin:20px 0 8px}
#briefForm label span{font-size:14px;font-weight:400;color:#577885;margin-left:7px}
#briefForm input,#briefForm textarea{display:block;width:100%;font:400 18px/1.65 var(--f-sans);color:#173b4b;background:#ffffff8c;border:1px solid #7798a572;border-bottom:2px solid #7eacbb;padding:13px 14px;border-radius:0;resize:vertical;min-width:0}
#briefForm textarea{max-height:200px;min-height:100px}
#briefForm :is(input,textarea)::placeholder{color:#607d89;opacity:1}
.brief-options{border:0;padding:0;margin:18px 0 0}
.option-row{display:flex;flex-wrap:wrap;gap:7px}
.option-row button{font:400 15px/1.5 var(--f-sans);min-height:44px;padding:8px 12px;border:1px solid #9cbfcb;background:#f6fdff7a;color:#214c5d;border-radius:30px;cursor:pointer}
.option-row button[aria-pressed=true]{background:#c5e6ee;border-color:#31738d;box-shadow:inset 0 0 0 1px #31738d}
.message-preview{margin-top:17px;font-size:15px;color:#466d7c}
.message-preview summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:400}
.message-preview p{white-space:pre-wrap;background:#fff6;padding:14px;border-left:2px solid #8cb6c4;overflow-wrap:anywhere;line-height:1.6;margin:8px 0}
.text-action{background:none;border:0;color:#174f68;text-decoration:underline;text-underline-offset:4px;padding:10px 0;min-height:44px;font:400 15px/1.6 var(--f-sans);cursor:pointer}
#copyStatus{display:block;line-height:1.5}
.form-note{font-size:14px;line-height:1.55;color:#496d7c;max-width:460px;margin:15px 0}
.direct-contact{border-top:1px solid #254d5d25;padding-top:18px;margin:24px 0 0;font-size:15px;color:#496d7c}
.direct-contact a{color:#174f68;text-underline-offset:4px;display:inline-block;padding:8px 0}
.no-script{position:fixed;z-index:20;bottom:20px;background:#e9f6fa;color:#163b4a;padding:20px;left:20px;right:20px}.no-script a{color:inherit}
@media(max-width:720px){.ice-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 28px);box-shadow:4px 5px 0 #88b5c4a6,0 20px 60px #172f4f40}.dialog-top{padding:7px 10px 7px 20px;font-size:14px}.dialog-content{padding:24px 22px 30px}.ice-dialog h2{font-size:32px}.panel-lead{font-size:16px}.process-list{grid-template-columns:1fr;gap:14px}.process-list li::before{float:left;margin:0 16px 35px 0;border:0;padding:3px 0}.frost-action{font-size:17px;gap:6px;width:100%;padding-right:12px}.frost-action img{width:52px}#briefForm label span{display:block;margin:3px 0 0}}
@media(max-height:540px) and (orientation:landscape){.map-object{max-width:105px}.map-object.playful{max-width:55px}.tagline{font-size:16px!important}.logo-sub{display:none}}
@media(prefers-reduced-motion:reduce){.object-art,.frost-action{transition:none!important}.map-object .object-art,.map-object:focus-visible .object-art,.map-object:active .object-art,.frost-action:hover{animation:none!important;transform:none!important}.ice-dialog::backdrop{backdrop-filter:none}}

/* 03.11: all ice visuals are 70% of their previous size; hit targets stay usable. */
.object-art,#telegramIce .ice-object,.frost-action img{scale:.7}
#telegramIce::before{scale:.7}
.object-art img,#telegramIce img,.frost-action img{filter:none;opacity:1}
/* Space Grotesk has real Cyrillic outlines; the vector wordmark and drone type stay original. */
.stage .nav{gap:clamp(14px,2cqw,28px)}
.stage .nav a,.stage .nav .menu-btn,.stage .dropdown a{font-family:var(--f-sans);font-weight:500;font-size:15px;line-height:1.4;letter-spacing:-.015em}
.stage .logo-sub{font-family:var(--f-sans);font-weight:400;font-size:clamp(11px,.95cqw,14px);line-height:1.4;letter-spacing:-.015em}
.stage .tagline{font-family:var(--f-sans);font-weight:500;font-size:clamp(17px,calc(var(--sw) * var(--ts)),24px);line-height:1.3;letter-spacing:-.025em}
.ice-dialog,body .toast{font-family:var(--f-sans)}
.ice-dialog h2{font-weight:500;line-height:1.12;letter-spacing:-.045em}
.ice-dialog h3{font-weight:500;line-height:1.3;letter-spacing:-.025em}
.dialog-top{font-size:11px;line-height:1.5;letter-spacing:.045em}
.eyebrow{font-size:11px;letter-spacing:.08em;font-weight:500}
.panel-lead{line-height:1.5;letter-spacing:-.015em}
.frost-action{font-size:16px;font-weight:500}
#briefForm input,#briefForm textarea{font-size:16px;line-height:1.5}
/* Text equivalents stay in the DOM; the steam itself is drawn as particles. */
.map-object .object-label,#telegramIce .ice-label{position:absolute;inset:auto;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;transform:none;pointer-events:none;text-shadow:none}
.steam-label-canvas{position:absolute;left:0;top:0;display:block;pointer-events:none;z-index:8;opacity:.8}

/* A source-coordinate contour clips the figure at the real dune crest, including
   when object-fit cropping moves the visible right edge. Never a horizontal fade. */
.distant-witness{position:absolute;z-index:0;pointer-events:none;opacity:.94;filter:sepia(.12) saturate(.72) contrast(.9) brightness(1.04)}
.distant-witness img{display:block;width:100%;height:100%;object-fit:contain;clip-path:polygon(42% 0,62% 0,65% 6%,64% 13%,81% 16%,92% 21%,98% 28%,96% 36%,86% 42%,74% 45%,74% 78%,72% 89%,67% 97%,53% 100%,49% 96%,52% 92%,39% 94%,20% 94%,19% 90%,25% 87%,23% 78%,20% 56%,19% 47%,13% 44%,12% 35%,15% 25%,18% 21%,27% 17%,39% 13%,36% 8%)}
@container(max-width:360px){.stage .tagline{font-size:15px;line-height:1.3;left:50%!important;width:calc(100cqw - 36px)!important;transform:translateX(-50%)}}

/* Pivot compensation preserves the resting position of the 70% artwork. */
/* A small sideways lean pivots near the contact edge, never lifting the object. */
#telegramIce::before,#telegramIce .ice-object::after{display:none}
#telegramIce .ice-object{translate:0 -3%;transform:none;transform-origin:50% 75%;transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .35s}
@media(hover:hover) and (pointer:fine){#telegramIce:hover .ice-object{transform:rotate(3deg);filter:brightness(1.035)}}
#telegramIce:focus-visible .ice-object{transform:rotate(3deg);filter:brightness(1.035)}
@media(prefers-reduced-motion:reduce){#telegramIce .ice-object,#telegramIce:is(:hover,:focus-visible,:active) .ice-object{animation:none!important;transition:none!important;transform:none!important}}

.play-mark{display:inline-block;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid currentColor}
.icon-outbound{position:relative;display:inline-block;flex:none;width:.65em;height:.65em;vertical-align:.08em}
.nav .icon-outbound{margin-left:.35em}
.icon-outbound::before{content:'';position:absolute;right:0;top:0;width:80%;height:80%;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor}
.icon-outbound::after{content:'';position:absolute;left:4%;top:45%;width:116%;height:1.5px;background:currentColor;transform:rotate(-45deg);transform-origin:center}
