/* Project covers form the layout. Space is an atmosphere around the work. */
.project-portfolio .portfolio-intro{padding:55px 5.5% 43px;position:relative;max-width:1600px;margin:auto;min-height:0}.cosmos-theme .project-portfolio .portfolio-intro h1,.project-portfolio .portfolio-intro h1{font:400 clamp(34px,4.5vw,65px)/1.08 'Space Grotesk',sans-serif;text-transform:none;letter-spacing:-.055em;margin:13px 0 18px;max-width:800px}.project-portfolio .portfolio-intro h1 em{font-family:Georgia,serif;font-style:italic;color:var(--accent);letter-spacing:-.06em}.project-portfolio #intro{font-size:12px;color:var(--muted);max-width:430px;line-height:1.8}.project-portfolio .portfolio-intro .eyebrow{font-size:8px}.project-portfolio .orbital-system{width:180px;right:7%;top:38px;aspect-ratio:1;opacity:.65;pointer-events:none;transition:transform 2s}.project-portfolio .orbital-track{border-color:rgba(var(--space-rgb),.16)}.project-portfolio .planet-body{box-shadow:0 0 45px rgba(var(--space-rgb),.08)}.project-portfolio .nebula-mist{opacity:.65}.project-portfolio .cosmic-grain{opacity:.08}.cosmos-theme .project-portfolio .work-section{padding:0 5.5% 95px;max-width:1600px;margin:auto}.work-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:22px 0 28px;gap:20px}.cosmos-theme .project-portfolio .work-heading h2{font:400 12px/1.6 'DM Sans',sans-serif;letter-spacing:0}.work-heading h2 span{font:8px monospace;color:var(--accent);margin-left:8px}.work-heading>.eyebrow{font-size:8px;letter-spacing:.5px}.cosmos-theme .project-portfolio .project-list{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:58px 32px}.cosmos-theme .project-portfolio .project:nth-child(n){display:block;border:0;padding:0;margin:0;min-width:0;grid-column:span 6}.cosmos-theme .project-portfolio .project:nth-child(5n+1){grid-column:span 7}.cosmos-theme .project-portfolio .project:nth-child(5n+2){grid-column:span 5;padding-top:82px}.cosmos-theme .project-portfolio .project:nth-child(5n+3){grid-column:span 5}.cosmos-theme .project-portfolio .project:nth-child(5n+4){grid-column:span 7;padding-top:82px}.cosmos-theme .project-portfolio .project:nth-child(5n){grid-column:3/span 8;padding-top:10px}.project-link{display:block;width:100%;padding:0;text-align:left;background:transparent;color:var(--ink);border-radius:0}.project-link:hover{background:transparent}.cosmos-theme .project-portfolio .project-visual,.cosmos-theme .project-portfolio .project:first-child .project-visual{display:block;position:relative;width:100%;height:475px;min-height:0;padding:0;border:0;border-radius:2px;overflow:hidden;background:#15131b;box-shadow:none;isolation:isolate}.project-portfolio .project-visual::before,.project-portfolio .project-visual::after{display:none}.cosmos-theme .project-portfolio .project:nth-child(5n+2) .project-visual{height:500px}.cosmos-theme .project-portfolio .project:nth-child(5n+3) .project-visual{height:460px}.cosmos-theme .project-portfolio .project:nth-child(5n+4) .project-visual{height:455px}.cosmos-theme .project-portfolio .project:nth-child(5n) .project-visual{height:480px}.cosmos-theme .project-portfolio .project-copy,.cosmos-theme .project-portfolio .project:first-child .project-copy{max-width:none;padding:19px 2px 0}.project-portfolio .project-title{gap:13px;justify-content:start}.cosmos-theme .project-portfolio .project-title h3,.cosmos-theme .project-portfolio .project:first-child h3{font:400 20px/1.2 'DM Sans',sans-serif;letter-spacing:-.7px}.cosmos-theme .project-portfolio .project-number{font:8px monospace;letter-spacing:.4px;color:var(--muted);margin:0}.project-arrow{font:18px sans-serif;color:var(--muted);margin-left:auto;transition:transform .3s,color .3s}.project-link:hover .project-arrow{transform:translate(3px,-3px);color:var(--accent)}.cosmos-theme .project-portfolio .project-category{font:8px/1.8 monospace;letter-spacing:.5px;text-transform:none;margin:6px 0 0 26px;color:var(--muted)}.project-peek{position:absolute;bottom:22px;right:22px;background:#17141ee8;color:#eee9f4;border:1px solid #ffffff2a;padding:10px 14px;font:8px/1.5 monospace;letter-spacing:.5px;opacity:0;transform:translateY(7px);transition:opacity .3s,transform .3s;z-index:4;backdrop-filter:blur(10px)}.project-link:hover .project-peek,.project-link:focus-visible .project-peek{opacity:1;transform:none}.project-art{position:absolute;inset:0;overflow:hidden;pointer-events:none}.art-title{position:absolute;top:36px;left:36px;z-index:1;font:400 clamp(36px,4vw,65px)/.94 'Space Grotesk',sans-serif;letter-spacing:-.055em}.art-title span{color:inherit;opacity:.5}.art-title em{font-family:Georgia,serif;font-style:italic;letter-spacing:-.04em}.art-footnote{position:absolute;left:30px;bottom:23px;font:8px/1.4 monospace;letter-spacing:1px;z-index:2;text-transform:uppercase;opacity:.6}.art-device{position:absolute;border:5px solid #29292e;border-radius:26px;padding:1px;overflow:hidden;box-shadow:15px 24px 45px #0007;background:#000;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.art-device img{width:100%;height:auto;display:block;border-radius:18px}.art-filing{background:radial-gradient(ellipse at 80% 100%,#34324b,#14151a 70%);color:#d5d4df}.art-filing .art-title{font-size:clamp(38px,4.5vw,73px);max-width:300px}.art-filing .art-title span{color:#a598c1}.filing-device-back{width:26%;min-width:125px;left:44%;top:17%;transform:rotate(-13deg)}.filing-device-front{width:31%;min-width:150px;right:5%;top:31%;transform:rotate(10deg)}.project-link:hover .filing-device-back{transform:translateY(-10px) rotate(-10deg)}.project-link:hover .filing-device-front{transform:translateY(-10px) rotate(7deg)}.art-orbit{position:absolute;width:105%;height:60%;left:-5%;top:42%;border:1px solid #ffffff0c;border-radius:50%;transform:rotate(-25deg);box-shadow:0 0 0 35px #ffffff02,0 0 0 36px #ffffff07}.art-outlier{background:radial-gradient(ellipse at 80% 90%,#33261f,#171411 75%);color:#eadbca}.art-outlier .art-title{font:700 clamp(37px,4.5vw,67px) 'Space Grotesk',sans-serif;top:30px;letter-spacing:-.08em}.art-outlier .art-title span{color:#edaa7f;font-size:.8em;margin-left:12px;opacity:1}.art-browser{position:absolute;border:1px solid #ffffff26;border-radius:7px;background:#1d1c20;padding:16px 0 0;overflow:hidden;box-shadow:15px 15px 40px #44332530;transition:transform .6s}.art-browser::before{content:'● ● ●';position:absolute;top:2px;left:8px;font-size:6px;letter-spacing:2px;color:#b79d88}.art-browser img{width:100%;height:auto;display:block}.outlier-browser{width:87%;height:245px;top:130px;left:6%;transform:rotate(-5deg)}.outlier-phone{width:28%;min-width:116px;right:7%;top:48%;transform:rotate(8deg);border:4px solid #3b332c;padding:0;box-shadow:10px 15px 30px #0006;background:#1a1714}.outlier-phone img{border-radius:20px}.project-link:hover .outlier-browser{transform:translateY(-8px) rotate(-3deg)}.project-link:hover .outlier-phone{transform:translateY(-9px) rotate(5deg)}.art-survey{background:radial-gradient(ellipse at top right,#31416d,#11192f 80%);color:#fff2d9}.art-survey .art-title{font-size:clamp(46px,5.4vw,82px);top:35px;left:35px;letter-spacing:-.06em}.survey-fragment{position:absolute;width:88%;height:170px;left:6%;bottom:58px;overflow:hidden;border-radius:7px;transform:rotate(-5deg);box-shadow:0 15px 35px #0006;transition:transform .6s}.survey-fragment img{width:100%;max-width:none;display:block;transform:translateY(-58%)}.project-link:hover .survey-fragment{transform:translateY(-8px) rotate(-2deg)}.art-trivia{background:radial-gradient(ellipse at top right,#30233e,#16121c 80%);color:#efd4fb}.art-trivia .art-title{font-size:clamp(50px,5.5vw,85px);top:34px;left:35px;line-height:.98}.trivia-logo{position:absolute;width:22%;right:11%;top:36%;border-radius:22%;transform:rotate(13deg);box-shadow:10px 20px 40px #160b2970;z-index:2;transition:transform .6s}.project-link:hover .trivia-logo{transform:translateY(-10px) rotate(5deg)}.trivia-orbit{position:absolute;border:1px solid #e9beff25;border-radius:50%;width:87%;height:70%;right:-15%;top:5%;transform:rotate(-35deg);box-shadow:0 0 0 35px #e9beff04,0 0 0 36px #e9beff0b}.trivia-orbit.orbit-b{transform:rotate(35deg);right:-28%;top:26%}.art-memory{background:radial-gradient(ellipse at 90% 40%,#202b38,#0d1117 70%);color:#bccbd8}.art-memory .art-title{top:55px;left:45px;font-size:clamp(48px,5.4vw,85px);z-index:2}.memory-phone{width:25%;min-width:160px;right:10%;top:10%;transform:rotate(10deg);border-color:#323c49;background:#000}.project-link:hover .memory-phone{transform:translateY(-10px) rotate(4deg)}.memory-number{position:absolute;font:400 95px Georgia,serif;color:#ffffff0b}.number-one{left:7%;bottom:50px;transform:rotate(-15deg)}.number-two{left:37%;top:48%;transform:rotate(8deg)}.number-three{right:4%;top:10px;transform:rotate(15deg)}.art-generic{background:radial-gradient(ellipse at bottom right,rgba(var(--space-rgb),.2),#121218 75%);color:var(--ink)}.art-generic>img{position:absolute;width:90px;height:90px;right:15%;bottom:24%;border-radius:20px;box-shadow:10px 20px 40px #0005;transform:rotate(-10deg)}.art-generic .art-title{max-width:75%;line-height:1.05}.generic-phone{width:26%;right:5%;bottom:-20%}.project-portfolio .project-custom-image{object-fit:cover}.project-portfolio .photography-section{border-top:1px solid var(--line)}.cosmos-theme .project-portfolio .photography-section,.cosmos-theme .project-portfolio .about-section{padding:65px 5.5% 85px;max-width:1600px;margin:auto}.project-portfolio .photography-section .section-top{border:0;padding:0}.cosmos-theme .project-portfolio .section-heading{margin:42px 0 40px}.cosmos-theme .project-portfolio .section-heading h2,.cosmos-theme .project-portfolio .about-layout h2{font-size:clamp(40px,4.5vw,65px)}.cosmos-theme .project-portfolio .photo-button{padding:0;border:0;border-radius:1px;background:transparent;box-shadow:none}.cosmos-theme .project-portfolio .photo-button img{border-radius:1px;filter:none}.project-portfolio .about-section .section-top{padding-top:22px}.project-portfolio .about-copy{max-width:450px}.cosmos-theme .project-portfolio footer{padding:0 5.5% 35px;background:transparent;border:0}.project-portfolio .footer-bottom{padding-top:24px}.project-portfolio .preview-mode footer{padding-bottom:160px}.project-portfolio.preview-mode footer{padding-bottom:160px}.cosmos-theme .project-portfolio .project-dialog,.project-portfolio .project-dialog{width:100%;max-width:none;height:100%;max-height:100%;margin:0;padding:55px 6% 70px;background:var(--paper);border:0;border-radius:0;overflow-y:auto;overscroll-behavior:contain}.project-portfolio #project-detail{max-width:1150px;margin:0 auto}.project-portfolio .project-dialog>.dialog-close{position:fixed;right:28px;top:24px;width:40px;height:40px;z-index:10}.case-nav{display:flex;align-items:center;justify-content:space-between;padding:0 60px 20px 0;border-bottom:1px solid var(--line);color:var(--muted);font:9px monospace;letter-spacing:1px}.case-nav>div{display:flex;gap:8px}.case-nav button,.case-bottom button{background:transparent;border:1px solid var(--line);color:var(--ink);padding:8px 13px;font:13px monospace}.case-heading{padding:50px 0 35px;background:transparent;border:0}.case-heading .detail-category{font:9px monospace;letter-spacing:1px;color:var(--accent);margin-bottom:18px}.cosmos-theme .project-portfolio .project-dialog h2{font:400 clamp(47px,7.5vw,105px)/1.02 'Space Grotesk',sans-serif;letter-spacing:-.065em;margin:0 0 23px}.project-portfolio .detail-description{max-width:600px;font-size:16px;line-height:1.9;margin:0 0 18px;color:var(--muted)}.project-portfolio .detail-links{gap:28px;margin-top:10px}.project-portfolio .detail-links .text-link{font-size:9px}.cosmos-theme .project-portfolio .case-art{height:580px;margin:15px 0 65px;max-width:1150px}.case-art .art-title{font-size:clamp(50px,7vw,110px);top:45px;left:50px}.case-art .art-device{max-width:260px}.case-art .filing-device-back{left:45%;top:8%}.case-art .filing-device-front{right:10%;top:24%}.case-art .outlier-browser{width:70%;left:12%;top:175px;height:335px}.case-art .outlier-phone{width:18%;right:10%;top:33%}.case-art .survey-fragment{width:68%;left:16%;height:240px;bottom:45px}.case-art .art-survey .art-title{font-size:100px}.case-art .trivia-logo{width:180px;right:17%;top:30%}.case-art .memory-phone{right:17%;top:3%}.case-art .memory-number{font-size:170px}.case-notes{max-width:680px;margin:0 0 70px}.case-notes h3{font:9px monospace;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:20px}.case-notes p{font-size:15px;line-height:1.9;color:var(--muted);white-space:pre-line}.case-screens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;padding:40px;background:#ffffff03;align-items:start}.case-screens figure{margin:0;min-width:0}.case-screens img{width:100%;height:auto;display:block;border-radius:3px;border:1px solid var(--line)}.case-screens figcaption{font:9px/1.8 monospace;color:var(--muted);margin-top:13px}.case-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:30px;margin-top:65px;font:10px monospace;color:var(--muted)}.case-bottom button{font-size:10px;padding:11px 15px}.project-portfolio .direction-preview>span{font-size:7px}.project-portfolio .direction-preview p{font-size:7px}.project-portfolio .motion-ready .reveal{transition:opacity .7s,transform .9s cubic-bezier(.2,.7,.2,1)}
@media(max-width:1000px){.project-portfolio .portfolio-intro .orbital-system{width:140px;right:6%;top:48px}.cosmos-theme .project-portfolio .project-list{gap:43px 25px}.cosmos-theme .project-portfolio .project-visual,.cosmos-theme .project-portfolio .project:first-child .project-visual{height:400px}.cosmos-theme .project-portfolio .project:nth-child(5n+2) .project-visual{height:425px}.cosmos-theme .project-portfolio .project:nth-child(5n+3) .project-visual{height:380px}.cosmos-theme .project-portfolio .project:nth-child(5n+4) .project-visual{height:400px}.art-title,.art-filing .art-title{top:30px;left:27px;font-size:45px}.filing-device-back{left:39%;top:29%;min-width:113px}.filing-device-front{right:1%;top:41%;min-width:127px}.art-outlier .art-title{font-size:42px;left:22px;top:32px}.outlier-browser{height:180px;top:105px}.outlier-phone{top:44%;min-width:103px}.art-survey .art-title{font-size:60px;left:27px;top:30px}.survey-fragment{height:130px;bottom:57px}.art-trivia .art-title{font-size:63px;left:27px;top:32px}.trivia-logo{top:42%;right:9%;width:24%}.art-memory .art-title{font-size:65px;top:50px;left:35px}.memory-phone{right:7%;top:17%}.case-art .art-title{font-size:80px}}
@media(max-width:650px){.cosmos-theme .project-portfolio .site-header{padding:22px 6%;gap:12px}.cosmos-theme .project-portfolio .site-header nav{font-size:9px;gap:17px}.project-portfolio .portfolio-intro{padding:35px 6% 32px}.cosmos-theme .project-portfolio .portfolio-intro h1{font-size:37px;max-width:290px;margin:10px 0 17px}.project-portfolio #intro{font-size:11px;max-width:270px}.project-portfolio .portfolio-intro .eyebrow{font-size:7px}.project-portfolio .portfolio-intro .orbital-system{width:90px;right:4%;top:19px;opacity:.55}.cosmos-theme .project-portfolio .work-section{padding:0 6% 65px}.work-heading{padding:18px 0 23px}.cosmos-theme .project-portfolio .work-heading h2{font-size:11px}.work-heading>.eyebrow{font-size:7px;max-width:130px;text-align:right}.cosmos-theme .project-portfolio .project-list{display:block}.cosmos-theme .project-portfolio .project:nth-child(n){display:block;padding:0;margin-bottom:35px}.cosmos-theme .project-portfolio .project-visual,.cosmos-theme .project-portfolio .project:nth-child(n) .project-visual{height:385px}.cosmos-theme .project-portfolio .project:nth-child(2) .project-visual{height:425px}.cosmos-theme .project-portfolio .project:nth-child(5) .project-visual{height:370px}.cosmos-theme .project-portfolio .project-copy,.cosmos-theme .project-portfolio .project:first-child .project-copy{padding-top:15px}.cosmos-theme .project-portfolio .project-title h3,.cosmos-theme .project-portfolio .project:first-child h3{font-size:18px}.cosmos-theme .project-portfolio .project-category{font-size:7px;margin-top:4px}.project-portfolio .project-peek{display:none}.art-filing .art-title{font-size:50px;left:25px;top:27px}.filing-device-back{min-width:110px;width:31%;left:37%;top:33%;border-width:4px;border-radius:22px}.filing-device-front{min-width:123px;width:36%;right:3%;top:43%;border-width:4px;border-radius:22px}.art-device img{border-radius:17px}.art-footnote{font-size:7px;left:22px;bottom:19px}.art-outlier .art-title{font-size:52px;left:26px;top:30px}.outlier-browser{height:195px;top:120px}.outlier-phone{min-width:106px;top:46%;right:7%}.art-survey .art-title{font-size:63px;top:29px;left:27px}.survey-fragment{height:138px;bottom:56px}.art-trivia .art-title{font-size:70px;left:27px;top:29px}.trivia-logo{width:27%;right:10%;top:43%}.art-memory .art-title{font-size:50px;left:24px;top:31px}.memory-phone{min-width:130px;width:37%;right:5%;top:33%}.memory-number{font-size:75px}.number-two{left:35%;top:54%}.number-three{right:5%;top:15px}.cosmos-theme .project-portfolio .photography-section,.cosmos-theme .project-portfolio .about-section{padding:45px 6% 65px}.cosmos-theme .project-portfolio .section-heading h2,.cosmos-theme .project-portfolio .about-layout h2{font-size:40px}.cosmos-theme .project-portfolio .section-heading{margin:32px 0 30px}.cosmos-theme .project-portfolio .section-heading p{font-size:11px}.cosmos-theme .project-portfolio footer{padding:0 6% 30px}.project-portfolio.preview-mode footer{padding-bottom:150px}.cosmos-theme .project-portfolio .project-dialog{padding:60px 6% 45px}.project-portfolio .project-dialog>.dialog-close{top:14px;right:15px;width:34px;height:34px;font-size:16px}.case-nav{font-size:8px;padding-right:0}.case-nav button{padding:7px 10px;font-size:11px}.case-heading{padding-top:34px}.cosmos-theme .project-portfolio .project-dialog h2{font-size:clamp(40px,10vw,65px);margin-bottom:20px}.project-portfolio .detail-description{font-size:13px;line-height:1.8}.case-heading .detail-category{font-size:8px;margin-bottom:14px}.cosmos-theme .project-portfolio .case-art{height:385px;margin:10px 0 40px}.case-art .art-title{font-size:50px;left:25px;top:27px}.case-art .filing-device-back{left:37%;top:27%;min-width:110px}.case-art .filing-device-front{right:3%;top:40%;min-width:120px}.case-art .outlier-browser{width:87%;left:6%;top:120px;height:180px}.case-art .outlier-phone{width:29%;min-width:105px;right:7%;top:43%}.case-art .art-survey .art-title{font-size:62px;left:26px;top:29px}.case-art .survey-fragment{width:88%;left:6%;height:138px;bottom:56px}.case-art .trivia-logo{width:90px;right:10%;top:44%}.case-art .art-trivia .art-title{font-size:67px}.case-art .memory-phone{right:5%;top:31%;width:37%;min-width:128px}.case-art .memory-number{font-size:90px}.case-screens{display:block;padding:20px}.case-screens figure+figure{margin-top:30px}.case-screens figcaption{font-size:8px}.case-notes{margin-bottom:40px}.case-notes p{font-size:13px}.case-bottom{margin-top:40px;font-size:8px}.case-bottom button{font-size:9px}}
@media(prefers-reduced-motion:reduce){.project-portfolio .art-device,.project-portfolio .art-browser,.project-portfolio .survey-fragment,.project-portfolio .trivia-logo{transition:none}.project-portfolio .project-link:hover .art-device,.project-portfolio .project-link:hover .art-browser{translate:none}}
.project-portfolio [data-color=olive]{--work-glow:116,121,89}.project-portfolio [data-color=peach]{--work-glow:188,126,86}.project-portfolio [data-color=lavender]{--work-glow:139,112,171}.project-portfolio [data-color=blue]{--work-glow:95,137,164}.project-portfolio .project-art::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 100% 0,rgba(var(--work-glow,var(--space-rgb)),.12),transparent 65%);pointer-events:none;z-index:1}.project-portfolio .art-generic{background:radial-gradient(ellipse at bottom right,rgba(var(--work-glow,var(--space-rgb)),.24),#121218 75%)}
.cosmos-theme .project-portfolio .project[data-color] .project-visual{border:0;border-radius:2px;box-shadow:none;padding:0}.project-portfolio .portfolio-intro{padding-top:40px;padding-bottom:32px}
@media(max-width:650px){.project-portfolio .portfolio-intro{padding-top:35px;padding-bottom:32px}}
/* Continuous compositor motion replaces the low-rate per-pixel canvas renderer. */
.project-portfolio .planet-texture{position:absolute;inset:0 auto 0 0;width:400%;height:100%;background-image:url('/space/planet-nebula.webp');background-size:50% 100%;background-repeat:repeat-x;transform:translate3d(0,0,0);animation:planet-surface-drift 72s linear infinite;will-change:transform}
[data-theme=eclipse] .project-portfolio .planet-texture{background-image:url('/space/planet-eclipse.webp')}[data-theme=aurora] .project-portfolio .planet-texture{background-image:url('/space/planet-aurora.webp')}
.project-portfolio .planet-body{isolation:isolate;transform:translateZ(0)}.project-portfolio .planet-body::after{z-index:1;pointer-events:none;background:radial-gradient(circle at 25% 25%,#ffffff12,transparent 45%),linear-gradient(130deg,transparent 15%,#05030825 45%,#020103e8 85%),radial-gradient(circle at 48% 42%,transparent 50%,#0009 90%);box-shadow:inset 0 0 10px #0006}
.project-portfolio .orbital-system[data-motion=paused] .planet-texture{animation-play-state:paused;will-change:auto}
@keyframes planet-surface-drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){.project-portfolio .planet-texture{animation:none;transform:none;will-change:auto}}

/* Keep daily GitHub activity visible alongside the portfolio. */
.activity-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:25px 0}.activity-heading h3{font:400 13px/1.5 'DM Sans',sans-serif;letter-spacing:0}.activity-heading .text-link{font:10px/1.5 monospace;color:var(--muted)}
