@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Instrument+Serif:ital@0;1&display=swap');
:root{--paper:#f7f5ef;--white:#fffefa;--ink:#292e28;--muted:#7a7d72;--line:#e5e5db;--green:#355747;--light-green:#e9edde;--coral:#d57859;--serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:14px var(--sans);line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.48;cursor:default}button,select,input,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--green)}a{color:inherit}svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:250px;top:-100px;z-index:100;background:var(--white);padding:10px}.skip-link:focus{top:0}.sidebar{position:fixed;inset:0 auto 0 0;width:234px;padding:34px 23px 24px;background:#f0f0e8;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--serif);font-size:25px;letter-spacing:-.7px;white-space:nowrap;margin-bottom:51px}.brand-sub{display:block;font:8px var(--sans);letter-spacing:1.5px;margin-top:1px}.sidebar-label{font-size:9px;font-weight:650;letter-spacing:1.8px;color:#888b7d;margin:0 11px 13px}.main-nav{display:grid;gap:5px;margin-bottom:36px}.nav-item{display:flex;align-items:center;gap:12px;background:transparent;border:0;padding:12px 11px;text-align:left;font-size:12px;border-radius:6px;white-space:nowrap}.nav-item>span{margin-left:auto;color:var(--muted);font-size:10px}.nav-item.active{background:#e0e7d8;color:var(--green);font-weight:650}.nav-item:hover{background:#e8ebdf}.nav-item svg{width:16px;height:16px}.tag-list{display:flex;flex-wrap:wrap;gap:7px;margin:0 7px 12px}.tag{font-size:10px;border:1px solid #dddcd2;background:transparent;border-radius:4px;padding:4px 8px}.tag:hover,.tag.active{border-color:var(--green);color:var(--green);background:var(--light-green)}.sidebar>.text-button{margin:0 10px 24px;text-align:left}.sidebar select{width:100%;font-size:11px;background:transparent;margin-bottom:20px}.sidebar-bottom{margin-top:auto;padding-top:35px}.coffee-note{display:flex;gap:9px;align-items:center;margin:10px 8px 26px}.tiny-star{font-size:35px;color:var(--coral);font-family:Georgia}.coffee-note p{font-family:var(--serif);font-style:italic;font-size:17px;line-height:1.3;margin:0}.back-link{font-size:10px;text-decoration:none;color:var(--muted);margin-left:9px}.studio-button{width:100%;text-align:left;font-size:11px;border:1px solid var(--line);background:#e9e9df;border-radius:4px;padding:9px 11px;margin-top:15px}.studio-button span{float:right}.studio-button.live{color:var(--green)}main{margin-left:234px;padding:0 48px;max-width:2100px}.topbar{height:89px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.breadcrumb{font-size:9px;letter-spacing:1.7px;color:var(--muted);white-space:nowrap}.breadcrumb span{margin:0 14px;color:#a5a698}.breadcrumb strong{font-weight:550;color:var(--ink)}.topbar-actions{display:flex;align-items:center;gap:24px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:40px;border:1px solid #d6d8cd;padding:10px 17px;border-radius:5px;background:transparent;font-size:12px;font-weight:550}.button:hover{background:#eeeee5}.button.primary{color:#fffefa;background:var(--green);border-color:var(--green)}.button.primary:hover{background:#264b39}.button svg{width:16px;height:16px}.text-button{background:transparent;border:0;padding:3px 0;font-size:11px;color:var(--muted)}.text-button:hover{color:var(--green)}.topbar-actions>.text-button{font-size:10px}.topbar-actions>.text-button span{margin-left:7px}.intro{min-height:250px;display:flex;justify-content:space-between;align-items:center;padding:31px 0 34px;gap:20px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:550;color:var(--green);display:flex;align-items:center;gap:7px;margin:0 0 17px}.green-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#738e5f}h1{font:clamp(38px,4.2vw,65px)/1.08 var(--serif);letter-spacing:-1.9px;margin:0 0 16px;max-width:800px}h1 em{font-weight:400;color:var(--green)}.coral-dot{color:var(--coral)}.intro-copy{font-size:12px;color:var(--muted);line-height:1.85;margin:0}.intro-sketch{flex-shrink:0;margin-right:20px;color:var(--coral);text-align:center;transform:rotate(7deg)}.intro-sketch svg{height:123px;width:150px}.intro-sketch span{display:block;color:#8b8c7b;font:italic 14px/1.3 var(--serif);margin-top:-4px}.library-tabs{display:flex;align-items:center;gap:31px;border-bottom:1px solid var(--line);height:51px}.library-tabs button{display:flex;align-items:center;gap:7px;border:0;background:transparent;padding:16px 0;font-size:12px;position:relative;color:var(--muted);height:100%;white-space:nowrap}.library-tabs button.active{color:var(--green);font-weight:650}.library-tabs button.active:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--green)}.library-tabs button svg{width:14px;height:14px}.library-tabs .surprise{margin-left:auto;font-size:11px}.filter-bar{display:flex;gap:10px;padding-top:23px;align-items:center}.search-field{position:relative;display:flex;gap:10px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:5px;padding:10px 12px;flex:1;min-width:120px;color:#97998d;height:41px}.search-field input{width:100%;border:0;background:transparent;font-size:11px;outline:0;color:var(--ink)}.search-field svg{width:16px;height:16px}.search-field kbd{font-size:10px;border:1px solid var(--line);border-radius:3px;padding:0 5px}.search-field:focus-within{outline:2px solid #b7c2a9;outline-offset:1px}select{border:1px solid var(--line);border-radius:5px;background-color:var(--white);color:#656b60;font-size:11px;min-height:41px;padding:8px 27px 8px 10px;max-width:100%;text-overflow:ellipsis}.filter-bar select{max-width:155px}.results-bar{display:flex;justify-content:space-between;align-items:center;min-height:66px;gap:10px}.results-bar>p{font-size:11px;color:var(--muted);margin:0}.results-bar strong{font-weight:650;color:var(--ink)}.results-actions{display:flex;align-items:center;gap:17px}.view-switch{display:flex;border:1px solid var(--line);border-radius:4px;padding:2px;gap:1px}.icon-button{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:4px;width:29px;height:28px;color:#8a8e80;flex-shrink:0}.icon-button:hover,.icon-button.active{color:var(--green);background:#e6eadf}.icon-button svg{height:15px;width:15px}.gallery.masonry{columns:4;column-gap:20px}.art-card{break-inside:avoid;position:relative;padding:9px;background:var(--white);border:1px solid var(--line);border-radius:6px;margin-bottom:20px;transition:box-shadow .2s,transform .2s;display:inline-block;width:100%;vertical-align:top}.art-card:hover{box-shadow:0 8px 24px #333c2720;transform:translateY(-2px)}.art-open{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left}.art-open img{display:block;width:100%;height:auto;border-radius:2px;min-height:90px;background:#eeede5}.card-info{padding:13px 4px 4px}.card-title{font-size:12px;font-weight:600;line-height:1.4;margin:0 25px 6px 0}.card-sub{font-size:9px;color:#8a8b7d;display:flex;align-items:center;justify-content:space-between;gap:5px}.card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}.card-tags .tag{font-size:8px;border:0;background:#f0f0e7;padding:3px 6px}.favorite-button{position:absolute;right:13px;bottom:34px;width:25px;height:25px;background:var(--white)}.favorite-button.is-favorite{color:var(--coral)}.favorite-button.is-favorite svg{fill:#d5785933}.art-card:has(.card-tags) .favorite-button{bottom:63px}.kind-badge{position:absolute;top:17px;left:17px;display:inline-flex;align-items:center;gap:4px;padding:4px 6px;background:#fffef1ed;font-size:8px;border-radius:3px;color:var(--green);pointer-events:none}.kind-badge svg{width:10px;height:10px}.draft-badge{background:#f4e4cced;color:#7a5b32}.select-card{position:absolute;top:14px;right:14px;width:28px;height:28px;display:grid;place-items:center;background:var(--white);border-radius:4px;border:1px solid var(--line)}input[type=checkbox]{accent-color:var(--green);width:16px;height:16px;cursor:pointer}.art-card.selected{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.gallery.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:start}.gallery.grid .art-card{margin:0}.gallery.grid img{aspect-ratio:4/5;object-fit:contain}.active-filters{display:flex;gap:7px;flex-wrap:wrap}.active-filters:not(:empty){padding-bottom:15px}.active-filters button{border:1px solid #bbc7b3;border-radius:20px;background:var(--light-green);padding:3px 10px;font-size:10px;color:var(--green)}.empty-state{text-align:center;padding:60px 15px;color:var(--muted)}.empty-state>span{font-size:50px;color:var(--coral)}h2{font:37px/1.1 var(--serif);letter-spacing:-.5px;margin:13px 0 15px;color:var(--ink)}.load-more{display:flex;margin:35px auto;background:var(--white);font-size:11px;padding:11px 27px}.page-footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);margin-top:42px;padding:24px 0;font-size:9px;color:var(--muted);letter-spacing:.25px}.page-footer .coral-dot{font-size:14px;margin-left:12px}.bulk-bar{display:flex;align-items:center;gap:18px;background:var(--light-green);padding:12px 16px;border-radius:6px;margin-bottom:20px;font-size:12px;position:sticky;top:5px;z-index:4}.bulk-bar .button{margin-left:auto}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:30;background:var(--green);color:var(--white);border-radius:6px;box-shadow:0 6px 25px #0002;padding:12px 24px;max-width:90vw;font-size:13px}.mobile-menu{display:none}.muted{color:var(--muted)}.small,small{font-size:11px}dialog{padding:0;background:var(--white);color:var(--ink);border:1px solid #d8d9ce;border-radius:12px;box-shadow:0 20px 100px #0003;max-height:92dvh;width:min(1150px,94vw)}dialog::backdrop{background:#20292099;backdrop-filter:blur(5px)}body:has(dialog[open]){overflow:hidden}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-top .eyebrow{margin:0}.form-dialog{width:min(620px,94vw);padding:28px 32px}.form-dialog h2{font-size:42px;margin-top:20px}.form-dialog>p,.form-dialog form>p{font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-dialog label,.detail-form label{display:flex;flex-direction:column;font-size:11px;gap:7px;font-weight:550}.form-dialog input:not([type=checkbox]),.detail-form input:not([type=checkbox]),textarea{width:100%;padding:10px 11px;border:1px solid var(--line);background:var(--white);border-radius:4px;color:var(--ink);min-height:41px;font-weight:400}.form-dialog label:has(input[type=checkbox]),.detail-form label:has(input[type=checkbox]){flex-direction:row;align-items:center;font-weight:400;gap:8px}.form-dialog select,.detail-form select{width:100%;font-weight:400}.span-two{grid-column:span 2}.drop-zone{min-height:165px;border:1.5px dashed #b7c1aa;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;background:#f6f7ef;margin:24px 0}.drop-zone svg{width:25px;height:25px;color:var(--green);margin-bottom:6px}.drop-zone strong{font-size:15px;color:var(--green)}.drop-zone span{font-size:11px;color:var(--muted);font-weight:400}.drop-zone small{font-size:9px;color:#96998b;font-weight:400}.drop-zone.dragging{background:#e5eddc;border-color:var(--green)}.dialog-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:23px}.dialog-bottom small{font-size:10px;color:var(--muted);max-width:190px}.upload-queue{list-style:none;padding:0;max-height:230px;overflow-y:auto}.upload-queue li{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:11px}.upload-queue img{width:38px;height:40px;object-fit:contain}.upload-queue li>span{flex:1;word-break:break-word}.upload-queue small{color:var(--muted);font-size:10px}.upload-queue .failed{color:#a54533}.login-dialog{width:440px}.login-dialog .button{margin-top:20px}.login-dialog label{margin-top:25px}.form-error,#login-status{color:#aa4737;white-space:pre-line}#bulk-form>label{margin-bottom:17px}.detail-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);min-height:70vh}.detail-art{background:#efeee5;padding:38px;display:flex;align-items:center;justify-content:center;position:relative}.detail-art img{display:block;max-width:100%;max-height:77dvh;object-fit:contain;box-shadow:0 5px 15px #0001}.detail-side{padding:25px 28px;overflow-y:auto;max-height:90dvh}.detail-side h2{font-size:36px;margin:18px 0 9px}.detail-side>.muted{font-size:12px}.detail-side .dialog-top .button{min-height:28px;padding:5px 9px;font-size:10px}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:25px 0}.detail-facts dt{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.detail-facts dd{font-size:12px;margin:0;overflow-wrap:anywhere}.detail-notes{font-size:12px;line-height:1.8;white-space:pre-line}.provenance{border-top:1px solid var(--line);padding-top:17px;margin-top:23px;font-size:10px;color:var(--muted);overflow-wrap:anywhere}.provenance summary{cursor:pointer;font-size:11px}.provenance p{margin:9px 0}.review-note{background:#f7efdf;border:1px solid #e8d9b8;border-radius:5px;padding:10px 12px;font-size:10px;color:#8e6e39;margin:18px 0}.related{padding-top:15px;border-top:1px solid var(--line);margin-top:22px}.related h3{font-size:11px;font-weight:550}.related-list{display:flex;gap:8px;overflow-x:auto}.related-list button{width:70px;min-width:70px;padding:0;border:0;background:transparent;font-size:9px;text-align:left}.related-list img{width:65px;height:75px;object-fit:contain;background:var(--paper)}.detail-links{display:flex;gap:17px;align-items:center;margin-top:22px}.detail-links a{font-size:10px;color:var(--green);text-underline-offset:3px}.detail-form{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:18px}.detail-form h2{grid-column:span 2;font-size:28px;margin:0}.detail-form .button{grid-column:span 2}.detail-nav{display:flex;gap:7px}.detail-form textarea{resize:vertical;min-height:80px}.source-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:27px 0}.source-heading h2{font-size:42px}.source-heading p:not(.eyebrow){font-size:12px;color:var(--muted);max-width:550px}.source-controls{display:flex;align-items:center;gap:15px;font-size:11px;flex-wrap:wrap}.source-controls select{max-width:380px}.source-controls span{color:var(--muted)}.candidate-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:24px}.candidate{border:1px solid var(--line);border-radius:6px;background:var(--white);padding:9px;position:relative;font-size:10px;overflow-wrap:anywhere}.candidate img{display:block;width:100%;height:190px;object-fit:contain;background:var(--paper);margin-bottom:9px}.candidate label{display:flex;gap:8px;align-items:flex-start}.candidate input{flex-shrink:0}.candidate small{display:block;color:var(--muted);font-size:9px;padding-top:6px}.inbox-dot{width:6px;height:6px;background:var(--coral);border-radius:50%}.image-placeholder{display:grid;place-items:center;height:190px;background:#eeeee5;margin-bottom:9px;color:var(--muted);font:24px var(--serif)}
@media(min-width:1600px){.gallery.masonry{columns:5}.gallery.grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:1250px){main{padding:0 30px}.sidebar{width:216px;padding-left:15px;padding-right:15px}main{margin-left:216px}.gallery.masonry{columns:3;column-gap:17px}.gallery.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.candidate-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}h1{font-size:48px}.intro-sketch{margin-right:0}.intro-sketch svg{width:110px;height:100px}.filter-bar{flex-wrap:wrap}.search-field{flex-basis:40%}.filter-bar select{flex:1;max-width:160px}.brand{font-size:24px}.topbar-actions{gap:17px}}@media(max-width:950px){.gallery.masonry{columns:2}.gallery.grid,.candidate-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.intro-sketch{display:none}.topbar-actions>.text-button{display:none}.breadcrumb{font-size:8px;letter-spacing:1px}.breadcrumb span{margin:0 8px}.intro{min-height:240px}.filter-bar{gap:8px}.search-field{flex-basis:100%}.library-tabs{gap:22px}.library-tabs .surprise{font-size:0;gap:0}.library-tabs .surprise svg{width:17px;height:17px}.detail-layout{grid-template-columns:1fr}.detail-art{padding:25px;min-height:250px}.detail-art img{max-height:55dvh}.detail-side{max-height:none}.detail-dialog{max-height:92dvh;overflow-y:auto}.detail-side .dialog-top{position:sticky;top:-26px;background:var(--white);padding:8px 0;z-index:5}.detail-facts{grid-template-columns:repeat(3,1fr)}}@media(max-width:650px){main{margin-left:0;padding:0 20px}.sidebar{z-index:12;width:240px;transform:translateX(-100%);transition:transform .2s;box-shadow:5px 0 40px #0002}.sidebar.open{transform:translateX(0)}.mobile-menu{display:flex;font-size:19px}.topbar{height:73px;gap:10px}.topbar-actions{margin-left:auto}.breadcrumb{font-size:7px;letter-spacing:.6px}.breadcrumb>span,.breadcrumb>strong{display:none}.button{min-height:38px;font-size:11px;padding:9px 13px}.intro{min-height:244px;padding:33px 0}.intro h1{font-size:48px;max-width:340px;letter-spacing:-1.4px}.intro-copy{font-size:11px}.eyebrow{font-size:8px;letter-spacing:1.5px}.library-tabs{gap:23px;height:49px}.library-tabs button{font-size:11px}.filter-bar select{min-width:0;max-width:none;padding-right:15px;font-size:10px}.filter-bar{padding-top:20px}.results-actions{gap:12px}.results-actions .text-button{font-size:10px}.results-bar{min-height:62px}.gallery.masonry{column-gap:12px}.art-card{padding:6px;margin-bottom:12px}.gallery.grid{gap:12px}.card-info{padding:10px 3px 3px}.card-title{font-size:11px;margin-right:13px}.card-sub{font-size:8px;flex-direction:column;align-items:flex-start;gap:2px}.favorite-button{right:7px;bottom:37px;width:21px}.art-card:has(.card-tags) .favorite-button{bottom:62px}.card-tags{gap:3px;margin-top:8px}.card-tags .tag{font-size:7px;padding:2px 4px}.kind-badge{font-size:7px;left:12px;top:12px}.kind-badge svg{display:none}.page-footer{font-size:8px;flex-direction:column;gap:5px}.form-dialog{padding:22px}.form-dialog h2{font-size:35px}.dialog-bottom{align-items:flex-end}.dialog-bottom small{max-width:140px}.source-heading{flex-direction:column;align-items:flex-start}.source-controls{display:grid}.source-controls select{width:100%;max-width:none}.candidate-gallery{gap:12px}.candidate img{height:155px}.candidate{padding:6px}.candidate label{font-size:9px}.detail-art{padding:17px}.detail-side{padding:22px}.bulk-bar{gap:10px;flex-wrap:wrap;padding:10px}.bulk-bar .button{margin-left:0}.detail-facts{grid-template-columns:1fr 1fr}.detail-nav{gap:3px}.skip-link{left:10px}.view-switch .icon-button{width:25px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Keep chronological reading order across natural-height tiles. */
.gallery.masonry{display:grid;columns:initial;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:8px;column-gap:20px;row-gap:0;align-items:start}
.gallery.masonry .art-card{margin:0}
.card-title{font-family:var(--sans)}
@media(min-width:1600px){.gallery.masonry{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1250px){.gallery.masonry{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:17px}}
@media(max-width:950px){.gallery.masonry{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.gallery.masonry{column-gap:12px}}
