.rail{--rail-w:clamp(120px, 11vw, 240px);padding-left:calc(var(--rail-w) + var(--space-xl));position:relative}.rail-line,.rail-progress{top:0;bottom:0;left:var(--rail-w);pointer-events:none;width:1px;position:absolute}.rail-line{background:var(--color-line)}.rail-progress{background:var(--color-muted);transform-origin:top;transform:scaleY(0)}.rail-nav{width:var(--rail-w);height:100%;position:absolute;top:0;left:0}.rail-nav:not(.is-ready){visibility:hidden}.rail-link{width:100%;color:var(--color-muted);font-size:var(--text-xs);text-transform:uppercase;white-space:nowrap;will-change:transform;align-items:center;padding-block:6px;line-height:1;text-decoration:none;transition:color .3s;display:flex;position:absolute;top:0;left:0}.rail-link:hover,.rail-link.is-active{color:var(--color-text)}.rail-tick{background:var(--color-muted);width:5px;height:5px;transition:background-color .3s ease, scale .3s var(--ease-out);margin-left:auto;translate:50%}.rail-link.is-active .rail-tick{background:var(--color-accent);scale:1.6}@media (max-width:900px){.rail{padding-left:0}.rail-line,.rail-progress,.rail-nav{display:none}}
.line-art{aspect-ratio:1;width:100%;height:auto;color:var(--color-muted);transition:color .35s;display:block;overflow:visible}.line-art *{stroke:currentColor;stroke-width:1px;vector-effect:non-scaling-stroke}
.section-header{justify-content:space-between;align-items:flex-end;gap:var(--space-m);width:100%;display:flex}.section-title{font-size:var(--h2-size);white-space:pre-wrap}.section-action{flex-shrink:0}
.hero-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}
.tech-tip{z-index:5;opacity:0;pointer-events:none;transition:opacity .2s ease, transform .35s var(--ease-out);background:#050505;border:1px solid #2a2a2a;border-radius:4px;padding:8px;position:absolute;top:0;left:0;box-shadow:0 16px 32px #0009}.tech-tip.is-on{opacity:1}.tech-tip.is-jump{transition:none}.tech-tip-canvas{width:72px;height:72px;display:block}@media (prefers-reduced-motion:reduce){.tech-tip{transition:opacity .2s}}
.arc-shell{margin-inline:calc(var(--gutter) * -1);position:relative}.arc{--arc-radius:2800px;--arc-gap:clamp(28px, 3vw, 64px);--arc-card-width:clamp(250px, 27vw, 460px);outline-offset:-4px;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;position:relative}.arc-viewport{opacity:0;width:100%;min-height:300px;transition:opacity .3s;position:relative;overflow:hidden}.arc.is-ready .arc-viewport{opacity:1}.arc-ring{width:var(--arc-card-width);margin-left:calc(var(--arc-card-width) / -2);position:absolute;top:0;left:50%}.arc-slot{width:100%;transform-origin:50% var(--arc-radius);will-change:transform;position:absolute;top:0;left:0}.arc.is-ready{cursor:grab}.arc.is-dragging{cursor:grabbing}.arc a,.arc img{-webkit-user-drag:none}.project-card{flex-direction:column;display:flex}.project-card-tags{justify-content:space-between;gap:var(--space-m);padding-bottom:var(--space-xs);font-size:var(--text-xs);line-height:1.1;display:flex}.project-card-media{perspective:600px}.project-card-cover{transform-style:preserve-3d;will-change:transform;display:block}.project-card-surface{aspect-ratio:1724/964;border:1px solid var(--color-muted);border-radius:var(--radius);background:#111;display:block;overflow:hidden}.project-card-surface img{object-fit:cover;width:100%;height:100%}.project-card-text{gap:var(--space-xs);padding-top:var(--space-card);font-size:var(--text-sm);flex-direction:column;display:flex}.project-card-title{font-size:var(--text-sm);font-weight:700}.project-card-title a{text-decoration:none}.project-card-title a:hover{text-decoration:underline}.project-card-summary{line-height:1.25}.project-card-stack{color:var(--color-grey)}.project-card-link{text-underline-offset:.18em;align-self:flex-start;text-decoration:underline}.project-card-link:hover{color:var(--color-accent)}@media (max-width:1100px){.arc{--arc-radius:3600px;--arc-card-width:clamp(260px, 38vw, 400px);--arc-gap:48px}}@media (max-width:768px){.arc{--arc-radius:3200px;--arc-card-width:clamp(240px, 74vw, 360px);--arc-gap:44px}}
