*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#f5f3ee;color:#262721;font:15px/1.65 Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a:hover{text-decoration:underline}header,main,footer{max-width:1600px;margin:auto;padding:0 5vw}header{height:120px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d6d5ce}.logo{font-weight:700;letter-spacing:1px}.logo span{display:block;font-size:11px;font-weight:400;letter-spacing:0;color:#77796c}nav{display:flex;gap:36px}.intro{padding:80px 0 65px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600}h1{font:clamp(55px,7.7vw,120px)/1.04 Georgia,serif;letter-spacing:-5px;margin:35px 0 45px;font-weight:400}em{font-weight:400;color:#717a57}.intro-bottom{display:flex;justify-content:space-between;align-items:end}.intro-bottom p{color:#737468}.intro-bottom a{border-bottom:1px solid;padding-bottom:7px}.section-heading{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #d6d5ce;padding-top:30px}.section-heading h2{font:32px Georgia,serif}.section-heading span,.note{font-size:11px;color:#7c7d73}.filters{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0 35px}.filters button{border:1px solid #d6d5ce;border-radius:30px;padding:8px 19px;background:transparent;cursor:pointer;font-size:12px}.filters button[aria-pressed=true]{background:#2c3027;color:#fff;border-color:#2c3027}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:45px 28px}.project{border:0;text-align:left;padding:0;background:transparent;cursor:pointer;color:inherit}.art{height:430px;display:grid;place-items:center;overflow:hidden;position:relative;transition:filter .3s}.project:hover .art{filter:brightness(.94)}.art span{font:80px/1 Georgia,serif;position:relative;z-index:1;letter-spacing:-5px}.art:before,.art:after{content:'';position:absolute}.art-0{background:#dad4bd}.art-0:before{width:220px;height:270px;background:#738065;border-radius:50% 50% 0 0;transform:rotate(-18deg)}.art-0:after{width:130px;height:130px;border-radius:100%;background:#e7a568;top:55px;right:75px}.art-1{background:#a6b5b1;color:#f7f4e8}.art-1 span{font-size:110px;transform:rotate(-90deg)}.art-1:before{width:240px;height:330px;border:1px solid #f7f4e8}.art-2{background:linear-gradient(160deg,#b3bdbe 45%,#606c5b 46%,#929378 60%,#c9bca0 61%)}.art-2:before{width:120px;height:120px;border-radius:50%;background:#efe4c5;top:50px;left:60px}.art-3{background:#292f30;color:#eee5d6}.art-3:before{inset:40px;border:1px solid #68716b}.art-3 span{font-size:65px}.art-4{background:#bb6950;color:#eadebb}.art-4:before{width:280px;height:280px;border-radius:50%;background:#dfb77e}.art-5{background:#ddd8cb}.art-5 span{font-size:120px;letter-spacing:-12px}.art-6{background:linear-gradient(85deg,#545d56,#c6c5b4 45%,#7d8874 46%,#b8b09d)}.art-6:after{inset:70px 35%;border-radius:50% 50% 0 0;background:#333f37}.art-7{background:#7e8c83;color:#f6ebcf}.art-7:before{width:300px;height:180px;border:1px solid #e1e3cc;transform:rotate(-20deg)}.project-meta{display:flex;justify-content:space-between;align-items:center;padding-top:14px}.project-meta h3{font-size:16px;font-weight:400;margin:0}.project-meta p{font-size:10px;color:#76786c;margin:0}.about{display:grid;grid-template-columns:1fr 1fr;gap:70px;border-top:1px solid #d6d5ce;margin-top:90px;padding:80px 0}.about h2,.contact h2{font:56px/1.1 Georgia,serif;letter-spacing:-2px}.large{font:28px/1.4 Georgia,serif}.skills{display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:12px;margin:30px 0}.contact{border-top:1px solid #d6d5ce;padding:70px 0}.email{font-size:22px;border-bottom:1px solid;padding-bottom:8px}form{max-width:700px;margin:60px 0 0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}label{display:block;font-size:12px;margin-bottom:25px}input,textarea,select{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid #b5b7a8;border-radius:0;padding:12px 0;color:inherit}textarea{resize:vertical}.submit{background:#30382c;color:white;border:0;padding:14px 30px;cursor:pointer}footer{padding-top:25px;padding-bottom:25px;border-top:1px solid #d6d5ce;display:flex;justify-content:space-between;font-size:10px;color:#74776a}dialog{border:0;background:#f5f3ee;width:min(1000px,92vw);max-height:92vh;padding:35px}dialog::backdrop{background:#161b17cf}dialog .art{height:50vh}dialog h2{font:38px Georgia,serif}.close{float:right;border:0;background:transparent;cursor:pointer;padding:0 0 20px}#project-art{clear:both}:focus-visible{outline:2px solid #6b7954;outline-offset:5px}@media(max-width:700px){header{height:90px}nav{gap:18px;font-size:12px}.intro{padding-top:50px}h1{letter-spacing:-2.5px}.intro-bottom{display:block}.intro-bottom a{display:inline-block;margin-top:12px}.section-heading span{max-width:100px;text-align:right}.gallery{grid-template-columns:1fr;gap:30px}.art{height:390px}.about{grid-template-columns:1fr;gap:5px;padding:45px 0}.about h2,.contact h2{font-size:43px}.form-row{grid-template-columns:1fr;gap:0}footer span:nth-child(2){display:none}.project-meta h3{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.hero-art{margin:55px 0 0}.hero-art img{display:block;width:100%;max-height:640px;object-fit:cover}.hero-art figcaption{font-size:11px;color:#737468;margin-top:12px}.art:has(img):before,.art:has(img):after{display:none}.logo{font-size:13px;letter-spacing:.8px}@media(max-width:700px){.logo{max-width:180px;font-size:11px}.hero-art{margin-top:35px}.hero-art img{height:310px;object-fit:cover}}

