/* Object motion is confined to the photographed scene. */
#printer-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;transition:opacity .65s var(--ease-arrive)}
:root[data-mode=print] #printer-canvas.is-ready{opacity:1}
.scene-print{transform:none}
.review{position:relative}.review-controls{min-width:175px}.review-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ink);transform:scaleX(var(--review-progress,0));transform-origin:left;opacity:.45;transition:transform .25s linear}
.services-stories{padding:var(--section-space) 0;border-top:1px solid var(--line)}
.services-stage{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.7fr);gap:48px;align-items:center}
.services-intro h2{font-size:clamp(36px,3.35vw,48px);line-height:1.13;letter-spacing:-.035em;max-width:14ch;text-wrap:balance}
.services-intro>p{font-size:17px;line-height:1.7;color:var(--dim);margin:25px 0 30px;max-width:35ch}
.story-source{display:inline-flex;align-items:center;gap:10px;font-size:14px;min-height:44px;border-bottom:1px solid var(--line)}
.story-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;min-width:0}
.story-card{position:relative;display:block;aspect-ratio:9/16;width:100%;border:0;padding:0;border-radius:16px;overflow:hidden;background:var(--ink);color:#fffaf5;cursor:pointer;isolation:isolate;text-align:left;transform:translateY(0);transition:transform .45s var(--ease-arrive),box-shadow .45s var(--ease-arrive)}
.story-card:nth-child(2){margin-top:28px}.story-card video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:filter .45s;filter:brightness(.88)}
.story-card:after{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,#14120d45,transparent 40%,#14120dbd)}
.story-card:hover,.story-card:focus-visible{transform:translateY(-6px);box-shadow:0 15px 30px -22px var(--ink)}.story-card.is-playing video{filter:brightness(1)}
.story-top{position:absolute;z-index:2;top:20px;left:14px;right:14px;display:flex;align-items:center;gap:7px;font-size:10px;letter-spacing:.06em}
.story-top svg{width:25px;height:25px;border:1px solid #fff7;padding:5px;border-radius:50%}
.story-timeline{position:absolute;left:14px;right:14px;top:11px;height:2px;background:#fff6;z-index:2}.story-timeline:after{content:'';position:absolute;inset:0;background:#fff;transform:scaleX(var(--story-progress,0));transform-origin:left;transition:transform .2s linear}
.story-bottom{position:absolute;z-index:2;bottom:20px;left:15px;right:15px;display:flex;flex-direction:column;gap:15px}
.story-bottom strong{font-size:clamp(16px,1.55vw,23px);line-height:1.18;font-weight:400;letter-spacing:-.02em;max-width:12ch}
.story-play{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.story-play svg{height:36px;width:36px;border:1px solid #fff9;border-radius:50%;padding:10px;background:#fff1}
.story-card.is-playing .story-play svg{opacity:.4}.story-hint{margin-top:20px;font-size:14px;line-height:1.6;color:var(--dim)}.story-hint-touch{display:none}
.services-stories .services-content{padding:40px 0 0}.services-stories .services-content>p{font-size:17px;line-height:1.7;max-width:88ch;color:var(--dim)}
.services-stories .services-columns{margin-top:30px;gap:35px}.services-stories .services-columns article{border-top:1px solid var(--line);padding-top:22px}.services-stories .services-columns h3{font-size:25px;line-height:1.2;margin-bottom:15px}.services-stories .services-columns p{font-size:16px;line-height:1.75}.services-stories .text-link{font-size:15px;margin-top:18px;min-height:44px}
.story-dialog{padding:0;border:0;border-radius:16px;background:#201e1a;color:#fffaf5;max-width:min(420px,94vw);width:fit-content;overflow:visible}.story-dialog::backdrop{background:#18140fcf;backdrop-filter:blur(7px)}
.story-dialog video{display:block;width:auto;height:min(72svh,700px);max-width:92vw;aspect-ratio:9/16;border-radius:16px 16px 0 0;background:#18140f}.story-dialog footer{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;gap:20px}.story-dialog-title{font-size:16px;line-height:1.4}.story-close{width:44px;height:44px;border:1px solid #fff6;border-radius:50%;background:transparent;color:inherit;flex-shrink:0;display:grid;place-items:center}.story-close svg{rotate:45deg}
@media(max-width:1050px){.services-stage{grid-template-columns:1fr;gap:32px}.services-intro{display:grid;grid-template-columns:1fr 1fr;gap:15px 35px}.services-intro h2{grid-row:1/3;max-width:19ch}.services-intro>p{margin:0}.story-source{width:fit-content}.story-rail{max-width:810px}.story-card{max-height:450px}.story-bottom strong{font-size:24px}.story-top{font-size:12px}}
@media(max-width:600px){.services-intro{display:block}.services-intro h2{font-size:37px;max-width:18ch}.services-intro>p{font-size:16px;max-width:none;margin:20px 0 18px}.story-rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding:0 0 15px}.story-card{flex:0 0 72%;max-height:none;scroll-snap-align:start}.story-card:nth-child(2){margin-top:0}.story-bottom strong{font-size:25px}.story-top{font-size:11px}.story-hint-desktop{display:none}.story-hint-touch{display:inline}.services-stories .services-columns{display:flex;overflow:auto;scroll-snap-type:x mandatory;gap:22px}.services-stories .services-columns article{flex:0 0 88%;scroll-snap-align:start}.services-stories .services-content{padding-top:25px}.services-stories .services-content>p{font-size:16px}.review-controls{min-width:0}.review-controls #review-toggle{order:1}.review-controls #review-prev{order:2}.review-controls #review-next{order:3}.story-dialog video{height:min(70svh,620px)}}
@media(prefers-reduced-motion:reduce){.story-card:hover,.story-card:focus-visible{transform:none}.review-progress{transition:none}}


#cup-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;transition:opacity .65s var(--ease-arrive)}:root:not([data-mode=print]) #cup-canvas.is-ready{opacity:1}
.review blockquote{font-style:italic;position:relative;font-size:19px;line-height:1.75}.review-full{display:block;opacity:0}.review-typed{position:absolute;inset:0}.review-typed:after{content:'';display:inline-block;width:1px;height:1em;background:currentColor;vertical-align:-.1em;margin-left:3px;opacity:0}.is-typing .review-typed:after{opacity:.65}@media(max-width:800px){.review blockquote{font-size:17px;line-height:1.75}}
