/* kluk.one, concept B «Живые демо». Ink, paper, one cranberry. No webfonts: Verdana (the wordmark face), system text, system mono.
   Contrast (WCAG) noted per pair; all text >= 4.5:1 in both themes. */
:root {
  color-scheme: light dark;
  --paper: #FFFFFF;
  --sheet: #F4F4F5;         /* demo panels: cool neutral, no cream */
  --sheet-2: #E9E9EC;
  --ink: #111111;           /* 18.9:1 on paper, 17.3:1 on sheet */
  --muted: #5B5B61;         /* 6.6:1 on paper, 6.1:1 on sheet, 5.4:1 on sheet-2 */
  --line: #E4E4E7;          /* decorative hairlines only */
  --line-2: #D1D1D6;
  --berry: #B5121B;         /* fills; white on it 6.9:1 */
  --berry-t: #B5121B;       /* cranberry text: 6.9:1 on paper, 6.3:1 on sheet */
  --berry-soft: #FBE7E8;
  --dot: rgba(17, 17, 17, .16);
  --display: Verdana, "DejaVu Sans", Geneva, sans-serif;
  --text: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Noto Sans SC", sans-serif;
  --mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;
  --out: cubic-bezier(.2, .8, .2, 1);
  --expo: cubic-bezier(.16, 1, .3, 1);
  --gut: clamp(16px, 4vw, 56px);
}
@media (prefers-color-scheme: dark) {
  :root {
    --paper: #111111;
    --sheet: #1B1B1D;
    --sheet-2: #26262A;
    --ink: #EDEDEF;         /* 16.0:1 on paper, 14.6:1 on sheet */
    --muted: #A1A1A8;       /* 7.4:1 on paper, 6.8:1 on sheet */
    --line: #2A2A2E;
    --line-2: #3A3A3F;
    --berry-t: #FF6B72;     /* 7.0:1 on paper, 6.4:1 on sheet */
    --berry-soft: #3A1517;
    --dot: rgba(237, 237, 239, .14);
  }
}

* { box-sizing: border-box; }
html { background: var(--paper); color: var(--ink); -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 72px; }
body { margin: 0; background: var(--paper); font: 17px/1.55 var(--text); -webkit-font-smoothing: antialiased; overflow-x: clip; }
h1, h2, h3, p, ol, ul, figure { margin: 0; }
ol, ul { padding: 0; list-style: none; }
a { color: inherit; }
img { display: block; max-width: 100%; height: auto; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--berry-t); outline-offset: 3px; border-radius: 4px; }
.mono { font-family: var(--mono); font-size: 13px; letter-spacing: .01em; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 8px; top: -60px; z-index: 50; padding: 10px 14px; background: var(--ink); color: var(--paper); border-radius: 8px; }
.skip:focus { top: 8px; }

/* languages: Russian visible without JS, the other switched by html[lang] (lang.js) */
.l { display: none; }
html[lang="ru"] .l[lang="ru"], html[lang="en"] .l[lang="en"] { display: revert; }

/* 12-column grid */
.grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(12px, 2vw, 24px); max-width: 1440px; margin: 0 auto; padding: 0 max(var(--gut), env(safe-area-inset-left)); }
.grid > * { grid-column: 1 / -1; }

