.deferred-lanyard-gate{isolation:isolate;width:100%;height:100%;position:relative}.deferred-lanyard-gate>.lanyard-fallback{z-index:1;aspect-ratio:5/7;background:#070b09;border:1px solid #c8ff0061;border-radius:14px;width:min(190px,42vw);position:absolute;top:50%;left:50%;overflow:visible;transform:translate(-50%,-44%)rotate(5deg);box-shadow:0 30px 70px #00000057,0 0 38px #147cff1a}.deferred-lanyard-gate>.lanyard-fallback:before{content:"";z-index:-2;background:repeating-linear-gradient(0deg,#0000 0 11px,#c8ff0047 11px 13px),linear-gradient(#111713,#c8ff00);border-radius:9px 9px 0 0;width:9px;height:35vh;position:absolute;bottom:calc(100% - 3px);left:50%;transform:translate(-50%);box-shadow:0 0 18px #c8ff0029}.deferred-lanyard-gate>.lanyard-fallback:after{content:"";z-index:-1;background:#202722;border:5px solid #828982;border-bottom-width:8px;border-radius:9px 9px 5px 5px;width:34px;height:25px;position:absolute;top:-17px;left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 2px #111713}.deferred-lanyard-gate>.lanyard-fallback img{object-fit:contain;border-radius:inherit;width:100%;height:100%;display:block}@media (width<=768px){.deferred-lanyard-gate>.lanyard-fallback{width:min(168px,46vw)}}@media (prefers-reduced-motion:reduce){.deferred-lanyard-gate>.lanyard-fallback{transition:none}}.hover-expand-gallery-nav{z-index:1;width:100%;position:relative}.hover-expand-gallery{gap:clamp(8px,.85vw,16px);width:100%;height:min(56vh,520px);min-height:360px;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.hover-expand-item{flex:1;min-width:0;transition:flex-grow .52s cubic-bezier(.2,.75,.2,1);position:relative}.hover-expand-card{color:#fff;isolation:isolate;background:#07100c;border:1px solid #ffffff29;border-radius:6px;width:100%;height:100%;transition:border-color .32s,box-shadow .32s;display:block;position:relative;overflow:hidden;box-shadow:0 20px 54px #00000047}.hover-expand-item:has(.hover-expand-card:is(:hover,:focus-visible)){flex-grow:2.2}.hover-expand-gallery:has(.hover-expand-card:hover){isolation:isolate}.hover-expand-gallery .hover-expand-card:is(:hover,:focus-visible){border-color:#c8ff00b8;outline:none;box-shadow:0 26px 68px #0000006b}.hover-expand-card img{object-fit:cover;pointer-events:none;width:100%;height:100%;transition:transform .52s cubic-bezier(.2,.75,.2,1)}.hover-expand-card:is(:hover,:focus-visible) img{transform:scale(1.065)}.hover-expand-shade,.hover-expand-number,.hover-expand-copy,.hover-expand-arrow{pointer-events:none}.hover-expand-shade{background:linear-gradient(#00000047,#0000002e 40%,#000000d1);transition:opacity .42s;position:absolute;inset:0}.hover-expand-card:hover .hover-expand-shade,.hover-expand-card:focus-visible .hover-expand-shade{opacity:.58}.hover-expand-number{z-index:2;color:#c8ff00;font:800 11px/1 var(--font-geist-mono), monospace;letter-spacing:.08em;position:absolute;top:16px;left:16px}.hover-expand-copy{z-index:2;opacity:.8;min-width:0;transition:transform .42s,opacity .32s;position:absolute;bottom:20px;left:16px;right:16px;transform:translateY(6px)}.hover-expand-copy small{color:#c8ff00;font:700 9px/1 var(--font-geist-mono), monospace;letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;margin-bottom:8px;display:block;overflow:hidden}.hover-expand-copy b{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(18px,1.8vw,32px);line-height:1.05;display:block;overflow:hidden}.hover-expand-arrow{z-index:2;color:#c8ff00;opacity:.48;font:400 25px/1 sans-serif;transition:transform .42s,opacity .32s;position:absolute;top:14px;right:15px;transform:translate(-4px,4px)}.hover-expand-card:hover .hover-expand-copy,.hover-expand-card:focus-visible .hover-expand-copy,.hover-expand-card:hover .hover-expand-arrow,.hover-expand-card:focus-visible .hover-expand-arrow{opacity:1;transform:translate(0)}@media (height<=760px){.hover-expand-gallery{height:min(48vh,390px);min-height:300px}}@media (prefers-reduced-motion:reduce){.hover-expand-card,.hover-expand-item,.hover-expand-card img,.hover-expand-shade,.hover-expand-copy,.hover-expand-arrow{transition:none}}.looping-project-gallery{-webkit-user-select:none;user-select:none;touch-action:pan-y;border-radius:8px;width:100%;overflow:hidden}.looping-project-track{width:max-content;animation:project-loop var(--loop-duration) linear infinite;will-change:auto;margin-bottom:clamp(10px,1vw,18px);animation-play-state:paused;display:flex}.looping-project-track:last-child{margin-bottom:0}.looping-project-track--row-2{animation-name:project-loop-reverse}.looping-project-gallery.is-in-view .looping-project-track{will-change:transform;animation-play-state:running}.looping-project-gallery.is-dragging .looping-project-track{animation-play-state:paused}.looping-project-gallery.is-dragging{touch-action:none}@media (hover:hover) and (pointer:fine){.looping-project-gallery:is(:hover,:focus-within) .looping-project-track{animation-play-state:paused}}.looping-project-gallery.is-manual .looping-project-track{animation:none!important}.looping-project-gallery.is-dragging .looping-project-card{cursor:grabbing}.looping-project-set{flex:none;gap:clamp(10px,1vw,18px);padding-right:clamp(10px,1vw,18px);display:flex}.looping-project-card{height:clamp(210px,32vh,360px);width:calc(clamp(210px, 32vh, 360px) * var(--asset-ratio));min-width:0;color:var(--paper);background:0 0;border:0;border-radius:0;flex:none;margin:0;position:relative;overflow:hidden}.looping-project-card--interactive{cursor:zoom-in;padding:0;display:block}.looping-project-card--interactive:focus-visible{outline:2px solid var(--acid);outline-offset:-3px}.looping-project-card img{object-fit:contain;width:100%;max-width:none;height:100%}.looping-project-card--decorative{pointer-events:auto;-webkit-user-select:none;user-select:none}@keyframes project-loop{0%{transform:translate(-50%)}to{transform:translate(0%)}}@keyframes project-loop-reverse{0%{transform:translate(0%)}to{transform:translate(-50%)}}@media (width<=720px){.looping-project-gallery{touch-action:pan-y;overscroll-behavior-inline:auto}.looping-project-card{height:clamp(190px,34vh,320px);width:calc(clamp(190px, 34vh, 320px) * var(--asset-ratio));touch-action:pan-y}}@media (prefers-reduced-motion:reduce){.looping-project-gallery{overscroll-behavior-inline:contain;scrollbar-width:thin;overflow-x:auto}.looping-project-track{will-change:auto;animation:none!important;transform:none!important}.looping-project-set[aria-hidden=true]{display:none}.looping-project-card{scroll-snap-align:none}}.pill-nav-shell{z-index:1000;background:#020302;border-radius:999px;width:min(72vw,940px);height:26px;position:fixed;top:10px;left:50%;transform:translate(-50%);box-shadow:0 12px 34px #00000057,inset 0 1px #ffffff1a}.pill-nav-list{grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;height:100%;margin:0;padding:0;list-style:none;display:grid}.pill-nav-list li{min-width:0;height:100%}.pill-nav-item{color:#aeb8b0;border-radius:999px;justify-content:center;align-items:center;gap:6px;height:100%;font:700 12px/1 Portfolio Noto Sans SC Variable,PingFang SC,sans-serif;transition:color .18s,background-color .18s,transform .18s;display:flex}.pill-nav-item span{color:var(--acid);font:800 11px/1 var(--font-geist-mono), monospace}.pill-nav-item:hover{color:#f6fff2}.pill-nav-item[aria-current=location]{color:#071009;background:var(--acid);transform:translateY(1px)}.pill-nav-item[aria-current=location] span{color:#071009}.pill-nav-item:focus-visible{outline-offset:-3px;outline:2px solid #fff}@media (width<=720px){.pill-nav-shell{width:calc(100vw - 24px)}.pill-nav-item{gap:3px;font-size:10px}.pill-nav-item span{font-size:9px}}.aurora-background{z-index:0;pointer-events:none;background:radial-gradient(circle at 18% 18%,#10418057,#0000 34%),radial-gradient(circle at 78% 75%,#00350b8c,#0000 42%),linear-gradient(135deg,#003,#080027 52%,#00350b);position:absolute;inset:0;overflow:hidden}.aurora-background canvas{opacity:.96;width:100%;height:100%;display:block}.aurora-fallback{z-index:-1;background:radial-gradient(at 30% 48%,#00b44e3d,#0000 42%),radial-gradient(at 72% 36%,#225bbe40,#0000 40%),linear-gradient(135deg,#003,#080027 52%,#00350b);position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.aurora-background canvas{display:none}}.magic-bento{--bento-glow:200, 255, 0;perspective:1000px}.magic-bento-card{--glow-x:50%;--glow-y:50%;--glow-intensity:0;transform-style:preserve-3d;will-change:transform;position:relative}.magic-bento-card--border-glow:after{content:"";z-index:8;border-radius:inherit;background:radial-gradient(260px circle at var(--glow-x) var(--glow-y), rgba(var(--bento-glow), calc(var(--glow-intensity) * .9)), rgba(20,124,255, calc(var(--glow-intensity) * .32)) 28%, transparent 62%);-webkit-mask-composite:xor;pointer-events:none;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.magic-bento-card:hover{box-shadow:0 14px 38px #0000003d,0 0 24px #c8ff0012}.magic-bento-ripple{z-index:7;pointer-events:none;background:radial-gradient(circle,#c8ff0073,#0000 70%);border-radius:50%;width:30px;height:30px;margin:-15px;position:absolute}@media (prefers-reduced-motion:reduce){.magic-bento-card{transform:none!important}.magic-bento-card:after{display:none}}.split-text{overflow:visible}.split-line{margin-block:-.14em -.18em;padding-block:.14em .18em;display:block;overflow:visible}.split-unit{will-change:transform, opacity;margin-block:-.06em -.1em;padding-block:.06em .1em;display:inline-block}.split-space{white-space:pre}@media (prefers-reduced-motion:reduce){.split-unit{opacity:1!important;transform:none!important}}.target-cursor-wrapper{pointer-events:none;z-index:9999;mix-blend-mode:normal;width:0;height:0;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.target-cursor-dot{will-change:transform;background:#fff;border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.target-cursor-corner{will-change:transform;border:3px solid #fff;width:12px;height:12px;position:absolute;top:50%;left:50%}.corner-tl{border-bottom:none;border-right:none;transform:translate(-150%,-150%)}.corner-tr{border-bottom:none;border-left:none;transform:translate(50%,-150%)}.corner-br{border-top:none;border-left:none;transform:translate(50%,50%)}.corner-bl{border-top:none;border-right:none;transform:translate(-150%,50%)}
