/* Interaction finish: restrained motion, clear feedback, readable wrapping. */
h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.page-hero p,.editorial-item p{max-width:65ch}
.nav-links a{position:relative}.nav-links a:after{content:"";position:absolute;bottom:7px;left:0;width:100%;height:1px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}.nav-links a:hover:after,.nav-links a[aria-current=page]:after{transform:scaleX(1)}
.button{transition:background .2s,border-color .2s,scale .25s var(--ease)}.button:focus-visible,.text-link:focus-visible{outline-offset:4px}.button .arrow{transition:transform .25s var(--ease)}
.work-image:before,.work-image:after{content:"";position:absolute;z-index:1;width:24px;height:24px;border-color:var(--green);border-style:solid;pointer-events:none;transition:transform .35s var(--ease),opacity .25s;opacity:0}.work-image:before{left:12px;top:12px;border-width:1px 0 0 1px;transform:translate(-5px,-5px)}.work-image:after{right:12px;bottom:12px;border-width:0 1px 1px 0;transform:translate(5px,5px)}.work-image:is(:hover,:focus-visible):before,.work-image:is(:hover,:focus-visible):after{opacity:1;transform:translate(0)}.work-image span{transition:background .2s,color .2s,transform .25s}.work-image:is(:hover,:focus-visible) span{background:var(--green);color:var(--bg);transform:translateY(-3px)}
.letter-entry{position:relative;padding-right:30px}.letter-entry:after{content:"↗";position:absolute;right:4px;top:29px;color:var(--muted);transition:transform .25s,color .25s}.letter-entry:is(:hover,:focus-visible):after{color:var(--green);transform:translate(3px,-3px)}.letter-entry h3{transition:color .2s}.letter-entry[hidden]{display:none}
.search-empty{padding:32px 0;border-top:1px solid var(--line);max-width:500px}.search-empty h3{margin-bottom:12px}.search-empty button{margin-top:20px}.search-empty[hidden]{display:none}
.contact-form input,.contact-form textarea,.letter-search input{border-radius:3px;transition:border-color .2s,background .2s}.contact-form label:focus-within{color:var(--green)}.contact-form :is(input,textarea):focus,.letter-search input:focus{border-color:var(--green);outline:2px solid #76fb5633;outline-offset:2px;background:#11150f}.contact-form textarea{min-height:135px;resize:vertical}.contact-form [aria-invalid=true]{border-color:#ffb9a8}.field-error{display:block;color:#ffb9a8;font-size:12px;line-height:1.5;margin-top:7px}.form-result:not(:empty){border-left:2px solid var(--green);padding:12px 16px;background:#151b12;color:var(--text)}
.reading-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;z-index:8;pointer-events:none}.reading-meta{font:10px Mono,monospace;color:var(--muted);margin-top:20px}.reading [id]{scroll-margin-top:40px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.mobile-nav.is-open a{animation:menu-enter .3s var(--ease) both}.mobile-nav.is-open a:nth-child(2){animation-delay:25ms}.mobile-nav.is-open a:nth-child(3){animation-delay:50ms}.mobile-nav.is-open a:nth-child(4){animation-delay:75ms}.mobile-nav.is-open a:nth-child(5){animation-delay:100ms}}
@keyframes menu-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(hover:none){.button{scale:1!important}.work-image:before,.work-image:after{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}.button{scale:1!important}.work-image img{scale:1!important}}

