/* Hallmark · shape: Split Studio · genre: modern-minimal · theme: Coral, recoloreado a verde por decisión de Juan el 13-nov (logo Atenta: acento #25D366, sello y «Hecha» en verde oscuro, neutros fríos) (deal 3/3, seed avizu-asistente-que-vigila-fba1·6ddf801d·2026-11-13·r0) · job: sign up · draw: 257640
 * hero: Stage · nav: floating pill · footer: statement · imagery: the product built (hero desk, connection, board, restricted source) · signature: a WhatsApp message on the desk becomes a task sheet and «Anotado» is pressed in dark green
 * axes: light/grotesk-sans/cool · posture: restrained · contrast: pass · fold: pass · v2.0.0 */
/* Hallmark · hero-review: fix · 5 findings · 5 resolved (headline breaks, centring, desk as the ground, phone signature, sample names) */
/* Hallmark · finish-review: subagent · fix · 8 findings · 8 resolved (v1 copy shows the person marking, boxes removed and table full width, Hecha pressed, FAQ cut, own close head, table gaps, phone legibility, larger desk) · gap: none */
/* Hallmark · answered F4 · the second hero action is Coral's cotton card control, the theme's quiet button; only the ink card is filled */
/* Hallmark · pre-emit critique: P4 H4 E4 S5 R4 V4 · weakest: P, the promise is plain; the hero argues it by showing one real pedido turning into a task instead of claiming it */
@import url("./tokens.css");
@import url("./base.css");

:root {
  --nav-h: 64px;
  --nav-total: calc(var(--nav-h) + var(--space-sm));
  --desk-unit: clamp(11px, 0.8vw + 4.5px, 16px);
}

/* Material: cotton stock on a felt desk, one light from the left */
.stock { background-color: var(--color-cotton); background-image: linear-gradient(100deg, var(--color-cotton), transparent 45%), var(--tex-cotton); color: var(--color-print); box-shadow: var(--edge-stock), var(--cast-stock); }
.desk { background-color: var(--color-desk); background-image: radial-gradient(90% 120% at 0% 30%, var(--color-cotton), transparent 62%), var(--tex-desk); }
.fig { font-family: var(--font-outlier); font-variant-numeric: tabular-nums; }
.press-shade { flood-color: var(--color-print); flood-opacity: 0.28; }
.defs { position: absolute; }

/* Controls: letterpress cards */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 var(--space-lg); border: 0; border-radius: var(--radius-stock); font-weight: 500; font-size: var(--text-md); line-height: 1; white-space: nowrap; text-decoration: none; cursor: pointer; transition: transform var(--dur-micro) var(--ease-out), box-shadow var(--dur-short) var(--ease-out); }
.btn--card { background-color: var(--color-cotton); background-image: var(--tex-cotton); color: var(--color-print); text-shadow: 0.5px 0.75px 0 var(--color-cotton); box-shadow: var(--edge-stock), var(--cast-stock); }
.btn--ink { background: var(--color-board); color: var(--color-board-type); text-shadow: 0 -0.75px 0 var(--color-ink); box-shadow: var(--cast-stock); }
.btn:hover { transform: translateY(-1px); box-shadow: var(--edge-stock), var(--cast-stock-lift); }
.btn--ink:hover { box-shadow: var(--cast-stock-lift); }
.btn:active { transform: translateY(1px); box-shadow: var(--edge-stock); }
.btn:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.btn:disabled, .btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; transform: none; }
.btn[aria-busy="true"] { cursor: progress; }

.skip { position: absolute; left: var(--space-md); top: calc(-1 * var(--space-3xl)); z-index: var(--z-toast); padding: var(--space-xs) var(--space-md); background: var(--color-board); color: var(--color-board-type); border-radius: var(--radius-input); }
.skip:focus-visible { top: var(--space-md); }

