/* Fashion CMS — стили анимационной сцены. Все размеры в px дизайн-сетки (сцена 1080×1080 / 1920×1080 / 1080×1920). */
@font-face { font-family: 'Manrope'; src: url('/fonts/manrope-cyrillic-wght-normal.woff2') format('woff2'); font-weight: 200 800; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Manrope'; src: url('/fonts/manrope-latin-ext-wght-normal.woff2') format('woff2'); font-weight: 200 800; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Manrope'; src: url('/fonts/manrope-latin-wght-normal.woff2') format('woff2'); font-weight: 200 800; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+20BD; }
@font-face { font-family: 'Playfair'; src: url('/fonts/playfair-display-cyrillic-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Playfair'; src: url('/fonts/playfair-display-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: 'Playfair'; src: url('/fonts/playfair-display-cyrillic-400-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Playfair'; src: url('/fonts/playfair-display-latin-400-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: 'Playfair'; src: url('/fonts/playfair-display-cyrillic-500-italic.woff2') format('woff2'); font-weight: 500; font-style: italic; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Playfair'; src: url('/fonts/playfair-display-latin-500-italic.woff2') format('woff2'); font-weight: 500; font-style: italic; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: 'Mono'; src: url('/fonts/jetbrains-mono-cyrillic-400-normal.woff2') format('woff2'); font-weight: 400; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Mono'; src: url('/fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2'); font-weight: 400; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122, U+2212, U+20BD; }
@font-face { font-family: 'Mono'; src: url('/fonts/jetbrains-mono-cyrillic-500-normal.woff2') format('woff2'); font-weight: 500; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Mono'; src: url('/fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2'); font-weight: 500; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122, U+2212, U+20BD; }

.fc-stage {
  --bg: #F3EFE9; --ink: #111111; --ink2: #3A3733; --mute: #8C867E; --line: #DDD6CC; --card: #FFFFFF;
  --accent: #FF6B4A; --accent-soft: #FFE3DA; --sand: #E7DCCB; --cream: #EFE7DA; --stone: #D8D2C8; --dark: #151515; --ok: #3E8E5E;
  position: absolute; left: 0; top: 0; overflow: hidden; background: var(--bg); color: var(--ink);
  font-family: 'Manrope', system-ui, sans-serif; font-weight: 500; transform-origin: 0 0;
  -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision; contain: layout paint;
}
.fc-stage * { box-sizing: border-box; }
.fc-layer { position: absolute; inset: 0; }
.fc-stage .fc-abs { position: absolute; }
.fc-serif { font-family: 'Playfair', Georgia, serif; font-style: italic; font-weight: 400; letter-spacing: -0.01em; }
.fc-mono { font-family: 'Mono', ui-monospace, monospace; letter-spacing: 0.02em; }
.fc-upper { text-transform: uppercase; letter-spacing: 0.12em; }

/* chrome */
.fc-chrome-top { position: absolute; left: 64px; right: 64px; top: 44px; display: flex; justify-content: space-between; align-items: center; z-index: 50; }
.fc-wordmark { display: flex; align-items: baseline; gap: 8px; font-size: 22px; line-height: 1; }
.fc-wordmark .w1 { font-family: 'Playfair', serif; font-style: italic; font-size: 1.18em; }
.fc-wordmark .w2 { font-weight: 800; letter-spacing: 0.14em; font-size: 0.82em; }
.fc-chrome-tag { font-family: 'Mono', monospace; font-size: 17px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink2); display: flex; gap: 14px; align-items: center; }
.fc-chrome-tag i { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); display: inline-block; }

/* captions */
.fc-caps { position: absolute; left: 64px; right: 64px; bottom: 56px; height: 96px; z-index: 60; pointer-events: none; }
.fc-cap { position: absolute; left: 0; right: 0; bottom: 0; overflow: hidden; padding-bottom: 6px; }
.fc-cap-in { display: flex; gap: 18px; align-items: flex-start; font-size: 34px; line-height: 1.22; font-weight: 600; letter-spacing: -0.01em; color: var(--ink); }
.fc-cap-in::before { content: ''; flex: 0 0 auto; width: 28px; height: 3px; background: var(--accent); margin-top: 21px; }
.fc-cap.dark .fc-cap-in { color: #fff; }

/* intro / outro */
.fc-intro { position: absolute; inset: 0; background: var(--bg); z-index: 80; padding: 64px; display: flex; flex-direction: column; justify-content: flex-end; }
.fc-intro-num { font-family: 'Mono', monospace; font-size: 22px; letter-spacing: 0.1em; color: var(--ink2); margin-bottom: 26px; display: flex; gap: 16px; align-items: center; }
.fc-intro-num b { color: var(--accent); font-weight: 500; }
.fc-intro-title { font-family: 'Playfair', serif; font-style: italic; font-size: 124px; line-height: 1.02; letter-spacing: -0.02em; }
.fc-intro-title .ln { display: block; overflow: hidden; padding-bottom: 0.08em; }
.fc-intro-title .ln > span { display: inline-block; }
.fc-intro-rule { height: 2px; background: var(--ink); margin-top: 40px; transform-origin: 0 50%; }
.fc-intro-sub { margin-top: 22px; font-size: 26px; color: var(--ink2); max-width: 820px; line-height: 1.35; margin-bottom: 150px; }
.fc-outro { position: absolute; inset: 0; background: var(--dark); color: #fff; z-index: 90; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 28px; }
.fc-outro .fc-wordmark { font-size: 76px; gap: 22px; }
.fc-outro-tag { font-family: 'Mono', monospace; font-size: 20px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,.62); }
.fc-outro-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--accent); }

