/* =============================================
   /product-films — page styles and the code-drawn film engine (assets/js/product-films.js)
   Direction: a screening room. Chrome stays neutral; the colour lives inside the films, which show
   familiar products (Airbnb, Notion, Cal.com, Typeform) in their own palettes.
   Signature: the product link chip (mark + domain) wherever a product appears.
   Sizes inside a film are in cqw of the film, and inside a window in cqw of the window, so every frame
   stays sharp and in proportion at any width.
============================================= */
:root {
    --pf-canvas: #f6f6f6;
    --pf-paper: #ffffff;
    --pf-ink: #141416;
    --pf-text: #4a4a50;
    --pf-muted: #7c7c84;
    --pf-line: rgba(20, 20, 22, 0.08);
    --pf-line-2: rgba(20, 20, 22, 0.14);
    --pf-accent: #4043ff;
    --pf-accent-ink: #2f32d6;
    --pf-accent-soft: rgba(64, 67, 255, 0.07);
    --pf-night: #111114;
    --pf-night-2: #19191d;
    --pf-night-3: #232328;
    --pf-night-line: rgba(255, 255, 255, 0.09);
    --pf-ease: cubic-bezier(0.22, 0.8, 0.24, 1);
}

/* ── TYPE ── */
.pf-h1, .pf-h2, .pf-h3 { font-family: "Instrument Sans", sans-serif; font-weight: 500; color: var(--pf-ink); text-wrap: balance; }
.pf-h1 { font-size: clamp(40px, 5.6vw, 68px); line-height: 1.02; letter-spacing: -0.035em; }
.pf-h2 { font-size: clamp(30px, 4vw, 48px); line-height: 1.08; letter-spacing: -0.028em; }
.pf-h3 { font-size: 20px; line-height: 1.3; letter-spacing: -0.012em; }
.pf-h1 em, .pf-h2 em { display: block; font-family: "Instrument Serif", serif; font-style: italic; font-weight: 400; letter-spacing: -0.015em; }
.pf-lead { font: 400 18px/1.6 "Inter", sans-serif; color: var(--pf-text); max-width: 600px; }
.pf-small { font: 400 13px/1.5 "Inter", sans-serif; color: var(--pf-muted); }
.pf-center { text-align: center; }
.pf-center .pf-lead { margin-left: auto; margin-right: auto; }
.pf-head { margin-bottom: 48px; }
.pf-head .pf-lead { margin-top: 16px; }
.pf-link { color: var(--pf-accent-ink); text-decoration: none; border-bottom: 1px solid rgba(64, 67, 255, 0.3); }
.pf-link:hover { border-bottom-color: var(--pf-accent-ink); }

/* ── SECTIONS ── */
.pf-sec { padding: 104px 24px; background: var(--pf-canvas); }
.pf-sec--paper { background: var(--pf-paper); }
.pf-wrap { max-width: 1120px; margin: 0 auto; }

