/* NEXORA / Glass edition. Shared visual layer; booking rules stay in booking-core.js. */
:root {
  --bg: #090811;
  --surface: #161320;
  --surface2: #262037;
  --ink: #f5f1ff;
  --muted: #b4adc8;
  --purple: #ccb1ff;
  --line: #d2b5ff29;
  --glass: linear-gradient(135deg, #ffffff0d, #ffffff03 52%, #b781ff0a), #171321b8;
  --glass-edge: #e0cbff30;
  --ease: cubic-bezier(.22,1,.36,1);
}

body {
  background: radial-gradient(ellipse 75% 650px at 82% 250px, #6c2eac40, transparent 76%),
    radial-gradient(ellipse 50% 550px at 0% 1250px, #4634a526, transparent 80%),
    radial-gradient(ellipse 65% 700px at 95% 2050px, #7c3f9026, transparent 75%), var(--bg);
  -webkit-font-smoothing: antialiased;
}
::selection {background:#b48aff70;color:#fff}
html {scroll-padding-top:120px}
.booking-panel h2 {scroll-margin-top:120px}
.brand-notice {background:#21162f88;border-color:#c899ff24;color:#d3bce9;font-size:.7rem;letter-spacing:.02em}
.site-header {
  position:sticky;top:12px;z-index:8;min-height:76px;margin-top:16px;
  padding:0 23px;border:1px solid var(--glass-edge);border-radius:20px;
  background:linear-gradient(120deg,#ffffff0a,#ffffff02),#12101cdf;
  box-shadow:inset 0 1px #ffffff0c,0 12px 45px #00000026;
}
.brand img {box-shadow:0 0 28px #b685ff2b;border-radius:10px}
.site-header nav a {position:relative;padding-block:10px;color:#c8c1d8;transition:color .25s}
.site-header nav a::after {content:"";position:absolute;bottom:5px;left:0;width:0;height:1px;background:var(--purple);transition:width .3s var(--ease)}
.site-header nav a:hover {color:#fff;text-decoration:none}
.site-header nav a:hover::after {width:100%}
.button {
  position:relative;isolation:isolate;overflow:hidden;border-radius:12px;
  border-color:#e8d4ff55;background:linear-gradient(120deg,#dfc7ff,#b88cf5);
  box-shadow:inset 0 1px #ffffff6b,0 5px 24px #9c5df12b;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s,background .35s;
}
.button::before {content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(100deg,transparent 15%,#ffffff66 50%,transparent 85%);transform:translateX(-150%) skewX(-18deg);transition:transform .7s var(--ease);pointer-events:none}
.button:hover::before {transform:translateX(150%) skewX(-18deg)}
.button:hover {background:linear-gradient(120deg,#ecdfff,#cda7ff);box-shadow:inset 0 1px #ffffff99,0 8px 32px #a669f742;transform:translateY(-3px)}
.button:active {transform:translateY(0) scale(.98)}
.button-ghost {background:#ffffff05;border-color:#dfc7ff36;color:var(--ink);box-shadow:inset 0 1px #ffffff08}
.button-ghost:hover {background:#c6a3ff15;box-shadow:0 6px 20px #0002}
.button-light {background:linear-gradient(120deg,#f3eaff,#d7beff)}
.text-link {transition:color .25s,gap .3s var(--ease)}
.text-link:hover {color:#e5d2ff;gap:18px;text-decoration:none}
.hero {padding-block:62px 66px;gap:30px;min-height:690px}
.hero h1 {font-size:clamp(3.7rem,6.4vw,6.2rem);line-height:1.02;letter-spacing:-.064em;font-weight:660}
em {background:linear-gradient(110deg,#f0d8ff 0%,#c699ff 48%,#9895ff 100%);background-clip:text;-webkit-background-clip:text;color:transparent}
.hero .eyebrow {display:inline-flex;align-items:center;padding:8px 12px;border:1px solid #caa0ff33;background:#a678ff0a;border-radius:30px;font-size:.61rem;letter-spacing:.075em}
.hero .lead {font-size:1rem;line-height:1.85;color:#bcb4ce;max-width:450px}
.hero-tags {display:flex;flex-wrap:wrap;gap:8px;margin-top:31px}
.hero-tags span {font-size:.61rem;padding:5px 10px;border:1px solid #d4b1ff26;border-radius:30px;color:#c6bbd7;background:#ffffff04}
.hero-note {font-size:.7rem;opacity:.85;margin-top:15px}
.hero-art {min-height:570px;background:radial-gradient(ellipse,#8c41f22a,transparent 65%);perspective:1000px;overflow:clip}
.hero-art::before {content:"";position:absolute;z-index:-1;inset:45px 10px 25px;background:radial-gradient(ellipse,#ba67ff30,transparent 68%);border-radius:50%}
.glass-sculpture {position:absolute;z-index:-1;inset:18px 5px 25px;display:grid;place-items:center;transform:rotate(-25deg);pointer-events:none}
.glass-sculpture span {position:absolute;width:370px;height:440px;border-radius:48%;border:30px solid #c08aff1c;
  background:linear-gradient(135deg,#d1b4ff0c,transparent 38%,#9654ed12);
  box-shadow:inset 6px 9px 14px #efd6ff4a,inset -5px -5px 18px #56309288,5px 6px 25px #9b58cf30,0 0 1px 1px #d7b7ff55;
  transform:rotateY(38deg) rotateX(25deg);
}
.glass-sculpture span:nth-child(2) {width:460px;height:310px;transform:rotateY(-25deg) rotateX(-35deg) rotate(65deg);border-width:13px;opacity:.55}
.glass-sculpture span:nth-child(3) {width:260px;height:460px;transform:rotate(30deg);border-width:8px;opacity:.35}
.art-orbit {border-color:#d4aaff26;width:95%;height:80%;border-style:dashed}
.orbit-two {width:77%;height:96%;border-style:solid;border-color:#b5a3ff14}
.art-label {top:10px;left:24px;font-size:.53rem;color:#b9a3d3;letter-spacing:.14em}
.art-index {bottom:8px;font-size:.55rem;color:#bfa2dd}
.mock-window {width:83%;max-width:390px;border:1px solid #f0d7ff66;border-radius:21px;
  background:linear-gradient(140deg,#d8b5ff1c,transparent 55%),#1d162a9e;
  box-shadow:inset 0 1px #fff3,inset 1px 0 #fff1,0 30px 65px #0007,0 0 70px #8a4bc51c;
  transform:rotate(-6deg) translateY(-2px);transition:transform .85s var(--ease),border-color .5s;
}
.hero-art:hover .mock-window {transform:rotate(-2deg) translateY(-9px);border-color:#e4caff99}
.mock-bar {padding-block:13px;border-color:#d5b4ff26;color:#b7a8ce}
.mock-content {padding:26px}
.mock-content h2 {font-size:1.9rem;font-weight:550;letter-spacing:-.04em}
.mock-service {background:linear-gradient(120deg,#e2c5ff14,#a56cf311);border-color:#cea3ff55;box-shadow:inset 0 1px #ffffff0d;border-radius:12px}
.mock-days>span,.mock-times>span {background:#ffffff04;border-color:#dbc5ff24;border-radius:8px}
.mock-days .chosen,.mock-times .chosen,.mock-button {background:linear-gradient(120deg,#dec7ff,#bb9aee);box-shadow:0 4px 14px #b17bf31f}
.mock-button {border:1px solid #e9d5ff77;border-radius:9px}
.floating-note {right:4px;bottom:40px;padding:15px 20px;border-radius:16px;border-color:#e1c1ff5c;
  background:linear-gradient(120deg,#e4caff18,#ffffff05),#251a32c9;box-shadow:inset 0 1px #fff2,0 15px 40px #0004}
.floating-note>span {text-shadow:0 0 22px #b47af799}
.principles {background:linear-gradient(90deg,#c79eff03,#c79eff0a,#c79eff03);border-color:#d5b1ff20}
.principles .wrap {color:#b7aaca;padding-block:22px}
.section {padding-block:96px}
.section-heading h2 {font-size:clamp(2rem,3.3vw,3rem);letter-spacing:-.055em}
.muted {color:#8f839e}
.offering,.flow-feature,.brief-panel,.booking-panel,.booking-summary,.demo-disclaimer {
  background:var(--glass);border:1px solid var(--glass-edge);border-radius:23px;
  box-shadow:inset 0 1px #ffffff13,0 20px 55px #00000024;
}
.offering {position:relative;overflow:hidden;padding:31px;transition:transform .45s var(--ease),border-color .4s,box-shadow .4s}
.offering::before {content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 0 0,#d3a8ff18,transparent 55%);opacity:.5;transition:opacity .45s}
.offering:hover {transform:translateY(-8px);border-color:#d4adff69;box-shadow:inset 0 1px #ffffff24,0 24px 50px #0004,0 0 35px #ad78f00c}
.offering:hover::before {opacity:1}
.offering.featured {border-color:#bc8df56b;background:linear-gradient(140deg,#a66de62b,#261b3a99 60%),#1a1425b8}
.offering .line-icon {display:grid;place-items:center;width:52px;height:52px;border:1px solid #d0aaff3b;border-radius:15px;background:linear-gradient(135deg,#dfcaff19,#b88cff04);font-size:1.8rem;box-shadow:inset 0 1px #ffffff10}
.offering h3 {font-size:1.46rem;font-weight:550}
.offering p {color:#b9afc8}
.offering li {color:#c9bfd7}
.pill {border-radius:30px;background:#b482f315;border-color:#c99aff4a;color:#dfc6ff;letter-spacing:.06em}
.flow-feature {position:relative;overflow:hidden;padding:58px;background:radial-gradient(ellipse at 0 100%,#7f46b132,transparent 70%),var(--glass);border-color:#c99bff4d}
.flow-feature::after {content:"";position:absolute;pointer-events:none;right:-60px;top:-120px;width:300px;height:300px;border:40px solid #d1a6ff05;border-radius:50%;box-shadow:0 0 0 1px #d1a6ff17,inset 2px 5px 12px #eed4ff12;transform:rotate(-30deg)}
.flow-path {position:relative;z-index:1;background:#ffffff04;padding:22px 25px;border:1px solid #e5c8ff1c;border-radius:17px}
.flow-path li {border-color:#ceabff21}
.process-grid article {border-color:#c4a4ff3b;transition:border-color .3s}
.process-grid article:hover {border-color:#dcc2ff99}
.process-grid h3 {font-weight:550}
.brief-section {border-color:#ccaaff20}
input:not([type=radio]):not([type=checkbox]),textarea {background:#08070e73;border-color:#bfa0d942;border-radius:11px;transition:border-color .25s,box-shadow .25s,background .25s}
input:not([type=radio]):not([type=checkbox]):focus,textarea:focus {background:#110c1eaa;border-color:#d3acff;box-shadow:0 0 0 4px #bd8bff12}
.faq {padding-top:0}
.faq details {border-color:#c29bff26}
.faq details.is-animating {overflow:clip}
.faq summary {transition:color .25s}
.faq summary:hover,.faq details[open] summary {color:#d9baff}
.site-footer {border-color:#bd95ff24}
.demo-page {background:radial-gradient(ellipse 75% 700px at 80% 200px,#713c9d26,transparent 75%),radial-gradient(ellipse 80% 650px at 0% 600px,#45349f26,transparent 75%),var(--bg)}
.demo-main {padding-top:45px}
.demo-intro h1 {font-size:clamp(3.3rem,5.5vw,5rem);line-height:1.04;letter-spacing:-.065em}
.demo-disclaimer {background:linear-gradient(130deg,#b384ff16,#ffffff03),#21182db3;border-radius:17px}
.demo-disclaimer p {color:#c8bed6}
.booking-panel {padding:38px;transition:border-color .3s}
.booking-panel.is-transitioning {overflow:clip;pointer-events:none}
.booking-panel h2 {font-weight:550;letter-spacing:-.045em}
.steps {gap:0}
.steps li {gap:10px}
.steps li:not(:last-child)::after {content:"";width:70px;height:1px;background:linear-gradient(90deg,#9c70cd70,#bfa2e025);margin-inline:16px}
.steps b {width:35px;height:35px;background:#d6afff07;border-color:#b691df42;transition:background .35s,box-shadow .35s,border-color .35s}
.steps [aria-current=step] b {background:linear-gradient(135deg,#e4d0ff,#b38ae9);box-shadow:0 0 22px #a673ed25}
.steps .completed b {background:#b68ae619;border-color:#c79cef70}
.service-choice {border-radius:14px;border-color:#d1b1f135;background:linear-gradient(110deg,#e2c7ff07,#ffffff02);transition:transform .3s var(--ease),background .3s,border-color .3s,box-shadow .3s}
.service-choice:hover {transform:translateX(3px);border-color:#d8b2ff75;background:#c9a2ff0b}
.service-choice:has(input:checked) {border-color:#cea2ff99;background:linear-gradient(100deg,#bd85ff23,#bd85ff08);box-shadow:inset 3px 0 #c99aff,0 0 25px #9c64d909}
.service-choice:has(input:focus-visible) {outline:2px solid #dfc7ff;outline-offset:4px}
.booking-summary {top:112px;background:linear-gradient(145deg,#dcbeff0a,#ffffff03),#1a1324b8}
.summary-art {height:172px;background:radial-gradient(ellipse at 50% 120%,#ae71de55,transparent 70%),linear-gradient(135deg,#bd8aff0c,#60408822),#1d142dcc;border-bottom:1px solid #d1aeff28}
.summary-art::after {content:"";position:absolute;inset:17px;border:1px solid #debdff25;border-radius:50%;transform:scaleX(1.35) rotate(-24deg);z-index:-1;box-shadow:inset 2px 2px 15px #dab0ff13}
.summary-art>span {text-shadow:0 0 32px #e7c8ff36;font-weight:400;color:#ead7ff}
.summary-total dd {text-shadow:0 0 25px #b279f126}
.step-actions,.summary-footnote,dl>div {border-color:#cda9ff24}
.date-chip,.slot {background:#c9a3ff06;border-color:#c4a2e03b;border-radius:10px;transition:transform .25s var(--ease),background .25s,border-color .25s}
.date-chip:hover,.slot:has(input:not(:disabled)):hover {border-color:#dbb8ff99;transform:translateY(-2px);background:#c9a3ff14}
.date-chip[aria-pressed=true],.slot:has(input:checked) {background:linear-gradient(135deg,#e0c8ff,#bb95ef);border-color:#e3caff;box-shadow:0 4px 18px #ba7af41a}
.slot:has(input:disabled) {background:#ffffff02;border-color:#d6b9ff12;color:#90829e}
.slot input {width:16px;height:16px}
.review-details {border-radius:14px;background:linear-gradient(120deg,#c7a0ff0d,#ffffff02);border-color:#d2abff32}
.success-mark {background:radial-gradient(circle at 30% 20%,#edceff22,transparent),#a368de1a;border-color:#d9acff70;box-shadow:inset 0 1px #ffffff33,0 0 40px #ae62ee16}

/* Opaque fallbacks above remain legible without backdrop-filter support. */
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  .site-header {-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
  .mock-window,.floating-note {-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
  .offering,.brief-panel,.booking-panel,.booking-summary,.demo-disclaimer {-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
}
@media (prefers-reduced-motion:no-preference) {
  .glass-sculpture {animation:sculpture-drift 16s ease-in-out infinite alternate}
  .floating-note {animation:note-drift 7s ease-in-out infinite alternate}
  .hero-copy {animation:hero-arrive .65s var(--ease) both}
  .hero-art {animation:art-arrive .85s var(--ease) both}
  #confirmation:not([hidden]) .success-mark {animation:success-arrive .65s var(--ease) both}
  .motion-paused .glass-sculpture,.motion-paused .floating-note {animation-play-state:paused}
}
@keyframes sculpture-drift {from{transform:rotate(-25deg) translateY(-6px)}to{transform:rotate(-17deg) translateY(9px)}}
@keyframes note-drift {from{transform:translateY(0) rotate(3deg)}to{transform:translateY(-9px) rotate(1deg)}}
@keyframes hero-arrive {from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes art-arrive {from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes success-arrive {from{opacity:0;transform:scale(.72) rotate(-12deg)}to{opacity:1;transform:scale(1) rotate(0)}}
/* Native cross-document transitions progressively enhance same-origin page links.
   Unsupported browsers navigate normally; links never wait for JavaScript. */
@view-transition {navigation:auto}
::view-transition-old(root) {animation:page-leave .16s ease-out both}
::view-transition-new(root) {animation:page-enter .28s var(--ease) both}
@keyframes page-leave {to{opacity:0}}
@keyframes page-enter {from{opacity:0}to{opacity:1}}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .offering .line-icon {transition:transform .4s var(--ease),background .3s}
  .offering:hover .line-icon {transform:translateY(-2px) rotate(-5deg);background:#d3aaff1c}
  .button>span {transition:transform .3s var(--ease)}
  .button:hover>span {transform:translateX(3px)}
  .button:active>span {transform:translateX(1px)}
}
@media(max-width:1050px) {
  .hero {gap:15px;min-height:640px}.hero h1 {font-size:clamp(3.6rem,7.4vw,5.4rem)}
  .hero-art {min-height:540px}.mock-window {width:84%}.mock-content {padding:22px}
  .floating-note {right:3px;font-size:.64rem;padding:13px 15px}.offering {padding:25px}
  .booking-panel {padding:28px}.site-header {padding-inline:19px}
}
@media(max-width:760px) {
  .site-header {min-height:68px;top:8px;margin-top:10px;padding-inline:16px;border-radius:17px}
  .hero {padding-top:45px;padding-bottom:45px;gap:20px;min-height:0}.hero-copy {max-width:600px}
  .hero h1 {font-size:clamp(3.8rem,11vw,5.4rem)}.hero .eyebrow {font-size:.6rem}
  .hero-art {min-height:545px;max-width:500px}.hero-tags {margin-top:24px}
  .hero .actions {gap:20px}.mock-window {max-width:360px;width:82%}
  .art-label {left:22px}.floating-note {right:8px;bottom:42px}
  .section {padding-block:64px}.offering {padding:28px;border-radius:20px}
  .flow-feature {padding:32px;gap:30px}.flow-path {padding:18px 22px}
  .faq {padding-top:0}.brief-panel {padding:26px}.demo-main {padding-top:32px}
  .demo-intro h1 {font-size:3.6rem}.booking-summary {top:auto}
  .booking-panel {padding:28px}.steps li:not(:last-child)::after {width:20px;margin-inline:12px}
  .steps b {width:31px;height:31px}.summary-art {height:100%}
}
@media(max-width:420px) {
  .site-header {padding-inline:12px}.site-header nav {gap:12px}.brand {gap:8px;font-size:.94rem}
  .hero .eyebrow {font-size:.52rem;letter-spacing:.04em;padding:8px 10px}
  .hero h1 {font-size:3.65rem}.hero .lead {font-size:.94rem}.hero-tags {gap:6px}.hero-tags span {font-size:.58rem}
  .hero-art {min-height:485px}.mock-window {width:85%;border-radius:17px}.mock-content {padding:20px}.mock-content h2 {font-size:1.65rem}
  .mock-days {gap:6px}.floating-note {bottom:20px;right:2px;padding:12px;font-size:.6rem}
  .floating-note small {font-size:.55rem}.floating-note>span {font-size:1.65rem}
  .art-label {font-size:.43rem;left:12px}.art-index {font-size:.48rem;bottom:0}
  .glass-sculpture span {width:290px;height:360px}.glass-sculpture span:nth-child(2) {width:340px;height:270px}
  .steps li {gap:6px;font-size:.66rem}.steps li:not(:last-child)::after {width:10px;margin-inline:9px}.steps b {width:27px;height:27px}
  .booking-panel {padding:22px;border-radius:20px}.booking-panel h2 {font-size:1.7rem}
  .service-choice:hover {transform:none}.summary-art {height:130px}.demo-intro h1 {font-size:3.3rem}
  .flow-feature {padding:27px}.flow-path {padding:16px}.brief-panel {padding:22px}
}
@media(max-width:350px) {
  .hero h1 {font-size:3.18rem}.hero-art {min-height:465px}.mock-content {padding:17px}
  .site-header nav {font-size:.63rem;gap:10px}.brand {font-size:.88rem}.brand img {width:26px;height:26px}
  .steps li:not(:last-child)::after {width:6px;margin-inline:5px}.steps li {gap:5px;font-size:.61rem}
  .service-choice .price {white-space:normal}.hero .eyebrow {font-size:.49rem}
}
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  *,*::before,*::after {animation:none!important;transition:none!important}
  ::view-transition-old(root),::view-transition-new(root) {animation:none!important}
  .offering:hover,.service-choice:hover,.button:hover,.date-chip:hover,.slot:hover {transform:none}
}
@media(forced-colors:active) {
  em {background:none;color:CanvasText}.glass-sculpture,.art-orbit {display:none}
  .site-header,.offering,.booking-panel,.booking-summary {background:Canvas;border-color:CanvasText}
  .button {background:ButtonFace;color:ButtonText;border:1px solid ButtonText}
}
