.work-page{--work-black:#101010;--work-white:#f8f8f5;--work-red:#ab282a;background:var(--work-black);color:var(--work-white)}
.work-page .header{z-index:10}.work-page .navbar{color:var(--ink)}
.work-hero{position:relative;height:58vw;min-height:700px;max-height:940px;isolation:isolate;overflow:hidden;background:var(--work-black)}
.work-portrait{position:absolute;inset:0;z-index:-2;background:url('assets/project-portrait.png') center 44%/cover no-repeat}
.work-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#080808c9,transparent 60%),linear-gradient(0deg,#090909b3,transparent 40%)}
.work-meta{display:grid;grid-template-columns:130px 1fr auto;gap:32px;position:absolute;top:118px;left:24px;right:24px;font-size:7px;line-height:1.15;letter-spacing:.4px;color:#d1d0cb}.work-meta>span:last-child{text-align:right}.work-running{display:grid;grid-template-columns:130px 1fr auto;position:absolute;top:170px;left:24px;right:24px;gap:32px;font-size:13px}.work-running>a{padding:4px 0;border-bottom:1px solid #ffffff60}
.work-heading{position:absolute;left:26%;top:32%;z-index:2}.work-overline{font-size:8px;letter-spacing:2px;color:#e4dcd7}.work-heading h1{font-size:clamp(45px,6.1vw,94px);line-height:.93;letter-spacing:-4px;font-weight:500;margin:20px 0 0}.work-heading h1>span{font-size:20px;vertical-align:top;display:inline-block;margin:0 0 0 8px;line-height:1.4}.work-edition{position:absolute;right:-100px;top:30px;font-size:25px;letter-spacing:-1px}
.character-scene{display:block;background-image:url('assets/project-scenes.png');background-size:200% 200%;background-repeat:no-repeat;background-color:#352b27}.scene-one{background-position:0 0}.scene-two{background-position:100% 0}.scene-three{background-position:0 100%}.scene-four{background-position:100% 100%}
.hero-work{position:absolute;display:block;padding:0;border:0;background:transparent;color:#fff;text-align:left;cursor:pointer;transition:transform .35s}.hero-work:hover{transform:translateY(-8px)}.hero-work>.character-scene{width:100%;height:100%}.hero-work>span:last-child:not(.character-scene){display:flex;justify-content:space-between;font-size:7px;letter-spacing:1px;margin-top:12px;color:#e1dbd3}.hero-work i{font-size:11px;font-style:normal}.hero-work-left{left:2%;top:49%;width:23%;height:28%}.hero-work-right{left:64%;top:49%;width:25%;height:28%}.hero-work-edge{left:92%;top:49%;width:18%;height:34%}
.hero-statement{position:absolute;left:47%;top:70%;margin:0;font-size:clamp(27px,3.7vw,55px);font-weight:400;line-height:.98;letter-spacing:-2px;z-index:2}.hero-statement em{font-family:Georgia,serif;font-weight:400}.work-hero-bottom{position:absolute;bottom:28px;left:24px;right:24px;display:grid;grid-template-columns:22% 28% 1fr auto;gap:28px;font-size:7px;line-height:1.4;letter-spacing:.3px;color:#d2cfcb}.work-hero-bottom p{margin:0;max-width:285px}.work-hero-bottom>span:last-child{text-align:right}
.work-collection{background:#fff;color:#151515;padding:48px 24px 32px;overflow:hidden}.collection-topline,.collection-bottomline{display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:11px;font-weight:500}.collection-topline h2{font:inherit;margin:0;letter-spacing:-.3px}.collection-topline>span:nth-child(2){font-size:8px;letter-spacing:1px;color:#777}.collection-disclaimer{font-size:8px;font-weight:400;color:#777;letter-spacing:.4px}.collection-bottomline{padding-top:16px}
.work-dialog{width:min(940px,calc(100% - 32px));max-height:90svh;overflow:auto;border:1px solid #ffffff30;border-radius:14px;padding:0;background:#141414;color:#f7f5ef;box-shadow:0 20px 100px #0005}.work-dialog[open]{display:grid;grid-template-columns:1.1fr 1fr}.work-dialog::backdrop{background:#000b;backdrop-filter:blur(10px)}.work-close{position:absolute;right:12px;top:12px;z-index:2;width:36px;height:36px;cursor:pointer;border:1px solid #ffffff60;color:#fff;border-radius:50%;background:#161616b3}.work-dialog-art{min-height:480px;background:#282522}.work-dialog-art>img,.work-dialog-art>.character-scene{display:block;width:100%;height:100%;min-height:480px;object-fit:cover}.work-dialog-copy{display:flex;flex-direction:column;padding:64px 32px 32px}.work-dialog-index{font-size:9px;letter-spacing:1.6px;color:#bbb6ae}.work-dialog h2{font-size:38px;line-height:1;letter-spacing:-1.5px;margin:24px 0}.work-dialog-description{font-size:14px;line-height:1.8;color:#d1cdc4;margin:0 0 20px}.work-dialog-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#c6f05a;color:#0f172a;font-size:13px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:999px;width:fit-content;margin:0 0 28px;transition:all .18s ease;box-shadow:0 4px 18px rgba(198,240,90,.25);cursor:pointer;border:0}.work-dialog-cta:hover{background:#d4f772;transform:translateY(-2px);box-shadow:0 6px 24px rgba(198,240,90,.4);color:#000}.work-dialog-cta:active{transform:translateY(0)}.work-dialog-cta svg{stroke:currentColor;transition:transform .18s ease}.work-dialog-cta:hover svg{transform:translate(2px,-2px)}.work-dialog-demo{font-size:10px;line-height:1.7;color:#a7a299;padding-top:20px;border-top:1px solid #ffffff25}.work-dialog-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:32px;margin-top:auto}.work-dialog-controls>span{font-size:7px;letter-spacing:1px;color:#aaa}.work-dialog-controls>button{width:42px;height:42px;border:1px solid #ffffff50;border-radius:50%;background:transparent;color:#fff;cursor:pointer}.work-dialog-controls>button:hover{background:#ffffff20}.work-modal-open{overflow:hidden}
@media(min-width:1600px){.work-hero{height:850px}.work-heading{top:30%}}
@media(max-width:1023px){.work-hero{min-height:680px}.work-heading{left:25%;top:34%}.work-heading h1{font-size:65px}.work-edition{right:-65px;font-size:20px}.hero-work-left{width:25%;height:24%;top:53%}.hero-work-right{left:65%;width:25%;height:24%;top:53%}.hero-work-edge{top:53%;height:28%}.hero-statement{left:43%;top:72%;font-size:36px}.work-hero-bottom{grid-template-columns:20% 35% 1fr;gap:20px}.work-hero-bottom>span:last-child{display:none}}
@media(max-width:767px){.work-hero{height:840px;max-height:none;min-height:0}.work-portrait{background-position:61% 40%}.work-hero:after{background:linear-gradient(90deg,#080808b0,transparent 90%),linear-gradient(0deg,#090909dd,transparent 70%)}.work-meta{top:102px;left:20px;right:20px;grid-template-columns:100px 1fr auto;gap:12px;font-size:6px}.work-running{top:153px;left:20px;right:20px;font-size:10px;grid-template-columns:80px 1fr auto;gap:12px}.work-heading{left:20px;top:28%;right:20px}.work-heading h1{font-size:clamp(50px,10vw,76px);letter-spacing:-3px}.work-overline{font-size:7px;letter-spacing:1.5px}.work-edition{right:0;top:25px;font-size:16px}.hero-work-left{left:20px;top:55%;width:43%;height:20%}.hero-work-right{left:auto;right:20px;top:60%;width:38%;height:20%}.hero-work-edge{display:none}.hero-statement{left:34%;top:79%;font-size:33px;letter-spacing:-1.5px}.hero-work>span:last-child:not(.character-scene){font-size:6px;margin-top:8px}.work-hero-bottom{left:20px;right:20px;bottom:20px;grid-template-columns:1fr 2fr;font-size:6px;gap:20px}.work-hero-bottom>span:nth-last-child(2){display:none}.work-collection{padding:32px 16px 24px}.collection-topline,.collection-bottomline{font-size:9px;gap:12px}.collection-topline>span:nth-child(2){display:none}.collection-disclaimer{font-size:7px;max-width:105px;text-align:center;line-height:1.4}.work-dialog[open]{display:block}.work-dialog-art{min-height:0;height:280px}.work-dialog-art>img,.work-dialog-art>.character-scene{min-height:0;height:100%}.work-dialog-copy{padding:28px 24px}.work-dialog h2{font-size:30px;margin:18px 0}.work-dialog-description{font-size:12px;margin-bottom:24px}.work-dialog-demo{font-size:9px}}
@media(prefers-reduced-motion:reduce){.work-page *{animation:none!important;transition:none!important}}

.marquee-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:48px 0 28px;max-width:1440px;margin:auto}
.marquee-heading>div>span{font-size:8px;letter-spacing:1.5px;color:#777}.marquee-heading h3{font-weight:400;font-size:clamp(30px,4vw,56px);letter-spacing:-2px;line-height:1.1;margin:12px 0}.marquee-heading p{font-size:12px;color:#777;margin:0}
.marquee-pause{border:1px solid #ddd;border-radius:999px;padding:10px 16px;background:#fff;color:#444;font-size:10px;min-height:36px;cursor:pointer;white-space:nowrap}.marquee-pause[hidden]{display:none}
.marquee-stage{overflow:hidden;margin:0 -24px 40px;padding:12px 0 20px}
.marquee-track{display:flex;width:max-content;animation:project-marquee 160s linear infinite;animation-play-state:paused;will-change:transform}
.marquee-group{display:flex;gap:20px;padding-right:20px;flex-shrink:0}
.marquee-card{position:relative;display:block;flex:0 0 auto;width:clamp(280px,32vw,520px);aspect-ratio:16/10;border:0;border-radius:12px;overflow:hidden;padding:0;cursor:pointer;background:#eee;text-align:left;color:#fff}
.marquee-card>img,.marquee-card>.character-scene{display:block;width:100%;height:100%;object-fit:cover;transition:scale .35s ease}.marquee-card:hover>img,.marquee-card:hover>.character-scene{scale:1.04}
.marquee-caption{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:end;justify-content:space-between;gap:20px;background:linear-gradient(transparent,#000b);padding:48px 20px 20px;font-size:16px;letter-spacing:-.3px}.marquee-caption>span{font-size:22px}
@keyframes project-marquee{to{transform:translate3d(-50%,0,0)}}
@media(max-width:767px){.marquee-heading{padding-top:32px;gap:12px}.marquee-heading h3{font-size:32px;letter-spacing:-1px}.marquee-heading p{font-size:10px;max-width:190px;line-height:1.5}.marquee-pause{font-size:8px;padding:8px 10px}.marquee-stage{margin:0 -16px 24px}.marquee-group{gap:12px;padding-right:12px}.marquee-card{width:280px}.marquee-caption{font-size:13px;padding:36px 16px 16px}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none;transform:none;will-change:auto}.marquee-group[aria-hidden]{display:none}.marquee-stage{overflow-x:auto}}

/* Moving landscape cards belong to the dark hero; the archive remains circular. */
.hero-marquee{position:absolute;left:0;right:0;top:51%;overflow:hidden;padding:8px 0 16px;z-index:1}.hero-marquee .marquee-track{animation-duration:55s}.hero-marquee .marquee-card{width:clamp(270px,28vw,460px);aspect-ratio:16/9;border-radius:5px}.hero-marquee .marquee-group{gap:32px;padding-right:32px}.hero-marquee .marquee-caption{font-size:10px;padding:30px 14px 12px}.work-heading{z-index:2;pointer-events:none}.hero-statement{top:79%;pointer-events:none}.hero-marquee-pause{position:absolute;right:24px;bottom:85px;border:1px solid #ffffff50;border-radius:999px;padding:8px 12px;color:#fff;background:#1119;font-size:9px;cursor:pointer;z-index:3}.hero-marquee-pause[hidden]{display:none}
.orbit-stage{position:relative;max-width:1440px;height:min(72vw,1000px);min-height:580px;margin:8px auto 16px}.orbit-card{position:absolute;left:calc(50% + var(--x));top:calc(50% + var(--y));width:14.8%;aspect-ratio:1 / 1;transform:translate(calc(-50% + var(--travel-x,0px)),calc(-50% + var(--travel-y,0px)));border:0;padding:0;border-radius:5px;overflow:hidden;cursor:pointer;background:#eee;color:#fff;will-change:transform;transition:scale .25s,rotate .25s,box-shadow .25s;z-index:1}.orbit-card>img,.orbit-card>.character-scene{display:block;width:100%;height:100%;object-fit:cover}.orbit-card:hover,.orbit-card:focus-visible{scale:1.12;rotate:-3deg;z-index:4;box-shadow:0 16px 42px #0003}.orbit-caption{position:absolute;left:0;right:0;bottom:0;padding:30px 10px 10px;background:linear-gradient(transparent,#000b);font-size:9px;display:flex;justify-content:space-between;gap:8px;opacity:0;transition:opacity .2s}.orbit-card:hover .orbit-caption,.orbit-card:focus-visible .orbit-caption{opacity:1}
.orbit-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:290px;text-align:center;z-index:5}.orbit-counter{display:block;font-size:7px;letter-spacing:1.7px;color:#777;margin-bottom:15px}.orbit-explore{display:inline-flex;align-items:center;gap:10px;border:0;padding:13px 18px;border-radius:999px;background:#505050;color:#fff;font-size:12px;cursor:pointer;min-height:44px}.orbit-explore:hover{background:#151515}.orbit-avatar{display:inline-block;vertical-align:middle;margin-left:5px;width:43px;height:43px;border-radius:50%;border:3px solid #e7e7e7}.orbit-center p{font-size:9px;color:#777;margin:15px 0 0}.orbit-pause{display:block;margin:12px auto 0;min-height:32px;border:1px solid #ddd;border-radius:999px;padding:7px 12px;background:#fff;color:#555;font-size:9px;cursor:pointer}.orbit-pause[hidden]{display:none}
@media(max-width:767px){.hero-marquee{top:54%}.hero-marquee .marquee-card{width:280px}.hero-marquee .marquee-group{gap:16px;padding-right:16px}.hero-statement{top:82%;left:20px}.hero-marquee-pause{right:20px;bottom:110px}.orbit-stage{height:118vw;min-height:480px;max-height:760px;margin:10px auto}.orbit-card{width:20%;border-radius:4px}.orbit-card:nth-of-type(n+13){display:none}.orbit-center{width:190px}.orbit-counter{font-size:5px;letter-spacing:1px;margin-bottom:10px}.orbit-explore{font-size:10px;padding:10px 12px}.orbit-avatar{width:32px;height:32px;margin-left:2px}.orbit-center p{font-size:7px;margin-top:10px}.orbit-caption{font-size:7px;padding:20px 6px 6px}}
@media(prefers-reduced-motion:reduce){.hero-marquee{overflow-x:auto}.orbit-card{will-change:auto}}

.contributions{--heat-0:#eff2f5;--heat-1:#aceebb;--heat-2:#4ac66a;--heat-3:#2da44e;--heat-4:#116329;background:#fff;color:#24292f;padding:32px max(24px,calc((100% - 1200px)/2)) 72px;font-family:Arial,Helvetica,sans-serif}
.contribution-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:36px}.contribution-kicker{font-size:8px;letter-spacing:1.6px;color:#6e7781}.contribution-heading h2{font-size:32px;font-weight:400;letter-spacing:-1px;margin:12px 0}.contribution-heading p{font-size:12px;color:#57606a;margin:0}.contribution-demo{border:1px solid #d0d7de;border-radius:999px;font-size:10px;padding:7px 12px;color:#57606a;white-space:nowrap}.contribution-summary{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px}.contribution-summary h3{font-size:14px;font-weight:400;margin:0}.contribution-summary>span{font-size:10px;color:#57606a}.contribution-panel{border:1px solid #d0d7de;border-radius:6px;padding:20px 16px 12px}.contribution-scroll{overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}.contribution-chart{--cell:12px;--gap:4px;min-width:904px;display:grid;grid-template-columns:48px 1fr;grid-template-rows:20px auto;column-gap:8px}.contribution-months{grid-column:2;display:grid;grid-template-columns:repeat(53,minmax(12px,1fr));gap:var(--gap);font-size:12px;position:relative}.contribution-months span{white-space:nowrap;grid-row:1}.contribution-days{grid-column:1;grid-row:2;display:grid;grid-template-rows:repeat(7,12px);gap:var(--gap);font-size:11px;color:#3c434b;text-align:right}.contribution-days span:nth-child(1){grid-row:2}.contribution-days span:nth-child(2){grid-row:4}.contribution-days span:nth-child(3){grid-row:6}.contribution-grid{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(53,minmax(12px,1fr));gap:var(--gap)}.contribution-week{display:grid;grid-template-rows:repeat(7,12px);gap:var(--gap)}.contribution-cell{display:block;width:100%;height:12px;min-width:12px;border:1px solid #1b1f230a;border-radius:2px;padding:0;cursor:pointer}.contribution-cell:focus-visible{outline:2px solid #0969da;outline-offset:2px}.contribution-cell:hover{outline:1px solid #57606a;outline-offset:1px}.contribution-cell:disabled{visibility:hidden}.contribution-cell[data-level="0"],.contribution-legend [data-level="0"]{background:var(--heat-0)}.contribution-cell[data-level="1"],.contribution-legend [data-level="1"]{background:var(--heat-1)}.contribution-cell[data-level="2"],.contribution-legend [data-level="2"]{background:var(--heat-2)}.contribution-cell[data-level="3"],.contribution-legend [data-level="3"]{background:var(--heat-3)}.contribution-cell[data-level="4"],.contribution-legend [data-level="4"]{background:var(--heat-4)}
.contribution-footer{display:flex;justify-content:space-between;gap:24px;align-items:start;margin-top:4px;font-size:11px;color:#57606a}.contribution-footer details{max-width:480px}.contribution-footer summary{cursor:pointer;list-style:none;padding:6px 0}.contribution-footer summary::-webkit-details-marker{display:none}.contribution-footer summary:hover{text-decoration:underline;color:#0969da}.contribution-footer details p{line-height:1.7;margin:10px 0 0;font-size:11px}.contribution-legend{display:flex;align-items:center;gap:4px;padding-top:6px}.contribution-legend i{width:11px;height:11px;border:1px solid #1b1f230a;border-radius:2px}.contribution-legend span:first-child{margin-right:2px}.contribution-legend span:last-child{margin-left:2px}.contribution-detail{font-size:10px;color:#57606a;min-height:16px;line-height:1.6;margin:12px 0 0}
@media(max-width:767px){.contributions{padding:24px 16px 48px}.contribution-heading{margin-bottom:28px}.contribution-heading h2{font-size:27px}.contribution-heading p{font-size:10px}.contribution-demo{font-size:8px;padding:6px 9px}.contribution-summary{display:block}.contribution-summary h3{font-size:12px;margin-bottom:8px}.contribution-summary>span{font-size:9px}.contribution-panel{padding:14px 10px 10px}.contribution-footer{gap:12px;flex-wrap:wrap}.contribution-footer summary{font-size:10px}.contribution-legend{margin-left:auto}.contribution-detail{font-size:9px}}

/* Contribution heatmap without month or weekday labels. */
.contribution-chart{grid-template-columns:1fr;grid-template-rows:auto;column-gap:0;min-width:844px}.contribution-grid{grid-column:1;grid-row:1}

/* Landscape preview on the left; contribution heatmap on the right. */
.contribution-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:32px;align-items:center}.activity-showcase,.activity-heatmap{min-width:0}.activity-preview{display:block;position:relative;width:100%;aspect-ratio:16/9;border:0;border-radius:10px;overflow:hidden;padding:0;cursor:pointer;background:#e5e98b}.activity-preview img{display:block;width:100%;height:100%;object-fit:cover;transition:scale .35s ease}.activity-preview:hover img{scale:1.04}.activity-preview>span{position:absolute;right:14px;bottom:14px;width:30px;height:30px;display:grid;place-items:center;background:#fffc;border-radius:50%;font-size:18px;color:#222}.activity-showcase-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px}.activity-caption{display:flex;flex-direction:column;gap:6px}.activity-caption strong{font-size:13px;font-weight:500}.activity-caption>span{font-size:8px;letter-spacing:1px;color:#6e7781}.activity-arrows{display:flex;gap:8px}.activity-arrows button{width:36px;height:36px;border:1px solid #d0d7de;border-radius:50%;background:#fff;cursor:pointer;color:#24292f;font-size:17px;transition:background .2s}.activity-arrows button:hover{background:#f0f3f1}.activity-heatmap .contribution-summary{display:block;margin-bottom:16px}.activity-heatmap .contribution-summary h3{font-size:13px;margin-bottom:8px}.activity-heatmap .contribution-summary>span{font-size:9px}.activity-heatmap .contribution-panel{padding:16px 12px 12px}.activity-heatmap .contribution-chart{min-width:0;--gap:3px}.activity-heatmap .contribution-grid{grid-template-columns:repeat(53,minmax(0,1fr))}.activity-heatmap .contribution-week{grid-template-rows:repeat(7,auto)}.activity-heatmap .contribution-cell{height:auto;min-width:0;aspect-ratio:1;border-radius:2px}.activity-heatmap .contribution-footer{gap:10px;flex-wrap:wrap;font-size:9px}.activity-heatmap .contribution-footer summary{font-size:9px}.activity-heatmap .contribution-legend{margin-left:auto}.activity-heatmap .contribution-legend i{width:9px;height:9px}.activity-heatmap .contribution-detail{font-size:9px;margin-bottom:0}
@media(max-width:767px){.contribution-layout{grid-template-columns:1fr;gap:32px}.activity-heatmap .contribution-chart{min-width:440px}.activity-showcase-bottom{padding-top:12px}.activity-heatmap .contribution-summary h3{font-size:12px}}

/* All uploaded cards participate in the same square orbit. */
.orbit-stage .orbit-card{display:block;width:var(--orbit-card-width,14.8%)}
@media(max-width:767px){.orbit-stage .orbit-card{width:var(--orbit-card-width,18%)}}

.orbit-stage .orbit-card[hidden]{display:none!important}

.work-dialog-controls[hidden],#activity-preview-image[hidden]{display:none!important}
.activity-preview:disabled{cursor:default;background:#f2f4f5;min-height:160px}