/* ── HERO: the screening room ── */
.pf-hero { background: var(--pf-night); padding: 120px 24px 88px; color: #fff; }
.pf-hero-top { max-width: 880px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.pf-hero .pf-lead { max-width: 640px; }
.pf-hero .pf-h1 { color: #fff; animation: pf-rise 0.7s var(--pf-ease) both; }
.pf-hero .pf-lead { color: rgba(255, 255, 255, 0.64); animation: pf-rise 0.7s 0.08s var(--pf-ease) both; }
@keyframes pf-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.pf-proof { display: inline-block; padding: 8px 14px; border-radius: 99px; border: 1px solid var(--pf-night-line); color: rgba(255, 255, 255, 0.72); font: 500 13px/1 "Inter", sans-serif; }
.pf-proof b { color: #fff; font-weight: 500; }
.pf-ctas { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; animation: pf-rise 0.7s 0.16s var(--pf-ease) both; }
.pf-hero .btn-primary { background: #f4f4f5; color: var(--pf-ink); box-shadow: none; }
.pf-hero .btn-primary .rolling-text span { color: var(--pf-ink); }
.pf-hero .btn-primary:hover { background: #fff; transform: none; }
.pf-hero .btn-secondary { background: transparent; color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22); }
.pf-hero .btn-secondary .rolling-text span { color: #fff; }
.pf-hero .pf-small { color: rgba(255, 255, 255, 0.44); }

.pf-stage { max-width: 1200px; margin: 40px auto 0; animation: pf-rise 0.8s 0.24s var(--pf-ease) both; }
.pf-rig { display: grid; grid-template-columns: 296px 56px minmax(0, 1fr); align-items: center; }
.pf-film-wrap { position: relative; border-radius: 16px; padding: 8px; background: var(--pf-night-2); box-shadow: 0 0 0 1px var(--pf-night-line); }
.pf-film-wrap .pff { border-radius: 10px; }

/* the brief card: what goes in */
.pf-brief { background: #fff; color: var(--pf-ink); border-radius: 16px; padding: 20px; box-shadow: 0 24px 48px -24px rgba(0, 0, 0, 0.6); }
.pf-brief-h { display: flex; align-items: center; justify-content: space-between; font: 500 14px/1 "Inter", sans-serif; }
.pf-brief-h span { font: 400 12px/1 "Inter", sans-serif; color: var(--pf-muted); }
.pf-lbl { display: block; margin: 16px 0 8px; font: 500 12px/1 "Inter", sans-serif; color: var(--pf-text); }
.pf-field { height: 44px; display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid var(--pf-line-2); border-radius: 10px; font: 400 14px/1 "Inter", sans-serif; color: var(--pf-ink); overflow: hidden; white-space: nowrap; transition: border-color 0.2s, box-shadow 0.2s; }
.pf-field.focus { border-color: rgba(64, 67, 255, 0.55); box-shadow: 0 0 0 3px rgba(64, 67, 255, 0.12); }
.pf-field--area { height: 68px; align-items: flex-start; padding: 12px; white-space: normal; line-height: 1.45; }
.pf-caret { display: inline-block; width: 1.5px; height: 1.1em; margin-left: 1px; vertical-align: -0.18em; background: var(--pf-ink); animation: pf-blink 1s steps(1) infinite; }
@keyframes pf-blink { 50% { opacity: 0; } }
.pf-style-row { display: flex; align-items: center; justify-content: space-between; height: 44px; padding: 0 6px 0 12px; border: 1px solid var(--pf-line-2); border-radius: 10px; font: 500 14px/1 "Inter", sans-serif; }
.pf-style-row small { font: 400 12px/1 "Inter", sans-serif; color: var(--pf-muted); }
.pf-style-sw { width: 52px; height: 32px; border-radius: 6px; overflow: hidden; }
.pf-go { margin-top: 16px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; gap: 8px; background: var(--pf-ink); color: #fff; font: 500 14px/1 "Inter", sans-serif; transition: transform 0.15s var(--pf-ease), background 0.2s; }
.pf-go.press { transform: scale(0.97); background: var(--pf-accent); }
.pf-go svg { width: 16px; height: 16px; }

/* the signature: a product link chip */
.pf-chip { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.pf-chip .pf-mk { flex-shrink: 0; }
.pf-mk { width: 20px; height: 20px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; color: #fff; font: 600 11px/1 "Inter", sans-serif; }
.pf-mk svg { width: 62%; height: 62%; display: block; }
.pf-mk--airbnb { background: #ff385c; } .pf-mk--notion { background: #fff; color: #191919; box-shadow: inset 0 0 0 1.5px #191919; }
.pf-mk--calcom { background: #111; } .pf-mk--typeform { background: #262627; }

/* arrow from the brief to the film */
.pf-arrow { position: relative; height: 2px; margin: 0 10px; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.28) 0 6px, transparent 6px 12px); }
.pf-arrow::after { content: ""; position: absolute; right: -2px; top: -4px; border: 5px solid transparent; border-left: 7px solid rgba(255, 255, 255, 0.5); border-right: 0; }
.pf-arrow i { position: absolute; top: -3px; left: 0; width: 8px; height: 8px; border-radius: 50%; background: #fff; opacity: 0; }
.pf-arrow.flow i { animation: pf-flow 0.9s var(--pf-ease) forwards; }
@keyframes pf-flow { 0% { left: 0; opacity: 0; } 20% { opacity: 1; } 100% { left: calc(100% - 8px); opacity: 0; } }

/* product tabs under the stage */
.pf-tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 16px 0 0 352px; }
.pf-tab { position: relative; overflow: hidden; display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 12px; border: 1px solid var(--pf-night-line); background: transparent; color: rgba(255, 255, 255, 0.64); font: 500 14px/1 "Inter", sans-serif; cursor: pointer; text-align: left; transition: color 0.2s, background-color 0.2s; }
.pf-tab small { display: block; margin-top: 4px; font: 400 12px/1.2 "Inter", sans-serif; color: rgba(255, 255, 255, 0.4); }
.pf-tab:hover { color: #fff; background: rgba(255, 255, 255, 0.03); }
.pf-tab[aria-pressed="true"] { color: #fff; background: var(--pf-night-2); }
.pf-tab i { position: absolute; left: 0; bottom: 0; height: 2px; width: 0; background: rgba(255, 255, 255, 0.7); }
.pf-tab[aria-pressed="true"] i { animation: pf-tabfill var(--d, 4.7s) linear forwards; }
@keyframes pf-tabfill { to { width: 100%; } }
.pf-tab:focus-visible, .pf-btn-q:focus-visible { outline: 2px solid #8b8dff; outline-offset: 2px; }
.pf-note { margin: 24px auto 0; max-width: 680px; text-align: center; }

/* =============================================
   FILM ENGINE (.pff)
============================================= */
.pff { --brand: #4043ff; --brand-2: #c7c8ff; position: relative; aspect-ratio: 16 / 9; container-type: inline-size; overflow: hidden; isolation: isolate; border-radius: 12px; background: #eef0f4; font-family: "Inter", sans-serif; }
.pff-bg { position: absolute; inset: 0; transition: background 0.6s var(--pf-ease), opacity 0.6s; }
.pff-scene { position: absolute; inset: 0; opacity: 0; transition: opacity 0.4s ease; }
.pff-scene.on { opacity: 1; }
/* between products the film dips to black, like a cut; nothing animates while it is dark */
.pff::after { content: ""; position: absolute; inset: 0; z-index: 40; background: #0c0c0f; opacity: 0; pointer-events: none; transition: opacity 0.24s ease; }
.pff.swap::after { opacity: 1; }
.pff.swap .pff-bg, .pff.swap .pff-win, .pff.swap .pff-h, .pff.swap .pff-screen, .pff.swap .pff-scene { transition: none; }
.w { display: inline-block; opacity: 0; transform: translateY(0.3em); transition: opacity 0.4s ease, transform 0.5s var(--pf-ease); }
.in .w { opacity: 1; transform: none; }
.pff-h, .pff-tt, .pff-close { position: absolute; font-family: "Instrument Sans", sans-serif; font-weight: 600; letter-spacing: -0.03em; line-height: 1.06; color: var(--fi); transition: left 0.6s var(--pf-ease), top 0.6s var(--pf-ease), width 0.6s var(--pf-ease), font-size 0.6s var(--pf-ease), color 0.5s; }
.pff-h[dir="rtl"], .pff-tt[dir="rtl"] { letter-spacing: 0; }
.pff-win { position: absolute; container-type: inline-size; aspect-ratio: 16 / 10; border-radius: 1.1cqw; overflow: hidden; background: #fff;
           box-shadow: 0 2.4cqw 5cqw -2cqw rgba(15, 18, 30, 0.38), 0 0 0 0.08cqw rgba(15, 18, 30, 0.1);
           transition: left 0.6s var(--pf-ease), top 0.6s var(--pf-ease), width 0.6s var(--pf-ease), transform 0.7s var(--pf-ease); }
.pff-chrome { position: absolute; left: 0; right: 0; top: 0; height: 4.4cqw; display: flex; align-items: center; gap: 0.8cqw; padding: 0 1.8cqw; background: #f4f4f6; border-bottom: 0.12cqw solid #e6e6ea; }
.pff-chrome i { width: 1.1cqw; height: 1.1cqw; border-radius: 50%; background: #d8d8de; }
.pff-url { margin: 0 auto; display: flex; align-items: center; gap: 0.8cqw; padding: 0.6cqw 2.4cqw; border-radius: 99px; background: #fff; box-shadow: 0 0 0 0.12cqw #e4e4e8; font: 500 1.4cqw/1 "Inter", sans-serif; color: #55555c; white-space: nowrap; }
.pff-url svg { width: 1.3cqw; height: 1.3cqw; color: #9a9aa2; }
.pff-screen { position: absolute; left: 0; right: 0; top: 4.4cqw; bottom: 0; container-type: inline-size; overflow: hidden; transition: transform 0.7s var(--pf-ease); }
.pff-screen > * { position: absolute; inset: 0; }

/* title and end cards */
.pff-brand { position: absolute; left: 7cqw; top: 6.5cqw; display: flex; align-items: center; gap: 1.2cqw; font: 600 1.8cqw/1 "Inter", sans-serif; color: var(--fi); }
.pff-brand .pf-mk { width: 3.4cqw; height: 3.4cqw; border-radius: 0.9cqw; font-size: 1.8cqw; }
.pff-tt { left: 7cqw; right: 18cqw; top: 21cqw; font-size: 6.4cqw; }
.pff-endmark { position: absolute; left: 50%; top: 14cqw; transform: translateX(-50%); }
.pff-endmark .pf-mk { width: 7cqw; height: 7cqw; border-radius: 1.8cqw; font-size: 3.6cqw; }
.pff-close { left: 8cqw; right: 8cqw; top: 25cqw; text-align: center; font-size: 5.4cqw; }
.pff-pill { position: absolute; left: 50%; top: 37cqw; transform: translateX(-50%); padding: 1.1cqw 2.6cqw; border-radius: 99px; background: var(--fi); color: var(--bgc); font: 600 1.6cqw/1 "Inter", sans-serif; white-space: nowrap; }

/* cursor */
.pff-cur { position: absolute; left: 0; top: 0; z-index: 30; width: 2.6cqw; height: 2.6cqw; min-width: 12px; min-height: 12px; opacity: 0; pointer-events: none;
           transition: transform 0.75s cubic-bezier(0.45, 0, 0.2, 1), opacity 0.25s; filter: drop-shadow(0 0.25cqw 0.35cqw rgba(0, 0, 0, 0.35)); }
.pff-cur svg { display: block; width: 100%; height: 100%; transform-origin: 25% 15%; transition: transform 0.12s; }
.pff-cur.down svg { transform: scale(0.82); }
.pff-rip { position: absolute; z-index: 29; width: 5cqw; height: 5cqw; margin: -2.5cqw 0 0 -2.5cqw; border-radius: 50%; pointer-events: none; border: 0.3cqw solid rgba(255, 255, 255, 0.95); box-shadow: 0 0 0 0.2cqw rgba(0, 0, 0, 0.18); animation: pff-rip 0.55s ease-out forwards; }
@keyframes pff-rip { from { transform: scale(0.3); opacity: 1; } to { transform: scale(1.3); opacity: 0; } }
.press { transform: scale(0.95); filter: brightness(0.92); }

/* ── FILM STYLES: where the headline and the window sit, and the film's own palette ── */
/* Studio (base): a large window, the caption below */
.pff { --fi: #141416; --bgc: #eceef3; }
.pff .pff-bg { background: radial-gradient(90% 80% at 50% 20%, #fff, #e4e7ee); }
.pff .pff-win { left: 15cqw; top: 3.6cqw; width: 70cqw; }
.pff .pff-h { left: 6cqw; width: 88cqw; top: 49.2cqw; text-align: center; font-size: 3cqw; }
.pff .em { color: color-mix(in srgb, var(--brand) 88%, #000); }

.pff[data-style="editorial"] { --fi: #1d1b18; --bgc: #f1ebe1; }
.pff[data-style="editorial"] .pff-bg { background: #f1ebe1; }
.pff[data-style="editorial"] .pff-h, .pff[data-style="editorial"] .pff-tt, .pff[data-style="editorial"] .pff-close { font-family: "Instrument Serif", serif; font-weight: 400; letter-spacing: -0.01em; }
.pff[data-style="editorial"] .pff-h { left: 6.5cqw; width: 30cqw; top: 18cqw; text-align: left; font-size: 4.8cqw; line-height: 1.08; }
.pff[data-style="editorial"] .em { font-style: italic; text-decoration: underline; text-decoration-color: var(--brand); text-decoration-thickness: 0.06em; text-underline-offset: 0.14em; }
.pff[data-style="editorial"] .pff-win { left: 40cqw; top: 10.6cqw; width: 54cqw; }

.pff[data-style="launch"] { --fi: #fff; --bgc: #0c0c0f; }
.pff[data-style="launch"] .pff-bg { background: linear-gradient(180deg, #17171c, #0a0a0c); }
.pff[data-style="launch"] .pff-h { top: 4.6cqw; font-size: 4cqw; font-weight: 600; }
.pff[data-style="launch"] .em { color: var(--brand-2); }
.pff[data-style="launch"] .pff-win { left: 17cqw; top: 14.4cqw; width: 66cqw; box-shadow: 0 0 0 0.12cqw rgba(255, 255, 255, 0.12), 0 3cqw 6cqw -2cqw rgba(0, 0, 0, 0.7); }

.pff[data-style="pop"] { --fi: #fff; --bgc: var(--brand); }
.pff[data-style="pop"] .pff-bg { background: var(--brand); }
.pff[data-style="pop"] .pff-h { left: 64cqw; width: 30cqw; top: 15cqw; text-align: left; font-size: 4.6cqw; font-weight: 700; letter-spacing: -0.04em; }
.pff[data-style="pop"] .em { color: color-mix(in srgb, var(--brand) 22%, #12060a); }
.pff[data-style="pop"] .pff-win { left: 5cqw; top: 10.6cqw; width: 54cqw; box-shadow: 0 2.4cqw 5cqw -2cqw rgba(0, 0, 0, 0.35); }

.pff[data-style="calm"] { --fi: #22252b; --bgc: #f4f6f8; }
.pff[data-style="calm"] .pff-bg { background: linear-gradient(180deg, #f7f8fa, #eceff3); }
.pff[data-style="calm"] .pff-h { top: 4.6cqw; font-size: 3.2cqw; font-weight: 500; letter-spacing: -0.02em; }
.pff[data-style="calm"] .em { color: color-mix(in srgb, var(--brand) 85%, #000); }
.pff[data-style="calm"] .pff-win { left: 18cqw; top: 12.6cqw; width: 64cqw; }

/* =============================================
   PRODUCT SCREENS (inside .pff-screen; sizes in cqw of the window)
============================================= */
/* Airbnb: a listing page */
.ab { background: #fff; color: #222; font-family: "Inter", sans-serif; }
.ab-top { height: 8.4cqw; display: flex; align-items: center; justify-content: space-between; padding: 0 4cqw; border-bottom: 0.15cqw solid #ebebeb; }
.ab-logo { display: flex; align-items: center; gap: 0.8cqw; color: #ff385c; font: 700 2.5cqw/1 "Inter", sans-serif; letter-spacing: -0.04em; }
.ab-logo svg { width: 3cqw; height: 3cqw; }
.ab-search { display: flex; align-items: center; gap: 1.4cqw; padding: 0.8cqw 0.8cqw 0.8cqw 2.2cqw; border-radius: 99px; border: 0.15cqw solid #dddddd; box-shadow: 0 0.3cqw 1.2cqw rgba(0, 0, 0, 0.08); font: 500 1.45cqw/1 "Inter", sans-serif; }
.ab-search span + span { padding-left: 1.4cqw; border-left: 0.15cqw solid #ddd; color: #555; }
.ab-search i { width: 3.2cqw; height: 3.2cqw; border-radius: 50%; background: #ff385c; display: flex; align-items: center; justify-content: center; }
.ab-search i svg { width: 1.5cqw; height: 1.5cqw; color: #fff; }
.ab-me { width: 3.4cqw; height: 3.4cqw; border-radius: 50%; background: linear-gradient(135deg, #222, #555); color: #fff; display: flex; align-items: center; justify-content: center; font: 600 1.4cqw/1 "Inter", sans-serif; }
.ab-body { display: grid; grid-template-columns: 1.6fr 1fr; gap: 3.2cqw; padding: 2.8cqw 4cqw 0; }
.ab-title { font: 600 2.6cqw/1.2 "Inter", sans-serif; letter-spacing: -0.02em; }
.ab-meta { margin-top: 0.8cqw; font: 400 1.45cqw/1 "Inter", sans-serif; color: #6a6a6a; }
.ab-meta b { color: #222; font-weight: 600; }
.ab-photos { margin-top: 2cqw; height: 27cqw; display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 0.6cqw; border-radius: 1.6cqw; overflow: hidden; }
.ab-photos > * { display: block; width: 100%; height: 100%; }
.ab-photos > :first-child { grid-row: span 2; }
.ab-host { margin-top: 2cqw; display: flex; align-items: center; gap: 1.4cqw; padding-top: 2cqw; border-top: 0.15cqw solid #ebebeb; }
.ab-host i { width: 3.6cqw; height: 3.6cqw; border-radius: 50%; background: linear-gradient(135deg, #f8c9a8, #c98b6b); flex-shrink: 0; }
.ab-host b { display: block; font: 600 1.6cqw/1.2 "Inter", sans-serif; }
.ab-host span { display: block; margin-top: 0.4cqw; font: 400 1.35cqw/1 "Inter", sans-serif; color: #6a6a6a; }
.ab-card { margin-top: 1.2cqw; border: 0.15cqw solid #dddddd; border-radius: 1.8cqw; padding: 2.2cqw; box-shadow: 0 0.6cqw 2.4cqw rgba(0, 0, 0, 0.12); align-self: start; position: relative; }
.ab-price { font: 600 2.4cqw/1 "Inter", sans-serif; } .ab-price span { font: 400 1.6cqw/1 "Inter", sans-serif; color: #555; }
.ab-dates { margin-top: 1.8cqw; border: 0.15cqw solid #b0b0b0; border-radius: 1.2cqw; display: grid; grid-template-columns: 1fr 1fr; }
.ab-dates > div { padding: 1.1cqw 1.3cqw; font: 400 1.4cqw/1 "Inter", sans-serif; color: #333; }
.ab-dates > div + div { border-left: 0.15cqw solid #b0b0b0; }
.ab-dates > div.g { grid-column: span 2; border-left: 0; border-top: 0.15cqw solid #b0b0b0; }
.ab-dates b { display: block; margin-bottom: 0.5cqw; font: 700 0.95cqw/1 "Inter", sans-serif; letter-spacing: 0.04em; color: #222; }
.ab-btn { position: relative; margin-top: 1.8cqw; height: 5cqw; border-radius: 1.1cqw; background: linear-gradient(90deg, #e61e4d, #e31c5f 50%, #d70466); color: #fff; font: 600 1.7cqw/5cqw "Inter", sans-serif; text-align: center; overflow: hidden; transition: transform 0.15s, background 0.3s; }
.ab-btn .b2 { position: absolute; inset: 0; background: #222; color: #fff; opacity: 0; transition: opacity 0.3s; }
.ab-note { margin-top: 1.1cqw; text-align: center; font: 400 1.25cqw/1 "Inter", sans-serif; color: #717171; }
.ab-ok { position: absolute; left: 50%; bottom: 3.6cqw; display: flex; align-items: center; gap: 1.2cqw; padding: 1.4cqw 2.2cqw; border-radius: 1.4cqw; background: #222; color: #fff; font: 500 1.6cqw/1.2 "Inter", sans-serif; white-space: nowrap; box-shadow: 0 1.4cqw 3cqw -1cqw rgba(0, 0, 0, 0.5); opacity: 0; transform: translate(-50%, 2cqw); transition: opacity 0.35s, transform 0.45s var(--pf-ease); }
.ab-ok i { width: 2.4cqw; height: 2.4cqw; border-radius: 50%; background: #ff385c; display: flex; align-items: center; justify-content: center; }
.ab-ok i svg { width: 1.4cqw; height: 1.4cqw; color: #fff; }
.ab-ok small { display: block; color: #bbb; font-size: 1.25cqw; margin-top: 0.3cqw; }
.ab.done .ab-ok { opacity: 1; transform: translate(-50%, 0); }
.ab-btn .b1 { transition: opacity 0.2s; }
.ab.done .ab-btn .b2 { opacity: 1; } .ab.done .ab-btn .b1 { opacity: 0; }

/* Notion: a planning page */
.no { display: flex; background: #fff; color: #37352f; font-family: "Inter", sans-serif; }
.no-side { width: 21cqw; flex-shrink: 0; background: #f7f7f5; border-right: 0.15cqw solid #ededeb; padding: 2.4cqw 1.4cqw; display: flex; flex-direction: column; gap: 0.3cqw; font: 400 1.45cqw/1 "Inter", sans-serif; color: #5f5e5b; }
.no-ws { display: flex; align-items: center; gap: 1cqw; padding: 0 1cqw 1.6cqw; font-weight: 600; color: #37352f; white-space: nowrap; }
.no-ws i { width: 2.4cqw; height: 2.4cqw; border-radius: 0.5cqw; background: #e8590c; color: #fff; font: 700 1.3cqw/2.4cqw "Inter", sans-serif; text-align: center; font-style: normal; }
.no-nav { display: flex; align-items: center; gap: 0.9cqw; padding: 0.8cqw 1cqw; border-radius: 0.5cqw; white-space: nowrap; }
.no-nav svg { width: 1.6cqw; height: 1.6cqw; color: #91918e; flex-shrink: 0; }
.no-nav.on { background: #ebebea; color: #37352f; font-weight: 500; }
.no-main { flex: 1; position: relative; min-width: 0; }
.no-cover { height: 11cqw; background: linear-gradient(115deg, #a5b4fc, #f5d0fe 55%, #fde68a); }
.no-doc { padding: 0 7cqw; position: relative; }
.no-icon { width: 6.4cqw; height: 6.4cqw; margin-top: -3.4cqw; border-radius: 1.2cqw; background: #fff; box-shadow: 0 0.3cqw 1.2cqw rgba(0, 0, 0, 0.12); display: flex; align-items: center; justify-content: center; }
.no-icon svg { width: 3.8cqw; height: 3.8cqw; }
.no-title { margin-top: 1.6cqw; font: 700 4.2cqw/1.1 "Inter", sans-serif; letter-spacing: -0.025em; color: #37352f; }
.no-props { margin-top: 1.8cqw; display: grid; grid-template-columns: 12cqw 1fr; row-gap: 1cqw; font: 400 1.45cqw/1.4 "Inter", sans-serif; color: #787774; }
.no-props b { font-weight: 400; color: #37352f; }
.no-pill { display: inline-block; padding: 0.15cqw 0.9cqw; border-radius: 0.5cqw; font-size: 1.35cqw; transition: background 0.3s, color 0.3s; }
.no-pill.prog { background: #d3e5ef; color: #183347; }
.no.done .no-pill.prog { background: #dbeddb; color: #1c3829; }
.no-pill .d { display: none; } .no.done .no-pill .p { display: none; } .no.done .no-pill .d { display: inline; }
.no-hr { height: 0.15cqw; background: #ededeb; margin: 2cqw 0 1.4cqw; }
.no-todo { display: flex; align-items: center; gap: 1.2cqw; padding: 0.7cqw 0; font: 400 1.8cqw/1.3 "Inter", sans-serif; }
.no-cb { width: 2cqw; height: 2cqw; flex-shrink: 0; border: 0.2cqw solid #9b9a97; border-radius: 0.35cqw; display: flex; align-items: center; justify-content: center; transition: background 0.2s, border-color 0.2s; }
.no-cb svg { width: 1.5cqw; height: 1.5cqw; color: #fff; opacity: 0; }
.no-todo.on .no-cb, .no.done .no-todo.t3 .no-cb { background: #2383e2; border-color: #2383e2; }
.no-todo.on .no-cb svg, .no.done .no-todo.t3 .no-cb svg { opacity: 1; }
.no-todo.on span, .no.done .no-todo.t3 span { color: #9b9a97; text-decoration: line-through; }

/* Cal.com: a booking page */
.ca { background: #f3f4f6; color: #111827; font-family: "Inter", sans-serif; display: flex; align-items: center; justify-content: center; }
.ca-card { width: 88cqw; height: 50cqw; background: #fff; border: 0.15cqw solid #e5e7eb; border-radius: 1.8cqw; display: grid; grid-template-columns: 27cqw 1fr 21cqw; overflow: hidden; box-shadow: 0 0.6cqw 2.4cqw rgba(17, 24, 39, 0.06); position: relative; }
.ca-info { padding: 3cqw 2.6cqw; border-right: 0.15cqw solid #e5e7eb; }
.ca-av { width: 5cqw; height: 5cqw; border-radius: 50%; background: linear-gradient(135deg, #fcd5ce, #b5838d); }
.ca-name { margin-top: 1.4cqw; font: 500 1.45cqw/1 "Inter", sans-serif; color: #6b7280; }
.ca-ev { margin-top: 0.8cqw; font: 600 2.4cqw/1.15 "Inter", sans-serif; letter-spacing: -0.02em; }
.ca-row { display: flex; align-items: center; gap: 0.9cqw; margin-top: 1.6cqw; font: 500 1.4cqw/1 "Inter", sans-serif; color: #374151; }
.ca-row svg { width: 1.6cqw; height: 1.6cqw; color: #6b7280; }
.ca-cal { padding: 3cqw 2.6cqw; }
.ca-month { display: flex; justify-content: space-between; font: 600 1.8cqw/1 "Inter", sans-serif; }
.ca-month span { color: #9ca3af; font-weight: 500; }
.ca-grid { margin-top: 2cqw; display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.6cqw; }
.ca-dow { text-align: center; font: 500 1.1cqw/1 "Inter", sans-serif; color: #6b7280; padding-bottom: 0.6cqw; }
.ca-d { height: 4.4cqw; border-radius: 0.8cqw; display: flex; align-items: center; justify-content: center; font: 500 1.4cqw/1 "Inter", sans-serif; color: #c0c4cc; }
.ca-d.av { background: #f3f4f6; color: #111827; font-weight: 600; }
.ca-d.sel { background: #111827; color: #fff; }
.ca-slots { padding: 3cqw 2.2cqw; border-left: 0.15cqw solid #e5e7eb; display: flex; flex-direction: column; gap: 1cqw; }
.ca-day { font: 600 1.5cqw/1 "Inter", sans-serif; margin-bottom: 0.6cqw; } .ca-day span { color: #6b7280; font-weight: 500; }
.ca-slot { height: 4.4cqw; border: 0.15cqw solid #e5e7eb; border-radius: 0.9cqw; display: flex; align-items: center; justify-content: center; font: 600 1.4cqw/1 "Inter", sans-serif; transition: background 0.2s, color 0.2s, border-color 0.2s; }
.ca-slot.pick { background: #111827; color: #fff; border-color: #111827; }
.ca-ok { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.4cqw; background: rgba(255, 255, 255, 0.97); opacity: 0; transition: opacity 0.4s; }
.ca-ok i { width: 6cqw; height: 6cqw; border-radius: 50%; background: #dcfce7; display: flex; align-items: center; justify-content: center; transform: scale(0.6); transition: transform 0.5s var(--pf-ease); }
.ca-ok i svg { width: 3cqw; height: 3cqw; color: #16a34a; }
.ca-ok b { font: 600 2.6cqw/1.1 "Inter", sans-serif; letter-spacing: -0.02em; }
.ca-ok span { font: 400 1.6cqw/1 "Inter", sans-serif; color: #6b7280; }
.ca.done .ca-ok { opacity: 1; } .ca.done .ca-ok i { transform: none; }

/* Typeform: one question at a time */
.tf { background: #fbf8f3; color: #262627; font-family: "Inter", sans-serif; overflow: hidden; }
.tf-bar { position: absolute; left: 0; top: 0; height: 0.6cqw; width: 34%; background: #0445af; transition: width 0.5s var(--pf-ease); }
.tf.done .tf-bar { width: 67%; }
.tf-logo { position: absolute; left: 5cqw; top: 3.4cqw; font: 600 1.6cqw/1 "Inter", sans-serif; color: #262627; letter-spacing: -0.02em; }
.tf-q { position: absolute; left: 12cqw; right: 10cqw; top: 13cqw; transition: transform 0.6s var(--pf-ease), opacity 0.4s; }
.tf-q2 { opacity: 0; transform: translateY(14cqw); }
.tf.done .tf-q1 { opacity: 0; transform: translateY(-14cqw); }
.tf.done .tf-q2 { opacity: 1; transform: none; }
.tf-num { display: flex; align-items: center; gap: 0.8cqw; font: 500 1.7cqw/1 "Inter", sans-serif; color: #0445af; }
.tf-num svg { width: 1.6cqw; height: 1.6cqw; }
.tf-qt { margin-top: 1.2cqw; font: 400 3.6cqw/1.2 "Inter", sans-serif; letter-spacing: -0.015em; }
.tf-hint { margin-top: 1cqw; font: 400 1.6cqw/1 "Inter", sans-serif; color: #6c6c70; }
.tf-opts { margin-top: 2.6cqw; display: grid; gap: 1.2cqw; width: 44cqw; }
.tf-opt { display: flex; align-items: center; gap: 1.4cqw; padding: 1.1cqw 1.4cqw; border-radius: 0.8cqw; border: 0.15cqw solid rgba(4, 69, 175, 0.45); background: rgba(4, 69, 175, 0.07); color: #0445af; font: 400 1.9cqw/1 "Inter", sans-serif; transition: background 0.2s; }
.tf-key { width: 2.6cqw; height: 2.6cqw; flex-shrink: 0; border: 0.15cqw solid rgba(4, 69, 175, 0.6); border-radius: 0.4cqw; display: flex; align-items: center; justify-content: center; background: #fff; font: 600 1.3cqw/1 "Inter", sans-serif; transition: background 0.2s, color 0.2s; }
.tf-opt svg { width: 2cqw; height: 2cqw; margin-left: auto; opacity: 0; }
.tf-opt.pick { background: rgba(4, 69, 175, 0.18); } .tf-opt.pick .tf-key { background: #0445af; color: #fff; } .tf-opt.pick svg { opacity: 1; }
.tf-in { margin-top: 3cqw; width: 52cqw; padding-bottom: 1cqw; border-bottom: 0.25cqw solid #0445af; font: 400 3.4cqw/1.2 "Inter", sans-serif; color: #0445af; min-height: 5cqw; }
.tf-ok { margin-top: 2.4cqw; display: inline-flex; align-items: center; gap: 1cqw; padding: 1.2cqw 2.4cqw; border-radius: 0.8cqw; background: #0445af; color: #fff; font: 600 1.8cqw/1 "Inter", sans-serif; }

/* =============================================
   SECTIONS
============================================= */
/* What it is: answer first */
.pf-answer { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 56px; align-items: start; }
.pf-answer-p { font: 400 21px/1.6 "Inter", sans-serif; color: var(--pf-ink); letter-spacing: -0.01em; }
.pf-answer-p + .pf-answer-p { margin-top: 16px; font-size: 17px; color: var(--pf-text); }
.pf-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin: 64px 0 0; border-top: 1px solid var(--pf-line); }
.pf-facts > div { padding: 24px 24px 0 0; }
.pf-facts dt { font: 500 13px/1.4 "Inter", sans-serif; color: var(--pf-muted); }
.pf-facts dd { margin: 8px 0 0; font: 500 18px/1.4 "Instrument Sans", sans-serif; color: var(--pf-ink); letter-spacing: -0.01em; }
.pf-facts dd small { display: block; margin-top: 4px; font: 400 14px/1.5 "Inter", sans-serif; color: var(--pf-text); letter-spacing: 0; }

/* How to: four steps, each an image-like stage */
.pf-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.pf-step { background: #fff; border: 1px solid var(--pf-line); border-radius: 20px; overflow: hidden; }
.pf-shot { position: relative; aspect-ratio: 16 / 10; container-type: inline-size; overflow: hidden; background: #eef0f4; border-bottom: 1px solid var(--pf-line); }
.pf-shot--a { background: linear-gradient(145deg, #e8edff 0%, #fceadf 55%, #f0e8ff 100%); }
.pf-shot--b { background: linear-gradient(145deg, #fff0e5 0%, #ffe4d0 50%, #fceadf 100%); }
.pf-shot--c { background: linear-gradient(145deg, #e6f4ff 0%, #eef0ff 50%, #f3ebff 100%); }
.pf-shot--d { background: linear-gradient(160deg, #141418, #222228); }
.pf-step-t { padding: 24px 28px 28px; }
.pf-step-t h3 { display: flex; align-items: baseline; gap: 12px; font: 500 20px/1.3 "Instrument Sans", sans-serif; letter-spacing: -0.012em; color: var(--pf-ink); }
.pf-step-t h3 span { font: 500 14px/1 "Inter", sans-serif; color: var(--pf-accent-ink); font-variant-numeric: tabular-nums; }
.pf-step-t p { margin-top: 8px; font: 400 15px/1.6 "Inter", sans-serif; color: var(--pf-text); max-width: 460px; }
/* the app panel drawn inside a shot (sizes in cqw of the shot) */
.pf-app { position: absolute; background: #fff; border-radius: 2.2cqw; box-shadow: 0 2.4cqw 6cqw -2.4cqw rgba(15, 18, 30, 0.28), 0 0 0 0.15cqw rgba(15, 18, 30, 0.06); padding: 4cqw; font-family: "Inter", sans-serif; color: #141416; }
.pf-app-h { display: flex; align-items: center; gap: 2cqw; font: 600 3.4cqw/1 "Inter", sans-serif; }
.pf-app-h small { display: block; margin-top: 1cqw; font: 400 2.4cqw/1 "Inter", sans-serif; color: #7c7c84; }
.pf-app-ic { width: 7cqw; height: 7cqw; border-radius: 2cqw; background: #141416; color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pf-app-ic svg { width: 3.6cqw; height: 3.6cqw; }
.pf-app-l { display: block; margin: 4cqw 0 1.8cqw; font: 500 2.6cqw/1 "Inter", sans-serif; color: #4a4a50; }
.pf-app-f { height: 9cqw; display: flex; align-items: center; gap: 2cqw; padding: 0 2.8cqw; border: 0.25cqw solid rgba(20, 20, 22, 0.14); border-radius: 2cqw; font: 400 3cqw/1 "Inter", sans-serif; color: #141416; white-space: nowrap; overflow: hidden; transition: border-color 0.2s, box-shadow 0.2s; }
.pf-app-f.focus { border-color: rgba(64, 67, 255, 0.55); box-shadow: 0 0 0 0.8cqw rgba(64, 67, 255, 0.12); }
.pf-app-f .pf-mk { width: 5cqw; height: 5cqw; border-radius: 1.4cqw; font-size: 2.6cqw; }
.pf-app-f--area { height: 18cqw; align-items: flex-start; padding: 2.6cqw 2.8cqw; white-space: normal; line-height: 1.45; }
.pf-app-b { margin-top: 4cqw; height: 9cqw; border-radius: 2cqw; background: #141416; color: #fff; display: flex; align-items: center; justify-content: center; font: 500 3cqw/1 "Inter", sans-serif; }
.pf-app .pf-caret { height: 1.1em; }
.pf-tags { display: flex; flex-wrap: wrap; gap: 1.6cqw; margin-top: 3cqw; }
.pf-tags span { padding: 1.4cqw 2.4cqw; border-radius: 99px; border: 0.25cqw solid rgba(20, 20, 22, 0.12); font: 400 2.4cqw/1 "Inter", sans-serif; color: #4a4a50; }
.pf-tags span.on { border-color: #141416; color: #141416; }
/* step 3: the agent at work */
.pf-agent { position: absolute; left: 7cqw; right: 7cqw; top: 7cqw; bottom: 7cqw; container-type: inline-size; border-radius: 2cqw; overflow: hidden; background: #fff; box-shadow: 0 2.4cqw 6cqw -2.4cqw rgba(15, 18, 30, 0.3), 0 0 0 0.15cqw rgba(15, 18, 30, 0.06); }
.pf-agent .pff-chrome { height: 5cqw; } .pf-agent .pff-chrome i { width: 1.3cqw; height: 1.3cqw; } .pf-agent .pff-url { font-size: 1.6cqw; padding: 0.8cqw 3cqw; }
.pf-agent .pff-screen { top: 5cqw; }
.pf-rec { position: absolute; z-index: 5; left: 3cqw; bottom: 3cqw; display: flex; align-items: center; gap: 1.4cqw; padding: 1.4cqw 2.4cqw 1.4cqw 1.8cqw; border-radius: 99px; background: #141416; color: #fff; font: 500 2.2cqw/1 "Inter", sans-serif; white-space: nowrap; }
.pf-rec i { width: 1.6cqw; height: 1.6cqw; border-radius: 50%; background: #ef4444; }
.pf-rec span { color: rgba(255, 255, 255, 0.6); font-variant-numeric: tabular-nums; }
/* step 4: the finished film and what you do with it */
.pf-out { position: absolute; left: 7cqw; right: 7cqw; top: 6cqw; }
.pf-out .pff { border-radius: 1.6cqw; box-shadow: 0 0 0 0.15cqw rgba(255, 255, 255, 0.1); }
.pf-out-row { display: flex; align-items: center; justify-content: space-between; gap: 2cqw; margin-top: 3.4cqw; }
.pf-out-styles { display: flex; gap: 1.4cqw; }
.pf-out-styles span { padding: 1.2cqw 2cqw; border-radius: 99px; font: 500 2.2cqw/1 "Inter", sans-serif; color: rgba(255, 255, 255, 0.6); box-shadow: inset 0 0 0 0.2cqw rgba(255, 255, 255, 0.14); transition: background 0.3s, color 0.3s; }
.pf-out-styles span.on { background: #fff; color: #141416; }
.pf-out-acts { display: flex; gap: 1.4cqw; }
.pf-out-acts span { padding: 1.2cqw 2.2cqw; border-radius: 1.4cqw; font: 500 2.2cqw/1 "Inter", sans-serif; background: rgba(255, 255, 255, 0.1); color: #fff; white-space: nowrap; }

/* Anatomy */
.pf-anat { display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: start; }
.pf-anat-film { border-radius: 16px; padding: 8px; background: #fff; border: 1px solid var(--pf-line); }
.pf-anat-film .pff { border-radius: 10px; }
.pf-parts { display: grid; grid-template-columns: 2.2fr 4.6fr 2.2fr; gap: 4px; margin-top: 12px; }
.pf-part { position: relative; overflow: hidden; padding: 12px; text-align: left; border-radius: 10px; border: 1px solid var(--pf-line); background: #fff; cursor: pointer; }
.pf-part b { display: block; font: 500 14px/1.2 "Inter", sans-serif; color: var(--pf-ink); }
.pf-part span { display: block; margin-top: 4px; font: 400 12px/1.2 "Inter", sans-serif; color: var(--pf-muted); font-variant-numeric: tabular-nums; }
.pf-part i { position: absolute; left: 0; bottom: 0; height: 2px; width: 0; background: var(--pf-accent); }
.pf-part[aria-current="true"] { border-color: rgba(64, 67, 255, 0.4); background: var(--pf-accent-soft); }
.pf-part:focus-visible { outline: 2px solid var(--pf-accent); outline-offset: 2px; }
.pf-recipe { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; counter-reset: pfr; }
.pf-recipe li { counter-increment: pfr; display: grid; grid-template-columns: 28px 1fr; gap: 12px; }
.pf-recipe li::before { content: counter(pfr); width: 28px; height: 28px; border-radius: 50%; background: var(--pf-accent-soft); color: var(--pf-accent-ink); font: 500 13px/28px "Inter", sans-serif; text-align: center; font-variant-numeric: tabular-nums; }
.pf-recipe b { display: block; font: 500 16px/1.4 "Instrument Sans", sans-serif; color: var(--pf-ink); }
.pf-recipe span { display: block; margin-top: 4px; font: 400 15px/1.6 "Inter", sans-serif; color: var(--pf-text); }

/* Comparison table */
.pf-table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--pf-line); border-radius: 16px; overflow: hidden; }
.pf-table th, .pf-table td { padding: 20px 24px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--pf-line); }
.pf-table th { font: 500 13px/1.4 "Inter", sans-serif; color: var(--pf-muted); background: #fafafa; }
.pf-table td { font: 400 15px/1.5 "Inter", sans-serif; color: var(--pf-text); }
.pf-table td:first-child { font: 500 15px/1.4 "Instrument Sans", sans-serif; color: var(--pf-ink); width: 24%; }
.pf-table tr:last-child td { border-bottom: 0; }
.pf-table tr.us td { background: var(--pf-accent-soft); color: var(--pf-ink); }
.pf-table tr.us td:first-child { color: var(--pf-accent-ink); }

/* Make it yours */
.pf-mine { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.pf-tile { position: relative; overflow: hidden; border-radius: 20px; background: #fff; border: 1px solid var(--pf-line); display: flex; flex-direction: column; }
.pf-tile-art { position: relative; overflow: hidden; container-type: inline-size; }
.pf-tile-t { padding: 24px 28px 28px; }
.pf-tile-t h3 { font: 500 22px/1.25 "Instrument Sans", sans-serif; letter-spacing: -0.015em; color: var(--pf-ink); }
.pf-tile-t p { margin-top: 8px; font: 400 15px/1.6 "Inter", sans-serif; color: var(--pf-text); max-width: 520px; }
.pf-tile--style { grid-column: span 4; }
.pf-tile--words { grid-column: span 2; }
.pf-tile--lang { grid-column: span 6; display: grid; grid-template-columns: 1fr 1.25fr; align-items: stretch; }
.pf-tile--private, .pf-tile--link { grid-column: span 3; }
.pf-art-style { padding: 28px 28px 0; background: linear-gradient(180deg, #f2f3f7, #fff); }
.pf-art-style .pff { border-radius: 10px; box-shadow: 0 0 0 1px var(--pf-line), 0 20px 40px -24px rgba(15, 18, 30, 0.35); }
.pf-stylebar { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.pf-stylebar span { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px 8px 8px; border-radius: 10px; border: 1px solid var(--pf-line); font: 500 13px/1 "Inter", sans-serif; color: var(--pf-text); background: #fff; transition: border-color 0.2s, color 0.2s, box-shadow 0.2s; }
.pf-stylebar span i { width: 32px; height: 20px; border-radius: 5px; }
.pf-stylebar span.on { color: var(--pf-ink); border-color: var(--pf-ink); box-shadow: 0 0 0 1px var(--pf-ink); }
.pf-stylebar span.more { border-style: dashed; color: var(--pf-muted); padding: 8px 12px; }
.sw-editorial { background: #f1ebe1; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06); } .sw-launch { background: #111114; } .sw-studio { background: linear-gradient(#fff, #e4e7ee); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08); }
.sw-pop { background: #ff385c; } .sw-calm { background: linear-gradient(#f7f8fa, #e3e7ed); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06); }
/* words tile */
.pf-art-words { padding: 28px 28px 0; background: linear-gradient(180deg, #f6f2ec, #fff); }
.pf-wfield { background: #fff; border-radius: 12px; box-shadow: 0 0 0 1px var(--pf-line), 0 12px 24px -16px rgba(15, 18, 30, 0.3); padding: 12px 14px; }
.pf-wfield label { display: block; font: 500 12px/1 "Inter", sans-serif; color: var(--pf-muted); }
.pf-wfield div { margin-top: 8px; height: 22px; font: 500 15px/22px "Inter", sans-serif; color: var(--pf-ink); white-space: nowrap; overflow: hidden; }
.pf-wfield div em { font-style: normal; color: var(--pf-muted); }
.pf-art-words .pff { margin-top: 12px; border-radius: 10px; box-shadow: 0 0 0 1px var(--pf-line); }
/* languages band */
.pf-lang-art { background: #f4f5f8; padding: 32px; display: flex; flex-direction: column; justify-content: center; gap: 24px; border-left: 1px solid var(--pf-line); }
.pf-lang-art .pff { border-radius: 10px; box-shadow: 0 0 0 1px var(--pf-line), 0 20px 40px -24px rgba(15, 18, 30, 0.35); }
.pf-flags { display: grid; grid-template-columns: repeat(11, 1fr); gap: 8px; }
.pf-flag { position: relative; aspect-ratio: 1; border-radius: 50%; transition: transform 0.35s var(--pf-ease), box-shadow 0.35s, opacity 0.35s; opacity: 0.82; }
.pf-flag svg { display: block; width: 100%; height: 100%; }
.pf-flag.on { opacity: 1; transform: scale(1.18); box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--pf-ink); }
.pf-lang-now { display: flex; align-items: center; justify-content: space-between; font: 500 14px/1 "Inter", sans-serif; color: var(--pf-ink); }
.pf-lang-now span { color: var(--pf-muted); font-weight: 400; }
.pf-tile--lang .pf-tile-t { padding: 40px; display: flex; flex-direction: column; justify-content: center; }
.pf-tile--lang .pf-tile-t h3 { font-size: 30px; line-height: 1.12; letter-spacing: -0.025em; }
.pf-lang-count { margin-top: 24px; display: flex; align-items: baseline; gap: 12px; }
.pf-lang-count b { font: 500 56px/1 "Instrument Sans", sans-serif; letter-spacing: -0.04em; color: var(--pf-ink); font-variant-numeric: tabular-nums; }
.pf-lang-count span { font: 400 15px/1.4 "Inter", sans-serif; color: var(--pf-text); }
/* privacy tile */
.pf-art-private { padding: 28px; background: linear-gradient(180deg, #eef2f6, #fff); }
.pf-guests { background: #fff; border-radius: 14px; box-shadow: 0 0 0 1px var(--pf-line), 0 16px 32px -20px rgba(15, 18, 30, 0.3); overflow: hidden; }
.pf-guests-h { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--pf-line); font: 500 14px/1 "Inter", sans-serif; }
.pf-guests-h span { font: 500 12px/1 "Inter", sans-serif; padding: 6px 10px; border-radius: 99px; background: #fef3c7; color: #92400e; transition: background 0.3s, color 0.3s; }
.pf-guests.swapped .pf-guests-h span { background: #dcfce7; color: #166534; }
.pf-guests-h span em { font-style: normal; } .pf-guests-h span .b, .pf-guests.swapped .pf-guests-h span .a { display: none; } .pf-guests.swapped .pf-guests-h span .b { display: inline; }
.pf-guest { display: grid; grid-template-columns: 32px 1fr auto; gap: 12px; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--pf-line); }
.pf-guest:last-child { border-bottom: 0; }
.pf-guest i { width: 32px; height: 32px; border-radius: 50%; }
.pf-guest .nm { position: relative; height: 36px; overflow: hidden; }
.pf-guest .nm > div { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; gap: 4px; transition: opacity 0.4s, filter 0.4s, transform 0.5s var(--pf-ease); }
.pf-guest .nm b { font: 500 14px/1 "Inter", sans-serif; color: var(--pf-ink); white-space: nowrap; }
.pf-guest .nm small { font: 400 12px/1 "Inter", sans-serif; color: var(--pf-muted); white-space: nowrap; }
.pf-guest .nm .fake { opacity: 0; transform: translateY(8px); }
.pf-guests.swapped .nm .real { opacity: 0; filter: blur(4px); transform: translateY(-8px); }
.pf-guests.swapped .nm .fake { opacity: 1; transform: none; }
.pf-guest time { font: 400 12px/1 "Inter", sans-serif; color: var(--pf-muted); font-variant-numeric: tabular-nums; }
/* link tile */
.pf-art-link { padding: 28px; background: linear-gradient(180deg, #f0eff8, #fff); }
.pf-share { background: #fff; border-radius: 14px; box-shadow: 0 0 0 1px var(--pf-line), 0 16px 32px -20px rgba(15, 18, 30, 0.3); padding: 16px; display: grid; gap: 12px; }
.pf-share-h { display: flex; align-items: center; justify-content: space-between; font: 500 14px/1 "Inter", sans-serif; }
.pf-toggle { width: 36px; height: 20px; border-radius: 99px; background: var(--pf-accent); position: relative; }
.pf-toggle::after { content: ""; position: absolute; right: 3px; top: 3px; width: 14px; height: 14px; border-radius: 50%; background: #fff; }
.pf-share-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.pf-share-f { height: 40px; display: flex; align-items: center; padding: 0 12px; border: 1px solid var(--pf-line-2); border-radius: 10px; font: 400 13px/1 "Inter", sans-serif; color: var(--pf-text); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; min-width: 0; }
.pf-copy { height: 40px; padding: 0 14px; border-radius: 10px; background: var(--pf-ink); color: #fff; font: 500 13px/40px "Inter", sans-serif; transition: background 0.25s; }
.pf-copy.ok { background: #16a34a; }
.pf-vers { display: grid; grid-template-columns: 1fr 24px 1fr; gap: 8px; align-items: center; margin-top: 16px; }
.pf-vers figure { margin: 0; }
.pf-vers .pff { border-radius: 8px; box-shadow: 0 0 0 1px var(--pf-line); }
.pf-vers figcaption { margin-top: 8px; font: 400 12px/1.3 "Inter", sans-serif; color: var(--pf-muted); }
.pf-vers figcaption b { color: var(--pf-ink); font-weight: 500; }
.pf-vers .arr { text-align: center; color: var(--pf-muted); font: 400 16px/1 "Inter", sans-serif; }

/* Uses */
.pf-uses { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 40px; }
.pf-use { padding: 28px 0; border-top: 1px solid var(--pf-line); }
.pf-use h3 { font: 500 18px/1.3 "Instrument Sans", sans-serif; color: var(--pf-ink); letter-spacing: -0.01em; }
.pf-use p { margin-top: 8px; font: 400 15px/1.6 "Inter", sans-serif; color: var(--pf-text); }

/* FAQ */
.pf-plans { max-width: 760px; margin: 0 auto; text-align: center; font: 400 17px/1.7 "Inter", sans-serif; color: var(--pf-text); }
.pf-faq { max-width: 780px; margin: 0 auto; border-top: 1px solid var(--pf-line); }
.pf-faq-item { border-bottom: 1px solid var(--pf-line); }
.pf-btn-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 0; background: none; border: 0; cursor: pointer; text-align: left; font: 500 17px/1.4 "Instrument Sans", sans-serif; color: var(--pf-ink); }
.pf-btn-q svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--pf-muted); transition: transform 0.3s var(--pf-ease); }
.pf-faq-item.open .pf-btn-q svg { transform: rotate(45deg); color: var(--pf-ink); }
.pf-faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.35s var(--pf-ease); }
.pf-faq-item.open .pf-faq-a { grid-template-rows: 1fr; }
.pf-faq-a > div { overflow: hidden; }
.pf-faq-a p { padding: 0 0 24px; max-width: 700px; font: 400 15px/1.75 "Inter", sans-serif; color: var(--pf-text); }
.pf-faq-a a { color: var(--pf-accent-ink); }

/* Related + close */
.pf-related { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.pf-rel { display: flex; flex-direction: column; gap: 8px; min-height: 152px; padding: 24px; border-radius: 16px; background: #fff; border: 1px solid var(--pf-line); text-decoration: none; transition: border-color 0.2s; }
.pf-rel:hover { border-color: var(--pf-line-2); }
.pf-rel span { font: 500 12px/1 "Inter", sans-serif; color: var(--pf-muted); }
.pf-rel b { font: 500 17px/1.35 "Instrument Sans", sans-serif; color: var(--pf-ink); letter-spacing: -0.01em; }
.pf-rel p { margin-top: auto; font: 400 14px/1.5 "Inter", sans-serif; color: var(--pf-text); }
.pf-close { padding: 40px 24px 120px; background: var(--pf-canvas); }
.pf-close-box { max-width: 780px; margin: 0 auto; padding: 72px 48px; border-radius: 24px; background: var(--pf-night); text-align: center; }
.pf-close-box .pf-h2 { color: #fff; }
.pf-close-box .pf-lead { color: rgba(255, 255, 255, 0.62); margin: 16px auto 32px; }
.pf-close-box .pf-ctas { animation: none; }
.pf-close-box .btn-primary { background: #f4f4f5; color: var(--pf-ink); box-shadow: none; }
.pf-close-box .btn-primary .rolling-text span { color: var(--pf-ink); }
.pf-close-box .btn-primary:hover { background: #fff; transform: none; }
.pf-cross { margin-top: 24px; font: 400 14px/1.5 "Inter", sans-serif; color: rgba(255, 255, 255, 0.5); }
.pf-cross a { color: #fff; }

/* ── RESPONSIVE ── */
@media (max-width: 1080px) {
    .pf-rig { grid-template-columns: 264px 40px minmax(0, 1fr); }
    .pf-tabs { margin-left: 304px; }
}
@media (max-width: 900px) {
    /* on phones and tablets the film comes first (it is the hook); the brief that made it sits under it */
    .pf-rig { grid-template-columns: 1fr; gap: 0; }
    .pf-film-wrap { order: 1; } .pf-arrow { order: 2; transform: rotate(180deg); } .pf-brief { order: 3; width: 100%; max-width: 520px; justify-self: center; }
    .pf-arrow { width: 2px; height: 32px; margin: 0 auto; background: repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.28) 0 6px, transparent 6px 12px); }
    .pf-arrow::after { right: -4px; top: auto; bottom: -2px; border: 5px solid transparent; border-top: 7px solid rgba(255, 255, 255, 0.5); border-bottom: 0; }
    .pf-arrow.flow i { animation-name: pf-flow-v; }
    .pf-tabs { margin-left: 0; }
    .pf-answer, .pf-anat { grid-template-columns: 1fr; gap: 32px; }
    .pf-facts { grid-template-columns: 1fr 1fr; }
    .pf-mine { grid-template-columns: 1fr 1fr; }
    .pf-tile--style, .pf-tile--words, .pf-tile--lang, .pf-tile--private, .pf-tile--link { grid-column: span 2; }
    .pf-tile--lang { grid-template-columns: 1fr; }
    .pf-lang-art { border-left: 0; border-top: 1px solid var(--pf-line); }
    .pf-uses, .pf-related { grid-template-columns: 1fr 1fr; }
}
@keyframes pf-flow-v { 0% { top: 0; left: -3px; opacity: 0; } 20% { opacity: 1; } 100% { top: calc(100% - 8px); left: -3px; opacity: 0; } }
@media (max-width: 640px) {
    .pf-steps { grid-template-columns: 1fr; }
    .pf-hero { padding: 104px 16px 56px; }
    .pf-hero-top { gap: 16px; }
    .pf-stage { margin-top: 32px; }
    .pf-brief { padding: 16px; }
    .pf-lbl { margin: 12px 0 8px; }
    .pf-field--area { height: 64px; }
    .pf-film-wrap { padding: 4px; border-radius: 12px; }
    .pf-tabs { grid-template-columns: 1fr 1fr; }
    .pf-tab { padding: 10px; }
    /* on phones the brief keeps only what goes in: the link and the sentence */
    .pf-brief-h, .pf-brief .pf-lbl:nth-of-type(3), .pf-style-row, .pf-go { display: none; }
    .pf-brief .pf-lbl:first-of-type { margin-top: 0; }
    .pf-sec { padding: 72px 16px; }
    .pf-answer-p { font-size: 18px; }
    .pf-facts { grid-template-columns: 1fr; }
    .pf-step-t { padding: 20px; }
    .pf-tile-t { padding: 20px; }
    .pf-tile--lang .pf-tile-t { padding: 24px 20px; }
    .pf-tile--lang .pf-tile-t h3 { font-size: 26px; }
    .pf-lang-art { padding: 20px; }
    .pf-flags { grid-template-columns: repeat(8, 1fr); gap: 6px; }
    .pf-art-style, .pf-art-words, .pf-art-private, .pf-art-link { padding: 20px 20px 0; }
    .pf-art-private, .pf-art-link { padding-bottom: 20px; }
    .pf-uses, .pf-related { grid-template-columns: 1fr; }
    .pf-table, .pf-table tbody, .pf-table tr, .pf-table td { display: block; width: 100%; }
    .pf-table thead { display: none; }
    .pf-table tr { padding: 16px 20px; border-bottom: 1px solid var(--pf-line); }
    .pf-table tr:last-child { border-bottom: 0; }
    .pf-table td { border: 0; padding: 4px 0; }
    .pf-table td:first-child { width: 100%; padding-bottom: 8px; }
    .pf-table td[data-k]::before { content: attr(data-k) ": "; color: var(--pf-muted); }
    .pf-ctas { flex-direction: column; align-items: stretch; width: 100%; max-width: 340px; }
    .pf-ctas .btn { width: 100%; height: 50px; min-height: 50px; flex: 0 0 auto; }
    .pf-close { padding: 24px 16px 88px; }
    .pf-close-box { padding: 48px 20px; }
    .pf-parts b { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
    .pf-hero .pf-h1, .pf-hero .pf-lead, .pf-ctas, .pf-stage { animation: none; }
    .pff-cur { display: none; }
}

.footer-content { max-width: 1280px !important; }
.footer-links { gap: 36px !important; }
@media (max-width: 960px) { .footer-links { flex-wrap: wrap; gap: 24px !important; } }

/* step 1: the product's own window peeking from behind the link card */
.pf-peek { position: absolute; right: -10cqw; bottom: -14cqw; width: 64cqw; aspect-ratio: 16 / 10; container-type: inline-size; border-radius: 2cqw; overflow: hidden; background: #fff; box-shadow: 0 2cqw 6cqw -2cqw rgba(15, 18, 30, 0.3), 0 0 0 0.15cqw rgba(15, 18, 30, 0.06); opacity: 0.95; }
.pf-peek .pff-chrome { height: 4.6cqw; } .pf-peek .pff-url { font-size: 1.6cqw; } .pf-peek .pff-screen { top: 4.6cqw; }
/* step 2: Demosmith's reply */
.pf-reply { display: flex; gap: 2cqw; align-items: flex-start; margin-top: 3.4cqw; padding: 2.6cqw 3cqw; border-radius: 2cqw; background: #f4f4f6; font: 400 2.5cqw/1.45 "Inter", sans-serif; color: #2b2b30; opacity: 0; transform: translateY(1.5cqw); transition: opacity 0.35s, transform 0.45s var(--pf-ease); }
.pf-reply.on { opacity: 1; transform: none; }
.pf-reply i { width: 5cqw; height: 5cqw; flex-shrink: 0; border-radius: 1.4cqw; background: #141416; display: flex; align-items: center; justify-content: center; }
.pf-reply i img { width: 3.4cqw; height: 3.4cqw; }
.pf-reply b { display: block; font-weight: 500; margin-bottom: 0.6cqw; }
@media (max-width: 380px) {
    .pf-guests-h { padding: 12px; font-size: 13px; gap: 8px; }
    .pf-guests-h span { white-space: nowrap; padding: 6px 8px; }
    .pf-guest { grid-template-columns: 28px 1fr auto; gap: 10px; padding: 12px; }
    .pf-guest i { width: 28px; height: 28px; }
}