/* Nav: a floating cotton strip */
.nav { position: sticky; top: var(--space-sm); z-index: var(--z-sticky-nav); padding-top: var(--space-sm); }
.nav__bar { display: flex; align-items: center; gap: var(--space-xl); min-height: var(--nav-h); padding: 0 var(--space-xs) 0 var(--space-lg); border-radius: var(--radius-card); }
.wordmark { display: inline-flex; align-items: center; text-decoration: none; }
.wordmark img { height: 30px; width: auto; }
.nav__links { display: flex; gap: var(--space-lg); margin: 0 0 0 auto; padding: 0; list-style: none; }
.nav__links a { font-size: var(--text-sm); color: var(--color-ink-2); text-decoration: none; white-space: nowrap; }
.nav__links a:hover { color: var(--color-print); text-decoration: underline; text-decoration-color: var(--color-accent-2); }
.nav__action { min-height: 44px; }

/* Hero: Stage, text on five, the desk on seven */
.hero { min-height: 100dvh; margin-top: calc(-1 * var(--nav-total)); padding-block: calc(var(--nav-total) + var(--space-lg)) var(--space-lg); display: grid; align-items: center; }
.hero__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-2xl); align-items: center; }
.hero__text { display: grid; gap: var(--space-lg); }
.hero h1 { font-size: clamp(2.5rem, 3.4vw + 1rem, 4.75rem); line-height: 1.02; max-width: none; }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); padding-top: var(--space-xs); }
.hero__terms { font-size: var(--text-sm); color: var(--color-muted); }

/* The desk and its paperwork, sized from one unit so it scales whole */
.hero__desk { position: relative; margin: 0; min-height: 520px; height: min(80dvh, 720px); background: transparent; font-size: var(--desk-unit); }
.hero__desk .paper { box-shadow: var(--edge-stock), var(--cast-stock-lift); }
.desk__play { position: absolute; inset: 0; }
.paper { position: absolute; border-radius: var(--radius-stock); }

.msg { top: 6%; left: 5%; width: 22em; padding: var(--space-md) var(--space-md) 3.6em; transform: rotate(-2.2deg); }
.msg__group { font-size: 0.9em; font-weight: 600; padding-bottom: var(--space-sm); border-bottom: 1px solid var(--color-rule); }
.msg__bubble { position: relative; margin-top: var(--space-sm); padding: var(--space-sm) var(--space-md) var(--space-xs); border-radius: var(--radius-card); background: var(--color-paper-2); }
.msg__from { font-size: 0.85em; font-weight: 500; color: var(--color-muted); }
.msg__text { font-size: 1.15em; line-height: 1.35; padding-top: var(--space-3xs); }
.msg__time { font-size: 0.8em; color: var(--color-muted); text-align: right; }
.msg__mark { position: absolute; left: 1.2em; bottom: 0.9em; margin: 0; padding: 0.45em 0.9em; border-radius: var(--radius-input); background-color: var(--color-cotton); background-image: var(--tex-cotton); box-shadow: var(--press-groove); font-size: 0.85em; font-weight: 600; color: var(--color-print); }

