
/* layout: phone stage of the contest mini app after the final — big participant card on the left, wheel of participants in final order on the right, contest tab bar under.
   One committed dark look, the contest's own palette (the app has no light theme). */
:root{
  --bg:#0e1019; --ink:#000000; --slate:#2e3346;
  --fg:#ffffff; --muted:#a9aaaf; --soft:#c7c9d5;
  --pink:#ff4ec1; --violet:#cb4eff; --lime:#91ff4e;
  --gold:#ffd700; --silver:#e9ebf2; --copper:#c98545;
  --grad:linear-gradient(95deg,#cb4eff 2%,#ff4ec1 99%);
  --glass:rgba(14,16,25,.42); --glass-line:rgba(255,255,255,.2); --line:rgba(255,255,255,.1);
  --chip:rgba(255,255,255,.07); --chip-line:rgba(255,255,255,.12);
  --font:"Urbanist",-apple-system,"SF Pro Display","Segoe UI",Roboto,sans-serif;
  --w:min(100vw - 32px,460px,58vh); --u:calc(var(--w)/424);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:var(--font);color:var(--fg);overflow:hidden;
  background:radial-gradient(70% 45% at 8% 0%,rgba(255,78,193,.12),rgba(255,78,193,0) 60%),radial-gradient(70% 50% at 96% 45%,rgba(203,78,255,.12),rgba(203,78,255,0) 60%),var(--bg)}
button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
button:focus-visible{outline:2px solid var(--pink);outline-offset:2px}
.page{height:100%;display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*10);padding-block:10px 8px;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.stage{width:var(--w);flex:1;min-height:0;max-height:calc(var(--u)*880);display:flex;flex-direction:column;gap:calc(var(--u)*12)}

/* header: section name, count, and which contest these results belong to */
.lhead{flex:none;display:flex;flex-direction:column;gap:calc(var(--u)*4);padding:0 calc(var(--u)*2)}
.lrow{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*10);height:calc(var(--u)*34)}
.lt{display:flex;align-items:center;gap:calc(var(--u)*9);font-size:calc(var(--u)*21);font-weight:var(--w8,800);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}
.lt b{min-width:calc(var(--u)*26);height:calc(var(--u)*26);padding:0 calc(var(--u)*8);border-radius:calc(var(--u)*13);background:var(--grad);font-size:calc(var(--u)*14);font-weight:var(--w7,700);line-height:calc(var(--u)*26);text-align:center;letter-spacing:0;font-variant-numeric:tabular-nums}
.done{display:flex;align-items:center;gap:calc(var(--u)*6);height:calc(var(--u)*30);padding:0 calc(var(--u)*12) 0 calc(var(--u)*10);border-radius:calc(var(--u)*15);background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);
  font-size:calc(var(--u)*12.5);font-weight:var(--w7,700);color:var(--soft);white-space:nowrap}
