:root{--paper: #f2efe8;--paper-deep: #e6e1d6;--ink: #1c1b19;--ink-soft: #4a4742;--ink-faint: #8a857c;--accent: #2f5f5a;--grain: rgba(28, 27, 25, .035);--header-h: 5.5rem;--ease: cubic-bezier(.22, 1, .36, 1);font-family:DM Sans,system-ui,sans-serif;line-height:1.5;font-weight:400;color:var(--ink);background-color:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(ellipse 120% 80% at 10% -10%,#ebe6dc 0%,transparent 55%),radial-gradient(ellipse 90% 70% at 100% 0%,#ddd8cc 0%,transparent 50%),radial-gradient(ellipse 80% 50% at 50% 100%,#e8e2d4 0%,transparent 45%),var(--paper);background-attachment:fixed}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.45;background-image:radial-gradient(var(--grain) .6px,transparent .6px),radial-gradient(var(--grain) .6px,transparent .6px);background-size:3px 3px,7px 7px;background-position:0 0,1.5px 1.5px}.site{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.site-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:1rem 2rem;padding:1.75rem clamp(1.25rem,4vw,3rem) 1.25rem;min-height:var(--header-h)}.brand{font-family:Fraunces,Georgia,serif;font-size:clamp(2.4rem,6vw,3.5rem);font-weight:600;letter-spacing:-.02em;line-height:1;color:var(--ink);text-decoration:none;animation:brand-in .9s var(--ease) both}.brand:hover,.brand:focus-visible{color:var(--accent)}.site-nav{display:flex;flex-wrap:wrap;gap:.35rem 1.5rem;animation:nav-in .8s var(--ease) .12s both}.nav-link{font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--ink-soft);padding:.25rem 0;border-bottom:1.5px solid transparent;transition:color .25s ease,border-color .25s ease}.nav-link:hover,.nav-link:focus-visible{color:var(--ink)}.nav-link.is-active{color:var(--accent);border-bottom-color:var(--accent)}.site-main{flex:1;padding:.5rem clamp(1.25rem,4vw,3rem) 4rem}.site-footer{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem clamp(1.25rem,4vw,3rem) 2rem;border-top:1px solid var(--paper-deep);text-align:center}.site-footer-social{display:inline-flex;color:var(--ink-soft);transition:color .25s ease}.site-footer-social:hover,.site-footer-social:focus-visible{color:var(--accent)}.site-footer-social svg{width:1.5rem;height:1.5rem}.site-footer-text{margin:0;font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.artwork-grid{column-count:1;column-gap:clamp(1rem,2.5vw,2rem)}@media(min-width:640px){.artwork-grid{column-count:2}}@media(min-width:1024px){.artwork-grid{column-count:3}}.artwork-card{display:block;break-inside:avoid;margin:0 0 clamp(1.25rem,3vw,2.25rem);position:relative;animation:piece-in .7s var(--ease) both;animation-delay:calc(var(--stagger, 0) * 70ms)}.artwork-card-link{display:block;outline:none;color:inherit;text-decoration:none}.artwork-card:nth-child(3n+2){margin-top:1.75rem}.artwork-card:nth-child(3n){margin-top:.85rem}@media(min-width:640px){.artwork-card:nth-child(odd){padding-top:.35rem}.artwork-card:nth-child(2n){padding-top:2.25rem}.artwork-card:nth-child(3n+2){margin-top:2.5rem}}.artwork-media{position:relative;overflow:hidden}.artwork-card img{display:block;width:100%;height:auto;transition:transform .45s var(--ease),filter .45s ease}.artwork-card.aspect-portrait img{aspect-ratio:3 / 4;object-fit:cover}.artwork-card.aspect-square img{aspect-ratio:1 / 1;object-fit:cover}.artwork-card:hover img,.artwork-card:focus-within img{transform:scale(1.015);filter:brightness(1.03)}.artwork-description{position:absolute;inset:auto 0 0;margin:0;padding:.85rem 1rem;font-size:.875rem;line-height:1.4;color:var(--ink-soft);background:#fff;opacity:0;transform:translateY(.4rem);pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease)}.artwork-caption{display:flex;flex-direction:column;gap:.15rem;padding:.7rem .1rem 0}.artwork-title{font-family:Fraunces,Georgia,serif;font-size:1.05rem;font-weight:500;color:var(--ink)}.artwork-year{color:var(--ink-faint);font-weight:400;font-size:.8rem}.artwork-tags{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.15rem 0;padding:.15rem .1rem 0;font-size:.75rem;letter-spacing:.04em;color:var(--ink-faint);text-transform:lowercase}.artwork-youtube{display:inline-flex;align-items:center;vertical-align:middle;margin-left:.15rem;color:var(--ink-faint);transition:color .25s ease}.artwork-youtube:hover,.artwork-youtube:focus-visible{color:var(--accent)}.artwork-youtube svg{width:1.3em;height:1.3em}.artwork-page{max-width:60rem;margin:0 auto;padding-top:.5rem;animation:piece-in .7s var(--ease) both}.back-btn{display:inline-flex;align-items:center;gap:.4rem;font:inherit;font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);background:none;border:none;border-bottom:1.5px solid transparent;padding:.25rem 0;margin-bottom:1.75rem;cursor:pointer;transition:color .25s ease,border-color .25s ease}.back-btn svg{width:1.1em;height:1.1em;transition:transform .25s var(--ease)}.back-btn:hover,.back-btn:focus-visible{color:var(--accent);border-bottom-color:var(--accent)}.back-btn:hover svg,.back-btn:focus-visible svg{transform:translate(-.15rem)}.artwork-full img{display:block;width:100%;height:auto;max-height:80vh;object-fit:contain;object-position:left top}.artwork-detail{padding-top:1.25rem;max-width:36rem}.artwork-detail-title{font-family:Fraunces,Georgia,serif;font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:600;letter-spacing:-.02em;margin:0 0 .35rem;color:var(--ink)}.artwork-detail-tags{display:flex;align-items:center;flex-wrap:wrap;gap:.15rem 0;margin:0 0 1rem;font-size:.8rem;letter-spacing:.04em;text-transform:lowercase;color:var(--ink-faint)}.artwork-detail-description{margin:0;line-height:1.65;color:var(--ink-soft)}.gallery-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 1.75rem;margin-top:3rem;padding-top:.5rem}.pagination-btn{font:inherit;font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);background:none;border:none;border-bottom:1.5px solid transparent;padding:.25rem 0;cursor:pointer;transition:color .25s ease,border-color .25s ease}.pagination-btn:hover:not(:disabled),.pagination-btn:focus-visible:not(:disabled){color:var(--accent);border-bottom-color:var(--accent)}.pagination-btn:disabled{color:var(--ink-faint);cursor:default;opacity:.5}.pagination-status{font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.about-page{max-width:36rem;padding-top:1.5rem;animation:piece-in .7s var(--ease) both}.about-title{font-family:Fraunces,Georgia,serif;font-size:clamp(2rem,4vw,2.75rem);font-weight:600;letter-spacing:-.02em;margin:0 0 1.25rem;color:var(--ink)}.about-lead{font-size:1.15rem;line-height:1.55;color:var(--ink);margin:0 0 1rem}.about-body{margin:0;padding:1.25rem 1.35rem;font-family:Courier New,Courier,monospace;color:var(--ink-soft);line-height:1.65;background:#fffdf7;text-align:justify}.about-body p{margin:0}.about-signature{display:block;margin:1.25rem auto 0;width:48px;height:48px}@keyframes brand-in{0%{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:translateY(0)}}@keyframes nav-in{0%{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:translateY(0)}}@keyframes piece-in{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.artwork-card:nth-child(n){margin-top:0;padding-top:0}}
