:root{--ink:#262624;--muted:#77746f;--paper:#fff;--soft:#f5f2ed;--line:#dedbd5;--accent:#858076;--header-h:7.25rem;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Avenir Next,Avenir,Century Gothic,Futura,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;font-size:16px;line-height:1.7}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:4px}:focus-visible{outline:2px solid var(--ink)}.site-header{min-height:var(--header-h);z-index:5;background:#fffffff5;justify-content:space-between;align-items:center;padding:1.75rem clamp(1.35rem,3vw,3rem);display:flex;position:relative}.brand{text-transform:uppercase;letter-spacing:.34em;font-size:.9rem;font-weight:500}.site-nav{align-items:center;gap:clamp(1.5rem,4vw,3rem);display:flex}.site-nav a{padding-block:.35rem;font-size:.96rem;position:relative}.site-nav a:after{content:"";background:var(--ink);height:1px;transition:transform .2s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.site-nav a:hover:after,.site-nav a[aria-current=page]:after{transform:scaleX(1)}.menu-toggle{text-transform:uppercase;letter-spacing:.18em;background:0 0;border:0;font-size:.76rem;display:none}.portfolio-intro{text-align:center;padding:1.2rem 1rem 4rem}.portfolio-intro h1,.contact-heading h1,.about-hero h1,.about-cta h2,.admin-title h1{letter-spacing:.015em;margin:.5rem 0 0;font-size:clamp(2rem,3vw,3.25rem);font-weight:400;line-height:1.2}.portfolio-intro h1{font-size:clamp(1.8rem,2.7vw,3rem)}.eyebrow{text-transform:uppercase;letter-spacing:.28em;margin:0;font-size:.72rem;font-weight:600}.gallery-shell{padding:0 clamp(.7rem,2.35vw,2rem) 5rem}.tag-filters{flex-wrap:wrap;justify-content:center;gap:.45rem .7rem;padding:0 1rem 2.25rem;display:flex}.tag-filter{-webkit-appearance:none;appearance:none;color:var(--muted);text-transform:uppercase;letter-spacing:.18em;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;padding:.25rem .1rem;font-size:.7rem;transition:color .22s,border-color .22s,transform .22s}.tag-filter:hover{color:var(--ink)}.tag-filter.is-selected{color:var(--ink);border-color:var(--ink);font-weight:700;transform:translateY(-1px)}.masonry{columns:var(--portfolio-columns-desktop,4);column-gap:.75rem}.gallery-item{break-inside:avoid;cursor:zoom-in;background:#eee;border:0;width:100%;margin:0 0 .75rem;padding:0;overflow:hidden}.gallery-item.is-entering{animation:.34s both gallery-enter}.gallery-item img{width:100%;height:auto;transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .3s}.gallery-item:hover img{filter:brightness(.95);transform:scale(1.012)}.empty-state{color:var(--muted);text-align:center;padding:2rem}.lightbox{z-index:50;color:#fff;background:#10100ff7;grid-template-columns:4rem minmax(0,1fr) 4rem;align-items:center;width:100vw;height:100vh;padding:1.25rem;display:grid;position:fixed;inset:0}.lightbox figure{justify-items:center;gap:.7rem;min-width:0;margin:0;display:grid}.lightbox img{object-fit:contain;max-width:100%;max-height:calc(100vh - 6rem)}.lightbox figcaption{color:#d6d3ce;justify-content:space-between;gap:2rem;width:min(100%,70rem);font-size:.82rem;display:flex}.lightbox button{color:#fff;cursor:pointer;background:0 0;border:0}.lightbox-close{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;position:fixed;top:1rem;right:1.5rem}.lightbox-arrow{height:4rem;font-size:1.8rem}.site-footer{color:#eee;letter-spacing:.12em;text-transform:uppercase;background:#232321;justify-content:space-between;align-items:center;gap:1rem;min-height:5rem;padding:1.5rem clamp(1.35rem,3vw,3rem);font-size:.75rem;display:flex}.site-footer a:hover{text-decoration:underline}.about-hero{min-height:calc(100vh - var(--header-h));color:#fff;background:#68757d;place-items:center;padding:4rem 1.5rem;display:grid;position:relative;overflow:hidden}.about-hero:after{content:"";background:linear-gradient(90deg,#0000001f,#000000ad);position:absolute;inset:0}.about-hero>img{object-fit:cover;object-position:30% center;width:100%;height:100%;position:absolute;inset:0}.about-hero-copy{z-index:1;text-align:center;text-shadow:0 1px 18px #00000059;width:min(38rem,46vw);margin-left:43%;position:relative}.about-hero-copy p:last-child{max-width:37rem;margin:2rem auto 0;font-size:1.06rem}.about-columns{text-align:center;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,6vw,7rem);padding:clamp(5rem,8vw,8rem) clamp(2rem,7vw,7.5rem);display:grid}.about-columns article>p:last-child{color:#484743;margin-top:1.7rem}.about-cta{text-align:center;padding:4rem 1.5rem 6rem}.about-cta h2{margin:1rem 0 2rem}.button{border:1px solid var(--accent);background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.2em;cursor:pointer;justify-content:center;align-items:center;min-height:3.1rem;padding:.75rem 1.6rem;font-size:.72rem;transition:background .2s,color .2s;display:inline-flex}.button:hover{background:var(--ink);border-color:var(--ink)}.button:disabled{opacity:.65}.button-small{min-height:2.5rem;margin-top:.7rem;padding:.55rem 1rem}.contact-layout{min-height:calc(100vh - var(--header-h));padding:clamp(2rem,5vw,5rem) 1.35rem 5rem}.contact-content{width:min(46rem,100%);margin:0 auto}.contact-content.contact-grid{grid-template-columns:minmax(18rem,.9fr) minmax(24rem,1.1fr);align-items:stretch;gap:clamp(1.5rem,4vw,4.5rem);width:min(74rem,100%);display:grid}.contact-photo{background:var(--soft);min-height:38rem;margin:0;overflow:hidden}.contact-photo img{object-fit:cover;width:100%;height:100%}.contact-panel{flex-direction:column;justify-content:center;display:flex}.contact-heading{text-align:center;max-width:38rem;margin:0 auto 3rem}.contact-heading>p:last-child{color:var(--muted);margin-top:1rem}.contact-form{background:var(--soft);gap:1.7rem;padding:clamp(1.5rem,4vw,3.5rem);display:grid}.contact-form label{text-transform:uppercase;letter-spacing:.2em;gap:.55rem;font-size:.72rem;font-weight:600;display:grid}.contact-form input,.contact-form textarea{border:1px solid var(--line);color:var(--ink);text-transform:none;letter-spacing:normal;resize:vertical;background:#ffffff73;padding:.95rem 1rem;font-size:1rem}.form-status{min-height:1.2em;margin:0;font-size:.9rem}.prototype-note{color:var(--muted);margin:.7rem 0 0;font-size:.78rem}.admin-main{width:min(78rem,100% - 2.5rem);margin:0 auto;padding:1rem 0 6rem}.admin-header{border-bottom:1px solid var(--line)}.admin-header-links{align-items:center;gap:1.2rem;font-size:.82rem;display:flex}.text-link{text-underline-offset:.3rem;text-decoration:underline}.admin-title{grid-template-columns:1fr minmax(20rem,32rem);align-items:end;gap:4rem;padding:3rem 0;display:grid}.admin-title>p{color:var(--muted);margin:0}.admin-panel{border-top:1px solid var(--line);padding:2.5rem 0}.setting-field{gap:.65rem;width:min(26rem,100%);font-size:.9rem;display:grid}.setting-field select{border:1px solid var(--line);min-height:3rem;color:var(--ink);background:#fff;padding:.65rem .8rem}.drop-zone{background:var(--soft);text-align:center;cursor:pointer;min-height:16rem;color:var(--muted);border:1px dashed #aaa69d;flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.drop-zone:hover{border-color:var(--ink);background:#ece8df}.drop-title{color:var(--ink);font-size:1.25rem}.panel-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:1.5rem;display:flex}.panel-heading h2{margin:.35rem 0 0;font-size:1.8rem;font-weight:400}.admin-save-group{align-items:center;gap:1rem;display:flex}.admin-save-all{min-width:11rem;margin-top:0}.admin-save-all.is-saving{opacity:.7}.admin-save-all.is-saved{color:#fff;background:#617565;border-color:#617565;animation:.36s saved-pulse}.admin-save-all.is-error{color:#973929;background:#fff;border-color:#973929}.admin-list{background:var(--line);gap:1px;display:grid}.admin-card{background:#fff;grid-template-columns:7.5rem 1fr auto;align-items:center;gap:1.2rem;padding:.8rem;display:grid}.admin-card img{object-fit:cover;width:7.5rem;height:6rem}.admin-fields{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.admin-fields input{border:1px solid var(--line);min-width:0;padding:.55rem .7rem}.admin-actions{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.admin-actions button{border:1px solid var(--line);cursor:pointer;background:#fff;padding:.45rem .65rem}.admin-actions .danger{color:#973929}.submission-list{gap:1rem;display:grid}.submission{background:var(--soft);padding:1.25rem}.submission p{margin:.3rem 0}.submission-meta{color:var(--muted);font-size:.82rem}@keyframes gallery-enter{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes saved-pulse{0%{transform:scale(.95)}70%{transform:scale(1.06)}to{transform:scale(1)}}.layout-settings{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.layout-settings .setting-field{width:100%}@media (max-width:960px){.masonry{columns:var(--portfolio-columns-tablet,2)}.about-hero-copy{width:min(34rem,80vw);margin:0}.about-hero:after{background:#00000085}.about-columns{gap:2.5rem;padding-inline:2rem}.contact-content.contact-grid{grid-template-columns:minmax(15rem,.8fr) minmax(22rem,1.2fr);gap:2rem}}@media (max-width:720px){:root{--header-h:5.5rem}.site-header{min-height:var(--header-h)}.brand{letter-spacing:.22em;font-size:.78rem}.menu-toggle{display:block}.site-nav{border-top:1px solid var(--line);text-align:center;background:#fff;flex-direction:column;align-items:stretch;padding:1.5rem;display:none;position:absolute;top:100%;left:0;right:0}.site-nav.is-open{display:flex}.portfolio-intro{padding:1.5rem 1rem 3rem}.masonry{columns:var(--portfolio-columns-mobile,2);column-gap:.45rem}.gallery-item{margin-bottom:.45rem}.lightbox{grid-template-columns:2.5rem minmax(0,1fr) 2.5rem;padding:.75rem}.lightbox figcaption{font-size:.72rem}.site-footer{flex-direction:column;padding-block:2rem}.about-hero{align-items:end;min-height:40rem;padding:3rem 1.5rem}.about-hero>img{object-position:38% center}.about-hero-copy{width:100%}.about-columns{grid-template-columns:1fr;padding-block:4.5rem}.contact-layout{padding-inline:1rem}.contact-content.contact-grid{grid-template-columns:1fr;gap:2.5rem}.contact-photo{aspect-ratio:4/3;min-height:0}.admin-title{grid-template-columns:1fr;gap:1.5rem}.layout-settings{grid-template-columns:1fr}.admin-header-links span{display:none}.admin-card{grid-template-columns:5rem 1fr}.admin-card img{width:5rem;height:5rem}.admin-actions{grid-column:1/-1;justify-content:flex-start}.admin-fields{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important}}
