.cv2-stage{-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:2rem;min-height:calc(100vh - 5rem);padding:2rem 0;display:flex;position:relative}@media (min-width:768px){.cv2-stage{gap:2.5rem;height:calc(100vh - 5rem);min-height:0;padding:0;overflow:hidden}}.cv2-bg-wrap{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.cv2-bg-layer{opacity:0;pointer-events:none;transition:opacity .8s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.cv2-bg-layer--active{opacity:1}.cv2-bg-grid{grid-template-columns:repeat(var(--bg-cols), 1fr);grid-template-rows:repeat(var(--bg-rows), 1fr);opacity:.07;width:100%;height:100%;display:grid;overflow:hidden}.cv2-bg-grid-img{object-fit:cover;filter:grayscale(.6);width:100%;height:100%;display:block}.cv2-bg-chess{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cv2-bg-chess-board{aspect-ratio:1;background-image:repeating-conic-gradient(#1111110f 0% 25%,#0000 0% 50%);background-size:25% 25%;width:min(100vw,100vh);position:relative}.cv2-bg-chess-piece{color:#111;opacity:.15;justify-content:center;align-items:center;width:12.5%;height:12.5%;font-size:calc(min(100vw,100vh)/11);line-height:1;display:flex;position:absolute}.cv2-narrative,.cv2-carousel,.cv2-arrow,.cv2-dots{z-index:1;position:relative}.cv2-narrative{text-align:center;justify-content:center;align-items:center;min-height:3rem;padding:0 1.25rem;display:flex}@media (min-width:768px){.cv2-narrative{min-height:3.5rem;padding:0}}.cv2-story{font-family:var(--font-serif);color:#1a1a17;font-size:clamp(1.5rem,3.5vw,2.5rem);line-height:1.2;transition:font-family .1s;animation:.5s cubic-bezier(.4,0,.2,1) forwards cv2-fade-in}.cv2-narrative[data-slide-active=projects] .cv2-story{font-family:var(--font-jetbrains), "SF Mono", monospace;letter-spacing:-.02em;font-size:clamp(1.2rem,2.8vw,2rem)}.cv2-narrative[data-slide-active=experience] .cv2-story{font-family:var(--font-baskerville), "Times New Roman", serif}.cv2-narrative[data-slide-active=writing] .cv2-story{font-family:var(--font-courier), "Courier New", Courier, monospace;font-size:clamp(1.3rem,3vw,2.1rem)}.cv2-narrative[data-slide-active=film] .cv2-story{font-family:var(--font-dm-sans), "Helvetica Neue", Helvetica, sans-serif;letter-spacing:.04em;text-transform:uppercase;font-size:clamp(1.1rem,2.5vw,1.8rem)}.cv2-narrative[data-slide-active=chess] .cv2-story{font-family:var(--font-merriweather), Georgia, serif}.cv2-narrative[data-slide-active=books] .cv2-story{font-family:var(--font-garamond), "Palatino Linotype", Palatino, serif;font-style:italic}.cv2-narrative[data-slide-active=motion] .cv2-story{font-family:var(--font-bebas), "Impact", sans-serif;letter-spacing:.06em;text-transform:uppercase;font-size:clamp(1.8rem,4.5vw,3.2rem)}@keyframes cv2-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.cv2-carousel{perspective:1000px;width:100%;max-width:1100px;height:clamp(260px,50vh,360px);position:relative}@media (min-width:768px){.cv2-carousel{perspective:1200px;height:clamp(280px,45vh,420px)}}.cv2-track{width:100%;height:100%;transform-style:preserve-3d;position:relative}.cv2-card{aspect-ratio:3/4;width:clamp(180px,55vw,260px);transform:translate(-50%, -50%) translateX(calc(var(--pos) * clamp(100px, 16vw, 220px))) translateZ(calc(-1 * var(--abs-pos) * 80px)) rotateY(calc(var(--pos) * -20deg)) scale(calc(1 - var(--abs-pos) * .15));opacity:calc(1 - var(--abs-pos) * .3);filter:blur(calc(var(--abs-pos) * 2px));cursor:pointer;transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .5s cubic-bezier(.4,0,.2,1),filter .5s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:50%}@media (min-width:768px){.cv2-card{width:clamp(220px,28vw,320px);transform:translate(-50%, -50%) translateX(calc(var(--pos) * clamp(140px, 18vw, 220px))) translateZ(calc(-1 * var(--abs-pos) * 120px)) rotateY(calc(var(--pos) * -25deg)) scale(calc(1 - var(--abs-pos) * .15))}}.cv2-card--focus{cursor:default;filter:none;opacity:1}.cv2-card[style*="--pos: 4"],.cv2-card[style*="--pos: -4"],.cv2-card[style*="--pos: 5"],.cv2-card[style*="--pos: -5"]{opacity:0;pointer-events:none}.cv2-card-inner{background:#fff;border:1px solid #ffffff4d;border-radius:14px;width:100%;height:100%;text-decoration:none;transition:box-shadow .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);display:block;position:relative;overflow:hidden;box-shadow:0 2px 8px #00000014,0 1px 3px #0000000f}.cv2-card--focus .cv2-card-inner{box-shadow:0 8px 32px #00000029,0 2px 8px #00000014}@media (hover:hover) and (pointer:fine){.cv2-card--focus .cv2-card-inner:hover{transform:translateY(-3px);box-shadow:0 16px 48px #0003,0 4px 12px #0000001a}}.cv2-card-bg{position:absolute;inset:0}.cv2-card-img{object-fit:cover;width:100%;height:100%;display:block}.cv2-card-overlay{background:linear-gradient(#0000 0%,#00000014 60%,#0000008c 100%);align-items:flex-end;padding:1rem;transition:background .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;inset:0}@media (min-width:768px){.cv2-card-overlay{padding:1.25rem}}@media (hover:hover) and (pointer:fine){.cv2-card--focus .cv2-card-overlay:hover{background:linear-gradient(#0000 0%,#0000001f 55%,#000000a6 100%)}}.cv2-card-label{font-family:var(--font-serif);color:#fff;text-shadow:0 1px 4px #0006;font-size:clamp(1.1rem,1.8vw,1.5rem);line-height:1.2}.cv2-chess-board{aspect-ratio:1;background-image:repeating-conic-gradient(#11111114 0% 25%,#0000 0% 50%);background-size:25% 25%;border:1px solid #1111111a;width:100%;max-height:100%;margin:auto;position:absolute;inset:0}.cv2-chess-piece{color:#111;opacity:.3;pointer-events:none;justify-content:center;align-items:center;width:12.5%;height:12.5%;font-size:clamp(14px,3vw,28px);line-height:1;display:flex;position:absolute}.cv2-card[data-slide=chess] .cv2-card-overlay{background:linear-gradient(#0000 0%,#0003 65%,#000000b3 100%)}.cv2-arrow{-webkit-backdrop-filter:blur(12px);cursor:pointer;color:#1a1a17;z-index:20;background:#ffffffb3;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 8px #0000000f,0 1px 3px #0000000a}@media (hover:hover) and (pointer:fine){.cv2-arrow:hover{background:#ffffffe6;transform:translateY(-50%)translateY(-2px);box-shadow:0 8px 24px #0000001f,0 2px 6px #0000000f}}.cv2-arrow:active{transform:translateY(-50%)translateY(0);box-shadow:0 1px 4px #00000014}.cv2-arrow--left{left:.5rem}.cv2-arrow--right{right:.5rem}@media (min-width:768px){.cv2-arrow--left{left:clamp(1rem,4vw,3rem)}.cv2-arrow--right{right:clamp(1rem,4vw,3rem)}}.cv2-arrow:focus-visible{outline:2px solid var(--color-fg);outline-offset:2px}.cv2-dots{align-items:center;gap:.25rem;display:flex}.cv2-dot{cursor:pointer;color:#1a1a1740;background:0 0;border:none;border-radius:8px;width:28px;height:28px;padding:5px;transition:color .3s cubic-bezier(.4,0,.2,1),background .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);position:relative}.cv2-dot:after{content:"";position:absolute;inset:-8px -4px}.cv2-dot svg{width:100%;height:100%;display:block}.cv2-dot--active{color:#1a1a17;background:#1a1a170f;transform:scale(1.15)}@media (hover:hover) and (pointer:fine){.cv2-dot:hover:not(.cv2-dot--active){color:#1a1a1780;background:#1a1a170a;transform:scale(1.1)}}.cv2-dot:focus-visible{outline:2px solid var(--color-fg);outline-offset:2px}@media (prefers-reduced-motion:reduce){.cv2-card,.cv2-card-inner,.cv2-bg-layer,.cv2-dot,.cv2-arrow,.cv2-card-overlay{transition:none}.cv2-story{opacity:1;animation:none}}
