/* Halo One — marker-scoped Apple-inspired product experience */
body.fp-apple-active {
  --ap-white: #f5f5f7;
  --ap-paper: #fbfbfd;
  --ap-ink: #1d1d1f;
  --ap-muted: #6e6e73;
  --ap-blue: #0071e3;
  --ap-night: #050507;
  --ap-glow: #9edcff;
  --ap-product-color: #d8d9da;
  margin: 0;
  background: var(--ap-paper);
  color: var(--ap-ink);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif;
  font-optical-sizing: auto;
  overflow-x: clip;
}
body.fp-apple-active .wp-site-blocks > header,
body.fp-apple-active .wp-site-blocks > footer,
body.fp-apple-active .wp-block-post-title { display: none; }
body.fp-apple-active .wp-site-blocks > main,
body.fp-apple-active .wp-site-blocks > main > .wp-block-group.alignfull,
body.fp-apple-active .wp-block-post-content { margin: 0 !important; padding: 0 !important; max-width: none !important; }
body.fp-apple-active .ap-page { margin: 0; overflow: clip; background: var(--ap-paper); }
.ap-page, .ap-page * { box-sizing: border-box; }
.ap-page a { color: inherit; text-decoration: none; }
.ap-page .wp-block-heading, .ap-page p { margin-block: 0; }
.ap-page .ap-reveal { opacity: 0; translate: 0 2rem; transition: opacity .75s cubic-bezier(.22,1,.36,1), translate .75s cubic-bezier(.22,1,.36,1); }
.ap-page .ap-reveal.is-visible { opacity: 1; translate: 0 0; }

