/* SOMA motion */
.brand-cross{display:inline-block;background:var(--accent);color:var(--ink);line-height:.9;padding:0 .08em;letter-spacing:0}
.reading-progress{position:fixed;inset:0 0 auto;height:4px;background:var(--ink);z-index:100;pointer-events:none;transform:scaleX(0);transform-origin:left}
.project-stage>a,.project-pair figure>a{position:relative}
.project-peek{position:absolute;right:20px;bottom:20px;display:flex;align-items:center;gap:16px;padding:12px 18px;background:var(--accent);color:var(--ink);font-size:15px;font-weight:700;pointer-events:none}
.project-peek svg{width:20px;height:20px}
@media(hover:hover) and (pointer:fine){
.project-peek{opacity:0;transform:translateY(12px)}
.project-stage>a:hover .project-peek,.project-pair figure>a:hover .project-peek,.project-stage>a:focus-visible .project-peek,.project-pair figure>a:focus-visible .project-peek{opacity:1;transform:none}
}
@media(prefers-reduced-motion:no-preference){
.project-stage img{transition:transform .6s cubic-bezier(.16,1,.3,1)}
.project-stage>a:hover img{transform:scale(1.025)}
.project-peek{transition:opacity .2s,transform .3s cubic-bezier(.16,1,.3,1)}
.button:not(:disabled){background-image:linear-gradient(var(--accent),var(--accent));background-size:0% 100%;background-repeat:no-repeat;transition:background-size .3s cubic-bezier(.16,1,.3,1),color .18s,transform .18s}
.button:not(:disabled):hover{background-color:var(--ink);background-size:100% 100%;color:var(--ink)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reading-progress{display:none}.project-peek{transform:none}}
@keyframes soma-screen{from{clip-path:inset(0 100% 0 0);transform:translateX(16px)}to{clip-path:inset(0);transform:none}}
@media(prefers-reduced-motion:no-preference){
.hero-work>a{animation:soma-screen .75s cubic-bezier(.16,1,.3,1) both}
.button,.header-cta,.project-names button{transition:background-color .18s,color .18s,transform .18s}
.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(1px)}
.project-pair img,.award-gallery img{transition:transform .45s cubic-bezier(.16,1,.3,1)}
.project-pair a:hover img{transform:scale(1.025)}
.award-gallery a:hover img{transform:translateY(-4px)}
.process{position:relative}
.process::before{content:"";position:absolute;top:-2px;left:0;width:100%;height:3px;background:var(--ink);transform:scaleX(var(--process-progress,0));transform-origin:left;pointer-events:none}
}

/* Fixed glyph geometry preserves the approved heading size during decoding. */
.decode-word{display:inline-block;white-space:nowrap}
.decode-char{display:inline-block;position:relative}
.decode-char.decoding{color:transparent}
.decode-char.decoding::after{content:attr(data-glyph);position:absolute;inset:0;color:var(--ink);text-align:center;overflow:hidden}
@media(prefers-reduced-motion:reduce){.decode-char.decoding{color:inherit}.decode-char.decoding::after{display:none}}
