/* Invitani: cinematic digital atelier. Additive marketing-only skin; transactional classes remain untouched.
   Real CSS perspective and hinged planes, not a WebGL dependency or an autoplay video. */
:is(.page-home, .page-package) { --premium-ease: cubic-bezier(.2,.75,.2,1); --premium-wine: #3c1025; --premium-pink: #f7adc1; --premium-paper: #fff8e9; }
:is(.page-home, .page-package) .wrap { max-width: 1280px; }
:is(.page-home, .page-package) .site-header { background: #111b20; border-bottom-color: #ffffff20; }
:is(.page-home, .page-package) .site-nav { background: #111b20; }
:is(.page-home, .page-package) .site-nav a { color: #e6e9e8; }
:is(.page-home, .page-package) .site-nav a:hover { background: #2c3e46; color: #e6e9e8; }
:is(.page-home, .page-package) .site-header .brand { color: #f9f6e9; }
:is(.page-home, .page-package) .lang-switch { border-color: #627078; background: transparent; }
:is(.page-home, .page-package) .lang-switch button { color: #c7cfd3; }
:is(.page-home, .page-package) .lang-switch button[aria-pressed="true"] { background: #d7f38b; color: #142019; }
:is(.page-home, .page-package) .site-header :focus-visible { outline-color: #f8dcb6; }
:is(.page-home, .page-package) .header-inner { min-height: 84px; }
:is(.page-home, .page-package) .site-nav a { font-size: .85rem; }
:is(.page-home, .page-package) .btn { border-radius: 4px; min-height: 50px; }
:is(.page-home, .page-package) .btn-lg { padding-inline: 1.3rem; font-size: .95rem; }
:is(.page-home, .page-package) :focus-visible { outline: 3px solid #b35913; outline-offset: 5px; }
:is(.page-home, .page-package) :is(.home-hero, .home-designs, .palette-studio, .pkg-card.is-featured, .home-final, .site-footer) :focus-visible { outline-color: #f8dcb6; }
.page-home .home-hero { background: #111b20; color: #f9f6e9; padding: 0; isolation: isolate; overflow: clip; }
.premium-hero-grain { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(115deg, #111b20 35%, #1b2b30); }
.premium-hero-grain::after { content: ''; position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(#b7d2d826 1px, transparent 1px), linear-gradient(90deg,#b7d2d826 1px, transparent 1px); background-size: 80px 80px; mask-image: linear-gradient(90deg,transparent,black); }
.page-home .home-hero-grid { padding-block: 45px 30px; gap: 30px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); min-height: 690px; }
.premium-eyebrow { font: 600 .68rem/1.6 var(--font-body); letter-spacing: .2em; margin: 0 0 1.65rem; text-transform: uppercase; }
.page-home .home-hero .premium-eyebrow { color: #d7f38b; display: flex; align-items: center; gap: 10px; letter-spacing: .13em; }
.premium-spark { font-size: 1.65rem; line-height: 1; }
.page-home .home-hero h1 { font-family: var(--font-body); font-weight: 650; font-size: clamp(3rem, 5.2vw, 4.7rem); letter-spacing: -.065em; line-height: 1.04; max-width: none; margin-bottom: 1.6rem; color: #f9f6e9; text-wrap: initial; }
.premium-title-line { display: block; }
.premium-title-accent { color: #d7f38b; font-family: var(--font-numbers); font-style: italic; font-weight: 400; letter-spacing: -.055em; font-size: .95em; line-height: 1.2; }
.page-home .home-hero-sub { color: #bfcad0; max-width: 29rem; font-size: 1.02rem; line-height: 1.8; }
.page-home .home-hero .hero-cta { margin-block: 1.8rem 1.2rem; gap: .7rem; }
.page-home .home-hero .btn-gold { background: #d7f38b; color: #172019; box-shadow: none; }
.page-home .home-hero .btn-gold:hover { background: #e8ffb0; }
.page-home .home-hero .btn-light { border-color: #778890; color: #f9f6e9; }
.page-home .home-hero-price { max-width: 30rem; font-size: .74rem; line-height: 1.7; color: #aebdc5; }
.page-home .home-hero-price strong { color: #e1f4b5; }
.premium-hero-foot { border-top: 1px solid #b7d2d830; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; padding-block: 22px; font-size: .62rem; letter-spacing: .15em; color: #bfced4; }
.premium-hero-foot a { color: #f8dcb6; text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; }
.premium-motion { color: #f8dcb6; font: inherit; letter-spacing: .04em; border: 1px solid #778890; border-radius: 4px; background: transparent; padding: 8px 12px; min-height: 44px; cursor: pointer; }
/* A staged object with depth, a raised pocket, and a flap hinged on its top edge. */
.premium-stage { --studio-light: #fe985f; position: relative; width: 100%; min-width: 0; height: 600px; margin-bottom: 35px; perspective: 1200px; isolation: isolate; border: 1px solid #839ba03f; border-radius: 12px; background: #1a292e; }
.premium-stage[data-light="midnight"] { --studio-light: #67baf1; }
.premium-stage-top { position: absolute; top: 0; inset-inline: 0; display: flex; justify-content: space-between; gap: 10px; padding: 16px 18px; border-bottom: 1px solid #839ba03f; color: #b4cbd0; font: .58rem/1.5 var(--font-body); letter-spacing: .13em; }
.premium-stage-top > :last-child { color: #d7f38b; }
.premium-stage-grid { position: absolute; inset: 12% 3% 21%; border: 1px solid #e5f4ee17; border-radius: 50%; pointer-events: none; background: radial-gradient(ellipse at 50% 55%,var(--studio-light),transparent 69%); opacity: .38; transition: background 400ms; }
.premium-stage-grid::after { content: ''; position: absolute; inset: 68% -3% -2%; border: 1px solid #dceacf3a; border-radius: 50%; background: #5b73712b; transform: rotateX(65deg); }
.premium-orbit { position: absolute; width: 84%; height: 70%; border: 1px solid #dfecd047; border-radius: 50%; top: 15%; left: 8%; transform: rotateX(68deg) rotateZ(-25deg); pointer-events: none; }
.premium-orbit-two { width: 90%; height: 78%; top: 12%; left: 5%; transform: rotateX(60deg) rotateZ(35deg); }
.premium-edition { position: absolute; right: 2%; top: 40%; writing-mode: vertical-rl; font-size: .52rem; letter-spacing: .27em; color: #c4d2d6; }
.premium-stage .hero-scene { position: absolute; inset: 0; display: block; transform-style: preserve-3d; }
.premium-stage .hero-greeting { position: absolute; left: 6%; top: 11%; color: #f0dfb9; font-size: 2rem; transform: rotate(-8deg); }
.premium-stage .hero-env-link { position: absolute; top: 37%; left: 9%; width: min(61%,325px); perspective: 1000px; }
.premium-stage .hero-env { margin: 0; clip-path: none; transform-style: preserve-3d; transform: rotateX(12deg) rotateY(-17deg) rotateZ(-10deg); transition: transform 850ms var(--premium-ease); }
.premium-stage .hero-env-back { transform: translateZ(-5px); background: #d5bc93; border: 1px solid #ffefd3; box-shadow: 10px 34px 65px #13081190; }
.premium-stage .hero-env-card { bottom: 7%; left: 10%; width: 80%; transform: translate3d(0,-8%,8px); opacity: 1; animation: none; overflow: hidden; border: 7px solid #fff7e6; box-shadow: 0 3px 10px #1b0a2245; transition: transform 1000ms var(--premium-ease), opacity 400ms var(--premium-ease); }
.premium-stage .hero-env-pocket { transform: translateZ(12px); box-shadow: inset 0 -1px 0 #b38f6e; }
.premium-stage .hero-env-flap { animation: none; backface-visibility: hidden; transition: transform 1000ms var(--premium-ease); }
.premium-stage .hero-env-flap-open { visibility: visible; transform: translateZ(-4px) rotateX(180deg); background: repeating-linear-gradient(45deg,#d4b788 0 8px,#e1c79d 8px 9px); }
.premium-stage .hero-env-flap-closed { visibility: hidden; transform: translateZ(15px) rotateX(180deg); background: linear-gradient(#fff8e8,#e9d8b7); }
.premium-stage .hero-env-seal { transform: translate3d(-50%,-50%,20px); }
.premium-stage .hero-env-seal-half { animation: none; opacity: 0; transition: opacity 350ms; }
.premium-stage:not(.is-open) .hero-env-card { transform: translate3d(0,5%,5px) scale(.9); opacity: 0; }
.premium-stage:not(.is-open) .hero-env-flap-open { transform: translateZ(-4px) rotateX(0deg); }
.premium-stage:not(.is-open) .hero-env-flap-closed { transform: translateZ(15px) rotateX(0deg); visibility: visible; }
.premium-stage:not(.is-open) .hero-env-seal-half { opacity: 1; transform: none; }
.premium-stage.is-front .hero-env { transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); }
.premium-stage .hero-scene figcaption { position: absolute; top: 83%; left: 7%; max-width: 86%; color: #d0dcdf; font-size: .68rem; line-height: 1.6; }
.premium-photo-card { position: absolute; top: 20%; right: 7%; width: 30%; background: #fae8cf; border: 6px solid #fae8cf; box-shadow: 8px 18px 35px #04121675; transform: rotateY(-16deg) rotateZ(14deg); transform-origin: 50% 100%; pointer-events: none; }
.premium-photo { display: block; aspect-ratio: 390/545; width: 100%; object-fit: cover; object-position: top; }
.premium-photo-card > span { display: block; padding: 8px 0 4px; font: .65rem/1.2 var(--font-numbers); text-align: center; color: #603729; }
.premium-stage-controls { position: absolute; top: 91%; left: 4%; right: 4%; display: flex; justify-content: center; gap: 8px; z-index: 3; }
.premium-control { border: 1px solid #82979e; background: #17262c; color: #eef1df; min-height: 44px; padding: 8px 12px; border-radius: 4px; font: .72rem/1.4 var(--font-body); cursor: pointer; }
.premium-control:hover, .premium-control[aria-pressed="true"] { background: #344a50; }
.premium-light-controls { position: absolute; top: calc(100% + 12px); inset-inline: 0; display: flex; align-items: center; justify-content: flex-end; gap: 6px; color: #b5c6cf; font-size: .65rem; }
.premium-light-controls > span { margin-right: auto; }
.premium-light { min-height: 44px; border: 1px solid transparent; background: transparent; color: #bfd0d5; padding: 7px 11px; border-radius: 5px; font: inherit; cursor: pointer; }
.premium-light::before { content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: #fe985f; }
.premium-light[data-light-choice="midnight"]::before { background: #67baf1; }
.premium-light[aria-pressed="true"] { border-color: #799198; color: #f9f6e9; background: #26383d; }
/* Editorial sections: large inspectable samples, not an endless wall of small cards. */
.page-home .home-pillars { background: #f5ecdf; }
.page-home .pillar-list { padding-block: 30px; }
.page-home .pillar-list li { border-left-color: #9e6574; }
.page-home .pillar-list strong { font: 500 1.14rem/1.3 var(--font-numbers); }
.page-home .pillar-list span:not([data-lang]) { font-size: .82rem; }
.page-home .section { padding-block: 90px; }
.page-home .section-head { gap: 25px 70px; }
.page-home .section-head h2 { font-size: clamp(2rem, 3.9vw, 3.6rem); letter-spacing: -.05em; line-height: 1.2; }
.page-home .section-head p { font-size: .96rem; line-height: 1.85; }
.page-home .sample-list { gap: 28px; }
.page-home .sample-card { background: transparent; border: 0; border-radius: 0; }
.page-home .sample-shot { border-radius: 100% 100% 4px 4px; aspect-ratio: 4/5; background: #ede4d7; padding: 22px; box-shadow: none; }
.page-home .sample-shot-img { inset: 10% 13% 0; width: 74%; height: 90%; border-radius: 10px 10px 0 0; object-fit: cover; box-shadow: 0 12px 24px #402c3226; transition: transform 600ms var(--premium-ease); }
.page-home .sample-plus .sample-shot { background: #e1e8df; }
.page-home .sample-premium .sample-shot { background: #e9d1db; }
.page-home .sample-body { padding-top: 10px; }
.page-home .sample-pkg { font-size: .68rem; letter-spacing: .09em; text-transform: uppercase; }
.page-home .sample-body h3 { font-family: var(--font-numbers); font-size: 2rem; }
.page-home .sample-actions .btn { font-size: .8rem; }
.page-home .sample-actions .text-link { font-size: .8rem; }
.page-home .home-experience { background: #f4ebdf; }
.page-home .experience-block { position: relative; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); border: 0; gap: 50px; }
.page-home .experience-shot { perspective: 1200px; padding: 30px 0; background: #e6d2bb; border-radius: 220px 220px 5px 5px; }
.page-home .experience-shot .phone-shot { transform: rotateY(-17deg) rotateZ(-7deg); width: min(235px, 65%); box-shadow: 25px 35px 40px #4e291635; transition: transform 700ms var(--premium-ease); }
.page-home .experience-block-hosts { background: #e4e8db; border-radius: 5px; padding: 40px; }
.page-home .experience-block-hosts .experience-shot { background: #d0d8bd; }
.page-home .experience-block-hosts .phone-shot { transform: rotateY(17deg) rotateZ(7deg); }
.page-home .experience-copy h3 { font-size: 2.5rem; letter-spacing: -.04em; }
.page-home .features-lg { font-size: .94rem; }
.page-home .home-designs { background: #111b20; }
.page-home .home-designs h2, .page-home .home-designs h3 { color: #fcf2dd; }
.page-home .home-designs .section-head p, .page-home .home-designs .design-story p { color: #c7d4c7; }
.palette-studio { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 30px; align-items: center; padding: 48px; border: 1px solid #617b80; border-radius: 8px; margin-bottom: 50px; background: #1e3337; }
.palette-studio-copy h3 { font-size: clamp(2.4rem,4vw,3.5rem); letter-spacing: -.05em; line-height: 1.2; }
.palette-studio-copy p { color: #d4dfcf; max-width: 28rem; font-size: .94rem; }
.palette-studio-copy .premium-eyebrow { color: #f1c58a; font-size: .64rem; }
.palette-controls { display: flex; flex-wrap: wrap; gap: 8px; margin-block: 24px; }
.palette-choice { display: flex; align-items: center; gap: 9px; padding: 11px 13px; min-height: 46px; border: 1px solid #748e7e; color: #fbefd6; border-radius: 4px; background: transparent; font: .8rem var(--font-body); cursor: pointer; }
.palette-choice[aria-pressed="true"] { background: #fcf0d8; color: #203b32; border-color: #fcf0d8; }
.palette-dot { width: 15px; height: 15px; border-radius: 50%; border: 1px solid #937b59; background: #f6e6c7; }
.palette-choice-1 .palette-dot { background: #712b47; }
.palette-choice-2 .palette-dot { background: #263655; }
.palette-studio-copy .palette-disclaimer { font-size: .7rem; color: #bfd0bd; }
.palette-stage { position: relative; min-width: 0; perspective: 1200px; display: grid; place-items: center; }
.palette-preview { margin: 0; position: relative; width: min(245px,80%); z-index: 1; }
.palette-sheet { background: #f5e7cb; border: 8px solid #f5e7cb; box-shadow: 15px 25px 35px #07170b90; transform: rotateY(-22deg) rotateX(7deg) rotateZ(8deg); }
.palette-image { display: block; width: 100%; height: auto; }
.palette-preview figcaption { margin-top: 25px; color: #f8dfb4; text-align: center; font: 1.15rem var(--font-numbers); }
.palette-shadow { position: absolute; width: 80%; height: 45%; bottom: 0; border-radius: 50%; background: #0b201bab; filter: blur(20px); transform: rotateX(65deg); }
.page-home .design-grid { gap: 30px 24px; }
.page-home .design-shot { border-radius: 4px; background: #2e4439; padding: 16px; box-shadow: none; }
.page-home .design-shot-img { inset: 8% 10%; width: 80%; height: 92%; border-radius: 2px; box-shadow: 0 8px 20px #0005; }
.page-home .design-name { font-family: var(--font-numbers); font-size: 1.3rem; }
.page-home .design-caption, .page-home .design-note { color: #b9cbbd; }
.page-home .design-story { max-width: 46rem; border-top: 1px solid #65796a; padding-top: 28px; }
.page-home .home-packages { background: #fffaf3; }
.page-home .section-intro h2 { font-size: clamp(2rem,3.9vw,3.6rem); letter-spacing: -.05em; line-height: 1.2; }
.page-home .pkg-card { border-radius: 5px; box-shadow: none; border-color: #d9c5ad; }
.page-home .pkg-card.is-featured { background: #3c1025; border-color: #3c1025; }
.page-home .pkg-card.is-featured .pkg-stats { border-color: #9d657a; }
.page-home .pkg-card.is-featured .pkg-stats dt { color: #e7cbd3; }
.page-home .pkg-card.is-featured .chip-proposed { background: #5b2f42; color: #f6d4a4; }
.page-home .pkg-flag { letter-spacing: .12em; }
.page-home .timeline { gap: 25px; }
.page-home .timeline-step h3 { font-family: var(--font-numbers); }
.page-home .home-final { position: relative; background: #14262d; padding-block: 85px; }
.page-home .home-final h2 { font-size: clamp(2.4rem,5vw,4.3rem); letter-spacing: -.05em; }
.page-home .home-final p { font-size: 1rem; }
.page-home .site-footer { margin-top: 0; background: #191d1b; }
/* Package pages receive the same visual quality, but their order/status hooks and prices are unchanged. */
.page-package .pkg-hero { background: #f0e3d3; padding-block: 55px; }
.page-package .pkg-hero h1 { font-size: clamp(3.4rem,6vw,5.5rem); letter-spacing: -.06em; }
.page-package .pkg-hero-shot { perspective: 1200px; padding: 35px 25px; border-radius: 12px; background: #1d323a; border: 1px solid #789497; }
.page-package .pkg-hero-shot .phone-shot { width: min(265px,70%); transform: rotateY(-20deg) rotateZ(7deg); box-shadow: 24px 30px 35px #1c071e70; transition: transform 700ms var(--premium-ease); }
.page-package .pkg-hero-shot figcaption { color: #d0dcdf; max-width: 24rem; margin-top: 32px; }
.page-package .pkg-kicker { letter-spacing: .18em; font-size: .75rem; }
.page-package .pkg-hero .lead { font-size: 1.06rem; }
.page-package .pkg-stats-hero { background: #fff7e9; padding: 15px; border-radius: 4px; }
.page-package .pkg-story-card { border-radius: 4px; background: #e8ecdf; box-shadow: none; }
/* Finite, user-stoppable motion. Content is never hidden awaiting IntersectionObserver or JavaScript. */
.flagship-experience { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: 30px; background: #152d31; border: 1px solid #607a76; border-radius: 8px; padding: clamp(28px,4vw,54px); margin: 28px 0 64px; overflow: clip; }
.flagship-copy { align-self: center; min-width: 0; }
.flagship-edition { color: #d7f38b; font: .63rem/1.7 var(--font-body); letter-spacing: .15em; }
.page-home .flagship-copy h3 { color: #fbefd9; font-family: var(--font-numbers); font-weight: 400; letter-spacing: -.045em; font-size: clamp(2.8rem,4.2vw,4rem); line-height: 1.06; white-space: pre-line; margin: 20px 0; }
.flagship-copy > p:not(.flagship-edition):not(.flagship-note) { color: #d5ded5; max-width: 32rem; font-size: .93rem; line-height: 1.85; }
.flagship-details { list-style: none; padding: 0; margin: 25px 0; display: flex; flex-wrap: wrap; gap: 8px 20px; color: #d3e0cc; font-size: .68rem; }
.flagship-details li::before { content: '＋'; color: #d7f38b; margin-right: 5px; }
.flagship-actions .btn { min-height: 52px; white-space: normal; }
.flagship-experience .btn-gold { color: #183023; background: #d7f38b; border-color: #d7f38b; box-shadow: none; }
.flagship-experience .text-link { color: #f2d29e; }
.flagship-alternate { margin: 16px 0; }
.flagship-note { color: #b8c9c3; max-width: 30rem; font-size: .7rem; line-height: 1.7; }
.flagship-art { position: relative; margin: 0; align-self: center; min-width: 0; height: 565px; perspective: 1400px; }
.flagship-orbit { position: absolute; inset: 11% -6% 6%; border: 1px solid #82997d; border-radius: 50%; transform: rotateZ(-20deg) rotateY(-24deg); pointer-events: none; }
.flagship-frame { position: absolute; width: 62%; max-width: 275px; left: 5%; top: 2%; border: 7px solid #f8ecd4; border-radius: 5px; box-shadow: 20px 25px 45px #030f105f; transform: rotateY(10deg) rotateZ(-6deg); transition: transform 550ms var(--premium-ease); }
.flagship-detail { position: absolute; width: 40%; max-width: 170px; right: 0; top: 32%; border: 5px solid #e4d1ac; border-radius: 5px; box-shadow: 15px 20px 32px #030f1080; transform: rotateY(-10deg) rotateZ(9deg); transition: transform 550ms var(--premium-ease); }
.flagship-image { display: block; width: 100%; height: auto; }
.flagship-art figcaption { position: absolute; bottom: 0; left: 0; right: 0; color: #c2d5c8; text-align: center; font-size: .66rem; letter-spacing: .08em; }
.flagship-experience :focus-visible { outline-color: #d7f38b; }
.classic-samples-title { margin: 0 0 28px; font: 400 clamp(1.6rem,3vw,2.5rem)/1.2 var(--font-numbers); }
.page-home .pkg-decision { font-weight: 600; color: #3f5e56; font-size: .9rem; margin: 12px 0; }
.page-home .pkg-card.is-featured .pkg-decision { color: #f6d4a4; }
.page-home .pkg-card .tagline { font-size: .8rem; line-height: 1.65; }
.page-package .flagship-actions [data-lang] { display: block; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .page-home:not(.premium-motion-paused) .flagship-art:hover .flagship-frame { transform: rotateY(0) rotateZ(-2deg); }
  .page-home:not(.premium-motion-paused) .flagship-art:hover .flagship-detail { transform: rotateY(0) rotateZ(3deg); }
}
@media (max-width: 1099px) { .flagship-art { height: 485px; } }
@media (max-width: 799px) {
  .flagship-experience { grid-template-columns: 1fr; padding: 32px 24px; gap: 25px; }
  .flagship-art { height: 540px; width: min(420px,100%); justify-self: center; }
  .flagship-copy > p:not(.flagship-edition):not(.flagship-note) { max-width: none; }
  .flagship-frame { width: 65%; }
}
@media (max-width: 449px) {
  .flagship-experience { padding: 27px 20px; margin-bottom: 40px; }
  .flagship-art { height: 440px; }
  .page-home .flagship-copy h3 { font-size: 2.65rem; }
  .flagship-details { gap: 8px 12px; }
  .flagship-copy .btn { font-size: .77rem; padding-inline: 12px; }
  .flagship-art figcaption { bottom: 8px; }
}
@media (max-width: 359px) { .flagship-art { height: 375px; } }
@media (prefers-reduced-motion: no-preference) {
  .page-home:not(.premium-motion-paused) .premium-title-line { animation: premium-title-in 900ms var(--premium-ease) both; }
  .page-home:not(.premium-motion-paused) .premium-title-accent { animation-delay: 140ms; }
  :is(.page-home,.page-package):not(.premium-motion-paused) .premium-arrived { animation: premium-arrive 700ms var(--premium-ease) both; }
  .page-home:not(.premium-motion-paused) .palette-stage.is-changing .palette-sheet { animation: premium-palette 700ms var(--premium-ease); }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .page-home:not(.premium-motion-paused) .sample-shot:hover .sample-shot-img { transform: translateY(-3%) scale(1.025); }
  .page-home:not(.premium-motion-paused) .experience-shot:hover .phone-shot,
  .page-package:not(.premium-motion-paused) .pkg-hero-shot:hover .phone-shot { transform: rotateY(0) rotateZ(0); }
}
@keyframes premium-title-in { from { opacity: .5; transform: translateY(18px) rotateX(-14deg); } to { opacity: 1; transform: none; } }
@keyframes premium-arrive { from { transform: translateY(22px); } to { transform: none; } }
@keyframes premium-palette { from { transform: rotateY(-2deg) rotateX(0deg) rotateZ(2deg); } to { transform: rotateY(-22deg) rotateX(7deg) rotateZ(8deg); } }
.premium-motion-paused *, .premium-motion-paused *::before, .premium-motion-paused *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
@media (max-width: 1099px) and (min-width: 900px) {
  .page-home .home-hero h1 { font-size: 3.25rem; }
  .premium-stage { height: 570px; }
  .premium-stage .hero-env-link { top: 37%; }
  .premium-stage .hero-scene figcaption { top: 80%; }
  .premium-stage-controls { top: 90%; }
}
@media (max-width: 899px) {
  .page-home .home-hero-grid { grid-template-columns: 1fr; padding-top: 35px; min-height: auto; gap: 10px; }
  .page-home .home-hero-copy { text-align: center; }
  .page-home .home-hero h1 { font-size: clamp(2.6rem,7vw,4.3rem); }
  .page-home .home-hero .premium-eyebrow { justify-content: center; }
  .page-home .home-hero-sub, .page-home .home-hero-price { margin-inline: auto; }
  .page-home .hero-cta { justify-content: center; }
  .premium-stage { max-width: 540px; height: 600px; justify-self: center; margin-top: 25px; margin-bottom: 60px; }
  .premium-stage-controls { top: 92%; }
  .premium-stage .hero-greeting { left: 6%; }
  .premium-hero-foot { justify-content: center; text-align: center; font-size: .57rem; }
  .page-home .section { padding-block: 55px; }
  .page-home .experience-block { gap: 24px; }
  .page-home .experience-block-hosts { padding: 25px; }
  .palette-studio { padding: 30px; }
  .page-package .pkg-hero-shot { width: min(100%,490px); margin-inline: auto; }
}
@media (max-width: 599px) {
  :is(.page-home,.page-package) .wrap { padding-inline: 20px; }
  :is(.page-home,.page-package) .header-inner { min-height: 72px; gap: 8px; }
  :is(.page-home,.page-package) .brand-wordmark { height: 25px; }
  :is(.page-home,.page-package) .lang-switch button { min-width: 36px; }
  .page-home .home-hero-grid { padding-top: 24px; }
  .premium-eyebrow { font-size: .56rem; letter-spacing: .14em; margin-bottom: 14px; }
  .page-home .home-hero h1 { font-size: clamp(2.5rem,10vw,3.3rem); margin-bottom: 14px; line-height: 1.1; }
  .page-home .home-hero-sub { font-size: .86rem; line-height: 1.65; max-width: 26rem; }
  .page-home .home-hero .hero-cta { margin: 17px 0 10px; gap: 8px; }
  .page-home .home-hero .btn-lg { padding: 10px 12px; font-size: .78rem; min-height: 46px; }
  .page-home .home-hero-price { font-size: .65rem; }
  .premium-stage { height: 550px; margin-top: 20px; margin-bottom: 65px; }
  .premium-stage-top { padding: 13px 12px; font-size: .49rem; letter-spacing: .08em; }
  .premium-stage .hero-greeting { font-size: 1.7rem; top: 12%; }
  .premium-stage .hero-env-link { width: 66%; top: 38%; left: 9%; }
  .premium-stage .hero-scene figcaption { top: 78%; font-size: .65rem; }
  .premium-stage-controls { top: 91%; }
  .premium-control { font-size: .65rem; padding: 6px 10px; }
  .premium-photo-card { width: 30%; top: 24%; right: 8%; border-width: 5px; }
  .premium-photo-card > span { font-size: .45rem; }
  .premium-orbit { width: 82%; height: 66%; }
  .premium-orbit-two { width: 90%; height: 70%; }
  .premium-stage-grid { inset-inline: 3%; }
  .premium-edition { right: 2%; font-size: .46rem; }
  .premium-hero-foot { gap: 6px 16px; padding-block: 12px; }
  .premium-hero-foot > span { width: 100%; }
  .page-home .pillar-list { gap: 22px; padding-block: 26px; }
  .page-home .pillar-list strong { font-size: 1.1rem; }
  .page-home .sample-list { grid-template-columns: 1fr; gap: 34px; }
  .page-home .sample-card { grid-template-columns: minmax(0,1fr); gap: 14px; padding: 0; }
  .page-home .sample-shot { width: 100%; max-height: 380px; }
  .page-home .sample-body { padding-top: 0; }
  .page-home .sample-body > p { font-size: .88rem; }
  .page-home .experience-block { grid-template-columns: 1fr; }
  .page-home .experience-shot { padding-block: 26px 20px; }
  .page-home .experience-block-hosts { padding: 22px 18px; }
  .page-home .experience-copy h3 { font-size: 2rem; }
  .palette-studio { grid-template-columns: 1fr; padding: 26px 20px; gap: 20px; }
  .palette-studio-copy h3 { font-size: 2.7rem; }
  .palette-choice { font-size: .7rem; padding-inline: 9px; }
  .palette-preview { width: min(220px,72%); }
  .page-home .design-grid { gap: 24px 16px; }
  .page-home .design-name { font-size: 1rem; }
  .page-home .home-final { padding-block: 55px; }
  .page-package .pkg-hero { padding-block: 28px; }
  .page-package .pkg-hero h1 { font-size: 3.4rem; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.page-home,.page-package) *, :is(.page-home,.page-package) *::before, :is(.page-home,.page-package) *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@supports not (perspective: 1000px) {
  .premium-stage .hero-env, .palette-sheet, .premium-photo-card { transform: none; }
  .premium-stage .hero-env-card { bottom: 0; transform: translateY(-20%); }
}
@media print { .premium-stage-controls, .premium-motion, .palette-controls { display: none !important; } }

/* Original generated concept art. Actual invitation samples remain separately labeled. */
.page-home .home-occasions { background: #f4f1e9; color: #182b2c; }
.occasion-heading { display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: 40px; margin-bottom: 36px; }
.occasion-heading .premium-eyebrow { color: #526258; margin-bottom: 14px; }
.occasion-heading h2 { white-space: pre-line; font-size: clamp(2.1rem, 4.4vw, 3.8rem); line-height: 1.08; letter-spacing: -.045em; margin: 0; }
.occasion-heading > p { max-width: 31rem; margin: 0; font-size: .95rem; line-height: 1.8; }
.occasion-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.occasion-card { min-width: 0; scroll-margin-top: 110px; perspective: 1200px; }
.occasion-scene { aspect-ratio: 4 / 5; position: relative; overflow: hidden; isolation: isolate; border-radius: 4px 4px 40px 4px; background: #132b2c; box-shadow: 0 20px 38px -24px #16231d80; transform-style: preserve-3d; }
.occasion-quinceanera .occasion-scene { background: #651c41; }
.occasion-wedding .occasion-scene { background: #234638; }
.occasion-holiday .occasion-scene { background: #741d29; }
.occasion-corporate .occasion-scene { background: #132d52; }
.occasion-photo { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.occasion-scene::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,#0006,transparent 20%,transparent 77%,#0009); }
.occasion-index { position: absolute; z-index: 2; inset: 16px auto auto 17px; color: #fff; font: 600 .55rem/1.4 var(--font-body); letter-spacing: .16em; text-shadow: 0 1px 4px #000; }
.occasion-edition { position: absolute; z-index: 2; left: 17px; bottom: 18px; color: #fff; font: 600 .58rem/1.5 var(--font-body); letter-spacing: .12em; text-shadow: 0 1px 4px #000; }
.occasion-sheen { position: absolute; inset: -40%; z-index: 1; pointer-events: none; background: linear-gradient(115deg,transparent 35%,#fff2 46%,#fff5 50%,transparent 59%); transform: translateX(-65%); opacity: 0; }
.occasion-copy { padding: 19px 0 0; }
.occasion-copy h3 { font-size: 1.65rem; line-height: 1.18; margin: 0 0 10px; }
.occasion-copy > p { font: .84rem/1.75 var(--font-body); margin: 0 0 10px; min-height: 4.5em; }
.occasion-link { display: inline-flex; align-items: center; min-height: 44px; color: #244636; font: 650 .82rem/1.4 var(--font-body); text-underline-offset: 5px; }
.occasion-link:hover { color: #7a253e; }
.occasion-art-note { font: 600 .72rem/1.6 var(--font-body); margin: 28px 0 0; color: #40564c; }
.occasion-disclosure { color: #526258; font: .76rem/1.75 var(--font-body); margin: 8px 0 0; max-width: 64rem; }
@media (prefers-reduced-motion: no-preference) {
  .page-home:not(.premium-motion-paused) .occasion-card.premium-arrived .occasion-scene { animation: occasion-arrive 700ms var(--premium-ease) both; }
}
@keyframes occasion-arrive { from { opacity: .6; transform: translateY(20px) rotateX(5deg); } to { opacity: 1; transform: none; } }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .page-home:not(.premium-motion-paused) .occasion-scene { transition: transform 500ms var(--premium-ease); }
  .page-home:not(.premium-motion-paused) .occasion-photo { transition: transform 750ms var(--premium-ease); }
  .page-home:not(.premium-motion-paused) .occasion-card:is(:hover,:focus-within) .occasion-scene { animation: none; transform: translateY(-6px) rotateX(2deg) rotateY(-3deg); }
  .page-home:not(.premium-motion-paused) .occasion-card:is(:hover,:focus-within) .occasion-photo { transform: scale(1.055); }
  .page-home:not(.premium-motion-paused) .occasion-card:is(:hover,:focus-within) .occasion-sheen { animation: occasion-sheen 900ms ease-out both; }
}
@keyframes occasion-sheen { 0% { opacity: 0; transform: translateX(-65%); } 30% { opacity: .7; } 100% { opacity: 0; transform: translateX(65%); } }
.premium-motion-paused :is(.occasion-scene,.occasion-photo,.occasion-sheen) { animation: none !important; transition: none !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) { :is(.occasion-scene,.occasion-photo,.occasion-sheen) { animation: none !important; transition: none !important; transform: none !important; } }
@media (max-width: 1000px) {
  .occasion-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 24px; }
  .occasion-copy > p { min-height: 0; }
}
@media (max-width: 599px) {
  .occasion-heading { grid-template-columns: 1fr; gap: 18px; margin-bottom: 26px; }
  .occasion-heading > p { font-size: .86rem; }
  .occasion-grid { grid-template-columns: 1fr; gap: 34px; }
  .occasion-scene { max-height: 510px; }
  .occasion-copy { padding-top: 17px; }
  .occasion-copy h3 { font-size: 1.85rem; }
  .occasion-copy > p { font-size: .9rem; line-height: 1.7; }
  .occasion-link { font-size: .88rem; }
  .occasion-index { font-size: .58rem; inset: 18px auto auto 18px; }
  .occasion-edition { font-size: .62rem; }
}
@supports not (perspective: 1000px) { .occasion-scene { transform: none !important; } }
