body[data-theme=dark]{--bg: #1a1b18;--text: #ffffff;--accent-muted: #829476;--accent-thick: #dea541;--accent-blue: #78b8ff;--border: #4a5444;--slider-track: #353831;--slider-fill: #5b6852;--cursor: rgba(255, 255, 255, .2)}body[data-theme=light]{--bg: #f2f2eb;--text: #1a1b18;--accent-muted: #6a7a5e;--accent-thick: #c68e2d;--accent-blue: #0056b3;--border: #d1d1c8;--slider-track: #e0e0d9;--slider-fill: #a2b097;--cursor: rgba(0, 0, 0, .15)}body[data-theme=midnight]{--bg: #050505;--text: #e0e0e0;--accent-muted: #4a4a4a;--accent-thick: #ffcc00;--accent-blue: #00ccff;--border: #333333;--slider-track: #1a1a1a;--slider-fill: #00ccff;--cursor: rgba(0, 204, 255, .25)}*{box-sizing:border-box}body{background-color:var(--bg);color:var(--text);font-family:roc-grotesk,Inter,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;margin:0;cursor:none;overflow:hidden;transition:background-color .6s ease}body.simplified-mode{cursor:auto;display:block;align-items:stretch;justify-content:flex-start;overflow:auto}body.simplified-mode a,body.simplified-mode button{cursor:pointer}body.simplified-mode .cursor-line,body.simplified-mode .cursor-hint{display:none!important}.intro-block{position:fixed;top:40px;left:50%;transform:translate(-50%);z-index:10001;pointer-events:none;text-align:center;user-select:none}.intro-block__name{font-family:roc-grotesk-compressed,roc-grotesk,Inter,sans-serif;font-weight:700;font-size:3rem;line-height:.95;letter-spacing:.02em;margin:0;color:var(--accent-muted);text-transform:uppercase}.intro-block__role{font-family:roc-grotesk-wide,roc-grotesk,Inter,sans-serif;font-weight:500;font-size:.75rem;letter-spacing:.08em;margin:10px 0 0;color:var(--accent-muted);text-transform:uppercase}.ui-wrapper{position:fixed;top:180px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:15px;z-index:10001;pointer-events:none}.ui-wrapper>*{pointer-events:auto}.theme-wrapper{position:fixed;bottom:40px;left:50%;transform:translate(-50%);z-index:10001}.theme-select{background:var(--bg);border:1px solid var(--border);color:var(--accent-muted);height:40px;padding:0 10px;border-radius:2px;font-weight:800;cursor:none;outline:none}.theme-select:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.ui-label{font-size:1rem;font-weight:500;color:var(--accent-muted)}.filter-btn{background:none;font-family:Inter;border:1px solid var(--border);color:var(--accent-muted);height:40px;width:145px;padding:0 16px;border-radius:2px;display:flex;align-items:center;justify-content:space-between;cursor:none;outline:none;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),background-color .2s ease}.filter-btn:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.btn-text-window{height:20px;overflow:hidden;position:relative;flex-grow:1}.btn-text-shifter{display:flex;flex-direction:column}.label-item{height:20px;display:flex;align-items:center;font-weight:800;font-size:1rem;line-height:25px;white-space:nowrap}.letter{display:inline-block;will-change:transform}.filter-btn.is-shifting .letter{animation:filter-letter-slide .7s cubic-bezier(.57,.01,.2,1) forwards;animation-delay:calc(var(--i, 0) * .01s)}@keyframes filter-letter-slide{to{transform:translateY(-20px)}}.btn-icon{width:14px;height:14px;flex-shrink:0;color:var(--accent-blue);transition:rotate 1.2s cubic-bezier(.16,1,.3,1)}.range-group{position:relative;display:flex;flex-direction:column;align-items:center;transition:transform .4s cubic-bezier(.16,1,.3,1)}.year-box{border:1px solid var(--border);padding:9px 13px;border-radius:2px;display:flex;align-items:center;background-color:var(--bg)}.year-part,.year-sep{display:inline-block;text-align:center;font-weight:800;color:var(--accent-muted)}.year-part{width:48px;transform-origin:center;transition:color .25s ease,transform .25s cubic-bezier(.16,1,.3,1)}.year-part.is-active{color:var(--accent-blue);transform:scale(1.18)}.year-sep{width:25px}.custom-slider{position:absolute;left:50%;transform:translate(-50%) translateY(-10px);top:calc(100% + 14px);width:140px;height:12px;display:flex;align-items:center;opacity:0;pointer-events:none;transition:opacity .5s ease,transform .5s cubic-bezier(.16,1,.3,1)}.custom-slider.visible{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.slider-bar{position:absolute;width:100%;height:6px;background-color:var(--slider-track);border-radius:3px}.slider-fill{position:absolute;height:6px;background-color:var(--slider-fill);border-radius:3px;z-index:2;transition:left .15s cubic-bezier(.16,1,.3,1),width .15s cubic-bezier(.16,1,.3,1)}body.is-dragging .slider-fill{transition:none}.handle{position:absolute;width:14px;height:14px;background-color:var(--accent-blue);border-radius:50%;transform:translate(-50%) scale(1);z-index:3;transition:left .15s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s ease,background-color .25s ease;outline:none}.handle:hover,.handle.is-dragging{transform:translate(-50%) scale(1.3);background-color:var(--accent-blue);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-blue) 5%,transparent),0 0 18px 2px color-mix(in srgb,var(--accent-blue) 50%,transparent)}.handle.is-dragging{transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s ease,background-color .25s ease}.handle:focus-visible{outline:2px solid var(--accent-blue);outline-offset:6px}.cursor-line{position:fixed;top:0;left:0;background-color:var(--cursor);pointer-events:none;z-index:12000;will-change:transform;transition:transform 0s,background-color .4s ease}.cursor-line.snapping{transition:transform .65s cubic-bezier(.22,1,.36,1),background-color .4s ease}.cursor-line.snap-soft{transition:transform .5s cubic-bezier(.19,1,.22,1),background-color .4s ease}.cursor-line.locked{transition:none!important}.cursor-line.horizontal{width:100%;height:1px}.cursor-line.vertical{width:1px;height:100%}.timeline-date,.project-title,.project-tags{position:fixed;pointer-events:none;z-index:10000;display:flex;flex-direction:column;align-items:center;opacity:0;transition:opacity .4s cubic-bezier(.19,1,.22,1),transform .4s cubic-bezier(.19,1,.22,1)}.timeline-date{color:var(--accent-muted);font-family:Inter;font-weight:700;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;padding:8px 15px;transform:translate(-50%,-10px)}.project-title{color:var(--accent-muted);font-weight:600;font-size:.9rem;letter-spacing:.08em;padding:8px 12px;text-transform:uppercase;white-space:nowrap;transform:translate(-50%,10px)}.project-tags{background-color:transparent;padding:0;gap:5px;transform:translate(-50%,20px);width:fit-content}.project-bg{position:fixed;inset:0;z-index:1;opacity:0;pointer-events:none;background-size:cover;background-position:center;background-repeat:no-repeat;transition:opacity .5s ease}.project-bg.is-active{opacity:.1}.tag-item{border:1px solid var(--accent-muted);color:var(--accent-muted);padding:4px 8px;font-size:.65rem;font-family:Inter,sans-serif;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:0;transform:scale(.8);animation:popIn .4s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes popIn{to{opacity:1;transform:scale(1)}}.visible{opacity:1;transform:translate(-50%)!important}.line-container{position:relative;z-index:2;width:75vw;height:120px;display:flex;align-items:flex-end;--gutter-shift: 10px;perspective:1200px}@keyframes netflixFlyIn{0%{transform:translateZ(1500px) scale(4);opacity:0;visibility:visible}to{transform:translateZ(0) scale(1);opacity:1;visibility:visible}}.line.is-intro{visibility:hidden;animation:netflixFlyIn 1.4s cubic-bezier(.16,1,.3,1) forwards;pointer-events:none}.line{background-color:var(--accent-muted);flex:1 1 0;margin-right:5px;border-radius:1px;height:100%;transform-origin:bottom center;transition:flex 1.4s cubic-bezier(.16,1,.3,1),margin-right 1.4s cubic-bezier(.16,1,.3,1),transform 1.4s cubic-bezier(.16,1,.3,1),background-color .3s ease,opacity .4s ease;will-change:transform,flex}.line.thick{background-color:var(--accent-thick);flex:2 1 0}.line.featured{background-color:var(--accent-blue);flex:4 1 0}.line.active{flex:1.6 1 0;transform:translate(var(--mag-x, 0px))}.line.thick.active{flex:4 1 0;transform:translate(var(--mag-x, 0px))}.line.featured.active{flex:12 1 0;transform:translate(var(--mag-x, 0px))}.line-container:has(.line.thick.active){--gutter-shift: 20px}.line-container:has(.line.featured.active){--gutter-shift: 35px}.line-container:has(.line.active) .line:not(.active):not(.thick):not(.featured){opacity:.5}.line-container.filter-active .line:not(.thick):not(.featured){flex:0 0 0!important;margin-right:0!important;opacity:0!important;pointer-events:none}.line.filtered-out{flex:0 0 0!important;margin-right:0!important;opacity:0!important;pointer-events:none}.line-container:has(.line.active) .line:has(~.line.active){transform:translate(calc(-1 * var(--gutter-shift)))}.line.active~.line{transform:translate(var(--gutter-shift))}body.is-dragging{user-select:none;-webkit-user-select:none}.project-view{position:fixed;inset:0;z-index:11000;background-color:var(--bg);opacity:0;pointer-events:none;transition:opacity .45s ease;display:grid;grid-template-columns:38% 62%;align-items:start;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}.project-view::-webkit-scrollbar{display:none}.project-view.active{opacity:1;pointer-events:auto}.project-view__info{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:space-between;padding:64px 48px 48px 80px;box-sizing:border-box}.project-view__top{display:flex;flex-direction:column;gap:56px}.project-view__close{align-self:flex-start;background:none;border:0;padding:0;margin:0;color:var(--accent-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .2s ease,transform .2s ease}.project-view__close:hover{color:var(--text);transform:rotate(90deg)}.project-view__top-meta{display:flex;flex-direction:column;gap:16px}.project-view__label{color:var(--accent-thick);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.project-view__nav{display:flex;gap:24px}.project-view__nav-btn{background:none;border:0;padding:0;font:inherit;font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-muted);cursor:pointer;transition:color .2s ease}.project-view__nav-btn:hover{color:var(--text)}.project-view__nav-btn[disabled]{opacity:.35;cursor:default}.project-view__body{display:flex;flex-direction:column;max-width:460px}.project-view__date{color:var(--accent-muted);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px}.project-view__title{font-size:1.5rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--text);margin:0 0 20px;line-height:1.15}.project-view__tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.project-view__tag{border:1px solid var(--border);color:var(--accent-muted);padding:4px 10px;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.project-view__description{color:var(--accent-muted);font-size:.95rem;line-height:1.6;margin:0}.project-view__progress{position:relative;width:min(420px,70%);padding-top:28px}.project-view__progress-label{position:absolute;bottom:12px;left:0%;transform:translate(0);font-size:.75rem;font-weight:800;letter-spacing:.08em;color:var(--accent-muted);transition:left .08s linear,transform .08s linear,color .2s ease;white-space:nowrap}.project-view__progress-track{position:relative;height:1px;background-color:var(--border);overflow:hidden}.project-view__progress-fill{height:100%;width:0%;background-color:var(--accent-thick);transition:width .08s linear}.project-view__gallery{padding:64px 80px 64px 0;box-sizing:border-box}.project-view__gallery-item{position:relative;width:100%;margin:0 0 32px;background-color:var(--slider-track);overflow:hidden}.project-view__gallery-item:last-child{margin-bottom:0}.project-view__gallery-item>img,.project-view__gallery-item>video,.project-view__gallery-item>canvas{display:block;width:100%;height:auto}.project-view__gallery-item--placeholder{background-color:var(--slider-track)}.project-view__gallery-item--tall{height:78vh}.project-view__gallery-item--med{height:62vh}.project-view__gallery-item--short{height:48vh}.project-view__gallery-item--video,.project-view__gallery-item--gif,.project-view__gallery-item--embed{cursor:pointer}.project-view__gallery-item--embed{aspect-ratio:16 / 9}.project-view__gallery-item--embed>img,.project-view__gallery-item--embed>iframe{width:100%;height:100%;display:block;border:0;object-fit:cover}.project-view__gallery-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000040;color:#fff;border:none;padding:0;margin:0;cursor:pointer;opacity:0;transition:opacity .18s ease;pointer-events:none}.project-view__gallery-item.is-paused .project-view__gallery-play,.project-view__gallery-item:hover .project-view__gallery-play{opacity:1}.project-view__gallery-item.is-paused:not(:hover) .project-view__gallery-play{background:#00000059}.project-view__gallery-play svg{width:56px;height:56px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}.cursor-hint{position:fixed;bottom:0;left:50%;background-color:var(--accent-muted);color:var(--bg);border-radius:2px 2px 0 0;z-index:12001;font-family:Inter,sans-serif;user-select:none;pointer-events:auto;text-align:center;min-width:180px;transform:translate(-50%,calc(100% - 8px));transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .3s ease}.cursor-hint:hover{transform:translate(-50%)}.cursor-hint__top{padding:8px 18px;font-size:.75rem;font-weight:700;letter-spacing:.04em;border-bottom:1px solid var(--bg);text-transform:uppercase}.cursor-hint__key{padding:10px 18px 12px;font-size:1.6rem;font-weight:900;letter-spacing:.08em}body.cursor-traditional,body.cursor-traditional *{cursor:auto}body.cursor-traditional a,body.cursor-traditional button,body.cursor-traditional [role=slider],body.cursor-traditional .handle,body.cursor-traditional .slider-bar{cursor:pointer}body.cursor-traditional .cursor-line{opacity:0;pointer-events:none}.landing-screen{position:fixed;inset:0;z-index:8000;display:flex;align-items:center;justify-content:center;background-color:var(--bg)}.landing-meta{position:absolute;top:40px;font-family:Inter,sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.12em;color:var(--accent-muted);text-transform:uppercase;line-height:1.65;display:flex;flex-direction:column}.landing-meta--top-left{left:40px}.landing-meta--top-right{right:40px;text-align:right;align-items:flex-end}.landing-meta__label,.landing-meta__value{color:var(--accent-muted)}.landing-meta__link{color:var(--accent-muted);text-decoration:none;cursor:none;transition:color .2s ease}.landing-meta__link:hover{color:var(--accent-blue)}.landing-content{display:flex;flex-direction:column;align-items:center;gap:48px;padding:0 40px}.landing-name{margin:0;font-family:roc-grotesk,Inter,sans-serif;font-weight:900;font-size:clamp(3.5rem,13vw,13rem);letter-spacing:-.015em;line-height:.85;color:var(--accent-muted);text-transform:uppercase;text-align:center}.landing-role{margin:-8px 0 0;font-family:Inter,sans-serif;font-weight:700;font-size:1rem;letter-spacing:.2em;color:var(--accent-muted);text-transform:uppercase;text-align:center;line-height:1.5}.see-work-btn{display:inline-block;background-color:var(--accent-blue);color:var(--bg);text-decoration:none;font-family:Inter,sans-serif;font-weight:900;font-size:1.75rem;letter-spacing:.18em;padding:22px 56px;border:3px solid transparent;border-radius:2px;cursor:none;outline:none;text-transform:uppercase;will-change:transform;transition:all .5s cubic-bezier(.19,1,.22,1)}.see-work-btn:hover{background-color:transparent;border-color:var(--accent-blue);color:var(--accent-blue)}.see-work-btn:focus-visible{outline:2px solid var(--accent-blue);outline-offset:4px}.see-work-btn.exploding{pointer-events:none;color:transparent;background-color:var(--accent-blue);border-color:var(--accent-blue);animation:enterExplode .9s cubic-bezier(.65,0,.35,1) forwards}.simplified-view-btn{background:none;border:none;color:var(--accent-muted);font-family:Inter,sans-serif;font-weight:700;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:underline;text-underline-offset:6px;padding:4px 6px;cursor:none;outline:none;transition:color .2s ease}.simplified-view-btn:hover{color:var(--accent-blue)}.simplified-view-btn:focus-visible{outline:2px solid var(--accent-blue);outline-offset:4px}.timeline-simplified-link{position:fixed;bottom:48px;left:40px;z-index:10001}@keyframes enterExplode{0%{transform:scale(1);opacity:1}50%{transform:scale(10);opacity:.95}to{transform:scale(60);opacity:0}}::view-transition-old(root){animation:.45s cubic-bezier(.4,0,.2,1) both fadeOut}::view-transition-new(root){animation:.55s cubic-bezier(.16,1,.3,1) both fadeIn}@keyframes fadeOut{to{opacity:0}}@keyframes fadeIn{0%{opacity:0}}