/* devices */
.fc-phone { position: absolute; width: 418px; height: 828px; border-radius: 64px; background: #0E0E0E; padding: 14px; box-shadow: 0 40px 80px -30px rgba(40,30,20,.35), 0 0 0 2px #2a2a2a inset; transform-origin: 0 0; }
.fc-phone-screen { position: relative; width: 390px; height: 800px; border-radius: 50px; overflow: hidden; background: #fff; }
.fc-phone-island { position: absolute; top: 12px; left: 50%; width: 118px; height: 34px; margin-left: -59px; background: #0E0E0E; border-radius: 20px; z-index: 40; }
.fc-phone-status { position: absolute; top: 0; left: 0; right: 0; height: 56px; display: flex; justify-content: space-between; align-items: center; padding: 6px 34px 0; font-size: 16px; font-weight: 700; z-index: 39; }
.fc-browser { position: absolute; border-radius: 18px; background: #fff; overflow: hidden; box-shadow: 0 40px 90px -40px rgba(40,30,20,.35), 0 0 0 1px rgba(0,0,0,.06); }
.fc-browser-bar { height: 46px; background: #F6F4F1; border-bottom: 1px solid #ECE7E0; display: flex; align-items: center; gap: 8px; padding: 0 18px; }
.fc-browser-bar i { width: 12px; height: 12px; border-radius: 50%; background: #DCD5CB; display: inline-block; }
.fc-browser-url { margin-left: 18px; flex: 1; max-width: 460px; height: 28px; border-radius: 8px; background: #fff; border: 1px solid #ECE7E0; font-size: 14px; color: var(--mute); display: flex; align-items: center; padding: 0 12px; gap: 8px; }
.fc-browser-screen { position: relative; overflow: hidden; }
.fc-admin { position: absolute; border-radius: 18px; background: #FBFAF8; overflow: hidden; box-shadow: 0 40px 90px -40px rgba(40,30,20,.4), 0 0 0 1px rgba(0,0,0,.06); display: flex; }
.fc-admin-side { width: 220px; background: var(--dark); color: #fff; padding: 22px 16px; flex: 0 0 auto; display: flex; flex-direction: column; gap: 4px; }
.fc-admin-side .fc-wordmark { font-size: 18px; margin: 4px 8px 22px; color: #fff; }
.fc-admin-nav { display: flex; align-items: center; gap: 12px; padding: 10px 10px; border-radius: 10px; font-size: 15px; color: rgba(255,255,255,.62); font-weight: 600; }
.fc-admin-nav.on { background: rgba(255,255,255,.1); color: #fff; }
.fc-admin-nav.on .fc-icon { color: var(--accent); }
.fc-admin-main { flex: 1; position: relative; display: flex; flex-direction: column; min-width: 0; }
.fc-admin-top { height: 64px; border-bottom: 1px solid #ECE7E0; display: flex; align-items: center; justify-content: space-between; padding: 0 26px; flex: 0 0 auto; }
.fc-admin-title { font-size: 20px; font-weight: 700; letter-spacing: -0.01em; }
.fc-admin-body { position: relative; flex: 1; padding: 22px 26px; overflow: hidden; }

/* atoms */
.fc-icon { display: inline-flex; width: 1em; height: 1em; flex: 0 0 auto; }
.fc-icon svg { width: 100%; height: 100%; overflow: visible; }
.fc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 52px; padding: 0 26px; border-radius: 4px; font-size: 15px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; }
.fc-btn.dark { background: var(--ink); color: #fff; }
.fc-btn.light { background: #fff; color: var(--ink); box-shadow: 0 0 0 1.5px var(--ink) inset; }
.fc-btn.accent { background: var(--accent); color: #fff; }
.fc-btn.ghost { background: transparent; color: var(--ink); }
.fc-input { display: flex; align-items: center; gap: 12px; height: 52px; padding: 0 16px; border-radius: 4px; background: #fff; box-shadow: 0 0 0 1.5px #D9D2C7 inset; font-size: 17px; color: var(--ink); white-space: nowrap; overflow: hidden; }
.fc-input .ph { color: var(--mute); }
.fc-input.focus { box-shadow: 0 0 0 2px var(--ink) inset; }
.fc-caret { display: inline-block; width: 2px; height: 22px; background: var(--ink); margin-left: 1px; vertical-align: middle; }
.fc-chip { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 18px; border-radius: 40px; font-size: 15px; font-weight: 600; background: #fff; box-shadow: 0 0 0 1.5px #DDD6CC inset; color: var(--ink); white-space: nowrap; }
.fc-chip.on { background: var(--ink); color: #fff; box-shadow: none; }
.fc-badge { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; font-size: 12px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; background: #fff; color: var(--ink); border-radius: 2px; white-space: nowrap; }
.fc-badge.dark { background: var(--ink); color: #fff; }
.fc-badge.accent { background: var(--accent); color: #fff; }
.fc-toggle { position: relative; width: 52px; height: 30px; border-radius: 30px; background: #D6CFC5; flex: 0 0 auto; }
.fc-toggle i { position: absolute; left: 3px; top: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.fc-toast { position: absolute; display: flex; align-items: center; gap: 14px; padding: 18px 24px; border-radius: 14px; background: var(--dark); color: #fff; font-size: 18px; font-weight: 600; box-shadow: 0 24px 50px -20px rgba(0,0,0,.4); white-space: nowrap; }
.fc-toast .fc-icon { color: var(--accent); font-size: 24px; }
.fc-card { background: #fff; border-radius: 16px; box-shadow: 0 30px 60px -36px rgba(40,30,20,.35), 0 0 0 1px rgba(0,0,0,.04); }
.fc-tile { display: flex; align-items: center; justify-content: center; border-radius: 22px; background: #fff; color: var(--ink); box-shadow: 0 0 0 1.5px var(--line) inset; }
.fc-tile.dark { background: var(--dark); color: #fff; box-shadow: none; }
.fc-tile.accent { background: var(--accent); color: #fff; box-shadow: none; }
.fc-line { height: 12px; border-radius: 6px; background: #ECE6DD; }

/* product */
.fc-photo { position: relative; overflow: hidden; border-radius: 2px; }
.fc-photo svg.g { position: absolute; left: 50%; top: 52%; transform: translate(-50%, -50%); height: 78%; width: auto; overflow: visible; }
.fc-product { position: relative; display: flex; flex-direction: column; gap: 10px; }
.fc-product .fc-photo { width: 100%; }
.fc-product .name { font-size: 14px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-product .price { font-size: 15px; font-weight: 600; display: flex; gap: 10px; align-items: baseline; }
.fc-product .price s { color: var(--mute); font-weight: 500; }
.fc-product .price .sale { color: var(--accent); }
.fc-product .fav { position: absolute; top: 10px; right: 10px; font-size: 22px; color: var(--ink); z-index: 2; }
.fc-product .badges { position: absolute; top: 10px; left: 10px; display: flex; gap: 6px; z-index: 2; }
.fc-swatch { width: 22px; height: 22px; border-radius: 50%; box-shadow: 0 0 0 1px rgba(0,0,0,.12) inset; display: inline-block; }
.fc-swatch.on { box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--ink); }
.fc-size { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; height: 44px; padding: 0 10px; border-radius: 4px; box-shadow: 0 0 0 1.5px #DDD6CC inset; font-size: 15px; font-weight: 700; background: #fff; }
.fc-size.on { background: var(--ink); color: #fff; box-shadow: none; }
.fc-size.off { color: #BDB6AC; background: repeating-linear-gradient(135deg, #fff 0 9px, #F1ECE5 9px 10px); }

/* pointer */
.fc-cursor { position: absolute; left: 0; top: 0; width: 40px; height: 40px; z-index: 70; transform-origin: 6px 4px; filter: drop-shadow(0 6px 10px rgba(0,0,0,.25)); }
.fc-finger { position: absolute; left: 0; top: 0; width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 50%; background: rgba(17,17,17,.18); box-shadow: 0 0 0 2px rgba(255,255,255,.9) inset; z-index: 70; }
.fc-ripple { position: absolute; width: 90px; height: 90px; margin: -45px 0 0 -45px; border-radius: 50%; border: 3px solid var(--accent); z-index: 69; opacity: 0; }
