.fabric-light{position:absolute;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(ellipse 32% 65% at var(--light-x,62%) var(--light-y,28%),#daecf31c,transparent 78%);mask-image:linear-gradient(#000 0%,#000 50%,transparent 86%)}
.globe-stage{position:absolute;inset:0;z-index:-1;overflow:hidden;mask-image:linear-gradient(transparent 0%,#000 23%,#000 84%,transparent 100%);touch-action:pan-y;cursor:grab}
.globe-stage:active{cursor:grabbing}.globe-plane{position:absolute;pointer-events:none}.globe-plane canvas,.rim{position:absolute;inset:0;width:100%;height:100%}.globe-plane canvas{opacity:0;transition:opacity 1.5s}.globe-plane canvas.ready{opacity:1}
.rim .rim-halo{stroke-width:14;opacity:.62}.rim .rim-gold{stroke-width:3.3;opacity:1}.rim .rim-white{stroke-width:1.15;opacity:1}
.rim path{stroke-dasharray:1;stroke-dashoffset:1;stroke-linecap:round;vector-effect:non-scaling-stroke}.rim-halo{stroke:#e9ce94;stroke-width:7;opacity:.36;filter:url(#rim-bloom)}.rim-gold{stroke:url(#rim-metal);stroke-width:2;opacity:.88}.rim-white{stroke:#fffdf4;stroke-width:.65;opacity:.95}
.scene-controls{position:absolute;bottom:30px;right:5vw;z-index:3;display:flex;align-items:center;gap:18px;font:11px/1.5 Inter,Arial,sans-serif;color:#dedbd1}.scene-controls button,.scene-controls summary{font:inherit;color:inherit;cursor:pointer;background:#1d2f4eab;border:1px solid #ffffff30;padding:9px 12px}.scene-controls summary{list-style:none}.scene-controls details[open]{background:#1d2f4ef2;padding:12px;min-width:210px}.scene-controls label{display:block;margin:15px 0 10px}.scene-controls input{display:block;width:100%;accent-color:#c6a153;margin-top:8px}.scene-controls :focus-visible{outline:2px solid #c6a153;outline-offset:4px}.direction-hint{opacity:.65}.scene-controls details[open]~button{align-self:flex-end}
@media(max-width:700px){.globe-stage{top:14%;height:86%}.fabric-light{height:75%}.scene-controls{right:22px;bottom:12px;gap:10px}.direction-hint{display:none}}
@media(prefers-reduced-motion:reduce){.globe-plane canvas{transition:none}.rim path{stroke-dashoffset:0}#globe-motion{display:none}}
.light-veil{position:absolute;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:screen;background:conic-gradient(from 157deg at var(--light-x,62%) -15%,transparent 0deg,#bedcea08 6deg,transparent 12deg,#e8eee711 15deg,transparent 22deg);mask-image:linear-gradient(#000,transparent 76%);opacity:.7}
.scene-controls{gap:14px}.scene-controls details{position:relative}.scene-controls summary{display:flex;align-items:center;gap:25px}.scene-controls details[open]{padding:0;min-width:0;background:transparent}.scene-controls details[open]~button{align-self:auto}.direction-panel{position:absolute;bottom:calc(100% + 12px);right:0;width:260px;padding:22px;background:#172a46f5;border:1px solid #c6a15344;box-shadow:0 12px 50px #07142655;backdrop-filter:blur(18px)}.panel-caption{font:400 19px/1.3 Fraunces,Georgia,serif;margin:0 0 22px;color:#fffdf8}.direction-panel button{display:block;border:0;border-bottom:1px solid #c6a15355;padding:8px 0;background:none;margin-top:8px}.scene-controls summary span{color:#c6a153}.scene-controls details[open] summary span{transform:rotate(45deg)}.scene-controls button,.scene-controls summary,.motion-toggle{transition:border-color .25s,background .25s}.scene-controls button:hover,.scene-controls summary:hover,.motion-toggle:hover{border-color:#c6a153aa;background:#1d2f4ef0}.study-footer{border-top:1px solid #ffffff12;align-items:center}.study-footer a{color:inherit;text-decoration:none;border-bottom:1px solid #c6a15366;padding-bottom:5px}
@media(max-width:700px){.direction-panel{right:-100px;width:260px}.light-veil{height:75%}.study-footer{align-items:flex-start}.scene-controls{gap:8px}}
@media(prefers-reduced-motion:reduce){.scene-controls button,.scene-controls summary,.motion-toggle{transition:none}}
@media(prefers-reduced-motion:reduce){.fabric .motion-toggle{display:block}.fabric.motion-opt-in video{display:block}}
/* Angle the textile plate and its animated counterpart together; keep UI level. */
.fabric{overflow:hidden}
.fabric .art{transform:translateY(-4%) rotate(10deg) scale(1.3);transform-origin:50% 42%}
@media(max-width:700px){.fabric .art{transform:translateY(-3%) rotate(9deg) scale(1.3);transform-origin:50% 40%}}
/* Revision 6: composition comes from the plate; the copy has an opaque safe area. */
.fabric .art{transform:none;mask-image:linear-gradient(#000 0%,#000 85%,transparent 100%)}
.fabric .copy{max-width:440px;background:#1d2f4e;box-shadow:0 0 42px 32px #1d2f4e}
.fabric .copy h1{font-size:clamp(42px,4.65vw,72px)}
.fabric::after{display:none}.fabric .fabric-light,.fabric .light-veil{display:none}
@media(max-width:700px){.fabric{min-height:100svh;padding-bottom:90px}.fabric .art{height:48%;object-position:72% center;transform:none;mask-image:linear-gradient(#000 65%,transparent 100%)}.fabric .copy{max-width:100%;box-shadow:0 0 28px 24px #1d2f4e}.fabric .copy h1{font-size:clamp(38px,10vw,54px)}}
