@font-face{font-family:Portfolio;src:url('cormorant-garamond-latin.woff') format('woff');font-weight:400;font-display:swap}
:root{--ink:#22231f;--muted:#82837b;--line:#e5e5df;--paper:#fafaf7;--accent:#5a6550;--serif:Portfolio,Georgia,serif;--sans:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a:focus-visible,button:focus-visible{outline:2px solid #7d8c6e;outline-offset:4px}input:focus,textarea:focus{outline:2px solid #c3cbbb;outline-offset:1px}button{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}h1{font-family:var(--serif);font-size:48px;line-height:1.1;letter-spacing:-1px;margin-bottom:15px}h2{font-family:var(--serif);font-size:34px;line-height:1.15;margin-bottom:20px}h3{font-size:16px;font-weight:500}p{color:var(--muted)}[hidden]{display:none!important}.overline{display:block;font-size:10px;font-weight:600;letter-spacing:2px;color:var(--muted);margin-bottom:22px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:20px;border:1px solid var(--line);padding:12px 20px;background:#fff;font-size:12px;min-height:44px;transition:background .15s}.btn:hover{background:#f0f0eb}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:#41433b}.btn.subtle{background:transparent}.btn.small{padding:7px 12px;min-height:34px;font-size:11px}.btn.wide{width:100%;justify-content:space-between}.btn.danger{color:#a3433c;border-color:#e3c4c0}.icon-button{background:transparent;border:0;font-size:27px;line-height:1;padding:0 6px}.login-shell{min-height:100svh;display:grid;grid-template-columns:1fr 1fr}.login-brand{background:#10120f;color:#f8f8ef;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:70px 35px;position:relative}.studio-monogram{font-family:var(--serif);font-size:180px;line-height:1;font-weight:300;letter-spacing:-20px;color:#777e6c;margin-left:-15px;margin-bottom:40px}.login-wordmark{font-family:var(--serif);font-size:47px;line-height:1;color:inherit;margin:0 0 25px}.login-tagline{font-size:9px;letter-spacing:4px;color:#959b8e}.login-main{display:flex;align-items:center;justify-content:center;padding:70px 35px}.login-form{width:100%;max-width:360px}.login-form h1{font-size:48px}.login-form>p{margin-bottom:35px;font-size:13px}label{display:block;font-size:12px;font-weight:500;margin:0 0 18px}input:not([type=checkbox]),textarea,select{display:block;width:100%;padding:12px 13px;margin-top:8px;border:1px solid #dcded5;background:#fff;color:var(--ink);border-radius:0;min-width:0}textarea{resize:vertical}input[type=checkbox]{appearance:auto;accent-color:var(--accent);width:17px;height:17px;flex-shrink:0;cursor:pointer;margin:0}.optional{font-weight:400;color:var(--muted);margin-left:6px;font-size:11px}.check-label{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:400}.back-to-site{display:block;text-align:center;font-size:11px;color:var(--muted);margin-top:30px}.form-error{color:#a74138;font-size:12px;line-height:1.6;min-height:0}.form-error:empty{display:none}.admin-layout{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100svh}.sidebar{padding:43px 26px 28px;background:#f0f0e9;border-right:1px solid var(--line);position:sticky;top:0;height:100svh;display:flex;flex-direction:column}.admin-wordmark{font-family:var(--serif);font-size:29px;line-height:1.04;letter-spacing:-.5px}.admin-wordmark>span{display:block;font-family:var(--sans);font-size:9px;letter-spacing:2px;margin:20px 0 43px;color:var(--muted)}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav button{width:100%;text-align:left;padding:12px 10px;border:0;background:transparent;color:#73766b;font-size:13px;display:flex;align-items:center;gap:14px}.sidebar nav button>span{font-size:19px;width:21px;text-align:center;font-weight:400}.sidebar nav button:hover{background:#e7e9df}.sidebar nav button.active{background:#fff;color:#24291e}.sidebar-bottom{margin-top:auto;padding:40px 10px 0;display:flex;flex-direction:column;align-items:flex-start;gap:18px;font-size:11px}.sidebar-bottom button{padding:0;background:transparent;border:0;color:var(--muted);font-size:11px}.sidebar-bottom small{color:var(--muted);font-size:9px;overflow-wrap:anywhere;max-width:100%}.admin-content{min-width:0}.admin-topbar{height:80px;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:9px;letter-spacing:1.2px;color:var(--muted)}.admin-topbar b{font-weight:500;color:var(--ink)}.admin-topbar a{font-size:10px;letter-spacing:0}#workspace{padding:45px 40px 70px;max-width:1600px;margin:0 auto;outline:0}.page-titlebar{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:40px}.page-titlebar h1{margin-bottom:10px}.page-titlebar p{font-size:12px;margin-bottom:0}.stats-line{display:flex;align-items:center;gap:25px;margin-bottom:25px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.stats-line strong{font-weight:500;color:var(--ink);font-size:19px;margin-right:6px}.events-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.event-card{position:relative;background:#fff;border:1px solid var(--line)}.event-card-main{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left}.event-card-image{height:245px;background:#e7e7df;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center}.event-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.event-card:hover .event-card-image img{transform:scale(1.03)}.event-card-image .album-monogram{font-family:var(--serif);font-size:80px;color:#aaa99c;line-height:1}.event-badge{position:absolute;top:13px;left:13px;padding:5px 9px;background:#fff;color:var(--ink);font-size:9px;letter-spacing:.3px}.event-badge.published{background:#edf0e6;color:#536344}.event-card-text{padding:21px}.event-card-text h3{font-family:var(--serif);font-size:26px;line-height:1.2;margin:0 0 10px}.event-card-text p{font-size:10px;margin:0}.event-card-bottom{display:flex;align-items:center;justify-content:space-between;padding:0 20px 18px;font-size:10px;color:var(--muted)}.sort-buttons{display:inline-flex;gap:5px}.sort-buttons button{border:1px solid var(--line);padding:2px 8px;background:#fff;font-size:15px;min-width:28px;min-height:28px}.empty-state{border:1px dashed #d6d8cd;padding:70px 25px;text-align:center;background:#f4f4ee}.empty-state h2{font-size:33px;margin-bottom:10px}.empty-state p{font-size:12px;max-width:420px;margin:0 auto 25px}.filters{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:25px 0}.text-button{border:0;padding:0;background:transparent;font-size:11px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.back-button{display:inline-block;margin-bottom:30px}.event-edit-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:30px}.panel{background:#fff;border:1px solid var(--line);padding:25px}.panel h2{font-size:26px;margin-bottom:25px}.event-details{align-self:start;position:sticky;top:25px}.event-details .btn{margin-top:10px}.event-details .notice{font-size:10px;margin-top:20px}.upload-zone{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px dashed #bfc5b5;min-height:170px;padding:30px;background:#f2f4ed;text-align:center;cursor:pointer;margin-bottom:25px;transition:background .15s}.upload-zone.dragover{background:#dfe7d2;border-style:solid}.upload-zone>strong{font-family:var(--serif);font-size:29px;font-weight:400;margin:9px 0}.upload-zone>span{font-size:11px;color:var(--muted)}.upload-zone .upload-symbol{font-size:28px;color:var(--accent);font-weight:300}.upload-input{position:absolute;width:1px!important;height:1px;opacity:0;min-width:0;clip-path:inset(50%)}.upload-zone:focus-within{outline:2px solid #7d8c6e;outline-offset:4px}.upload-queue{margin-bottom:30px}.queue-item{display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding:10px 0}.queue-item img{width:47px;height:55px;object-fit:cover}.queue-item .file-name{flex:1;min-width:0;font-size:11px;word-break:break-word}.queue-item label{margin:0;font-size:10px}.queue-actions{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:20px}.queue-status{font-size:11px;color:var(--muted);margin:15px 0}.upload-progress{height:3px;background:#e3e7d9;margin:15px 0}.upload-progress>span{display:block;height:100%;background:var(--accent);transition:width .2s}.photo-manager-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.photo-card{background:#fff;border:1px solid var(--line);min-width:0;position:relative}.photo-card.dragging{opacity:.4}.photo-card.drag-target{outline:2px solid #738061;outline-offset:1px}.photo-card-image{height:215px;position:relative;background:#e5e5dd;overflow:hidden;cursor:grab}.photo-card-image img{width:100%;height:100%;object-fit:cover;display:block}.cover-mark{position:absolute;top:10px;left:10px;font-size:9px;background:#fff;padding:4px 7px}.photo-card-body{padding:14px}.photo-card-body .check-label{font-size:10px;margin:0 0 14px}.photo-caption{font-size:10px!important;padding:8px!important;margin:0!important}.photo-card-footer{padding:0 14px 12px;display:flex;justify-content:space-between;gap:7px;align-items:center;flex-wrap:wrap}.photo-card-footer .text-button{font-size:9px}.photo-card-event{font-size:9px;color:var(--muted);padding:0 14px 12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.notice{background:#f1f3eb;border-left:2px solid #98a58b;padding:15px 17px;font-size:12px;color:#636b58;line-height:1.7}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;max-width:1050px}.settings-grid .panel h2{font-size:29px}.settings-grid p{font-size:11px}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.editor-dialog{width:calc(100% - 30px);max-width:500px;border:1px solid var(--line);padding:35px;background:var(--paper);color:var(--ink);max-height:90dvh;overflow-y:auto}.editor-dialog::backdrop{background:rgba(20,24,16,.5);backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:flex-start}.editor-dialog h2{font-size:40px;margin:0 0 10px}.editor-dialog>form>p{font-size:12px;margin-bottom:30px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:100;background:#242a1e;color:#fff;padding:13px 22px;box-shadow:0 6px 30px #0002;font-size:12px;max-width:calc(100vw - 30px);min-width:160px;text-align:center}.toast.error{background:#80382e}.loading-state{text-align:center;padding:100px 20px;color:var(--muted)}.setup-body{padding:45px 20px}.setup-card{max-width:650px;margin:0 auto;background:#fff;border:1px solid var(--line);padding:40px}.setup-card h1{font-size:43px}.setup-card p{font-size:12px}.setup-card h2{font-size:28px;margin:30px 0 15px}.setup-checks{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin:25px 0}.setup-checks>div{display:flex;gap:10px;font-size:11px;margin:8px 0}.check-ok{color:#61754e}.check-no{color:#ac614b}.setup-card .notice{margin-bottom:30px}.no-js{position:fixed;inset:0;background:#fff;display:grid;place-items:center;padding:30px}
@media(min-width:1600px){.event-card-image{height:310px}.photo-card-image{height:280px}}
@media(max-width:1200px){.events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-manager-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-edit-layout{grid-template-columns:minmax(0,1fr) 245px}.admin-layout{grid-template-columns:210px minmax(0,1fr)}#workspace{padding:35px 25px 60px}.admin-topbar{padding:0 25px}.sidebar{padding-left:20px;padding-right:20px}}
@media(max-width:950px){.event-edit-layout{grid-template-columns:1fr}.event-details{position:static;grid-row:1}.event-details form{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.event-details label:has(textarea),.event-details .check-label,.event-details .btn{grid-column:1/-1}.settings-grid{grid-template-columns:1fr}.photo-manager-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.photo-card-image{height:190px}}
@media(max-width:760px){.login-shell{grid-template-columns:1fr}.login-brand{min-height:200px;padding:30px}.studio-monogram{display:none}.login-wordmark{font-size:37px;margin-bottom:15px}.login-main{padding:45px 25px}.login-form{max-width:400px}.admin-layout{display:block}.sidebar{position:static;height:auto;padding:22px 20px 0;border-right:0;border-bottom:1px solid var(--line)}.admin-wordmark{font-size:25px;line-height:1.1}.admin-wordmark br{display:none}.admin-wordmark>span{margin:9px 0 18px;font-size:8px}.sidebar nav{display:flex;flex-direction:row;justify-content:space-between;gap:0;margin:0 -10px}.sidebar nav button{font-size:10px;gap:6px;justify-content:center;padding:12px 9px}.sidebar nav button>span{font-size:17px;width:auto}.sidebar-bottom{position:absolute;top:27px;right:20px;margin:0;padding:0;gap:0}.sidebar-bottom a,.sidebar-bottom small{display:none}.sidebar-bottom button{font-size:10px}.admin-topbar{height:52px;padding:0 20px;font-size:8px}.admin-topbar a{font-size:9px}#workspace{padding:30px 20px 50px}.page-titlebar{gap:15px;margin-bottom:28px;align-items:flex-start}.page-titlebar h1{font-size:40px}.page-titlebar .btn{font-size:10px;padding:11px 13px;gap:10px;white-space:nowrap}.page-titlebar p{font-size:11px}.events-grid{gap:15px}.event-card-image{height:220px}.event-card-text{padding:15px}.event-card-text h3{font-size:23px}.event-card-bottom{padding:0 15px 15px}.photo-manager-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.photo-card-image{height:230px}.photo-card-body{padding:11px}.photo-card-footer{padding:0 11px 11px}.stats-line{gap:17px;font-size:10px}.stats-line strong{font-size:16px}.panel{padding:22px}.queue-item{gap:10px}.queue-item .file-name{font-size:10px}.queue-item label{max-width:125px}.editor-dialog{padding:27px}.setup-card{padding:25px}.setup-card h1{font-size:35px}.setup-body{padding:20px 15px}}
@media(max-width:440px){.events-grid{grid-template-columns:1fr}.event-card-image{height:290px}.photo-card-image{height:190px}.photo-card-body .check-label{font-size:9px;gap:5px}.photo-card-footer{gap:10px}.form-columns,.event-details form{grid-template-columns:1fr}.sidebar nav button{font-size:9px}.page-titlebar{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