/* header */
.bar { position: sticky; top: 0; z-index: 20; background: color-mix(in srgb, var(--paper) 94%, transparent); -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4); border-bottom: 1px solid transparent; transition: border-color .25s var(--out); }
.bar.scrolled { border-bottom-color: var(--line); }
.bar-in { align-items: center; min-height: 60px; }
.logo { grid-column: 1 / 4; display: flex; align-items: center; min-height: 44px; color: var(--ink); width: max-content; view-transition-name: logo; }
.logo svg { height: 28px; width: auto; display: block; }
.nav { grid-column: 4 / 11; display: flex; gap: clamp(12px, 2.4vw, 36px); font-size: 14px; overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.nav a { display: inline-flex; align-items: baseline; gap: 6px; min-height: 44px; align-items: center; text-decoration: none; }
.nav a:hover { color: var(--berry-t); }
.n { font-family: var(--mono); font-size: 11px; color: var(--muted); }
.langs { grid-column: 11 / -1; justify-self: end; display: flex; gap: 2px; }
.langs button { min-width: 40px; min-height: 40px; border: 0; background: none; font-family: var(--mono); font-size: 13px; color: var(--muted); cursor: pointer; border-radius: 6px; }
.langs button[aria-pressed="true"] { color: var(--ink); text-decoration: underline; text-decoration-color: var(--berry); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.langs button:hover { color: var(--ink); }

/* hero: the cover canvas fills the section, text sits on the clear left side */
.hero { position: relative; min-height: min(100svh, 980px); display: flex; align-items: flex-end; padding: 48px 0 56px; isolation: isolate; }
.cover { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; touch-action: pan-y; }
.hero-in { width: 100%; row-gap: 28px; }
.tag { font-family: var(--mono); font-size: 13px; color: var(--muted); }
.hero-h { grid-column: 1 / span 8; font: 700 clamp(44px, 7.3vw, 120px)/.94 var(--display); letter-spacing: -.055em; }
.hero-h .ln { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.hero-h .ln > span { display: inline-block; }
.index { grid-column: 1 / span 7; border-top: 1px solid var(--ink); margin-top: 12px; }
.index li { position: relative; display: grid; grid-template-columns: 28px 44px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line-2); text-decoration: none; transition: padding .25s var(--out); }
.index .nm { display: grid; gap: 2px; }
.index .k, .ahead .k { font-family: var(--mono); font-size: 12px; color: var(--muted); }
.index .meta { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
.index .gap { width: 8px; }
.index li:hover { padding-left: 8px; }
.index .row { display: contents; text-decoration: none; }
.index .row::after { content: ""; position: absolute; inset: 0; }
.index a.stag { position: relative; z-index: 1; text-decoration: none; }
.index li:hover b { color: var(--berry-t); }
.index b { font: 700 19px/1.2 var(--display); letter-spacing: -.03em; }
/* app icons and tags: one system for the index and the section headers */
.appi { display: block; width: 44px; height: 44px; border-radius: 22.5%; box-shadow: 0 0 0 1px var(--line); }
.appi.mac { border-radius: 0; box-shadow: none; filter: drop-shadow(0 1px 1px rgba(0,0,0,.18)); }
.ahead { display: flex; align-items: center; gap: 14px; }
.ahead .appi { width: 64px; height: 64px; }
.ameta { display: grid; gap: 6px; }
.pls { display: flex; flex-wrap: wrap; gap: 6px; }
.pill, .stag { display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 9px; border-radius: 999px; font-size: 12.5px; font-weight: 600; white-space: nowrap; line-height: 1; }
.pill { border: 1px solid var(--line-2); color: var(--ink); padding-left: 7px; }
.pill svg { width: 14px; height: 14px; }
.stag.ink { background: var(--ink); color: var(--paper); }
.stag.berry { background: var(--berry-soft); color: var(--berry-t); }
.stag.soft { background: var(--sheet-2); color: var(--ink); }
.ibtn { width: 40px; height: 40px; display: inline-grid; place-items: center; border-radius: 50%; border: 1px solid var(--line-2); background: var(--paper); color: var(--ink); cursor: pointer; transition: border-color .15s, transform .15s var(--out); }
.ibtn:hover { border-color: var(--ink); }
.ibtn:active { transform: scale(.92); }
.ibtn svg { width: 20px; height: 20px; }
.tr-pause .i-play, .tr-pause[aria-pressed="true"] .i-pause { display: none; }
.tr-pause[aria-pressed="true"] .i-play { display: block; }

/* product sections */
.prod { padding: clamp(80px, 12vw, 168px) 0 0; }
.prod .grid { row-gap: 32px; align-items: start; }
.prod-meta { grid-column: 1 / span 4; position: sticky; top: 92px; display: grid; gap: 18px; }
.num { font: 700 clamp(64px, 9vw, 140px)/.8 var(--display); letter-spacing: -.06em; color: var(--berry-t); margin-bottom: 8px; }
.prod-h { font: 700 clamp(38px, 4.8vw, 72px)/.98 var(--display); letter-spacing: -.05em; }
.prod-h .w { display: inline-block; white-space: nowrap; }
.prod-h .ch { display: inline-block; }
.prod-p { max-width: 30em; }
.acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; padding-top: 4px; }
.btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: 999px; background: var(--berry); color: #fff; font-weight: 600; text-decoration: none; border: 0; cursor: pointer; transition: transform .15s var(--out), background-color .15s; }
.btn svg { width: 18px; height: 18px; }
.btn:hover { background: #9C0F17; }
.btn:active { transform: scale(.97); }
.btn-s { min-height: 34px; padding: 0 14px; font-size: 14px; gap: 6px; }
.btn-s svg { width: 14px; height: 14px; }
.lnk { display: inline-flex; align-items: center; min-height: 44px; color: var(--berry-t); text-underline-offset: 4px; text-decoration-thickness: 1px; }
.lnk:hover { text-decoration-thickness: 2px; }
.soon { display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: 999px; font-size: 14px; font-weight: 600; }
.chip { min-height: 36px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--paper); font-size: 14px; cursor: pointer; transition: border-color .15s, background-color .15s, transform .15s var(--out); }
.chip:hover { border-color: var(--ink); }
.chip:active { transform: scale(.96); }
.chip[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }

.fig { grid-column: 5 / -1; display: grid; gap: 14px; }
.alc, .tr, .mail { background: var(--sheet); border: 1px solid var(--line); border-radius: 18px; position: relative; }

/* 01 alchemy demo */
.alc { padding: 18px; display: grid; gap: 14px; }
.alc-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.alc-head b { font-weight: 600; color: var(--berry-t); display: inline-block; min-width: 1.4em; text-align: right; }
.alc-btns { display: flex; gap: 8px; }
.alc-stage { position: relative; height: 196px; border-radius: 12px; background:
  radial-gradient(circle at 1px 1px, var(--dot) 1px, transparent 1.2px) 0 0 / 12px 12px, var(--paper); overflow: hidden; display: grid; place-items: center; }
.alc-idle[hidden] { display: none; }
.alc-idle { display: flex; align-items: center; gap: clamp(8px, 2vw, 18px); font: 700 clamp(22px, 2.6vw, 34px)/1 var(--display); color: var(--muted); }
.alc-idle .slot { width: clamp(56px, 7vw, 84px); aspect-ratio: 1; border-radius: 50%; border: 2px dashed var(--line-2); display: grid; place-items: center; font-style: normal; background: center / 78% no-repeat; transition: border-color .2s, transform .25s var(--out); }
.alc-idle .slot.on { border-color: var(--berry); border-style: solid; transform: scale(1.06); }
.alc-idle .q { color: var(--muted); }
.alc-res { display: grid; grid-template-columns: 148px 1fr; gap: 18px; align-items: center; padding: 0 24px; width: 100%; max-width: 620px; }
.alc-res[hidden] { display: none; }
.alc-res-img { width: 148px; height: 148px; }
.alc-formula { color: var(--muted); }
.alc-name { font: 700 clamp(30px, 3.6vw, 52px)/1 var(--display); letter-spacing: -.05em; margin: 4px 0 8px; }
.alc-name .ch { display: inline-block; }
.alc-desc { font-size: 15px; color: var(--muted); line-height: 1.4; max-width: 28em; }
.alc-tray { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 6px; max-height: 336px; overflow-y: auto; padding: 4px; margin: -4px; scrollbar-width: thin; }
.tile { width: 100%; display: grid; justify-items: center; gap: 2px; padding: 8px 4px 6px; border: 1px solid transparent; border-radius: 12px; background: none; cursor: grab; touch-action: manipulation; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; transition: transform .2s var(--out), background-color .15s, border-color .15s; }
.tile img { width: 56px; height: 56px; pointer-events: none; -webkit-user-drag: none; }
.tile span { font-size: 12.5px; line-height: 1.2; text-align: center; overflow-wrap: anywhere; hyphens: auto; }
.tile:hover { background: var(--paper); }
.tile.lifted { opacity: .35; }
.tile.target { transform: scale(1.1); background: var(--berry-soft); border-color: var(--berry); }
.tile[aria-pressed="true"] { border-color: var(--ink); background: var(--paper); }
.ghost { position: fixed; left: 0; top: 0; z-index: 60; width: 72px; height: 72px; pointer-events: none; will-change: transform; filter: drop-shadow(0 10px 14px rgba(0,0,0,.18)); }
.fly { position: fixed; left: 0; top: 0; z-index: 60; pointer-events: none; will-change: transform; }
.burst { position: absolute; left: 0; top: 0; width: 0; height: 0; pointer-events: none; }
.burst i { position: absolute; left: 0; top: 0; border-radius: 50%; background: var(--berry); }
.burst i.k { background: var(--ink); }
.burst b { position: absolute; left: -60px; top: -60px; width: 120px; height: 120px; border-radius: 50%; border: 2px solid var(--berry); }

/* levels strip */
.levels { grid-column: 5 / -1; display: grid; gap: 12px; margin-top: 16px; }
.lv { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.lv li { display: grid; gap: 6px; font-size: 13px; color: var(--muted); }
.lv img { width: 100%; aspect-ratio: 1; transition: transform .35s var(--out); }
.lv li:hover img { transform: translateY(-6px) rotate(-2deg); }

/* 02 translate demo */
.tr { padding: 18px; display: grid; gap: 18px; min-height: 360px; grid-template-rows: auto 1fr auto auto; overflow: hidden; }
.tr-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.tr-langs { display: flex; gap: 6px; }
.tr-net { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); }
.tr-net svg { width: 16px; height: 16px; }
.tr-line { align-self: center; font: 700 clamp(28px, 3.9vw, 56px)/1.12 Verdana, "DejaVu Sans", Geneva, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif; letter-spacing: -.035em; min-height: 2.3em; overflow-wrap: anywhere; }
.tr-line.zh { letter-spacing: .02em; }
.tr-text .x { color: var(--berry-t); }
.tr-caret { display: inline-block; width: .08em; height: .9em; margin-left: .06em; vertical-align: -.08em; background: var(--berry); opacity: 0; }
.tr.typing .tr-caret { opacity: 1; animation: blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
.tr-back { color: var(--muted); min-height: 1.5em; }
.tr-foot { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; border-top: 1px solid var(--line); padding-top: 14px; }
.tr-hold { display: inline-grid; place-items: center; width: 56px; height: 56px; padding: 0; border-radius: 50%; border: 0; background: var(--ink); color: var(--paper); font-weight: 600; cursor: pointer; touch-action: manipulation; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; transition: transform .15s var(--out); }
.tr-hold:active, .tr-hold.on { transform: scale(.96); }
@keyframes pulse { to { box-shadow: 0 0 0 10px rgba(181,18,27,0); } }
.tr-wave { flex: 1; display: flex; align-items: center; gap: 3px; height: 32px; min-width: 80px; }
.tr-wave i { flex: 1; max-width: 4px; height: 100%; border-radius: 2px; background: var(--line-2); transform: scaleY(.12); transition: transform .12s linear, background-color .2s; }
.tr.listening .tr-wave i { background: var(--berry); }
.tr-pause { margin-left: auto; }

/* 03 mail demo */
.mail { overflow: hidden; }
.mail-bar { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.dots { display: flex; gap: 6px; }
.dots i { width: 11px; height: 11px; border-radius: 50%; border: 1px solid var(--line-2); }
.mail-title { font-weight: 600; font-size: 15px; }
.mail-n { color: var(--muted); font-weight: 400; }
.mail-acc { display: flex; gap: 4px; margin-left: auto; }
.mail-acc i { font-style: normal; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; border: 1px solid var(--line-2); color: var(--muted); }
.mail-body { padding: 8px; overflow: hidden; }
.mail-list { display: grid; }
.piles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.piles[hidden] { display: none; }
.pile { background: var(--sheet-2); border-radius: 12px; padding: 10px 8px 8px; min-height: 120px; }
.pile h3 { font-size: 13px; font-weight: 600; padding: 0 6px 8px; display: flex; justify-content: space-between; gap: 8px; }
.pile[data-pile="sus"] h3 { color: var(--berry-t); }
.pile ul { display: grid; gap: 6px; }
.row { position: relative; display: grid; grid-template-columns: 32px 1fr auto; column-gap: 10px; padding: 10px 8px; border-radius: 10px; background: var(--sheet); overflow: hidden; }
.mail-list .row + .row { border-top: 1px solid var(--line); border-radius: 0; }
.piles .row { background: var(--paper); grid-template-columns: 1fr; padding: 9px 10px; border: 1px solid var(--line); }
.piles .ava, .piles .row time { display: none; }
.piles .snip { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ava { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; font-weight: 600; background: var(--paper); border: 1px solid var(--line-2); }
.row > span { min-width: 0; }
.row b { font-size: 14px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.subj { font-size: 14px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.snip { font-size: 13px; color: var(--muted); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.row time { font-family: var(--mono); font-size: 12px; color: var(--muted); }
.warn { display: none; margin-top: 6px; width: max-content; max-width: 100%; align-items: center; gap: 5px; padding: 3px 9px 3px 7px; border-radius: 999px; background: var(--berry); color: #fff; font-size: 12px; font-weight: 600; }
.warn svg { width: 12px; height: 12px; flex: none; }
.row.scam .warn { display: inline-flex; }
.row.scam .ava { background: var(--berry); border-color: var(--berry); color: #fff; }
.row.scanning::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--berry) 14%, transparent) 60%, transparent); animation: scan .5s var(--out) both; pointer-events: none; }
@keyframes scan { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
.row.flag { animation: flag .4s var(--out); }
@keyframes flag { 25% { transform: translateX(-3px); } 50% { transform: translateX(3px); } 75% { transform: translateX(-1px); } }

/* footer */
.foot { padding: clamp(120px, 16vw, 220px) 0 40px; }
.foot .grid { row-gap: 18px; }
.mailto { font: 700 clamp(30px, 7.4vw, 124px)/1 var(--display); letter-spacing: -.055em; text-decoration: none; overflow-wrap: anywhere;
  background: linear-gradient(var(--berry), var(--berry)) 0 100% / 0 .06em no-repeat; transition: background-size .5s var(--expo), color .2s; padding-bottom: .06em; width: max-content; max-width: 100%; }
.mailto:hover { background-size: 100% .06em; color: var(--berry-t); }
.foot-nav { grid-column: 7 / -1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 24px; margin-top: 40px; font-size: 14px; color: var(--muted); }
.foot-nav a { color: var(--ink); }

/* reveals: elements start shifted only when JS has run (html.js) and motion is allowed */
@media (prefers-reduced-motion: no-preference) {
  html.js .rv { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--expo), transform .7s var(--expo); }
  html.js .rv.in { opacity: 1; transform: none; }
  html.js .hero-h .ln > span { transform: translateY(105%); transition: transform 1s var(--expo); }
  html.js .hero-h.in .ln > span { transform: none; }
  html.js .prod-h .ch { transform: translateY(.9em) rotate(6deg); opacity: 0; transition: transform .8s var(--expo), opacity .5s var(--out); }
  html.js .prod-h.in .ch { transform: none; opacity: 1; }
  html.js .fig, html.js .levels { opacity: 0; transform: translateY(40px); transition: opacity .9s var(--expo), transform .9s var(--expo); }
  html.js .fig.in, html.js .levels.in { opacity: 1; transform: none; }
  /* scroll-linked: the big numeral drifts against the scroll */
  @supports (animation-timeline: view()) {
    .num { animation: drift linear both; animation-timeline: view(); animation-range: entry 0% exit 60%; }
    @keyframes drift { from { transform: none; } to { transform: translateY(-36px); } }
  }
  @view-transition { navigation: auto; }
  ::view-transition-old(root) { animation: vt-out .22s var(--out) both; }
  ::view-transition-new(root) { animation: vt-in .5s var(--expo) both; }
  @keyframes vt-out { to { opacity: 0; transform: translateY(-12px); } }
  @keyframes vt-in { from { opacity: 0; transform: translateY(24px); } }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/* text pages (/privacy, /terms) */
.doc { padding: clamp(48px, 8vw, 112px) 0 40px; }
.doc .grid > div { grid-column: 3 / span 7; }
.doc h1 { font: 700 clamp(28px, 5vw, 68px)/1.04 var(--display); letter-spacing: -.05em; hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; view-transition-name: page-title; }
.doc .date { font-family: var(--mono); font-size: 13px; color: var(--muted); margin: 18px 0 40px; padding-bottom: 18px; border-bottom: 1px solid var(--ink); }
.doc h2 { font: 700 21px/1.25 var(--display); letter-spacing: -.03em; margin: 44px 0 12px; counter-increment: sec; display: grid; grid-template-columns: 2.4em 1fr; }
.doc h2::before { content: counter(sec, decimal-leading-zero); font: 400 13px/1.9 var(--mono); color: var(--berry-t); }
.doc .grid > div { counter-reset: sec; }
.doc p, .doc li { margin: 0 0 12px; max-width: 38em; }
.doc ul { padding-left: 2.4em; list-style: none; }
.doc ul li { position: relative; }
.doc ul li::before { content: ""; position: absolute; left: -1.2em; top: .7em; width: 6px; height: 6px; border-radius: 50%; background: var(--berry); }
.doc a { color: var(--berry-t); text-underline-offset: 3px; overflow-wrap: anywhere; }
.foot.small { padding-top: 64px; }
.foot.small .mailto { font-size: clamp(26px, 4vw, 52px); }

/* layout breakpoints */
@media (max-width: 1100px) {
  .prod-meta { grid-column: 1 / span 5; }
  .fig, .levels { grid-column: 6 / -1; }
  .hero-h { grid-column: 1 / span 9; }
    .index { grid-column: 1 / span 9; }
  .lv { grid-template-columns: repeat(5, 120px); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; }
  .lv li { scroll-snap-align: start; }
}
@media (max-width: 860px) {
  .nav { display: none; }
  .logo { grid-column: 1 / 7; }
  .langs { grid-column: 7 / -1; }
  .prod-meta, .fig, .levels { grid-column: 1 / -1; position: static; }
  .hero { align-items: flex-end; padding-top: 0; min-height: auto; }
  .hero-in { padding-top: calc(min(86vw, 520px)); }
  .hero-h, .index { grid-column: 1 / -1; }
  .foot-nav { grid-column: 1 / -1; justify-content: flex-start; }
  .doc .grid > div { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  body { font-size: 16px; }
  .alc { padding: 12px; }
  .alc-stage { height: 172px; }
  .alc-res { grid-template-columns: 96px 1fr; gap: 12px; padding: 0 14px; }
  .alc-res-img { width: 96px; height: 96px; }
  .alc-tray { grid-template-columns: repeat(4, minmax(0, 1fr)); max-height: 300px; }
  .tile img { width: 48px; height: 48px; }
  .tile span { font-size: 11.5px; }
  .tr { min-height: 320px; padding: 14px; }
  .tr-pause { margin-left: auto; }
  .tr-wave { order: -1; flex-basis: 100%; }
  .piles { grid-template-columns: 1fr; }
  .pile[data-pile="sus"] { order: -1; }
  .piles .snip { display: none; }
  .mail-acc { display: none; }
  .mail-body { min-height: 0; }
}

.tr-hold svg { width: 26px; height: 26px; }
.tr-hold { box-shadow: 0 0 0 0 rgba(181,18,27,.5); }
.tr-hold:not(.on) { animation: breathe 2.6s ease-in-out infinite; }
.tr.listening .tr-hold { animation: pulse 1s var(--out) infinite; }
@keyframes breathe { 50% { transform: scale(1.06); } }
.tile:active { transform: scale(.94); }
@media (max-width: 860px) {
  .index li { grid-template-columns: 44px minmax(0, 1fr); row-gap: 8px; }
  .index .n, .index .gap { display: none; }
  .index .appi, .index picture { grid-row: 1 / span 2; align-self: start; }
  .index .meta { grid-column: 2; justify-content: flex-start; }
}

/* Daycap demo */
.day { background: var(--sheet); border: 1px solid var(--line); border-radius: 18px; padding: 18px; display: grid; gap: 18px; }
.day-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.day-plan { color: var(--muted); }
.day-main { background: var(--paper); border-radius: 12px; padding: clamp(18px, 3vw, 32px); display: grid; gap: 6px; }
.day-lbl, .day-tm { color: var(--muted); }
.day-tm b { color: var(--ink); font-weight: 600; }
.day-n { font: 700 clamp(56px, 8vw, 112px)/1 var(--display); letter-spacing: -.05em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.day-buys { display: flex; flex-wrap: wrap; gap: 8px; }
.day-buy { min-height: 44px; padding: 0 16px; display: inline-flex; align-items: center; gap: 8px; }
.day-buy b { font-weight: 600; color: var(--muted); }
.day-log { display: grid; gap: 4px; min-height: 0; }
.day-log button { width: 100%; display: grid; grid-template-columns: 1fr auto 16px; gap: 12px; align-items: center; min-height: 40px; padding: 0 12px; border: 0; border-radius: 10px; background: var(--paper); font-size: 14px; text-align: left; cursor: pointer; }
.day-log button b { font-weight: 600; font-variant-numeric: tabular-nums; }
.day-log button svg { width: 12px; height: 12px; color: var(--muted); }
.day-log button:hover svg { color: var(--ink); }
.index .row:focus-visible { outline: none; }
.index .row:focus-visible::after { outline: 2px solid var(--berry-t); outline-offset: 2px; border-radius: 6px; }
