@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg:#f4f2ed;--ink:#101010;--muted:#77736b;--line:#d8d4cc;--panel:#fffdf8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif}button,a,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app{min-height:100vh;overflow:hidden}.nav{position:sticky;top:0;z-index:20;height:76px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}.brand{font-size:18px;font-weight:800;letter-spacing:-.08em}.brand span{font-size:8px;vertical-align:top;margin-left:2px}.navlinks{display:flex;align-items:center;gap:30px;font-family:DM Mono,monospace;font-size:11px;letter-spacing:.08em}.navlinks a,.admin-link{border:0;background:none;padding:8px 0}.navlinks a:hover,.admin-link:hover{opacity:.5}.menu{display:none;border:0;background:none}.hero{min-height:calc(100vh - 76px);padding:9vh 7vw 7vh;display:flex;flex-direction:column;justify-content:center;position:relative}.eyebrow{margin:0 0 18px;font:500 10px/1 DM Mono,monospace;letter-spacing:.16em;color:var(--muted)}.hero h1{max-width:1000px;margin:0;font-size:clamp(58px,9.5vw,150px);line-height:1.02;letter-spacing:-.085em;font-weight:700;animation:rise .9s cubic-bezier(.2,.8,.2,1) both}.hero h1 em,.about h2 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.07em}.intro{max-width:420px;margin:42px 0 0 2px;color:#56524b;line-height:1.6;font-size:15px;animation:rise 1s .12s cubic-bezier(.2,.8,.2,1) both}.scrollhint{position:absolute;bottom:7vh;font:500 10px DM Mono,monospace;letter-spacing:.12em;animation:float 2.4s infinite}.scrollhint span{margin-left:12px}.work-section{padding:9vw 5vw 13vw;background:#111;color:#f4f2ed}.section-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:48px}.section-top .eyebrow{color:#89857d}.section-top h2{margin:0;font-size:clamp(36px,5vw,68px);letter-spacing:-.065em}.count{font:10px DM Mono;color:#89857d}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:38px}.filter{border:1px solid #373737;background:transparent;color:#aaa;padding:10px 15px;border-radius:999px;font-size:11px;transition:.25s}.filter:hover,.filter.active{background:#f4f2ed;color:#111;border-color:#f4f2ed;transform:translateY(-2px)}.gallery-flow{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(50px,8vw,150px) 18px;align-items:start}.card{cursor:pointer;grid-column:span 4;opacity:0;animation:cardIn .75s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i, 0) * 70ms)}.card:nth-child(7n+1){grid-column:2 / span 4;margin-top:4vw}.card:nth-child(7n+2){grid-column:7 / span 5;margin-top:13vw}.card:nth-child(7n+3){grid-column:1 / span 5;margin-top:4vw}.card:nth-child(7n+4){grid-column:7 / span 4;margin-top:1vw}.card:nth-child(7n+5){grid-column:3 / span 5;margin-top:10vw}.card:nth-child(7n+6){grid-column:8 / span 4;margin-top:3vw}.card:nth-child(7n+7){grid-column:1 / span 4;margin-top:8vw}.image-wrap{overflow:hidden;background:#202020;position:relative}.image-wrap img{width:100%;height:auto;aspect-ratio:auto;object-fit:initial;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s}.card:hover img{transform:scale(1.045);filter:brightness(.76)}.card-overlay{position:absolute;inset:auto 16px 16px;display:flex;justify-content:space-between;align-items:center;opacity:0;transform:translateY(8px);transition:.35s;font:10px DM Mono}.card:hover .card-overlay{opacity:1;transform:none}.card-meta{padding:13px 1px 0;display:flex;justify-content:space-between;gap:20px}.card-meta h3{margin:0;font-size:14px;font-weight:500;letter-spacing:-.02em}.card-meta span{font:9px DM Mono;color:#777;text-transform:uppercase}.about{padding:12vw 8vw;display:grid;grid-template-columns:1fr 2fr;gap:7vw}.about-label{font:10px DM Mono;color:var(--muted);letter-spacing:.16em}.about h2{font-size:clamp(48px,7vw,100px);line-height:1.04;letter-spacing:-.08em;margin:0 0 45px}.about p{max-width:480px;color:#68645d;line-height:1.7}footer{padding:34px 5vw;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;font:9px DM Mono;color:var(--muted);letter-spacing:.1em}footer>span:last-child{text-align:right}.footer-links{display:flex;gap:22px}.footer-links a{transition:opacity .2s}.footer-links a:hover{opacity:.45}.gallery-end{margin:clamp(140px,20vw,300px) auto 0;max-width:520px;text-align:center;color:#777}.gallery-end>span{font:10px DM Mono;letter-spacing:.16em;color:#f4f2ed}.end-line{width:1px;height:110px;background:#393939;margin:30px auto}.gallery-end p{margin:0;font:13px/1.6 Georgia,serif;color:#777}.loading-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.skeleton{aspect-ratio:4/5;background:linear-gradient(110deg,#181818 20%,#222,#181818 50%);background-size:200% 100%;animation:shimmer 1.3s infinite}.lightbox,.admin-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000e6;display:flex;align-items:center;justify-content:center;animation:fade .25s}.lightbox-content{width:min(92vw,1100px);max-height:92vh;overflow:auto;scrollbar-width:none}.full-image{background:#080808;display:flex;align-items:center;justify-content:center;max-height:78vh}.full-image img{display:block;max-width:100%;max-height:78vh;object-fit:contain}.work-info{color:#f4f2ed;padding:20px 2px;display:flex;justify-content:space-between;gap:30px}.work-info h2{margin:0 0 8px;font-size:25px;letter-spacing:-.04em}.work-info p:not(.eyebrow){color:#aaa;max-width:520px;margin:0;font-size:13px;line-height:1.5}.work-info>span{font:10px DM Mono;color:#777}.close{position:fixed;top:25px;right:28px;z-index:5;width:44px;height:44px;border-radius:50%;border:1px solid #444;background:#111;color:#fff;display:grid;place-items:center}.lightbox-arrow{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border:1px solid #444;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center}.lightbox-arrow.left{left:25px}.lightbox-arrow.right{right:25px}.lightbox-arrow:disabled{opacity:.2;cursor:default}.admin-backdrop{background:#0f0f0f8c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.admin-panel{width:min(92vw,620px);max-height:90vh;overflow:auto;background:var(--panel);color:var(--ink);padding:42px;position:relative;box-shadow:0 30px 100px #0000004d;animation:panelIn .45s cubic-bezier(.2,.8,.2,1)}.close.dark{background:transparent;border-color:var(--line);color:#111;top:18px;right:18px;position:absolute}.login-form h2,.uploader h2{margin:0 0 10px;font-size:40px;letter-spacing:-.07em}.login-form>p:not(.eyebrow),.tiny-note{color:var(--muted);font-size:13px;line-height:1.5}.login-form input,.form-grid input,.form-grid select,textarea{width:100%;border:1px solid var(--line);background:#f7f5ef;padding:14px;margin:8px 0 14px;outline:none}.login-form input:focus,.form-grid input:focus,textarea:focus{border-color:#111}.primary{display:flex;justify-content:center;align-items:center;gap:8px;border:0;background:#111;color:#fff;padding:14px 20px;width:100%;margin-top:5px}.primary:disabled{opacity:.5}.form-message{font-size:12px;margin-top:12px}.admin-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:28px}.logout{display:flex;gap:6px;align-items:center;border:1px solid var(--line);background:none;padding:8px 11px;font-size:11px}.dropzone{min-height:220px;border:1px dashed #b9b4aa;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;cursor:pointer;margin-bottom:20px;transition:.25s}.dropzone:hover,.dropzone.dragging{border-color:#111;background:#f7f5ef;transform:scale(.995)}.dropzone span{color:var(--muted);font-size:12px}.dropzone input{display:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label,.uploader>label:not(.dropzone){font:10px DM Mono;letter-spacing:.08em}textarea{resize:vertical}.publish{margin-top:3px}.tiny-note{font-size:10px;margin-top:14px;text-align:center}@keyframes rise{0%{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@keyframes float{50%{transform:translateY(6px)}}@keyframes cardIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes panelIn{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}@keyframes shimmer{to{background-position:-200% 0}}@media(max-width:800px){.nav{height:65px}.navlinks{display:none;position:absolute;top:65px;left:0;right:0;padding:20px 5vw 25px;background:var(--bg);flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.navlinks.open{display:flex}.menu{display:block}.hero{min-height:calc(100vh - 65px);padding:12vh 7vw}.scrollhint{bottom:5vh}.gallery-flow{grid-template-columns:1fr 1fr;gap:70px 14px}.card,.card:nth-child(7n+1),.card:nth-child(7n+2),.card:nth-child(7n+3),.card:nth-child(7n+4),.card:nth-child(7n+5),.card:nth-child(7n+6),.card:nth-child(7n+7){grid-column:span 1;margin-top:0}.card:nth-child(2n){margin-top:80px}.section-top{align-items:start;flex-direction:column;gap:20px}.work-section{padding:18vw 5vw}.about{grid-template-columns:1fr;padding:20vw 7vw;gap:30px}.lightbox-arrow{display:none}.admin-panel{padding:32px 22px}.form-grid{grid-template-columns:1fr}}@media(max-width:520px){.hero h1{font-size:58px}.intro{font-size:14px}.gallery-flow{grid-template-columns:1fr;gap:72px}.card,.card:nth-child(2n){grid-column:1;margin-top:0}.work-info{flex-direction:column}.about h2{font-size:54px}footer{grid-template-columns:1fr;gap:18px}.footer-links{flex-wrap:wrap}.footer-links+span{text-align:left!important}}.back-public{font:10px DM Mono,monospace;letter-spacing:.1em;color:var(--muted)}.admin-page{min-height:calc(100vh - 76px)}.admin-page .admin-backdrop.standalone{position:static;inset:auto;min-height:calc(100vh - 76px);background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;animation:none;padding:8vh 5vw;align-items:flex-start}.admin-page .admin-panel{box-shadow:none;width:min(100%,720px);margin:0 auto}.portfolio-page{min-height:100vh;background:#e9e6df;color:#111}.portfolio-nav{position:fixed;top:0;left:0;right:0;z-index:50;height:76px;padding:0 3vw;display:flex;align-items:center;justify-content:space-between;background:#e9e6dfdb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid #d4d0c8}.portfolio-nav-title,.portfolio-back{font:10px DM Mono,monospace;letter-spacing:.12em;color:#706c65}.portfolio-back:hover{color:#111}.portfolio-toc{position:fixed;z-index:40;left:3vw;top:50%;transform:translateY(-50%);width:210px}.portfolio-toc .eyebrow{margin-bottom:16px}.portfolio-toc ol{list-style:none;padding:0;margin:0;border-left:1px solid #c9c5bd}.portfolio-toc li{margin:0}.toc-link{position:relative;display:grid;grid-template-columns:28px 1fr;gap:9px;width:100%;padding:7px 0 7px 14px;border:0;background:transparent;text-align:left;color:#8a867e;font-size:11px;cursor:pointer;transition:.25s}.toc-link span{font:9px DM Mono;color:#aaa59c}.toc-link:hover,.toc-link.active{color:#111}.toc-link.active:before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:#111}.portfolio-download{position:fixed;z-index:50;right:3vw;top:50%;transform:translateY(-50%);width:58px;height:118px;border:1px solid #c9c5bd;background:#f4f2edbf;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;transition:.25s}.portfolio-download:hover{background:#111;color:#fff;transform:translateY(-50%) translate(-3px)}.portfolio-download span{writing-mode:vertical-rl;transform:rotate(180deg);font:8px DM Mono;letter-spacing:.12em}.portfolio-download strong{font:9px DM Mono}.portfolio-pages{width:min(980px,calc(100vw - 520px));margin:0 auto;padding:130px 0 120px}.portfolio-intro{min-height:45vh;display:flex;flex-direction:column;justify-content:center;padding:0 2vw 100px}.portfolio-intro h1{margin:0;font-size:clamp(58px,8vw,108px);line-height:.86;letter-spacing:-.08em}.portfolio-intro h1 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.07em}.portfolio-intro>p:last-child{max-width:420px;margin:38px 0 0;color:#706c65;line-height:1.6;font-size:13px}.portfolio-page-spread{scroll-margin-top:100px;margin:0 0 110px}.portfolio-page-number{display:flex;justify-content:space-between;margin:0 0 12px;color:#7b766e;font:9px DM Mono;letter-spacing:.1em;text-transform:uppercase}.portfolio-image-frame{width:100%;background:#fff;box-shadow:0 20px 60px #19161214}.portfolio-image-frame img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:initial}.portfolio-end{min-height:50vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;text-align:center}.portfolio-end a{font:10px DM Mono;letter-spacing:.1em;border-bottom:1px solid #111;padding-bottom:4px}.portfolio-end a:hover{opacity:.5}@media(max-width:1100px){.portfolio-toc{left:2vw;width:170px}.portfolio-pages{width:min(760px,calc(100vw - 330px))}}@media(max-width:800px){.portfolio-nav{height:65px}.portfolio-nav-title{display:none}.portfolio-toc{position:sticky;top:65px;left:auto;transform:none;width:100%;height:58px;padding:0 5vw;display:flex;align-items:center;background:#e9e6dff0;border-bottom:1px solid #d4d0c8;overflow-x:auto}.portfolio-toc .eyebrow{display:none}.portfolio-toc ol{display:flex;border:0;gap:6px;white-space:nowrap}.toc-link{display:block;width:auto;padding:8px 12px;border:1px solid #cec9c0;border-radius:999px}.toc-link span{display:none}.toc-link.active{background:#111;color:#fff;border-color:#111}.toc-link.active:before{display:none}.portfolio-download{right:18px;top:auto;bottom:18px;transform:none;width:auto;height:48px;padding:0 16px;flex-direction:row;gap:8px;background:#111;color:#fff;border-color:#111;box-shadow:0 10px 30px #00000026}.portfolio-download:hover{transform:translateY(-2px)}.portfolio-download span{writing-mode:initial;transform:none}.portfolio-pages{width:100%;padding:65px 5vw 80px}.portfolio-intro{min-height:55vh;padding:30px 0 70px}.portfolio-page-spread{margin-bottom:85px}}@media(max-width:520px){.portfolio-intro h1{font-size:58px}.portfolio-page-spread{scroll-margin-top:140px}}.admin-tabs{display:flex;align-items:center;gap:14px;margin:0 0 20px}.admin-tab{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:#f7f5ef;padding:10px 13px;font-size:11px}.admin-tab.active{background:#111;color:#fff;border-color:#111}.editing-label{font:10px DM Mono;color:var(--muted)}.admin-work-list{display:flex;flex-direction:column;gap:8px;margin-bottom:30px}.admin-work-row{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:13px;border:1px solid var(--line);padding:8px;background:#fbfaf5}.admin-work-row img{width:56px;height:70px;object-fit:cover;background:#ddd}.admin-work-details{min-width:0;display:flex;flex-direction:column;gap:5px}.admin-work-details strong{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-work-details span{font:9px DM Mono;color:var(--muted);text-transform:uppercase}.admin-work-actions{display:flex;gap:6px}.admin-work-actions button{border:1px solid var(--line);background:transparent;padding:7px 9px;font-size:10px}.admin-work-actions button:hover{background:#111;color:#fff;border-color:#111}.admin-work-actions .danger:hover{background:#8d2d2d;border-color:#8d2d2d}.empty-admin{padding:25px;border:1px dashed var(--line);text-align:center;color:var(--muted);font-size:12px}.admin-form-divider{border-top:1px solid var(--line);padding-top:25px;margin-top:8px}.form-actions{display:flex;gap:8px}.form-actions .primary{margin-top:0}.secondary{flex:0 0 auto;border:1px solid var(--line);background:transparent;padding:14px 20px}.form-actions .primary{flex:1}@media(max-width:520px){.admin-work-row{grid-template-columns:46px 1fr}.admin-work-row img{width:46px;height:58px}.admin-work-actions{grid-column:2}}.portfolio-footer{border-top:1px solid #d4d0c8;padding:34px 3vw;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;color:#706c65;font:9px DM Mono,monospace;letter-spacing:.1em}.portfolio-footer>span:last-child{text-align:right}.portfolio-footer-links{display:flex;gap:22px;flex-wrap:wrap;justify-content:center}.portfolio-footer-links a{transition:opacity .2s}.portfolio-footer-links a:hover{opacity:.45;color:#111}@media(max-width:1100px){.portfolio-pages{width:min(820px,calc(100vw - 330px))}}@media(max-width:800px){.portfolio-pages{width:100%;padding:65px 5vw 80px}.portfolio-footer{grid-template-columns:1fr;gap:16px}.portfolio-footer-links{justify-content:flex-start}.portfolio-footer>span:last-child{text-align:left}}
