.posture-page{
  --posture-ink:#13263b;
  --posture-muted:#5d6a78;
  --posture-navy:#071d32;
  --posture-navy-soft:#12354e;
  --posture-teal:#0f8f86;
  --posture-teal-dark:#08736d;
  --posture-mint:#e6f5f1;
  --posture-mint-soft:#f3faf8;
  --posture-cream:#f5f1e9;
  --posture-paper:#fffdf9;
  --posture-line:#d9e1de;
  --posture-shadow:0 24px 70px rgba(9,35,52,.12);
  --grid-opacity:.48;
  --grid-size:8.333%;
  color:var(--posture-ink);
  background:var(--posture-paper);
  overflow-x:hidden;
}

.posture-page *,
.posture-page *::before,
.posture-page *::after{ box-sizing:border-box; }
.posture-page img{ display:block; max-width:100%; height:auto; }
.posture-page button,
.posture-page input,
.posture-page select{ font:inherit; }
.posture-page .posture-brand-image{ width:auto; height:38px; }
.posture-nav-actions{ display:flex; align-items:center; gap:14px; }

.posture-page button:focus-visible,
.posture-page a:focus-visible,
.posture-page input:focus-visible,
.posture-page select:focus-visible{
  outline:3px solid rgba(15,143,134,.35);
  outline-offset:3px;
}