.ap-nav-shell { position: fixed; top: max(.75rem, env(safe-area-inset-top)); right: max(.75rem, env(safe-area-inset-right)); left: max(.75rem, env(safe-area-inset-left)); z-index: 30; padding: .55rem 1rem; border: 1px solid rgba(255,255,255,.62); border-radius: 1rem; background: rgba(251,251,253,.74); box-shadow: 0 .45rem 1.5rem rgba(0,0,0,.05); backdrop-filter: saturate(180%) blur(24px); -webkit-backdrop-filter: saturate(180%) blur(24px); transition: background .3s ease, box-shadow .3s ease; }
.ap-nav-shell.is-scrolled { background: rgba(251,251,253,.9); box-shadow: 0 .5rem 1.8rem rgba(0,0,0,.09); }
.ap-nav { width: min(68rem, 100%); min-height: 2.7rem; margin: auto; }
.ap-wordmark { font-size: 1.2rem; font-weight: 700; letter-spacing: -.055em; }
.ap-nav-actions { gap: 1.6rem; color: #333336; font-size: .78rem; }
.ap-nav-actions a:not(.wp-block-button__link) { padding-block: .75rem; }
.ap-buy-small .wp-block-button__link, .ap-buy-actions .wp-block-button__link { border: 0; border-radius: 999px; background: var(--ap-blue); color: #fff; padding: .62rem 1.1rem; font-size: .78rem; line-height: 1; box-shadow: none; transition: filter .15s ease, transform .15s ease; }
.ap-buy-small .wp-block-button__link:active, .ap-buy-actions .wp-block-button__link:active { transform: scale(.96); }

.ap-hero { min-height: 100svh; padding: clamp(8rem,12vw,11rem) 1.5rem 4rem; display: grid; justify-items: center; align-content: start; text-align: center; background: radial-gradient(circle at 50% 58%, #fff 0, #f5f5f7 38%, #ececf0 100%); position: relative; }
.ap-hero::before { content: ""; position: absolute; width: min(60rem,90vw); height: 38rem; top: 34%; border-radius: 50%; background: radial-gradient(ellipse, rgba(255,255,255,.98), rgba(214,230,240,.28) 45%, transparent 72%); filter: blur(30px); pointer-events: none; }
.ap-eyebrow, .ap-kicker { color: var(--ap-muted); font-size: clamp(.85rem,1.4vw,1rem); font-weight: 600; letter-spacing: -.01em; }
.ap-hero-title { z-index: 1; margin-top: 1.1rem !important; font-size: clamp(3.8rem,9.4vw,8.4rem); line-height: .88; letter-spacing: -.065em; font-weight: 700; }
.ap-hero-copy { z-index: 1; max-width: 35rem; margin-top: 1.5rem !important; color: var(--ap-muted); font-size: clamp(1.15rem,2.2vw,1.65rem); line-height: 1.25; letter-spacing: -.025em; }
.ap-product-stage { --ap-stage-x: 0px; --ap-stage-y: 0px; width: min(46rem, 92vw); height: clamp(20rem,44vw,34rem); margin-top: clamp(2rem,5vw,4rem) !important; position: relative; display: grid; place-items: center; perspective: 900px; z-index: 2; }
.ap-product-stage::before { content: ""; position: absolute; inset: 13% 8% 2%; border-radius: 50%; background: radial-gradient(circle, rgba(130,200,240,.18), transparent 64%); filter: blur(25px); }
.ap-product { width: clamp(9rem,20vw,14rem); aspect-ratio: .72; border-radius: 49% 49% 44% 44% / 42% 42% 58% 58%; position: relative; z-index: 2; transform: translate3d(var(--ap-stage-x), var(--ap-stage-y), 0) rotateX(-4deg) rotateY(calc(var(--ap-stage-x) * .025)); background: radial-gradient(circle at 36% 22%, #fff 0 4%, transparent 24%), repeating-radial-gradient(circle at 50% 30%, rgba(20,20,24,.07) 0 1px, transparent 1px 4px), linear-gradient(145deg,#f7f7f7,#c7c9cc 58%,#aeb0b3); box-shadow: inset 12px 12px 24px rgba(255,255,255,.85), inset -16px -16px 30px rgba(50,55,62,.18), 0 50px 65px rgba(40,50,60,.2); will-change: transform; }
.ap-product::before { content: ""; position: absolute; width: 34%; height: 7%; left: 33%; top: 8%; border-radius: 50%; background: radial-gradient(ellipse, #0e0e10, #323236 55%, #777 58%, transparent 63%); box-shadow: 0 0 1.5rem rgba(160,220,255,.35); }
.ap-product::after { content: ""; position: absolute; width: 2.2rem; height: .28rem; border-radius: 99px; bottom: 5%; left: calc(50% - 1.1rem); background: rgba(255,255,255,.45); box-shadow: 0 -1px 0 rgba(0,0,0,.12); }
.ap-stage-shadow { position: absolute; width: 13rem; height: 2.1rem; bottom: 7%; border-radius: 50%; background: rgba(35,45,55,.24); filter: blur(18px); transform: translateX(calc(var(--ap-stage-x) * .35)); }
.ap-scroll-note { position: absolute; bottom: 1.6rem; color: #86868b; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }

.ap-dark-section { background: var(--ap-night); color: var(--ap-white); }
.ap-intro { min-height: 145vh; padding: clamp(8rem,14vw,13rem) 1.5rem 10rem; text-align: center; position: relative; }
.ap-intro .ap-kicker { color: #a1a1a6; }
.ap-section-title { max-width: 62rem; margin: 1rem auto 0 !important; font-size: clamp(3rem,7vw,6.8rem); line-height: .96; letter-spacing: -.055em; font-weight: 700; }
.ap-section-title span { color: #77777d; }
.ap-section-copy, .ap-body-copy { max-width: 43rem; margin: 2rem auto 0 !important; color: #a1a1a6; font-size: clamp(1.2rem,2.3vw,1.7rem); line-height: 1.35; letter-spacing: -.026em; }
.ap-sound-field { --ap-field-x: 50%; --ap-field-shift: 0px; width: min(64rem, 95vw); aspect-ratio: 1.9; margin: clamp(5rem,10vw,9rem) auto 0 !important; position: relative; border-radius: 50%; cursor: ew-resize; touch-action: pan-y; isolation: isolate; }
.ap-sound-field::before { content: ""; position: absolute; inset: 4%; border-radius: 50%; background: radial-gradient(circle at var(--ap-field-x) 50%, rgba(176,226,255,.42) 0, rgba(78,144,255,.15) 13%, transparent 36%), radial-gradient(ellipse, rgba(15,50,86,.8), transparent 65%); filter: blur(12px); }
.ap-field-rings { position: absolute; inset: 5%; border: 1px solid rgba(164,216,255,.25); border-radius: 50%; transform: translateX(calc(var(--ap-field-shift) * .15)); }
.ap-field-rings::before, .ap-field-rings::after { content: ""; position: absolute; border: 1px solid rgba(164,216,255,.18); border-radius: 50%; inset: 12%; }
.ap-field-rings::after { inset: 26%; }
.ap-field-core { position: absolute; z-index: 2; width: clamp(4.5rem,9vw,7rem); aspect-ratio: .72; left: var(--ap-field-x); top: 50%; translate: -50% -50%; border-radius: 48%; background: linear-gradient(145deg,#f1f1f3,#7a7d82); box-shadow: 0 0 2rem rgba(180,225,255,.8), 0 0 8rem rgba(74,155,255,.5); transition: box-shadow .2s linear; }
.ap-field-caption { color: #77777d; margin-top: 1.5rem !important; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }

.ap-light-section { padding: clamp(8rem,14vw,13rem) 1.5rem; background: #fff; }
.ap-design-grid { width: min(74rem,100%); margin: auto; align-items: center !important; gap: clamp(4rem,9vw,9rem) !important; }
.ap-design-copy .ap-section-title { font-size: clamp(3rem,6vw,5.8rem); text-align: left; margin-inline: 0 !important; }
.ap-design-copy .ap-body-copy { margin-inline: 0 !important; color: var(--ap-muted); font-size: clamp(1.1rem,1.9vw,1.4rem); }
.ap-material-visual { min-height: 38rem; position: relative; display: grid; place-items: center; border-radius: 2.5rem; overflow: hidden; background: linear-gradient(145deg,#edf0f2,#c7cbcf); box-shadow: inset 0 1px 0 #fff, 0 3rem 6rem rgba(58,66,76,.13); }
.ap-metal-disc { width: min(24rem,75%); aspect-ratio: 1; border-radius: 50%; background: repeating-radial-gradient(circle at 50% 50%,transparent 0 3px,rgba(20,22,26,.12) 3px 4px), radial-gradient(circle at 36% 30%,#fafafa,#b7bbc0 56%,#8f9499); box-shadow: inset 1.3rem 1.3rem 2rem rgba(255,255,255,.8), inset -1.5rem -1.5rem 2rem rgba(30,35,40,.2), 0 3rem 4rem rgba(50,55,60,.22); transform: rotateX(55deg) rotateZ(-18deg); }
.ap-material-label { position: absolute; left: 2rem; bottom: 2rem; color: #323235; font-size: .8rem; font-weight: 600; }
.ap-material-label span { color: var(--ap-muted); font-weight: 400; }

.ap-bento-section { padding: clamp(6rem,10vw,10rem) 1.5rem; background: var(--ap-white); }
.ap-bento { width: min(74rem,100%); margin: auto; display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: repeat(2,minmax(22rem,auto)); gap: 1.25rem; }
.ap-card { position: relative; overflow: hidden; border-radius: 2.1rem; padding: clamp(2rem,4vw,3.5rem); background: #fff; min-width: 0; }
.ap-card-wide { grid-row: 1; grid-column: 1; background: #000; color: #fff; }
.ap-card-tall { grid-row: 1 / 3; grid-column: 2; background: linear-gradient(155deg,#e9e9ee,#fff 55%); }
.ap-card-color { grid-row: 2; grid-column: 1; color: #fff; background: linear-gradient(135deg,#183548,#080b11 60%); }
.ap-card-label { position: relative; z-index: 2; color: #86868b; font-size: .82rem; font-weight: 600; }
.ap-card h3 { position: relative; z-index: 2; max-width: 31rem; margin-top: .75rem !important; font-size: clamp(2rem,4vw,3.5rem); line-height: 1; letter-spacing: -.045em; }
.ap-card > p:last-of-type { position: relative; z-index: 2; max-width: 25rem; margin-top: 1rem !important; color: #86868b; font-size: 1rem; }
.ap-chip-art { position: absolute; right: -8%; bottom: -42%; width: 62%; aspect-ratio: 1; border-radius: 22%; background: radial-gradient(circle at 50% 42%,#2d2d31 0 3%,transparent 3.5%), repeating-linear-gradient(90deg,transparent 0 8%,rgba(255,255,255,.08) 8.3% 8.8%), repeating-linear-gradient(0deg,transparent 0 8%,rgba(255,255,255,.08) 8.3% 8.8%), linear-gradient(145deg,#232329,#09090b); border: 1px solid #36363a; box-shadow: 0 0 5rem rgba(80,125,255,.2); transform: rotate(18deg); }
.ap-privacy-art { position: absolute; width: 13rem; aspect-ratio: 1; left: calc(50% - 6.5rem); bottom: 4rem; border-radius: 50%; background: radial-gradient(circle,#fff 0 20%,#d2d3d8 21% 45%,#fff 46% 48%,transparent 49%), conic-gradient(from 10deg,#ddd,#aaa,#fff,#bbb,#ddd); box-shadow: 0 2rem 4rem rgba(0,0,0,.14); }
.ap-privacy-art::after { content: ""; position: absolute; width: 3rem; height: 2.2rem; border: .55rem solid #353539; border-bottom: 0; border-radius: 2rem 2rem 0 0; left: calc(50% - 2rem); top: 2.5rem; }
.ap-wave-art { position: absolute; inset: auto 0 0; height: 58%; background: repeating-radial-gradient(ellipse at 50% 100%,transparent 0 1.2rem,rgba(119,218,255,.25) 1.25rem 1.35rem); mask-image: linear-gradient(transparent,#000); }

.ap-colors { padding: clamp(8rem,13vw,12rem) 1.5rem; text-align: center; background: #fff; }
.ap-colors .ap-section-title { font-size: clamp(3.2rem,7vw,6.5rem); }
.ap-color-stage { width: min(48rem,95vw); height: clamp(22rem,50vw,38rem); margin: 3rem auto 0 !important; display: grid; place-items: center; position: relative; }
.ap-color-stage::before { content: ""; position: absolute; width: 75%; height: 60%; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb,var(--ap-product-color) 34%, transparent), transparent 66%); filter: blur(35px); }
.ap-mini-product { width: clamp(9rem,20vw,14rem); aspect-ratio: .72; border-radius: 48% 48% 44% 44% / 43% 43% 57% 57%; z-index: 2; background: repeating-radial-gradient(circle at 50% 30%,rgba(20,20,22,.07) 0 1px,transparent 1px 4px), linear-gradient(145deg,color-mix(in srgb,var(--ap-product-color) 70%,white),var(--ap-product-color)); box-shadow: inset 1rem 1rem 2rem rgba(255,255,255,.46), inset -1rem -1rem 2rem rgba(0,0,0,.14), 0 3rem 5rem rgba(0,0,0,.18); transition: background .25s ease, box-shadow .25s ease; }
.ap-swatches { gap: .85rem; }
.ap-swatch .wp-block-button__link { display: block; width: 1.7rem; height: 1.7rem; padding: 0; border: .2rem solid #fff; outline: 1px solid transparent; border-radius: 50%; background: #d8d9da; box-shadow: 0 0 0 1px #d1d1d6; transition: outline-color .18s ease, transform .18s ease; overflow: hidden; text-indent: -999px; white-space: nowrap; }
.ap-swatch:nth-child(2) .wp-block-button__link { background: #34363a; }
.ap-swatch:nth-child(3) .wp-block-button__link { background: #c7b9a1; }
.ap-swatch:nth-child(4) .wp-block-button__link { background: #49677d; }
.ap-swatch.is-active .wp-block-button__link { outline: 2px solid var(--ap-blue); outline-offset: 3px; transform: scale(.92); }
.ap-finish-name { margin-top: 1rem !important; color: var(--ap-muted); font-size: .84rem; }

.ap-buy-section { padding: clamp(8rem,14vw,13rem) 1.5rem; text-align: center; background: var(--ap-white); }
.ap-buy-title { margin-top: .75rem !important; font-size: clamp(3.5rem,8vw,7.5rem); line-height: .92; letter-spacing: -.06em; }
.ap-buy-copy { margin-top: 1.5rem !important; color: var(--ap-muted); font-size: 1.2rem; }
.ap-buy-actions { margin-top: 2rem; }
.ap-buy-actions .wp-block-button__link { padding: .9rem 1.45rem; font-size: .95rem; }
.ap-fine-print { margin-top: 4rem !important; color: #86868b; font-size: .7rem; }
.ap-footer { max-width: none !important; padding: 1.5rem clamp(1.5rem,5vw,4rem); background: #e8e8ed; color: #6e6e73; font-size: .72rem; }

.ap-page a:focus-visible, .ap-page [tabindex]:focus-visible { outline: 3px solid var(--ap-blue); outline-offset: 4px; }
@media (max-width: 760px) {
  .ap-nav-actions > p { display: none; }
  .ap-hero { padding-top: 7.5rem; }
  .ap-hero-title { font-size: clamp(3.6rem,17vw,5.2rem); }
  .ap-product-stage { height: 25rem; }
  .ap-intro { min-height: auto; padding-bottom: 8rem; }
  .ap-sound-field { aspect-ratio: 1.15; }
  .ap-design-grid { flex-direction: column !important; display: flex !important; }
  .ap-design-copy, .ap-material-visual { flex-basis: auto !important; width: 100% !important; }
  .ap-material-visual { min-height: 28rem; }
  .ap-bento { grid-template-columns: 1fr; grid-template-rows: none; }
  .ap-card-wide, .ap-card-tall, .ap-card-color { grid-column: 1; grid-row: auto; min-height: 25rem; }
  .ap-card-tall { min-height: 34rem; }
  .ap-footer { align-items: flex-start !important; gap: .5rem; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .ap-page *, .ap-page *::before, .ap-page *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
  .ap-page .ap-reveal { opacity: 1 !important; translate: none !important; }
  .ap-product, .ap-field-rings { transform: none !important; }
}
@media (prefers-reduced-transparency: reduce) {
  .ap-nav-shell { background: #fbfbfd; backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@media (prefers-contrast: more) {
  .ap-nav-shell { background: #fff; box-shadow: 0 1px 0 #000; }
  .ap-eyebrow, .ap-kicker, .ap-body-copy, .ap-section-copy { color: currentColor; }
}
