:root{--paper:#fff8fc;--white:#fffafd;--ink:#471d36;--muted:#846579;--line:#eed8e5;--blue:#bd1b69}
body{background:#fff8fc;color:var(--ink)}.shell{position:relative}header{position:relative;z-index:2}.wordmark{color:#b71d65}nav a:hover,nav button:hover{color:#e92a8c}.hero{position:relative;isolation:isolate}.hero-art{position:absolute;inset:-70px -56px -25px;z-index:-1;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 24% 44%,#f9c5e25c,transparent 60%)}#glitter-canvas{width:100%;height:100%;display:block}.hero h1{position:relative;color:#b91b67}.hero h1>span{background:linear-gradient(110deg,#a80e56 8%,#e93b92 26%,#ff9bd2 29%,#bc1766 33%,#c01e72 48%,#ffb0d9 52%,#af0d5a 59%,#d72e89 84%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:name-in .9s cubic-bezier(.2,.7,.15,1) both,letter-shine 9s ease-in-out infinite}.hero h1>span:nth-child(2){animation-delay:.12s,.6s}.name-period{color:#e7449e}.hero-bio h2{color:#681e4d}.hero-bio p{color:#85657b}.underlined{background:#bc1b68;color:white;border:0;border-radius:50px;padding:11px 21px;gap:40px;box-shadow:0 6px 20px #cb3a8a20;transition:transform .2s,background .2s}.underlined:hover{background:#d22c7e;transform:translateY(-2px)}.hero-top,.hero-bottom>span{color:#98748c}.hero-bottom>a{color:#af1e64}.section-title h2{color:#601d43}.section-title>button{background:#fffafd;color:#a92569;border-color:#eebdd6}.project-tab{transition:background .2s,transform .3s}.project-tab:hover{background:#f9e3ef;transform:translateX(3px)}.project-tab.selected{background:#be1b6b;box-shadow:0 5px 15px -10px #a71760}.selected .tab-copy small{color:#ffe1f0}.tab-thumb{background:#f3d8e9;color:#a62f71}.tab-copy small{color:#96748b}.search{border-color:#ebcddd;background:#fffdfd;box-shadow:0 4px 16px -12px #b7246b66}.search:focus-within{border-color:#d94997;box-shadow:0 0 0 3px #e95ba41a}.filter select{color:#82556f}.index-note{color:#9b788f}.project-list{scrollbar-color:#e4a4c6 transparent}.project-heading h3{color:#74204e}.project-category,.project-heading>span{color:#a07892}.media{border:1px solid #eac4d9;box-shadow:0 18px 45px -28px #b22d7770;background:#f9e7f1;border-radius:12px}.gallery-bar{display:none}.gallery-stage,.gallery-stage.is-portrait{background:#f8e8f1}.portrait-gallery .gallery-stage{background:#f9e6f1}.gallery-thumb{border-color:#edcddd;background:#fffafd;transition:transform .2s,border .2s}.gallery-thumb.active{border-color:#ca2b7e;background:#fbe3f0}.gallery-thumb:hover{transform:translateY(-2px)}.gallery-thumb.active>span{color:#aa185d}.gallery-caption{color:#9a6b85}.gallery-nav button,.zoom-nav button{border-color:#edc8dc;color:#b62973;background:#fffafd}.gallery-nav button:hover,.zoom-nav button:hover{background:#c52d7b;color:white;border-color:#c52d7b}.expand-hint{color:#ad206b;background:#fff6fbea;border-color:#eab7d2}.ownership,.ownership.company{color:#9a718c}.ownership.company{background:#f9eaf3;border-left-color:#d64591}.project-info p{color:#775468}.project-stack>span{background:#f7e4ef;color:#a55c83}.project-pagination>span{color:#a57290}.project-pagination button{border-color:#e9cadd;background:#fffafd;color:#b62973}.file-visual{background:#fae9f3}.file-description,.source-tree{color:#8d5c79}.contact{border-color:#ebc6dc}.contact>a{color:#b71a67}.contact>a>span{color:#dc3d91}.contact>span,footer{color:#ac7e98}.scroll-progress{background:linear-gradient(90deg,#ba156a,#ef5daf,#d5a5ff)}dialog{background:#fff9fd;box-shadow:0 25px 90px #7a285844}dialog::backdrop{background:#43112f70;backdrop-filter:blur(8px)}dialog p{color:#906e83}.close{color:#a42468}.done{background:#bd1b69}.gallery-foot{padding-top:5px}.zoom-surface.lofi-crop{width:min(84vw,145.45vh);aspect-ratio:64/33;position:relative;overflow:hidden}.zoom-surface.lofi-crop #expanded-image{position:absolute;top:-3.0303%;left:0;width:100%;height:auto;max-height:none;max-width:none}.gallery-controls[data-gallery=lofi] .gallery-thumb{position:relative}.gallery-controls[data-gallery=lofi] .gallery-thumb img{object-fit:cover;object-position:50% 10%}
.scroll-motion .reveal{transform:translate3d(0,45px,0);transition-duration:.95s}.scroll-motion #project-media.reveal{transform:translate3d(0,45px,0) scale(.97);transition:opacity .95s,transform .95s cubic-bezier(.18,.7,.15,1)}.scroll-motion #project-media.reveal.is-visible{transform:none}.motion-paused .hero h1>span{background-position:45% 0;animation:none}.image-dialog{border:1px solid #eabed6}.project-tab:focus-visible{outline-color:#d53b90}
@keyframes letter-shine{0%,20%{background-position:0% 50%}70%,100%{background-position:100% 50%}}
.project{position:relative}.project-tab.selected .tab-indicator{animation:selected-pop .55s cubic-bezier(.2,.7,.15,1)}.gallery-nav button:active,.zoom-nav button:active{transform:scale(.9)}.hero-bottom>a>span{animation:scroll-nudge 2s ease-in-out infinite}.transition-ghost .gallery-stage{height:100%}.transition-ghost .product-gallery{height:100%}
@keyframes selected-pop{0%{transform:translate(-7px,7px);opacity:0}100%{transform:none;opacity:1}}@keyframes scroll-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media(max-width:1100px) and (min-width:761px){.hero-art{left:-32px;right:-32px}}
@media(max-width:760px){.hero-art{inset:-50px -22px -20px}.hero-bio h2{color:#7e2458}.gallery-stage .expand-hint{background:#fff5fbe8}.zoom-surface.lofi-crop{width:85vw}.scroll-motion #project-media.reveal{transform:translateY(30px) scale(.98)}.scroll-motion #project-media.reveal.is-visible{transform:none}}
@media(prefers-reduced-motion:reduce){.hero h1>span{animation:none}.scroll-motion #project-media.reveal{transform:none;opacity:1}.project-tab:hover{transform:none}}

