:root{--bg:#fff;--bg-alt:#fafaf9;--ink:#161616;--ink-soft:#6b6b6b;--ink-faint:#9a9a9a;--rule:#e8e8e6;--hover:#8a8a8a;--serif:"Source Serif 4", Georgia, serif;--sans:"Archivo", "Helvetica Neue", sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--pad-x:clamp(1.5rem, 4vw, 3.5rem);--max-w:1600px;--header-h:3.5rem}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-weight:400;line-height:1.6;overflow-x:hidden}body.no-scroll{overflow:hidden}::selection{background:var(--ink);color:#fff}img{display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}a{color:var(--ink);text-decoration:none}:focus-visible{outline:1.5px solid var(--ink);outline-offset:3px}.container{max-width:var(--max-w);padding-left:var(--pad-x);padding-right:var(--pad-x);margin:0 auto}.eyebrow{letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:3.5rem;font-size:.72rem;font-weight:500}section.block{padding:clamp(5rem,10vw,9rem) 0}section.block.alt{background:var(--bg-alt)}.serif-heading{font-family:var(--serif);letter-spacing:-.015em;font-size:clamp(2rem,4vw,3.25rem);font-style:italic;font-weight:300;line-height:1.12}.reveal{opacity:0;transition:opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);transition-delay:var(--reveal-delay,0s);transform:translateY(28px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}}.fade-img{opacity:0;transition:opacity .9s var(--ease-out)}.fade-img.loaded{opacity:1}.site-header{z-index:100;padding:1.6rem var(--pad-x);border-bottom:1px solid #0000;justify-content:center;align-items:center;transition:background .4s,border-color .4s,padding .4s;display:flex;position:fixed;top:0;left:0;right:0}.site-header.scrolled{-webkit-backdrop-filter:blur(10px);border-bottom-color:var(--rule);height:var(--header-h);background:#fffffff7;padding-top:0;padding-bottom:0}.site-header .brand{letter-spacing:.34em;text-transform:uppercase;color:#fff;font-size:.82rem;font-weight:500;transition:color .4s}.site-header.scrolled .brand{color:var(--ink)}.hero{justify-content:center;align-items:center;height:100svh;min-height:620px;display:flex;position:relative;overflow:hidden}.hero-image{animation:hero-drift 18s var(--ease-out) forwards;background-position:50%;background-size:cover;position:absolute;inset:0}@keyframes hero-drift{0%{transform:scale(1.06)}to{transform:scale(1)}}.hero:after{content:"";background:linear-gradient(#0000001f,#0000 30%),radial-gradient(65% 45%,#00000052 0%,#0000001a 45%,#0000 75%);position:absolute;inset:0}.hero h1{z-index:2;color:#fff;letter-spacing:.06em;text-transform:uppercase;text-align:center;text-shadow:0 2px 40px #00000059;opacity:0;animation:hero-title 1.6s var(--ease-out) .3s forwards;padding:0 1.25rem;font-size:clamp(2rem,6.5vw,5.75rem);font-weight:400;line-height:1.05;position:relative}@keyframes hero-title{0%{opacity:0;letter-spacing:.12em;transform:translateY(24px)}to{opacity:1;letter-spacing:.06em;transform:none}}.hero .scroll-cue{z-index:2;color:#ffffffd9;opacity:0;animation:1.2s 1.6s forwards cue-in;position:absolute;bottom:2.25rem;left:50%;transform:translate(-50%)}.hero .scroll-cue svg{stroke:currentColor;stroke-width:1.25px;fill:none;width:20px;height:20px;animation:2.6s ease-in-out infinite cue-bob}@keyframes cue-in{to{opacity:1}}@keyframes cue-bob{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}@media (prefers-reduced-motion:reduce){.hero-image,.hero h1,.hero .scroll-cue,.hero .scroll-cue svg{animation:none}.hero h1,.hero .scroll-cue{opacity:1}}.page-nav{top:var(--header-h);z-index:50;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);padding:0 var(--pad-x);scrollbar-width:none;background:#fffffff5;align-items:center;gap:3rem;display:flex;position:sticky;overflow-x:auto}.page-nav::-webkit-scrollbar{display:none}.page-nav .label{letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;flex-shrink:0;font-size:.72rem}.page-nav ul{gap:2.75rem;list-style:none;display:flex}.page-nav a{letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;color:var(--ink-soft);border-bottom:1px solid #0000;padding:1.35rem 0 calc(1.35rem - 1px);font-size:.74rem;font-weight:500;transition:color .25s,border-color .25s;display:inline-block}.page-nav a:hover{color:var(--ink)}.page-nav a.active{color:var(--ink);border-bottom-color:var(--ink)}.bio-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;gap:clamp(2.5rem,6vw,7rem);display:grid}.bio-portrait{aspect-ratio:4/5;object-fit:cover;width:100%}.bio-caption{letter-spacing:.04em;color:var(--ink-faint);margin-top:1rem;font-size:.75rem}.bio-text p{font-family:var(--serif);margin-bottom:1.75rem;font-size:clamp(1.15rem,1.6vw,1.4rem);font-weight:300;line-height:1.65}.bio-extra{transition:grid-template-rows .7s var(--ease-out);grid-template-rows:0fr;display:grid}.bio-extra.open{grid-template-rows:1fr}.bio-extra>div{overflow:hidden}.view-more{letter-spacing:.22em;text-transform:uppercase;color:var(--ink);align-items:center;gap:.75rem;margin-top:.5rem;padding:.4rem 0;font-size:.78rem;font-weight:500;transition:color .25s;display:inline-flex}.view-more:hover{color:var(--hover)}.view-more .sign{font-size:1rem;font-weight:400;line-height:1}.works-header{border-bottom:1px solid var(--rule);grid-template-columns:1fr 2fr;align-items:end;gap:4rem;margin-bottom:4rem;padding-bottom:2.25rem;display:grid}.works-header .desc{color:var(--ink-soft);max-width:440px;font-size:.95rem;line-height:1.75}.works-grid{grid-template-columns:repeat(3,1fr);gap:4.5rem 2.5rem;display:grid}.work{cursor:pointer}.work .frame{aspect-ratio:1;background:var(--bg);justify-content:center;align-items:center;width:100%;margin-bottom:1.4rem;display:flex;overflow:hidden}.work .frame img{object-fit:contain;max-width:88%;max-height:88%;transition:transform 1s var(--ease-out), opacity .9s var(--ease-out)}.work:hover .frame img{transform:scale(1.025)}.work .meta .t{letter-spacing:.01em;margin-bottom:.2rem;font-size:.92rem;font-weight:500}.work .meta .y{color:var(--ink-soft);font-size:.85rem}.works-more{justify-content:center;margin-top:5rem;display:flex}.works-more-btn{letter-spacing:.24em;text-transform:uppercase;color:var(--ink);border:1px solid var(--ink);padding:1rem 2.5rem;font-size:.74rem;font-weight:500;transition:background .3s,color .3s}.works-more-btn:hover{background:var(--ink);color:#fff}.works-empty{font-family:var(--serif);color:var(--ink-soft);font-size:1.2rem;font-style:italic;font-weight:300}.exhibitions-grid{grid-template-columns:1fr 2fr;align-items:start;gap:clamp(2rem,5vw,5rem);display:grid}.exhibitions-table{border-collapse:collapse;width:100%}.exhibitions-table tr{border-bottom:1px solid var(--rule)}.exhibitions-table tr:first-child{border-top:1px solid var(--rule)}.exhibitions-table td{vertical-align:baseline;padding:1.5rem 0;font-size:.97rem;line-height:1.55}.exhibitions-table td.year{width:90px;color:var(--ink-faint);font-variant-numeric:tabular-nums;letter-spacing:.06em;font-size:.88rem;font-weight:500}.section-intro{max-width:720px}.section-intro h2{margin-bottom:1.6rem}.section-intro p{color:var(--ink-soft);font-size:.97rem;line-height:1.75}.studio-feature{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2.5rem,6vw,7rem);margin-top:4rem;display:grid}.studio-feature img{aspect-ratio:4/5;object-fit:cover;width:100%}.studio-feature blockquote p{font-family:var(--serif);margin-bottom:1.6rem;font-size:clamp(1.2rem,1.7vw,1.45rem);font-weight:300;line-height:1.6}.studio-feature .credit{color:var(--ink-faint);letter-spacing:.04em;font-size:.8rem}.muted-note{font-family:var(--serif);color:var(--ink-soft);margin-top:1.5rem;font-style:italic;font-weight:300}.site-footer{border-top:1px solid var(--rule);padding:clamp(4rem,7vw,6rem) 0 2.5rem}.footer-grid{grid-template-columns:2fr 1fr 1fr;gap:4rem;display:grid}.site-footer .signoff{font-family:var(--serif);max-width:400px;font-size:clamp(1.3rem,2vw,1.6rem);font-style:italic;font-weight:300;line-height:1.45}.site-footer h4{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:1.4rem;font-size:.7rem;font-weight:500}.site-footer .links a,.site-footer .links span{color:var(--ink);margin-bottom:.6rem;font-size:.92rem;transition:color .25s;display:block}.site-footer .links a:hover{color:var(--hover)}.colophon{border-top:1px solid var(--rule);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);justify-content:space-between;margin-top:4rem;padding-top:2rem;font-size:.7rem;display:flex}.back-to-top{z-index:90;background:var(--ink);color:#fff;opacity:0;visibility:hidden;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;transition:opacity .4s,transform .4s,visibility .4s,background .25s;display:flex;position:fixed;bottom:2rem;right:2rem;transform:translateY(16px)}.back-to-top:hover{background:#3d3d3d}.back-to-top.show{opacity:1;visibility:visible;transform:none}.back-to-top svg{stroke:#fff;stroke-width:1.75px;fill:none;width:16px;height:16px}.lightbox{z-index:200;background:var(--bg);animation:lb-in .45s var(--ease-out);position:fixed;inset:0;overflow-y:auto}@keyframes lb-in{0%{opacity:0}}.lightbox-close{top:1.5rem;right:var(--pad-x);z-index:210;justify-content:center;align-items:center;width:40px;height:40px;transition:opacity .25s;display:flex;position:fixed}.lightbox-close:hover{opacity:.55}.lightbox-close svg{stroke:currentColor;stroke-width:1.25px;fill:none;width:22px;height:22px}.lightbox-inner{max-width:var(--max-w);padding:5.5rem var(--pad-x) 3rem;flex-direction:column;min-height:100vh;margin:0 auto;display:flex}.lightbox-main{flex:1;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(2rem,4vw,4.5rem);display:grid}.lightbox-stage{background:var(--bg-alt);justify-content:center;align-items:center;min-height:62vh;padding:clamp(1.5rem,3vw,3rem);display:flex}.lightbox-stage img{object-fit:contain;max-width:100%;max-height:74vh}.lightbox-info{padding-top:.5rem}.lightbox-info .artist{letter-spacing:.28em;text-transform:uppercase;margin-bottom:2rem;font-size:.78rem;font-weight:500}.lightbox-info .title{font-family:var(--serif);margin-bottom:1.5rem;font-size:1.6rem;font-style:italic;font-weight:300;line-height:1.25}.lightbox-info .field{color:var(--ink);margin-bottom:.55rem;font-size:.95rem}.lightbox-info .desc{color:var(--ink-soft);margin-top:1.5rem;font-size:.95rem;line-height:1.7}.lightbox-info .copyright{color:var(--ink-faint);margin-top:2.5rem;font-size:.8rem}.lightbox-nav{border-top:1px solid var(--rule);justify-content:center;align-items:center;gap:2.25rem;margin-top:3rem;padding:2.25rem 0 .5rem;display:flex}.lightbox-nav button{padding:.5rem;transition:opacity .25s;display:flex}.lightbox-nav button:hover:not(:disabled){opacity:.55}.lightbox-nav button:disabled{opacity:.2;cursor:default}.lightbox-nav svg{stroke:currentColor;stroke-width:1.25px;fill:none;width:22px;height:22px}.lightbox-nav .counter{color:var(--ink-soft);font-variant-numeric:tabular-nums;text-align:center;min-width:56px;font-size:.85rem}@media (width<=900px){.bio-grid,.studio-feature,.works-header,.exhibitions-grid{grid-template-columns:1fr}.works-header{gap:1.5rem}.exhibitions-grid{gap:2.5rem}.works-grid{grid-template-columns:1fr 1fr;gap:3rem 1.25rem}.footer-grid{grid-template-columns:1fr;gap:2.75rem}.colophon{flex-direction:column;gap:.75rem}.page-nav,.page-nav ul{gap:2rem}.lightbox-main{grid-template-columns:1fr}.lightbox-stage{min-height:46vh}.back-to-top{bottom:1.25rem;right:1.25rem}}@media (width<=520px){.works-grid{grid-template-columns:1fr;gap:3.5rem}}.admin{background:var(--bg-alt);min-height:100vh;font-family:var(--sans);color:var(--ink)}.admin-bar{z-index:10;padding:0 var(--pad-x);background:var(--bg);border-bottom:1px solid var(--rule);align-items:center;gap:2rem;height:4rem;display:flex;position:sticky;top:0}.admin-brand{font-family:var(--serif);font-size:1.15rem;font-style:italic}.admin-brand span{color:var(--ink-faint);font-style:normal;font-family:var(--sans)}.admin-tabs{gap:.25rem;display:flex}.admin-tabs button{letter-spacing:.04em;color:var(--ink-soft);border-radius:999px;padding:.5rem 1rem;font-size:.82rem;transition:background .2s,color .2s}.admin-tabs button:hover{color:var(--ink)}.admin-tabs button.active{background:var(--ink);color:#fff}.admin-bar-right{align-items:center;gap:1.25rem;margin-left:auto;display:flex}.admin-link{color:var(--ink-soft);font-size:.82rem}.admin-link:hover{color:var(--ink)}.admin-logout{color:var(--ink-soft);border:1px solid var(--rule);border-radius:999px;padding:.4rem .9rem;font-size:.82rem}.admin-logout:hover{border-color:var(--ink);color:var(--ink)}.admin-main{padding:clamp(1.5rem, 4vw, 3rem) var(--pad-x) 6rem}.admin-panel{max-width:880px;margin:0 auto}.admin-panel-head{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:2rem;display:flex}.admin-panel-head h1{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:300}.admin-hint{color:var(--ink-soft);max-width:50ch;margin-top:.35rem;font-size:.88rem}.admin-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.admin-row{background:var(--bg);border:1px solid var(--rule);border-radius:8px;align-items:center;gap:1rem;padding:.65rem .85rem;display:flex}.admin-handle{color:var(--ink-faint);cursor:grab;touch-action:none;padding:.25rem;font-size:1.1rem}.admin-handle:active{cursor:grabbing}.admin-thumb{background:var(--bg-alt);border-radius:5px;flex:none;width:56px;height:56px;overflow:hidden}.admin-thumb img{object-fit:cover;width:100%;height:100%}.admin-thumb-empty{background:var(--rule);width:100%;height:100%}.admin-row-meta{flex:1;min-width:0}.admin-row-title{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.admin-row-sub{color:var(--ink-soft);font-size:.82rem}.admin-row-actions{flex:none;gap:.5rem;display:flex}.admin-btn{background:var(--ink);color:#fff;letter-spacing:.03em;border-radius:999px;padding:.6rem 1.4rem;font-size:.85rem;transition:opacity .2s}.admin-btn:hover{opacity:.85}.admin-btn:disabled{opacity:.5;cursor:default}.admin-btn-ghost{border:1px solid var(--rule);color:var(--ink-soft);border-radius:999px;padding:.45rem .95rem;font-size:.82rem}.admin-btn-ghost:hover{border-color:var(--ink);color:var(--ink)}.admin-btn-danger{color:#a12121;border:1px solid #0000;border-radius:999px;padding:.45rem .95rem;font-size:.82rem}.admin-btn-danger:hover{border-color:#a12121}.admin-form{flex-direction:column;gap:1.1rem;display:flex}.admin-form-wide{max-width:720px}.admin-field{flex-direction:column;gap:.4rem;display:flex}.admin-field>span{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-size:.78rem}.admin-field-row{gap:1rem;display:flex}.admin-field-row .admin-field{flex:1}.admin-field input,.admin-field textarea{color:var(--ink);background:var(--bg);border:1px solid var(--rule);border-radius:6px;padding:.6rem .75rem;font-family:inherit;font-size:.95rem}.admin-field input:focus,.admin-field textarea:focus{border-color:var(--ink);outline:none}.admin-field textarea{resize:vertical;line-height:1.6}.admin-field input[type=file]{color:var(--ink-soft);border:none;padding:0;font-size:.85rem}.admin-form-preview{border:1px solid var(--rule);border-radius:6px;max-width:180px}.admin-form-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.admin-error{color:#a12121;font-size:.85rem}.admin-success{color:#2f7a3f;font-size:.85rem}.admin-modal-overlay{z-index:100;background:#14141473;justify-content:center;align-items:flex-start;padding:clamp(1rem,5vh,4rem) 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.admin-modal{background:var(--bg);border-radius:10px;width:100%;max-width:540px}.admin-modal-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.admin-modal-head h2{font-family:var(--serif);font-size:1.4rem;font-weight:300}.admin-modal-close{color:var(--ink-faint);font-size:1.6rem;line-height:1}.admin-modal-close:hover{color:var(--ink)}.admin-modal-body{padding:1.5rem}.admin-login{background:var(--bg-alt);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.admin-login-card{background:var(--bg);border:1px solid var(--rule);border-radius:10px;flex-direction:column;gap:1.5rem;width:100%;max-width:360px;padding:2.5rem;display:flex}.admin-login-card .admin-brand{text-align:center;font-size:1.3rem}@media (width<=640px){.admin-bar{height:auto;padding:.75rem var(--pad-x);flex-wrap:wrap;gap:.75rem 1.25rem}.admin-bar-right{width:100%}.admin-field-row{flex-direction:column;gap:1.1rem}}
