/* One coherent cutaway preserves the perspective and softness of every material. */
.craft-cutaway { position:relative; width:min(66vw,78vh); aspect-ratio:1122 / 1402; margin:4vh auto; }
.craft-cutaway img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; }
.cutaway-base { opacity:var(--material-dim,.78); }
.cutaway-focus { mask-image:radial-gradient(ellipse 30% 15% at var(--focus-x,60%) var(--focus-y,15%),#000 20%,transparent 100%); }
.cutaway-point { position:absolute; left:var(--focus-x,60%); top:var(--focus-y,15%); transform:translate(-50%,-50%); width:28px; height:28px; border:1px solid #f4e5c29c; border-radius:50%; background:#14251dda; color:#fff0ce; box-shadow:0 0 0 5px #f8edd410; display:grid; place-items:center; font:10px Georgia,serif; letter-spacing:.06em; }
.motion-enabled .craft-cutaway { position:absolute; z-index:2; left:48vw; top:54vh; width:min(49vw,64vh); margin:0; transform:translateY(-50%) scale(var(--cutaway-scale,1)); opacity:var(--exploded-opacity,0); pointer-events:none; mask-image:linear-gradient(90deg,transparent,#000 12% 88%,transparent),linear-gradient(180deg,transparent,#000 7% 91%,transparent); mask-composite:intersect; }
.motion-enabled .craft-disclaimer { bottom:6vh; left:48vw; width:min(49vw,64vh); }
.motion-enabled .craft-whole { left:51vw; top:53vh; width:min(45vw,70vh); transform:translateY(calc(-50% + var(--whole-depth-y,0vh))) scale(var(--whole-depth-scale,1)); filter:blur(var(--whole-depth-blur,0px)); opacity:var(--whole-opacity,1); mix-blend-mode:screen; }
.whole-object { overflow:visible; mask-image:none; }
.craft-whole .patch-surface { display:block; width:100%; height:auto; transform-origin:50% 74%; mask-image:linear-gradient(180deg,transparent,#000 20% 95%,transparent),linear-gradient(90deg,transparent,#000 10% 90%,transparent); mask-composite:intersect; }
.motion-enabled .craft-cutaway { opacity:var(--structure-visible,0); transform:translateY(calc(-50% + var(--structure-y,0vh))) scale(var(--cutaway-scale,1)); filter:blur(var(--structure-blur,0px)); }
.motion-enabled .cutaway-point { opacity:var(--marker-opacity,0); }
.motion-enabled .craft-whole:hover .patch-surface,.motion-enabled .craft-whole:focus-visible .patch-surface { transform:scale(calc(1 + .04 * var(--craft-intro,1))); filter:brightness(1.025); }
.craft-focus-bridge { display:none; }
.motion-enabled .craft-focus-bridge { display:block; position:absolute; z-index:2; left:46vw; top:17vh; width:51vw; height:73vh; pointer-events:none; border-radius:50%; background:radial-gradient(ellipse at 48% 53%,#f0e8c926,#d1dfaf18 25%,#d1dfaf05 49%,transparent 70%); filter:blur(28px); transform:rotate(-24deg); opacity:var(--bridge-opacity,0); }

/* Elliptical depth carousel; vertical wheel input remains native everywhere. */
.motion-enabled .story:has(.ritual-chapter) { height:1385vh; }
.ritual-ambient { position:absolute; inset:-8%; pointer-events:none; overflow:hidden; }
.ritual-ambient img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:blur(42px) brightness(.47) saturate(.65); opacity:0; transition:opacity 700ms ease; }
.ritual-ambient img.is-current { opacity:1; }
.ritual-ambient::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,#0b2115b3,transparent 48%,#0b211573); }
.motion-enabled .ritual-heading-block { top:20vh; transform:none; }
.motion-enabled .ritual-heading-block h2 { transform:none; font-size:clamp(30px,3vw,53px); }
.motion-enabled .ritual-heading-block > p:last-child { opacity:1; }
.ritual-gallery { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:2vw; margin:3vh 8vw; }
.motion-enabled .ritual-gallery { --card-width:min(58vw,980px); position:absolute; top:36vh; left:3vw; width:94vw; height:53vh; padding:0; margin:0; display:block; overflow:visible; perspective:1100px; perspective-origin:50% 55%; opacity:var(--ritual-copy-opacity); }
.ritual-gallery:focus-visible { outline:1px solid #ebdbb933; outline-offset:5px; border-radius:14px; }
.ritual-window { position:relative; overflow:hidden; border:1px solid #f7f2df38; border-radius:14px; background:#14241c; box-shadow:0 16px 40px #0002,inset 0 1px 0 #fff2; }
.motion-enabled .ritual-window,.motion-enabled .ritual-window.is-current { position:absolute; left:50%; top:50%; width:var(--card-width); height:43vh; aspect-ratio:auto; margin:0; opacity:var(--orbit-opacity,1); transform:translate(-50%,-50%) translate3d(var(--orbit-x,0px),var(--orbit-y,0px),var(--orbit-z,0px)) rotateY(var(--orbit-turn,0deg)) scale(var(--orbit-scale,1)); filter:blur(var(--orbit-blur,0px)); transition:none; will-change:transform; }
.ritual-window img, .motion-enabled .ritual-window img { filter:saturate(.86); opacity:.94; mask-image:linear-gradient(180deg,#000 45%,#000b 80%,#0006),linear-gradient(90deg,#000a,#000 12% 88%,#000a); mask-composite:intersect; }
.ritual-window::after { background:linear-gradient(180deg,#f2efce08,transparent 25% 40%,#0c2015b8 100%); box-shadow:inset 0 1px 0 #fff2; border-radius:inherit; }
.ritual-window-caption, .motion-enabled .ritual-window-caption { opacity:1; left:5%; bottom:7%; }
.ritual-window-caption h3, .motion-enabled .ritual-window-caption h3 { opacity:1; max-height:none; font-size:clamp(20px,2vw,34px); line-height:1.55; margin-top:1vh; text-shadow:0 2px 14px #07170c66; }
.gallery-help { position:relative; text-align:center; color:#efe6d594; font-size:11px; letter-spacing:.05em; }
.motion-enabled .gallery-help { position:absolute; top:32.5vh; right:8.4vw; margin:0; opacity:var(--ritual-copy-opacity); }
.motion-enabled .ritual-navigation { bottom:6.8vh; }
.gallery-arrows { display:flex; align-items:center; justify-content:center; gap:20px; position:relative; margin:2vh; }
.motion-enabled .gallery-arrows { position:absolute; right:8.4vw; bottom:6.8vh; margin:0; opacity:var(--ritual-copy-opacity); }
.gallery-arrows button { width:34px; height:34px; border:1px solid #ede3ca55; border-radius:50%; background:#f0e9da09; color:#f3e6cd; cursor:pointer; font-size:17px; }
.gallery-arrows button:disabled { opacity:.28; cursor:default; }
.gallery-arrows .gallery-playback { width:auto; height:30px; padding:0 12px; border-radius:20px; font:11px "Moments Sans",var(--sans); letter-spacing:.04em; }
.gallery-arrows button:focus-visible { outline:1px solid #edcfa0; outline-offset:4px; }
.ritual-chapter[data-playback="playing"] .gallery-playback::before { content:""; display:inline-block; width:4px; height:4px; border-radius:50%; background:#d5c48f; margin-right:7px; vertical-align:2px; }
.gallery-index { color:#e1d7bf9c; font:11px Georgia,serif; letter-spacing:.16em; }
.brand-closing { position:relative; min-height:38vh; display:flex; flex-direction:column; align-items:center; justify-content:center; background:#0b2115; padding:5vh 8vw; font-family:"Moments Sans",var(--sans); border-top:1px solid #efe5cd15; }
.brand-closing img { width:150px; height:auto; filter:brightness(0) invert(.9); }
.brand-closing p { font:400 15px/1.8 "Moments Serif",var(--serif); letter-spacing:.1em; color:#e9dfcbb3; margin:2vh 0; }
.brand-closing a { font-size:11px; color:#e9dfcb73; margin-top:1vh; }
@media (prefers-reduced-motion:reduce) {
  .ritual-ambient img,.ritual-window { transition:none; }
  .ritual-gallery { scroll-behavior:auto; }
  .cutaway-point,.cutaway-focus { display:none; }
  .cutaway-base { opacity:1; }
}