.sheet { top: 37%; left: 30%; width: 27em; padding: var(--space-lg) var(--space-lg) 4.6em; transform: rotate(1.4deg); }
.sheet__kind { font-size: 0.85em; color: var(--color-muted); }
.sheet__title { font-size: 1.55em; font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; padding: var(--space-2xs) 0 var(--space-md); border-bottom: 1px solid var(--color-print); }
.sheet__facts { display: grid; margin: 0; }
.sheet__facts > div { display: grid; grid-template-columns: 8.5em minmax(0, 1fr); gap: var(--space-sm); padding: var(--space-xs) 0; border-bottom: 1px solid var(--color-rule); }
.sheet__facts dt { font-size: 0.9em; color: var(--color-muted); }
.sheet__facts dd { margin: 0; font-size: 1em; font-weight: 500; }
.stamp { position: absolute; right: 1.3em; bottom: 0.5em; margin: 0; font-size: 2.5em; font-weight: 600; letter-spacing: -0.02em; color: var(--color-paid); filter: url(#press); transform: rotate(-7deg); }

/* The job, played once after fonts load and in view; the finished state is the default */
.js .desk__play.is-playing .msg { animation: arrive 700ms var(--ease-out) both; }
.js .desk__play.is-playing .msg__mark { animation: arrive-flat 380ms var(--ease-out) 800ms both; }
.js .desk__play.is-playing .sheet { animation: slide-in 900ms var(--ease-out) 1300ms both; }
.js .desk__play.is-playing .stamp { animation: press 380ms var(--ease-out) 3100ms both; }
@keyframes arrive { from { opacity: 0; transform: translateY(12px) rotate(-2.2deg); } to { opacity: 1; transform: rotate(-2.2deg); } }
@keyframes arrive-flat { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@keyframes slide-in { from { opacity: 0; transform: translate(24px, 40px) rotate(4deg); } to { opacity: 1; transform: rotate(1.4deg); } }
@keyframes press { from { opacity: 0; transform: scale(1.25) rotate(-7deg); } to { opacity: 1; transform: rotate(-7deg); } }

/* Sections: Split Studio rows, the proof keeps the right side */
.row { padding-block: var(--section-gap) 0; }
.row--lead { padding-top: var(--section-gap-l); }
.row--quiet { margin-top: var(--section-gap-s); padding-block: var(--section-gap-s); background: var(--color-paper-2); }
.split { display: grid; gap: var(--space-3xl); align-items: center; }
.split--5-7 { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.split__text { display: grid; gap: var(--space-lg); align-content: center; }
.showcase { display: grid; gap: var(--space-2xl); }
.showcase__head { display: grid; gap: var(--space-md); max-width: 54rem; }
.showcase .board-sheet { max-width: none; width: 100%; transform: rotate(0.4deg); box-shadow: var(--edge-stock), var(--cast-stock-lift); padding: var(--space-xl); }
.note { color: var(--color-muted); max-width: 44ch; }
.facts { display: grid; gap: var(--space-md); margin: var(--space-md) 0 0; padding-top: var(--space-lg); border-top: 1px solid var(--color-rule); }
.facts dt { font-weight: 600; }
.facts dd { margin: var(--space-3xs) 0 0; color: var(--color-ink-2); max-width: 46ch; }

.proof[data-slot] { background: none; }
.proof { position: relative; margin: 0; min-height: 440px; display: grid; place-items: center; padding: var(--space-xl) var(--space-lg); }
.paper-flat { width: 100%; max-width: 560px; border-radius: var(--radius-stock); padding: var(--space-lg) var(--space-lg) var(--space-xl); }
.proof .paper-flat { box-shadow: var(--edge-stock), var(--cast-stock-lift); }
#conexion .paper-flat { transform: rotate(-1.2deg); }
#privacidad .paper-flat { transform: rotate(0.9deg); }

.chip { display: inline-flex; align-items: center; min-height: 26px; padding: 0 var(--space-xs); border: 1px solid var(--color-print); border-radius: var(--radius-input); font-size: var(--text-sm); font-weight: 500; white-space: nowrap; }
.chip--off { border-color: var(--color-rule-2); color: var(--color-muted); }
.chip--done { border: 0; padding: 0; color: var(--color-paid); font-size: var(--text-lg); font-weight: 600; filter: url(#press); transform: rotate(-4deg); }

.chats__title, .board-sheet__title { font-weight: 600; font-size: var(--text-lg); padding-bottom: var(--space-sm); border-bottom: 1px solid var(--color-print); }
.chats__list { margin: 0; padding: 0; list-style: none; }
.chats__list li { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); min-height: 56px; border-bottom: 1px solid var(--color-rule); }
.chats__list .is-off .chats__name { color: var(--color-muted); }

.tasks { width: 100%; border-collapse: collapse; font-size: var(--text-md); }
.tasks thead th { padding: var(--space-sm) var(--space-lg) var(--space-xs) 0; text-align: left; font-weight: 500; color: var(--color-muted); white-space: nowrap; border-bottom: 1px solid var(--color-rule); }
.tasks tbody th, .tasks td { padding: var(--space-md) var(--space-lg) var(--space-md) 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--color-rule); }
.tasks tbody th { font-weight: 600; font-size: var(--text-md); }
.tasks__src { display: block; padding-top: var(--space-3xs); font-weight: 400; font-size: var(--text-sm); color: var(--color-muted); }
.tasks td:last-child, .tasks th:last-child { padding-right: 0; }

.sheet-flat { max-width: 500px; }
.restricted { white-space: nowrap; padding: 0 var(--space-2xs); border: 1px dashed var(--color-muted); border-radius: var(--radius-input); color: var(--color-muted); }
.restricted__why { padding-top: var(--space-md); font-size: var(--text-sm); color: var(--color-muted); }

/* The close: the ink board, the form laid on it as stationery */
.close { margin-top: 0; padding-block: var(--section-gap-s); background: var(--color-board); color: var(--color-board-type); }
.close h2 { color: var(--color-board-type); }
.close .lead { color: var(--color-board-type); }
.close__text { display: grid; gap: var(--space-md); }
.close__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-3xl); align-items: center; }
.access { display: grid; gap: var(--space-md); padding: var(--space-xl); border-radius: var(--radius-stock); box-shadow: var(--edge-stock), 8px 10px 22px -10px oklch(var(--deep) / 0.6); }
.field { display: grid; gap: var(--space-2xs); }
.field label { font-size: var(--text-sm); font-weight: 500; color: var(--color-print); }
.field input { min-height: 48px; padding: 0 var(--space-md); border: 1px solid var(--color-muted); border-radius: var(--radius-input); background: var(--color-cotton); color: var(--color-print); font-size: var(--text-md); outline: 2px solid transparent; outline-offset: -3px; }
.field input:hover { border-color: var(--color-print); }
.field input:focus-visible { outline-color: var(--color-focus); }
.field input[aria-invalid] { border-color: var(--color-error); }
.field input:disabled { opacity: 0.55; cursor: not-allowed; }
.access .btn { justify-self: start; margin-top: var(--space-xs); }
.trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.access__help { min-height: 1lh; font-size: var(--text-sm); color: var(--color-muted); }

/* Footer: one closing sentence, the links beneath */
.footer { padding-block: var(--space-3xl) var(--space-xl); }
.footer__logo { height: 40px; width: auto; margin-bottom: var(--space-xl); }
.footer__line { font-size: var(--text-section); font-weight: 600; letter-spacing: var(--tracking-display); line-height: 1.05; max-width: 20ch; }
.footer__links { display: flex; flex-wrap: wrap; gap: var(--space-lg); margin: var(--space-xl) 0 0; padding: var(--space-lg) 0 0; list-style: none; border-top: 1px solid var(--color-rule); }
.footer__links a { color: var(--color-ink-2); text-decoration: none; white-space: nowrap; }
.footer__links a:hover { color: var(--color-ink); text-decoration: underline; text-decoration-color: var(--color-accent-2); }
.footer__legal { padding-top: var(--space-lg); font-size: var(--text-sm); color: var(--color-muted); }

/* One reveal: the hero's halves, 80ms apart */
.js [data-reveal] { opacity: 0; transform: translateY(8px); transition: opacity var(--dur-long) var(--ease-out), transform var(--dur-long) var(--ease-out); transition-delay: calc(var(--i, 0) * 80ms); }
.js [data-reveal].is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .js [data-reveal] { opacity: 1; transform: none; transition: none; }
  .js .desk__play.is-playing .msg, .js .desk__play.is-playing .msg__mark, .js .desk__play.is-playing .sheet, .js .desk__play.is-playing .stamp { animation: none; }
  .btn { transition: none; }
}

@media (max-width: 60rem) {
  .nav__links { display: none; }
  .nav__action { margin-left: auto; }
  .hero { min-height: 0; }
  .hero__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
  .hero__desk { height: auto; min-height: 0; aspect-ratio: 6 / 5; }
  .split--5-7, .close__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
  .proof { min-height: 0; padding: var(--space-xl) var(--space-md); }
}
@media (max-width: 40rem) {
  .hero { padding-bottom: var(--space-md); }
  .hero__grid { gap: var(--space-md); }
  .hero__text { gap: var(--space-md); }
  .hero__second, .hero__terms { display: none; }
  .hero__desk { height: auto; aspect-ratio: auto; font-size: 13px; padding: var(--space-md) var(--space-xs) var(--space-lg); }
  .desk__play { position: static; }
  .msg { display: none; }
  .sheet { position: relative; top: auto; left: auto; width: 100%; }
  .showcase .board-sheet { padding: var(--space-lg); transform: none; }
  .tasks thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .tasks tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2xs) var(--space-sm); padding: var(--space-sm) 0; border-bottom: 1px solid var(--color-rule); }
  .tasks tbody th, .tasks td { padding: 0; border: 0; }
  .tasks tbody th { grid-column: 1 / -1; }
  .access { padding: var(--space-lg); }
}
