/* Проявка — веб-апп MVP. Дизайн-система «Editorial Film» */
:root{
  --bg:#0B0B0B; --surface:#16140F; --border:#2A271F;
  --paper:#F2ECE0; --text2:#A8A095; --label:#6E675C;
  --terra:#C56B4A; --gold:#C9A84C;
  --accent:#C9A84C; --accent-soft:#C98B8B;
  --on-accent:#0B0B0B; --card:#1a1812; --bar:rgba(11,11,11,.93); --body:#000;
  /* Металлическое золото кнопок (палитра владельца) + светлый контур */
  --btn-grad:linear-gradient(105deg,#A9710F 0%,#BE922F 16%,#F8E47B 36%,#EAD779 50%,#CCA641 72%,#A9710F 100%);
  --btn-edge:#F8E47B;
  /* Золотой ГРАДИЕНТ-ТЕКСТ — идентичен сайту (.accent): разные оттенки золота */
  --gold-text:linear-gradient(100deg,#F8E47B,#E6C766 35%,#C9A84C 65%,#9A7B2E);
  --surface2:#15130d; --chip-on:#1d1a12; --track:#2a2620;
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Inter',system-ui,-apple-system,sans-serif;
}
/* Тема «Светлая»: основной белый + фирменное золото (кнопки/обводки/акценты — те же, что в тёмной) */
body.theme-light{
  --bg:#FCFBF7; --surface:#FFFFFF; --border:#E7E0CE;
  --paper:#2A2520; --text2:#8A8273; --label:#A99F89;
  --terra:#C56B4A; --gold:#C9A84C;
  --accent:#C9A84C; --accent-soft:#E6D7A6;
  --on-accent:#3A2D10; --card:#FFFFFF; --bar:rgba(255,255,255,.92); --body:#ECE9E0;
  --surface2:#F7F4EC; --chip-on:#F3EDDD; --track:#E7E0CE;
}
body.theme-light .grain{opacity:.02}
body.theme-light .card{box-shadow:0 8px 26px rgba(120,100,40,.10)}
body.theme-light .pcard{background:#FBF8F0}
body.theme-light .inv-card.t-minimal{color:#2A2520}
.style-opts{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.style-opt{border:1px solid var(--border);border-radius:16px;padding:14px;cursor:pointer;background:var(--surface);transition:border-color .15s}
.style-opt.on{border-color:var(--accent)}
.style-opt:active{transform:scale(.99)}
.style-sw{display:flex;gap:7px;margin-bottom:10px}
.style-sw i{width:28px;height:28px;border-radius:8px;display:block;border:1px solid rgba(128,128,128,.18)}
.style-nm{font-family:var(--serif);font-size:19px}
.style-d{font-size:12.5px;color:var(--text2);margin-top:2px}
/* оценка приложения (rate gate) */
.rate-stars{display:flex;gap:8px;justify-content:center;margin:16px 0 6px}
.rate-star{font-size:34px;line-height:1;background:none;border:0;cursor:pointer;color:var(--border);padding:4px 3px;transition:transform .12s ease,color .12s ease}
.rate-star.on{color:#E6C766}
.rate-star:active{transform:scale(1.18)}
.rate-msg{text-align:center;font-size:15px;line-height:1.45;margin-top:8px}
.rate-ta{display:block;width:100%;margin-top:10px;border-radius:12px;padding:11px 13px;font:inherit;line-height:1.4;resize:vertical;min-height:64px;box-sizing:border-box;border:1px solid var(--border);background:var(--surface);color:var(--paper)}
.rate-ta:focus{outline:none;border-color:var(--accent)}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{background:var(--body);font-family:var(--sans);color:var(--paper);-webkit-font-smoothing:antialiased;overflow:hidden}
.grain{position:fixed;inset:-20px;pointer-events:none;z-index:200;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainShift 6s steps(5) infinite}
@keyframes grainShift{0%{transform:translate(0,0)}20%{transform:translate(-8px,6px)}40%{transform:translate(7px,-7px)}60%{transform:translate(-6px,-5px)}80%{transform:translate(9px,7px)}100%{transform:translate(0,0)}}
@media (prefers-reduced-motion:reduce){.grain{animation:none}}
#app{position:relative;width:100%;max-width:440px;height:100%;margin:0 auto;background:var(--bg);overflow:hidden;display:flex;flex-direction:column}
.scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.scroll::-webkit-scrollbar{display:none}
.pad{padding:54px 20px 96px}
h1{font-family:var(--serif);font-weight:400;font-size:34px;line-height:1.08}
h2{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.12}
.astr{color:var(--accent)}
/* «#»-маркер бренда — металлик в цвете акцента (золото / роза white-label). Fallback на сплошной акцент. */
@supports ((-webkit-background-clip:text) or (background-clip:text)) and (color:color-mix(in srgb,#000,#fff)){
  .astr{background:var(--gold-text);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
}
.label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--label);margin:18px 0 10px}
.muted{color:var(--text2)}
.center{text-align:center}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 22px;border-radius:40px;
  font-size:15px;font-weight:500;cursor:pointer;border:1px solid transparent;font-family:var(--sans);width:100%;transition:transform .15s}
.btn:active{transform:scale(.98)}
.btn.gold{background:var(--accent);color:var(--on-accent);font-weight:600}
.btn.ghost{border-color:var(--border);color:var(--paper);background:transparent}
.btn.sm{width:auto;padding:9px 16px;font-size:13px}
.row{display:flex;gap:10px}
.topline{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.createbtn{font-size:12.5px;color:var(--on-accent);background:var(--accent);padding:9px 15px;border-radius:30px;cursor:pointer;font-weight:600;white-space:nowrap}
.back{position:absolute;top:calc(env(safe-area-inset-top,20px) + 26px);left:16px;z-index:20;width:38px;height:38px;border-radius:50%;
  background:rgba(0,0,0,.5);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);font-size:20px}
/* event cards */
.card{position:relative;border-radius:20px;overflow:hidden;margin-bottom:16px;border:1px solid var(--border);background:var(--card);cursor:pointer}
.card:active{transform:scale(.99)}
.accent-bar{height:3px;background:var(--accent)}
.card .photo{height:180px;background-size:cover;background-position:center;position:relative;display:flex;align-items:flex-end}
.card .ph-grad{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(11,11,11,.9))}
.card .meta{position:relative;padding:16px;z-index:2}
.card .ttl{font-family:var(--serif);font-size:25px;line-height:1.05}
.card .sub{font-size:12px;color:var(--text2);margin-top:5px}
.badge{position:absolute;top:13px;left:13px;z-index:3;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;
  padding:5px 10px;border-radius:30px;background:rgba(0,0,0,.55);border:1px solid var(--accent);color:var(--accent);backdrop-filter:blur(4px)}
.dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:var(--accent);margin-right:6px}
.empty{text-align:center;color:var(--text2);padding:60px 20px;font-family:var(--serif);font-size:20px;line-height:1.4}
/* inputs / wizard */
.field{margin-bottom:16px}
.field input,.field select{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:14px;color:var(--paper);font-size:16px;font-family:var(--sans);outline:none;color-scheme:dark}
/* значок календаря у input[type=date] — золотом на тёмном */
.field input[type=date]::-webkit-calendar-picker-indicator{
  filter:invert(80%) sepia(40%) saturate(450%) hue-rotate(8deg) brightness(95%);
  cursor:pointer;opacity:.95;padding:4px;border-radius:6px}
.field input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1;background:rgba(201,168,76,.12)}
.field input[type=date]{position:relative}
/* плейсхолдер «дд.мм.гггг» более заметным */
.field input[type=date]:not(:focus):invalid::-webkit-datetime-edit{color:var(--text2)}
.field input:focus,.field select:focus{border-color:var(--accent)}
/* клавиатурный фокус — глобально, видимый */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
button:focus:not(:focus-visible),.btn:focus:not(:focus-visible),.pill:focus:not(:focus-visible){outline:none}
.field .cap{font-size:12px;color:var(--label);margin-bottom:7px;letter-spacing:.04em}
.types{display:flex;flex-wrap:wrap;gap:8px}
.type{font-size:13px;padding:11px 14px;min-height:44px;display:inline-flex;align-items:center;border-radius:30px;border:1px solid var(--border);color:var(--text2);cursor:pointer;box-sizing:border-box}
.type.on{color:var(--on-accent);font-weight:600}
.opt{border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:13px 15px;margin-bottom:10px;cursor:pointer}
.opt.on{border-color:var(--accent);background:var(--chip-on)}
.opt .ot{font-size:15px;margin-bottom:3px}
.opt .od{font-size:12px;color:var(--text2);line-height:1.4}
.frames{display:flex;gap:7px;margin-top:6px}
.frames span{flex:1;text-align:center;padding:13px 0;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:10px;font-size:14px;cursor:pointer;color:var(--text2);box-sizing:border-box}
.frames span.on{border-color:var(--accent);color:var(--accent);background:var(--chip-on);font-weight:600}
.frames.wrap{flex-wrap:wrap}
.frames span.locked{position:relative;opacity:.5}
.frames span.locked::after{content:"🔒";position:absolute;top:-7px;right:-3px;font-size:9px;opacity:.85}
.tierline{font-size:12.5px;color:var(--text2);margin-top:6px}
/* upsell sheet (store-safe) */
.sheet-wrap{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.62);display:flex;align-items:flex-end;justify-content:center;animation:shfade .2s ease}
@keyframes shfade{from{opacity:0}to{opacity:1}}
.sheet{width:100%;max-width:440px;max-height:92vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-bottom:none;border-radius:22px 22px 0 0;padding:24px 22px calc(28px + env(safe-area-inset-bottom));animation:shup .26s cubic-bezier(.2,.8,.2,1)}
.share-prev{display:block;width:100%;max-height:48vh;object-fit:contain;border-radius:14px;border:1px solid var(--border);margin-bottom:16px;background:#0e0c08}
@keyframes shup{from{transform:translateY(44px) scale(.97);opacity:.3}to{transform:translateY(0) scale(1);opacity:1}}
.sheet-h{font-family:var(--serif);font-size:22px;margin-bottom:10px}
.sheet-b{font-size:14px;line-height:1.62;color:var(--text2);margin-bottom:18px}
.sheet-b b{color:var(--paper)}
/* event detail */
.cover{height:240px;background-size:cover;background-position:center;position:relative;display:flex;align-items:flex-end;animation:coverPan 26s ease-in-out infinite alternate}
@keyframes coverPan{from{background-position:50% 43%}to{background-position:50% 57%}}
.cover .ovr{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,11,.15),rgba(11,11,11,.95))}
.cover .info{position:relative;z-index:2;padding:18px 20px}
.cover-edit{position:absolute;top:54px;right:16px;z-index:3;width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.45);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;border:1px solid rgba(255,255,255,.18)}
/* секции и сегменты ленты */
.sec-h{display:flex;align-items:baseline;justify-content:space-between;padding:14px 20px 2px;font-family:var(--serif);font-size:18px}
.sec-h span{font-family:var(--sans);font-size:12px;color:var(--text2)}
.seg{display:flex;gap:8px;padding:6px 20px 10px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.seg::-webkit-scrollbar{display:none}
.seg-i{flex:0 0 auto;white-space:nowrap;padding:11px 16px;min-height:44px;display:inline-flex;align-items:center;border-radius:30px;border:1px solid var(--border);font-size:13px;color:var(--text2);cursor:pointer;box-sizing:border-box}
.seg-i.on{border-color:var(--accent);color:var(--accent);background:var(--chip-on);font-weight:600}
.actions{display:flex;flex-wrap:wrap;gap:9px;padding:16px 20px 4px}
.pill{flex:1 1 28%;text-align:center;padding:11px 8px;border-radius:30px;border:1px solid var(--border);font-size:13px;color:var(--paper);cursor:pointer;background:var(--surface);white-space:nowrap}
.pill.gold{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600}
.invite{margin:8px 20px;padding:14px;background:var(--surface);border:1px dashed var(--border);border-radius:14px}
.invite .lnk{font-size:12px;color:var(--accent);word-break:break-all;margin-top:6px;font-family:monospace}
/* Кнопка «Страница гостя»: открыть гостевой лендинг глазами гостя */
.ev-guestbtn{display:flex;align-items:center;gap:10px;width:calc(100% - 40px);margin:10px 20px 0;padding:14px 16px;
  background:var(--surface);border:1px solid var(--border);border-radius:14px;cursor:pointer;text-align:left;
  color:var(--body);font-family:var(--sans);font-size:14.5px;font-weight:600;transition:border-color .15s,transform .12s}
.ev-guestbtn:active{transform:scale(.99)}
.ev-guestbtn:hover{border-color:var(--accent)}
.ev-guestbtn .egb-ic{font-size:17px;line-height:1}
.ev-guestbtn .egb-t{flex:1}
.ev-guestbtn .egb-a{color:var(--accent);font-size:18px}
.grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:12px 20px 14px}
.scroll>.grid:last-child{padding-bottom:96px}
.scroll>.feed-end{height:96px}
.gph{aspect-ratio:1;border-radius:12px;background-size:cover;background-position:center;position:relative;overflow:hidden;
  border:1px solid rgba(201,168,76,.55);box-shadow:0 4px 14px rgba(0,0,0,.28)}   /* золотая рамка тайла + мягкая тень */
