/* Isolated concept preview. The production site never loads this file. */
:root { --ice:#b9eaff; --paper:#dce1e5; --ink:#101318; --line:#ffffff29; }
body { background:#000; color:#edf0f3; overflow-x:clip; }
body header,body main,body footer { width:calc(100% - 96px); max-width:1680px; }
body header { min-height:94px; gap:22px; border-color:var(--line); }
body .brand img { width:62px; height:62px; }
body .brand span { font-size:10px; letter-spacing:.22em; }
body .desktop-nav { gap:32px; }
body .desktop-nav a,body .menu-link { font-size:12px; }
body .language-switch { border:0; background:none; }
body .language-switch button { font-size:12px; min-width:34px; min-height:34px; }
body .language-switch button[aria-pressed=true] { background:#e4e9ef; color:#101318; }
body .button { border-radius:0; min-height:50px; padding:12px 24px; font-size:12px; letter-spacing:.08em; box-shadow:none; background:#e7ebee; border:0; transition:background .25s,transform .25s; }
body .button:hover { background:var(--ice); color:#101318; }
body .header-actions { gap:22px; }
.preview-label { position:fixed; z-index:110; bottom:16px; left:18px; padding:7px 12px; background:#101318e8; border:1px solid #ffffff35; color:#b9eaff; font:10px Consolas,monospace; letter-spacing:.12em; backdrop-filter:blur(12px); pointer-events:none; }
.preview-label::before { content:'◌'; margin-right:7px; }
body .intro { position:relative; min-height:calc(100svh - 94px); display:grid; grid-template-columns:1.05fr 1fr; gap:0; padding:48px 0 90px; }
body .intro-copy { z-index:2; align-self:center; padding-bottom:20px; }
.edition { display:flex; gap:24px; align-items:center; font:10px Consolas,monospace; letter-spacing:.12em; color:#b8c2ca; margin-bottom:25px; }
.edition::before { content:''; width:7px; height:7px; background:var(--ice); border-radius:50%; box-shadow:0 0 12px #98d9ff88; }
body .hero-logo { --hero-mark-width:clamp(190px,18vw,290px); margin:0 0 25px calc(var(--hero-mark-width)*-.14); mix-blend-mode:screen; }
body h1 { position:relative; font-size:clamp(60px,7.5vw,126px); font-weight:900; letter-spacing:-.065em; line-height:.91; font-style:normal; z-index:3; width:130%; margin:0; }
body h1 em { font-style:italic; letter-spacing:-.065em; white-space:nowrap; background-clip:text; -webkit-background-clip:text; padding-right:.1em; }
body .hero-description { font-size:17px; letter-spacing:-.02em; margin:30px 0 20px; }
body .hero-actions { margin:25px 0 0; gap:24px; flex-direction:row; align-items:center; }
body .hero-actions>span { font-size:9px; max-width:140px; }
body .booking-facts { font:10px Consolas,monospace; letter-spacing:.03em; gap:6px 16px; }
body .photo-composition { align-self:stretch; position:relative; padding:0 0 0 25px; margin:0; }
body .intro-image { height:min(760px,80svh); min-height:530px; border-radius:0; border:0; transform:none; box-shadow:none; overflow:hidden; background:#13171b; }
body .intro-image>img { object-position:center 40%; filter:none; }
body .intro-image:after { background:linear-gradient(0deg,#080a0d88,transparent 30%); inset:0; }
.portrait-note { position:absolute; right:16px; bottom:16px; z-index:2; font:9px Consolas,monospace; letter-spacing:.1em; color:#fff; writing-mode:vertical-rl; }
body .detail-shot { width:clamp(160px,18vw,270px); height:auto; aspect-ratio:1.12; left:auto; right:-20px; bottom:-32px; border:1px solid #cdd5db; border-radius:0; transform:none; box-shadow:0 12px 50px #0007; }
body .detail-shot:hover { transform:none; }
.scroll-hint { position:absolute; left:0; bottom:22px; display:flex; align-items:center; gap:15px; font:10px Consolas,monospace; letter-spacing:.12em; color:#91a1ad; }
.scroll-hint i { width:42px; height:1px; background:#91a1ad; }
body .brand-strip { margin:0 -48px; width:calc(100% + 96px); padding:22px 30px; background:var(--paper); border:0; color:#171b20; font-size:11px; letter-spacing:.28em; overflow:hidden; }
body .brand-strip span { color:inherit; flex-shrink:0; }
body .brand-strip span:nth-child(even) { font-size:18px; }
body .studio-section { padding:130px 0; border:0; grid-template-columns:1.1fr 1fr; gap:12%; }
body .eyebrow,body .service-number { font:10px Consolas,monospace; color:#9aabb9; letter-spacing:.18em; }
body .studio-section h2 { font-size:clamp(38px,5.4vw,82px); line-height:1.04; letter-spacing:-.055em; max-width:630px; }
body .studio-section p:not(.eyebrow) { font-size:15px; color:#aebac3; line-height:1.85; }
body .studio-section .materials-note { padding-top:22px; border-top:1px solid var(--line); }
.gem-stage { position:relative; min-height:700px; margin:0 -48px; padding:90px 48px; overflow:hidden; background:radial-gradient(ellipse at 50% 55%,#344c5b66,transparent 56%),#0c1015; border-block:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; align-items:center; }
.gem-stage::after { content:''; position:absolute; left:28%; right:8%; bottom:20%; height:1px; background:linear-gradient(90deg,transparent,#b9eaff55,transparent); transform:rotate(-15deg); pointer-events:none; }
.gem-stage h2 { font-size:clamp(54px,7.5vw,120px); line-height:.94; font-weight:500; letter-spacing:-.06em; margin:24px 0; }
.gem-stage h2 em { font-family:Georgia,serif; font-weight:400; color:#b9eaff; }
.gem-stage .gem-copy { z-index:2; pointer-events:none; }
.gem-stage .gem-copy a { pointer-events:auto; }
.gem-stage p:not(.eyebrow) { max-width:330px; font-size:14px; color:#a5b3be; }
.gem-canvas { position:absolute; width:70%; height:100%; right:-5%; top:0; touch-action:pan-y; }
.gem-caption { position:absolute; right:48px; bottom:32px; font:10px Consolas,monospace; color:#a2b8c9; letter-spacing:.12em; }
.gem-motion { position:absolute; right:48px; top:32px; z-index:3; border:1px solid #ffffff40; background:transparent; color:#c8d2da; font:10px Consolas,monospace; padding:10px 15px; cursor:pointer; }
body .services-section { padding:70px 0 90px; border-block:1px solid var(--line); }
body .service-grid { gap:8%; }
body .service-grid article { border:0; background:none; box-shadow:none; padding:12px 0; border-radius:0; }
body .service-grid h2 { font-size:clamp(34px,4vw,58px); letter-spacing:-.04em; line-height:1.1; }
body .service-grid p { font-size:14px; color:#aebac3; max-width:510px; }
body .text-link { font-size:11px; text-transform:uppercase; letter-spacing:.1em; border-color:#5c7282; }
body .booking-section { margin:90px -48px 0; width:calc(100% + 96px); padding:90px 48px 60px; border:0; border-radius:0; background:var(--paper); color:var(--ink); }
body .booking-top { flex-direction:row; align-items:center; }
body .booking-top h2 { font-size:clamp(50px,7vw,108px); max-width:850px; font-weight:500; letter-spacing:-.06em; line-height:1.02; }
body .booking-top .button { background:#101318; color:#e4edf3; }
body .booking-steps { margin-top:60px; padding-top:30px; border-color:#8a99a5; }
body .booking-steps h3 { font-size:19px; }
body .booking-steps p { font-size:13px; }
body .booking-section .booking-facts { padding-top:25px; margin-top:30px; border-color:#8a99a5; }
body .booking-policy { border-radius:0; border:0; border-bottom:1px solid var(--line); padding:30px 0 50px; margin:0 0 90px; display:grid; grid-template-columns:1fr 2fr; gap:20px; }
body .booking-policy h3 { font:11px Consolas,monospace; text-transform:uppercase; letter-spacing:.1em; }
body .booking-policy p { font-size:13px; color:#99aab7; max-width:700px; }
body .faq-section { gap:10%; padding:0 0 110px; }
body .faq-section h2 { font-size:clamp(34px,4vw,58px); letter-spacing:-.04em; }
body .faq-list details { border-radius:0; background:none; padding:22px 0; margin:0; border:0; border-bottom:1px solid var(--line); }
body .faq-list details:first-child { padding-top:0; }
body .faq-list summary { list-style:none; font-size:15px; display:flex; justify-content:space-between; gap:20px; }
body .faq-list summary::-webkit-details-marker { display:none; }
body .faq-list summary::after { content:'+'; color:var(--ice); }
body .faq-list details[open] summary::after { content:'−'; }
body .faq-list p,body .aftercare-list { font-size:13px; color:#aebac3; }
body footer { font:10px Consolas,monospace; letter-spacing:.1em; padding:25px 0 70px; }
.footer-word { font-size:clamp(70px,16vw,240px); font-family:Arial,sans-serif; font-weight:900; letter-spacing:-.07em; line-height:1; color:#18212a; }
.reveal { opacity:1; }
.motion-ready .reveal { opacity:0; transform:translateY(28px); transition:opacity .85s,transform .85s cubic-bezier(.2,.7,.2,1); }
.motion-ready .reveal.is-visible { opacity:1; transform:none; }
@keyframes intro-rise { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
@keyframes portrait-reveal { from { clip-path:inset(0 0 100% 0); } to { clip-path:inset(0); } }
body .edition { animation:intro-rise .7s both; }
body .hero-logo { animation:intro-rise .8s .1s both; }
body h1 { animation:intro-rise .85s .2s both; }
body .hero-description { animation:intro-rise .8s .35s both; }
body .hero-actions,body .intro-copy .booking-facts { animation:intro-rise .8s .45s both; }
body .intro-image { animation:portrait-reveal 1.2s cubic-bezier(.2,.7,.2,1) both; }
body .detail-shot { animation:intro-rise .9s .5s both; }
body .price-page { padding-top:35px; }
body .back-link { font:10px Consolas,monospace; }
body .price-heading { padding:75px 0 55px; border-bottom:1px solid var(--line); position:relative; }
body .price-heading::before,body .price-heading::after { display:none; }
body .price-heading .eyebrow { font-family:Arial,sans-serif; font-size:clamp(56px,8vw,122px); letter-spacing:-.06em; font-weight:900; font-style:italic; line-height:.95; background:linear-gradient(#fff,#6e7b88 50%,#ecf2f7 52%,#b4c4d1); background-clip:text; -webkit-background-clip:text; color:transparent; }
body .price-heading h2 { font-size:25px; letter-spacing:-.03em; }
body .price-heading .minimum { font-size:12px; max-width:230px; }
body .pricing-explainer { font-size:12px; margin:25px 0 40px; }
body .menu-grid { gap:26px; }
body .menu-group { border:1px solid #3d4f5e; border-radius:0; background:#0f151b; color:#e3eaf0; padding:35px; }
body .menu-group:last-child { background:var(--paper); color:#101820; border:0; padding:35px; }
body .menu-group h2 { font-size:26px; letter-spacing:-.025em; font-weight:400; }
body .menu-group h2::after { display:none; }
body .section-label { color:#9fb5c6; }
body .section-label>span:first-child { background:none; box-shadow:none; border:0; padding:0; border-radius:0; }
body .menu-group tr { border-color:#ffffff22; }
body .menu-group th,body .menu-group td { font-size:14px; }
body .menu-group tr:hover { background:#b9eaff12; }
body .menu-group:last-child tr { border-color:#aebac3; }
body .menu-group:last-child td { color:#101820; }
body .menu-group:last-child tr:hover { background:#b9eaff66; }
body .custom-note { padding:70px 0 40px; }
body .custom-note p { font-size:28px; }
body .custom-note a { border-radius:0; background:none; }
body .design-reference { border-radius:0; background:#fff4; }
body .design-reference img { border-radius:0; }
body .menu-group:last-child .price-unit { color:#303b44; }
/* Match the specificity of the retained menu's legacy rules. */
body:has(.price-page) { background:#000; }
body .price-page .price-heading>div::after,body .price-page .menu-group::before,body .price-page .menu-group h2::after,body .price-page .custom-note::before { content:none; display:none; }
body .price-page .menu-group,body .price-page .menu-group:last-child { padding:35px; border-radius:0; box-shadow:none; background:#0f151b; border:1px solid #3d4f5e; }
body .price-page .menu-group:last-child { background:var(--paper); border:0; color:#101820; }
body .price-page .menu-group h2,body .price-page .menu-group:last-child h2 { font-size:26px; letter-spacing:-.025em; font-weight:400; padding-bottom:24px; }
body .price-page .menu-group .section-label>span:first-child { display:inline; background:none; box-shadow:none; border:0; padding:0; width:auto; height:auto; border-radius:0; color:#a6bbcb; }
body .price-page .menu-group:last-child .section-label>span:first-child { color:#293845; }
body .price-page .section-label { font-size:10px; }
body .price-page .price-heading .eyebrow { font-size:clamp(56px,8vw,122px); letter-spacing:-.06em; }
body .price-page .menu-group th,body .price-page .menu-group td { font-size:14px; }
body .price-page .menu-group:last-child td { color:#101820; }
body .price-page .custom-note a { border-radius:0; background:none; }
@media(hover:hover) and (pointer:fine) {
  .desktop-nav a { position:relative; }
  .desktop-nav a::after { content:''; position:absolute; bottom:-6px; height:1px; left:0; width:100%; background:var(--ice); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
  .desktop-nav a:hover::after { transform:scaleX(1); }
}
@media(max-width:1000px) {
  body header,body main,body footer { width:calc(100% - 48px); }
  body .brand span { display:none; }
  body .desktop-nav { gap:18px; }
  body .header-actions { gap:12px; }
  body .intro { min-height:700px; padding:40px 0 75px; }
  body h1 { font-size:clamp(60px,8vw,85px); }
  body .intro-image { min-height:540px; height:620px; }
  body .brand-strip,body .gem-stage,body .booking-section { margin-inline:-24px; width:calc(100% + 48px); }
  .gem-stage,body .booking-section { padding-inline:24px; }
  body .studio-section { gap:7%; padding:95px 0; }
  body .booking-top { flex-direction:column; align-items:start; }
}
@media(max-width:700px) {
  body header,body main,body footer { width:calc(100% - 36px); }
  body header { min-height:76px; }
  body .brand img { width:50px; height:50px; }
  body .desktop-nav { display:none; }
  body .header-actions .button { min-height:38px; padding:8px 12px; font-size:10px; }
  body .language-switch button { min-height:32px; min-width:30px; font-size:11px; }
  body .intro { grid-template-columns:1fr; min-height:0; padding:25px 0 70px; }
  .edition { font-size:9px; gap:12px; margin-bottom:15px; }
  body .hero-logo { --hero-mark-width:190px; margin-bottom:18px; }
  body h1 { width:100%; font-size:clamp(46px,11.8vw,82px); line-height:.96; }
  body .hero-description { margin:22px 0 16px; font-size:15px; }
  body .hero-actions { margin-top:20px; gap:18px; }
  body .hero-actions .button { min-height:46px; padding:12px 17px; font-size:11px; }
  body .hero-actions>span { font-size:9px; max-width:120px; }
  body .booking-facts { margin-top:18px; font-size:9px; }
  body .photo-composition { margin-top:25px; padding-left:45px; padding-right:0; }
  body .intro-image { min-height:0; height:480px; }
  body .detail-shot { right:auto; left:0; bottom:-24px; width:150px; }
  .scroll-hint { display:none; }
  .portrait-note { font-size:8px; right:10px; }
  body .brand-strip,body .gem-stage,body .booking-section { margin-inline:-18px; width:calc(100% + 36px); }
  body .brand-strip { padding:18px; font-size:9px; }
  body .studio-section { grid-template-columns:1fr; gap:28px; padding:70px 0; }
  body .studio-section h2 { font-size:46px; max-width:450px; }
  body .studio-section p:not(.eyebrow) { font-size:14px; }
  .gem-stage { min-height:700px; display:block; padding:55px 18px; }
  .gem-stage h2 { font-size:62px; }
  .gem-stage .gem-copy p:not(.eyebrow) { max-width:260px; font-size:13px; }
  .gem-canvas { width:100%; height:440px; top:auto; bottom:0; right:-15%; }
  .gem-caption { font-size:8px; bottom:22px; right:18px; }
  .gem-motion { right:18px; top:18px; font-size:8px; padding:8px; }
  body .services-section { padding:40px 0; }
  body .service-grid { grid-template-columns:1fr; gap:32px; }
  body .service-grid h2 { font-size:39px; }
  body .service-number { margin-bottom:22px; }
  body .booking-section { margin-top:55px; padding:55px 18px 35px; }
  body .booking-top h2 { font-size:55px; }
  body .booking-steps { grid-template-columns:1fr; margin-top:35px; gap:25px; }
  body .booking-steps article { border-color:#98a6b1; }
  body .booking-policy { grid-template-columns:1fr; padding:25px 0 35px; gap:10px; margin-bottom:55px; }
  body .faq-section { grid-template-columns:1fr; gap:30px; padding-bottom:60px; }
  body .faq-section h2 { font-size:43px; }
  body .faq-list summary { font-size:14px; }
  .preview-label { bottom:83px; left:8px; font-size:8px; padding:5px 8px; }
  body .mobile-booking-bar { background:#0b1018ed; border-color:#516674; }
  body .mobile-booking-bar .button { border-radius:0; font-size:12px; }
  body .price-heading { padding:50px 0 30px; }
  body .price-heading .eyebrow { font-size:clamp(43px,11vw,78px); }
  body .price-heading h2 { font-size:22px; }
  body .menu-group,body .menu-group:last-child { padding:25px 20px; }
  body .menu-group h2 { font-size:24px; }
  body .menu-group th,body .menu-group td { font-size:13px; }
  body .custom-note p { font-size:23px; }
  body .price-page .menu-group,body .price-page .menu-group:last-child { padding:25px 20px; }
  body .price-page .menu-group h2,body .price-page .menu-group:last-child h2 { font-size:24px; }
  body .price-page .price-heading .eyebrow { font-size:clamp(43px,11vw,78px); }
  body .price-page .menu-group th,body .price-page .menu-group td { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .motion-ready .reveal { opacity:1; transform:none; }
}
