@font-face{font-family:Manrope;src:url('assets/fonts/manrope-regular.ttf') format('truetype');font-weight:400 600;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-extrabold.ttf') format('truetype');font-weight:700 900;font-display:swap}
@font-face{font-family:Unbounded;src:url('assets/fonts/unbounded-bold.ttf') format('truetype');font-weight:500 700;font-display:swap}
@font-face{font-family:Unbounded;src:url('assets/fonts/unbounded-black.ttf') format('truetype');font-weight:800 900;font-display:swap}

/* Палитра эмблемы: глубокий фиолет, фуксия и светлая сирень. Холодный сиреневый держит крупные плоскости, фуксия — сигнальные акценты. */
:root{--paper:#f4f2ff;--ink:#170845;--black:#12063a;--violet:#3a0ca3;--muted:#564d80;--line:#d3cbf3;--accent:#f72585;--accent-ink:#b5179e;--secondary:#c8b5ff;--indigo:#3f37c9;--display:'Unbounded',sans-serif;--body:'Manrope',sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
button,input{font:inherit}
button{cursor:pointer}
::selection{background:var(--accent);color:var(--ink)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:200;left:16px;top:-60px;padding:12px 18px;background:var(--secondary);color:var(--ink)}
.skip-link:focus{top:16px}
:focus-visible{outline:3px solid var(--accent);outline-offset:4px}

.site-header{position:fixed;z-index:100;inset:0 0 auto;min-height:78px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:12px clamp(20px,3.5vw,64px);background:var(--paper);border-bottom:1px solid var(--ink);transition:transform .4s,opacity .4s}
.loading-intro .landing-page .site-header{opacity:0;pointer-events:none;transform:translateY(-100%)}
.loading-intro .landing-page .site-header.is-visible{opacity:1;pointer-events:auto;transform:none}
.brand-lockup{display:flex;gap:10px;align-items:center;width:max-content;text-decoration:none;font:700 11px/1.1 var(--display);letter-spacing:-.05em}
.brand-lockup img{width:44px;height:44px;object-fit:contain}
.main-nav{display:flex;gap:clamp(16px,2vw,36px);align-items:center}
.main-nav a{text-decoration:none;font-weight:800;font-size:12px;transition:color .25s}
.main-nav a:hover,.main-nav .is-current{color:var(--accent-ink)}
.main-nav .telegram-link{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;margin:-12px -4px;border-radius:50%;transition:color .25s,background-color .25s,transform .25s}
.main-nav .telegram-link i{font-size:25px;line-height:1}
.main-nav .telegram-link:hover{color:var(--paper);background:var(--accent-ink);transform:rotate(-8deg)}
.header-action{justify-self:end;text-decoration:none;border:1px solid var(--ink);padding:12px 19px;font:700 11px var(--display);transition:background .25s,color .25s}
.header-action:hover{background:var(--ink);color:var(--paper)}
.nav-toggle{display:none;align-items:center;justify-content:center;gap:7px;background:none;border:1px solid var(--ink);min-height:42px;padding:9px 12px;color:var(--ink);font:700 10px var(--display)}
.nav-toggle i{font-size:19px}

.intro{display:none}
.loading-intro{overflow:hidden}
.loading-intro .intro{display:block;position:fixed;z-index:1000;inset:0;height:100vh;height:100dvh;min-height:0;overflow:hidden;background:var(--black);clip-path:inset(0 0 0 0);animation:intro-failsafe 0s 5s forwards}
.intro-stage{height:100%;position:relative;overflow:hidden;background:var(--black);color:var(--paper);isolation:isolate}
.intro-stage::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,#560bad 0%,transparent 55%);opacity:.75}
.intro-index,.intro-bottom{position:absolute;z-index:4;left:clamp(20px,3.5vw,64px);right:clamp(20px,3.5vw,64px);display:flex;justify-content:space-between;gap:20px;font:700 10px var(--display);letter-spacing:.06em}
.intro-index{top:35px}
.intro-index span{color:#b3abd9}
.intro-line{position:absolute;z-index:3;left:3.5vw;right:3.5vw;height:1px;background:#ffffff34}
.intro-line--top{top:72px;overflow:hidden}
.intro-bottom{bottom:30px;align-items:end}
.intro-controls{display:flex;align-items:center;gap:28px}
.intro-status{display:flex;align-items:center;gap:9px;color:var(--paper)}
.intro-status i{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 17px var(--accent);animation:loader-breathe .8s ease-in-out infinite alternate}
.intro-skip{border:0;background:none;color:var(--secondary);padding:8px 0;font:700 10px var(--display);letter-spacing:.04em}
.intro-skip:hover{text-decoration:underline;text-underline-offset:5px}
.intro-core{position:absolute;z-index:5;left:50%;top:50%;width:max-content;max-width:90vw;display:flex;flex-direction:column;align-items:center;text-align:center;transform:translate(-50%,-50%);will-change:transform,opacity}
.intro-logo{width:clamp(135px,19vw,280px);aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 0 54px #f7258566)}
.intro-name{margin:2vh 0 10px;font:900 clamp(33px,5.8vw,100px)/.99 var(--display);letter-spacing:-.095em;transform-origin:center;will-change:transform,opacity}
.intro-core p{font:700 clamp(8px,.7vw,11px) var(--display);letter-spacing:.28em;color:var(--accent)}
.loading-intro .intro-logo{animation:intro-logo-arrive .75s cubic-bezier(.2,.85,.2,1) both}
.loading-intro .intro-name{animation:intro-name-arrive .85s .12s cubic-bezier(.2,.85,.2,1) both}
.loading-intro .intro-core p{animation:intro-tagline-arrive .7s .4s both}
.loading-intro .intro-line--top::after{content:'';display:block;width:100%;height:2px;background:var(--accent);box-shadow:0 0 18px var(--accent);transform-origin:left center;animation:intro-loading-line 1.2s cubic-bezier(.16,1,.3,1) both}
.intro.is-leaving{pointer-events:none;clip-path:inset(0 0 100% 0);transition:clip-path .7s cubic-bezier(.72,0,.18,1)}
@keyframes intro-logo-arrive{from{opacity:0;transform:translateY(22px) scale(.88)}to{opacity:1;transform:none}}
@keyframes intro-name-arrive{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes intro-tagline-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes intro-loading-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes intro-failsafe{to{visibility:hidden;pointer-events:none}}
.landing-page main{display:flow-root}

.chapter{position:relative;padding:clamp(70px,9vw,150px) clamp(20px,3.5vw,64px);overflow:hidden}
.paper{background:var(--paper);color:var(--ink)}
.dark{background:var(--violet);color:var(--paper)}
.ink{background:var(--black);color:var(--paper)}
.eyebrow{font:700 10px/1.6 var(--display);letter-spacing:.1em}
.display{font:800 clamp(42px,7.4vw,138px)/1.03 var(--display);letter-spacing:-.085em;margin:0}
.display span{display:block}
.display em{font-style:normal;color:var(--accent)}
.lead{font-size:clamp(19px,2.1vw,31px);font-weight:700;line-height:1.45;letter-spacing:-.035em}
.reveal{opacity:1}
.js-motion .reveal{opacity:0;transform:translateY(42px);filter:blur(8px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1),filter .8s}
.js-motion .reveal.is-in{opacity:1;transform:none;filter:none}
.media-wipe{position:relative;overflow:hidden}
.js-motion .media-wipe::after{content:'';position:absolute;z-index:2;inset:0;background:var(--accent);transform:translateX(0);transition:transform 1s cubic-bezier(.72,0,.2,1)}
.js-motion .media-wipe.is-in::after{transform:translateX(102%)}
.js-motion .media-wipe img{transform:scale(1.06);transition:transform 1.5s cubic-bezier(.2,.8,.2,1)}
.js-motion .media-wipe.is-in img{transform:scale(1)}

.history{padding-top:100px}
.history-heading{margin-top:clamp(8px,2vw,26px)}
.history-heading .eyebrow{margin-bottom:20px;color:var(--accent)}
.history-heading .display{max-width:1200px}
.history-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,9vw,180px);margin:clamp(60px,8vw,150px) 0 90px;align-items:start}
.history-date{border-top:1px solid var(--ink);padding-top:16px;display:flex;flex-direction:column;gap:15px}
.history-date>strong{font:700 clamp(35px,5.2vw,95px)/1 var(--display);letter-spacing:-.1em;white-space:nowrap}
.history-date>strong span{color:var(--accent)}
.history-date>span{font:700 10px var(--display)}
.history-links{display:grid;gap:12px;margin-top:clamp(48px,6vw,100px);max-width:620px}
.history-links__label{font:700 10px var(--display);letter-spacing:.06em;color:var(--muted)}
.history-link{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) 28px;align-items:center;gap:clamp(12px,1.5vw,24px);min-height:108px;padding:20px clamp(18px,2vw,30px);background:var(--ink);color:var(--paper);text-decoration:none;overflow:hidden;transition:background .35s cubic-bezier(.2,.8,.2,1),transform .35s cubic-bezier(.2,.8,.2,1)}
.history-link::after{content:'';position:absolute;inset:auto 0 0;height:4px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.history-link:hover,.history-link:focus-visible{background:#2d116e;transform:translateY(-3px)}
.history-link:hover::after,.history-link:focus-visible::after{transform:scaleX(1)}
.history-link__icon{display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--secondary);color:var(--secondary)}
.history-link__icon i{font-size:27px}
.history-link__copy{display:grid;gap:7px;min-width:0}
.history-link__copy strong{font:700 clamp(15px,1.35vw,22px)/1.2 var(--display);letter-spacing:-.05em}
.history-link__copy small{font:500 12px/1.4 var(--body);color:#d5c9f3}
.history-link__arrow{justify-self:end;align-self:start;color:var(--accent);font:700 25px/1 var(--body);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.history-link:hover .history-link__arrow{transform:translate(4px,-4px)}
.history-copy{max-width:650px}
.history-copy p:not(.lead){max-width:490px;font-size:15px;line-height:1.75;color:var(--muted)}
.history-copy a{text-underline-offset:4px}
.history-image{margin:0;height:clamp(350px,50vw,760px);background:#d3cbf3}
.history-image img{width:100%;height:100%;object-fit:cover;object-position:center 55%}
.history-image figcaption,.gallery-shot figcaption,.meetups-grid figcaption{position:absolute;z-index:3;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:15px;padding:20px 25px;color:white;background:linear-gradient(transparent,#0009);font:700 10px var(--display)}
.join-panel{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,310px);align-items:center;gap:clamp(30px,6vw,100px);min-height:490px;margin-top:clamp(36px,5vw,80px);padding:clamp(30px,5vw,80px);overflow:hidden;background:var(--black);color:var(--paper)}
.join-panel:before{content:'СЭ';position:absolute;z-index:-1;right:24%;bottom:-.3em;color:#ffffff0a;font:900 clamp(230px,33vw,580px)/1 var(--display);letter-spacing:-.15em;pointer-events:none}
.join-panel__copy{max-width:800px}.join-panel .eyebrow{color:var(--secondary)}
.join-panel h3{max-width:800px;margin:20px 0 25px;font:800 clamp(30px,4.2vw,72px)/1.13 var(--display);letter-spacing:-.075em}
.join-panel h3 em{color:var(--accent);font-style:normal}.join-panel p{max-width:510px;margin:0 0 30px;color:#d4cbed;font-size:clamp(14px,1.25vw,18px);line-height:1.6}
.join-panel__qr{display:block;width:100%;padding:13px;background:#fff;color:var(--ink);text-decoration:none;box-shadow:16px 16px 0 #6e3bba;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.join-panel__qr:hover{transform:translate(-5px,-5px);box-shadow:21px 21px 0 #6e3bba}.join-panel__qr:active{transform:translate(3px,3px);box-shadow:10px 10px 0 #6e3bba}
.join-panel__qr img{display:block;width:100%;aspect-ratio:1;object-fit:contain}
.join-panel__qr span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 4px 2px;font:700 9px/1.4 var(--display)}.join-panel__qr i{font-size:24px;font-style:normal}
.join-panel .join-button{display:inline-flex;justify-content:space-between;gap:24px;min-height:55px;padding:0 20px;background:var(--accent);color:#fff;transition:background .2s,transform .2s}
.join-panel .join-button:hover{background:#c41476;transform:translateY(-2px)}

/* Манифест: шлем связывает идею свободной поездки с ответственностью райдера. */
.principles{isolation:isolate;background:var(--black);color:var(--paper);padding-top:clamp(95px,10vw,180px);padding-bottom:clamp(90px,9vw,160px)}
.principles::before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(138deg,transparent 40%,#39106f5e 80%,transparent 100%);pointer-events:none}
.principles-heading{position:relative;z-index:2}
.principles-heading .eyebrow{margin:0 0 25px;color:var(--secondary)}
.principles-heading .display{max-width:1440px;font-size:clamp(44px,6.7vw,112px);line-height:1.07}
.principles-heading .display em{color:var(--secondary)}
.principles-layout{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-items:center;gap:clamp(28px,5vw,100px);margin:clamp(45px,6vw,95px) 0 clamp(50px,7vw,110px)}
.principles-copy{position:relative;z-index:2}
.principle{display:grid;grid-template-columns:minmax(110px,.34fr) 1fr;gap:clamp(18px,2.5vw,40px);padding:clamp(27px,3vw,44px) 0;border-top:1px solid #c8b5ff80}
.principle:last-child{border-bottom:1px solid #c8b5ff80}
.principle h3{margin:0;color:var(--secondary);font:700 clamp(19px,2vw,28px)/1.25 var(--display);letter-spacing:-.065em}
.principle p{max-width:510px;margin:0;color:#e4dcfa;font-size:clamp(15px,1.18vw,19px);font-weight:600;line-height:1.65}
.principles-visual{position:relative;justify-self:center;width:min(100%,650px);aspect-ratio:1;display:grid;place-items:center}
.principles-visual::before{content:'';position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,#6031b5ad 0%,#3a0ca38c 42%,transparent 72%);filter:blur(10px)}
.principles-visual::after{content:'';position:absolute;inset:6%;border:1px solid #c8b5ff5c;border-radius:50%;transform:rotate(-20deg) scaleX(.88);pointer-events:none}
.principles-orbit{position:absolute;inset:0;border:1px dashed #c8b5ff5c;border-radius:50%;transform:rotate(24deg) scaleX(.9);pointer-events:none}
.principles-visual img{position:relative;z-index:1;width:108%;max-width:none;height:auto;filter:drop-shadow(0 30px 45px #08021fa8);animation:helmet-hover 6s ease-in-out infinite alternate}
@keyframes helmet-hover{from{transform:translateY(11px) rotate(-2deg)}to{transform:translateY(-11px) rotate(1deg)}}
.principles-rules{display:grid;grid-template-columns:minmax(170px,.3fr) minmax(0,1fr);align-items:start;gap:clamp(24px,5vw,90px);padding:clamp(28px,3.5vw,56px);border-left:8px solid var(--accent);background:var(--secondary);color:var(--ink)}
.principles-rules__heading{display:flex;align-items:center;gap:14px}
.principles-rules__heading i{flex:none;color:var(--accent-ink);font-size:clamp(28px,3vw,42px)}
.principles-rules h3{margin:0;font:700 clamp(23px,2.7vw,40px)/1.2 var(--display);letter-spacing:-.065em}
.principles-rules p{max-width:950px;margin:0;font-size:clamp(18px,2vw,29px);font-weight:800;line-height:1.45;letter-spacing:-.03em}
.scene-transition{--scene-bg:var(--paper);--scene-ink:var(--ink);--scene-slab:var(--secondary);position:relative;isolation:isolate;display:flex;align-items:center;min-height:clamp(190px,21vw,340px);padding:34px clamp(20px,3.5vw,64px);overflow:hidden;background:var(--scene-bg);color:var(--scene-ink)}
.scene-transition--charge{--scene-bg:var(--violet);--scene-ink:var(--paper);--scene-slab:#4e19b8}
.scene-transition--gallery{--scene-bg:var(--paper);--scene-ink:var(--ink);--scene-slab:var(--secondary)}
.scene-transition--meet{--scene-bg:var(--black);--scene-ink:var(--paper);--scene-slab:#34117c}
.scene-transition__slab{position:absolute;z-index:-1;inset:0 auto 0 28%;width:47%;background:var(--scene-slab);clip-path:polygon(13% 0,100% 0,87% 100%,0 100%)}
.scene-transition__slab:before,.scene-transition__slab:after{content:'';position:absolute;top:0;bottom:0;width:20%;background:var(--accent);opacity:.78;transform:skewX(-13deg)}
.scene-transition__slab:before{left:-13%}.scene-transition__slab:after{right:-18%;opacity:.5}
.scene-transition__hint{position:absolute;top:26px;left:clamp(20px,3.5vw,64px);font:700 10px var(--display);letter-spacing:.04em}
.scene-transition strong{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;font:900 clamp(54px,11.5vw,215px)/.85 var(--display);letter-spacing:-.1em;white-space:nowrap}
.scene-transition strong span{flex:none;margin-right:4vw;color:var(--accent);font:700 clamp(40px,6vw,100px)/1 var(--display);letter-spacing:0}
.js-motion .scene-transition__slab{transform:translateY(115%);transition:transform 1.05s cubic-bezier(.17,.75,.2,1)}
.js-motion .scene-transition.is-in .scene-transition__slab{transform:none}
.js-motion .scene-transition strong{opacity:0;transform:translateY(45px);transition:opacity .55s .25s,transform .9s cubic-bezier(.17,.75,.2,1) .25s}
.js-motion .scene-transition.is-in strong{opacity:1;transform:none}

.city{padding-bottom:0;background:var(--secondary);color:var(--ink)}
.city-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(310px,.55fr);gap:clamp(35px,6vw,100px);align-items:end;margin:clamp(25px,4vw,65px) 0 clamp(65px,7vw,110px)}
.city-kicker{display:flex;align-items:center;gap:12px;margin:0 0 35px;font:700 clamp(9px,.8vw,12px) var(--display);letter-spacing:.11em}
.city-kicker span{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px #f725854d}
.city-head .display{font-size:clamp(55px,7.8vw,150px);line-height:1.03}
.city-head .display em{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent-ink);text-decoration-thickness:.075em;text-underline-offset:.12em}
.city-intro{max-width:520px;padding:0 0 8px clamp(20px,2vw,36px);border-left:1px solid var(--ink)}
.city-intro p{max-width:510px;margin:0 0 24px;font-size:clamp(15px,1.15vw,19px);line-height:1.6;font-weight:600}
.city-intro .city-lead{font:800 clamp(22px,2vw,34px)/1.3 var(--display);letter-spacing:-.055em}
.city-primary{display:flex;align-items:center;justify-content:space-between;gap:22px;width:100%;margin-top:35px;padding:20px 23px;background:var(--ink);color:var(--paper);text-decoration:none;font:700 clamp(9px,.85vw,12px) var(--display);transition:background .25s,transform .25s}
.city-primary:hover{background:var(--violet);transform:translateY(-4px)}
.city-primary span:last-child{font:400 28px/1 var(--body)}
.city-purpose{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;margin-bottom:25px;border-top:1px solid var(--ink);font:700 clamp(9px,.77vw,12px) var(--display);letter-spacing:.02em}
.city-purpose b{color:var(--violet)}
.city-map-wrap{position:relative;height:clamp(540px,56vw,850px);margin:0 calc(-1 * clamp(20px,3.5vw,64px));background:#1c0a52;overflow:hidden}
.city-map-fallback{position:absolute;inset:0;background:#12063a url('assets/map-art.svg') center/cover}
#landing-map{position:absolute;inset:0;opacity:0;transition:opacity .6s}
#landing-map.is-ready{opacity:1}
.city-map-wrap::before{content:'';position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,#12063a8c,transparent 65%),linear-gradient(0deg,#12063ac2,transparent 24%);pointer-events:none}
.city-map-top,.city-map-bottom{position:absolute;z-index:4;left:clamp(20px,3.5vw,64px);right:clamp(20px,3.5vw,64px);display:flex;justify-content:space-between;gap:20px;color:white;font:700 clamp(9px,.75vw,11px) var(--display)}
.city-map-top{top:30px;align-items:center}
.city-map-top span:last-child{padding:9px 11px;background:var(--secondary);color:var(--ink)}
.city-map-bottom{bottom:0;padding:20px 0;border-top:1px solid #fff9}
.city-map-route{position:absolute;z-index:2;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.city-map-route path{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;filter:drop-shadow(0 0 7px #f72585)}
.city-map-markers{position:absolute;z-index:2;inset:0;pointer-events:none}
.city-map-pin{position:absolute;left:var(--pin-x);top:var(--pin-y);display:grid;place-items:center;width:49px;height:49px;border:2px solid var(--ink);border-radius:50%;background:var(--secondary);color:var(--ink);font:800 25px var(--body);box-shadow:0 0 0 8px #c8b5ff3d,0 10px 22px #0008;transform:translate(-50%,-50%)}
.city-map-pin:first-child{background:var(--accent);color:var(--ink);box-shadow:0 0 0 13px #f7258540,0 10px 22px #0008}
.city-map-card{position:absolute;z-index:4;left:clamp(20px,3.5vw,64px);bottom:85px;display:flex;flex-direction:column;align-items:flex-start;width:min(43vw,580px);padding:clamp(26px,3vw,52px);background:var(--paper);color:var(--ink);box-shadow:18px 18px 0 #12063a59}
@media (min-width:641px) and (max-width:1366px){
  .city-map-card::after{content:'';position:absolute;top:0;bottom:0;left:100%;width:100vw;background:var(--paper);pointer-events:none}
}
.city-map-card>span{font:700 9px var(--display);letter-spacing:.04em;color:var(--accent-ink)}
.city-map-card strong{margin:35px 0 45px;font:800 clamp(28px,3.2vw,54px)/1.14 var(--display);letter-spacing:-.065em}
.city-map-card a{display:flex;justify-content:space-between;align-items:center;gap:35px;width:100%;padding-top:15px;border-top:1px solid var(--ink);text-decoration:none;font:700 10px var(--display);transition:color .25s}
.city-map-card a:hover{color:var(--accent-ink)}
.city-map-card a span{transition:transform .25s}
.city-map-card a:hover span{transform:translate(4px,-4px)}
@media(prefers-reduced-motion:no-preference){
.js-motion .city-map-route path{stroke-dashoffset:1;transition:stroke-dashoffset 2.4s cubic-bezier(.38,.05,.22,1) .5s}
.js-motion .city-map-wrap.is-in .city-map-route path{stroke-dashoffset:0}
.js-motion .city-map-pin{opacity:0;transform:translate(-50%,-50%) scale(.25);transition:opacity .4s,transform .6s cubic-bezier(.16,1.4,.35,1)}
.js-motion .city-map-wrap.is-in .city-map-pin{opacity:1;transform:translate(-50%,-50%) scale(1)}
.js-motion .city-map-pin:nth-child(3){transition-delay:.45s}.js-motion .city-map-pin:nth-child(2){transition-delay:.9s}.js-motion .city-map-pin:nth-child(1){transition-delay:1.35s}.js-motion .city-map-pin:nth-child(4){transition-delay:1.8s}
.js-motion .city-map-card{opacity:0;transform:translateY(65px);transition:opacity .7s .6s,transform 1s cubic-bezier(.2,.8,.2,1) .6s}
.js-motion .city-map-wrap.is-in .city-map-card{opacity:1;transform:none}
}

.adapters-head{display:grid;grid-template-columns:1.4fr .65fr;gap:7vw;margin:clamp(25px,4vw,65px) 0 100px;align-items:end}
.adapters-head .lead{max-width:560px}
.adapter-feature{display:grid;grid-template-columns:1fr 1fr;min-height:680px;border-top:1px solid var(--ink)}
.adapter-photo{position:relative;min-height:680px;background:#1c0a52}
.adapter-photo img{width:100%;height:100%;object-fit:contain}
.adapter-photo>span{position:absolute;bottom:20px;left:20px;color:var(--paper);background:var(--ink);padding:10px;font:700 10px var(--display)}
.adapter-info{padding:clamp(35px,5vw,90px);display:flex;flex-direction:column;align-items:start}
.adapter-info h3{font:800 clamp(35px,4.5vw,78px)/1.05 var(--display);letter-spacing:-.075em;margin:30px 0}
.adapter-info>p{max-width:560px;line-height:1.7;font-size:16px}
.spec-row{display:flex;justify-content:space-between;gap:15px;width:100%;border-top:1px solid var(--line);padding:17px 0;font:700 12px var(--display)}
.spec-row strong{font-size:11px}
.adapter-info details{width:100%;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.adapter-info summary{display:flex;justify-content:space-between;gap:15px;padding:18px 0;cursor:pointer;font-size:12px;font-weight:800;list-style:none}
.adapter-info summary::-webkit-details-marker{display:none}
.adapter-info summary span{font-size:20px;line-height:10px}
.adapter-info summary span{transition:transform .35s cubic-bezier(.16,1,.3,1)}
.adapter-info details[open] summary span{transform:rotate(45deg)}
.spec-detail{font-size:12px;line-height:1.6}
@media (prefers-reduced-motion:no-preference){.adapter-info details[open] .spec-detail{animation:spec-reveal .46s cubic-bezier(.16,1,.3,1) both}}
@keyframes spec-reveal{from{opacity:0;transform:translateY(-10px);clip-path:inset(0 0 12% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@media (prefers-reduced-motion:reduce){.adapter-info summary span{transition:none}}
.spec-detail img{max-width:300px;margin:15px 0}
.safety-note{border-left:3px solid var(--accent);padding:14px 0 14px 18px;font-size:12px!important}
.safety-note b{color:var(--accent-ink)}
.adapter-feature--ac{border-bottom:1px solid var(--ink)}
.adapter-feature--ac .adapter-info{justify-content:center}
.adapter-foot{margin-top:auto;padding-top:50px;font:700 9px var(--display);color:var(--muted)}
.type2-slot{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:600px;padding:30px;background:var(--secondary);border-left:1px solid var(--ink)}
.type2-slot>span,.type2-slot strong{position:relative;z-index:2;font:700 11px var(--display)}
.type2-slot strong{font-size:clamp(22px,3vw,46px);line-height:1.2;letter-spacing:-.06em;max-width:600px}
.type2-slot i{font-size:70px;font-style:normal;color:var(--violet);align-self:end}
.type2-slot::before{content:'TYPE 2';position:absolute;right:3%;top:10%;font:800 clamp(75px,10vw,180px)/1 var(--display);letter-spacing:-.12em;color:#17084514}
.charge-memory{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1fr);margin-top:clamp(70px,9vw,140px);background:var(--ink);color:var(--paper)}
.charge-memory__copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(34px,4.5vw,78px)}
.charge-memory__eyebrow{font:700 10px var(--display);letter-spacing:.05em;color:var(--secondary)}
.charge-memory h3{max-width:9em;margin:clamp(42px,5vw,78px) 0 24px;font:800 clamp(38px,4.3vw,72px)/1.02 var(--display);letter-spacing:-.075em}
.charge-memory h3 em{font-style:normal;color:var(--accent)}
.charge-memory p{max-width:32ch;margin:0;font:500 clamp(15px,1.3vw,18px)/1.65 var(--body);color:#ddd5f5}
.charge-memory__copy a{display:inline-flex;align-items:center;gap:30px;margin-top:clamp(48px,5vw,82px);padding:12px 0;border-bottom:1px solid var(--accent);color:var(--paper);font:700 11px var(--display);text-decoration:none;transition:gap .35s cubic-bezier(.16,1,.3,1),color .2s}
.charge-memory__copy a:hover,.charge-memory__copy a:focus-visible{gap:43px;color:var(--secondary)}
.charge-memory__photo{display:flex;flex-direction:column;min-width:0;margin:0;background:#1d0c52}
.charge-memory__photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.charge-memory__photo figcaption{display:flex;justify-content:space-between;gap:15px;padding:16px 20px;color:var(--paper);font:700 9px var(--display);letter-spacing:.04em}

.gallery-head{display:grid;grid-template-columns:1.7fr .5fr;gap:6vw;align-items:end;margin:clamp(25px,4vw,65px) 0 90px}
.gallery-head p{max-width:450px;line-height:1.7}
.gallery-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}
.gallery-shot{position:relative;margin:0;background:#22106a}
.gallery-shot img{width:100%;height:100%;object-fit:cover}
.gallery-shot--wide{grid-column:1 / -1;height:clamp(350px,48vw,820px)}
.gallery-shot--vertical{height:clamp(450px,63vw,950px)}
.gallery-shot--detail{height:clamp(450px,63vw,950px)}
.gallery-shot--detail img{object-position:center}
.meetups-head{display:grid;grid-template-columns:1.3fr .6fr;gap:7vw;margin:clamp(25px,4vw,65px) 0 90px;align-items:end}
.meetups-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}
.meetups-grid figure{position:relative;margin:0;height:clamp(350px,46vw,750px);background:#d3cbf3}
.meetups-grid img{width:100%;height:100%;object-fit:cover}
.meetups-grid figure:first-child img{object-position:center}
.end{min-height:90vh;background:var(--secondary);display:flex;flex-direction:column;justify-content:center}
.end .eyebrow{z-index:2;margin:0 0 30px}
.end .display{position:relative;z-index:2;font-size:clamp(58px,10vw,190px)}
.end .display em{color:var(--ink)}
.end-copy{position:relative;z-index:2;max-width:500px;font-size:18px;line-height:1.6;margin:40px 0 30px}
.end-link{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;width:min(430px,100%);padding:24px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font:700 12px var(--display);text-decoration:none;transition:padding .3s}
.end-link:hover{padding-inline:15px}
.end-link span{font-size:28px}
.end-orbit{position:absolute;width:45vw;aspect-ratio:1;border:1px solid var(--ink);border-radius:50%;right:-10vw;top:10%;opacity:.25}
.end-orbit::after{content:'';position:absolute;inset:15%;border:1px solid var(--ink);border-radius:50%}
.site-footer{display:flex;justify-content:space-between;gap:20px;padding:28px 3.5vw;background:var(--black);color:var(--paper);font:700 9px var(--display)}
.site-footer a{text-decoration:none}

/* The map workbench shares the editorial system rather than inheriting the former dashboard. */
.map-page{background:var(--paper);padding-top:78px}
.map-page .site-header{opacity:1;transform:none}
.map-hero{padding:clamp(70px,8vw,135px) 3.5vw 70px}
.map-hero h1{font:800 clamp(48px,8vw,145px)/1.04 var(--display);letter-spacing:-.085em;margin:70px 0 30px}
.map-hero h1 em{font-style:normal;color:var(--accent)}
.map-hero-copy{display:flex;justify-content:space-between;gap:60px;align-items:end}
.map-hero-copy p{max-width:560px;font-size:19px;line-height:1.6;margin:0}
.map-workbench{margin:0 3.5vw 110px;border:1px solid var(--ink);display:grid;grid-template-columns:minmax(0,1.6fr) minmax(340px,.7fr);grid-template-rows:auto minmax(650px,70vh);background:#fff}
.map-topbar{grid-column:1/-1;display:flex;gap:18px;align-items:center;padding:16px;border-bottom:1px solid var(--ink)}
.map-search{flex:1;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--ink);padding:7px 0}
.map-search svg{width:17px;fill:none;stroke:currentColor;stroke-width:2}
.map-search input{width:100%;border:0;outline:0;background:none;font-size:13px}
.map-filters{display:flex;gap:7px}
.filter-chip,.filter-reset{border:1px solid var(--ink);background:transparent;padding:10px 13px;font-size:11px;font-weight:800}
.filter-chip[aria-pressed=true]{background:var(--secondary)}
.map-demo-badge{font:700 9px var(--display);white-space:nowrap}
.map-surface{position:relative;min-height:650px;overflow:hidden;background:#1c0a52}
.map-art{position:absolute;inset:0;background:#1c0a52 url('assets/map-art.svg') center/cover}
.real-map{position:absolute;inset:0;opacity:0;filter:grayscale(.65) contrast(.9);transition:opacity .4s}
.real-map.is-ready{opacity:1}
.map-wash{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#12063a65,transparent 45%)}
.map-markers{position:absolute;inset:0;pointer-events:none}
.map-pin{position:absolute;left:var(--pin-x);top:var(--pin-y);transform:translate(-50%,-50%);width:42px;height:42px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;background:var(--secondary);color:var(--ink);font-size:22px;pointer-events:auto;box-shadow:0 6px 20px #0005}
.map-pin.is-selected{background:var(--accent);color:var(--ink);transform:translate(-50%,-50%) scale(1.2)}
.map-attribution{position:absolute;bottom:9px;left:10px;z-index:2;color:white;font-size:9px;text-shadow:0 1px 3px black}
.map-brand-stamp{position:absolute;right:15px;top:15px;color:white;font:700 13px var(--display)}
.point-panel{display:flex;flex-direction:column;min-width:0;border-left:1px solid var(--ink);padding:25px;overflow:auto}
.panel-heading{display:flex;justify-content:space-between;gap:15px}
.panel-heading h3{font:700 24px var(--display);letter-spacing:-.06em;margin:10px 0}
.panel-heading h3 span{color:var(--accent)}
.panel-kicker,.panel-lightning{font:700 10px var(--display)}
.panel-lightning{font-size:25px}
.panel-disclaimer{font-size:12px;line-height:1.5;color:var(--muted);padding-bottom:15px}
.point-list{border-top:1px solid var(--ink)}
.point-row{display:grid;grid-template-columns:28px 1fr 20px;gap:10px;align-items:center;width:100%;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;padding:16px 5px}
.point-row.is-selected{background:var(--secondary)}
.point-icon{color:var(--accent);font-size:23px}
.point-row-text{display:flex;flex-direction:column;gap:3px}
.point-row-text b{font-size:12px}
.point-row-text small{font-size:10px;color:var(--muted)}
.point-detail-card{border-top:2px solid var(--accent);padding:18px 0}
.detail-top,.detail-meta{display:flex;justify-content:space-between;gap:10px;font:700 9px var(--display)}
.detail-tag{color:var(--accent)}
.detail-tag.is-alert{color:#7209b7}
.point-detail-card h4{font:700 18px var(--display);margin:16px 0}
.point-detail-card p,.detail-note{font-size:11px;line-height:1.6;color:var(--muted)}
.point-detail-card .detail-address{margin:-7px 0 14px;color:var(--ink)}
.detail-meta{border-top:1px solid var(--line);padding:15px 0}
.detail-source{font:700 9px/1.5 var(--display);color:var(--ink);letter-spacing:.02em}
.detail-source-link{display:inline-block;margin-top:12px;font:700 9px var(--display);color:var(--accent);text-decoration:none}
.panel-footer{display:flex;justify-content:space-between;gap:10px;margin-top:auto;border-top:1px solid var(--ink);padding-top:16px;font:700 9px var(--display)}
.point-empty{padding:30px 5px;font-size:12px}
.map-footnote{display:flex;justify-content:space-between;gap:30px;margin:0 3.5vw 100px;border-top:1px solid var(--ink);padding-top:20px;font:700 10px var(--display)}
.map-footnote p{max-width:450px;font:500 14px/1.6 var(--body);margin:0}

@media(max-width:950px){.site-header{grid-template-columns:1fr auto auto;gap:15px}
.nav-toggle{display:flex;order:3}
.main-nav{display:none}
.header-action{order:2}
.principles-layout{grid-template-columns:1fr;gap:35px}
.principles-visual{grid-row:1;width:min(100%,540px)}
.principles-copy{grid-row:2}
.city-head,.adapters-head,.gallery-head,.meetups-head{grid-template-columns:1fr;gap:20px}
.city-head{gap:45px}
.city-intro{max-width:680px}
.city-map-card{width:min(54vw,520px)}
.adapter-feature{grid-template-columns:1fr}
.adapter-photo{min-height:500px;height:65vw}
.adapter-feature--ac .type2-slot{grid-row:1;min-height:450px;border-left:0}
.adapter-feature--ac .adapter-info{grid-row:2}
.charge-memory{grid-template-columns:1fr}
.charge-memory__photo{grid-row:1}
.charge-memory__copy{grid-row:2}
.map-workbench{grid-template-columns:1fr;grid-template-rows:auto 600px auto}
.point-panel{border-left:0;border-top:1px solid var(--ink);max-height:none}
.map-surface{min-height:600px}
.map-hero-copy{display:block}
}

@media(max-width:640px){.site-header{min-height:64px;padding:8px 18px}
.brand-lockup{font-size:9px}
.brand-lockup img{width:36px;height:36px}
.header-action{padding:9px 10px;font-size:9px}
.nav-toggle{min-width:42px;padding:8px}
.nav-toggle span{display:none}
.chapter{padding:70px 18px}
.display{font-size:clamp(37px,11vw,68px);line-height:1.1}
.intro-index,.intro-bottom{left:18px;right:18px;font-size:8px}
.intro-index span,.intro-bottom>span{display:none}
.intro-controls{width:100%;justify-content:space-between;gap:12px}
.intro-skip{font-size:8px}
.intro-line{left:18px;right:18px}
.intro-core{max-width:94vw}
.intro-logo{width:155px}
.intro-name{font-size:clamp(31px,9.6vw,55px)}
.intro-core p{font-size:7px}
.history{padding-top:75px}
.history-heading{margin-top:10px}
.history-layout{grid-template-columns:1fr;gap:50px;margin:65px 0}
.history-date>strong{font-size:clamp(43px,11vw,70px)}
.history-links{margin-top:30px}
.history-link{grid-template-columns:44px minmax(0,1fr) 22px;gap:12px;min-height:92px;padding:16px}
.history-link__icon{width:44px;height:44px}
.history-link__icon i{font-size:23px}
.history-link__copy strong{font-size:14px}
.history-link__copy small{font-size:11px}
.history-copy .lead{font-size:20px}
.history-image{height:430px;margin:0 -18px}
.history-image img{object-position:center}
.history-image figcaption{font-size:8px;padding:12px}
.join-panel{grid-template-columns:1fr;min-height:0;gap:45px;margin:45px -18px 0;padding:38px 25px 55px}
.join-panel h3{font-size:clamp(31px,8.4vw,54px);margin:16px 0 22px}
.join-panel p{font-size:14px}
.join-panel__qr{max-width:290px;justify-self:center}
.principles{padding-top:85px;padding-bottom:80px}
.principles-heading .eyebrow{margin-bottom:17px}
.principles-heading .display{font-size:clamp(35px,9.3vw,58px);line-height:1.12}
.principles-layout{gap:18px;margin:24px 0 45px}
.principles-visual{width:min(100%,390px)}
.principle{grid-template-columns:1fr;gap:13px;padding:25px 0}
.principle h3{font-size:22px}
.principle p{font-size:15px;line-height:1.6}
.principles-rules{grid-template-columns:1fr;gap:18px;padding:26px 21px;border-left-width:6px}
.principles-rules h3{font-size:25px}
.principles-rules p{font-size:18px;line-height:1.5}
.scene-transition{min-height:165px;padding:25px 18px}
.scene-transition__hint{top:20px;left:18px;font-size:8px}
.scene-transition strong{font-size:clamp(41px,11vw,76px);gap:5px}
.scene-transition strong span{font-size:35px;margin-right:0}
.city-head,.adapters-head,.gallery-head,.meetups-head{margin:65px 0 50px}
.city-kicker{margin-bottom:24px;font-size:8px}
.city-head .display{font-size:clamp(43px,10.5vw,70px)}
.city-intro{padding:22px 0 0;border-left:0;border-top:1px solid var(--ink)}
.city-intro .city-lead{font-size:clamp(20px,5.5vw,28px)}
.city-intro p{font-size:14px}
.city-primary{margin-top:25px;padding:17px 18px;font-size:9px}
.city-purpose{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:18px;font-size:8px}
.city-purpose b{text-align:right}
.city-map-wrap{margin:0 -18px;height:650px}
.city{padding-bottom:0}
.city-map-top,.city-map-bottom{left:18px;right:18px;font-size:8px}
.city-map-top{top:18px}
.city-map-card{left:18px;right:18px;bottom:85px;width:auto;max-width:430px;padding:25px;box-shadow:9px 9px 0 #12063a59}
.city-map-card strong{font-size:clamp(25px,7vw,37px);margin:25px 0 30px}
.city-map-pin{width:35px;height:35px;font-size:18px}
.city-map-bottom{left:18px;right:18px;font-size:8px}
.city-map-bottom span:last-child{display:none}
.adapter-photo{min-height:370px;height:430px}
.adapter-info{padding:35px 0 50px}
.adapter-info h3{font-size:41px}
.adapter-info>p{font-size:14px}
.spec-row,.spec-row strong{font-size:10px}
.type2-slot{margin:0 -18px;padding:20px}
.charge-memory{margin:70px -18px 0}
.charge-memory__copy{padding:35px 24px 45px}
.charge-memory h3{margin:38px 0 20px;font-size:clamp(38px,10vw,58px)}
.charge-memory__copy a{margin-top:40px}
.charge-memory__photo figcaption{padding:12px 18px;font-size:7px}
.gallery-grid,.meetups-grid{grid-template-columns:1fr;gap:12px}
.gallery-shot--wide{grid-column:auto;height:330px}
.gallery-shot--vertical,.gallery-shot--detail{height:540px}
.meetups-grid figure{height:350px}
.end{min-height:720px}
.end .display{font-size:clamp(52px,14vw,90px)}
.end-copy{font-size:15px}
.site-footer{flex-wrap:wrap;padding:25px 18px;font-size:8px}
.site-footer span:nth-child(2){display:none}
.map-page{padding-top:64px}
.map-hero{padding:70px 18px 50px}
.map-hero h1{font-size:clamp(43px,11vw,70px);margin:45px 0 20px}
.map-hero-copy p{font-size:15px}
.map-workbench{margin:0 18px 70px;grid-template-rows:auto 470px auto}
.map-topbar{flex-wrap:wrap}
.map-search{flex-basis:100%}
.map-demo-badge{margin-left:auto}
.map-surface{min-height:470px}
.point-panel{padding:18px}
.map-footnote{margin:0 18px 70px;display:block}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
.js-motion .reveal{opacity:1;transform:none;filter:none}
.js-motion .media-wipe::after{display:none}
.js-motion .media-wipe img{transform:none}
.js-motion .scene-transition__slab,.js-motion .scene-transition strong{opacity:1;transform:none}
.loading-intro .intro{display:none}
.loading-intro .landing-page .site-header{opacity:1;transform:none;pointer-events:auto}
}


.paper .eyebrow,.history-date>strong span,.detail-tag,.point-icon{color:var(--accent-ink)}

/* Each heading line enters on its own beat, without hiding the text from no-JS visitors. */
@media(prefers-reduced-motion:no-preference){.js-motion .display.reveal{opacity:1;transform:none;filter:none}
.js-motion .display.reveal span{opacity:0;transform:translateY(.65em);clip-path:inset(0 0 100% 0);transition:opacity .75s,transform 1s cubic-bezier(.2,.85,.2,1),clip-path 1s cubic-bezier(.2,.85,.2,1)}
.js-motion .display.reveal.is-in span{opacity:1;transform:none;clip-path:inset(0)}
.js-motion .display.reveal span:nth-child(2){transition-delay:.13s}
.js-motion .display.reveal span:nth-child(3){transition-delay:.26s}
}
.loader-dots{display:inline-block;width:1.6em;text-align:left;overflow:hidden;vertical-align:bottom;animation:loader-dots 1s steps(4,end) infinite}
.loader-dots::after{content:'...'}
@keyframes loader-dots{from{width:0}to{width:1.6em}}
@keyframes loader-breathe{to{opacity:.35}}
.join-button{display:inline-flex;align-items:center;gap:10px;margin-top:8px;min-height:48px;padding:0 20px;background:var(--ink);color:var(--paper);text-decoration:none;font:700 11px var(--display);letter-spacing:.01em;transition:background-color .2s}.join-button:hover{background:var(--accent)}
@media(max-width:700px){.join-button{width:100%;justify-content:center}}
.city-map-add{margin:26px 0 10px;font-size:13px;line-height:1.5;color:var(--muted)}.city-map-card a.city-map-add-link{color:var(--accent-ink)}.city-map-card a.city-map-add-link:hover{color:var(--ink)}

/* Страница «О группе»: на ПК — «Карта зарядок» справа; на телефоне только логотип и бургер, всё остальное в меню. */
.header-end{justify-self:end;display:flex;align-items:center;gap:10px}
.header-end .nav-toggle{display:none}
@media(max-width:950px){.header-end .header-action{display:none}.header-end .nav-toggle{display:flex}}
