:root {
  color-scheme: light dark;
  --bg: #f7f8fa;
  --surface: #ffffff;
  --ink: #171b22;
  --muted: #68717e;
  --line: #dfe3e8;
  --blue: #087bf1;
  --yellow: #ffd84f;
  --mint: #78dfbc;
  --coral: #ff786b;
  --charcoal: #27313c;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--bg); color: var(--ink); }
body { margin: 0; }
button, a { font: inherit; }
button { cursor: pointer; }
.preview-header { position: sticky; top: 0; z-index: 10; min-height: 58px; padding: 8px max(20px, calc((100% - 1120px) / 2)); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid color-mix(in srgb, var(--line) 74%, transparent); background: color-mix(in srgb, var(--surface) 84%, transparent); backdrop-filter: saturate(160%) blur(20px); }
.preview-header a { color: var(--blue); font-weight: 650; text-decoration: none; }
.preview-header a span { font-size: 24px; vertical-align: -2px; }
.preview-header p { margin: 0; color: var(--muted); font-size: 14px; font-weight: 700; }
.preview-header button { justify-self: end; width: 38px; height: 38px; border: 0; border-radius: 50%; background: color-mix(in srgb, var(--ink) 7%, transparent); color: var(--ink); }
main { padding: 52px 22px 100px; }
.storefront { width: min(100%, 1120px); margin: 0 auto; }
.app-summary { display: grid; grid-template-columns: 224px 1fr; gap: 34px; align-items: end; }
.app-icon { width: 224px; aspect-ratio: 1; overflow: hidden; border-radius: 49px; background: #202832; box-shadow: 0 18px 44px rgba(25,32,40,.17), inset 0 0 0 1px rgba(255,255,255,.16); }
.app-icon img { width: 100%; height: 100%; display: block; }
.eyebrow, .section-label { margin: 0 0 8px; color: var(--muted); font-size: 13px; font-weight: 760; letter-spacing: .04em; text-transform: uppercase; }
.app-identity h1 { margin: 0; font-size: clamp(48px, 7vw, 76px); line-height: .95; letter-spacing: 0; }
.subtitle { margin: 10px 0 4px; color: var(--muted); font-size: 22px; }
.developer { margin: 0; color: var(--blue); font-size: 16px; }
.get-row { margin-top: 26px; display: flex; align-items: center; gap: 14px; }
.get-row button { min-width: 82px; min-height: 38px; padding: 0 20px; border: 0; border-radius: 20px; background: var(--blue); color: #fff; font-weight: 800; }
.get-row span { color: var(--muted); font-size: 12px; }
.store-facts { margin: 44px 0 0; padding: 18px 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.store-facts div { min-width: 0; padding: 2px 22px; text-align: center; border-left: 1px solid var(--line); }
.store-facts div:first-child { border-left: 0; }
.store-facts dt { min-height: 28px; display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 16px; font-weight: 760; }
.store-facts dd { margin: 4px 0; font-size: 13px; font-weight: 700; }
.store-facts small { color: var(--muted); font-size: 11px; }
.subscription-callout { margin: 28px 0 36px; padding: 20px 22px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid color-mix(in srgb, var(--blue) 22%, var(--line)); border-radius: 18px; background: color-mix(in srgb, var(--blue) 6%, var(--surface)); }
.subscription-callout div { display: flex; align-items: baseline; gap: 12px; }
.subscription-callout span { color: var(--blue); font-size: 18px; font-weight: 800; }
.subscription-callout strong { font-size: 18px; }
.subscription-callout p { margin: 0; color: var(--muted); font-size: 14px; }
.safari-presence { padding: 42px 0 48px; border-top: 1px solid var(--line); }
.safari-presence > h2 { margin: 0 0 12px; scroll-margin-top: 78px; font-size: 32px; }
.presence-intro { max-width: 760px; margin: 0 0 24px; color: var(--muted); font-size: 17px; line-height: 1.5; }
.presence-grid { display: grid; grid-template-columns: 1.35fr 1fr .78fr; gap: 16px; align-items: stretch; }
.presence-card { min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); }
.presence-card figcaption { padding: 15px 3px 3px; display: flex; flex-direction: column; gap: 4px; }
.presence-card figcaption strong { font-size: 15px; }
.presence-card figcaption span { color: var(--muted); font-size: 12px; line-height: 1.4; }
.safari-window, .ipad-safari, .iphone-safari { position: relative; overflow: hidden; background: #eef1f4; color: #202832; box-shadow: inset 0 0 0 1px rgba(31,40,50,.08); }
.safari-window { height: 268px; border-radius: 12px; }
.mac-toolbar { height: 52px; padding: 8px 9px; display: flex; align-items: center; gap: 7px; border-bottom: 1px solid rgba(31,40,50,.12); background: rgba(250,251,252,.94); }
.traffic { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 50%; }
.traffic.red { background: #ff5f57; }
.traffic.yellow { background: #febc2e; }
.traffic.green { background: #28c840; }
.nav-control, .more-control, .touch-toolbar button, .phone-toolbar button { border: 0; background: transparent; color: #56616e; font-weight: 750; }
.nav-control { width: 24px; height: 30px; margin-left: 4px; font-size: 24px; }
.address-field { height: 34px; min-width: 70px; flex: 1; display: grid; place-items: center; border-radius: 10px; background: #e8ebee; color: #626d79; font-size: 11px; }
.mark-toolbar-button { width: 38px; height: 34px; padding: 0; position: relative; display: grid; place-items: center; border: 0; border-radius: 9px; background: transparent; }
.mark-toolbar-button.is-active { background: #dde2e6; }
.mark-toolbar-button img { width: 22px; height: 22px; image-rendering: auto; }
.mark-toolbar-button span { position: absolute; top: 39px; left: 50%; z-index: 3; padding: 5px 8px; border-radius: 6px; background: #27313c; color: #fff; font-size: 10px; opacity: 0; transform: translate(-50%, -3px); transition: opacity .16s ease, transform .16s ease; }
.mark-toolbar-button:hover span, .mark-toolbar-button:focus-visible span { opacity: 1; transform: translate(-50%, 0); }
.more-control { width: 34px; }
.mac-page { height: 216px; padding: 50px 30px; position: relative; background: linear-gradient(135deg, #fff 0 56%, #e6f7f1 56%); }
.mac-page strong { display: block; font-size: 24px; }
.demo-highlight { display: inline-block; margin-top: 18px; padding: 2px 3px; background: rgba(255,216,79,.72); font-size: 14px; }
.demo-palette { width: 142px; height: 44px; padding: 6px 8px; position: absolute; right: 18px; bottom: 18px; display: flex; align-items: center; gap: 12px; border-radius: 13px; background: #27313c; box-shadow: 0 10px 24px rgba(31,40,50,.2); }
.demo-palette img { width: 30px; height: 30px; }
.demo-palette i { width: 19px; height: 19px; border-radius: 6px; background: #ffd84f; }
.demo-palette i:nth-of-type(2) { background: #78dfbc; }
.demo-palette i:nth-of-type(3) { background: #ff786b; }
.ipad-safari { height: 268px; border-radius: 16px; background: linear-gradient(145deg, #dceaf3, #f8fafb); }
.touch-toolbar { height: 48px; padding: 6px 10px; display: grid; grid-template-columns: 34px 1fr 34px; gap: 8px; align-items: center; background: rgba(250,251,252,.88); border-bottom: 1px solid rgba(31,40,50,.1); }
.touch-toolbar button { width: 34px; height: 34px; border-radius: 10px; background: rgba(39,49,60,.06); font-size: 16px; }
.touch-address { height: 32px; display: grid; place-items: center; border-radius: 10px; background: rgba(39,49,60,.07); color: #697480; font-size: 10px; }
.page-menu { background: rgba(251,252,253,.94); border: 1px solid rgba(31,40,50,.1); box-shadow: 0 18px 44px rgba(31,40,50,.2); backdrop-filter: blur(18px) saturate(150%); }
.page-menu-ipad { width: 84%; margin: 22px auto 0; padding: 7px; border-radius: 16px; }
.menu-row { min-height: 45px; padding: 7px 9px; display: grid; grid-template-columns: 30px 1fr 14px; align-items: center; gap: 9px; border-top: 1px solid rgba(31,40,50,.09); font-size: 11px; }
.menu-row:first-of-type { border-top: 0; }
.menu-row img { width: 27px; height: 27px; border-radius: 7px; }
.menu-row i { width: 27px; text-align: center; color: #616c78; font-style: normal; font-weight: 720; }
.menu-row > span:last-child { justify-self: end; color: #9aa1aa; }
.mark-row { border-radius: 10px; background: rgba(8,123,241,.08); }
.mark-row strong { font-size: 12px; }
.iphone-safari { width: min(100%, 205px); height: 268px; margin: 0 auto; border: 6px solid #202832; border-radius: 28px; background: #f5f7f8; }
.phone-page { padding: 30px 18px; display: flex; flex-direction: column; gap: 10px; }
.phone-page b { font-size: 16px; }
.phone-page span { height: 7px; border-radius: 4px; background: #dfe4e8; }
.phone-page span:nth-child(3) { width: 74%; }
.page-menu-phone { position: absolute; left: 7px; right: 7px; bottom: 47px; z-index: 2; padding: 5px 7px 7px; border-radius: 17px; }
.menu-handle { width: 34px; height: 4px; margin: 2px auto 5px; border-radius: 2px; background: #c3c9cf; }
.page-menu-phone .menu-row { min-height: 42px; }
.phone-toolbar { height: 43px; padding: 5px 7px; position: absolute; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: 30px 1fr 30px; align-items: center; gap: 4px; background: rgba(250,251,252,.97); border-top: 1px solid rgba(31,40,50,.11); }
.phone-toolbar span { min-width: 0; overflow: hidden; color: #626d79; font-size: 9px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.system-note { margin: 16px 2px 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.screenshots { padding: 4px 0 28px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(310px, 35%); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.shot { min-height: 620px; padding: 32px 26px 24px; position: relative; overflow: hidden; border-radius: 28px; scroll-snap-align: start; color: #17212a; }
.shot::after { content: ""; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 0 1px rgba(23,33,42,.09); border-radius: inherit; }
.shot header { min-height: 180px; position: relative; z-index: 2; }
.shot header > span { display: inline-flex; min-width: 32px; height: 24px; align-items: center; justify-content: center; border-radius: 12px; background: rgba(255,255,255,.52); font-size: 11px; font-weight: 850; }
.shot h2 { margin: 16px 0 8px; font-size: 34px; line-height: .98; letter-spacing: 0; }
.shot header p { margin: 0; max-width: 290px; color: rgba(23,33,42,.7); font-size: 16px; line-height: 1.38; }
.shot-highlight { background: #ffd84f; }
.shot-tools { background: #9ed7ff; }
.shot-library { background: #98e8cb; }
.shot-devices { background: #ff9a8c; }
.shot-canvas { height: 364px; margin-top: 16px; position: relative; overflow: hidden; border: 8px solid #202832; border-radius: 22px; background: #f8f9fb; box-shadow: 0 22px 36px rgba(25,32,40,.18); }
.browser-mini { height: 44px; padding: 0 10px; display: flex; align-items: center; gap: 6px; background: #27313c; color: #c5cbd1; }
.browser-mini i { width: 8px; height: 8px; border-radius: 50%; background: var(--coral); }
.browser-mini i:nth-child(2) { background: var(--yellow); }
.browser-mini i:nth-child(3) { background: var(--mint); }
.browser-mini b { margin-left: 8px; font-size: 10px; font-weight: 600; }
.page-copy { padding: 34px 24px; position: relative; }
.page-copy strong { display: block; font-size: 26px; line-height: 1.05; }
.page-copy p { font-size: 15px; line-height: 1.45; }
.page-copy mark { position: absolute; left: 23px; top: 115px; background: rgba(255,216,79,.72); transform: rotate(-1deg); }
.palette-mini { position: absolute; right: 12px; bottom: 14px; width: 184px; height: 54px; padding: 8px 10px; display: flex; align-items: center; justify-content: space-between; border-radius: 15px; background: #27313c; box-shadow: 0 12px 28px rgba(0,0,0,.22); }
.palette-mini img { width: 34px; height: 34px; }
.palette-mini span { width: 24px; height: 24px; border-radius: 7px; background: #ffd84f; }
.palette-mini span:nth-of-type(2) { border: 2px dotted #ff786b; background: transparent; }
.palette-mini span:nth-of-type(3) { height: 6px; background: #5aa7ff; transform: rotate(-12deg); }
.palette-mini span:nth-of-type(4) { background: #78dfbc; }
.tool-showcase { height: 370px; margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tool-swatch { padding: 16px; position: relative; overflow: hidden; border-radius: 18px; background: rgba(255,255,255,.68); }
.tool-swatch b { font-size: 13px; }
.swatch-highlight i { position: absolute; left: 20px; right: 20px; top: 58%; height: 24px; border-radius: 10px 4px 8px 5px; background: rgba(255,216,79,.82); transform: rotate(-4deg); }
.swatch-outline i { position: absolute; inset: 54px 18px 20px; border: 5px dotted var(--coral); border-radius: 12px; transform: rotate(2deg); }
.swatch-draw i { position: absolute; left: 20px; top: 76px; width: 100px; height: 58px; border: solid #5aa7ff; border-width: 0 0 8px 0; border-radius: 50%; transform: rotate(-14deg); }
.swatch-note i { position: absolute; right: 14px; bottom: 18px; width: 112px; min-height: 88px; padding: 14px; border-radius: 12px 12px 3px 12px; background: var(--yellow); font-size: 13px; font-style: normal; font-weight: 720; transform: rotate(3deg); box-shadow: 0 12px 22px rgba(25,32,40,.14); }
.library-mini { height: 370px; margin-top: 16px; padding: 18px; border-radius: 22px; background: rgba(255,255,255,.78); box-shadow: 0 22px 36px rgba(25,32,40,.16); }
.library-head, .folder-row { display: flex; align-items: center; justify-content: space-between; }
.library-head strong { font-size: 25px; }
.library-head span { color: var(--muted); font-size: 12px; }
.folder-row { margin: 18px 0 14px; gap: 6px; justify-content: flex-start; }
.folder-row b { padding: 7px 10px; border: 1px solid rgba(23,33,42,.12); border-radius: 9px; font-size: 11px; }
.folder-row b:first-child { background: var(--charcoal); color: #fff; }
.thumb-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.thumb-grid i { height: 76px; border-radius: 9px; background: linear-gradient(145deg, #8ecbe4, #ffd081 62%, #93bd9d); }
.thumb-grid i:nth-child(2n) { background: linear-gradient(145deg, #313b48 0 24%, #f7f8fa 24% 50%, #ff786b 50% 54%, #f7f8fa 54%); }
.device-family { height: 370px; margin-top: 16px; position: relative; }
.device-family i { position: absolute; display: block; border: 7px solid #27313c; background: linear-gradient(145deg, #f7f8fa 0 42%, #ffd84f 42% 51%, #f7f8fa 51%); box-shadow: 0 18px 30px rgba(25,32,40,.2); }
.device-family .mac { left: 0; right: 0; top: 44px; height: 206px; border-radius: 14px; }
.device-family .mac::after { content: ""; position: absolute; left: 32%; right: 32%; bottom: -28px; height: 22px; border-radius: 0 0 8px 8px; background: #27313c; }
.device-family .ipad { width: 144px; height: 194px; right: 12px; bottom: 6px; border-radius: 18px; background: linear-gradient(145deg, #f7f8fa 0 38%, #78dfbc 38% 48%, #f7f8fa 48%); }
.device-family .iphone { width: 80px; height: 160px; left: 18px; bottom: 8px; border-radius: 20px; background: linear-gradient(145deg, #f7f8fa 0 42%, #5aa7ff 42% 52%, #f7f8fa 52%); }
.about, .privacy-card, .information, .submission-images, .icon-package { padding: 42px 0; border-top: 1px solid var(--line); }
.about h2, .privacy-card h2, .information h2, .submission-images h2, .icon-package h2 { margin: 0 0 14px; font-size: 28px; }
.about > p:not(.section-label), .privacy-card > p { max-width: 820px; color: var(--muted); font-size: 17px; line-height: 1.56; }
.privacy-card > div { display: flex; align-items: center; gap: 16px; }
.privacy-card > div > span { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 16px; background: color-mix(in srgb, var(--mint) 34%, var(--surface)); color: #187457; font-size: 26px; font-weight: 900; }
.privacy-card h2 { margin: 0; }
.information dl { margin: 0; }
.information dl div { padding: 13px 0; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); }
.information dt { color: var(--muted); }
.information dd { margin: 0; text-align: right; }
.submission-images > p:not(.section-label) { margin: 0 0 22px; color: var(--muted); font-size: 16px; line-height: 1.5; }
.submission-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.submission-grid div { min-width: 0; padding: 18px; display: flex; flex-direction: column; gap: 5px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.submission-grid strong { font-size: 15px; }
.submission-grid span { color: var(--ink); font-size: 17px; font-weight: 760; }
.submission-grid small { color: var(--muted); font-size: 12px; }
.icon-package > p:not(.section-label) { margin: 0 0 24px; color: var(--muted); font-size: 16px; }
.icon-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.icon-grid figure { margin: 0; min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); }
.icon-grid figure > img { width: 100%; display: block; aspect-ratio: 1; object-fit: contain; border-radius: 23%; }
.icon-grid .icon-dark { background: #111317; border-color: #34383f; }
.icon-grid .icon-tinted { background: #d7e9e3; }
.icon-grid .icon-mac > img { border-radius: 0; }
.icon-grid figcaption { margin-top: 14px; display: flex; flex-direction: column; gap: 3px; }
.icon-grid figcaption strong { color: var(--ink); font-size: 15px; }
.icon-grid .icon-dark figcaption strong { color: #f4f5f7; }
.icon-grid figcaption span { color: var(--muted); font-size: 12px; }
.safari-icon-spec { margin-top: 14px; padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.spec-copy { display: flex; flex-direction: column; gap: 4px; }
.spec-copy strong { font-size: 15px; }
.spec-copy span { color: var(--muted); font-size: 12px; line-height: 1.4; }
.spec-icons { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.extension-sizes img { width: 38px; height: 38px; border-radius: 9px; }
.extension-sizes img:nth-child(2) { width: 48px; height: 48px; border-radius: 11px; }
.extension-sizes img:nth-child(3) { width: 58px; height: 58px; border-radius: 13px; }
.toolbar-sizes { padding: 5px 8px; gap: 8px; border-radius: 10px; background: #e8ebee; }
.toolbar-sizes span { width: 38px; height: 32px; display: grid; place-items: center; }
.toolbar-sizes img { image-rendering: auto; }
footer { padding: 28px 22px 48px; color: var(--muted); text-align: center; font-size: 12px; }
footer p { max-width: 720px; margin: 0 auto; }

@media (prefers-color-scheme: dark) {
  :root { --bg: #111317; --surface: #1c1f24; --ink: #f4f5f7; --muted: #a5adb7; --line: #34383f; }
}

html.force-dark { color-scheme: dark; --bg: #111317; --surface: #1c1f24; --ink: #f4f5f7; --muted: #a5adb7; --line: #34383f; }
html.force-light { color-scheme: light; --bg: #f7f8fa; --surface: #ffffff; --ink: #171b22; --muted: #68717e; --line: #dfe3e8; }

@media (max-width: 720px) {
  main { padding: 32px 16px 72px; }
  .preview-header { padding-inline: 14px; }
  .preview-header p { display: none; }
  .preview-header { grid-template-columns: 1fr auto; }
  .app-summary { grid-template-columns: 118px 1fr; gap: 20px; align-items: start; }
  .app-icon { width: 118px; border-radius: 27px; }
  .app-identity h1 { font-size: 46px; }
  .subtitle { margin-top: 8px; font-size: 17px; }
  .developer { font-size: 14px; }
  .eyebrow { display: none; }
  .get-row { margin-top: 16px; }
  .store-facts { grid-auto-flow: column; grid-auto-columns: minmax(128px, 1fr); grid-template-columns: none; overflow-x: auto; }
  .store-facts div { padding-inline: 16px; }
  .subscription-callout { align-items: flex-start; flex-direction: column; gap: 6px; }
  .subscription-callout div { align-items: flex-start; flex-direction: column; gap: 2px; }
  .presence-grid { grid-template-columns: 1fr; }
  .safari-window, .ipad-safari { height: 256px; }
  .presence-iphone { display: grid; grid-template-columns: minmax(154px, 205px) 1fr; align-items: center; gap: 10px; }
  .presence-iphone figcaption { align-self: center; }
  .screenshots { grid-auto-columns: minmax(286px, 82%); }
  .shot { min-height: 590px; border-radius: 24px; }
  .icon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .icon-grid figure { padding: 12px; border-radius: 15px; }
  .safari-icon-spec { align-items: flex-start; flex-direction: column; gap: 14px; }
  .submission-grid { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .app-summary { grid-template-columns: 104px 1fr; gap: 16px; }
  .app-icon { width: 104px; border-radius: 24px; }
  .app-identity h1 { font-size: 42px; }
  .get-row span { display: none; }
  .presence-iphone { display: block; }
}