@supports (color:color-mix(in srgb,#000,#fff)){ .gph{border-color:color-mix(in srgb,var(--accent) 60%,transparent)} }
.gph .au{position:absolute;left:0;right:0;bottom:0;font-size:9px;padding:14px 8px 5px 8px;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff;z-index:1}
/* Масонри с натуральной пропорцией: ГОРИЗОНТАЛЬНЫЕ кадры занимают 2 колонки («герой»-тайл),
   вертикальные — узкие-высокие. Высота = grid-row span, считается в layoutMasonry() по data-ar (w/h).
   2 колонки на телефоне, 3 на ширине ≥560px. */
.grid.masonry{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));grid-auto-rows:6px;column-gap:8px;row-gap:8px;grid-auto-flow:row dense} /* 105px: плотные 3 колонки в телефонной рамке, горизонтальный кадр — на 2 из 3 */
.grid.masonry .gph{aspect-ratio:auto;margin:0}
.grid.masonry .gph.land{grid-column:span 2}            /* горизонтальный кадр — широкий тайл */
.grid.masonry .gph img{width:100%;height:100%;display:block;object-fit:cover;background:#15130d}
/* Сердце-лайк — справа сверху, крупное и «пухлое» (SVG), как на референсе */
.ph-like{position:absolute;right:6px;top:6px;width:34px;height:34px;border:none;background:none;cursor:pointer;padding:2px;
  display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:transform .15s;z-index:2}
.ph-like svg{width:100%;height:100%;display:block;filter:drop-shadow(0 1px 3px rgba(0,0,0,.55))}
.ph-like svg path{fill:rgba(255,255,255,.20);stroke:#fff;stroke-width:1.7;transition:fill .15s,stroke .15s}
.ph-like.on svg path{fill:var(--accent);stroke:var(--accent)}
.ph-like.on svg{filter:drop-shadow(0 0 7px rgba(201,168,76,.7)) drop-shadow(0 1px 2px rgba(0,0,0,.45))}
.ph-like:active{transform:scale(1.25)}
.lb-btn svg{width:20px;height:20px;display:block}
.lb-btn#lbLike svg{width:24px;height:24px;display:block}
.lb-btn#lbLike svg path{fill:rgba(255,255,255,.20);stroke:#fff;stroke-width:1.7;transition:fill .15s,stroke .15s}
.lb-btn#lbLike.on{background:rgba(201,168,76,.18)}
.lb-btn#lbLike.on svg path{fill:var(--accent);stroke:var(--accent)}
.lb-btn#lbLike.on svg{filter:drop-shadow(0 0 7px rgba(201,168,76,.7))}
.lb-btn#lbLike:active{transform:scale(1.15)}
.sec-h{align-items:center;gap:9px}
.sec-av{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#8a6c2a);color:var(--on-accent);font-family:var(--sans);font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center}
.sec-k{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sec-c{flex:0 0 auto}
.feed-note{padding:0 20px 8px;font-size:12px;color:var(--text2)}
.feed-act{color:var(--accent);cursor:pointer;font-weight:600}
/* live slideshow */
.sshow{position:absolute;inset:0;background:#000;z-index:40;overflow:hidden}
.ss-stage{position:absolute;inset:0;cursor:pointer}
.ss-slide{position:absolute;inset:0;background-size:contain;background-repeat:no-repeat;background-position:center;opacity:0;transition:opacity 1s ease}
.ss-slide.on{opacity:1}
.ss-slide.kb{animation:ssKen 5s ease-out both}
@keyframes ssKen{from{transform:scale(1.14)}to{transform:scale(1.02)}}
.ss-vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 42%,transparent 48%,rgba(0,0,0,.55));z-index:2}
.ss-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:46px 16px 16px;z-index:3;background:linear-gradient(rgba(0,0,0,.55),transparent)}
.ss-ttl{font-family:var(--serif);font-size:21px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.7)}
.ss-actions{display:flex;gap:8px;flex:0 0 auto}
.ss-cap{position:absolute;left:0;right:0;bottom:40px;text-align:center;color:#fff;font-size:15px;text-shadow:0 2px 12px rgba(0,0,0,.8);z-index:3}
.ss-cap b{font-weight:600}
.ss-dots{position:absolute;left:0;right:0;bottom:20px;display:flex;gap:5px;justify-content:center;flex-wrap:wrap;padding:0 20px;z-index:3}
.ss-dots i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.35);transition:.3s}
.ss-dots i.on{background:var(--accent);width:14px;border-radius:3px}
/* стена-сетка */
.ss-wall{display:grid;gap:4px;padding:4px}
.ss-tile{background-size:cover;background-position:center;border-radius:6px;opacity:1;transition:opacity .45s ease}
/* капсула */
.cap-screen{display:flex;flex-direction:column;align-items:center;justify-content:center}
#capCv{max-width:100%;max-height:74%;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.6)}
.cap-bar{position:absolute;left:0;right:0;bottom:0;padding:18px 22px calc(22px + env(safe-area-inset-bottom));background:linear-gradient(transparent,rgba(0,0,0,.7))}
.cap-bar .btn{width:100%;justify-content:center}
.cap-fmt{display:flex;gap:8px;margin-bottom:12px;justify-content:center}
.cap-fmt span{flex:1;max-width:110px;display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 4px;border:1px solid rgba(255,255,255,.2);border-radius:12px;color:rgba(255,255,255,.7);font-size:14px;font-weight:600;cursor:pointer;transition:.2s}
.cap-fmt span small{font-size:10px;font-weight:400;opacity:.7}
.cap-fmt span.on{border-color:var(--accent);background:rgba(201,168,76,.12);color:var(--accent)}
.gph.locked::after{content:'🔒';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--label);font-size:18px}
/* camera */
.cam{position:absolute;inset:0;background:#000;display:flex;flex-direction:column;z-index:30}
.cam video,.cam .vfimg{flex:1;width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.cam video.mirror{transform:scaleX(-1)}
/* зум-контрол */
.cam-zoom{position:absolute;bottom:215px;left:50%;transform:translateX(-50%);z-index:6;display:flex;align-items:center;gap:10px;background:rgba(0,0,0,.5);backdrop-filter:blur(8px);padding:7px 12px;border-radius:30px}
.cam-zoom input[type=range]{width:120px;accent-color:var(--accent);height:3px}
.cam-zoom .zoom-step{width:28px;height:28px;border-radius:50%;border:none;background:rgba(255,255,255,.16);color:#fff;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.cam-zoom .zoom-val{color:#fff;font-size:12px;font-variant-numeric:tabular-nums;min-width:26px;text-align:center}
/* кнопка смены камеры */
.cam-flipcam{position:absolute;right:20px;bottom:215px;z-index:6;width:46px;height:46px;border-radius:50%;background:rgba(0,0,0,.5);backdrop-filter:blur(8px);color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .3s}
.cam-flipcam:active{transform:rotate(180deg) scale(.9)}
.cam-dual{position:absolute;right:20px;bottom:272px;z-index:6;width:46px;height:46px;border-radius:50%;background:rgba(0,0,0,.5);backdrop-filter:blur(8px);color:#fff;font-size:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;line-height:1;gap:1px}
.cam-dual span{font-size:8px;letter-spacing:.04em;opacity:.85}
.cam-dual.on{background:var(--accent);color:var(--on-accent)}
.cam-dual:active{transform:scale(.9)}
#torchBtn.on{background:var(--accent);color:var(--on-accent)}
/* серия при удержании шторки */
.shutter.bursting{animation:burstPulse .5s ease-in-out infinite;border-color:var(--accent)}
@keyframes burstPulse{0%,100%{box-shadow:0 0 0 0 rgba(201,168,76,.5)}50%{box-shadow:0 0 0 10px rgba(201,168,76,0)}}
.cam .vig{position:absolute;inset:0;box-shadow:inset 0 0 120px rgba(0,0,0,.65);pointer-events:none}
.cam .ctop{position:absolute;top:calc(env(safe-area-inset-top,20px) + 26px);left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 20px;z-index:5}
.cam-title{flex:1;min-width:0;text-align:center;font-family:var(--serif);font-size:21px;color:#fff;line-height:1.1;text-shadow:0 2px 12px rgba(0,0,0,.6);overflow:hidden}
.cam-title span{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.05em;color:rgba(255,255,255,.82);margin-top:3px;font-weight:500}
.cam-qr{flex:0 0 auto;width:46px;height:46px;border-radius:11px;background:#fff;padding:5px;display:flex;align-items:center;justify-content:center;cursor:pointer;border:2px solid #C9A84C;box-shadow:0 2px 8px rgba(0,0,0,.45)}
.cam-qr img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.cam-qr:active{transform:scale(.94)}
.qj-qr{width:200px;height:200px;margin:4px auto 14px;background:#fff;border-radius:16px;padding:12px;display:flex;align-items:center;justify-content:center}
.qj-qr img,.qj-qr canvas{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;display:block}
.qj-link{font-size:12.5px;color:var(--text2);word-break:break-all;margin-bottom:16px;font-family:ui-monospace,monospace}
.icobtn{width:40px;height:40px;border-radius:50%;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;font-size:18px;border:none}
.counter{position:absolute;top:calc(env(safe-area-inset-top,20px) + 26px);left:50%;transform:translateX(-50%);z-index:6;border:1.5px solid var(--accent);border-radius:8px;
  padding:5px 12px;background:rgba(0,0,0,.5);color:var(--accent);font-size:13px;display:flex;align-items:center;gap:7px;font-variant-numeric:tabular-nums}
.counter .num{font-size:17px;font-weight:600}
.camfilters{position:absolute;bottom:150px;left:50%;transform:translateX(-50%);width:206px;display:flex;gap:14px;padding:0 79px;overflow-x:auto;scroll-snap-type:x mandatory;z-index:5}
.camfilters::-webkit-scrollbar{display:none}
.cf{flex:0 0 auto;text-align:center;cursor:pointer;scroll-snap-align:center;opacity:.55;transition:opacity .2s,transform .2s}
.cf .sw{width:48px;height:48px;border-radius:12px;border:2px solid transparent;background:#333;background-size:cover;transition:transform .2s,border-color .2s}
.cf.on{opacity:1}
.cf.on .sw{border-color:var(--accent);transform:scale(1.16)}
.cf .nm{font-size:10px;color:rgba(255,255,255,.72);margin-top:6px;text-shadow:0 1px 3px rgba(0,0,0,.75)}
.cf.on .nm{color:#fff;font-weight:600}
.cambar{position:absolute;bottom:0;left:0;right:0;height:135px;display:flex;align-items:center;justify-content:space-between;padding:0 18px 26px;z-index:5}
.cam-side{display:flex;align-items:center;gap:14px}
.cam-side.cam-left{align-items:flex-start}
.shutter{position:absolute;left:50%;bottom:42px;transform:translateX(-50%);width:76px;height:76px;border-radius:50%;border:4px solid #C9A84C;background:rgba(255,255,255,.15);cursor:pointer}
.shutter:active{transform:translateX(-50%) scale(.92)}
.cam-count{display:flex;flex-direction:column;align-items:center;gap:5px;flex:0 0 auto}
.cam-count-l{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.flip.flip-cam{width:44px;height:38px;perspective:160px;filter:drop-shadow(0 3px 9px rgba(0,0,0,.55))}
.flip.flip-cam .flip-half .d{font-size:26px}
.thumb{width:46px;height:46px;border-radius:10px;background:#222;background-size:cover;border:1px solid #444}
.flash{position:absolute;inset:0;background:#fff;opacity:0;z-index:10;pointer-events:none}
.flash.on{animation:flash .25s}
@keyframes flash{0%{opacity:0}30%{opacity:.85}100%{opacity:0}}
.camnote{position:absolute;bottom:118px;left:0;right:0;text-align:center;font-size:11px;color:rgba(255,255,255,.6);z-index:5}
/* reveal */
.reveal{position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,#1a1610,#0B0B0B);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;z-index:30}
.reveal .glow{position:absolute;inset:0;opacity:0;transition:opacity 1.2s;background:radial-gradient(circle at 50% 45%,rgba(201,168,76,.18),transparent 60%);pointer-events:none}
.reveal .glow.on{opacity:1}
.rttl{font-family:var(--serif);font-size:28px;margin-bottom:6px}
.rsub{color:var(--text2);font-size:13.5px;margin-bottom:26px}
.revgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;width:100%;max-width:300px}
.revgrid .rp{aspect-ratio:1;border-radius:9px;background-size:cover;background-position:center;background-color:#222;
  filter:blur(14px) brightness(.5);transform:scale(.96);transition:filter 1.1s,transform 1.1s,box-shadow 1.1s}
.revgrid.done .rp{filter:blur(0) brightness(1);transform:scale(1);box-shadow:0 0 0 1px rgba(201,168,76,.25)}
.rcount{color:var(--accent);font-size:13px;letter-spacing:.06em;margin-top:20px;font-variant-numeric:tabular-nums}
/* join */
.join{flex:1;display:flex;flex-direction:column;justify-content:center;padding:40px 24px;text-align:center}
.join h1{margin-bottom:10px}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--surface);border:1px solid var(--border);
  color:var(--paper);padding:12px 20px;border-radius:30px;font-size:13px;z-index:300;opacity:0;transition:opacity .3s;pointer-events:none}
.toast.on{opacity:1}
.devhint{font-size:11px;color:var(--label);text-align:center;padding:6px 20px;line-height:1.5}
.createbtn.ghost{background:transparent;border:1px solid var(--border);color:var(--paper)}
/* app calendar */
.ac-top{display:flex;align-items:center;justify-content:center;gap:14px;margin:8px 0 12px}
.ac-nav{width:34px;height:34px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--paper);font-size:16px;cursor:pointer}
.ac-top b{font-family:var(--serif);font-weight:400;font-size:19px;min-width:150px;text-align:center}
.ac-head{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}
.ac-head span{font-size:9px;color:var(--label);text-align:center;text-transform:uppercase;letter-spacing:.03em}
.ac-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.ac-cell{min-width:0;min-height:60px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px;overflow:hidden;display:flex;flex-direction:column;gap:2px}
.ac-cell.empty{background:transparent;border:none;min-height:0}
.ac-cell.has{border-color:rgba(201,168,76,.4)}
.ac-d{font-size:10px;color:var(--text2)}
.ac-ev{font-size:8.5px;background:rgba(201,168,76,.16);color:var(--accent);border-radius:4px;padding:2px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.ac-more{font-size:8.5px;color:var(--label)}

/* ---------- CREATE WIZARD (stepped) ---------- */
.wiz{flex:1;display:flex;flex-direction:column;padding:54px 22px 30px;position:relative;min-height:0}
.dots{display:flex;gap:6px;justify-content:center;margin-bottom:26px}
.dots i{width:6px;height:6px;border-radius:50%;background:var(--border);transition:.3s}
.dots i.on{background:var(--accent);width:20px;border-radius:4px}
.wstep{display:none;flex:1;flex-direction:column;animation:wfade .32s ease}
.wstep.on{display:flex}
@keyframes wfade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.wq{font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.08;margin-bottom:10px}
.whint{color:var(--text2);font-size:14px;line-height:1.5;margin-bottom:22px}
/* шаблоны сообщений — горизонтальная карусель, видно ~2, остальные свайпом */
.sugg{display:flex;gap:8px;margin-top:12px;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  padding:4px 0 6px;mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 28px),transparent 100%)}
.sugg::-webkit-scrollbar{display:none}
.sugg span{flex:0 0 auto;max-width:60%;font-size:13px;color:var(--text2);border:1px solid var(--border);padding:11px 14px;min-height:44px;display:inline-flex;align-items:center;border-radius:30px;cursor:pointer;transition:.2s;box-sizing:border-box;scroll-snap-align:start;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
.sugg span:first-child{margin-left:4px}
.sugg span:last-child{margin-right:4px}
.sugg span:active{border-color:var(--accent);color:var(--paper)}
/* поле сообщения — textarea с авто-ростом + glow по фокусу */
.msg-help{color:var(--text2);font-weight:400;text-transform:none;letter-spacing:0;margin-left:8px;font-size:11px}
.msg-wrap{position:relative;border-radius:14px;transition:box-shadow .35s ease,border-color .35s ease}
.msg-wrap textarea{
  width:100%;background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:14px 40px 30px 14px;color:var(--paper);font-size:16px;line-height:1.42;
  font-family:var(--sans);outline:none;resize:none;display:block;min-height:54px;max-height:160px;
  transition:border-color .25s,height .18s;box-sizing:border-box
}
.msg-wrap textarea::placeholder{color:var(--text2)}
.msg-wrap textarea:focus{border-color:var(--accent)}
/* glow вокруг поля при открытой клавиатуре */
.msg-wrap.focus{box-shadow:0 0 0 1px rgba(201,168,76,.55), 0 0 24px 2px rgba(201,168,76,.32), 0 0 56px -4px rgba(201,168,76,.22)}
.msg-wrap.focus textarea{border-color:var(--accent)}
/* затухающий «жест размытия» при закрытии клавиатуры */
.msg-wrap.blur-out{animation:msgBlurOut .42s ease both}
@keyframes msgBlurOut{
  0%{box-shadow:0 0 0 1px rgba(201,168,76,.55), 0 0 24px 2px rgba(201,168,76,.32); filter:blur(0)}
  50%{filter:blur(.6px)}
  100%{box-shadow:0 0 0 0 rgba(201,168,76,0); filter:blur(0)}
}
.msg-clear{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;
  border:none;background:rgba(255,255,255,.07);color:var(--text2);font-size:13px;line-height:1;
  cursor:pointer;display:none;align-items:center;justify-content:center;transition:background .15s,color .15s}
.msg-clear:hover{background:rgba(255,255,255,.14);color:var(--paper)}
.msg-counter{position:absolute;right:12px;bottom:8px;font-size:11px;color:var(--text2);pointer-events:none;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.msg-counter.hi{color:var(--accent)}
.bigtypes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bigtype{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:18px 16px;cursor:pointer;display:flex;align-items:center;gap:12px;transition:.2s}
.bigtype.on{border-color:var(--accent);background:var(--chip-on);box-shadow:0 0 0 1px var(--accent) inset}
.bigtype .nm{font-size:16px}
.wspacer{flex:1;min-height:18px}
.wnav{display:flex;gap:10px;margin-top:14px}
.nextbtn{flex:1;padding:15px;border-radius:40px;background:var(--accent);color:var(--on-accent);font-weight:600;border:none;cursor:pointer;font-size:15px;font-family:var(--sans)}
.nextbtn:active{transform:scale(.98)}
.backbtn{padding:15px 22px;border-radius:40px;background:transparent;border:1px solid var(--border);color:var(--paper);cursor:pointer;font-size:15px;font-family:var(--sans)}

/* ---------- WIZARD INLINE CALENDAR (dark) ---------- */
.wcal{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px}
.wc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.wc-top b{font-family:var(--serif);font-weight:400;font-size:18px}
.wc-nav{width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--paper);font-size:15px;cursor:pointer}
.wc-nav:hover{border-color:var(--accent);color:var(--accent)}
.wc-head{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:4px}
.wc-head span{font-size:10px;color:var(--label);text-align:center;text-transform:uppercase}
.wc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.wc-d{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:14px;border-radius:8px;cursor:pointer;color:var(--paper);font-variant-numeric:tabular-nums}
.wc-d.mut{visibility:hidden;pointer-events:none}
.wc-d:hover{background:var(--bg)}
.wc-d.today{box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}
.wc-d.sel{background:var(--accent);color:var(--on-accent);font-weight:600}
.wc-cap{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--label);margin:14px 0 8px}
.wc-times{display:flex;gap:6px}
.wc-time{flex:1;text-align:center;font-size:13px;padding:9px 0;border:1px solid var(--border);border-radius:9px;cursor:pointer;color:var(--text2);font-variant-numeric:tabular-nums}
.wc-time.on{border-color:var(--accent);color:var(--accent);background:var(--chip-on);font-weight:600}

/* ---------- RING COUNTER (camera dial) ---------- */
/* перекидной счётчик (split-flap) */
.flipwrap{position:absolute;left:14px;bottom:150px;z-index:6;display:flex;flex-direction:column;align-items:flex-start}
.flip{position:relative;width:56px;height:48px;perspective:200px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.55))}
.flip-half,.flip-leaf{position:absolute;left:0;right:0;height:50%;overflow:hidden;background:#171717}
.flip-half .d,.flip-leaf .d{position:absolute;left:0;right:0;height:200%;display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-weight:700;font-size:36px;color:#f4f4f4;font-variant-numeric:tabular-nums}
.flip-half.top,.flip-leaf.top{top:0;border-radius:11px 11px 0 0;border-bottom:2px solid #000}
.flip-half.bottom,.flip-leaf.bottom{bottom:0;border-radius:0 0 11px 11px;background:#121212}
.flip-half.top .d,.flip-leaf.top .d{top:0}
.flip-half.bottom .d,.flip-leaf.bottom .d{bottom:0}
.flip-leaf{display:none;z-index:5;backface-visibility:hidden}
.flip-leaf.top{transform-origin:bottom center;background:#1c1c1c}
.flip-leaf.bottom{transform-origin:top center;background:#101010}
.flip.low .flip-half .d,.flip.low .flip-leaf .d{color:#E07A5F}
.flip-lbl{margin-top:6px;font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.78);background:rgba(0,0,0,.42);padding:3px 8px;border-radius:20px;backdrop-filter:blur(4px)}
/* флип-счётчик внутри виджета */
.wg-flipcard{align-items:center;justify-content:space-between}
.flip.flip-wg{position:relative;width:104px;height:88px;perspective:none;margin:2px auto;filter:drop-shadow(0 5px 14px rgba(0,0,0,.55))}
.flip.flip-wg .flip-half .d{font-size:66px}
.flip.flip-wg.low .flip-half .d{color:#E07A5F}
.cam-tools{display:flex;gap:12px}

/* ---------- INVITE CONSTRUCTOR ---------- */
.inv-card{position:relative;aspect-ratio:3/4;border-radius:18px;overflow:hidden;border:1px solid var(--border);
  background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:30px 24px;margin-bottom:18px}
.inv-kicker{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.inv-names{font-family:var(--inv-font,var(--serif));font-weight:var(--inv-font-w,400);font-size:calc(31px * var(--inv-font-scale,1));line-height:1.1;margin-bottom:12px;
  /* перенос только по пробелам, не рвём по дефисам типа «11-А» */
  word-break:keep-all;overflow-wrap:break-word;hyphens:manual;
  /* красивая балансировка строк (поддержано в свежих браузерах) */
  text-wrap:balance;
  padding:0 6px;max-width:100%}
.inv-date{font-size:13px;letter-spacing:.06em;color:var(--paper);margin-bottom:14px}
.inv-msg{font-size:12.5px;color:var(--text2);max-width:82%;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.inv-deco{display:none;position:absolute;inset:0;pointer-events:none}
.inv-orn{position:absolute;inset:0;pointer-events:none;z-index:1}
.inv-card.has-orn .inv-deco{display:none!important}
.inv-card .inv-kicker,.inv-card .inv-names,.inv-card .inv-date,.inv-card .inv-msg{position:relative;z-index:2}
.inv-photo{display:none;background:var(--cover,linear-gradient(135deg,#5a4a3a,#241c14));background-size:cover;background-position:center;flex:0 0 auto;position:relative;z-index:2}
.inv-card.nc .inv-photo::after{content:"📷 фото";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:.05em;color:rgba(255,255,255,.55)}

/* каркас: фото на весь экран */
.inv-card.t-photo{justify-content:flex-end;padding:24px}
.inv-card.t-photo .inv-photo{display:block;position:absolute;inset:0}
.inv-card.t-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,11,.12),rgba(11,11,11,.55) 55%,rgba(11,11,11,.92))}
.inv-card.t-photo .inv-kicker,.inv-card.t-photo .inv-names,.inv-card.t-photo .inv-date{position:relative;z-index:2}
.inv-card.t-photo .inv-msg{display:none}

/* каркас: круг */
.inv-card.t-circle{justify-content:flex-start;padding-top:38px;background:radial-gradient(circle at 50% 24%,#1c1812,#0e0c08)}
.inv-card.t-circle .inv-photo{display:block;width:152px;height:152px;border-radius:50%;border:3px solid var(--accent);margin-bottom:22px;box-shadow:0 10px 28px rgba(0,0,0,.45)}

/* каркас: арка */
.inv-card.t-arch{justify-content:flex-start;padding-top:32px;background:radial-gradient(circle at 50% 24%,#1b1711,#100d08)}
.inv-card.t-arch .inv-photo{display:block;width:72%;height:46%;border-radius:110px 110px 14px 14px;border:2px solid var(--accent);margin-bottom:20px}

/* каркас: сердце */
.inv-card.t-heart{justify-content:flex-start;padding-top:36px;background:radial-gradient(circle at 50% 24%,#1f1414,#100808)}
.inv-card.t-heart .inv-photo{display:block;width:176px;height:156px;margin-bottom:22px;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/></svg>") center/contain no-repeat}

/* оформление фона карточки: рамка + уголки-флёроны (под тему) */
.inv-card.t-circle .inv-deco,.inv-card.t-arch .inv-deco,.inv-card.t-heart .inv-deco{display:block;inset:14px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:14px}
.inv-card.t-circle .inv-deco::before,.inv-card.t-arch .inv-deco::before,.inv-card.t-heart .inv-deco::before{content:"❧";position:absolute;top:3px;left:10px;color:var(--accent);opacity:.6;font-size:20px;line-height:1}
.inv-card.t-circle .inv-deco::after,.inv-card.t-arch .inv-deco::after,.inv-card.t-heart .inv-deco::after{content:"❧";position:absolute;bottom:3px;right:10px;color:var(--accent);opacity:.6;font-size:20px;line-height:1;transform:rotate(180deg)}

/* классика — двойная рамка, без фото */
.inv-card.t-classic{background:radial-gradient(circle at 50% 32%,#1d1812,#0e0c08)}
.inv-card.t-classic .inv-deco{display:block;inset:15px;border:1px solid var(--accent);opacity:.55}
.inv-card.t-classic .inv-deco::after{content:"";position:absolute;inset:5px;border:1px solid var(--accent);opacity:.5}

/* минимал — без фото */
.inv-card.t-minimal{background:#0e0c08}
.inv-card.t-minimal .inv-names{font-size:calc(36px * var(--inv-font-scale,1))}
.inv-card.t-minimal .inv-date{border-top:1px solid var(--border);padding-top:13px;margin-top:2px}
.inv-card.t-minimal .inv-kicker{color:var(--text2)}
/* Светлые «Canva»-фоны: светлый фон → тёмный текст. Идут ПОСЛЕ template-правил, чтобы выигрывать по специфичности. */
.inv-card.light{color:#241F1A;border-color:rgba(40,32,16,.1)}
.inv-card.light .inv-kicker{color:#9A7A2C}
.inv-card.light .inv-names{color:#241F1A}
.inv-card.light .inv-date{color:#5A5248}
.inv-card.light .inv-msg{color:#6B6358}
.inv-card.light .inv-deco{border-color:rgba(154,122,44,.55)}
.inv-card.light.t-minimal{background:#FBF6EC}
.inv-card.light.t-minimal .inv-kicker{color:#9A7A2C}
.inv-card.light.t-minimal .inv-date{border-top-color:rgba(40,32,16,.14)}
.inv-card.light.nc .inv-photo::after{color:rgba(40,37,32,.5)}
.inv-card.light.t-photo::after{background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(40,32,20,.18) 60%,rgba(40,32,20,.42))}

/* === Дизайнерские шаблоны 1:1 по Canva === */
/* Свадьба «Soft Colors»: кремовый фон, акварельная флораль по углам, центрированный сериф, QR-бокс, кредит */
.inv-card.t-soft{background:#F4EFE2;color:#6E5C42;justify-content:flex-start;padding:0;overflow:hidden}
.inv-card.t-soft .soft-in{position:relative;z-index:2;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;text-align:center;padding:13% 9% 6%}
.inv-card.t-soft .inv-kicker{color:#A78F66;letter-spacing:.34em;font-size:10px;text-transform:uppercase;margin:0 0 12px}
.inv-card.t-soft .inv-names{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;color:#6E5C42;font-size:30px;line-height:1.08;margin:0 0 4px}
.inv-card.t-soft .inv-date{font-family:'Cormorant Garamond',Georgia,serif;color:#8A7656;font-size:22px;letter-spacing:.05em;margin:0 0 12px}
.inv-card.t-soft .soft-rule{display:flex;align-items:center;gap:7px;width:58%;margin:0 0 12px}
.inv-card.t-soft .soft-rule span{flex:1;height:1px;background:#C6B188}
.inv-card.t-soft .soft-rule i{width:4px;height:4px;border-radius:50%;background:#C6B188}
.inv-card.t-soft .inv-msg{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;color:#9A8B6E;font-size:13.5px;line-height:1.5;max-width:88%;margin:0 0 14px}
.inv-card.t-soft .soft-qrbox{width:26%;aspect-ratio:1;border:1px solid #C6B188;border-radius:3px;background:#FBF8F0;display:flex;align-items:center;justify-content:center;margin:0 0 auto}
.inv-card.t-soft .soft-qrbox canvas{width:84%;height:84%}
.inv-card.t-soft .soft-credit{font-size:9px;letter-spacing:.07em;color:#A8966E;margin-top:8px}
.inv-card.t-soft .soft-fl{position:absolute;bottom:0;width:48%;z-index:1;line-height:0;pointer-events:none}
.inv-card.t-soft .soft-fl.l{left:-3%}
.inv-card.t-soft .soft-fl.r{right:-3%;transform:scaleX(-1)}
.inv-card.t-soft .soft-fl svg{width:100%;height:auto;display:block}
/* Вечеринка «Club Vibes»: тёмный фон, неоновый радиальный взрыв, жёлтый тайтл, светящийся QR-квадрат, молнии */
.inv-card.t-club{background:#160A35;color:#FFE000;justify-content:flex-start;padding:0;overflow:hidden}
.inv-card.t-club .club-burst{position:absolute;inset:-25%;z-index:0;
  background:repeating-conic-gradient(from 0deg at 50% 42%,#ff2e9a 0deg 1.6deg,transparent 1.6deg 5deg,#2effe0 5deg 6.4deg,transparent 6.4deg 10deg,#8a2eff 10deg 11.6deg,transparent 11.6deg 15deg,#ffd000 15deg 16.6deg,transparent 16.6deg 20deg,#ff7a2e 20deg 21.6deg,transparent 21.6deg 25deg);
  -webkit-mask:radial-gradient(circle at 50% 42%,#000 6%,rgba(0,0,0,.9) 26%,transparent 70%);
  mask:radial-gradient(circle at 50% 42%,#000 6%,rgba(0,0,0,.9) 26%,transparent 70%);opacity:.92}
.inv-card.t-club::after{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 50% 42%,transparent 28%,#160A35 80%)}
.inv-card.t-club .club-in{position:relative;z-index:2;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;text-align:center;padding:10% 8% 6%}
.inv-card.t-club .inv-kicker{color:#2EFFE0;letter-spacing:.3em;font-size:10px;text-transform:uppercase;text-shadow:0 0 8px rgba(46,255,224,.8);margin:0 0 6px}
.inv-card.t-club .inv-names{font-family:'Arial Black','Inter',system-ui,sans-serif;font-weight:900;color:#FFE000;font-size:44px;line-height:.95;letter-spacing:-.01em;text-shadow:0 2px 0 #B58A00,0 0 22px rgba(255,224,0,.55);transform:rotate(-3deg);margin:0 0 14px;word-break:break-word}
.inv-card.t-club .inv-date{color:#FFE000;font-weight:700;font-size:18px;letter-spacing:.04em;text-shadow:0 0 10px rgba(255,224,0,.5);margin:0 0 14px}
.inv-card.t-club .club-qrbox{width:34%;aspect-ratio:1;border-radius:8px;background:#FFE000;display:flex;align-items:center;justify-content:center;margin:0 0 auto;border:2px solid #fff;box-shadow:0 0 0 4px #160A35,0 0 18px 4px rgba(255,224,0,.7),0 0 38px 10px rgba(46,255,224,.4)}
.inv-card.t-club .club-qrbox canvas{width:84%;height:84%}
.inv-card.t-club .inv-msg{color:#FFE000;font-size:12px;line-height:1.45;max-width:86%;text-shadow:0 0 8px rgba(255,224,0,.4);margin:14px 0 0}
.inv-card.t-club .club-bolt{position:absolute;z-index:1;width:13%;filter:drop-shadow(0 0 6px rgba(255,224,0,.7));pointer-events:none}
.inv-card.t-club .club-bolt.tl{top:5%;left:5%}
.inv-card.t-club .club-bolt.br{bottom:5%;right:5%;transform:rotate(180deg)}
.inv-card.t-club .club-bolt svg{width:100%;height:auto;display:block}

.inv-tpls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.inv-tpl{font-size:13px;padding:11px 15px;min-height:44px;display:inline-flex;align-items:center;border-radius:30px;border:1px solid var(--border);color:var(--text2);cursor:pointer;transition:.2s;box-sizing:border-box}
.inv-tpl.on{border-color:var(--accent);color:var(--accent);background:var(--chip-on);font-weight:600}
.inv-bggrps{display:flex;gap:7px;overflow-x:auto;margin-bottom:10px;-webkit-overflow-scrolling:touch}
.inv-bggrps::-webkit-scrollbar{display:none}
.inv-bggrp{flex:0 0 auto;font-size:12.5px;padding:7px 13px;border-radius:30px;border:1px solid var(--border);color:var(--text2);cursor:pointer;white-space:nowrap}
.inv-bggrp.on{border-color:var(--accent);color:var(--accent);background:var(--chip-on);font-weight:600}
.inv-bgs{display:flex;gap:9px;overflow-x:auto;padding-bottom:6px;margin-bottom:16px;-webkit-overflow-scrolling:touch}
.inv-bgs::-webkit-scrollbar{display:none}
.inv-bg{flex:0 0 auto;cursor:pointer;text-align:center}
.inv-bg-sw{display:block;width:46px;height:60px;border-radius:11px;border:2px solid transparent;background-position:center}
.inv-bg.on .inv-bg-sw{border-color:var(--accent)}
.inv-bg-n{display:block;font-size:9px;color:var(--text2);margin-top:4px;max-width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-bg.on .inv-bg-n{color:var(--accent)}
.inv-upload{display:block;text-align:center;font-size:13.5px;padding:13px;border:1px dashed var(--border);border-radius:14px;color:var(--text2);cursor:pointer;margin-bottom:18px}
.inv-upload:active{border-color:var(--accent)}
.inv-qr{width:130px;height:130px;background:#fff;border-radius:12px;padding:8px;margin:0 auto 14px}
.inv-qr img,.inv-qr canvas{width:100%;height:100%;display:block;border-radius:4px}
.inv-share{display:flex;gap:11px;justify-content:center;margin-bottom:16px}
.ish{width:50px;height:50px;border-radius:15px;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s,transform .15s}
.ish:hover{border-color:var(--accent);transform:translateY(-2px)}
.ish img,.ish svg{width:25px;height:25px;display:block}

/* ---------- DESKTOP: показываем мобильное приложение в рамке телефона ---------- */
/* bottom tab bar */
.tabbar{flex:0 0 auto;display:flex;border-top:1px solid var(--border);background:var(--bar);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:8px 0 calc(8px + env(safe-area-inset-bottom))}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--text2);font-size:10.5px;letter-spacing:.02em;cursor:pointer;transition:color .18s;-webkit-tap-highlight-color:transparent}
.tab svg{opacity:.8;transition:opacity .18s}
.tab.on{color:var(--accent)}
.tab.on svg{opacity:1}
/* кабинет */
.pcard{margin:14px 0;padding:20px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(160deg,#1a1610,#100d09)}
.pcard-h{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--text2);margin-bottom:6px}
.pcard-plan{font-family:var(--serif);font-size:30px;color:var(--accent);line-height:1}
.pcard-d{font-size:13px;color:var(--text2);margin:6px 0 16px}
.pstats{display:flex;gap:12px}
.pstat{flex:1;text-align:center;padding:16px;border:1px solid var(--border);border-radius:14px}
.pstat b{display:block;font-family:var(--serif);font-size:26px}
.pstat span{font-size:12px;color:var(--text2)}
/* аккордеон конструктора приглашения */
.acc{border:1px solid var(--border);border-radius:14px;margin-bottom:10px;background:var(--surface);overflow:hidden}
.acc-h{display:flex;align-items:center;gap:10px;padding:15px 16px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.acc-t{font-size:14.5px;font-weight:500}
.acc-cur{flex:1;text-align:right;font-size:13px;color:var(--accent)}
.acc-chev{flex:0 0 auto;font-size:20px;color:var(--text2);transition:transform .2s;line-height:1}
.acc.open .acc-chev{transform:rotate(90deg)}
.acc-b{max-height:0;opacity:0;overflow:hidden;padding:0 16px;transition:max-height .3s ease,opacity .25s ease,padding .3s ease}
.acc.open .acc-b{max-height:640px;opacity:1;padding:2px 16px 16px}
.acc-b .inv-tpls{margin-bottom:0}
/* виджеты */
/* ===== Виджет «Светлый» (бутик-паспарту, утверждённый standalone-дизайн) ===== */
.wgl{position:relative;display:block;width:min(80%,292px);margin:10px auto 0;padding:28px 22px 24px;cursor:pointer;text-align:center;
  --nr:7px;--no:30px;
  background:linear-gradient(180deg,#fdfdfb 0%,#f6f4ee 100%);border-radius:14px;transition:transform .14s ease;
  -webkit-mask:
    radial-gradient(var(--nr) at var(--no) 0,#0000 97%,#000),
    radial-gradient(var(--nr) at calc(100% - var(--no)) 0,#0000 97%,#000),
    radial-gradient(var(--nr) at var(--no) 100%,#0000 97%,#000),
    radial-gradient(var(--nr) at calc(100% - var(--no)) 100%,#0000 97%,#000),
    radial-gradient(var(--nr) at 0 var(--no),#0000 97%,#000),
    radial-gradient(var(--nr) at 0 calc(100% - var(--no)),#0000 97%,#000),
    radial-gradient(var(--nr) at 100% var(--no),#0000 97%,#000),
    radial-gradient(var(--nr) at 100% calc(100% - var(--no)),#0000 97%,#000);
  -webkit-mask-composite:source-in;
  mask:
    radial-gradient(var(--nr) at var(--no) 0,#0000 97%,#000),
    radial-gradient(var(--nr) at calc(100% - var(--no)) 0,#0000 97%,#000),
    radial-gradient(var(--nr) at var(--no) 100%,#0000 97%,#000),
    radial-gradient(var(--nr) at calc(100% - var(--no)) 100%,#0000 97%,#000),
    radial-gradient(var(--nr) at 0 var(--no),#0000 97%,#000),
    radial-gradient(var(--nr) at 0 calc(100% - var(--no)),#0000 97%,#000),
    radial-gradient(var(--nr) at 100% var(--no),#0000 97%,#000),
    radial-gradient(var(--nr) at 100% calc(100% - var(--no)),#0000 97%,#000);
  mask-composite:intersect}
.wgl:active{transform:scale(.985)}
.wgl::before{content:'';position:absolute;inset:14px;border:1px solid #d8d2c4;border-radius:12px;pointer-events:none}
.wgl-fl{position:absolute;width:24px;height:24px;color:#c9a227;opacity:.65}
.wgl-fl svg{display:block;width:100%;height:100%}
.wgl-fl.tl{top:9px;left:9px}.wgl-fl.tr{top:9px;right:9px;transform:rotate(90deg)}
.wgl-fl.br{bottom:9px;right:9px;transform:rotate(180deg)}.wgl-fl.bl{bottom:9px;left:9px;transform:rotate(270deg)}
.wgl-brand{font-family:var(--serif);font-size:29px;font-weight:600;color:#2b2b2b;line-height:1}
.wgl-brand .g{color:#c9a227}
.wgl-brand-logo{max-height:40px;max-width:86%;object-fit:contain;display:block;margin:0 auto}
.wgl-orn{margin:10px 0;color:#c9a227;line-height:0}
.wgl-lbl{font-size:13px;color:#9b9488}
.wgl-time{margin-top:4px;font-family:var(--serif);font-size:30px;color:#2b2b2b;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.05}
.wgl-caps{margin-top:9px;font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;color:#9b9488}
.wgl-btn{margin-top:15px;width:72%;height:44px;border:none;border-radius:999px;cursor:pointer;
  font-family:var(--sans);font-size:13.5px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#5a4a14;
  background:linear-gradient(90deg,#e2c35c 0%,#c9a227 50%,#e2c35c 100%);
  box-shadow:inset 0 1px 2px rgba(255,255,255,.7),0 6px 14px -6px rgba(0,0,0,.3)}
/* ===== Виджет «Тёмный» (стекло + золотое кольцо + вензель, утверждённый standalone-дизайн) ===== */
.wgg{position:relative;margin-top:10px;padding:2px;border-radius:30px;cursor:pointer;
  box-shadow:0 0 36px rgba(212,175,55,.25);transition:transform .14s ease}
.wgg:active{transform:scale(.985)}
.wgg::after{content:'';position:absolute;inset:0;border-radius:30px;padding:2px;
  background:linear-gradient(160deg,#f4d77a 0%,#c9a227 52%,#8a6d1f 100%);
  -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,linear-gradient(#000 0 0);
  mask-composite:exclude;pointer-events:none}
.wgg-in{position:relative;border-radius:28px;overflow:hidden;min-height:208px;
  background:rgba(12,9,5,.45);
  -webkit-backdrop-filter:blur(4px) saturate(115%);backdrop-filter:blur(4px) saturate(115%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
  padding:24px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.wgg-mono{font-family:'Marck Script',cursive;font-size:40px;line-height:1;
  background:var(--gold-text);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 0 9px rgba(212,175,55,.45))}
.wgg-lbl{margin-top:11px;font-size:22px;font-weight:400;color:#f5f5f0}
.wgg-time{margin-top:5px;font-size:40px;font-weight:600;line-height:1.05;font-variant-numeric:tabular-nums;font-feature-settings:'tnum';white-space:nowrap;
  filter:drop-shadow(0 6px 20px rgba(212,175,55,.35))}
.wgg-time .g{background:var(--gold-text);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.wgg-time .w{color:#f5f5f0}
.wg-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0 6px}
.wg{position:relative;border-radius:22px;overflow:hidden;padding:16px;cursor:pointer;color:#fff;background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.08);box-shadow:0 12px 32px rgba(0,0,0,.5);aspect-ratio:1;display:flex;flex-direction:column;justify-content:space-between;transition:transform .15s}
.wg:active{transform:scale(.97)}
.wg-md{grid-column:1/-1;aspect-ratio:2/1;padding:0;position:relative;display:block;background-size:cover;background-position:center}
.wg-ovl{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(8,7,5,.84) 0%,rgba(8,7,5,.52) 46%,rgba(8,7,5,.12) 100%),linear-gradient(0deg,rgba(8,7,5,.5),transparent 42%)}
.wg-md .wg-left{position:absolute;inset:0;z-index:2;padding:16px 20px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px}
.wg-clock{width:124px;height:124px;border-radius:50%;background:radial-gradient(circle at 38% 32%,rgba(20,20,20,.78),rgba(5,5,5,.72));backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 2px 14px rgba(0,0,0,.6),0 6px 20px rgba(0,0,0,.5)}
.wg-clock-t{font-family:var(--sans);font-weight:700;font-size:44px;color:#fff;letter-spacing:-1px;line-height:1;font-variant-numeric:tabular-nums}
.wg-clock-sub{font-size:9.5px;color:rgba(255,255,255,.72);margin-top:5px;letter-spacing:.02em;text-align:center;max-width:100px}
.wg-md .wg-foot{text-align:left;text-shadow:0 1px 6px rgba(0,0,0,.7)}
.wg-ov{position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,0,0,.12),rgba(0,0,0,.72));z-index:0}
.wg>*{position:relative;z-index:1}
.wg-logo{font-family:var(--serif);font-size:15px;color:var(--accent)}
.wg-cap{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.wg-cap.dark{color:rgba(0,0,0,.5)}
.wg-mid,.wg-mid2{display:flex;flex-direction:column}
.wg-md .wg-mid{flex:1;justify-content:center}
.wg-big{font-family:var(--serif);font-size:52px;line-height:.92}
.wg-md .wg-big{font-size:66px}
.wg-big.sm{font-size:38px}
.wg-big.accent{color:var(--accent)}
.wg-lbl{font-size:12.5px;color:rgba(255,255,255,.84);margin-top:3px}
.wg-lbl.big{font-size:16px;font-weight:600;line-height:1.35}
.wg-lbl.dark{color:rgba(0,0,0,.6)}
.wg-foot{font-size:12px;color:rgba(255,255,255,.8)}
.wg.light{background:#F3EEE3;color:#16140f}
.wg-qr{width:60px;height:60px;border-radius:10px;align-self:flex-start}
/* переключатели пушей */
.pushrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}
.pr-c b{display:block;font-size:14.5px}
.pr-c span{display:block;font-size:12.5px;color:var(--text2);margin-top:2px}
.tgl{position:relative;flex:0 0 auto;width:46px;height:27px;cursor:pointer}
.tgl input{display:none}
.tgl i{position:absolute;inset:0;background:var(--track);border-radius:20px;transition:.2s}
.tgl i::after{content:"";position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;transition:.2s}
.tgl input:checked + i{background:var(--accent)}
.tgl input:checked + i::after{transform:translateX(19px)}
/* онбординг в пустой группе */
.onb{padding:8px 2px}
.onb-t{font-family:var(--serif);font-size:22px;margin-bottom:2px}
.onb-s{font-size:13px;color:var(--text2);margin-bottom:14px}
.onb-step{display:flex;align-items:center;gap:14px;padding:15px 16px;margin-bottom:10px;border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:.18s;background:var(--surface2)}
.onb-step:hover{border-color:var(--accent)}
.onb-step b{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--on-accent);font-size:15px;font-weight:600}
.onb-step .os-c{flex:1}
.os-t{font-size:15px;font-weight:600}
.os-d{font-size:12.5px;color:var(--text2);margin-top:1px}
.os-a{color:var(--accent);font-size:22px}

@media (min-width:560px){
  body{display:flex;align-items:center;justify-content:center;padding:24px;
    background:radial-gradient(1000px 600px at 50% -10%,#1a1510,#050505 70%)}
  #app{height:min(880px,calc(100vh - 48px));border-radius:46px;
    border:1px solid #221e18;
    box-shadow:0 40px 110px rgba(0,0,0,.65),0 0 0 9px #0a0908,0 0 0 10px #1f1c16;
    overflow:hidden}
  #app::before{content:"";position:absolute;top:12px;left:50%;transform:translateX(-50%);
    width:120px;height:26px;background:#000;border-radius:0 0 16px 16px;z-index:60}
}

/* эффект нажатия для всех кликабельных элементов */
button, .btn, .pill, .seg-i, .inv-tpl, .cf, .type, .bigtype, .createbtn, .onb-step,
.acc-h, .ish, .tab, .inv-bg, .inv-bggrp, .frames span, .card, .sugg span, .opt,
.wc-d, .wc-time, .ac-ev, .cover-edit, .cam-qr, .icobtn{
  transition:transform .09s ease, opacity .2s, border-color .2s, color .2s, background .2s;
}
button:active, .btn:active, .pill:active, .seg-i:active, .inv-tpl:active, .cf:active,
.type:active, .bigtype:active, .createbtn:active, .onb-step:active, .acc-h:active,
.ish:active, .tab:active, .inv-bg:active, .inv-bggrp:active, .frames span:active,
.card:active, .sugg span:active, .opt:active, .wc-d:active, .wc-time:active,
.ac-ev:active, .cover-edit:active, .cam-qr:active, .icobtn:active{
  transform:scale(.94);
}

/* едва заметные микроанимации */
@keyframes tileIn{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:none}}
@keyframes pageScale{from{opacity:0;transform:scale(.992)}to{opacity:1;transform:scale(1)}}
.scroll,.cam,.reveal,.join{animation:pageScale .3s ease both}
.thumb.pop{animation:thumbPop .45s cubic-bezier(.2,.8,.2,1)}
@keyframes thumbPop{0%{transform:scale(1.35);opacity:.55}100%{transform:scale(1);opacity:1}}
.grid .gph{animation:tileIn .45s cubic-bezier(.2,.7,.2,1) both}
.grid .gph:nth-child(2){animation-delay:.04s}
.grid .gph:nth-child(3){animation-delay:.08s}
.grid .gph:nth-child(4){animation-delay:.12s}
.grid .gph:nth-child(5){animation-delay:.16s}
.grid .gph:nth-child(6){animation-delay:.2s}
.grid .gph:nth-child(n+7){animation-delay:.24s}
.card{animation:tileIn .5s cubic-bezier(.2,.7,.2,1) both}
.card:nth-of-type(2){animation-delay:.07s}
.card:nth-of-type(3){animation-delay:.14s}
.card:nth-of-type(n+4){animation-delay:.2s}
.wg{animation:tileIn .5s cubic-bezier(.2,.7,.2,1) both}
.wg:nth-child(2){animation-delay:.06s}
.wg:nth-child(3){animation-delay:.12s}
.wg:nth-child(4){animation-delay:.18s}
.wg:nth-child(n+5){animation-delay:.24s}
/* пульс индикатора live */
.badge.live::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:#3fbf7f;margin-right:6px;vertical-align:middle;animation:livePulse 1.8s ease-in-out infinite}
@keyframes livePulse{0%,100%{opacity:.4;box-shadow:0 0 0 0 rgba(63,191,127,.5)}50%{opacity:1;box-shadow:0 0 0 4px rgba(63,191,127,0)}}
/* переход между экранами */
.veil{position:fixed;inset:0;z-index:150;background:#0B0B0B;opacity:0;pointer-events:none}
/* «дыхание» золотой CTA */
.btn.gold,.pill.gold,.createbtn:not(.ghost){animation:ctaGlow 3.4s ease-in-out infinite}
@keyframes ctaGlow{0%,100%{box-shadow:0 0 0 0 rgba(201,168,76,0)}50%{box-shadow:0 0 20px 0 rgba(201,168,76,.32)}}
/* Премиальные кнопки: металлический градиент + светлый контур (референс-палитра).
   Агентства залочены на наш корпоративный золотой — тот же градиент, что везде. */
.btn.gold,.pill.gold,.createbtn:not(.ghost),.nextbtn{
  background:var(--btn-grad);
  border:1px solid var(--btn-edge);
}
/* счётчик на нуле */
.flip.zero .flip-half .d{color:#E07A5F}
.flip.zero{animation:flipShake .5s ease}
@keyframes flipShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-3px)}40%{transform:translateX(3px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}
@media (prefers-reduced-motion:reduce){.grid .gph,.card,.wg,.cover,.btn.gold,.pill.gold,.createbtn,.flip.zero,.scroll,.cam,.reveal,.join,.thumb.pop{animation:none}}
/* подсказки-помощники: оставляем для важных пояснений, прячем только «MVP/в проде» */
.devhint{font-size:12px;color:var(--text2);line-height:1.5;padding:8px 0}
/* шторка апселла — калькулятор цены */
.ups-calc{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin:10px 0 14px}
.ups-row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;font-size:14px;color:var(--text2)}
.ups-row b{color:var(--paper);font-weight:600}
.ups-row.ups-tier{border-top:1px solid var(--border);padding-top:10px;margin-top:6px}
.ups-row.ups-tier b{color:var(--accent)}
.ups-pricelabel{font-size:12px;color:var(--text2);text-align:center;margin-top:4px}
.ups-price{font-family:var(--serif);font-size:36px;text-align:center;color:var(--paper);margin:4px 0 6px}
.ups-paymeta{font-size:11px;color:var(--text2);text-align:center;margin-bottom:12px}
/* иерархия действий на экране события */
.actions-main{padding:14px 20px 4px;display:flex}
.actions-main .pill.big{flex:1;font-size:16px;padding:16px 20px;font-weight:600;border-radius:32px}
.actions-row{display:flex;flex-wrap:wrap;gap:9px;padding:10px 20px 4px}
.actions-row .pill{flex:1 1 40%}
.actions-more{margin:10px 20px 0;padding:0}
.actions-more summary{padding:13px 16px;font-size:14px;font-weight:600;color:var(--accent);cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:center;gap:8px;
  border:1.5px solid var(--accent);border-radius:30px;
  background:linear-gradient(180deg,rgba(201,168,76,.10),rgba(201,168,76,.03));transition:background .2s}
.actions-more summary:hover{background:linear-gradient(180deg,rgba(201,168,76,.18),rgba(201,168,76,.06))}
.actions-more summary::-webkit-details-marker{display:none}
.actions-more summary::after{content:'›';color:var(--accent);transition:transform .2s;display:inline-block;font-size:18px}
.actions-more[open] summary::after{transform:rotate(90deg)}
.actions-more[open] summary{border-radius:20px 20px 0 0;margin-bottom:2px}
.actions-more .actions-row{padding:8px 0 8px}
/* шрифты — чипы выбора */
.inv-fonts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.inv-font{flex:0 0 auto;padding:8px 14px;border:1px solid var(--border);border-radius:24px;color:var(--paper);font-size:17px;line-height:1;cursor:pointer;transition:transform .15s,border-color .15s,background .15s}
.inv-font:active{transform:scale(.94)}
.inv-font.on{border-color:var(--accent);background:var(--chip-on);color:var(--accent)}
/* печатная QR-карточка */
/* тумблер «максимальный сюрприз» в мастере */
.blind-row{display:flex;gap:11px;align-items:flex-start;margin-top:12px;padding:13px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:14px;cursor:pointer;font-size:12.5px;line-height:1.45;color:var(--text2)}
.blind-row input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;margin-top:1px;accent-color:var(--accent);cursor:pointer}
.blind-row b{color:var(--paper);font-weight:600}
.blind-row i{color:var(--accent);font-style:normal}
.blind-row.disabled{opacity:.4;cursor:not-allowed}
/* онбординг «заряди плёнку» */
.filmload{position:fixed;inset:0;z-index:120;background:radial-gradient(circle at 50% 40%,#1a1610,#0a0907);display:flex;align-items:center;justify-content:center;animation:flFadeIn .3s ease}
.filmload.fl-out{animation:flFadeOut .38s ease forwards}
@keyframes flFadeIn{from{opacity:0}to{opacity:1}}
@keyframes flFadeOut{to{opacity:0;transform:scale(1.05)}}
.fl-stage{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.fl-canister{position:relative;width:160px;height:96px;animation:flDrop .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes flDrop{from{transform:translateY(-60px);opacity:0}to{transform:translateY(0);opacity:1}}
.fl-strip{position:absolute;left:18px;right:18px;top:50%;height:34px;transform:translateY(-50%);border-radius:5px;
  background:repeating-linear-gradient(90deg,#1a1510 0 6px,#0c0a07 6px 9px);border-top:4px solid #2a2118;border-bottom:4px solid #2a2118;
  box-shadow:inset 0 0 14px rgba(0,0,0,.7)}
.fl-spool{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;
  background:radial-gradient(circle at 40% 35%,#caa84c,#7a5e1c);box-shadow:0 4px 12px rgba(0,0,0,.5),inset 0 0 8px rgba(0,0,0,.4);animation:flSpin 1.2s linear infinite}
.fl-spool::after{content:'';position:absolute;inset:16px;border-radius:50%;background:#0c0a07;box-shadow:inset 0 0 4px rgba(201,168,76,.6)}
.fl-spool-l{left:-6px} .fl-spool-r{right:-6px;animation-direction:reverse}
@keyframes flSpin{to{transform:translateY(-50%) rotate(360deg)}}
.fl-count{font-family:var(--serif);font-size:50px;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:.04em;margin-top:8px;text-shadow:0 0 24px rgba(201,168,76,.4)}
.fl-label{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--text2)}
.fl-title{font-family:var(--serif);font-size:22px;color:var(--paper);max-width:280px}
/* viral CTA — гостю после reveal «создай своё» */
.viral-cta{display:flex;align-items:center;gap:14px;margin:14px 20px;padding:16px 18px;border-radius:16px;cursor:pointer;
  background:linear-gradient(120deg,rgba(201,168,76,.16),rgba(201,168,76,.05));border:1px solid var(--accent);
  animation:ctaGlow 3.4s ease-in-out infinite}
.viral-cta:active{transform:scale(.98)}
.vc-emoji{font-size:26px;flex:0 0 auto}
.vc-txt{flex:1;display:flex;flex-direction:column;gap:2px}
.vc-txt b{color:var(--paper);font-size:15px}
.vc-txt span{color:var(--text2);font-size:12.5px;line-height:1.4}
.vc-arr{color:var(--accent);font-size:22px;flex:0 0 auto}
/* экран загрузки фотографа */
.pu-quota{display:flex;flex-direction:column;align-items:center;margin:18px 0 16px;padding:18px;background:var(--surface2);border:1px solid var(--border);border-radius:16px}
.pu-quota-big{font-family:var(--serif);font-size:44px;color:var(--accent);line-height:1}
.pu-quota-big span{font-size:20px;color:var(--text2);margin-left:6px}
.pu-quota-l{font-size:13px;color:var(--text2);margin-top:6px}
.pu-drop{display:flex;flex-direction:column;align-items:center;gap:6px;padding:28px 20px;border:2px dashed var(--accent);border-radius:18px;cursor:pointer;background:linear-gradient(180deg,rgba(201,168,76,.06),transparent);transition:.2s;text-align:center}
.pu-drop:hover{background:linear-gradient(180deg,rgba(201,168,76,.12),transparent)}
.pu-drop.disabled{opacity:.4;cursor:not-allowed;border-color:var(--border)}
.pu-drop-ic{font-size:34px;color:var(--accent)}
.pu-drop-t{font-size:16px;font-weight:600;color:var(--paper)}
.pu-drop-d{font-size:11.5px;color:var(--text2);line-height:1.4}
.pu-note{font-size:12px;color:var(--text2);line-height:1.5;margin-top:12px;padding:0 2px}
/* лайтбокс — просмотр фото */
.lightbox{position:fixed;inset:0;z-index:80;background:rgba(8,8,8,.97);display:flex;flex-direction:column;animation:lbIn .2s ease}
@keyframes lbIn{from{opacity:0}to{opacity:1}}
.lb-top{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,20px) + 16px) 18px 10px;flex:0 0 auto}
.lb-btn{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;border:none;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb-btn.on{color:#C9A84C;background:rgba(201,168,76,.18)}
.lb-btn.lb-del{background:rgba(224,122,95,.18);color:#E07A5F}
.lb-count{color:#fff;font-size:14px;font-variant-numeric:tabular-nums}
.lb-stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.lb-img{position:absolute;inset:14px;background-size:contain;background-position:center;background-repeat:no-repeat}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;background:rgba(0,0,0,.4);backdrop-filter:blur(6px);color:#fff;border:none;font-size:26px;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center}
.lb-prev{left:12px} .lb-next{right:12px}
.lb-meta{flex:0 0 auto;text-align:center;color:rgba(255,255,255,.85);font-size:14px;padding:14px 20px calc(env(safe-area-inset-bottom,16px) + 22px)}
.lb-meta b{color:#fff}
/* Host Approval · модерация */
.mod-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:8px 0}
.mod-cell{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:transform .15s,border-color .15s}
.mod-cell:active{transform:scale(.96)}
.mod-cell.pn{border-color:rgba(255,255,255,.18)}
.mod-cell.ok{border-color:rgba(76,201,76,.55)}
.mod-cell.no{border-color:rgba(224,122,95,.55);opacity:.55}
.mod-img{position:absolute;inset:0;background-size:cover;background-position:center}
.mod-au{position:absolute;left:0;right:0;bottom:0;font-size:10px;padding:8px 6px 4px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.mod-badge{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;backdrop-filter:blur(4px)}
.mod-cell.ok .mod-badge{background:rgba(76,201,76,.85)}
.mod-cell.no .mod-badge{background:rgba(224,122,95,.85)}
.pill-dot{color:#4cc94c;margin-left:4px;font-size:9px;line-height:1;vertical-align:middle}
/* кнопка применения пресета под тип события */
.preset-btn{margin:0 0 14px;background:linear-gradient(120deg,rgba(201,168,76,.10),rgba(201,168,76,.04));border:1px solid var(--accent);color:var(--accent);font-weight:600}
.preset-btn:hover{background:linear-gradient(120deg,rgba(201,168,76,.18),rgba(201,168,76,.06))}
/* права субъекта ПДн — список «удалить мои фото» */
.rights-list{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.rights-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:12px}
.rights-c{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.rights-c b{color:var(--paper);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rights-c span{font-size:12px;color:var(--text2)}
.rights-del{flex:0 0 auto;background:transparent;color:#E07A5F;border:1px solid #E07A5F;border-radius:20px;padding:8px 14px;font-size:13px;cursor:pointer;transition:.2s}
.rights-del:hover{background:#E07A5F;color:#fff}
/* согласия 152-ФЗ на /join — компактный, не пугающий блок */
.consent{margin:12px 0 16px;padding:14px;background:var(--surface2);border:1px solid var(--border);border-radius:14px}
.consent-row{display:flex;gap:11px;align-items:flex-start;padding:8px 0;cursor:pointer;font-size:12.5px;line-height:1.45;color:var(--text2)}
.consent-row+.consent-row{border-top:1px solid var(--border)}
.consent-row input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;margin-top:2px;accent-color:var(--accent);cursor:pointer}
.consent-row b{color:var(--paper);font-weight:600}
.consent-row.consent-minor{background:rgba(201,168,76,.04);border-radius:8px;padding:8px 10px;margin-top:6px}
.consent-foot{font-size:11px;color:var(--text2);margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.consent-foot a{color:var(--accent);text-decoration:underline}
.btn:disabled{opacity:.45;cursor:not-allowed;animation:none}
/* «Карточка на стол» — подсвеченный CTA, чтобы фишка не терялась */
.prn-cta{margin-top:14px;background:linear-gradient(180deg,rgba(201,168,76,.08),rgba(201,168,76,.02));
  border:1.5px solid var(--accent);color:var(--accent);font-weight:600;letter-spacing:.01em;
  position:relative;overflow:hidden;animation:prnPulse 3.2s ease-in-out infinite;
  box-shadow:0 0 0 0 rgba(201,168,76,0)}
.prn-cta::before{content:"";position:absolute;inset:-2px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(120deg,transparent 30%,rgba(255,236,170,.18) 50%,transparent 70%);
  background-size:240% 100%;background-position:140% 0;animation:prnShine 4s ease-in-out infinite}
.prn-cta:hover{color:#fff;background:linear-gradient(180deg,rgba(201,168,76,.16),rgba(201,168,76,.06))}
@keyframes prnPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(201,168,76,.0), inset 0 0 0 0 rgba(201,168,76,0)}
  50%    {box-shadow:0 0 28px 2px rgba(201,168,76,.35), inset 0 0 12px rgba(201,168,76,.10)}
}
@keyframes prnShine{
  0%,18%{background-position:140% 0}
  62%,100%{background-position:-40% 0}
}
@media (prefers-reduced-motion:reduce){
  .prn-cta{animation:none}
  .prn-cta::before{animation:none;background:none}
}
.prn-prev{display:flex;justify-content:center;padding:8px 0 18px;perspective:1000px}
.prn-prev canvas{max-width:280px;width:100%;height:auto;border-radius:6px;box-shadow:0 14px 40px rgba(0,0,0,.55),0 2px 8px rgba(201,168,76,.18);background:#fff;transform:rotateX(2deg)}
/* Горизонтальная свайп-лента шаблонов: карточки листаются, кнопки ниже остаются на месте */
.prn-bgs{display:flex;gap:10px;margin-top:8px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 2px 10px;scrollbar-width:none}
.prn-bgs::-webkit-scrollbar{display:none}
.prn-bg{position:relative;flex:0 0 38%;min-width:120px;max-width:150px;scroll-snap-align:start;aspect-ratio:1/1.4;border-radius:10px;border:1.5px solid var(--border);overflow:hidden;cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s}
.prn-bg:active{transform:scale(.96)}
.prn-bg.on{border-color:var(--accent);box-shadow:0 0 0 2px rgba(201,168,76,.25),0 6px 18px rgba(0,0,0,.4)}
.prn-bg-orn{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;opacity:.9}
.prn-bg-l{position:absolute;left:0;right:0;bottom:0;padding:6px 0;font-family:var(--serif);font-size:13px;text-align:center;background:linear-gradient(transparent,rgba(255,255,255,.85) 60%);color:#222}
.frames span small{font-weight:400}

/* ---- Переключатель языка (i18n) ---- */
.langfab{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 11px;border-radius:999px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--paper);font:600 12px/1 var(--sans,Inter,system-ui,sans-serif);letter-spacing:.04em;cursor:pointer;transition:border-color .18s,background .18s,transform .12s}
.langfab svg{opacity:.85}
.langfab:hover{border-color:var(--accent);background:rgba(201,168,76,.08)}
.langfab:active{transform:scale(.95)}
.lang-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.lang-opt{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:0 16px;border-radius:12px;border:1px solid var(--border);background:rgba(255,255,255,.03);color:var(--paper);font:500 15px/1 var(--sans,Inter,system-ui,sans-serif);cursor:pointer;transition:border-color .18s,background .18s}
.lang-opt b{font-size:12px;letter-spacing:.06em;opacity:.6}
.lang-opt:hover{border-color:var(--accent)}
.lang-opt.on{border-color:var(--accent);background:var(--chip-on)}
.lang-opt.on b{opacity:1;color:var(--accent)}

/* ===================== КАБИНЕТ АГЕНТСТВА ===================== */
.ag-wrap{}
.ag-sub{font-size:13px;color:var(--text2);margin:-2px 0 14px;line-height:1.5}
.ag-back{display:inline-flex;align-items:center;gap:4px;color:var(--text2);font-size:14px;cursor:pointer;padding:6px 0;min-height:36px}
.ag-back:hover{color:var(--accent)}
/* Шапка бренда */
.ag-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--card);border:1px solid var(--border);border-radius:18px;padding:14px 16px;margin-bottom:14px}
.ag-id{display:flex;align-items:center;gap:12px;min-width:0}
.ag-logo{width:46px;height:46px;border-radius:12px;object-fit:contain;background:#fff;padding:4px;flex:0 0 auto}
.ag-mono{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--on-accent);font-family:var(--serif);font-size:20px;font-weight:600;flex:0 0 auto}
.ag-id-t{display:flex;flex-direction:column;gap:3px;min-width:0}
.ag-id-t b{font-family:var(--serif);font-size:18px;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-plan{display:inline-flex;align-self:flex-start;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:20px;padding:2px 9px}
.ag-warn{font-size:11px;color:var(--label);max-width:170px;line-height:1.4}
/* Статистика */
.ag-stats{display:flex;gap:10px;margin-bottom:14px}
.ag-stat{flex:1;text-align:center;padding:14px 6px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.ag-stat b{display:block;font-family:var(--serif);font-size:24px;line-height:1}
.ag-stat span{font-size:11px;color:var(--text2);display:block;margin-top:4px;line-height:1.3}
/* Действия */
.ag-actions{display:flex;flex-direction:column;gap:10px}
.ag-act{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:0 18px;border-radius:16px;border:1px solid var(--border);background:var(--surface);color:var(--paper);font:600 15px/1 var(--sans);cursor:pointer;transition:border-color .18s,transform .12s;text-align:left}
.ag-act:hover{border-color:var(--accent)}
.ag-act:active{transform:scale(.99)}
.ag-act.primary{background:var(--btn-grad);color:var(--on-accent);border:1px solid var(--btn-edge)}
.ag-act-i{font-size:18px;width:24px;text-align:center;flex:0 0 auto}
/* Список событий */
.ag-evs{display:flex;flex-direction:column;gap:8px}
.ag-ev{display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:11px 14px;cursor:pointer;transition:border-color .18s}
.ag-ev:hover{border-color:var(--accent)}
.ag-ev-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.ag-ev-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ag-ev-t b{font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-ev-t span{font-size:12px;color:var(--text2)}
.ag-ev-b{font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);border:1px solid var(--border);border-radius:20px;padding:3px 9px;flex:0 0 auto}
.ag-empty{text-align:center;color:var(--text2);padding:24px 12px;font-family:var(--serif);font-size:17px}
/* Виралка-плашка */
.ag-funnel{margin-top:18px;border:1px dashed var(--border);border-radius:16px;padding:14px 16px;background:var(--surface)}
.ag-funnel-h{font-size:13.5px;font-weight:600;color:var(--accent);margin-bottom:6px}
.ag-funnel-b{font-size:12.5px;color:var(--text2);line-height:1.55}
/* Брендинг-форма */
.ag-sws{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.ag-sw{width:32px;height:32px;border-radius:10px;cursor:pointer;border:2px solid transparent;box-shadow:0 0 0 1px var(--border) inset;transition:transform .12s}
.ag-sw:active{transform:scale(.92)}
.ag-sw.on{border-color:var(--paper);box-shadow:0 0 0 2px var(--accent)}
.ag-sw-custom{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--text2);cursor:pointer;border:1px dashed var(--border);border-radius:10px;padding:5px 10px;min-height:34px}
.ag-sw-custom input[type=color]{width:24px;height:24px;border:none;background:none;padding:0;cursor:pointer}
.ag-fnts{display:flex;flex-wrap:wrap;gap:8px}
.ag-fnt{padding:8px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-size:16px;cursor:pointer;color:var(--paper);transition:border-color .18s}
.ag-fnt.on{border-color:var(--accent);background:var(--chip-on);color:var(--accent)}
.ag-logo-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ag-upl{cursor:pointer;margin:0}
.ag-rm{display:inline-flex;align-items:center;gap:5px;background:transparent;border:1px solid var(--border);color:var(--text2);border-radius:40px;padding:10px 16px;font-size:13px;cursor:pointer;min-height:44px}
.ag-rm:hover{border-color:#E07A5F;color:#E07A5F}
.ag-hint{font-size:11px;color:var(--label);margin-top:7px;line-height:1.4}
.ag-plans{display:flex;gap:8px;flex-wrap:wrap}
.ag-plan-opt{padding:9px 15px;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-size:13px;cursor:pointer;color:var(--paper);transition:border-color .18s}
.ag-plan-opt.on{border-color:var(--accent);background:var(--chip-on);color:var(--accent)}
/* Live-превью бренда */
#agPrev{margin:6px 0 18px}
.ag-prev{--accent:#C9A84C;background:linear-gradient(160deg,var(--surface2),var(--surface));border:1px solid var(--border);border-radius:20px;padding:16px;display:flex;flex-direction:column;align-items:center}
.ag-prev-top{display:flex;align-items:center;gap:9px;align-self:flex-start;margin-bottom:14px}
.ag-prev-logo{width:30px;height:30px;border-radius:8px;object-fit:contain;background:#fff;padding:3px}
.ag-prev-mono{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-family:var(--serif);font-size:15px}
.ag-prev-name{font-family:var(--serif);font-size:16px;color:var(--paper)}
/* Превью двух логотипов: ☀ на светлом фоне (печать/виджет), 🌙 на тёмном (гость/капсула) */
.ag-logo-prevs{display:flex;gap:10px;margin-top:12px}
.ag-lp{flex:1;position:relative;height:64px;border-radius:12px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);overflow:hidden}
.ag-lp.light{background:#f6f4ee}
.ag-lp.dark{background:#0E0B06}
.ag-lp img{max-height:40px;max-width:80%;object-fit:contain}
.ag-lp b{font-family:var(--serif);font-size:20px}
.ag-lp.light b{color:#2b2b2b}
.ag-lp.dark b{color:#efe7d4}
.ag-lp-ic{position:absolute;top:6px;left:8px;font-size:12px;opacity:.7}
.ag-prev-card{width:200px;background:#fbf7ef;color:#2a2520;border-radius:14px;padding:22px 18px 16px;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.28);border-top:3px solid var(--accent)}
.ag-prev-kicker{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.ag-prev-title{font-size:26px;line-height:1.05;margin-bottom:8px;color:#241f1b}
.ag-prev-date{font-size:12px;letter-spacing:.08em;color:#7a6f63}
.ag-prev-foot{margin-top:16px;padding-top:12px;border-top:1px solid rgba(0,0,0,.08);min-height:20px;display:flex;align-items:center;justify-content:center}
.ag-prev-cardlogo{max-height:22px;max-width:120px;object-fit:contain}
.ag-prev-cardlogo-t{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-family:var(--sans)}
.ag-prev-btn{margin-top:14px;background:var(--btn-grad);border:1px solid var(--btn-edge);color:#0B0B0B;font:600 13px/1 var(--sans);border-radius:30px;padding:11px 26px}
/* «Вошли как» + переключатель участника */
.ag-viewas{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:10px 14px;margin-bottom:14px;cursor:pointer;font-size:13px;color:var(--text2);min-height:44px}
.ag-viewas:hover{border-color:var(--accent)}
.ag-viewas-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.ag-viewas-t{flex:1}.ag-viewas-t b{color:var(--paper)}
.ag-viewas-ch{opacity:.6}
.ag-mslist{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.ag-msitem{display:flex;align-items:center;gap:11px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:11px 14px;cursor:pointer;color:var(--paper);text-align:left;min-height:52px}
.ag-msitem.on{border-color:var(--accent);background:var(--chip-on)}
.ag-ms-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.ag-ms-t{flex:1;display:flex;flex-direction:column;gap:2px}.ag-ms-t b{font-size:14.5px}.ag-ms-t span{font-size:12px;color:var(--text2)}
.ag-ms-on{color:var(--accent);font-weight:700}
.ag-act-sub{margin-left:auto;font-size:12px;opacity:.7;font-weight:500}
/* Легенда координаторов в календаре */
.ag-legend{display:flex;flex-wrap:wrap;gap:12px;margin:-2px 0 12px}
.ag-leg{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text2)}
.ag-leg-d{width:9px;height:9px;border-radius:50%}
/* Команда */
.ag-seats{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:11px 14px;font-size:13px;color:var(--paper);margin-bottom:14px}
.ag-seats.full{border-color:#C56B4A}
.ag-seats-hint{font-size:11.5px;color:var(--text2)}
.ag-seats.full .ag-seats-hint{color:#C56B4A}
.ag-mlist{display:flex;flex-direction:column;gap:8px}
.ag-mrow{display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:11px 14px}
.ag-mrow.inv{border-style:dashed;opacity:.85}
.ag-mrow-d{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.ag-mrow-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ag-mrow-t b{font-size:14.5px}.ag-mrow-t span{font-size:12px;color:var(--text2)}
.ag-mrow-x{background:transparent;border:1px solid var(--border);color:var(--text2);width:32px;height:32px;border-radius:50%;cursor:pointer;flex:0 0 auto;font-size:14px}
.ag-mrow-x:hover{border-color:#C56B4A;color:#C56B4A}
.ag-mrow-lock{color:var(--accent);font-size:14px;flex:0 0 auto;width:32px;text-align:center}
.ag-roles{display:flex;gap:8px;flex-wrap:wrap}
.ag-role-opt{padding:9px 16px;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-size:13px;cursor:pointer;color:var(--paper);transition:border-color .18s}
.ag-role-opt.on{border-color:var(--accent);background:var(--chip-on);color:var(--accent)}
/* Скидка партнёра (контрол директора) */
.ag-disc-row{display:flex;align-items:center;gap:12px}
.ag-disc-row input[type=range]{flex:1;accent-color:var(--accent);height:28px}
.ag-disc-val{font-family:var(--serif);font-size:20px;min-width:48px;text-align:right;color:var(--accent)}
/* Финансы */
.ag-fincard{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px}
.ag-fin-plan{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.ag-fin-plan span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--label)}
.ag-fin-plan b{font-family:var(--serif);font-size:18px;color:var(--accent)}
.ag-fin-rows{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.ag-fin-r{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:var(--text2)}
.ag-fin-r b{color:var(--paper);font-weight:600}
.ag-fin-r b.acc{color:var(--accent)}
.ag-fin-r.total{border-top:1px solid var(--border);padding-top:10px;margin-top:2px}
.ag-fin-r.total span{color:var(--paper)}
.ag-fin-r.total b{font-family:var(--serif);font-size:20px;color:var(--accent)}
.ag-fin-note{font-size:11.5px;color:var(--label);line-height:1.5;margin-top:10px}
.ag-fin-web{margin-top:16px;border:1px dashed var(--border);border-radius:16px;padding:16px;background:var(--surface)}
.ag-fin-web-h{font-size:14px;font-weight:600;margin-bottom:6px}
.ag-fin-web-b{font-size:12.5px;color:var(--text2);line-height:1.55;margin-bottom:14px}
.ag-fin-web-btn{width:100%;justify-content:center}
/* Пакет: прогресс использования */
.ag-pkgbar{height:8px;background:var(--track);border-radius:5px;overflow:hidden;margin:12px 0 4px}
.ag-pkgbar-f{height:100%;background:var(--accent);border-radius:5px;transition:width .3s}
/* Реферальная программа */
.ref-code{font-family:ui-monospace,monospace;font-size:20px;letter-spacing:.14em;color:var(--accent);background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:14px;text-align:center;margin-bottom:10px}
/* ===== Гостевой лендинг события (заполняет весь экран) ===== */
/* Фон — тёмный атлас/шёлк с диагональным бликом (как в референсе, вместо плоского чёрного) */
.gjoin{display:flex;flex-direction:column;
  background:
    linear-gradient(119deg, transparent 25%, rgba(255,255,255,.05) 43%, rgba(255,255,255,.115) 49%, rgba(255,255,255,.045) 56%, transparent 71%),
    linear-gradient(119deg, transparent 62%, rgba(255,255,255,.03) 75%, transparent 88%),
    radial-gradient(155% 95% at 80% 8%, rgba(201,168,76,.07), transparent 56%),
    radial-gradient(120% 80% at 15% 100%, rgba(201,168,76,.04), transparent 60%),
    #0B0B0B}
/* Гостевой лендинг иммерсивно ТЁМНЫЙ всегда (фон жёстко #0B0B0B). В светлой теме токены текста
   становятся тёмными → текст пропадал на тёмном герое. Возвращаем тёмные значения внутри .gjoin. */
body.theme-light .gjoin{
  --paper:#F2ECE0; --text2:#A8A095; --label:#6E675C;
  --surface:#16140F; --surface2:#15130d; --border:#2A271F; --card:#1a1812; --chip-on:#1d1a12;
}
.gpad{display:flex;flex-direction:column;min-height:100%;box-sizing:border-box;gap:14px;
  padding:calc(env(safe-area-inset-top,12px) + 8px) 16px calc(env(safe-area-inset-bottom,14px) + 18px)}
/* контент-обёртка центрируется в свободном месте под шапкой; padding-bottom приподнимает блок «Проявка» вверх */
.gbody{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:14px;padding-bottom:6vh}
/* шапка: метка-диафрагма · бренд · язык */
.gtop{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:36px}
.gtop-mark{color:var(--accent);opacity:.85;line-height:0;display:flex;flex:0 0 auto}
.gtop-name{flex:1 1 auto;text-align:center;font-family:var(--serif);font-size:15px;color:var(--paper);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}
.gtop-name.is-agency{color:var(--accent);opacity:.9}
.gtop-lang{flex:0 0 auto;display:flex;justify-content:flex-end}
.gtop-lang .langfab,.gtop-lang [onclick*="openLangSheet"]{margin:0}
/* герой: вложенная плашка бренда + название + делитель + каунтдаун */
.ghero{background:rgba(18,16,11,.46);backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%);
  border:1px solid rgba(255,255,255,.09);border-radius:26px;padding:18px 18px 22px;text-align:center;
  box-shadow:0 24px 56px -30px #000,inset 0 1px 0 rgba(255,255,255,.06);flex:0 0 auto}
.ghero-mark{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);border-radius:18px;
  padding:22px 14px;display:flex;align-items:center;justify-content:center;min-height:78px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.ghero-brand{font-family:var(--serif);font-size:40px;line-height:1.02;color:var(--paper);letter-spacing:.004em;display:flex;align-items:center;justify-content:center;gap:12px}
/* Иконка приложения целиком (со своей золотой кромкой) — БЕЗ border-radius, иначе углы/кромка обрезаются.
   Тень через drop-shadow повторяет форму иконки (а не прямоугольный box). */
.pv-ic{flex:0 0 auto;width:48px;height:48px;object-fit:contain;display:block;filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}
.ghero-brand.is-agency{color:var(--accent)}
/* Металлик-золото для текста (переиспользуемо): светлее сверху → насыщеннее снизу. fallback на сплошной акцент */
.metal-gold{color:var(--accent)}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .metal-gold{background:linear-gradient(180deg,#F7E7AE 0%,#E8C86C 36%,#C9A84C 60%,#9C7A2C 100%);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
}
.ghero-logo{max-height:70px;max-width:80%;object-fit:contain;margin:0 auto;display:block}
/* Логотип без dark-варианта — на белом чипе, чтобы тёмный логотип не пропадал на тёмном герое */
.ghero-logochip{display:inline-flex;align-items:center;justify-content:center;margin:0 auto;
  background:#fff;border-radius:14px;padding:10px 16px;box-shadow:0 4px 18px rgba(0,0,0,.32)}
.ghero-logochip img{max-height:52px;max-width:200px;object-fit:contain;display:block}
.ghero-ttl{font-family:var(--serif);font-size:30px;color:var(--paper);margin-top:2px;line-height:1.12}
.ghero-greet{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--text2);margin:9px auto 0;line-height:1.45;max-width:30ch}
.ghero-div{height:1px;background:linear-gradient(90deg,transparent,var(--border) 24%,var(--border) 76%,transparent);margin:16px 2px}
/* камера-блок — компактный, залитая иконка как в референсе */
.gcam{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
  width:calc(100% + 10px);margin-left:-5px;margin-right:-5px;
  flex:0 0 auto;background:rgba(18,16,11,.4);backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%);
  border:1.5px solid var(--accent);border-radius:24px;padding:22px 20px;cursor:pointer;
  transition:transform .14s ease;-webkit-tap-highlight-color:transparent;
  box-shadow:0 20px 50px -34px #000,inset 0 1px 0 rgba(255,255,255,.05)}
.gcam:active{transform:scale(.96)}
.gcam-ic{color:var(--accent);line-height:0;filter:drop-shadow(0 7px 22px rgba(201,168,76,.3))}
.gcam-t{font-family:var(--serif);font-size:23px;color:var(--paper)}
.gcam-s{font-size:12.5px;color:var(--text2)}
/* гибкий разделитель — прижимает «Открыть альбом» к низу, экран заполнен */
.gspace{flex:1 1 auto;min-height:6px}
/* точки-карусель (лендинг → свайп → альбом) */
.gdots{display:flex;justify-content:center;align-items:center;gap:8px;margin:1px 0}
.gdots i{width:7px;height:7px;border-radius:50%;background:var(--border);transition:.2s}
.gdots i.on{width:20px;border-radius:4px;background:var(--accent)}
/* открыть альбом + подсказка свайпа */
.galbum{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:15px 18px;cursor:pointer;color:var(--paper);font-size:15px;min-height:52px;flex:0 0 auto}
.galbum:hover{border-color:var(--accent)}
.galbum-a{color:var(--accent);font-size:20px}
.gswipe{text-align:center;color:var(--label);font-size:12px;flex:0 0 auto}
/* Эффект диафрагмы при входе в камеру */
.aperture{position:fixed;inset:0;z-index:9999;pointer-events:none}
.aperture::after{content:'';position:absolute;inset:0;background:#0B0B0B;clip-path:circle(0% at 50% 50%);transition:clip-path .6s cubic-bezier(.66,0,.2,1)}
.aperture.cover::after{clip-path:circle(160% at 50% 50%)}
.aperture.open::after{clip-path:circle(0% at 50% 50%)}
.ap-blades{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.4) rotate(0);color:#C9A84C;opacity:0;transition:opacity .3s,transform .6s cubic-bezier(.66,0,.2,1);z-index:1;line-height:0}
.aperture.cover .ap-blades{opacity:1;transform:translate(-50%,-50%) scale(1.2) rotate(180deg)}
.aperture.open .ap-blades{opacity:0;transform:translate(-50%,-50%) scale(1.6) rotate(220deg)}
.ag-two{display:flex;gap:10px}.ag-two .field{flex:1}
.ag-inv-list{display:flex;flex-direction:column;gap:8px}
.ag-inv{display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:11px 14px;cursor:pointer;transition:border-color .18s}
.ag-inv:hover{border-color:var(--accent)}
.ag-inv-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ag-inv-t b{font-size:14px}.ag-inv-t span{font-size:12px;color:var(--text2)}
.ag-inv-st{font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;border-radius:20px;padding:3px 10px;flex:0 0 auto}
.ag-inv-st.pending{color:#C9A24B;border:1px solid #C9A24B66}
.ag-inv-st.paid{color:#7A8F72;border:1px solid #7A8F7266}
.ag-inv-st.open{color:var(--accent);border:1px solid var(--accent)}
/* Tools-чипы дашборда */
.ag-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ag-tool{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:30px;border:1px solid var(--border);background:var(--surface);color:var(--paper);font-size:13px;cursor:pointer;min-height:40px;transition:border-color .18s}
.ag-tool:hover{border-color:var(--accent)}
/* Конфликт дат */
.ag-conflict{display:flex;align-items:center;gap:6px;background:rgba(197,107,74,.12);border:1px solid #C56B4A66;color:#E0A083;border-radius:12px;padding:10px 14px;font-size:13px;margin-bottom:12px;cursor:pointer}
.ac-cell.clash{border-color:#C56B4A99}
.ac-warn{color:#E0A083}
.ag-cal-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 8px}
.ag-ical{display:inline-flex;align-items:center;gap:5px;background:transparent;border:1px solid var(--border);color:var(--text2);border-radius:30px;padding:8px 14px;font-size:12.5px;cursor:pointer;min-height:38px}
.ag-ical:hover{border-color:var(--accent);color:var(--accent)}
/* Шаблоны */
.ag-tpls{display:flex;flex-direction:column;gap:8px}
.ag-tpl{display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:11px 12px 11px 14px}
.ag-tpl-d{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.ag-tpl-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ag-tpl-t b{font-size:14px}.ag-tpl-t span{font-size:11.5px;color:var(--text2)}
.ag-tpl-use{background:var(--btn-grad);color:var(--on-accent);border:1px solid var(--btn-edge);border-radius:30px;padding:8px 14px;font-size:12.5px;font-weight:600;cursor:pointer;flex:0 0 auto;min-height:38px}
.ag-tpl-types{display:flex;flex-wrap:wrap;gap:7px}
.ag-tpl-type{padding:7px 12px;border-radius:11px;border:1px solid var(--border);background:var(--surface);font-size:12.5px;cursor:pointer;color:var(--paper)}
.ag-tpl-type.on{border-color:var(--accent);background:var(--chip-on);color:var(--accent)}
/* Передача альбома */
.ho-link{font-size:12px;color:var(--text2);background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:6px 0 10px;word-break:break-all;font-family:ui-monospace,monospace}
.ho-note{font-size:12.5px;color:var(--accent);line-height:1.5;margin-bottom:14px}
/* Вход партнёра */
.login-sent{font-size:13.5px;color:var(--text2);margin:4px 0 12px;line-height:1.5}
.login-dev{font-size:12px;color:var(--label);background:var(--surface2);border:1px dashed var(--border);border-radius:10px;padding:9px 12px;margin-bottom:12px}
.login-dev b{color:var(--accent);font-size:15px;letter-spacing:.12em}
.login-demo{text-align:center;color:var(--text2);font-size:13px;margin-top:18px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;min-height:44px;display:flex;align-items:center;justify-content:center}
.login-demo:hover{color:var(--accent)}
.login-hint{text-align:center;font-size:11.5px;color:var(--label);line-height:1.5;margin-top:6px}
/* Чип сессии на дашборде */
.ag-session{display:flex;align-items:center;gap:10px;background:rgba(122,143,114,.12);border:1px solid rgba(122,143,114,.4);border-radius:12px;padding:9px 12px;margin-bottom:12px;font-size:12.5px}
.ag-session-t{flex:1;min-width:0;color:var(--paper);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-session-out{background:transparent;border:1px solid var(--border);color:var(--text2);border-radius:20px;padding:5px 12px;font-size:12px;cursor:pointer;flex:0 0 auto;min-height:32px}
.ag-session-out:hover{border-color:var(--accent);color:var(--accent)}

/* ===== RTL (اردو · العربية) — зеркалим направленные элементы (flex/текст flex’ятся сами через dir=rtl) ===== */
[dir="rtl"] .back{left:auto;right:16px;transform:scaleX(-1)}        /* «назад» → справа, шеврон ‹ зеркалим в › */
[dir="rtl"] .cover-edit{right:auto;left:16px}
[dir="rtl"] .lb-prev{left:auto;right:12px}
[dir="rtl"] .lb-next{right:auto;left:12px}
[dir="rtl"] .lb-prev,[dir="rtl"] .lb-next{transform:translateY(-50%) scaleX(-1)}  /* стрелки лайтбокса */
[dir="rtl"] .ag-act,[dir="rtl"] .wg-md .wg-foot{text-align:right}
[dir="rtl"] .feed-act{float:left}                                  /* «авторазбивка» ссылка */
