html{scrollbar-gutter:stable}.identity-card{text-align:left;font-family:var(--body);cursor:pointer;z-index:1;transform-style:preserve-3d}.identity-card--software{z-index:2}.identity-card--ai{z-index:3}.identity-card--engineering{--card-angle:-13deg;--float-delay:-1s}.identity-card--software{--card-angle:10deg;--float-delay:-3s}.identity-card--ai{--card-angle:-6deg;--float-delay:-5s}.identity-card-description{font:10px var(--body);letter-spacing:.1em;display:block}.identity-card-action{font:8px var(--mono);letter-spacing:.08em;opacity:.65;border-top:1px solid;margin-top:12px;padding-top:9px;display:block}.identity-card.is-lifted{opacity:0;pointer-events:none;animation-play-state:paused!important}.identity-card:focus-visible{outline:4px solid var(--gold);outline-offset:7px;z-index:4}.identity-strip,.identity-stamp,.identity-caption{pointer-events:none;z-index:4}.hero-portal{width:100%;max-width:none;height:100%;max-height:none;color:var(--paper);overscroll-behavior:contain;background:0 0;border:0;margin:0;padding:28px;overflow:auto}.hero-portal[open]{place-items:safe center center;display:grid}.hero-portal::backdrop{background:0 0}.hero-portal__veil{z-index:0;backdrop-filter:blur(9px);will-change:opacity;background:#0a0a0adb;position:fixed;inset:0}.hero-portal__sheet{z-index:1;transform-origin:50%;width:min(1240px,100%);padding:0;position:relative}.hero-portal[data-phase=opening] .hero-portal__content,.hero-portal[data-phase=closing] .hero-portal__content{will-change:transform,opacity}.hero-portal__top{font:11px var(--mono);letter-spacing:.05em;align-items:center;gap:20px;padding:0 0 24px;display:flex}.hero-portal__top>span:nth-child(2){opacity:.5;margin-left:auto}.hero-portal__close{color:inherit;background:0 0;border:0;align-items:center;gap:9px;padding:0 0 0 14px;display:flex}.hero-portal__close>span{font:37px/.8 var(--body)}.hero-portal__close small{font:8px var(--mono);opacity:.5}.hero-portal__cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.hero-portal__content{isolation:isolate;border:2px solid var(--ink);min-height:540px;color:var(--ink);background:var(--paper);transform-origin:50%;flex-direction:column;padding:26px;display:flex;position:relative;box-shadow:7px 9px #f1eee52e}.hero-portal__content--software{color:var(--paper);background:var(--ink);border-color:var(--paper);box-shadow:7px 9px 0 var(--red)}.hero-portal__content--ai{background:var(--red);box-shadow:7px 9px 0 var(--paper)}.hero-portal__content[data-selected=true] .hero-portal__label:after{content:" ↗";float:right}.hero-portal__label{font:9px var(--mono);letter-spacing:.1em;border-bottom:1px solid;margin:0 0 28px;padding-bottom:16px}.hero-portal__watermark{z-index:-1;font:160px/.8 var(--display);opacity:.07;pointer-events:none;position:absolute;top:70px;right:15px}.hero-portal__content h2{letter-spacing:-.04em;text-wrap:balance;min-height:3.6em;font-size:clamp(25px,2.5vw,37px);line-height:1.2}.hero-portal__description{opacity:.75;margin-top:18px;font-size:12px;line-height:1.85}.hero-portal__tags{flex-wrap:wrap;gap:6px;margin:20px 0 28px;list-style:none;display:flex}.hero-portal__tags li{font:7px var(--mono);opacity:.6;border:1px solid;padding:6px 7px}.hero-portal__destination{border-top:2px solid;border-bottom:2px solid;grid-template-columns:1fr auto;gap:9px 14px;margin-top:auto;padding:17px 0;display:grid}.hero-portal__destination small{font:8px var(--mono);letter-spacing:.08em;opacity:.55;grid-column:1}.hero-portal__destination>span{grid-column:1;font-size:20px;font-weight:800}.hero-portal__destination b{font:34px/1 var(--body);grid-area:1/2/3;align-self:center}.hero-portal__related{flex-wrap:wrap;gap:15px;padding-top:19px;display:flex}.hero-portal__related a{align-items:center;gap:12px;font-size:10px;display:flex}.hero-portal__related a:hover{text-underline-offset:5px;text-decoration:underline}.hero-portal__footer{font:9px var(--mono);opacity:.5;justify-content:space-between;gap:14px;padding-top:25px;display:flex}@media (prefers-reduced-motion:no-preference){.identity-card{animation:identity-float 7s var(--float-delay) ease-in-out infinite;transition:translate .4s cubic-bezier(.16,1,.3,1),box-shadow .3s,filter .3s}.identity-card:hover,.identity-card:focus{animation-play-state:paused}.identity-card:hover,.identity-card:focus-visible{filter:brightness(1.05);box-shadow:13px 17px 0 var(--ink)}.identity-card--software:hover{box-shadow:13px 17px 0 var(--red)}.hero-portal[open] .hero-portal__veil{animation:.26s both portal-veil-enter}.hero-portal__top,.hero-portal__footer{animation:.4s .15s both portal-content}.hero-portal[data-phase=closing] .hero-portal__veil{animation:portal-veil-exit var(--portal-exit-duration,.44s) cubic-bezier(.4,0,.2,1) both}.hero-portal[data-phase=closing] .hero-portal__top,.hero-portal[data-phase=closing] .hero-portal__footer{animation:.22s ease-out both portal-chrome-exit}.hero-portal__destination b{transition:transform .3s cubic-bezier(.16,1,.3,1)}.hero-portal__destination:hover b{transform:translate(5px,-5px)}.chapter[data-hero-arrived] h2{animation:.65s cubic-bezier(.16,1,.3,1) both portal-arrival}.project-card{transition:translate .35s cubic-bezier(.16,1,.3,1),box-shadow .35s}.project-card:hover{translate:0 -5px;box-shadow:0 8px #ed263b66}@keyframes portal-veil-enter{0%{opacity:0}to{opacity:1}}@keyframes portal-veil-exit{0%{opacity:var(--portal-veil-start,1)}to{opacity:0}}@keyframes portal-chrome-exit{0%{opacity:var(--portal-chrome-start,1);translate:0}to{opacity:0;translate:0 -8px}}@keyframes portal-content{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0}}@keyframes identity-float{0%,to{transform:rotate(var(--card-angle)) translateY(0)}50%{transform:rotate(var(--card-angle)) translateY(-8px)}}@keyframes portal-arrival{0%{opacity:.4;transform:translateY(18px)}}}@media (width<=900px) and (width>=721px){.hero-portal{padding:20px}.hero-portal__cards{gap:12px}.hero-portal__content{padding:19px}.hero-portal__destination>span{font-size:17px}}@media (width<=720px){.hero-portal{padding:20px}.hero-portal__cards{grid-template-columns:1fr;gap:24px}.hero-portal__content{min-height:430px;padding:24px}.hero-portal__content h2{min-height:0;font-size:32px}.hero-portal__top{z-index:4;background:var(--ink);padding:16px 0;font-size:9px;position:sticky;top:-20px}.hero-portal__top>span:nth-child(2){display:none}.hero-portal__close{margin-left:auto}.hero-portal__watermark{font-size:160px}.hero-portal__footer{font-size:8px}.identity-card-action{margin-top:8px;padding-top:7px;font-size:7px}}
