/* A thread, a gesture, a change of light. All content remains available without motion. */
.atelier-cursor,.cursor-thread{position:fixed;inset:0 auto auto 0;pointer-events:none;z-index:20000;opacity:0}
.atelier-cursor{width:0;height:0;color:#f0d6a3;transition:opacity .18s}
.cursor-thread{width:100%;height:100%;overflow:hidden;transition:opacity .18s}
.cursor-thread path{fill:none;stroke:#c3a878;stroke-width:1;opacity:.65}
.cursor-ring{position:absolute;left:-19px;top:-19px;width:38px;height:38px;border:1px solid #d1b682b3;border-radius:50%;transition:width .35s,height .35s,left .35s,top .35s,background .35s,border-color .35s;box-shadow:0 0 1px #16160e;display:grid;place-items:center}
.cursor-dot{position:absolute;width:4px;height:4px;left:-2px;top:-2px;background:#e4cca0;border:1px solid #5c4b2c;border-radius:50%}
.cursor-label{font:500 9px/1 var(--sans,sans-serif);letter-spacing:.16em;opacity:0;transition:opacity .2s}
.atelier-cursor[data-mode=feel] .cursor-ring,.atelier-cursor[data-mode=view] .cursor-ring{width:76px;height:76px;left:-38px;top:-38px;background:#161711b3;border-color:#dfc999aa;backdrop-filter:blur(3px)}
.atelier-cursor[data-mode=feel] .cursor-label,.atelier-cursor[data-mode=view] .cursor-label{opacity:1}
.atelier-cursor[data-mode=link] .cursor-ring{width:52px;height:52px;left:-26px;top:-26px;background:#b9a16c18;border-color:#d3b577}
.atelier-cursor.is-pressed .cursor-ring{scale:.85}
.atelier-magnetic{translate:var(--magnet-x,0px) var(--magnet-y,0px)}
.fabric-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;transition:opacity .5s}
.material-photos.fabric-ready .fabric-canvas{opacity:1}
body:not(.no-motion) .material-photos.fabric-ready:hover img.selected{transform:none}
.material-photos.fabric-ready:after{z-index:2}
.fabric-invitation{position:absolute;left:1.2rem;right:1.2rem;bottom:1.2rem;z-index:3;display:flex;align-items:center;gap:.75rem;pointer-events:none;color:#f6edda;text-shadow:0 1px 8px #000;transition:opacity .6s;font-size:.625rem;letter-spacing:.16em;text-transform:uppercase}
.fabric-invitation:before{content:'';width:27px;height:1px;background:currentColor}
.fabric-invitation span{padding:.65rem .8rem;background:#14150f75;backdrop-filter:blur(8px)}
.material-photos.fabric-touched .fabric-invitation{opacity:0}
.fabric-invitation .touch-invitation{display:none}
.material-photos:not(.fabric-ready) .fabric-invitation{display:none}
.material-photos{touch-action:pan-y}
.stitch-track.thread-ready{width:26px;margin-left:-13px;background:none}
.thread-ready .stitch-fill,.thread-ready .stitch-needle{display:none}
.sewn-thread{width:100%;height:100%;overflow:visible;fill:none}
.sewn-thread .thread-guide{stroke:#b9a16c24;stroke-width:1}
.sewn-thread .thread-live{stroke:#cfb37a;stroke-width:1.2}
.sewn-thread .thread-stitches{stroke:#d5bc8580;stroke-width:1}
.sewn-thread .thread-eye{fill:#ead7b1;stroke:none;filter:drop-shadow(0 0 5px #cbb27a)}
.scene-seam{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0}
.scene-seam:before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:#dac493;box-shadow:0 0 18px #dbc08770}
.scene-seam:after{content:'';position:absolute;top:-26px;height:26px;left:0;right:0;background:linear-gradient(transparent,#b9a16c20)}
.scene-progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:#e4cca322;z-index:3;pointer-events:none}
.scene-progress:after{content:'';display:block;height:100%;background:#d5bd88;transform:scaleX(var(--chapter-progress,0));transform-origin:left}
.story-dots button{position:relative}
.story-dots button:after{content:'';position:absolute;left:0;bottom:0;height:1px;width:100%;background:#d5bd88;transform:scaleX(0);transform-origin:left;transition:transform .5s}
.story-dots button.active:after{transform:scaleX(1)}
.woven-line.thread-intro{width:78px;height:85px;background:none;overflow:visible}
.thread-intro>span{display:none}
.thread-intro svg{width:100%;height:100%;overflow:visible;fill:none;stroke:#a78a50;stroke-width:1}
.thread-intro .intro-guide{opacity:.16}
.thread-intro .intro-gold{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--intro-progress,1))}
@media(hover:hover) and (pointer:fine){
  body.cursor-active,body.cursor-active a,body.cursor-active button,body.cursor-active .material-photos{cursor:none}
  body.cursor-active .atelier-cursor,body.cursor-active .cursor-thread{opacity:1}
}
@media(hover:none),(pointer:coarse){
  .atelier-cursor,.cursor-thread{display:none}
  .fabric-invitation .mouse-invitation{display:none}
  .fabric-invitation .touch-invitation{display:inline}
  .atelier-magnetic{translate:none}
}
@media(max-width:650px){
  .fabric-invitation{left:.9rem;right:.9rem;bottom:.9rem;letter-spacing:.1em}
  .woven-line.thread-intro{width:56px;height:48px;margin-bottom:1rem}
  .stitch-track.thread-ready{width:20px;margin-left:-10px}
}
.no-motion .atelier-cursor,.no-motion .cursor-thread,.no-motion .fabric-canvas,.no-motion .fabric-invitation,.no-motion .scene-seam,.no-motion .scene-progress,.no-motion .thread-eye{display:none}
.no-motion .atelier-magnetic{translate:none}
.no-motion .thread-live,.no-motion .intro-gold{stroke-dashoffset:0!important}
@media(prefers-reduced-motion:reduce){
  .atelier-cursor,.cursor-thread,.fabric-canvas,.fabric-invitation,.scene-seam,.scene-progress,.thread-eye{display:none}
  .atelier-magnetic{translate:none}
  .thread-live,.intro-gold{stroke-dashoffset:0!important}
}
