/* React Bits-inspired effects, translated into the site's native DOM stack. */
.tech-title{touch-action:pan-y;position:relative;overflow:visible}
.tech-title .tech-line{display:block;white-space:nowrap}
.tech-glyph{position:relative;display:inline-block;white-space:pre;transform-origin:50% 85%}
.tech-solid{position:relative;display:block;transition:color .22s ease,text-shadow .22s ease}
.tech-glyph::after{content:attr(data-char);position:absolute;inset:0;color:transparent;-webkit-text-stroke:1px var(--ink);text-shadow:none;opacity:0;transition:opacity .22s ease;pointer-events:none}
.tech-glyph.is-active .tech-solid{color:transparent;text-shadow:none;-webkit-text-stroke:0 transparent}
.tech-glyph.is-active::after{opacity:.95}
.matte-title.tech-title::after{display:none}
.tech-frame{position:absolute;inset:4% -4% 3%;border:1px dashed rgba(75,77,71,.55);opacity:0;pointer-events:none;transition:opacity .18s ease;transform:skewX(8deg)}
.tech-frame::before,.tech-frame::after{content:"";position:absolute;width:4px;height:4px;border:1px solid var(--ink);background:var(--paper)}
.tech-frame::before{left:-3px;top:-3px;box-shadow:15px -9px 0 -1px #8b8d86}
.tech-frame::after{right:-3px;bottom:-3px;box-shadow:9px 7px 0 -1px #9ea099}
.tech-glyph.is-active .tech-frame{opacity:.8}
.tech-title:focus-visible{outline:1px dashed #7c7e77;outline-offset:12px}
.tech-title{cursor:default}
.contact h2.tech-title{line-height:1.05}
.ac-ready{opacity:0;translate:0 48px}
.edge-host{position:relative}
.header.edge-host{position:fixed}
.orbit-control.edge-host{position:absolute}
.portrait-frame.edge-host{position:sticky}
.edge-trace{position:absolute;inset:-1px;z-index:9;pointer-events:none;border-radius:inherit;opacity:var(--edge-power,0);transition:opacity .4s ease}
.edge-trace::before,.edge-trace::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:conic-gradient(from var(--edge-angle,0deg),#fff 0%,#70746a 4%,rgba(122,125,117,.18) 10%,transparent 16% 84%,rgba(122,125,117,.18) 90%,#fff 97%);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor}
.edge-trace::after{inset:-3px;filter:blur(4px);opacity:.55;padding:3px}
.header>.edge-trace{border-radius:0;inset:0}
.edge-host:focus-visible>.edge-trace{opacity:.85}
.edge-host:focus-visible{--edge-angle:30deg}
.edge-host:focus-within>.edge-trace{opacity:.75}
html[data-motion-paused=true] .ac-ready{opacity:1;translate:none}
@media(max-width:700px){.contact h2.tech-title{font-size:12.2vw}.portrait-frame.edge-host{position:relative}.tech-glyph::after{-webkit-text-stroke:.7px var(--ink)}.tech-frame{border-color:rgba(75,77,71,.4)}.tech-frame::before,.tech-frame::after{width:3px;height:3px}.ac-ready{translate:0 30px}}
@media(prefers-reduced-motion:reduce){.tech-solid,.tech-glyph::after,.tech-frame,.edge-trace{transition:none}.ac-ready{opacity:1;translate:none}html{scroll-behavior:auto}}