.posture-hero{
  position:relative;
  overflow:hidden;
  padding:82px 0 88px;
  color:#fff;
  background:
    radial-gradient(circle at 92% 8%, rgba(55,192,178,.23), transparent 28%),
    radial-gradient(circle at 15% 92%, rgba(255,255,255,.08), transparent 25%),
    linear-gradient(135deg,var(--posture-navy) 0%,var(--posture-navy-soft) 100%);
}
.posture-hero::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.1;
  background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px);
  background-size:58px 58px;
  mask-image:linear-gradient(90deg,transparent,#000 70%);
}
.posture-hero-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(430px,1.12fr);
  gap:62px;
  align-items:center;
}
.posture-hero-copy .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-bottom:20px;
  color:#9fe3da;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.15em;
}
.posture-hero-copy .eyebrow::before{ content:""; width:28px; height:1px; background:currentColor; }
.posture-hero h1{ max-width:650px; margin-bottom:22px; color:#fff; font-size:clamp(2.35rem,4.5vw,4.65rem); line-height:1.03; letter-spacing:-.04em; }
.posture-hero .lead{ max-width:665px; color:rgba(255,255,255,.8); font-size:1.08rem; line-height:1.75; }
.posture-btn-light{ border-color:rgba(255,255,255,.45); color:#fff; background:transparent; }
.posture-btn-light:hover{ color:var(--posture-navy); background:#fff; }
.posture-trust-list{ display:flex; flex-wrap:wrap; gap:10px 22px; margin:28px 0 0; padding:0; list-style:none; color:rgba(255,255,255,.78); font-size:.82rem; }
.posture-trust-list li{ display:flex; align-items:center; gap:7px; }
.posture-trust-list li::before{ content:"✓"; display:grid; place-items:center; width:18px; height:18px; border-radius:50%; color:var(--posture-navy); background:#8fd8ce; font-weight:800; }

.posture-browser-card{ overflow:hidden; border:1px solid rgba(255,255,255,.2); border-radius:24px; background:#f3eee5; box-shadow:0 35px 80px rgba(0,0,0,.3); transform:rotate(1deg); }
.posture-browser-bar{ display:flex; align-items:center; gap:7px; min-height:44px; padding:0 17px; color:#6d786f; background:#fff; font-size:.68rem; }
.posture-browser-bar span{ width:9px; height:9px; border-radius:50%; background:#cfddd8; }
.posture-browser-bar span:first-child{ background:#ef9c8f; }
.posture-browser-bar span:nth-child(2){ background:#f2c776; }
.posture-browser-bar span:nth-child(3){ background:#84c9b1; }
.posture-browser-bar strong{ margin-left:auto; color:#53645f; font-size:.68rem; }
.posture-hero-visual{ position:relative; overflow:hidden; background:#eee5da; }
.posture-hero-visual img{ width:100%; }
.posture-browser-caption{ display:flex; align-items:center; justify-content:space-between; gap:22px; padding:18px 20px; color:var(--posture-ink); }
.posture-browser-caption span{ flex:0 0 auto; padding:6px 10px; border-radius:999px; color:var(--posture-teal-dark); background:var(--posture-mint); font-size:.7rem; font-weight:700; }
.posture-browser-caption strong{ max-width:310px; text-align:right; font-size:.76rem; line-height:1.5; }

.symmetrograph-grid{
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  opacity:var(--grid-opacity);
  background-image:
    linear-gradient(rgba(16,119,111,.72) 1px,transparent 1px),
    linear-gradient(90deg,rgba(16,119,111,.72) 1px,transparent 1px);
  background-size:var(--grid-size) var(--grid-size);
  transition:opacity .2s ease,background-size .2s ease,clip-path .18s ease;
}
.symmetrograph-grid::before,
.symmetrograph-grid::after{ content:""; position:absolute; z-index:1; background:rgba(5,83,79,.95); box-shadow:0 0 0 1px rgba(255,255,255,.38); }
.symmetrograph-grid::before{ top:0; bottom:0; left:50%; width:2px; transform:translateX(-1px); }
.symmetrograph-grid::after{ left:0; right:0; top:50%; height:2px; transform:translateY(-1px); }
.posture-grid-hidden .symmetrograph-grid{ opacity:0 !important; }

.posture-symmetrograph-section{ padding:92px 0; background:var(--posture-paper); }
.posture-symmetrograph-layout{ display:grid; grid-template-columns:minmax(250px,.72fr) minmax(0,1fr); gap:86px; align-items:center; max-width:1000px; }
.posture-symmetrograph-layout > div:last-child{ max-width:580px; }
.posture-symmetrograph-layout h2{ margin:12px 0 20px; font-size:clamp(2rem,4vw,3.45rem); line-height:1.08; }
.posture-symmetrograph-layout > div:last-child > p{ color:var(--posture-muted); font-size:1.05rem; line-height:1.75; }
.posture-symmetrograph-demo{ position:relative; justify-self:center; width:min(100%,285px); aspect-ratio:2/3; overflow:hidden; border:10px solid #fff; border-radius:26px; background:#eee7dd; box-shadow:var(--posture-shadow); }
.posture-demo-label{ position:absolute; z-index:5; right:14px; bottom:14px; padding:7px 10px; border-radius:999px; color:#fff; background:rgba(7,29,50,.84); font-size:.68rem; font-weight:700; }
.posture-boundary-note{ margin-top:18px; padding:16px 18px; border-left:3px solid var(--posture-teal); border-radius:0 12px 12px 0; background:var(--posture-mint-soft); }
.posture-boundary-note strong{ display:block; margin-bottom:3px; color:var(--posture-teal-dark); }
.posture-boundary-note p{ margin:0; color:var(--posture-muted); font-size:.9rem; }
.posture-boundary-note.is-caution{ border-color:#b88637; background:#fff8ea; }
.posture-boundary-note.is-caution strong{ color:#76521b; }

.posture-page .posture-model-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
.posture-page .posture-model-image[hidden]{ display:none; }

.posture-protocol-section{ padding:88px 0; }
.posture-protocol-section .section-head p{ max-width:760px; margin-inline:auto; }
.posture-position-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:42px; }
.posture-position-card{ display:grid; grid-template-columns:minmax(160px,.85fr) minmax(0,1fr); min-height:355px; overflow:hidden; border:1px solid var(--posture-line); border-radius:20px; background:#fff; box-shadow:0 14px 38px rgba(9,35,52,.07); }
.posture-position-visual{ position:relative; width:100%; aspect-ratio:3/4; min-height:330px; overflow:hidden; background:#eee7dd; }
.posture-position-copy{ align-self:center; padding:26px; }
.posture-position-copy > span{ display:block; margin-bottom:22px; color:var(--posture-teal); font-family:var(--font-display); font-size:.78rem; font-weight:700; letter-spacing:.12em; }
.posture-position-copy h3{ margin-bottom:9px; font-size:1.25rem; }
.posture-position-copy p{ color:var(--posture-muted); font-size:.88rem; line-height:1.65; }
.posture-example-button{ min-height:42px; padding:0; border:0; color:var(--posture-teal-dark); background:transparent; cursor:pointer; font-weight:700; }
.posture-example-button::after{ content:" →"; }
.posture-example-button:hover{ text-decoration:underline; }

.posture-preparation-section{ padding:88px 0; background:var(--posture-navy); color:#fff; }
.posture-preparation-section .section-head{ max-width:720px; }
.posture-preparation-section h2{ color:#fff; }
.posture-preparation-section .section-head p{ color:rgba(255,255,255,.68); }
.posture-preparation-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin-top:42px; overflow:hidden; border:1px solid rgba(255,255,255,.12); border-radius:20px; background:rgba(255,255,255,.12); }
.posture-preparation-grid article{ min-height:225px; padding:26px 24px; background:#0d2940; }
.posture-preparation-grid article > span{ display:block; margin-bottom:34px; color:#75cec3; font-family:var(--font-display); font-size:.72rem; font-weight:700; }
.posture-preparation-grid h3{ color:#fff; font-size:1rem; }
.posture-preparation-grid p{ margin:0; color:rgba(255,255,255,.65); font-size:.84rem; line-height:1.65; }

.posture-tool-section{ padding:92px 0; background:var(--posture-cream); }
.posture-tool-shell{ max-width:1160px; margin:0 auto; padding:42px; border:1px solid #ded8cd; border-radius:26px; background:var(--posture-paper); box-shadow:var(--posture-shadow); }
.posture-tool-heading{ display:flex; align-items:flex-start; justify-content:space-between; gap:35px; padding-bottom:30px; border-bottom:1px solid var(--posture-line); }
.posture-tool-heading h2{ margin:8px 0 6px; }
.posture-tool-heading p{ margin:0; }
.posture-progress{ display:flex; gap:11px; margin:2px 0 0; padding:0; list-style:none; }
.posture-progress li{ display:flex; align-items:center; gap:7px; color:#6c7882; font-size:.74rem; font-weight:600; white-space:nowrap; }
.posture-progress span{ display:grid; place-items:center; width:28px; height:28px; border:1px solid #b8c3c5; border-radius:50%; background:#fff; }
.posture-progress li.is-active{ color:var(--posture-navy); }
.posture-progress li.is-active span,
.posture-progress li.is-complete span{ border-color:var(--posture-teal); color:#fff; background:var(--posture-teal); }
.posture-alert{ margin:24px 0; padding:16px 18px; border-radius:12px; font-size:.9rem; line-height:1.55; }
.posture-alert-info{ color:#173b56; border:1px solid #c6dce3; background:#edf7f8; }
.posture-alert-warning{ color:#5d4213; border:1px solid #ead8ae; background:#fff8e9; }
.posture-panel{ padding-top:10px; }
.posture-panel[hidden]{ display:none !important; }
.posture-panel h3{ margin-top:12px; }
.posture-panel-kicker{ color:var(--posture-teal-dark); font-size:.73rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.posture-checks{ display:grid; gap:13px; margin:26px 0; }
.posture-checks label{ display:flex; gap:12px; align-items:flex-start; padding:16px 17px; border:1px solid var(--posture-line); border-radius:12px; background:#fff; cursor:pointer; }
.posture-checks label:hover{ border-color:#9fcac5; }
.posture-checks input{ flex:0 0 auto; width:20px; height:20px; margin:2px 0 0; accent-color:var(--posture-teal); }
.posture-checks span{ color:var(--posture-ink); font-size:.91rem; }
.posture-panel .btn:disabled{ opacity:.48; cursor:not-allowed; transform:none; }
.posture-photo-intro,
.posture-result-header{ display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.posture-photo-intro p{ margin:0; color:var(--posture-muted); }
.posture-text-button{ min-height:44px; padding:7px 0; border:0; color:var(--posture-teal-dark); background:transparent; cursor:pointer; font-weight:700; white-space:nowrap; }
.posture-text-button:hover{ text-decoration:underline; }
.posture-photo-progress{ display:grid; gap:10px; margin-top:24px; padding:18px 20px; border:1px solid var(--posture-line); border-radius:13px; background:var(--posture-mint-soft); }
.posture-photo-progress > span{ color:var(--posture-ink); font-size:.95rem; font-weight:700; }
.posture-photo-progress progress{ appearance:none; width:100%; height:8px; overflow:hidden; border:0; border-radius:999px; background:#dce7e3; accent-color:var(--posture-teal); }
.posture-photo-progress progress::-webkit-progress-bar{ border-radius:999px; background:#dce7e3; }
.posture-photo-progress progress::-webkit-progress-value{ border-radius:999px; background:var(--posture-teal); }
.posture-photo-progress progress::-moz-progress-bar{ border-radius:999px; background:var(--posture-teal); }
.posture-photo-progress small{ color:var(--posture-muted); font-size:.76rem; }
.posture-photo-progress.is-complete{ border-color:#78bdb5; }
.posture-next-button.is-ready{ box-shadow:0 0 0 4px rgba(15,143,134,.13); }

.posture-upload-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:28px 0; }
.posture-upload-card{ display:grid; grid-template-columns:minmax(165px,.9fr) minmax(0,1fr); grid-template-rows:1fr auto; min-width:0; overflow:hidden; border:1px solid var(--posture-line); border-radius:18px; background:#fff; transition:border-color .18s ease,box-shadow .18s ease; }
.posture-upload-card:hover{ transform:translateY(-2px); box-shadow:0 15px 32px rgba(9,35,52,.08); }
.posture-upload-card.has-file{ border-color:#78bdb5; box-shadow:0 0 0 2px rgba(15,143,134,.08); }
.posture-upload-card.has-error{ border-color:#c77166; }
.posture-upload-visual{ position:relative; width:100%; aspect-ratio:3/4; min-height:350px; overflow:hidden; background:#eee7dd; }
.posture-user-photo{ position:absolute; inset:0; display:grid; place-items:center; overflow:hidden; background:#15202b; }
.posture-user-photo[hidden]{ display:none; }
.posture-user-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; transform-origin:center; transition:transform .18s ease; }
.posture-ready-badge{ position:absolute; z-index:5; top:10px; left:10px; padding:6px 9px; border-radius:999px; color:#fff; background:var(--posture-teal-dark); font-size:.68rem; font-weight:700; }
.posture-ready-badge[hidden]{ display:none; }
.posture-upload-copy{ min-width:0; align-self:center; padding:24px 20px; }
.posture-upload-number{ display:block; margin-bottom:17px; color:var(--posture-teal); font-size:.7rem; font-weight:700; letter-spacing:.12em; }
.posture-upload-copy h4{ margin:0 0 7px; font-size:1.1rem; }
.posture-upload-copy p{ margin:0 0 10px; color:var(--posture-muted); font-size:.82rem; line-height:1.55; }
.posture-file-state{ color:#77828c; font-size:.75rem; font-weight:700; }
.has-file .posture-file-state{ color:var(--posture-teal-dark); }
.posture-upload-actions{ grid-column:1/-1; display:flex; flex-wrap:wrap; align-content:end; gap:8px; padding:18px; border-top:1px solid var(--posture-line); }
.posture-upload-actions input{ position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; }
.posture-upload-actions input:focus-visible + .posture-upload-button{ outline:3px solid var(--posture-teal); outline-offset:3px; }
.posture-upload-button,
.posture-mini-button{ display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 12px; border:1px solid #c4cfcc; border-radius:9px; color:var(--posture-ink); background:#fff; cursor:pointer; font-size:.8rem; font-weight:700; line-height:1.3; text-align:center; }
.posture-upload-button{ flex-basis:100%; min-height:48px; border-color:var(--posture-teal); color:#fff; background:var(--posture-teal); }
.posture-mini-button{ flex:1 1 auto; }
.posture-upload-button:hover{ background:var(--posture-teal-dark); }
.posture-mini-button:hover{ border-color:var(--posture-teal); color:var(--posture-teal-dark); }
.posture-mini-button.is-danger{ color:#9a3e35; }
.posture-mini-button[hidden]{ display:none; }
.posture-photo-tips{ padding:19px 21px; border-left:4px solid var(--posture-teal); border-radius:0 12px 12px 0; background:var(--posture-mint); font-size:.89rem; }
.posture-photo-tips ul{ margin:8px 0 0; padding-left:19px; color:var(--posture-muted); }
.posture-next-button,
.posture-analyse-button{ margin-top:22px; }

.posture-grid-toolbar{ display:flex; flex-wrap:wrap; gap:14px 26px; align-items:center; margin:24px 0; padding:15px 18px; border:1px solid var(--posture-line); border-radius:13px; background:#fff; }
.posture-grid-toolbar label{ display:flex; align-items:center; gap:10px; min-height:44px; max-width:100%; color:var(--posture-muted); font-size:.82rem; font-weight:600; }
.posture-switch{ display:flex; align-items:center; gap:10px; min-height:44px; cursor:pointer; }
.posture-switch input[type="checkbox"]{ flex:0 0 auto; width:21px; height:21px; margin:0; accent-color:var(--posture-teal); }
.posture-grid-toolbar input[type="range"]{ width:120px; min-width:55px; min-height:44px; flex:1 1 100px; accent-color:var(--posture-teal); }
.posture-grid-toolbar output{ flex:0 0 3ch; font-variant-numeric:tabular-nums; }
.posture-grid-help{ color:var(--posture-muted); font-size:.78rem; }
.posture-grid-disclaimer{ color:var(--posture-muted); font-size:.86rem; }
.posture-grid-toolbar select{ min-height:38px; padding:6px 30px 6px 10px; border:1px solid #c4cfcc; border-radius:8px; color:var(--posture-ink); background:#fff; }
.posture-review-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.posture-review-card{ overflow:hidden; border:1px solid var(--posture-line); border-radius:14px; background:#fff; }
.posture-review-photo{ position:relative; display:grid; place-items:center; aspect-ratio:3/4; overflow:hidden; background:#15202b; }
.posture-review-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; transform-origin:center; transition:transform .18s ease; will-change:transform; }
.posture-review-card h4{ margin:0; padding:13px 15px; font-size:.9rem; }
.posture-analysis-state{ display:flex; align-items:center; gap:14px; margin-top:20px; padding:16px; border:1px solid #b9e0da; border-radius:12px; background:#f1fbf9; }
.posture-analysis-state[hidden]{ display:none; }
.posture-analysis-state strong,
.posture-analysis-state span{ display:block; }
.posture-analysis-state span{ color:var(--posture-muted); font-size:.84rem; }
.posture-spinner{ width:28px; height:28px; border:3px solid #c4e9e3; border-top-color:var(--posture-teal); border-radius:50%; animation:posture-spin .8s linear infinite; }
@keyframes posture-spin{ to{ transform:rotate(360deg); } }
.posture-error{ margin-top:18px; padding:15px 17px; border:1px solid #e0b1aa; border-radius:12px; color:#8c1f14; background:#fff5f3; white-space:pre-line; }
.posture-error[hidden]{ display:none; }

.posture-result-summary{ margin:22px 0; padding:20px; border:1px solid #b9e0da; border-radius:14px; color:#174e48; background:#effaf8; }
.posture-result-summary strong{ color:var(--posture-navy); }
.posture-no-diagnosis{ display:inline-flex; align-items:center; min-height:27px; margin-left:8px; padding:5px 9px; border:1px solid #e4c98e; border-radius:999px; color:#76521b; background:#fff8e9; font-size:.68rem; font-weight:700; vertical-align:middle; }
.posture-clinical-boundary{ display:grid; grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr); gap:18px; align-items:start; margin:0 0 22px; padding:18px 20px; border-left:4px solid #d5a54d; border-radius:0 12px 12px 0; background:#fff8e9; }
.posture-clinical-boundary strong{ color:var(--posture-navy); }
.posture-clinical-boundary span{ color:#6f6048; font-size:.86rem; line-height:1.65; }
.posture-result-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:20px 0 24px; }
.posture-result-card{ overflow:hidden; border:1px solid var(--posture-line); border-radius:16px; background:#fff; }
.posture-result-photo{ position:relative; display:grid; place-items:center; aspect-ratio:3/4; max-height:520px; overflow:hidden; background:#15202b; }
.posture-result-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; transform-origin:center; transition:transform .18s ease; will-change:transform; }
.posture-result-copy{ padding:20px; }
.posture-result-copy h4{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:9px; font-size:1rem; }
.posture-result-copy h4 span{ padding:5px 8px; border-radius:999px; color:var(--posture-teal-dark); background:var(--posture-mint); font-family:var(--font-body); font-size:.67rem; }
.posture-result-copy ul{ margin:13px 0 0; padding-left:20px; color:var(--posture-muted); }
.posture-result-copy li + li{ margin-top:8px; }
.posture-share-box{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px 28px; align-items:center; margin-top:28px; padding:28px; border-radius:20px; background:var(--posture-navy); }
.posture-share-kicker{ display:block; margin-bottom:7px; color:#82d7cd; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.posture-share-box h3{ color:#fff; }
.posture-share-box p{ margin:0; color:rgba(255,255,255,.72); }
.posture-share-consent{ grid-column:1/-1; display:flex; align-items:flex-start; gap:10px; padding:14px; border:1px solid rgba(255,255,255,.2); border-radius:11px; color:rgba(255,255,255,.86); font-size:.82rem; cursor:pointer; }
.posture-share-consent input{ flex:0 0 auto; width:18px; height:18px; margin-top:2px; accent-color:var(--posture-teal); }
.posture-share-actions{ grid-column:2; grid-row:1; display:flex; flex-direction:column; gap:10px; }
.posture-share-actions .btn-outline{ justify-content:center; border-color:rgba(255,255,255,.45); color:#fff; }
.posture-share-actions .btn-outline:hover{ color:var(--posture-navy); background:#fff; }
.posture-share-actions .is-disabled{ opacity:.46; pointer-events:auto; cursor:not-allowed; transform:none; }
.posture-share-box small{ grid-column:1/-1; color:rgba(255,255,255,.64); }

.posture-privacy-section{ padding:92px 0; background:var(--posture-paper); }
.posture-privacy-shell{ display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:72px; align-items:start; padding:48px; border-radius:24px; color:#fff; background:linear-gradient(140deg,#0b293f,#0d3a4b); }
.posture-privacy-shell h2{ margin-top:12px; color:#fff; }
.posture-privacy-shell > div:first-child p{ color:rgba(255,255,255,.68); }
.posture-privacy-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; overflow:hidden; border:1px solid rgba(255,255,255,.12); border-radius:15px; background:rgba(255,255,255,.12); }
.posture-privacy-grid article{ padding:22px; background:rgba(5,28,45,.42); }
.posture-privacy-grid article > span{ color:#80d6cb; font-size:.68rem; font-weight:700; }
.posture-privacy-grid h3{ margin:17px 0 6px; color:#fff; font-size:.95rem; }
.posture-privacy-grid p{ margin:0; color:rgba(255,255,255,.62); font-size:.8rem; line-height:1.6; }

.posture-science{ padding:88px 0; }
.posture-science .section-head{ max-width:850px; }
.posture-evidence-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }
.posture-evidence-grid article{ padding:24px; border:1px solid var(--posture-line); border-radius:16px; background:#fff; }
.posture-evidence-grid article > span{ display:block; margin-bottom:25px; color:var(--posture-teal); font-size:.7rem; font-weight:700; letter-spacing:.1em; }
.posture-evidence-grid h3{ font-size:1rem; }
.posture-evidence-grid p{ color:var(--posture-muted); font-size:.83rem; line-height:1.65; }
.posture-evidence-grid a{ font-size:.78rem; font-weight:700; }
.posture-research-note{ margin:24px 0 0; padding:19px 21px; border-radius:12px; background:#eaf1f2; font-size:.88rem; }
.posture-specialist{ padding:90px 0; }
.posture-specialist-grid{ display:grid; grid-template-columns:310px minmax(0,1fr); gap:58px; align-items:center; max-width:930px; }
.posture-specialist-grid > img{ width:310px; height:auto; object-fit:contain; border-radius:26px; box-shadow:var(--posture-shadow); }
.posture-credential{ color:var(--posture-teal-dark); font-weight:700; }

.posture-dialog{ width:min(920px,calc(100% - 32px)); max-height:calc(100vh - 32px); padding:0; overflow:auto; border:0; border-radius:24px; background:var(--posture-paper); box-shadow:0 30px 90px rgba(0,0,0,.35); }
.posture-dialog::backdrop{ background:rgba(3,18,31,.78); backdrop-filter:blur(6px); }
.posture-dialog-shell{ position:relative; display:grid; grid-template-columns:minmax(250px,310px) minmax(0,1fr); min-height:550px; }
.posture-dialog-visual{ position:relative; align-self:center; width:100%; aspect-ratio:3/4; overflow:hidden; background:#eee7dd; }
.posture-dialog-copy{ align-self:center; padding:44px; }
.posture-dialog-copy h2{ margin-top:12px; }
.posture-dialog-tip{ margin:22px 0; padding:16px 18px; border-radius:12px; background:#fff4e3; }
.posture-dialog-tip strong{ color:#76521b; }
.posture-dialog-tip p{ margin:4px 0 0; font-size:.88rem; }
.posture-example-checklist{ margin:18px 0; padding-left:21px; color:var(--posture-muted); font-size:.87rem; line-height:1.7; }
.posture-example-checklist li::marker{ color:var(--posture-teal-dark); }
.posture-dialog-switch{ margin:15px 0; font-size:.85rem; }
.posture-dialog-close{ position:absolute; z-index:8; top:14px; right:14px; display:grid; place-items:center; width:42px; height:42px; padding:0; border:1px solid rgba(7,29,50,.12); border-radius:50%; color:var(--posture-ink); background:rgba(255,255,255,.9); cursor:pointer; font-size:1.6rem; line-height:1; }
.posture-dialog-user-visual{ display:grid; place-items:center; aspect-ratio:3/4; background:#15202b; }
.posture-dialog-user-visual img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; transform-origin:center; transition:transform .18s ease; will-change:transform; }
.posture-reposition-dialog{ width:min(1040px,calc(100% - 32px)); }
.posture-reposition-shell{ position:relative; display:grid; grid-template-columns:minmax(270px,430px) minmax(280px,1fr); min-height:640px; }
.posture-reposition-workspace{ padding:34px; color:#fff; background:linear-gradient(145deg,#0a2a3d,#0c4150); }
.posture-reposition-workspace .tag{ color:#bce9e3; background:rgba(255,255,255,.1); }
.posture-reposition-workspace h2{ margin:13px 0 8px; color:#fff; font-size:1.45rem; }
.posture-reposition-workspace > p{ margin:0 0 20px; color:rgba(255,255,255,.7); font-size:.84rem; }
.posture-reposition-stage{ position:relative; width:min(100%,310px); aspect-ratio:3/4; margin:0 auto; overflow:hidden; border:1px solid rgba(255,255,255,.32); border-radius:14px; outline:0; background:#14202b; box-shadow:0 18px 42px rgba(0,0,0,.26); cursor:grab; touch-action:none; }
.posture-reposition-stage:focus-visible{ box-shadow:0 0 0 3px #8ce0d6,0 18px 42px rgba(0,0,0,.26); }
.posture-reposition-stage.is-dragging{ cursor:grabbing; }
.posture-reposition-stage img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; transform-origin:center; user-select:none; pointer-events:none; will-change:transform; }
.posture-reposition-controls{ display:flex; flex-direction:column; justify-content:center; padding:54px; }
.posture-reposition-controls h3{ margin:10px 0 8px; }
.posture-reposition-controls p{ color:var(--posture-muted); }
.posture-reposition-controls > label:not(.posture-switch){ display:flex; justify-content:space-between; gap:20px; margin-top:26px; color:var(--posture-ink); font-size:.85rem; font-weight:700; }
.posture-reposition-controls output{ color:var(--posture-teal-dark); }
.posture-reposition-controls input[type="range"]{ width:100%; margin:10px 0 4px; accent-color:var(--posture-teal); }
.posture-reposition-help{ font-size:.78rem; }
.posture-reposition-actions{ display:flex; gap:10px; margin-top:22px; }
.posture-reposition-actions .btn{ flex:1 1 0; justify-content:center; }
.posture-reposition-controls > .posture-text-button{ align-self:center; margin-top:10px; }
.posture-noscript{ padding:18px; color:#7d1f18; background:#fff2ef; text-align:center; }
.posture-footer-title{ font-family:var(--font-display); font-size:1.15rem; }
.posture-footer-copy{ max-width:330px; color:rgba(255,255,255,.7); }
.posture-footer-address{ color:rgba(255,255,255,.7); }

@media (max-width:1100px){
  .posture-hero-grid{ grid-template-columns:minmax(0,1fr) minmax(390px,.9fr); gap:38px; }
  .posture-preparation-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .posture-evidence-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .posture-review-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:900px){
  .posture-hero-grid{ grid-template-columns:1fr; }
  .posture-browser-card{ max-width:720px; transform:none; }
  .posture-symmetrograph-layout{ gap:48px; }
  .posture-position-card{ grid-template-columns:1fr; }
  .posture-position-visual{ width:100%; max-height:400px; }
  .posture-tool-heading{ flex-direction:column; }
  .posture-upload-grid{ grid-template-columns:1fr; }
  .posture-upload-card{ grid-template-columns:minmax(200px,.85fr) minmax(0,1fr); }
  .posture-privacy-shell{ grid-template-columns:1fr; gap:36px; }
}

@media (max-width:760px){
  .posture-nav-actions .nav-cta{ display:none; }
  .posture-hero{ padding:60px 0 66px; }
  .posture-hero h1{ font-size:clamp(2.35rem,11vw,3.6rem); }
  .posture-symmetrograph-section,
  .posture-protocol-section,
  .posture-preparation-section,
  .posture-tool-section,
  .posture-privacy-section,
  .posture-science,
  .posture-specialist{ padding:62px 0; }
  .posture-symmetrograph-layout{ grid-template-columns:1fr; }
  .posture-symmetrograph-demo{ width:min(100%,285px); }
  .posture-position-grid{ grid-template-columns:1fr; }
  .posture-position-card{ max-width:560px; }
  .posture-upload-card{ grid-template-columns:1fr; }
  .posture-upload-visual{ width:100%; min-height:0; max-height:470px; }
  .posture-upload-copy{ padding:20px; }
  .posture-upload-number{ margin-bottom:8px; }
  .posture-tool-shell{ padding:26px 18px; border-radius:18px; }
  .posture-progress{ width:100%; justify-content:space-between; }
  .posture-progress li{ font-size:0; }
  .posture-progress li span{ font-size:.75rem; }
  .posture-grid-toolbar{ align-items:flex-start; flex-direction:column; }
  .posture-grid-toolbar label{ width:100%; }
  .posture-next-button,
  .posture-analyse-button{ width:100%; justify-content:center; white-space:normal; text-align:center; }
  .posture-result-grid{ grid-template-columns:1fr; }
  .posture-clinical-boundary{ grid-template-columns:1fr; gap:6px; }
  .posture-share-box{ grid-template-columns:1fr; }
  .posture-share-actions{ grid-column:auto; grid-row:auto; }
  .posture-share-box small{ grid-column:auto; }
  .posture-privacy-shell{ padding:28px 20px; }
  .posture-specialist-grid{ grid-template-columns:1fr; gap:30px; }
  .posture-specialist-grid > img{ width:230px; }
  .posture-dialog-shell{ grid-template-columns:1fr; }
  .posture-dialog-visual{ justify-self:center; width:min(100%,340px); }
  .posture-dialog-copy{ padding:32px 26px; }
  .posture-reposition-shell{ grid-template-columns:1fr; }
  .posture-reposition-workspace{ padding:28px 24px; }
  .posture-reposition-controls{ padding:38px 30px; }
}

@media (max-width:520px){
  .posture-page .cta-row{ align-items:stretch; flex-direction:column; }
  .posture-page .cta-row .btn{ width:100%; justify-content:center; }
  .posture-hero-grid{ gap:34px; }
  .posture-browser-caption{ align-items:flex-start; flex-direction:column; }
  .posture-browser-caption strong{ text-align:left; }
  .posture-position-card{ min-height:0; }
  .posture-position-visual{ min-height:0; }
  .posture-position-copy{ padding:19px; }
  .posture-position-copy > span{ margin-bottom:13px; }
  .posture-preparation-grid{ grid-template-columns:1fr; }
  .posture-preparation-grid article{ min-height:185px; }
  .posture-upload-copy{ padding:20px 18px; }
  .posture-upload-actions{ padding:16px; }
  .posture-review-grid{ grid-template-columns:1fr; }
  .posture-privacy-grid,
  .posture-evidence-grid{ grid-template-columns:1fr; }
  .posture-photo-intro,
  .posture-result-header{ flex-direction:column; gap:4px; }
  .posture-share-actions{ width:100%; }
  .posture-share-actions .btn{ justify-content:center; }
  .posture-dialog{ width:calc(100% - 20px); }
  .posture-dialog-shell{ grid-template-columns:1fr; }
  .posture-dialog-visual{ width:min(100%,320px); }
  .posture-dialog-user-visual{ width:100%; }
  .posture-dialog-copy{ padding:28px 20px; }
  .posture-reposition-shell{ grid-template-columns:1fr; }
  .posture-reposition-workspace{ padding:28px 20px 24px; }
  .posture-reposition-stage{ width:min(100%,280px); }
  .posture-reposition-controls{ padding:28px 20px; }
  .posture-no-diagnosis{ margin:8px 0 0; }
}

@media (prefers-reduced-motion:reduce){
  .posture-page *,
  .posture-page *::before,
  .posture-page *::after{ scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