/* Consistent controls and viewport-safe media, including iOS Safari. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-width:0}button{-webkit-appearance:none;appearance:none;color:inherit;border-radius:0}button,a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button.submit{color:#fff}img,video{max-width:100%}[hidden]{display:none!important}.gallery>*{min-width:0}.project-meta{gap:12px}.project-meta h3{overflow-wrap:anywhere}.project-meta p{flex-shrink:0}.photo-filters{margin-top:-15px;padding-top:15px;border-top:1px solid #d6d5ce}.modal-open,.modal-open body{overflow:hidden}dialog{position:fixed;inset:0;margin:auto;max-width:calc(100% - 24px);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:24px}dialog .close{position:sticky;top:0;z-index:5;float:none;display:block;margin:0 0 16px auto;padding:10px 16px;min-height:44px;border:1px solid #c8cabe;border-radius:24px;background:#f5f3ee;color:#262721}.close:focus:not(:focus-visible){outline:none}#project-art .art{height:auto;min-height:0;background:transparent;display:block}#project-art .art:before,#project-art .art:after,#project-art .art>span{display:none}#project-art .art img{position:static!important;width:100%!important;height:auto!important;object-fit:contain!important;display:block}#project-art video{max-height:65dvh}.project-description{white-space:pre-line}input,select,textarea{min-width:0}#subcategory-form{padding:24px 0;border-bottom:1px solid #d6d5ce}
@media(max-width:700px){header{height:auto;min-height:110px;flex-direction:column;align-items:flex-start;justify-content:center;gap:16px;padding-top:max(20px,env(safe-area-inset-top));padding-bottom:18px}.logo{max-width:none;font-size:12px;letter-spacing:.5px}.logo span{font-size:11px}nav{width:100%;gap:26px;font-size:14px}nav a{min-height:32px}.intro{padding-top:36px}h1{font-size:clamp(42px,11.5vw,70px);letter-spacing:-2px;overflow-wrap:break-word}.eyebrow{font-size:9px;letter-spacing:1.2px;line-height:1.8}.art{height:auto;aspect-ratio:4/3}.filters{gap:8px}.filters button{min-height:44px;padding:9px 15px}.project-meta{align-items:flex-start}.project-meta p{font-size:9px}input,select,textarea{font-size:16px}dialog{width:calc(100% - 24px);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);padding:16px}dialog h2{font-size:30px;line-height:1.15;overflow-wrap:break-word}dialog .close{top:0;margin-bottom:12px}.skills{gap:12px}.email{font-size:18px;overflow-wrap:anywhere}footer{gap:16px;padding-bottom:max(24px,env(safe-area-inset-bottom))}}

/* SVG arrows keep the same monochrome shape on Safari and Chrome. */
.icon-arrow{display:inline-block;width:.9em;height:.9em;vertical-align:-.08em;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* A full project bar appears on scroll; the top view keeps only the close control. */
#lightbox{padding:0}
.lightbox-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px;padding:12px 24px;background:transparent;border-bottom:1px solid transparent;transition:background-color .18s,border-color .18s,box-shadow .18s}
.lightbox-header-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;visibility:hidden}
#lightbox.is-scrolled .lightbox-header{background:#f5f3ee;border-bottom-color:#d6d5ce;box-shadow:0 4px 12px #2627210a}
#lightbox.is-scrolled .lightbox-header-title{visibility:visible}
#lightbox .lightbox-header .close{position:static;float:none;flex-shrink:0;margin:0;min-height:44px;padding:10px 0 10px 16px;border:0;border-radius:0;background:transparent}
.lightbox-content{padding:0 24px 24px}
@media(max-width:700px){.lightbox-header{min-height:68px;padding:10px 16px}.lightbox-content{padding:0 16px 16px}}

/* Suppress Safari's tap/autofocus ring while preserving keyboard focus. */
#lightbox .close:focus{outline:none;box-shadow:none}
#lightbox.keyboard-focus .close:focus{outline:2px solid #6b7954;outline-offset:3px}

/* Project removal is a separate, explicitly confirmed admin action. */
.admin-project-row{display:flex;gap:12px;align-items:center;margin:12px 0}
.admin-project-open{flex:1;min-width:0;text-align:left;padding:12px;background:transparent;border:1px solid #b5b7a8;cursor:pointer;overflow-wrap:anywhere}
.admin-project-delete{flex-shrink:0;min-height:44px;padding:10px 14px;color:#943d31;background:transparent;border:1px solid #be8d84;cursor:pointer}
#delete-project-dialog{width:min(480px,calc(100% - 24px));padding:24px}
#delete-project-dialog h2{font-size:30px;margin:0 0 16px;line-height:1.2}
#delete-project-error{color:#943d31;white-space:pre-line}
.delete-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:24px}
#cancel-project-delete{min-height:44px;padding:10px 18px;background:transparent;border:1px solid #b5b7a8;cursor:pointer}
#confirm-project-delete{background:#943d31;color:#fff;border-color:#943d31}
.delete-dialog-actions button:disabled{opacity:.6;cursor:wait}
@media(max-width:700px){.admin-project-row{align-items:stretch;flex-direction:column;gap:8px;margin:20px 0}.admin-project-row>.admin-project-delete{align-self:flex-end}}

#featured-image-form{padding:24px 0;border-bottom:1px solid #d6d5ce}
#featured-image-fields{padding:0;margin:0;border:0;min-width:0}
#featured-image-fields:disabled{opacity:.65}
#featured-image-preview{display:block;width:100%;max-height:280px;object-fit:contain;object-position:left center;margin:20px 0 28px;background:#eae7df}