.done svg{width:calc(var(--u)*14);height:calc(var(--u)*14);stroke:var(--lime)}
.lsub{font-size:calc(var(--u)*13.5);font-weight:var(--w6,600);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lsub b{font-weight:var(--w8,800);color:var(--fg)}
.lleft{display:flex;align-items:center;gap:calc(var(--u)*8);min-width:0}
.back{flex:none;width:calc(var(--u)*34);height:calc(var(--u)*34);border-radius:50%;display:grid;place-items:center;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}
.back svg{width:calc(var(--u)*18);height:calc(var(--u)*18);stroke:#fff}

/* two screens: the list of contests first, then the rating of the one you open */
.view{flex:1;min-height:0;display:flex;flex-direction:column;gap:calc(var(--u)*12);animation:vin .3s cubic-bezier(.2,.8,.2,1)}
@keyframes vin{from{opacity:0;transform:translateX(calc(var(--u)*14))}}
#vList{animation-name:vback}
@keyframes vback{from{opacity:0;transform:translateX(calc(var(--u)*-14))}}
.clist{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;display:flex;flex-direction:column;gap:calc(var(--u)*10);padding-bottom:calc(var(--u)*4)}
.clist::-webkit-scrollbar{display:none}
/* contest list: quiet rows in one panel, grouped by year */
.cgroup{flex:none;display:flex;flex-direction:column;gap:calc(var(--u)*8)}
.cgroup>h3{margin:0;padding:0 calc(var(--u)*2);font-size:calc(var(--u)*12.5);font-weight:var(--w8,800);letter-spacing:.1em;color:var(--muted);font-variant-numeric:tabular-nums}
.crows{border-radius:calc(var(--u)*22);background:var(--ink);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.crow{display:flex;align-items:center;gap:calc(var(--u)*14);width:100%;padding:calc(var(--u)*12) calc(var(--u)*14);text-align:left;transition:background .15s}
.crow:active{background:rgba(255,255,255,.04)}
.crow+.crow{border-top:1px solid var(--line)}
.crow .ph2{position:relative;flex:none;width:calc(var(--u)*52);height:calc(var(--u)*66);border-radius:calc(var(--u)*13);overflow:hidden;background:var(--slate)}
.crow .ph2 img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.crow .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*3)}
.crow .tx small{font-size:calc(var(--u)*10.5);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--pink)}
.crow .tx b{font-size:calc(var(--u)*16.5);font-weight:var(--w8,800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crow .tx span{font-size:calc(var(--u)*13);font-weight:var(--w6,600);color:var(--muted)}
.crow .tx em{display:flex;align-items:center;gap:calc(var(--u)*5);font-style:normal;font-size:calc(var(--u)*13);font-weight:var(--w7,700);color:var(--soft);white-space:nowrap;overflow:hidden}
.crow .tx em svg{flex:none;width:calc(var(--u)*13);height:calc(var(--u)*13);fill:var(--gold)}
.crow .tx em i{font-style:normal;color:var(--gold);font-variant-numeric:tabular-nums}
.crow>svg{flex:none;width:calc(var(--u)*18);height:calc(var(--u)*18);fill:none;stroke:var(--muted);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* a contest card: winner's photo on the right, the facts on the left, the podium at the bottom */
.ccard{position:relative;flex:none;display:block;width:100%;height:calc(var(--u)*184);border-radius:calc(var(--u)*24);overflow:hidden;background:var(--ink);box-shadow:0 0 0 1px var(--line);text-align:left;transition:transform .12s}
.ccard:active{transform:scale(.985)}
.ccard.new{box-shadow:0 0 0 calc(var(--u)*1.6) rgba(255,78,193,.85),0 calc(var(--u)*12) calc(var(--u)*30) calc(var(--u)*-14) rgba(255,78,193,.6)}
.ccard .cbg{position:absolute;right:0;top:0;bottom:0;width:58%}
.ccard .cbg img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.ccard .cbg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#000 0%,rgba(0,0,0,.72) 26%,rgba(0,0,0,.1) 70%,rgba(0,0,0,0) 100%)}
.ccard .cbody{position:absolute;left:calc(var(--u)*16);top:calc(var(--u)*14);bottom:calc(var(--u)*14);right:34%;display:flex;flex-direction:column;gap:calc(var(--u)*4);min-width:0}
.cstat{display:flex;align-items:center;gap:calc(var(--u)*6);font-size:calc(var(--u)*11);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cstat i{width:calc(var(--u)*7);height:calc(var(--u)*7);border-radius:50%;background:var(--muted)}
.ccard.new .cstat{color:var(--pink)}
.ccard.new .cstat i{background:var(--pink)}
.ctitle{font-size:calc(var(--u)*22);font-weight:var(--w8,800);line-height:1.05;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cwhen{font-size:calc(var(--u)*13);font-weight:var(--w6,600);color:var(--soft)}
.cmeta{font-size:calc(var(--u)*12.5);font-weight:var(--w7,700);color:var(--muted);font-variant-numeric:tabular-nums}
.cpod{margin-top:auto;display:flex;align-items:center;gap:calc(var(--u)*10)}
.cpod .av{display:flex}
.cpod .av span{position:relative;width:calc(var(--u)*32);height:calc(var(--u)*32);margin-right:calc(var(--u)*-7);border-radius:50%;overflow:hidden;background:var(--slate);box-shadow:0 0 0 calc(var(--u)*2) var(--rc),0 0 0 calc(var(--u)*3.5) #000}
.cpod .av span:first-child{width:calc(var(--u)*38);height:calc(var(--u)*38);z-index:3}
.cpod .av span:nth-child(2){z-index:2;align-self:flex-end}
.cpod .av span:nth-child(3){align-self:flex-end}
.cpod .av img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.cpod em{min-width:0;margin-left:calc(var(--u)*8);font-style:normal;font-size:calc(var(--u)*12.5);font-weight:var(--w6,600);line-height:1.25;color:var(--soft)}
.cpod em b{display:block;font-size:calc(var(--u)*14);font-weight:var(--w8,800);color:var(--gold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.carr{position:absolute;right:calc(var(--u)*14);bottom:calc(var(--u)*14);width:calc(var(--u)*38);height:calc(var(--u)*38);border-radius:50%;display:grid;place-items:center}
.carr svg{width:calc(var(--u)*18);height:calc(var(--u)*18);stroke:#fff}

/* card */
.feed{position:relative;flex:1;min-height:0;display:flex;gap:calc(var(--u)*5)}
.colw{position:relative;z-index:1;flex:1;min-width:0;border-radius:calc(var(--u)*28)}
.card{position:relative;height:100%;border-radius:calc(var(--u)*28);overflow:hidden;background:var(--ink);
  box-shadow:0 0 0 1px var(--line),0 calc(var(--u)*14) calc(var(--u)*30) calc(var(--u)*-14) rgba(0,0,0,.9);
  user-select:none;-webkit-user-select:none;touch-action:manipulation}
.card.multi{cursor:pointer}
.ph{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;opacity:0;transition:opacity .22s;pointer-events:none;-webkit-user-drag:none}
.ph.front{opacity:1}
.sc-t{position:absolute;left:0;right:0;top:0;height:calc(var(--u)*120);background:linear-gradient(rgba(14,16,25,.55),rgba(14,16,25,0));pointer-events:none;opacity:0;transition:opacity .3s}
.card.multi .sc-t{opacity:1}
.sc-b{position:absolute;left:0;right:0;bottom:0;height:calc(var(--u)*290);max-height:74%;background:linear-gradient(rgba(14,16,25,0),rgba(8,8,14,.62) 42%,rgba(2,2,6,.96));pointer-events:none}
.glass{background:var(--glass);-webkit-backdrop-filter:blur(calc(var(--u)*9)) saturate(1.4);backdrop-filter:blur(calc(var(--u)*9)) saturate(1.4);box-shadow:inset 0 0 0 1px var(--glass-line)}
.seg{position:absolute;left:calc(var(--u)*14);right:calc(var(--u)*14);top:calc(var(--u)*12);display:flex;gap:calc(var(--u)*3.3);pointer-events:none}
.seg i{flex:1;height:calc(var(--u)*2.7);border-radius:calc(var(--u)*2);background:rgba(255,255,255,.32);transition:background .2s}
.seg i.on{background:#fff}
/* the place is the headline of the card: a big medal-coloured numeral in the corner */
.rank{position:absolute;left:calc(var(--u)*16);top:calc(var(--u)*16);display:flex;align-items:flex-end;gap:calc(var(--u)*7);pointer-events:none;
  --mg:linear-gradient(180deg,#ffffff,#d6d8e2);filter:drop-shadow(0 calc(var(--u)*3) calc(var(--u)*10) rgba(0,0,0,.55))}
.card.multi .rank{top:calc(var(--u)*26)}
.rank b{font-size:calc(var(--u)*92);font-weight:var(--w8,800);line-height:.78;letter-spacing:-.05em;font-variant-numeric:tabular-nums;
  background:var(--mg);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.rank span{display:flex;flex-direction:column;gap:calc(var(--u)*2);margin-bottom:calc(var(--u)*2);font-size:calc(var(--u)*12.5);font-weight:var(--w8,800);letter-spacing:.12em;text-transform:uppercase;color:#fff}
.rank span small{font-size:calc(var(--u)*11);font-weight:var(--w7,700);letter-spacing:.04em;text-transform:none;color:rgba(255,255,255,.75)}
.rank.g{--mg:linear-gradient(180deg,#fff6b8 0%,#ffd700 48%,#c98f00 100%)}
.rank.s{--mg:linear-gradient(180deg,#ffffff 0%,#dfe2ec 50%,#9aa0b3 100%)}
.rank.c{--mg:linear-gradient(180deg,#ffd9b3 0%,#d08a4a 50%,#8a5222 100%)}
.rank.z{--mg:linear-gradient(180deg,#ffd0f0 0%,#ff4ec1 60%,#cb4eff 100%)}
.info{position:absolute;left:calc(var(--u)*16);right:calc(var(--u)*16);bottom:calc(var(--u)*84);pointer-events:none}
.card.noprize .info{bottom:calc(var(--u)*22)}
.kick{margin-bottom:calc(var(--u)*5);font-size:calc(var(--u)*11.5);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--kc,var(--soft))}
.kick:empty{display:none}
.nm{font-size:calc(var(--u)*28);font-weight:var(--w8,800);line-height:1.05;letter-spacing:-.01em;text-shadow:0 calc(var(--u)*1.5) calc(var(--u)*8) rgba(0,0,0,.4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lline{margin-top:calc(var(--u)*6);display:flex;align-items:center;gap:calc(var(--u)*10);font-size:calc(var(--u)*13.5);font-weight:var(--w6,600);color:rgba(255,255,255,.88);white-space:nowrap;
  text-shadow:0 1px calc(var(--u)*6) rgba(0,0,0,.5);font-variant-numeric:tabular-nums}
.lline .v{display:flex;align-items:center;gap:calc(var(--u)*5)}
.lline .v svg{width:calc(var(--u)*13);height:calc(var(--u)*13);fill:var(--pink)}
.lline .ms{display:flex;align-items:center;gap:calc(var(--u)*7)}
.lline .ms span{display:flex;align-items:center;gap:calc(var(--u)*2.5);color:var(--c)}
.lline .ms svg{width:calc(var(--u)*13);height:calc(var(--u)*13);fill:var(--c)}
/* sponsor stars as achievements: the app's own laurel-star badge, gold / silver / bronze; ones not received stay grey */
.ach{position:absolute;right:calc(var(--u)*14);top:calc(var(--u)*14);display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*8)}
.achr{display:flex;gap:calc(var(--u)*6)}
.ach>small{font-size:calc(var(--u)*8.6);font-weight:var(--w8,800);letter-spacing:.1em;white-space:nowrap;text-transform:uppercase;color:rgba(255,255,255,.82);text-shadow:0 1px calc(var(--u)*6) rgba(0,0,0,.6);pointer-events:none}
.card.multi .ach{top:calc(var(--u)*24)}
.ach button{position:relative;width:calc(var(--u)*42);height:calc(var(--u)*42);border-radius:50%;display:grid;place-items:center;
  background:rgba(14,16,25,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.ach button.on{box-shadow:inset 0 0 0 calc(var(--u)*1.5) var(--c),0 0 calc(var(--u)*14) calc(var(--u)*-2) var(--g)}
.ach svg{width:calc(var(--u)*27);height:calc(var(--u)*27);fill:rgba(255,255,255,.26)}
.ach button.on svg{fill:var(--c);filter:drop-shadow(0 0 calc(var(--u)*5) var(--g))}
.ach i{position:absolute;right:calc(var(--u)*-3);bottom:calc(var(--u)*-3);min-width:calc(var(--u)*18);height:calc(var(--u)*18);padding:0 calc(var(--u)*4);border-radius:calc(var(--u)*9);
  display:grid;place-items:center;background:var(--c);color:#14161f;font-style:normal;font-size:calc(var(--u)*11);font-weight:var(--w8,800);box-shadow:0 0 0 calc(var(--u)*2) rgba(14,16,25,.9)}
.stt thead svg{width:calc(var(--u)*18);height:calc(var(--u)*18);display:block;margin:0 0 calc(var(--u)*2) auto;fill:currentColor}

/* votes against the leader: the bar is full for first place */
.vbar{margin-top:calc(var(--u)*8);width:78%;height:calc(var(--u)*5);border-radius:calc(var(--u)*3);background:rgba(255,255,255,.18);overflow:hidden}
.vbar i{display:block;height:100%;border-radius:inherit;background:var(--grad);transition:width .35s cubic-bezier(.2,.8,.2,1)}
.gift{margin-top:calc(var(--u)*6);display:flex;align-items:flex-start;gap:calc(var(--u)*6);font-size:calc(var(--u)*12.5);font-weight:var(--w6,600);line-height:1.3;color:rgba(255,255,255,.8);text-shadow:0 1px calc(var(--u)*6) rgba(0,0,0,.5)}
.gift svg{flex:none;width:calc(var(--u)*14);height:calc(var(--u)*14);margin-top:calc(var(--u)*1);stroke:var(--lime)}
.gift span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.lacts{position:absolute;left:calc(var(--u)*14);right:calc(var(--u)*14);bottom:calc(var(--u)*16);display:flex;gap:calc(var(--u)*8)}
/* prize: gold on dark glass, so it does not compete with the pink «Конкурс» button in the tab bar */
.prize{flex:1;min-width:0;height:calc(var(--u)*50);border-radius:calc(var(--u)*25);display:flex;align-items:center;justify-content:center;gap:calc(var(--u)*8);color:var(--gold);
  background:rgba(14,16,25,.55);-webkit-backdrop-filter:blur(calc(var(--u)*9));backdrop-filter:blur(calc(var(--u)*9));
  box-shadow:inset 0 0 0 1px rgba(255,215,0,.26)}
.prize svg{flex:none;width:calc(var(--u)*19);height:calc(var(--u)*19);fill:var(--gold)}
.prize small{font-size:calc(var(--u)*11);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:rgba(255,236,150,.8)}
.prize b{font-size:calc(var(--u)*17);font-weight:var(--w8,800);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--gold)}

/* wheel of participants in final order. The slot in the middle is fixed; whoever sits in it is open on the card */
.railw{position:relative;flex:none;width:calc(var(--u)*84);display:flex;margin-right:-8px}
.rail{position:relative;flex:none;width:calc(var(--u)*84);height:100%;overflow:hidden;touch-action:none;cursor:grab;outline:none;
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 15%,#000 85%,rgba(0,0,0,0) 100%);
          mask-image:linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 15%,#000 85%,rgba(0,0,0,0) 100%)}
.rail.grab{cursor:grabbing}
.strip{position:absolute;left:0;top:0;width:100%;display:flex;flex-direction:column;gap:calc(var(--u)*8);will-change:transform}
.th{position:relative;flex:none;display:block;width:calc(var(--u)*84);height:calc(var(--u)*116);border-radius:calc(var(--u)*16);overflow:hidden;background:var(--slate);
  transform:scale(calc(.9 + .1*var(--k,0)));box-shadow:0 calc(var(--u)*8) calc(var(--u)*22) calc(var(--u)*-8) rgba(255,78,193,calc(.75*var(--k,0)))}
.th img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
/* --k runs from 0 (one participant away or more) to 1 (exactly in the centre): the thumb grows, brightens and gets its ring as it arrives */
.th::after{content:"";position:absolute;inset:0;border-radius:inherit;background:rgba(14,16,25,calc(.42 - .42*var(--k,0)));box-shadow:inset 0 0 0 1px var(--line)}
.th::before{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;padding:calc(var(--u)*2.6);background:var(--grad);opacity:calc(var(--k,0)*2.2 - 1.2);pointer-events:none;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.th .cap{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:calc(var(--u)*22) calc(var(--u)*6) calc(var(--u)*6.5);font-size:calc(var(--u)*12);font-weight:var(--w7,700);color:#fff;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:linear-gradient(rgba(14,16,25,0),rgba(14,16,25,.9))}
/* big place number on every thumb, so the wheel reads as a ladder 1, 2, 3…: medal colours for the podium, brand pink for the other prize places */
.th .tg{position:absolute;left:0;right:0;top:0;z-index:1;height:calc(var(--u)*44);background:linear-gradient(rgba(14,16,25,.78),rgba(14,16,25,0));pointer-events:none}
.th .pl{position:absolute;z-index:1;left:calc(var(--u)*7);top:calc(var(--u)*4);font-size:calc(var(--u)*28);font-weight:var(--w8,800);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:#fff;
  text-shadow:0 1px calc(var(--u)*6) rgba(0,0,0,.6)}
.th .pl.g{color:var(--gold)}
.th .pl.s{color:var(--silver)}
.th .pl.c{color:#e0a064}
.th .pl.z{color:var(--pink)}

/* ---------- other tabs: contest, sponsors, registration, rules ---------- */
.stage{position:relative}
.scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;touch-action:pan-y;overscroll-behavior:contain;scrollbar-width:none;display:flex;flex-direction:column;gap:calc(var(--u)*18);padding-bottom:calc(var(--u)*18);
  -webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - var(--u)*22),transparent 100%);mask-image:linear-gradient(to bottom,#000 calc(100% - var(--u)*22),transparent 100%)}
.scroll::-webkit-scrollbar{display:none}
.blk{flex:none;display:flex;flex-direction:column;gap:calc(var(--u)*10)}
.blk>h3{margin:0;padding:0 calc(var(--u)*2);font-size:calc(var(--u)*12.5);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.panel{border-radius:calc(var(--u)*22);background:var(--ink);box-shadow:inset 0 0 0 1px var(--line);padding:calc(var(--u)*14) calc(var(--u)*16)}
.panel.stack{display:flex;flex-direction:column;gap:calc(var(--u)*12)}
.btn{width:100%;height:calc(var(--u)*50);border-radius:calc(var(--u)*25);font-size:calc(var(--u)*15);font-weight:var(--w8,800);display:flex;align-items:center;justify-content:center;gap:calc(var(--u)*8);transition:transform .12s}
.btn:active{transform:scale(.97)}
.btn.white{background:#fff;color:#0e1019}
.btn.ghost{background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);color:#fff}
.btn svg{width:calc(var(--u)*18);height:calc(var(--u)*18);fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hact{flex:none;display:flex;align-items:center;gap:calc(var(--u)*6);height:calc(var(--u)*34);padding:0 calc(var(--u)*14) 0 calc(var(--u)*11);border-radius:calc(var(--u)*17);background:#fff;color:#0e1019;font-size:calc(var(--u)*13.5);font-weight:var(--w8,800);white-space:nowrap}
.hact svg{width:calc(var(--u)*15);height:calc(var(--u)*15);fill:none;stroke:#0e1019;stroke-width:2.8;stroke-linecap:round}
.note{margin:0;font-size:calc(var(--u)*14);font-weight:var(--w5,500);line-height:1.45;color:var(--soft)}
.note b{color:#fff;font-weight:var(--w7,700)}
.note.small{font-size:calc(var(--u)*12.5);color:var(--muted)}

/* contest page */
.hero{position:relative;flex:none;height:calc(var(--u)*340);border-radius:calc(var(--u)*28);overflow:hidden;background:var(--ink);box-shadow:0 0 0 1px var(--line)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
/* cover: the three prize winners side by side, 2 — 1 — 3 like a podium; narrow tiles keep the small restored photos sharp */
.hmos{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:calc(var(--u)*3)}
.hmos span{position:relative;overflow:hidden;background:var(--slate)}
.hmos img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.hmos b{position:absolute;z-index:1;left:calc(var(--u)*10);top:calc(var(--u)*54);font-size:calc(var(--u)*34);font-weight:var(--w8,800);line-height:1;letter-spacing:-.03em;color:var(--pc,#fff);text-shadow:0 calc(var(--u)*2) calc(var(--u)*10) rgba(0,0,0,.65)}
.hmos span:nth-child(2) b{font-size:calc(var(--u)*44);top:calc(var(--u)*50)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(14,16,25,.35),rgba(14,16,25,0) 28%,rgba(6,6,12,.55) 55%,rgba(2,2,6,.97));pointer-events:none}
.hst{position:absolute;z-index:1;left:calc(var(--u)*16);top:calc(var(--u)*16);display:flex;align-items:center;gap:calc(var(--u)*7);height:calc(var(--u)*30);padding:0 calc(var(--u)*12) 0 calc(var(--u)*10);border-radius:calc(var(--u)*15);font-size:calc(var(--u)*12.5);font-weight:var(--w8,800)}
.hst i{width:calc(var(--u)*7);height:calc(var(--u)*7);border-radius:50%;background:var(--lime)}
.hb{position:absolute;z-index:1;left:calc(var(--u)*18);right:calc(var(--u)*18);bottom:calc(var(--u)*18);display:flex;flex-direction:column;gap:calc(var(--u)*6)}
.hb h2{margin:0;font-size:calc(var(--u)*36);font-weight:var(--w8,800);line-height:1;letter-spacing:-.01em;text-wrap:balance}
.hb .hw{font-size:calc(var(--u)*14.5);font-weight:var(--w6,600);color:var(--soft)}
.hb .hf{display:flex;flex-wrap:wrap;gap:calc(var(--u)*6) calc(var(--u)*14);font-size:calc(var(--u)*13);font-weight:var(--w7,700);color:rgba(255,255,255,.85);font-variant-numeric:tabular-nums}
.hb .hf b{color:var(--gold);font-weight:var(--w8,800)}
.hb .btn{margin-top:calc(var(--u)*8)}
.win{display:flex;align-items:center;gap:calc(var(--u)*12)}
.win .ava{position:relative;flex:none;width:calc(var(--u)*58);height:calc(var(--u)*58);border-radius:50%;overflow:hidden;box-shadow:0 0 0 calc(var(--u)*2.5) var(--gold),0 0 0 calc(var(--u)*5) #000}
.win .ava img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.win .wt{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*2)}
.win .wt small{font-size:calc(var(--u)*11);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.win .wt b{font-size:calc(var(--u)*19);font-weight:var(--w8,800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.win .wt span{font-size:calc(var(--u)*13);font-weight:var(--w6,600);color:var(--muted);font-variant-numeric:tabular-nums}
.win .wp{font-size:calc(var(--u)*18);font-weight:var(--w8,800);color:var(--gold);white-space:nowrap;font-variant-numeric:tabular-nums}
.prow{display:flex;align-items:center;gap:calc(var(--u)*12);padding:calc(var(--u)*10) 0}
.prow+.prow{box-shadow:0 -1px 0 var(--line)}
.prow .pn{flex:none;width:calc(var(--u)*30);font-size:calc(var(--u)*26);font-weight:var(--w8,800);line-height:1;color:var(--pc,#fff);font-variant-numeric:tabular-nums}
.prow .pd{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*2)}
.prow .pd b{font-size:calc(var(--u)*15);font-weight:var(--w7,700)}
.prow .pd span{font-size:calc(var(--u)*12.5);font-weight:var(--w5,500);line-height:1.3;color:var(--muted)}
.prow .pa{font-size:calc(var(--u)*16);font-weight:var(--w8,800);color:var(--gold);white-space:nowrap;font-variant-numeric:tabular-nums}
.ptot{display:flex;align-items:baseline;justify-content:space-between;margin-top:calc(var(--u)*4);padding-top:calc(var(--u)*12);box-shadow:0 -1px 0 var(--line);font-size:calc(var(--u)*14);font-weight:var(--w7,700);color:var(--soft)}
.ptot b{font-size:calc(var(--u)*22);font-weight:var(--w8,800);color:var(--gold);font-variant-numeric:tabular-nums}
.req{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:calc(var(--u)*11)}
.req li{display:flex;gap:calc(var(--u)*10);font-size:calc(var(--u)*14.5);font-weight:var(--w6,600);line-height:1.35}
.req svg{flex:none;width:calc(var(--u)*18);height:calc(var(--u)*18);margin-top:calc(var(--u)*1);fill:none;stroke:var(--lime);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.req b{color:var(--pink);font-weight:var(--w8,800)}
.supp{display:flex;align-items:center;gap:calc(var(--u)*10);font-size:calc(var(--u)*15);font-weight:var(--w8,800)}
.supp span{color:var(--muted);font-weight:var(--w6,600)}

/* main contest screen, after the real main page: photo mosaic, lalau + contest name and date tiles, requirements, limit, prize fund */
.mosaic{flex:none;display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:calc(var(--u)*6);align-items:start}
.mcol{display:flex;flex-direction:column;gap:calc(var(--u)*6)}
.mosaic span{position:relative;display:block;border-radius:calc(var(--u)*18);overflow:hidden;background:var(--slate);box-shadow:0 calc(var(--u)*10) calc(var(--u)*24) calc(var(--u)*-12) rgba(0,0,0,.8)}
.mosaic img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.mcol.l span{height:calc(var(--u)*135)}
.mcol.c span{height:calc(var(--u)*276)}
.mcol.r span{height:calc(var(--u)*176)}
.ctop{flex:none;display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*12);padding:0 calc(var(--u)*2)}
.ctl{min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*5)}
.logo{font-size:calc(var(--u)*40);font-weight:var(--w8,800);line-height:.9;letter-spacing:-.03em}
.logo.brand{font-size:calc(var(--u)*28);line-height:1.05;letter-spacing:-.01em;text-transform:uppercase}
.ctn.org{font-size:calc(var(--u)*13);font-weight:var(--w6,600);color:var(--muted)}
.ctn.org b{color:var(--soft);font-weight:var(--w8,800)}
.ctn{font-size:calc(var(--u)*16);font-weight:var(--w7,700);color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cst{display:flex;align-items:center;gap:calc(var(--u)*6);font-size:calc(var(--u)*11.5);font-weight:var(--w8,800);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cst i{width:calc(var(--u)*7);height:calc(var(--u)*7);border-radius:50%;background:var(--lime)}
.dts{flex:none;display:flex;gap:calc(var(--u)*6)}
.dt{width:calc(var(--u)*72);height:calc(var(--u)*78);border-radius:calc(var(--u)*20);background:#151826;box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--u)*3)}
.dt b{font-size:calc(var(--u)*34);font-weight:var(--w8,800);line-height:1;font-variant-numeric:tabular-nums}
.dt small{font-size:calc(var(--u)*12.5);font-weight:var(--w8,800);letter-spacing:.05em;text-transform:uppercase;color:var(--soft)}
.verif{display:flex;align-items:center;gap:calc(var(--u)*10);padding-top:calc(var(--u)*12);box-shadow:0 -1px 0 var(--line);font-size:calc(var(--u)*14.5);font-weight:var(--w6,600);line-height:1.35}
.verif svg{flex:none;width:calc(var(--u)*20);height:calc(var(--u)*20);fill:none;stroke:var(--lime);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.verif b{color:var(--pink);font-weight:var(--w8,800)}
.cmax{flex:none;display:flex;align-items:center;gap:calc(var(--u)*14)}
.cmax b{font-size:calc(var(--u)*52);font-weight:var(--w8,800);line-height:.9;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.cmax span{display:flex;flex-direction:column;gap:calc(var(--u)*3);font-size:calc(var(--u)*14);font-weight:var(--w6,600);line-height:1.25;color:var(--soft)}
.cmax small{font-size:calc(var(--u)*12.5);font-weight:var(--w6,600);color:var(--muted)}
.ptop{display:flex;flex-direction:column;gap:calc(var(--u)*4);padding-bottom:calc(var(--u)*10)}
.ptop b{font-size:calc(var(--u)*30);font-weight:var(--w8,800);color:var(--gold);font-variant-numeric:tabular-nums}
.ptop span{font-size:calc(var(--u)*13.5);font-weight:var(--w5,500);line-height:1.4;color:var(--soft)}
.ptop+.prow{box-shadow:0 -1px 0 var(--line)}
#cPrizes .pd b{font-size:calc(var(--u)*16);font-weight:var(--w8,800);color:var(--gold);font-variant-numeric:tabular-nums}
.inc{flex:none;display:flex;align-items:center;gap:calc(var(--u)*5);height:calc(var(--u)*32);padding:0 calc(var(--u)*12);border-radius:calc(var(--u)*16);background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);font-size:calc(var(--u)*12.5);font-weight:var(--w8,800);white-space:nowrap}
.inc svg{width:calc(var(--u)*13);height:calc(var(--u)*13);fill:none;stroke:var(--lime);stroke-width:2.8;stroke-linecap:round}

/* main screen between contests: announcements, active contests, how it works, numbers */
.ann{flex:none;display:flex;gap:calc(var(--u)*10);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.ann::-webkit-scrollbar{display:none}
.anc{position:relative;flex:none;width:84%;height:calc(var(--u)*176);scroll-snap-align:start;border-radius:calc(var(--u)*22);overflow:hidden;background:var(--ink);box-shadow:inset 0 0 0 1px var(--line);text-align:left}
.anc img{position:absolute;right:0;top:0;width:55%;height:100%;max-width:none;object-fit:cover}
.anc::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#000 0%,rgba(0,0,0,.78) 40%,rgba(0,0,0,.15) 75%,rgba(0,0,0,0) 100%);pointer-events:none}
.anc .ab2{position:absolute;z-index:1;left:calc(var(--u)*16);top:calc(var(--u)*14);bottom:calc(var(--u)*14);right:36%;display:flex;flex-direction:column;gap:calc(var(--u)*5)}
.anc small{font-size:calc(var(--u)*11);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--kc)}
.anc b{font-size:calc(var(--u)*19);font-weight:var(--w8,800);line-height:1.1;text-wrap:balance;color:#fff}
.anc span{font-size:calc(var(--u)*12.5);font-weight:var(--w5,500);line-height:1.35;color:var(--soft)}
.anc em{margin-top:auto;align-self:flex-start;display:flex;align-items:center;gap:calc(var(--u)*5);height:calc(var(--u)*32);padding:0 calc(var(--u)*14);border-radius:calc(var(--u)*16);background:#fff;color:#0e1019;font-style:normal;font-size:calc(var(--u)*12.5);font-weight:var(--w8,800);white-space:nowrap}
.mtop{flex:none;display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*12);padding:0 calc(var(--u)*2)}
.mtop .chip2{display:flex;align-items:center;gap:calc(var(--u)*6);height:calc(var(--u)*30);padding:0 calc(var(--u)*12) 0 calc(var(--u)*10);border-radius:calc(var(--u)*15);background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);font-size:calc(var(--u)*12.5);font-weight:var(--w8,800);color:var(--soft);white-space:nowrap}
.mtop .chip2 i{width:calc(var(--u)*7);height:calc(var(--u)*7);border-radius:50%;background:var(--pink);box-shadow:0 0 0 calc(var(--u)*3) rgba(255,78,193,.2)}
.empty2{display:flex;align-items:center;gap:calc(var(--u)*14)}
.empty2 .ic2{flex:none;width:calc(var(--u)*46);height:calc(var(--u)*46);border-radius:50%;display:grid;place-items:center;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}
.empty2 .ic2 svg{width:calc(var(--u)*22);height:calc(var(--u)*22);fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.empty2 div{display:flex;flex-direction:column;gap:calc(var(--u)*3)}
.empty2 b{font-size:calc(var(--u)*15.5);font-weight:var(--w8,800)}
.empty2 span{font-size:calc(var(--u)*13);font-weight:var(--w5,500);line-height:1.4;color:var(--muted)}
.steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:calc(var(--u)*14)}
.steps li{display:flex;gap:calc(var(--u)*12)}
.steps i{flex:none;width:calc(var(--u)*30);height:calc(var(--u)*30);border-radius:50%;display:grid;place-items:center;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);font-style:normal;font-size:calc(var(--u)*14);font-weight:var(--w8,800)}
.steps div{display:flex;flex-direction:column;gap:calc(var(--u)*2)}
.steps b{font-size:calc(var(--u)*15);font-weight:var(--w8,800)}
.steps span{font-size:calc(var(--u)*13);font-weight:var(--w5,500);line-height:1.4;color:var(--soft)}
.nums{flex:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--u)*8)}
.nums div{display:flex;flex-direction:column;gap:calc(var(--u)*3);padding:calc(var(--u)*14) calc(var(--u)*12);border-radius:calc(var(--u)*20);background:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.nums b{font-size:calc(var(--u)*24);font-weight:var(--w8,800);line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}
.nums div:last-child b{color:var(--gold)}
.nums span{font-size:calc(var(--u)*12);font-weight:var(--w6,600);line-height:1.3;color:var(--muted)}
.rowlink{display:flex;align-items:center;gap:calc(var(--u)*12);width:100%;text-align:left}
.rowlink span{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*2)}
.rowlink b{font-size:calc(var(--u)*15.5);font-weight:var(--w8,800)}
.rowlink small{font-size:calc(var(--u)*13);font-weight:var(--w5,500);color:var(--muted)}
.rowlink svg{flex:none;width:calc(var(--u)*18);height:calc(var(--u)*18);fill:none;stroke:var(--muted);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* main screen variants (prototype switcher on top is not part of the design) */
.vsw{flex:none;display:grid;grid-template-columns:repeat(3,1fr);gap:calc(var(--u)*4);padding:calc(var(--u)*3);border-radius:calc(var(--u)*16);background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.vsw button{height:calc(var(--u)*28);border-radius:calc(var(--u)*13);font-size:calc(var(--u)*12);font-weight:var(--w7,700);color:var(--muted)}
.vsw button[aria-selected="true"]{background:rgba(255,255,255,.12);color:#fff}
.afisha,.hall{flex:1;min-height:0;display:flex;flex-direction:column;gap:calc(var(--u)*12)}
.amos{position:relative;flex:1;min-height:calc(var(--u)*190);display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:calc(var(--u)*6)}
.amos .col{display:flex;flex-direction:column;gap:calc(var(--u)*6);min-height:0}
.amos span{position:relative;flex:1;min-height:0;border-radius:calc(var(--u)*18);overflow:hidden;background:var(--slate)}
.amos .col.r span{flex:none;height:66%}
.amos img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.amos::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(rgba(14,16,25,0),var(--bg) 92%);pointer-events:none}
.atop{position:relative;flex:none}
.atop .mosaic{-webkit-mask-image:linear-gradient(to bottom,#000 58%,rgba(0,0,0,.35) 82%,transparent 100%);mask-image:linear-gradient(to bottom,#000 58%,rgba(0,0,0,.35) 82%,transparent 100%)}
.atop .mosaic span{box-shadow:none}
.ainfo{position:relative;z-index:1;flex:none;margin-top:calc(var(--u)*-48);display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*8);text-align:center}
.achip{display:flex;align-items:center;gap:calc(var(--u)*6);height:calc(var(--u)*30);padding:0 calc(var(--u)*12) 0 calc(var(--u)*10);border-radius:calc(var(--u)*15);background:rgba(14,16,25,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px var(--chip-line);font-size:calc(var(--u)*12.5);font-weight:var(--w8,800);color:#fff;white-space:nowrap}
.achip i{width:calc(var(--u)*7);height:calc(var(--u)*7);border-radius:50%;background:var(--pink);box-shadow:0 0 0 calc(var(--u)*3) rgba(255,78,193,.22)}
.ainfo h1{margin:calc(var(--u)*4) 0 0;font-size:calc(var(--u)*19);font-weight:var(--w8,800);line-height:1.1;letter-spacing:.2em;text-transform:uppercase;padding-left:.2em}
.ainfo p{margin:0;max-width:92%;font-size:calc(var(--u)*14);font-weight:var(--w5,500);line-height:1.45;color:var(--soft);text-wrap:balance}
.ainfo .btn{margin-top:calc(var(--u)*6)}
.alinks{flex:none;display:flex;justify-content:center;gap:calc(var(--u)*22)}
.alinks button{display:flex;align-items:center;gap:calc(var(--u)*4);height:calc(var(--u)*34);font-size:calc(var(--u)*13.5);font-weight:var(--w7,700);color:var(--soft)}
.alinks svg{width:calc(var(--u)*15);height:calc(var(--u)*15);fill:none;stroke:var(--muted);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.hstrip{flex:none;display:flex;align-items:center;gap:calc(var(--u)*10);padding:calc(var(--u)*8) calc(var(--u)*8) calc(var(--u)*8) calc(var(--u)*14);border-radius:calc(var(--u)*22);background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}
.hstrip i{flex:none;width:calc(var(--u)*7);height:calc(var(--u)*7);border-radius:50%;background:var(--pink);box-shadow:0 0 0 calc(var(--u)*3) rgba(255,78,193,.22)}
.hstrip span{flex:1;min-width:0;font-size:calc(var(--u)*13.5);font-weight:var(--w7,700)}
.hstrip button{flex:none;height:calc(var(--u)*32);padding:0 calc(var(--u)*14);border-radius:calc(var(--u)*16);background:#fff;color:#0e1019;font-size:calc(var(--u)*12.5);font-weight:var(--w8,800)}
.htit{flex:none;display:flex;align-items:baseline;justify-content:space-between;gap:calc(var(--u)*10);padding:0 calc(var(--u)*2)}
.htit b{font-size:calc(var(--u)*21);font-weight:var(--w8,800);letter-spacing:.03em;text-transform:uppercase}
.htit span{font-size:calc(var(--u)*13);font-weight:var(--w6,600);color:var(--muted)}
.hcar{flex:1;min-height:0;display:flex;gap:calc(var(--u)*10);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.hcar::-webkit-scrollbar{display:none}
.hcard{position:relative;flex:none;width:86%;height:100%;scroll-snap-align:center;border-radius:calc(var(--u)*28);overflow:hidden;background:var(--ink);text-align:left;
  box-shadow:0 0 0 calc(var(--u)*1.6) rgba(255,215,0,.6),0 calc(var(--u)*14) calc(var(--u)*30) calc(var(--u)*-14) rgba(255,215,0,.3)}
.hcard>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 22%}
.hcard::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(14,16,25,0) 40%,rgba(4,4,8,.7) 70%,rgba(2,2,6,.96));pointer-events:none}
.hb3{position:absolute;z-index:1;left:calc(var(--u)*18);right:calc(var(--u)*18);bottom:calc(var(--u)*18);display:flex;flex-direction:column;gap:calc(var(--u)*5)}
.hb3>small{font-size:calc(var(--u)*11.5);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.hb3>b{font-size:calc(var(--u)*30);font-weight:var(--w8,800);line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb3>span{font-size:calc(var(--u)*13.5);font-weight:var(--w6,600);color:var(--soft)}
.hb3 .prize{margin-top:calc(var(--u)*6);flex:none}
.hdots{flex:none;display:flex;justify-content:center;gap:calc(var(--u)*6)}
.hdots i{width:calc(var(--u)*6);height:calc(var(--u)*6);border-radius:50%;background:rgba(255,255,255,.25);transition:background .2s,width .2s}
.hdots i.on{width:calc(var(--u)*18);border-radius:calc(var(--u)*3);background:#fff}

/* voting is open */
[hidden]{display:none!important}
.card.live .ach{align-items:flex-end}
.lup,.lvote{height:calc(var(--u)*50);border-radius:calc(var(--u)*25);font-size:calc(var(--u)*15);font-weight:var(--w8,800);display:flex;align-items:center;justify-content:center;gap:calc(var(--u)*7);white-space:nowrap;transition:transform .12s,background .2s}
.lup:active,.lvote:active{transform:scale(.96)}
.lup,.lvote.on{color:#fff;background:rgba(14,16,25,.55);-webkit-backdrop-filter:blur(calc(var(--u)*9));backdrop-filter:blur(calc(var(--u)*9));box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.lup{flex:none;width:calc(var(--u)*50)}
.lup svg{width:calc(var(--u)*21);height:calc(var(--u)*21);fill:none;stroke:var(--lime);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.lvote{flex:1;background:#fff;color:#0e1019}
.lvote svg{width:calc(var(--u)*18);height:calc(var(--u)*18);fill:var(--pink)}
.lvote.on svg{fill:none;stroke:var(--pink);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.th .bd{position:absolute;z-index:3;top:calc(var(--u)*6);width:calc(var(--u)*18);height:calc(var(--u)*18);border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 calc(var(--u)*1.7) rgba(14,16,25,.6)}
.th .bd svg{width:calc(var(--u)*10);height:calc(var(--u)*10)}
.th .up{right:calc(var(--u)*6);background:var(--lime)}
.th .up svg{fill:none;stroke:#0e1019;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.th .me{left:calc(var(--u)*6);background:var(--pink)}
.th .me svg{fill:#fff}
.acard{display:flex;align-items:center;gap:calc(var(--u)*14);width:100%;text-align:left}
.acov{position:relative;flex:none;width:calc(var(--u)*64);height:calc(var(--u)*82);border-radius:calc(var(--u)*14);overflow:hidden;background:var(--slate)}
.acov img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.atx{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*3)}
.atx small{display:flex;align-items:center;gap:calc(var(--u)*6);font-size:calc(var(--u)*10.5);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--pink)}
.atx small i{width:calc(var(--u)*7);height:calc(var(--u)*7);border-radius:50%;background:var(--pink);box-shadow:0 0 0 calc(var(--u)*3) rgba(255,78,193,.22)}
.atx b{font-size:calc(var(--u)*18);font-weight:var(--w8,800)}
.atx span{font-size:calc(var(--u)*13);font-weight:var(--w6,600);color:var(--muted);font-variant-numeric:tabular-nums}
.atx em{font-style:normal;font-size:calc(var(--u)*13);font-weight:var(--w7,700);font-variant-numeric:tabular-nums}
.lead3{display:flex;flex-direction:column;gap:calc(var(--u)*4);padding-top:calc(var(--u)*12);border-top:1px solid var(--line)}
.lead3>small{margin-bottom:calc(var(--u)*4);font-size:calc(var(--u)*11);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.lr{display:flex;align-items:center;gap:calc(var(--u)*10);width:100%;padding:calc(var(--u)*4) 0;text-align:left}
.lr .n{flex:none;width:calc(var(--u)*18);font-size:calc(var(--u)*17);font-weight:var(--w8,800);color:var(--mc);text-align:center;font-variant-numeric:tabular-nums}
.lr img{flex:none;width:calc(var(--u)*34);height:calc(var(--u)*34);border-radius:50%;object-fit:cover;background:var(--slate)}
.lr b{flex:1;min-width:0;font-size:calc(var(--u)*14.5);font-weight:var(--w7,700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lr span{flex:none;font-size:calc(var(--u)*13);font-weight:var(--w6,600);color:var(--muted);font-variant-numeric:tabular-nums}
.btn svg.hrt{fill:var(--pink);stroke:none}
.btn svg.xtr{fill:#ffc83d;stroke:none}
.steps li.now i{background:#fff;color:#0e1019;box-shadow:none}
.steps b em{margin-left:calc(var(--u)*8);font-style:normal;font-size:calc(var(--u)*10.5);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--pink)}
.crow .tx small.lv{display:flex;align-items:center;gap:calc(var(--u)*6)}
.crow .tx small.lv i{width:calc(var(--u)*6);height:calc(var(--u)*6);border-radius:50%;background:var(--pink);box-shadow:0 0 0 calc(var(--u)*3) rgba(255,78,193,.2)}
.crow .tx em.ll{color:var(--soft);font-variant-numeric:tabular-nums}
.opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--u)*6)}
.opt{padding:calc(var(--u)*11) calc(var(--u)*6);border-radius:calc(var(--u)*16);background:var(--ink);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*3);transition:background .15s,box-shadow .15s}
.opt b{font-size:calc(var(--u)*17);font-weight:var(--w8,800);white-space:nowrap;font-variant-numeric:tabular-nums}
.opt span{font-size:calc(var(--u)*12);font-weight:var(--w6,600);color:var(--muted);white-space:nowrap}
.opt[aria-pressed="true"]{background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 calc(var(--u)*1.6) #fff}
.opt[aria-pressed="true"] span{color:var(--lime)}
.bss{margin-top:calc(var(--u)*-6);text-align:center;text-wrap:balance}
/* медиа участницы: фото листаются свайпом или тапом по краям, последним — видео-визитка */
.card.live{touch-action:pan-y}
.vchip{position:absolute;z-index:2;left:calc(var(--u)*14);top:calc(var(--u)*24);display:flex;align-items:center;gap:calc(var(--u)*6);height:calc(var(--u)*32);padding:0 calc(var(--u)*13) 0 calc(var(--u)*11);border-radius:calc(var(--u)*16);
  background:rgba(14,16,25,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
  font-size:calc(var(--u)*12.5);font-weight:var(--w8,800);color:#fff;white-space:nowrap;font-variant-numeric:tabular-nums}
.vchip svg{width:calc(var(--u)*11);height:calc(var(--u)*11);fill:#fff}
.vplay{position:absolute;z-index:2;left:50%;top:42%;width:calc(var(--u)*70);height:calc(var(--u)*70);margin:calc(var(--u)*-35) 0 0 calc(var(--u)*-35);border-radius:50%;display:grid;place-items:center;
  background:rgba(14,16,25,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);transition:opacity .2s,transform .2s}
.vplay svg{width:calc(var(--u)*28);height:calc(var(--u)*28);fill:#fff;margin-left:calc(var(--u)*4)}
.card.playing .vplay{opacity:0;transform:scale(.88);pointer-events:none}
.seg i{position:relative;overflow:hidden}
.seg i b{position:absolute;left:0;top:0;bottom:0;width:0;background:#fff}
.seg i.v.on{background:rgba(255,255,255,.32)}

/* sponsors */
.spl{flex:none;display:flex;flex-direction:column;gap:calc(var(--u)*8)}
.sp{display:flex;align-items:center;gap:calc(var(--u)*12);padding:calc(var(--u)*10) calc(var(--u)*14);border-radius:calc(var(--u)*20);background:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.sp .n{flex:none;width:calc(var(--u)*24);font-size:calc(var(--u)*15);font-weight:var(--w8,800);color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}
.sp .a{flex:none;width:calc(var(--u)*40);height:calc(var(--u)*40);border-radius:50%;background:var(--slate);display:grid;place-items:center;font-size:calc(var(--u)*16);font-weight:var(--w8,800)}
.sp .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*2)}
.sp .t b{font-size:calc(var(--u)*15.5);font-weight:var(--w8,800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp .t span{font-size:calc(var(--u)*12.5);font-weight:var(--w6,600);color:var(--muted)}
.sp .m{font-size:calc(var(--u)*15.5);font-weight:var(--w8,800);color:var(--gold);white-space:nowrap;font-variant-numeric:tabular-nums}

/* sponsors: one quiet list, medal-coloured place numbers for the top three */
.srows{flex:none;border-radius:calc(var(--u)*22);background:var(--ink);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.srow{display:flex;align-items:center;gap:calc(var(--u)*12);padding:calc(var(--u)*12) calc(var(--u)*14)}
.srow+.srow{border-top:1px solid var(--line)}
.srow .rk{flex:none;width:calc(var(--u)*28);font-size:calc(var(--u)*22);font-weight:var(--w8,800);line-height:1;text-align:center;color:var(--mc,var(--muted));font-variant-numeric:tabular-nums}
.srow .a{flex:none;width:calc(var(--u)*40);height:calc(var(--u)*40);border-radius:50%;display:grid;place-items:center;background:var(--slate);font-size:calc(var(--u)*16);font-weight:var(--w8,800)}
.srow .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*2)}
.srow .t b{font-size:calc(var(--u)*15.5);font-weight:var(--w8,800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srow .t span{font-size:calc(var(--u)*12.5);font-weight:var(--w6,600);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srow .mr{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:calc(var(--u)*5)}
.spx{display:flex;gap:calc(var(--u)*7)}
.spx i{display:flex;align-items:center;gap:calc(var(--u)*3);font-style:normal;font-size:calc(var(--u)*11.5);font-weight:var(--w8,800);color:var(--c);font-variant-numeric:tabular-nums}
.spx svg{width:calc(var(--u)*14);height:calc(var(--u)*14);fill:var(--c)}
.srow .m{font-size:calc(var(--u)*15.5);font-weight:var(--w8,800);color:var(--gold);white-space:nowrap;font-variant-numeric:tabular-nums}

/* top three sponsors: a podium 2 — 1 — 3 in one dark block, metallic rings instead of coloured outlines */
.podium{flex:none;display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:end;gap:calc(var(--u)*8);padding:calc(var(--u)*18) calc(var(--u)*10) calc(var(--u)*16);border-radius:calc(var(--u)*24);
  background:radial-gradient(80% 70% at 50% 0%,rgba(255,215,0,.11),rgba(255,215,0,0) 70%),var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.pod{display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*4);min-width:0;text-align:center}
.pod .crw{width:calc(var(--u)*24);height:calc(var(--u)*24);margin-bottom:calc(var(--u)*2);fill:var(--gold);filter:drop-shadow(0 calc(var(--u)*2) calc(var(--u)*6) rgba(255,215,0,.45))}
.pod .av{position:relative;width:calc(var(--u)*62);height:calc(var(--u)*62);margin-bottom:calc(var(--u)*10);border-radius:50%;padding:calc(var(--u)*2.5);background:var(--mg)}
.pod .av span{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;background:var(--slate);box-shadow:0 0 0 calc(var(--u)*2) var(--ink);font-size:calc(var(--u)*22);font-weight:var(--w8,800)}
.pod .pl{position:absolute;left:50%;bottom:calc(var(--u)*-9);transform:translateX(-50%);min-width:calc(var(--u)*22);height:calc(var(--u)*22);padding:0 calc(var(--u)*5);border-radius:calc(var(--u)*11);
  display:grid;place-items:center;background:var(--mg);box-shadow:0 0 0 calc(var(--u)*2.5) var(--ink);color:#14161f;font-style:normal;font-size:calc(var(--u)*12);font-weight:var(--w8,800)}
.pod.first .av{width:calc(var(--u)*84);height:calc(var(--u)*84)}
.pod.first .av span{font-size:calc(var(--u)*30)}
.pod b{max-width:100%;font-size:calc(var(--u)*14.5);font-weight:var(--w8,800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pod small{max-width:100%;font-size:calc(var(--u)*11.5);font-weight:var(--w6,600);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pod em{margin-top:calc(var(--u)*2);font-style:normal;font-size:calc(var(--u)*15);font-weight:var(--w8,800);color:var(--gold);white-space:nowrap;font-variant-numeric:tabular-nums}
.pod.first em{font-size:calc(var(--u)*17)}

/* sponsor sheet */
.dim{position:absolute;inset:0;z-index:8;border-radius:calc(var(--u)*28);background:rgba(14,16,25,.65);opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}
.dim.on{opacity:1;visibility:visible;transition:opacity .25s}
.sheet{position:absolute;left:0;right:0;bottom:0;z-index:9;max-height:100%;overflow-y:auto;scrollbar-width:none;display:flex;flex-direction:column;gap:calc(var(--u)*14);padding:calc(var(--u)*20) calc(var(--u)*16) calc(var(--u)*10);
  border-radius:calc(var(--u)*28);background:#151826;box-shadow:inset 0 0 0 1px var(--line),0 -20px 40px rgba(0,0,0,.5);transform:translateY(105%);visibility:hidden;transition:transform .36s cubic-bezier(.2,.8,.2,1),visibility 0s .36s}
.sheet.on{transform:none;visibility:visible;transition:transform .36s cubic-bezier(.2,.8,.2,1)}
.sheet::-webkit-scrollbar{display:none}
.sheet h2{margin:0;font-size:calc(var(--u)*18);font-weight:var(--w8,800);letter-spacing:.03em;text-transform:uppercase;text-align:center}
.perks{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:calc(var(--u)*9)}
.perks li{display:flex;align-items:center;gap:calc(var(--u)*10);font-size:calc(var(--u)*13.5);font-weight:var(--w6,600);line-height:1.35;color:var(--soft)}
.perks i{flex:none;width:calc(var(--u)*28);height:calc(var(--u)*28);border-radius:50%;display:grid;place-items:center;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}
.perks i svg{width:calc(var(--u)*14);height:calc(var(--u)*14);fill:none;stroke:var(--c);stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.amts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:calc(var(--u)*6)}
.amt{height:calc(var(--u)*44);border-radius:calc(var(--u)*14);background:var(--ink);box-shadow:inset 0 0 0 1px var(--line);font-size:calc(var(--u)*14);font-weight:var(--w8,800);white-space:nowrap;font-variant-numeric:tabular-nums}
.amt[aria-pressed="true"]{background:rgba(255,215,0,.1);box-shadow:inset 0 0 0 calc(var(--u)*1.6) var(--gold);color:var(--gold)}
.field{display:flex;flex-direction:column;gap:calc(var(--u)*6)}
.field>label,.field>.lbl{font-size:calc(var(--u)*12.5);font-weight:var(--w7,700);color:var(--muted)}
.field input{width:100%;height:calc(var(--u)*48);padding:0 calc(var(--u)*16);border:0;border-radius:calc(var(--u)*24);background:var(--slate);color:var(--fg);font:inherit;font-size:max(16px,calc(var(--u)*15));font-weight:var(--w6,600);font-variant-numeric:tabular-nums}
.field input::placeholder{color:#8a8ea0}
.field input:disabled{opacity:.6}
.field input.bad{box-shadow:inset 0 0 0 calc(var(--u)*1.6) var(--pink)}
.field small{font-size:calc(var(--u)*12);font-weight:var(--w5,500);line-height:1.35;color:var(--muted)}
.cancel{flex:none;height:calc(var(--u)*40);font-size:calc(var(--u)*14.5);font-weight:var(--w7,700);color:var(--muted)}

/* registration */
.closed{flex:none;display:flex;flex-direction:column;align-items:center;text-align:center;gap:calc(var(--u)*8);padding:calc(var(--u)*22) calc(var(--u)*18)}
.closed .ic{width:calc(var(--u)*60);height:calc(var(--u)*60);margin-bottom:calc(var(--u)*4);border-radius:50%;display:grid;place-items:center;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}
.closed .ic svg{width:calc(var(--u)*28);height:calc(var(--u)*28);fill:none;stroke:var(--lime);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.closed h2{margin:0;font-size:calc(var(--u)*21);font-weight:var(--w8,800);text-wrap:balance}
.closed p{margin:0 0 calc(var(--u)*8);font-size:calc(var(--u)*14);font-weight:var(--w5,500);line-height:1.45;color:var(--soft);text-wrap:balance}
.closed p b{color:#fff}
.media{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:calc(var(--u)*8)}
.slot{aspect-ratio:3/4;max-width:100%;border-radius:calc(var(--u)*16);background:rgba(255,255,255,.03);border:calc(var(--u)*1.5) dashed rgba(255,255,255,.22);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--u)*6);color:var(--muted);font-size:calc(var(--u)*11.5);font-weight:var(--w7,700)}
.slot svg{width:calc(var(--u)*20);height:calc(var(--u)*20);fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.slot.vid{border-color:rgba(145,255,78,.45);color:var(--lime)}
.form{display:flex;flex-direction:column;gap:calc(var(--u)*16)}
.check{display:flex;align-items:center;gap:calc(var(--u)*10);font-size:calc(var(--u)*14);font-weight:var(--w6,600);color:var(--soft);text-align:left}
.check i{flex:none;width:calc(var(--u)*24);height:calc(var(--u)*24);border-radius:calc(var(--u)*7);box-shadow:inset 0 0 0 calc(var(--u)*1.6) rgba(255,255,255,.35);display:grid;place-items:center}
.check i svg{width:calc(var(--u)*14);height:calc(var(--u)*14);fill:none;stroke:#0e1019;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.check[aria-checked="true"] i{background:var(--lime);box-shadow:none}
.check[aria-checked="true"] i svg{opacity:1}

/* contest rules in plain Russian: numbered steps of how a contest goes */
.rsec{flex:none;display:flex;gap:calc(var(--u)*12);padding:calc(var(--u)*14) calc(var(--u)*16)}
.rsec .rn{flex:none;width:calc(var(--u)*30);height:calc(var(--u)*30);border-radius:50%;display:grid;place-items:center;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);font-size:calc(var(--u)*14);font-weight:var(--w8,800);font-variant-numeric:tabular-nums}
.rsec .rb{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*8)}
.rsec h3{margin:calc(var(--u)*4) 0 0;font-size:calc(var(--u)*16.5);font-weight:var(--w8,800);line-height:1.2}
.rsec ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:calc(var(--u)*7)}
.rsec li{position:relative;padding-left:calc(var(--u)*14);font-size:calc(var(--u)*14);font-weight:var(--w5,500);line-height:1.45;color:var(--soft)}
.rsec li::before{content:"";position:absolute;left:0;top:calc(var(--u)*8);width:calc(var(--u)*5);height:calc(var(--u)*5);border-radius:50%;background:var(--muted)}
.rsec li b{color:#fff;font-weight:var(--w7,700)}
.stt{width:100%;border-collapse:collapse;font-size:calc(var(--u)*13);font-variant-numeric:tabular-nums}
.stt th,.stt td{padding:calc(var(--u)*6) calc(var(--u)*4);text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
.stt th:first-child,.stt td:first-child{text-align:left;color:var(--soft)}
.stt thead th{font-size:calc(var(--u)*11);font-weight:var(--w8,800);letter-spacing:.06em;text-transform:uppercase}
.stt thead th:nth-child(2){color:#e0a064}.stt thead th:nth-child(3){color:var(--silver)}.stt thead th:nth-child(4){color:var(--gold)}
.docs{flex:none;display:flex;flex-direction:column;gap:calc(var(--u)*4);padding:calc(var(--u)*6) calc(var(--u)*2) 0}
.docs h3{margin:0 0 calc(var(--u)*4);font-size:calc(var(--u)*11.5);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.docs button{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*10);height:calc(var(--u)*38);font-size:calc(var(--u)*13.5);font-weight:var(--w6,600);color:var(--soft);text-align:left}
.docs button span small{color:var(--muted);font-weight:var(--w5,500)}
.docs button svg{flex:none;width:calc(var(--u)*15);height:calc(var(--u)*15);fill:none;stroke:var(--muted);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* legal documents (opened from the bottom of the rules page) */
.seg2{flex:none;display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--u)*4);padding:calc(var(--u)*4);border-radius:calc(var(--u)*22);background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}
.seg2 button{height:calc(var(--u)*36);border-radius:calc(var(--u)*18);font-size:calc(var(--u)*13.5);font-weight:var(--w7,700);color:var(--muted)}
.seg2 button[aria-selected="true"]{background:rgba(255,255,255,.12);color:#fff}
.dintro{flex:none;font-size:calc(var(--u)*13.5);line-height:1.5;color:var(--soft)}
.acc{flex:none;display:flex;flex-direction:column;gap:calc(var(--u)*8)}
.ai{border-radius:calc(var(--u)*18);background:var(--ink);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.ai>button{width:100%;display:flex;align-items:center;gap:calc(var(--u)*10);padding:calc(var(--u)*14) calc(var(--u)*16);text-align:left;font-size:calc(var(--u)*15);font-weight:var(--w7,700)}
.ai>button span{flex:1;min-width:0}
.ai>button svg{flex:none;width:calc(var(--u)*16);height:calc(var(--u)*16);fill:none;stroke:var(--muted);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.ai.open>button svg{transform:rotate(180deg)}
.ab{display:none;padding:0 calc(var(--u)*16) calc(var(--u)*14);font-size:calc(var(--u)*13.5);line-height:1.55;color:var(--soft);overflow-wrap:anywhere}
.ai.open .ab{display:block}
.ab p,.dintro p{margin:0 0 calc(var(--u)*10)}
.ab ul{margin:0 0 calc(var(--u)*10);padding-left:calc(var(--u)*18)}
.ab li{margin:calc(var(--u)*4) 0}
.ab a,.dintro a{color:var(--pink)}
.ab strong,.dintro strong{color:#fff}
.ab h3{margin:calc(var(--u)*12) 0 calc(var(--u)*6);font-size:calc(var(--u)*13.5);color:#fff}
.ab .tw{overflow-x:auto;margin-bottom:calc(var(--u)*10)}
.ab table{width:100%;border-collapse:collapse;font-size:calc(var(--u)*12.5)}
.ab td,.ab th{padding:calc(var(--u)*6);border-bottom:1px solid var(--line);vertical-align:top;text-align:left}

/* tab bar in the dating app's manner: a glass pill, five equal items, the active one sits on a soft plate with a gradient icon */
.tb{position:relative;flex:none;width:var(--w);height:calc(var(--u)*60);margin-top:calc(var(--u)*16);display:flex;gap:calc(var(--u)*2);padding:calc(var(--u)*4);border-radius:calc(var(--u)*30);
  background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.ti{position:relative;flex:1;min-width:0;border-radius:calc(var(--u)*26);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--u)*3);
  color:var(--muted);transition:background .2s,color .2s}
.ti:active{background:rgba(255,255,255,.05)}
.ti svg{width:calc(var(--u)*22);height:calc(var(--u)*22);fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ti small{font-size:calc(var(--u)*10.5);font-weight:var(--w6,600);line-height:calc(var(--u)*12);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ti.on{background:rgba(255,255,255,.1);color:var(--fg)}
.ti.on svg{stroke:url(#tbg)}
.ti.on small{font-weight:var(--w7,700)}
/* the contest page is the main destination: a raised gradient disc with the crown, labelled under it */
.ti.main{justify-content:flex-end;padding-bottom:calc(var(--u)*5);color:var(--fg)}
.ti.main:active{background:none}
.ti.main .disc{position:absolute;left:50%;top:calc(var(--u)*-20);width:calc(var(--u)*52);height:calc(var(--u)*52);margin-left:calc(var(--u)*-26);border-radius:50%;display:grid;place-items:center;
  background:var(--grad);box-shadow:0 0 0 calc(var(--u)*5) var(--bg),0 calc(var(--u)*10) calc(var(--u)*24) calc(var(--u)*-6) rgba(255,78,193,.8);transition:transform .12s}
.ti.main:active .disc{transform:scale(.94)}
.ti.main .disc svg{width:calc(var(--u)*26);height:calc(var(--u)*26);fill:#fff;stroke:none}
.ti.main small{font-weight:var(--w8,800)}
.ti.main.on{background:none}
.ti.main.on .disc{box-shadow:0 0 0 calc(var(--u)*5) var(--bg),0 0 0 calc(var(--u)*6.5) rgba(255,255,255,.9),0 calc(var(--u)*10) calc(var(--u)*24) calc(var(--u)*-6) rgba(255,78,193,.8)}

.toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 56px);transform:translate(-50%,-8px);max-width:calc(100vw - 32px);padding:10px 16px;border-radius:18px;color:#fff;background:rgba(21,24,38,.94);
  box-shadow:inset 0 0 0 1px var(--glass-line),0 10px 30px rgba(0,0,0,.45);font-size:13.5px;font-weight:var(--w6,600);line-height:1.35;text-align:center;text-wrap:balance;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:30}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){.ph,.sc-t,.toast,.vbar i,.sheet,.sheet.on,.dim,.dim.on{transition-duration:.01s;transition-delay:0s}.view{animation:none}}
/* суммы: спонсорские взносы — белые; призы — мягкое «шампанское» золото; насыщенное золото — только награды (место, звёзды) */
:root{--champ:#e8c98a}
.srow .m{color:#fff}
.prize{color:var(--champ);box-shadow:inset 0 0 0 1px rgba(232,201,138,.3)}
.prize svg{fill:var(--champ)}
.prize b{color:var(--champ)}
.prize small{color:rgba(232,201,138,.8)}
.nums div:last-child b,.crow .tx em i,.prow .pa,.ptot b,#cPrizes .pd b,.ptop b,.atx em,.win .wp{color:var(--champ)}
/* прокрутка: когда страницу прокрутили, верх списка плавно растворяется под шапкой */
.scroll.sc{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 calc(var(--u)*30),#000 calc(100% - var(--u)*22),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 calc(var(--u)*30),#000 calc(100% - var(--u)*22),transparent 100%)}
.closed p:last-child{margin-bottom:0}
/* меню из трёх пунктов: плашка активного пункта по размеру содержимого, а не на всю треть */
.ti.on,.ti:active{background:none}
.ti:not(.main)::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:calc(var(--u)*104);margin-left:calc(var(--u)*-52);border-radius:calc(var(--u)*26);background:rgba(255,255,255,0);transition:background .2s}
.ti.on:not(.main)::before{background:rgba(255,255,255,.1)}
.ti:not(.main):active::before{background:rgba(255,255,255,.05)}
.ti:not(.main)>svg,.ti:not(.main)>small{position:relative}
.panel.links{display:flex;flex-direction:column}
.links .rowlink+.rowlink{margin-top:calc(var(--u)*12);padding-top:calc(var(--u)*12);border-top:1px solid var(--line)}
.rlnk{align-self:flex-start;margin-top:calc(var(--u)*-6);font-size:calc(var(--u)*13.5);font-weight:var(--w7,700);color:var(--soft);text-decoration:underline;text-underline-offset:3px}

/* open registration state */
.acard{display:flex;align-items:center;gap:calc(var(--u)*14);width:100%;text-align:left}
.acov{position:relative;flex:none;width:calc(var(--u)*64);height:calc(var(--u)*82);border-radius:calc(var(--u)*14);overflow:hidden;background:var(--slate)}
.acov img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.atx{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*3)}
.atx small,.ropen{display:flex;align-items:center;gap:calc(var(--u)*6);font-size:calc(var(--u)*10.5);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--lime)}
.atx small i,.ropen i{width:calc(var(--u)*7);height:calc(var(--u)*7);border-radius:50%;background:var(--lime);box-shadow:0 0 0 calc(var(--u)*3) rgba(145,255,78,.2)}
.atx b{font-size:calc(var(--u)*18);font-weight:var(--w8,800)}
.atx span{font-size:calc(var(--u)*13);font-weight:var(--w6,600);color:var(--muted)}
.atx em{font-style:normal;font-size:calc(var(--u)*13);font-weight:var(--w7,700);color:var(--gold);font-variant-numeric:tabular-nums}
.rtitle{margin:0;font-size:calc(var(--u)*24);font-weight:var(--w8,800)}
.rcount{display:flex;align-items:baseline;gap:calc(var(--u)*10)}
.rcount b{font-size:calc(var(--u)*26);font-weight:var(--w8,800);font-variant-numeric:tabular-nums}
.rcount span,.rplaces span{font-size:calc(var(--u)*13);font-weight:var(--w6,600);color:var(--muted)}
.rplaces{display:flex;flex-direction:column;gap:calc(var(--u)*6)}
.rplaces .vbar{width:100%;margin:0}


/* ---------- новый сайт: то, чего не было в прототипе ---------- */
.page{padding-top:calc(10px + var(--app-top-inset,0px))}
.card video.ph{object-fit:cover;background:#000}
.lline .hid{color:var(--muted);font-weight:var(--w6,600)}

/* заставка при запуске (14.11): фото из мозаики, корона, название, бегущая полоска; ошибки — текстом */
.boot{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;overflow:hidden;
  background:radial-gradient(60% 40% at 12% 8%,rgba(255,78,193,.2),transparent 70%),radial-gradient(60% 45% at 92% 88%,rgba(203,78,255,.18),transparent 70%),var(--bg);
  transition:opacity .45s ease}
.boot[hidden]{display:none}
.boot.gone{opacity:0;pointer-events:none}
.bmos{--bh:min(40vh,300px,calc((100vw - 48px) / 1.6));height:var(--bh);display:flex;align-items:center;justify-content:center;margin-bottom:-40px;
  -webkit-mask-image:linear-gradient(#000 50%,transparent 96%);mask-image:linear-gradient(#000 50%,transparent 96%)}
.bmos img{position:relative;display:block;height:72%;aspect-ratio:3/4;object-fit:cover;border-radius:22px;filter:brightness(.72);animation:bin 1s cubic-bezier(.2,.8,.2,1) both}
.bmos img:nth-child(1){margin-right:calc(var(--bh) * -.16);rotate:-6deg;z-index:1}
.bmos img:nth-child(2){height:100%;z-index:2;filter:none;animation-delay:.12s}
.bmos img:nth-child(3){margin-left:calc(var(--bh) * -.16);rotate:6deg;z-index:1;animation-delay:.24s}
@keyframes bin{from{opacity:0;transform:translateY(16px) scale(.96)}}
.btx{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.bdisc{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin-bottom:12px;background:linear-gradient(135deg,#cb4eff,#ff4ec1);
  box-shadow:0 10px 30px rgba(255,78,193,.35);animation:bpulse 2.4s ease-in-out infinite}
.bdisc svg{width:28px;height:28px;fill:#fff}
@keyframes bpulse{50%{transform:scale(1.06);box-shadow:0 12px 40px rgba(255,78,193,.5)}}
.btx h1{margin:0;font-size:22px;font-weight:var(--w5,500);letter-spacing:.2em;text-transform:uppercase;color:#fff}
.btx p{margin:0;max-width:300px;text-wrap:balance;font-size:14px;color:var(--muted);opacity:0;transition:opacity .35s ease}   /* 15.11: проявляется, когда подпись известна */
.boot.tagok .btx p{opacity:1}
.btx p b{color:#fff;font-weight:var(--w6,600)}
.bline{position:relative;display:block;width:120px;height:2px;margin-top:24px;border-radius:2px;background:rgba(255,255,255,.1);overflow:hidden}
.bline i{position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(90deg,transparent,#ff4ec1,#cb4eff,transparent);animation:bslide 1.3s ease-in-out infinite}
@keyframes bslide{from{transform:translateX(-100%)}to{transform:translateX(250%)}}
.bmsg{max-width:300px;margin-top:20px;font-size:14.5px;line-height:1.4;color:var(--soft)}
.bmsg b{display:block;font-size:18px;color:#fff;margin-bottom:6px}
.boot.err .bline,.boot.err .bdisc{animation:none}
.boot.err .bline{display:none}
@keyframes spin{to{transform:rotate(360deg)}}

/* карточки действующих конкурсов на главной */
.acts2{display:flex;flex-direction:column;gap:12px}
.atx small.vote{color:var(--pink)}
.atx small.vote i{background:var(--pink);box-shadow:0 0 0 calc(var(--u)*3) rgba(255,78,193,.22)}
.atx small.open{color:var(--lime)}
.atx small.open i{background:var(--lime);box-shadow:0 0 0 calc(var(--u)*3) rgba(145,255,78,.2)}
.acov .ph0,.crow .ph2 .ph0{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(160deg,#2e3346,#1a1d2b)}
.acov .ph0 svg,.crow .ph2 .ph0 svg{width:calc(var(--u)*24);height:calc(var(--u)*24);fill:rgba(255,255,255,.25)}
.steps li.now i{background:#fff;color:#0e1019;box-shadow:none}
.steps b em{margin-left:calc(var(--u)*8);font-style:normal;font-size:calc(var(--u)*10.5);font-weight:var(--w8,800);letter-spacing:.1em;text-transform:uppercase;color:var(--pink)}

/* регистрация: состояние заявки, загрузка файлов */
.rstate{flex:none;display:flex;flex-direction:column;gap:calc(var(--u)*8)}
.rstate h2{margin:0;font-size:calc(var(--u)*21);font-weight:var(--w8,800)}
.rstate p{margin:0;font-size:calc(var(--u)*14);font-weight:var(--w5,500);line-height:1.45;color:var(--soft)}
.rstate .ok{color:var(--lime)}
.rstate .bad{color:var(--pink)}
.slot{position:relative;overflow:hidden}
.slot img,.slot video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slot.filled{border-style:solid;border-color:rgba(255,255,255,.12)}
.slot .vb{position:absolute;left:calc(var(--u)*4);bottom:calc(var(--u)*4);width:calc(var(--u)*22);height:calc(var(--u)*22);border-radius:50%;display:grid;place-items:center;background:rgba(14,16,25,.7)}   /* 15.11: значок «видео» на кадре */
.slot .vb svg{width:calc(var(--u)*11);height:calc(var(--u)*11);fill:#fff;stroke:none}
.slot .pct{position:absolute;inset:0;display:grid;place-items:center;background:rgba(14,16,25,.65);color:#fff;font-size:calc(var(--u)*13);font-weight:var(--w8,800)}
.slot .x2{position:absolute;right:calc(var(--u)*4);top:calc(var(--u)*4);width:calc(var(--u)*22);height:calc(var(--u)*22);border-radius:50%;display:grid;place-items:center;background:rgba(14,16,25,.7);color:#fff;font-size:calc(var(--u)*14);line-height:1}
.field small.err{color:var(--pink);font-weight:var(--w6,600)}
.btn[disabled]{opacity:.45;pointer-events:none}

/* звезда спонсора: кнопка на карточке и выбор звезды */
.lstar{flex:none;width:calc(var(--u)*50);height:calc(var(--u)*50);border-radius:calc(var(--u)*25);display:grid;place-items:center;background:rgba(14,16,25,.55);-webkit-backdrop-filter:blur(calc(var(--u)*9));backdrop-filter:blur(calc(var(--u)*9));box-shadow:inset 0 0 0 1px rgba(255,215,0,.35)}
.lstar svg{width:calc(var(--u)*24);height:calc(var(--u)*24);fill:var(--gold)}
.stopts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--u)*8)}
.stopt{display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*6);padding:calc(var(--u)*14) calc(var(--u)*6);border-radius:calc(var(--u)*18);background:var(--ink);box-shadow:inset 0 0 0 1px var(--line);font-size:calc(var(--u)*13);font-weight:var(--w7,700);color:var(--soft)}
.stopt svg{width:calc(var(--u)*34);height:calc(var(--u)*34);fill:var(--c)}
.stopt[disabled]{opacity:.3}
.stopt[aria-pressed="true"]{background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 calc(var(--u)*1.6) #fff;color:#fff}

/* пустые состояния */
.empty3{display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*8);padding:calc(var(--u)*30) calc(var(--u)*16);text-align:center;color:var(--muted);font-size:calc(var(--u)*14);font-weight:var(--w6,600)}

/* звёзды спонсора на полке: место для подарка — пунктир цвета звезды и «+» */
.ach button.give{border:calc(var(--u)*1.5) dashed var(--c);box-shadow:none}
.ach button.give:not(.on) svg{fill:var(--c);opacity:.45}
.ach button.give i{font-size:calc(var(--u)*14);line-height:1}
/* центральная кнопка «Конкурс» (v45): без белого кольца и тёмного «выреза», мягкая тень и тонкий светлый край; подпись на одной линии с соседними */
.ti.main{padding-bottom:calc(var(--u)*7.5);color:var(--muted)}
.ti.main small{font-weight:var(--w6,600)}
.ti.main.on{color:var(--fg)}
.ti.main .disc{top:calc(var(--u)*-18.5);width:calc(var(--u)*48);height:calc(var(--u)*48);margin-left:calc(var(--u)*-24);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 0 0 1px rgba(255,255,255,.16),0 calc(var(--u)*10) calc(var(--u)*20) calc(var(--u)*-10) rgba(203,78,255,.65)}
.ti.main.on .disc{box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 0 0 1px rgba(255,255,255,.28),0 calc(var(--u)*12) calc(var(--u)*24) calc(var(--u)*-8) rgba(255,78,193,.7)}
.ti.main .disc svg{width:calc(var(--u)*23);height:calc(var(--u)*23)}
/* меню огибает центральную кнопку (v46): в стеклянной плашке полукруглый вырез под кругом «Конкурс», по краю выреза — та же тонкая линия, что у рамки меню */
.tb{background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;isolation:isolate;--ny:calc(var(--u)*9.5);--nr:calc(var(--u)*29)}
.tb::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;
  background:radial-gradient(circle at 50% var(--ny),transparent var(--nr),rgba(255,255,255,.13) var(--nr),rgba(255,255,255,.13) calc(var(--nr) + 1px),transparent calc(var(--nr) + 1.5px)),rgba(255,255,255,.07);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  -webkit-mask-image:radial-gradient(circle at 50% var(--ny),transparent var(--nr),#000 calc(var(--nr) + .5px));
          mask-image:radial-gradient(circle at 50% var(--ny),transparent var(--nr),#000 calc(var(--nr) + .5px))}

/* счётчики у заголовков убраны (v48): голая цифра непонятна — число словами в строке под заголовком */
.lt b{display:none}

/* «Конкурс красоты» и «от приложения знакомств lalau» ближе друг к другу (v49) */
.ainfo h1{line-height:1}
.ainfo h1 + .ctn.org{margin-top:calc(var(--u)*-5)}
/* «Конкурс» выбрана — тонкое белое кольцо в вырезе меню, свечение, белая подпись; не выбрана — круг приглушён, без кольца (v50) */
.ti.main .disc{filter:saturate(.75) brightness(.8);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 0 0 1px rgba(255,255,255,.12);transition:filter .2s,box-shadow .2s}
.ti.main.on .disc{filter:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 0 0 calc(var(--u)*2.5) var(--bg),0 0 0 calc(var(--u)*3.7) rgba(255,255,255,.92),0 calc(var(--u)*12) calc(var(--u)*26) calc(var(--u)*-6) rgba(255,78,193,.85)}
.ti.main.on small{color:#fff;font-weight:var(--w7,700)}
/* мозаика (v52): как было — центр почти вровень с левой, низ растворяется; центральное фото короче (240u вместо 276u) — кончается между плашкой статуса и «Конкурс красоты» (v53);
   «Новый конкурс скоро» и «Конкурс красоты» подняты на фото (v51 «ступенька» владельцу не понравилась) */
.mcol.c span{height:calc(var(--u)*240)}
.ainfo{margin-top:calc(var(--u)*-84)}

/* уведомление о голосе — над кнопкой «Голосовать», а не сверху экрана (владелец 14.11) */
.toast.near{top:auto;transform:translate(-50%,8px)}
.toast.near.show{transform:translate(-50%,0)}
/* «Конкурсы в цифрах»: сумма призов шире остальных плиток — «291 000 ₽» не упирается в край (владелец 14.11, v54) */
.nums{grid-template-columns:minmax(0,.8fr) minmax(0,.95fr) minmax(0,1.35fr)}
.nums div{min-width:0}
.nums b.long{font-size:calc(var(--u)*20)}

/* итоги конкурса на главной (v55) */
.atx small.res{color:var(--gold)}
.atx small.res i{background:var(--gold);box-shadow:0 0 0 calc(var(--u)*3) rgba(255,215,0,.22)}

/* «Как это устроено» по шагам (владелец 14.11: «выделять каждую стадию пошагово»): линия между кружками; пройденный шаг — зелёная галочка
   и зелёная линия к следующему; текущий — белый кружок и «сейчас»; следующие, пока идёт конкурс, приглушены */
.steps li{position:relative}
.steps li:not(:last-child)::after{content:"";position:absolute;left:calc(var(--u)*14);top:calc(var(--u)*34);bottom:calc(var(--u)*-10);width:calc(var(--u)*2);border-radius:1px;background:var(--chip-line)}
.steps li.passed::after{background:rgba(145,255,78,.5)}
.steps li.passed i{background:rgba(145,255,78,.1);box-shadow:inset 0 0 0 1px rgba(145,255,78,.4)}
.steps li.passed i svg{width:calc(var(--u)*15);height:calc(var(--u)*15);fill:none;stroke:var(--lime);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.steps li.passed b{color:var(--soft)}
.steps.prog li:not(.now):not(.passed){opacity:.5}

/* призовой фонд собирают спонсоры (14.11): в карточке конкурса — фонд, спонсоры и «Пополнить»; без конкурсов — описание и «Стать спонсором» */
.fund2{display:flex;align-items:center;gap:calc(var(--u)*10);padding:calc(var(--u)*12) calc(var(--u)*14);border-radius:calc(var(--u)*18);background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}
.fund2 .ft{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*2)}
.fund2 small{font-size:calc(var(--u)*10.5);font-weight:var(--w7,700);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fund2 b{font-size:calc(var(--u)*19);font-weight:var(--w7,700);color:#e8c98a;white-space:nowrap}
.fund2 .fh{font-size:calc(var(--u)*12);color:var(--muted)}
.fsp{display:flex;align-items:center;gap:calc(var(--u)*4);min-width:0;font-size:calc(var(--u)*12.5);font-weight:var(--w6,600);color:var(--soft);text-align:left}
.fsp span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fsp svg{flex:none;width:calc(var(--u)*13);height:calc(var(--u)*13);fill:none;stroke:var(--muted);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.fsp.wide{justify-content:space-between;padding:calc(var(--u)*10) calc(var(--u)*14);border-radius:calc(var(--u)*16);background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}
.fadd{flex:none;display:flex;align-items:center;gap:calc(var(--u)*5);height:calc(var(--u)*36);padding:0 calc(var(--u)*14) 0 calc(var(--u)*11);border-radius:calc(var(--u)*18);background:#fff;color:#0e1019;font-size:calc(var(--u)*13.5);font-weight:var(--w7,700)}
.fadd svg{width:calc(var(--u)*15);height:calc(var(--u)*15);fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round}
.fundinfo{display:flex;flex-direction:column;gap:calc(var(--u)*14)}
.fundinfo .empty2{align-items:flex-start}
.fundinfo .ic2 svg{stroke:#e8c98a}
.sptarget{margin:calc(var(--u)*-4) 0 0;font-size:calc(var(--u)*13.5);color:var(--soft);line-height:1.45}
.sptarget b{color:#fff;font-weight:var(--w7,700)}
#fsList{max-height:52vh;overflow:auto}

/* места спонсоров и «Собрано на конкурс» (14.11) */
.fund3{display:flex;flex-direction:column;gap:calc(var(--u)*10);padding:calc(var(--u)*12);border-radius:calc(var(--u)*18);background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}
.fh2{display:flex;justify-content:space-between;gap:calc(var(--u)*10);padding:0 calc(var(--u)*2)}
.fh2>div{display:flex;flex-direction:column;gap:calc(var(--u)*2);min-width:0}
.fh2 .r{text-align:right}
.fh2 small,.fprog small,.slotsh{font-size:calc(var(--u)*10.5);font-weight:var(--w7,700);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fh2 b{font-size:calc(var(--u)*18);font-weight:var(--w7,700);color:#e8c98a;white-space:nowrap}
.fh2 .r b{color:#fff}
.slots .srow.free{width:100%;text-align:left}
.slots .srow.free .a{background:none;border:1.5px dashed rgba(255,255,255,.22);box-sizing:border-box}
.slots .srow.free .a svg{width:calc(var(--u)*16);height:calc(var(--u)*16);fill:none;stroke:var(--muted);stroke-width:2.2;stroke-linecap:round}
.slots .srow.free .t b{color:var(--muted);font-weight:var(--w5,500)}
.fadd.wide{width:100%;justify-content:center;height:calc(var(--u)*42);border-radius:calc(var(--u)*21)}
.fprog{display:flex;flex-direction:column;gap:calc(var(--u)*8);padding:calc(var(--u)*12) calc(var(--u)*14);border-radius:calc(var(--u)*16);background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}
.fprog .fl{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*8)}   /* 15.11: одна строка «Призовой фонд 0 из 10 000 ₽» */
.fprog .bar{display:block;height:calc(var(--u)*5);border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden}
.fprog .bar i{display:block;height:100%;background:linear-gradient(90deg,#cb4eff,#ff4ec1)}
.slotsh{margin:calc(var(--u)*2) 0 calc(var(--u)*-6) calc(var(--u)*2)}

/* блок спонсоров строже (14.11, v2): круги-места вместо строк «Место свободно», без «Собрано» и полосы, короткий текст */
.fundinfo{gap:calc(var(--u)*16)}
.fi2{display:flex;flex-direction:column;gap:calc(var(--u)*4)}
.fi2>b{font-size:calc(var(--u)*17);font-weight:var(--w7,700)}
.fi2>span{font-size:calc(var(--u)*13);color:var(--muted);line-height:1.4}
.fv{font-size:calc(var(--u)*13);color:var(--soft)}
.fi2 .fv{margin-top:calc(var(--u)*6)}
.fv b{font-weight:var(--w7,700);color:#e8c98a;font-size:calc(var(--u)*15)}
.fund3{gap:calc(var(--u)*14);padding:calc(var(--u)*14)}
.slotsh{margin:0;text-align:center}
.seats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--u)*14) calc(var(--u)*8);justify-items:center}
.seat{display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*5);min-width:0;width:100%;text-align:center}
.seat .ring{position:relative;display:grid;place-items:center;width:calc(var(--u)*58);height:calc(var(--u)*58);border-radius:50%;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.seat .ring i{font-style:normal;font-size:calc(var(--u)*22);font-weight:var(--w6,600);line-height:1;color:#fff}
.seat.free .ring{background:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.seat.free .ring i{font-size:calc(var(--u)*24);font-weight:var(--w5,500);opacity:.55}
.seat.g{--mg:linear-gradient(180deg,#fff3b0,#ffd700 45%,#c99a00)}
.seat.s{--mg:linear-gradient(180deg,#fff,#d7dbe6 45%,#8f96a8)}
.seat.b{--mg:linear-gradient(180deg,#ffd9b3,#e09a5b 45%,#a5602a)}
.seat.free.g .ring i,.seat.free.s .ring i,.seat.free.b .ring i{background:var(--mg);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.85}
.seat .ring em{position:absolute;right:calc(var(--u)*-2);bottom:calc(var(--u)*-2);min-width:calc(var(--u)*20);height:calc(var(--u)*20);border-radius:10px;display:grid;place-items:center;background:#0e1019;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);font-style:normal;font-size:calc(var(--u)*11);font-weight:var(--w7,700);color:#fff}
.seat.g .ring em,.seat.s .ring em,.seat.b .ring em{background:var(--mg);color:#0e1019;box-shadow:none}
.seat b{max-width:100%;font-size:calc(var(--u)*13);font-weight:var(--w6,600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seat small{margin-top:calc(var(--u)*-3);font-size:calc(var(--u)*11.5);color:#e8c98a}
.fsp.more{align-self:center;justify-content:center}

/* места спонсоров — строки как в разделе «Спонсоры» (14.11, v3); пустое место — номер, пустой кружок, прочерк */
.slots .srow.empty .a{background:rgba(255,255,255,.04)}
.slots .srow.empty .t b{color:var(--muted);font-weight:var(--w5,500)}

/* «Стать спонсором» напротив свободных мест 1–3 (14.11, владелец) */
.slots .srow.empty .t{flex:1}
.sbtn{flex:none;height:calc(var(--u)*34);padding:0 calc(var(--u)*15);border-radius:calc(var(--u)*17);background:#fff;color:#0e1019;font-size:calc(var(--u)*13);font-weight:var(--w7,700);white-space:nowrap}

/* кубок слева от «Новый конкурс скоро» — по центру короткого текста (14.11) */
.fundinfo .empty2{align-items:center}

/* название следующего конкурса под «Новый конкурс скоро» (14.11) */
.fi2 .nx{font-style:normal;font-size:calc(var(--u)*15);font-weight:var(--w6,600);letter-spacing:.04em;color:#e8c98a}

/* предварительный набор (14.11): миниатюра заявок над призовым фондом, список участниц, просмотр фото */
.appl{display:flex;align-items:center;gap:calc(var(--u)*12);width:100%;padding:calc(var(--u)*12) calc(var(--u)*14);border-radius:calc(var(--u)*18);background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);text-align:left}
.appl .avs{flex:none;display:flex;align-items:center}
.appl .avs>*{flex:none;width:calc(var(--u)*46);height:calc(var(--u)*46);border-radius:50%;object-fit:cover;box-shadow:0 0 0 calc(var(--u)*2.5) #0e1019;background:var(--slate)}
.appl .avs>*+*{margin-left:calc(var(--u)*-13)}
.appl .avs i{display:grid;place-items:center;font-style:normal;font-size:calc(var(--u)*15);font-weight:var(--w7,700);color:#fff;background:linear-gradient(135deg,#ff4ec1,#cb4eff)}
.appl .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*2)}
.appl .tx b{font-size:calc(var(--u)*17);font-weight:var(--w7,700)}
.appl .tx span{font-size:calc(var(--u)*12.5);color:var(--muted)}
.appl>svg{flex:none;width:calc(var(--u)*16);height:calc(var(--u)*16);fill:none;stroke:var(--muted);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.psgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--u)*10) calc(var(--u)*8);max-height:56vh;overflow:auto;padding:calc(var(--u)*2)}
.pc{display:flex;flex-direction:column;gap:calc(var(--u)*5);min-width:0;text-align:center}
.pc .im{position:relative;display:block;aspect-ratio:3/4;border-radius:calc(var(--u)*12);overflow:hidden;background:var(--slate)}
.pc .im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pc b{font-size:calc(var(--u)*12.5);font-weight:var(--w6,600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plb{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;justify-content:center;gap:calc(var(--u)*12);background:rgba(8,9,14,.96);padding:var(--app-top-inset,0) 0 calc(var(--u)*24)}
.plb[hidden]{display:none}
.plb .lbx{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:calc(var(--u)*8);padding:0 calc(var(--u)*16)}
.plb .lbx>*{flex:none;width:calc(100% - var(--u)*8);max-height:72vh;object-fit:contain;border-radius:calc(var(--u)*14);scroll-snap-align:center;background:#000}
.plb .lbt{display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*3);text-align:center}
.plb .lbt b{font-size:calc(var(--u)*17);font-weight:var(--w7,700)}
.plb .lbt span{font-size:calc(var(--u)*12);color:var(--muted)}

/* миниатюра участниц — без отдельной рамки и плашки, прямо в карточке (владелец 14.11) */
.appl{background:none;box-shadow:none;padding:calc(var(--u)*2) calc(var(--u)*4)}

/* отбор участниц спонсорами (14.11): ♡ на миниатюре, «В конкурсе», заявки на отборе */
.pc{cursor:pointer}
.pc .hb{position:absolute;right:calc(var(--u)*6);top:calc(var(--u)*6);z-index:1;width:calc(var(--u)*34);height:calc(var(--u)*34);border-radius:50%;display:grid;place-items:center;background:rgba(14,16,25,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.pc .hb svg{width:calc(var(--u)*17);height:calc(var(--u)*17);fill:none;stroke:#fff;stroke-width:2;stroke-linejoin:round}
.pc .hb.on{background:#fff;box-shadow:none}
.pc .hb.on svg{fill:#ff4ec1;stroke:#ff4ec1}
.pc .inb{position:absolute;left:calc(var(--u)*6);bottom:calc(var(--u)*6);z-index:1;padding:calc(var(--u)*3) calc(var(--u)*8);border-radius:calc(var(--u)*10);background:rgba(14,16,25,.65);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:calc(var(--u)*10.5);font-weight:var(--w7,700);color:#91ff4e}
#psS b{color:#fff}

/* отбор — два голоса (14.11): «голосов 1 из 2» на миниатюре */
.pc .inb.vt{color:#fff}
.pc .hb.on{cursor:pointer}

/* края прокрутки — размытие, как в Telegram, а не затемнение (владелец 14.11).
   Список уходит под меню: прокручиваемая область тянется до низа экрана, меню поверх; под меню и рядом с ним — размытая полоса.
   Сверху: на главной содержимое уходит под кнопки Telegram (размытая полоса высотой с отступ), на остальных экранах — размытие у верхнего края при прокрутке. */
.scroll,.scroll.sc{-webkit-mask-image:none;mask-image:none}
.tb{z-index:6}
.scroll{margin-bottom:calc(var(--u)*-86 - 8px);padding-bottom:calc(var(--u)*104 + 8px)}
.page::after{content:"";position:fixed;left:0;right:0;bottom:0;height:calc(var(--u)*86 + 8px);z-index:5;pointer-events:none;
  background:rgba(14,16,25,.12);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 calc(var(--u)*26));mask-image:linear-gradient(to bottom,transparent 0,#000 calc(var(--u)*26))}
.page::before{content:"";position:fixed;left:0;right:0;top:0;height:calc(var(--app-top-inset,0px) + 10px);z-index:5;pointer-events:none;
  background:rgba(14,16,25,.12);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);
  -webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent);mask-image:linear-gradient(to bottom,#000 55%,transparent)}
#mainAfisha{margin-top:calc(-10px - var(--app-top-inset,0px));padding-top:calc(10px + var(--app-top-inset,0px))}
.scroll.sc::before{content:"";position:sticky;top:0;flex:none;height:calc(var(--u)*26);margin-bottom:calc(var(--u)*-44);z-index:4;pointer-events:none;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  -webkit-mask-image:linear-gradient(#000,transparent);mask-image:linear-gradient(#000,transparent)}
#mainAfisha.sc::before{display:none}

/* верификация лица (14.11): шаг 1 в заявке и экран с кругом делений, как при настройке Face ID */
.vfyrow{display:flex;align-items:center;gap:calc(var(--u)*12);width:100%;padding:calc(var(--u)*12) calc(var(--u)*14);border-radius:calc(var(--u)*18);background:var(--slate);color:var(--fg);text-align:left}
.vfyrow:disabled{opacity:.6}
.vfyic{flex:none;width:calc(var(--u)*42);height:calc(var(--u)*42);border-radius:50%;display:grid;place-items:center;background:rgba(145,255,78,.12)}
.vfyic svg{width:calc(var(--u)*24);height:calc(var(--u)*24);fill:none;stroke:var(--lime);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.vfyrow .vt{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*2)}
.vfyrow .vt b{font-size:calc(var(--u)*15);font-weight:var(--w6,600)}
.vfyrow .vt em{font-style:normal;font-size:calc(var(--u)*12);font-weight:var(--w5,500);color:var(--muted)}
.vfyrow .chev{flex:none;width:calc(var(--u)*18);height:calc(var(--u)*18);fill:none;stroke:var(--muted);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.vfyrow.ok .vfyic{background:var(--lime)}
.vfyrow.ok .vfyic svg{stroke:#0e1019}
.vfyrow.ok .vt b{color:var(--lime)}
.vfyrow.ok .chev{display:none}
.vfyrow.pulse{animation:vpulse .8s ease 2}
@keyframes vpulse{50%{box-shadow:0 0 0 calc(var(--u)*3) rgba(145,255,78,.6)}}
.media.locked .slot{opacity:.35}
.vfy{position:fixed;inset:0;z-index:29;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(var(--app-top-inset,0px) + 56px) 16px calc(24px + env(safe-area-inset-bottom,0px));background:var(--bg);overflow-y:auto}
.vfy[hidden],.vfy [hidden]{display:none!important}
.vfyx{position:absolute;left:16px;top:calc(var(--app-top-inset,0px) + 10px);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08)}
.vfyx svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round}
.vfyc{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:420px;text-align:center}
.vfyc h2{font-size:22px;font-weight:var(--w6,600);letter-spacing:-.01em}
.vring{position:relative;width:min(80vw,320px,48vh);aspect-ratio:1;margin:6px 0}
.vring video{position:absolute;left:11%;top:11%;width:78%;height:78%;border-radius:50%;object-fit:cover;transform:scaleX(-1);background:#05060a;transition:filter .4s,opacity .4s}
.vring>svg{position:absolute;inset:0;width:100%;height:100%}
.vring line{stroke:rgba(255,255,255,.2);stroke-width:3.4;stroke-linecap:round;transition:stroke .2s}
.vring line.on{stroke:var(--lime)}
.vring.ok video{filter:brightness(.4) blur(3px)}
.vring.off{opacity:.35}
.vok{position:absolute;left:36%;top:36%;width:28%;height:28%;border-radius:50%;display:grid;place-items:center;background:var(--lime);transform:scale(0);transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.vok svg{width:56%;height:56%;fill:none;stroke:#0e1019;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.vring.ok .vok{transform:scale(1)}
.vst{font-size:19px;font-weight:var(--w6,600);min-height:1.3em;line-height:1.3}
.vhint{font-size:14px;font-weight:var(--w5,500);color:var(--muted);min-height:2.7em;max-width:300px;line-height:1.35}
.vfy>.vfyc>.btn{width:100%;max-width:340px}
.vfb{display:flex;flex-direction:column;gap:12px;align-items:center;width:100%;max-width:340px}
.vfb p{font-size:15px;font-weight:var(--w6,600);color:#fff}
.vfb small{font-size:13px;font-weight:var(--w5,500);color:var(--muted);line-height:1.4}
.vfb .btn{width:100%}

/* заявка: что не добавилось и чего не хватает (14.11) */
.regmsg{display:flex;flex-direction:column;gap:calc(var(--u)*6);padding:calc(var(--u)*10) calc(var(--u)*12);border-radius:calc(var(--u)*14);background:rgba(255,78,193,.12)}
.regmsg[hidden]{display:none}
.regmsg p{font-size:calc(var(--u)*13);font-weight:var(--w6,600);line-height:1.35;color:#ffc9ec}
@keyframes nshake{20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
.slot.need{border-color:var(--pink);color:var(--pink);animation:nshake .45s ease}
.check.need{color:var(--pink)}
.check.need i{box-shadow:inset 0 0 0 calc(var(--u)*2) var(--pink);background:rgba(255,78,193,.15);animation:nshake .45s ease}

/* верификация только с телефона (14.11) */
.vfyrow.nophone .vfyic{background:rgba(255,255,255,.08)}
.vfyrow.nophone .vfyic svg{stroke:var(--muted)}
.vfyrow.nophone .chev{display:none}

/* таб-бар: тёмное плотное стекло — светлое под ним не засвечивает подписи (14.11) */
.tb::before{background:radial-gradient(circle at 50% var(--ny),transparent var(--nr),rgba(255,255,255,.13) var(--nr),rgba(255,255,255,.13) calc(var(--nr) + 1px),transparent calc(var(--nr) + 1.5px)),rgba(24,26,38,.86);
  -webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5)}

/* заголовок внутри прокрутки (14.11): страница от верха экрана — под размытие у кнопок Telegram, снизу — под меню */
.withhead{margin-top:calc(-10px - var(--app-top-inset,0px));padding-top:calc(10px + var(--app-top-inset,0px))}
.withhead.sc::before{display:none}
.scroll.withhead>.lhead{margin-bottom:calc(var(--u)*-6)}
.clist.withhead>.lhead{margin-bottom:calc(var(--u)*2)}
.clist.withhead{margin-bottom:calc(var(--u)*-86 - 8px);padding-bottom:calc(var(--u)*104 + 8px)}

/* вкладка «Спонсоры» без подписи под заголовком; звезда в венке в окне взноса (14.11) */
#vSponsors .lsub{display:none}
.perks i.lau svg{width:calc(var(--u)*17);height:calc(var(--u)*17);fill:var(--c);stroke:none}
.perks li b{color:#fff;font-weight:var(--w6,600)}

/* призы по местам (14.11) */
.przl{display:flex;align-items:center;gap:calc(var(--u)*10);width:100%;padding:calc(var(--u)*10) calc(var(--u)*12);border-radius:calc(var(--u)*14);background:var(--ink);box-shadow:inset 0 0 0 1px var(--line);text-align:left}
.przl>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*2)}
.przl b{font-size:calc(var(--u)*14.5);font-weight:var(--w7,700);color:#fff}
.przl small{font-size:calc(var(--u)*12);font-weight:var(--w5,500);color:var(--muted)}
.przl>svg{flex:none;width:calc(var(--u)*16);height:calc(var(--u)*16);fill:none;stroke:var(--muted);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
#zsheet #zsList{flex:none}
.zrows .srow{padding:calc(var(--u)*10) calc(var(--u)*12)}
.zrows .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:calc(var(--u)*2)}
.zrows .t b.za{font-size:calc(var(--u)*16);font-weight:var(--w7,700);color:#e8c98a;font-variant-numeric:tabular-nums}
.zrows .t b.zn{font-size:calc(var(--u)*14);font-weight:var(--w5,500);color:var(--muted)}
.zrows .zg,.zrows .zb{font-size:calc(var(--u)*12);font-weight:var(--w5,500);color:var(--soft);line-height:1.3}
.zrows .zb{color:var(--muted)}
.zadd{flex:none;display:flex;align-items:center;gap:calc(var(--u)*4);height:calc(var(--u)*32);padding:0 calc(var(--u)*12) 0 calc(var(--u)*9);border-radius:calc(var(--u)*16);background:#fff;color:#0e1019;font-size:calc(var(--u)*12.5);font-weight:var(--w7,700)}
.zadd svg{width:calc(var(--u)*13);height:calc(var(--u)*13);fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round}
.plc{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:calc(var(--u)*6)}
.plc button.all{grid-column:1/-1}
.plc button{min-width:0;height:calc(var(--u)*38);padding:0 calc(var(--u)*10);border-radius:calc(var(--u)*14);background:var(--ink);box-shadow:inset 0 0 0 1px var(--line);font-size:calc(var(--u)*14);font-weight:var(--w8,800);color:var(--mc,#fff);font-variant-numeric:tabular-nums}
.plc button.all{padding:0 calc(var(--u)*14);color:#fff}
.plc button[aria-pressed="true"]{background:rgba(255,215,0,.1);box-shadow:inset 0 0 0 calc(var(--u)*1.6) var(--gold);color:var(--gold)}

/* блок суммы фонда открывает «Призы по местам» (14.11) */
.fprog.tap,.fsum.tap{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s}
.fprog.tap:active,.fsum.tap:active{transform:scale(.985)}
.fgo{display:flex;align-items:center;justify-content:space-between;margin-top:calc(var(--u)*2);font-size:calc(var(--u)*13);font-weight:var(--w6,600);color:var(--soft)}
.fgo svg,.fsum svg,.fprog .fl svg{flex:none;width:calc(var(--u)*16);height:calc(var(--u)*16);fill:none;stroke:var(--muted);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.fsum{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*8);padding:calc(var(--u)*12) calc(var(--u)*14);border-radius:calc(var(--u)*16);background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}
.fsum .fv em{font-style:normal;color:var(--muted)}

/* «Призы по местам» — отдельная страница (14.11) */
.zbox{display:flex;flex-direction:column;gap:calc(var(--u)*18)}
.zsum{display:flex;flex-direction:column;gap:calc(var(--u)*6)}
.zsum small{font-size:calc(var(--u)*10.5);font-weight:var(--w7,700);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.zsum b{font-size:calc(var(--u)*30);font-weight:var(--w7,700);color:#e8c98a;font-variant-numeric:tabular-nums;line-height:1.1}
.zsum b i{font-style:normal;font-size:calc(var(--u)*15);color:var(--soft)}
.zsum p{font-size:calc(var(--u)*13);line-height:1.4;color:var(--soft)}
.zsum .btn{margin-top:calc(var(--u)*8)}
.zrows .zadd{background:var(--chip);color:#fff;box-shadow:inset 0 0 0 1px var(--chip-line)}
.zrows .t b.zn{font-size:calc(var(--u)*16);color:var(--muted)}

/* окно взноса: место — только если пришли через «+ Приз» (14.11) */
.plc.two{grid-template-columns:1fr 1fr}
.plc.two button{padding:0 calc(var(--u)*10);font-size:calc(var(--u)*13.5);color:#fff}
.plc.two button[aria-pressed="true"]{color:var(--gold)}

/* камера верификации в круглой рамке — обрезка с первого кадра на iOS (14.11) */
.vcam{position:absolute;left:11%;top:11%;width:78%;height:78%;border-radius:50%;overflow:hidden;background:#05060a;
  -webkit-mask-image:-webkit-radial-gradient(white,black);mask-image:radial-gradient(white,black);transform:translateZ(0)}
.vring .vcam video{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:0;object-fit:cover;transform:scaleX(-1);background:transparent;opacity:0;transition:filter .4s,opacity .3s}
.vring .vcam.on video{opacity:1}

/* камера: кадр рисуем в <canvas> сами — iOS не всегда растягивает видео с камеры по кругу (14.11) */
.vring .vcam video,.vring .vcam.on video{opacity:0;pointer-events:none}
.vcam canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .3s,filter .4s}
.vcam.on canvas{opacity:1}
.vring.ok .vcam canvas{filter:brightness(.4) blur(3px)}

/* шрифты: веса задаются переменными (подставляет postfont.py при сборке), варианты — классом на body */
:root{--w8:800;--w7:700;--w6:600;--w5:500;--serif:var(--font)}
body.f-thin,body.f-classic{--font:"Jost",-apple-system,"Segoe UI",Roboto,sans-serif;--w8:500;--w7:500;--w6:400;--w5:400}
body.f-classic{--serif:"Cormorant Garamond",Georgia,"Times New Roman",serif}
body.f-thin .lt,body.f-classic .lt{letter-spacing:.09em}
body.f-thin .blk>h3,body.f-classic .blk>h3,body.f-thin .cgroup>h3,body.f-classic .cgroup>h3{letter-spacing:.16em}
body.f-thin .ainfo h1,body.f-classic .ainfo h1{letter-spacing:.24em}
body.f-thin .nm{font-weight: 400;letter-spacing:.01em}
body.f-thin .rank b{font-weight: 300;letter-spacing:-.02em}
body.f-thin .th .pl{font-weight: 400}
/* «Классика»: заголовки, имена, места и крупные цифры — антиквой, как в журналах мод */
body.f-classic :is(.lt,.ainfo h1,.nm,.rank b,.crow .tx b,.atx b,.rtitle,.closed h2,.sheet h2,.th .pl,.srow .rk,.nums b,.lr .n,.anc b,.steps i,.rsec .rn,.rsec h3,.prize b,.empty2 b,.rowlink b,.docs h3){
  font-family:var(--serif);font-variant-numeric:lining-nums}
body.f-classic .crow .tx b,body.f-classic .atx b,body.f-classic .rtitle,body.f-classic .closed h2,body.f-classic .sheet h2,body.f-classic .srow .rk,body.f-classic .nums b,body.f-classic .lr .n,body.f-classic .anc b,body.f-classic .steps i,body.f-classic .rsec .rn,body.f-classic .rsec h3,body.f-classic .prize b,body.f-classic .empty2 b,body.f-classic .rowlink b,body.f-classic .docs h3{font-weight: 600;letter-spacing:.01em}
body.f-classic .nm{font-size:calc(var(--u)*33);font-weight: 600;line-height:1}
body.f-classic .lt{font-size:calc(var(--u)*23);font-weight: 600;letter-spacing:.07em}
body.f-classic .ainfo h1{font-size:calc(var(--u)*24);font-weight: 600;letter-spacing:.2em}
body.f-classic .rank b{font-weight: 500;letter-spacing:-.02em;line-height:.8}
body.f-classic .th .pl{font-size:calc(var(--u)*30);font-weight: 600}
body.f-classic .crow .tx b,body.f-classic .atx b{font-size:calc(var(--u)*19)}
body.f-classic .nums b{font-size:calc(var(--u)*28)}
body.f-classic .srow .rk{font-size:calc(var(--u)*24)}
body.f-classic .prize b{font-size:calc(var(--u)*20)}

