:root{color-scheme:dark;--bg:#111214;--text:#eeeae5;--muted:#a3a4a6;--line:#303235;--accent:#e39b65}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 'Segoe UI',Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.top{padding:24px 5%;display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{font-size:14px;font-weight:650;letter-spacing:.14em}.brand span{color:var(--accent);margin-left:10px}nav{display:flex;gap:30px;font-size:14px;color:var(--muted)}nav a:hover{color:var(--text)}main,footer{max-width:1480px;margin:auto;padding:0 5%}.project{padding:68px 0 78px;border-bottom:1px solid var(--line)}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:35px}.eyebrow{color:var(--accent);font-size:12px;letter-spacing:.18em;margin:0 0 20px}h1,h2{font-weight:450;font-size:clamp(32px,4.5vw,66px);letter-spacing:-.045em;line-height:1.12;margin:0}.project-note{color:var(--muted);font-size:14px;margin:0 0 5px}h3{font-weight:500;font-size:18px;margin:0}.gallery{border:1px solid var(--line);background:#0a0b0c}.frame{position:relative;aspect-ratio:16/9;overflow:hidden}.main-image{width:100%;height:100%;object-fit:contain;display:block;cursor:zoom-in}.expand{position:absolute;top:16px;right:16px;border:1px solid #ffffff40;background:#141414bb;padding:8px 13px;font-size:13px}.gallery-bar{display:flex;justify-content:space-between;align-items:center;padding:17px 22px;gap:18px}.caption{font-size:16px}.caption small{color:var(--muted);font-size:13px;margin-left:14px}.controls{display:flex;align-items:center;gap:12px}.counter{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;min-width:40px}.step{background:transparent;border:1px solid #45464a;width:40px;height:38px;font-size:25px;line-height:1}.step:hover{border-color:var(--accent);color:var(--accent)}.thumbs{display:flex;gap:10px;padding:0 22px 20px;overflow-x:auto}.thumb{padding:0;border:2px solid transparent;background:none;flex:0 0 114px;opacity:.55}.thumb[aria-current=true]{border-color:var(--accent);opacity:1}.thumb:hover{opacity:1}.thumb img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}.material-heading{display:flex;align-items:center;justify-content:space-between;margin:32px 0 16px;gap:16px}.material-heading span{font-size:13px;color:var(--muted)}.empty-material{height:160px;border:1px dashed #414347;background:#141517}.materials{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.materials.two{grid-template-columns:repeat(2,1fr)}.material{padding:0;text-align:left;border:1px solid var(--line);background:#0a0b0c}.material img{width:100%;aspect-ratio:16/9;object-fit:contain;display:block}.material span{display:block;padding:14px 18px;font-size:14px}.material:hover{border-color:#858585}.work-title{font-size:26px;margin-bottom:22px}.second{margin-top:70px}footer{display:flex;justify-content:space-between;padding-top:30px;padding-bottom:35px;font-size:13px;color:var(--muted)}dialog{padding:58px 20px 16px;border:1px solid var(--line);background:#0c0d0e;width:min(96vw,1800px);max-width:96vw;max-height:96vh}dialog::backdrop{background:#000e}dialog img{width:100%;height:calc(90vh - 110px);object-fit:contain}dialog p{margin:5px 0;text-align:center;color:var(--muted)}.close{position:absolute;right:20px;top:12px;background:none;border:1px solid var(--line);padding:7px 14px}@media(max-width:650px){.top{padding:18px 5%;flex-direction:column;gap:14px}nav{gap:18px;flex-wrap:wrap;font-size:13px}.project{padding:42px 0 48px}.heading{display:block;margin-bottom:25px}.project-note{margin-top:17px}.eyebrow{margin-bottom:15px}.gallery-bar{padding:13px 12px;gap:8px}.caption{font-size:14px}.caption small{display:block;margin:2px 0 0;font-size:12px}.controls{gap:7px}.step{width:34px;height:34px}.thumbs{padding:0 12px 13px;gap:7px}.thumb{flex-basis:82px}.expand{font-size:12px;top:8px;right:8px;padding:5px 9px}.materials,.materials.two{grid-template-columns:1fr 1fr;gap:12px}.material span{padding:10px;font-size:13px}.material-heading{align-items:start}.material-heading span{font-size:12px}.material-heading h3{font-size:16px}.empty-material{height:110px}.second{margin-top:45px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Pastel atmosphere and compact project notes. */
:root{color-scheme:light;--bg:#eed7e1;--text:#392b38;--muted:#6d566b;--line:#60445c33;--accent:#915573}
body{background:#eed7e1;isolation:isolate}.ambient{position:fixed;inset:-25%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 20% 25%,#efb2c799 0,transparent 42%),radial-gradient(ellipse at 75% 35%,#bab6e8aa 0,transparent 44%),radial-gradient(ellipse at 45% 80%,#ffdbbb99 0,transparent 45%);animation:atmosphere 22s ease-in-out infinite alternate}.ambient:after{content:'✧';position:absolute;left:15%;top:30%;font-size:32px;color:#fff8;filter:drop-shadow(430px 250px 1px #fff8);animation:twinkle 7s ease-in-out infinite}.top{background:#f9eaf060;position:relative;z-index:1}.cover{max-width:1480px;margin:0 auto;padding:36px 5% 30px;min-height:calc(100svh - 74px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px}.cover img{display:block;width:100%;max-height:75svh;object-fit:contain;clip-path:inset(3px);border-radius:5px}.view-works{font-size:14px;letter-spacing:.08em;border-bottom:1px solid #915573;padding:6px 0}.project{padding-top:65px}.gallery{background:#f8eff4c9;box-shadow:0 12px 45px #5b30500c;border-radius:6px;overflow:hidden}.frame{background:#090a0b}.gallery-bar{background:#fbf4f7b3}.expand{color:#fff}.thumbs{padding-top:7px}.step{border-color:#92748980}.project-details{display:grid;grid-template-columns:minmax(0,350px) 1fr;gap:clamp(30px,6vw,90px);margin-top:32px;align-items:center}.material-column>h3{font-size:16px;margin-bottom:12px}.empty-material{height:190px;background:#f7eaf24d;border-color:#82667d66;border-radius:5px}.description{max-width:580px}.description .eyebrow{margin-bottom:12px}.description>p:last-child{font-size:clamp(20px,2.2vw,30px);line-height:1.45;margin:0;font-weight:400}.compact-gallery .frame{aspect-ratio:16/9}.compact-gallery .gallery-bar{padding:10px 12px}.compact-gallery .caption{font-size:14px}.compact-gallery .caption small{display:block;margin:1px 0 0;font-size:12px}.compact-gallery .controls{gap:6px}.compact-gallery .step{width:30px;height:30px}.compact-gallery .counter{font-size:12px}.compact-gallery .thumbs{display:none}.compact-gallery .expand{font-size:12px;padding:4px 8px;top:7px;right:7px}dialog{color:#eee;--line:#ffffff44}dialog .close{color:#eee}dialog p{color:#c9bdc6}footer{color:#6d566b}h1,h2{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.035em}@keyframes atmosphere{0%{transform:translate(-3%,-2%) rotate(-3deg) scale(1)}100%{transform:translate(4%,3%) rotate(5deg) scale(1.1)}}@keyframes twinkle{0%,100%{opacity:.25}50%{opacity:.85}}@media(max-width:650px){.cover{min-height:70svh;padding-top:20px;padding-bottom:40px}.cover img{width:112%;max-width:none}.project-details{grid-template-columns:1fr;gap:25px}.material-column{max-width:350px;width:100%}.description{grid-row:1}.description>p:last-child{font-size:22px}.empty-material{height:150px}}@media(prefers-reduced-motion:reduce){.ambient,.ambient:after{animation:none}}
/* Transparent artwork and vivid animated sky. */
body{background:#eeb5d0}.ambient{background:radial-gradient(ellipse at 18% 24%,#ef8eb4 0,transparent 43%),radial-gradient(ellipse at 77% 22%,#baa0e9 0,transparent 46%),radial-gradient(ellipse at 40% 65%,#ffc694 0,transparent 38%),radial-gradient(ellipse at 86% 88%,#d99cd0 0,transparent 44%),radial-gradient(ellipse at 12% 87%,#a7c9df 0,transparent 40%);animation-duration:18s}.ambient:after{display:none}.stars{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.stars i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);background:#fff7d8;clip-path:polygon(50% 0,59% 39%,100% 50%,59% 59%,50% 100%,41% 59%,0 50%,41% 41%);animation:star-glow 6s ease-in-out var(--d) infinite}.cover{max-width:none;padding:18px 0 35px;gap:10px;min-height:calc(100svh - 74px);overflow:hidden}.cover img{width:100%;max-width:1800px;max-height:none;object-fit:contain;clip-path:none;border-radius:0}.cover .view-works{margin-top:0;background:#fcecf344;padding:8px 14px}.compact-gallery,.compact-gallery .frame{background:transparent;box-shadow:none}.compact-gallery{border:0;overflow:visible}.compact-gallery .gallery-bar{border-radius:5px;background:#fff3fa66}.compact-gallery .main-image{object-fit:contain}.compact-gallery .expand{background:#fff3fac9;color:#513a4c;border-color:#765c7060}.top{background:#f9eaf045}.gallery:not(.compact-gallery){background:#fff0f5b8}@keyframes star-glow{0%,100%{opacity:.3;transform:scale(.75)}50%{opacity:1;transform:scale(1.12)}}@media(min-width:1000px){.cover img{width:100vw}}@media(max-width:650px){.cover{min-height:65svh;padding-top:25px}.cover img{width:125%;max-width:none}.cover .view-works{margin-top:25px}}@media(prefers-reduced-motion:reduce){.stars i,.ambient{animation:none}}
/* Lettering and staggered entrance, matching the supplied pastel reference. */
:root{--text:#482b25;--muted:#71534a;--accent:#744838;--line:#63423433}body{background:#d7aebc;color:var(--text)}.ambient{inset:-9%;background:url('assets/sky.webp') center/cover no-repeat;animation:cloud-drift 28s ease-in-out infinite alternate}.stars i{background:#fff4d9;animation-duration:8s}.cover{min-height:calc(100svh - 75px);padding:0 0 35px;justify-content:center;gap:0}.hero-scene{position:relative;width:100%;max-width:1800px;aspect-ratio:1.76;isolation:isolate}.cover .jelly-layer{position:absolute;inset:0;pointer-events:none;animation:rise-in 1.8s cubic-bezier(.2,.65,.25,1) both}.cover .jelly-layer img{width:100%;height:100%;max-width:none;object-fit:fill;animation:jelly-drift 9s ease-in-out infinite alternate}.jelly-blue{clip-path:polygon(0 32%,32% 32%,32% 100%,0 100%);animation-delay:.5s!important;z-index:1}.jelly-green{clip-path:polygon(29% 0,52% 0,52% 40%,29% 40%);animation-delay:1.05s!important}.jelly-orange{clip-path:polygon(73% 35%,100% 35%,100% 100%,73% 100%);animation-delay:1.6s!important;z-index:1}.jelly-green img{animation-delay:-3s!important}.jelly-orange img{animation-delay:-5s!important}.hero-lettering{position:absolute;left:12%;right:12%;top:40%;text-align:center;z-index:2;color:#482b25}.hero-lettering h1{font-family:'Monotype Corsiva','Palace Script MT','URW Chancery L',cursive;font-weight:400;font-style:italic;letter-spacing:-.04em;font-size:clamp(60px,11.7vw,190px);line-height:1.08;margin:0;animation:rise-in 1.7s cubic-bezier(.2,.65,.25,1) .1s both}.hero-lettering p{font-family:Garamond,'Bodoni MT','Times New Roman',serif;font-size:clamp(19px,3.5vw,58px);text-transform:uppercase;letter-spacing:-.035em;line-height:1.15;transform:scaleX(.86);margin:8px 0 0;color:#482b25;animation:subtitle-in 1.6s ease .75s both}.cover .view-works{background:transparent!important;color:#482b25;border-color:#74483880;animation:rise-in 1.4s ease 2s both;margin-top:15px;transition:letter-spacing .3s,border-color .3s}.view-works:hover{letter-spacing:.13em;border-color:#482b25}.brand,nav,.project-note,footer{color:#614137}.project h2{font-family:Garamond,'Times New Roman',serif;font-weight:400;letter-spacing:-.045em}.description>p:last-child{font-family:Garamond,'Times New Roman',serif;font-size:clamp(23px,2.4vw,34px)}.scroll-reveal{opacity:0;transform:translateY(28px);transition:opacity .85s,transform 1s cubic-bezier(.2,.65,.25,1)}.scroll-reveal.is-visible{opacity:1;transform:none}.thumb{transition:opacity .25s,border-color .25s}.step{transition:background .25s,transform .25s}.step:hover{background:#fff4ed66;transform:translateY(-2px)}@keyframes rise-in{from{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}@keyframes subtitle-in{from{opacity:0;transform:translateY(60px) scaleX(.86)}to{opacity:1;transform:translateY(0) scaleX(.86)}}@keyframes jelly-drift{from{transform:translateY(0)}to{transform:translateY(-13px)}}@keyframes cloud-drift{from{transform:translate(-1%,-1%) scale(1.02)}to{transform:translate(1%,2%) scale(1.08)}}@media(max-width:650px){.cover{min-height:65svh}.hero-scene{width:120%;flex-shrink:0}.hero-lettering{left:10%;right:10%}.hero-lettering h1{font-size:14vw}.hero-lettering p{font-size:4vw}.cover .view-works{margin-top:32px}}@media(prefers-reduced-motion:reduce){.cover .jelly-layer,.cover .jelly-layer img,.hero-lettering h1,.hero-lettering p,.cover .view-works,.ambient,.stars i{animation:none}.scroll-reveal{opacity:1;transform:none;transition:none}}

.jelly-blue{clip-path:polygon(0 33%,29% 33%,29% 100%,0 100%)}.jelly-green{clip-path:polygon(30% 0,52% 0,52% 47%,30% 47%)}

/* Slow continuous background movement. */
.ambient{animation:cloud-drift 72s ease-in-out infinite alternate;will-change:transform}@keyframes cloud-drift{0%{transform:translate(-2%,-2%) scale(1.04) rotate(-1deg)}50%{transform:translate(1%,0) scale(1.09) rotate(0deg)}100%{transform:translate(2%,2%) scale(1.12) rotate(1deg)}}.hero-lettering h1{font-size:clamp(56px,10.5vw,168px)}@media(max-width:650px){.hero-lettering h1{font-size:12vw}}@media(prefers-reduced-motion:reduce){.ambient{animation:none}}

#infinity .project-details{align-items:start}#infinity .description{max-width:680px}.full-description{font-family:"Segoe UI",Arial,sans-serif;font-size:17px;line-height:1.75;color:var(--text)}.full-description p{margin:0 0 18px}.full-description p:last-child{margin-bottom:0}.full-description strong{font-weight:600}@media(max-width:650px){.full-description{font-size:16px;line-height:1.65}}

/* Personal signature and long project description. */
.top{align-items:center;padding-top:12px;padding-bottom:12px}.brand{display:flex;align-items:center;gap:15px}.brand-logo{width:58px;height:66px;object-fit:contain;filter:drop-shadow(0 3px 7px #75465c25)}.brand .brand-wordmark{color:var(--text);margin:0}.brand .brand-wordmark span{color:var(--accent);margin-left:10px}.footer-signature{display:flex;align-items:center;gap:18px}.footer-signature img{width:64px;height:74px;object-fit:contain}footer{align-items:center}#psychosis .project-details{align-items:start}#psychosis .description{max-width:680px}@media(max-width:650px){.top{align-items:flex-start}.brand-logo{width:46px;height:52px}.footer-signature{gap:10px}.footer-signature img{width:48px;height:58px}}

/* Compact project software credits and contact links. */
#other .project-details{align-items:start}#other .description{max-width:680px}.software-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px;margin:30px 0 0;color:var(--muted);font-size:12px;line-height:1.7;letter-spacing:.025em}.software-label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin-right:12px;color:var(--accent)}.software-separator{opacity:.5}.contact-links{display:flex;flex-wrap:wrap;column-gap:28px;row-gap:14px;font-size:14px}.contact-links a{display:flex;flex-direction:column;gap:3px;color:var(--text)}.contact-links a span{font-size:13px;color:var(--muted)}.contact-links a:hover,.contact-links a:hover span{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.footer-signature{flex:1;gap:24px}footer{gap:25px}@media(max-width:650px){.contact-links{gap:16px 24px}.footer-signature{align-items:flex-start;gap:15px}footer{align-items:flex-start;flex-wrap:wrap}.software-line{font-size:12px;gap:5px}.software-label{width:100%;margin:0 0 3px}}

/* Isolate gallery paints and pause artwork outside the viewport. */
.frame{contain:layout paint}
.gallery-status{position:absolute;bottom:12px;left:12px;right:12px;margin:0;padding:7px 12px;background:#fbf4f7e6;color:#482b25;border-radius:4px;font-size:16px;pointer-events:none}
.gallery-status[hidden]{display:none}
.cover.motion-paused *,.page-hidden .ambient,.page-hidden .stars i{animation-play-state:paused!important}

/* User supplied Cormorant, embedded in the standalone export. */
@font-face{font-family:'Cormorant';src:url('assets/cormorant.ttf') format('truetype');font-style:normal;font-weight:300 700;font-display:swap}
@font-face{font-family:'Cormorant';src:url('assets/cormorant-italic.ttf') format('truetype');font-style:italic;font-weight:300 700;font-display:swap}
body,button,h1,h2,h3,.project h2,.hero-lettering h1,.hero-lettering p,.description>p:last-child,.full-description{font-family:'Cormorant',Georgia,serif}
body{font-size:18px}.full-description{font-size:20px;line-height:1.55}.full-description strong{font-weight:600}.caption{font-size:18px}.caption small,.counter{font-size:15px}.software-line,.software-label,.software-line span{font-size:14px}.contact-links{font-size:18px}.contact-links a span{font-size:16px}nav{font-size:16px}.eyebrow{font-size:14px}.project-note{font-size:16px}.compact-gallery .caption{font-size:17px}.compact-gallery .caption small,.compact-gallery .counter{font-size:14px}.hero-lettering h1{font-weight:400}.hero-lettering p{font-weight:500}.brand-wordmark{font-weight:600}@media(max-width:650px){.full-description{font-size:18px}.software-line,.software-label,.software-line span{font-size:13px}.caption{font-size:16px}nav{font-size:15px}}