/* Creator voices: full quotes, varied scale, no automatic rotation. */
.voices-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:44px}.voices-heading .mono{color:var(--green);margin-bottom:14px}.voices-heading>p{font-size:14px}.creator-quotes{display:grid;grid-template-columns:1.2fr 1fr;gap:64px}.creator-quote{margin:0;padding:32px 0 0;border-top:1px solid var(--line);min-width:0}.quote-mark{display:block;font-size:76px;line-height:.7;color:var(--green);margin-bottom:24px}.creator-quote blockquote{margin:0;font-size:clamp(23px,2.4vw,34px);line-height:1.32;letter-spacing:-.025em;text-wrap:pretty}.creator-quote em{font-style:normal;color:var(--green)}.creator-quote figcaption{margin-top:28px;display:flex;flex-direction:column;gap:8px;font-size:14px}.creator-quote figcaption>a{align-self:flex-start;min-height:30px;border-bottom:1px solid #51554c}.creator-quote figcaption>a:hover{color:var(--green)}.creator-quote figcaption>span{color:var(--muted);font:10px Mono,monospace}.creator-quote:nth-child(2){margin-top:85px}.page-creators .editorial-item{counter-increment:creator-service}.page-creators .editorial-item h3:before{content:"0" counter(creator-service) " / ";font:11px Mono,monospace;color:var(--green);letter-spacing:0;vertical-align:middle;margin-right:10px}
@media(min-width:1000px){.page-creators .section-split>div:first-child{position:sticky;top:40px;align-self:start}}
@media(max-width:760px){.creator-quotes{grid-template-columns:1fr;gap:38px}.creator-quote:nth-child(2){margin-top:0}.voices-heading{display:block;margin-bottom:30px}.voices-heading>p{margin-top:15px}.creator-quote blockquote{font-size:26px}.quote-mark{font-size:62px;margin-bottom:18px}.creator-quote{padding-top:24px}}
@keyframes editorial-enter{from{opacity:.6;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){[data-enter].has-entered{animation:editorial-enter .5s var(--ease) both}}

/* Gameplay montage with a real wordmark end card. */
.launch-reel{isolation:isolate;background:#0c100c}.launch-reel .reel-clip{transition:opacity .3s;transform-origin:50% 50%}.launch-reel .reel-clip.is-active{animation:reel-shot 3.2s ease-out both}.reel-brand{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:36px;background:radial-gradient(ellipse at center,#1c2b18 0%,#0a0a0a 70%);opacity:0;z-index:2;transition:opacity .35s;pointer-events:none}.reel-logo{width:min(64%,660px);height:auto;opacity:0}.reel-brand-line{width:100%;height:1px;background:linear-gradient(90deg,transparent,#76fb5666,transparent);transform:scaleX(0)}.is-brand .reel-brand{opacity:1}.is-brand .reel-logo{animation:brand-reveal 1s var(--ease) .12s both}.is-brand .reel-brand-line{animation:brand-rule .85s var(--ease) both}.reel-sweep{position:absolute;inset:-5% -25%;pointer-events:none;z-index:3;opacity:0;background:linear-gradient(110deg,transparent 43%,#0a0a0a 43.2%,#0a0a0a 53%,#76fb56 53.2%,#76fb56 53.5%,transparent 53.7%);transform:translateX(-100%)}.is-cut .reel-sweep{animation:reel-wipe .65s var(--ease) both}.launch-reel[data-cut="1"] .reel-sweep{animation-direction:reverse}.launch-reel .reel-clip[data-kind="board"].is-active{animation:reel-product 3.2s ease-out both}
@keyframes reel-wipe{0%{opacity:1;transform:translateX(-100%)}85%{opacity:1}100%{opacity:0;transform:translateX(100%)}}
@keyframes reel-shot{from{transform:scale(1.075)}to{transform:scale(1)}}
@keyframes reel-product{from{transform:scale(1.02) translateX(-1%)}to{transform:scale(1.065) translateX(0)}}
@keyframes brand-reveal{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(10px) scale(.96)}40%{opacity:1}100%{opacity:1;clip-path:inset(0);transform:none}}
@keyframes brand-rule{to{transform:scaleX(1)}}
@media(max-width:760px){.reel-brand{gap:25px}.reel-logo{width:80%}}
@media(prefers-reduced-motion:reduce){.launch-reel .reel-clip{display:none}.reel-brand{opacity:1}.reel-logo{opacity:1;transform:none;clip-path:none}.reel-brand-line{transform:scaleX(1)}.reel-sweep{display:none}}

.reel-client{position:absolute;bottom:20px;left:22px;z-index:1;background:#0a0a0ae6;color:var(--text);padding:10px 14px;font:11px Mono,monospace;opacity:0;transition:opacity .25s;pointer-events:none}.reel-client span{color:var(--green)}.has-client .reel-client{opacity:1}.reel-clip[data-kind="board"]{object-fit:contain;background:#eaf0ef}@media(max-width:760px){.reel-client{bottom:10px;left:10px;font-size:8px;padding:8px 10px}}

.reel-bolt{transform-box:fill-box;transform-origin:center}.is-brand .reel-bolt{animation:bolt-charge 1.25s cubic-bezier(.2,.75,.25,1) 1.2s both}@keyframes bolt-charge{0%,100%{transform:translate(0,0) rotate(0);filter:none}28%{transform:translate(3px,-7px) rotate(-4deg);filter:drop-shadow(0 0 5px #76fb5670)}48%{transform:translate(-2px,4px) rotate(2deg);filter:drop-shadow(0 0 2px #76fb5640)}70%{transform:translate(1px,-2px) rotate(-1deg);filter:none}}

.more-work{margin-top:48px;border-top:1px solid var(--line)}.more-work>.mono{color:var(--muted);padding:22px 0 8px}.more-work a{display:grid;grid-template-columns:112px 1fr auto;gap:24px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.more-work img{width:112px;aspect-ratio:16/9;object-fit:cover}.more-work strong{font-size:20px;font-weight:500;letter-spacing:-.025em}.more-work p{font-size:13px;margin-top:5px}.more-work .arrow{color:var(--green)}.more-work a:hover strong{color:var(--green)}@media(max-width:760px){.more-work a{grid-template-columns:72px 1fr auto;gap:12px}.more-work img{width:72px}.more-work strong{font-size:16px}.more-work p{font-size:11px}}

/* Contact: one conversation at a time. */
.contact-page .page-hero{padding-bottom:28px}.contact-paths{gap:8px;flex-wrap:wrap;margin-top:30px}.contact-paths a{padding:13px 22px;border:1px solid var(--line);border-radius:4px;color:var(--muted);transition:background .2s,color .2s,border-color .2s}.contact-paths a:hover{color:var(--text);border-color:#747b6c}.contact-paths a[aria-selected="true"]{color:var(--text);background:#20271b;border-color:var(--green)}.contact-page [role="tabpanel"][hidden]{display:none}.contact-page [role="tabpanel"]{padding-top:42px}.contact-page .contact-form{max-width:620px}.contact-page .section-split h2{font-size:clamp(30px,3.5vw,42px)}
@media(max-width:760px){.contact-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.contact-paths a{padding:13px 5px;text-align:center;font-size:12px}.contact-page .page-hero{padding-top:35px}.contact-page .page-hero h1{font-size:clamp(34px,7vw,52px)}}

/* Mobile reel: preserve the complete shot and keep credits outside the footage. */
@media(max-width:760px){
 .launch-reel{aspect-ratio:auto;padding-bottom:40px;background:#0a0a0a}
 .launch-reel:before{content:"";display:block;aspect-ratio:16/9}
 .launch-reel .reel-clip{height:calc(100% - 40px);object-fit:contain;object-position:center;background:#0a0a0a}
 .launch-reel .reel-clip.is-active{animation:none;transform:none}
 .launch-reel .reel-client{inset:auto 0 0;min-height:40px;display:flex;align-items:center;gap:6px;padding:10px 0;font-size:10px;line-height:1.4;background:#0a0a0a;flex-wrap:wrap}
 .launch-reel .reel-brand{bottom:40px}
 .launch-reel .reel-sweep{bottom:40px}
 .launch-reel .reel-logo{width:78%}
}

.contact-form .form-guide{font-size:12px;margin-bottom:22px;color:var(--muted)}.contact-form .field-hint{font-size:11px;color:var(--muted);font-weight:400}.contact-form .form-note a{text-decoration:underline;text-underline-offset:3px}.contact-form .form-result .text-link{display:flex;margin-top:14px;color:var(--green);min-height:44px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#8a9084;opacity:1}.contact-form textarea{min-height:150px}.contact-form .form-note{max-width:420px;line-height:1.6}
@media(max-width:760px){.contact-form input,.contact-form textarea{font-size:16px}.contact-form .button{width:100%;justify-content:space-between;min-height:48px}}
