@font-face{font-family:raleway;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/raleway-latin-ext-400-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:raleway;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/raleway-latin-400-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:raleway;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/raleway-latin-ext-600-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:raleway;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/raleway-latin-600-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:raleway;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/raleway-latin-ext-700-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:raleway;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/raleway-latin-700-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--accent:#1abc9c;--accent-dark:#11b28e;--text:#8d8d8d;--heading:#222222;--bg:#ffffff;--bg-soft:#f7f7f7;--line:#e6e6e6;--sidebar-w:260px;--font:"Raleway", "Helvetica Neue", Arial, sans-serif}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font:15px/1.75 var(--font);color:var(--text);background:var(--bg)}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-dark)}h1,h2,h3,h4,h5,h6{color:var(--heading);font-weight:600;line-height:1.3;margin:1.4em 0 .6em}h3{font-size:23px}h5{font-size:15px}h6{font-size:13px}strong{color:#444}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);padding:40px 30px;background:var(--bg);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;text-align:center;overflow-y:auto;z-index:10}.logo img{width:100px;height:100px}.nav{display:flex;flex-direction:column;align-items:center;width:100%}.nav ul{list-style:none;margin:40px 0 30px;padding:0}.nav li a{display:block;padding:4px 0;font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--heading);line-height:30px}.nav li a:hover,.nav li a.active{color:var(--accent)}.social{display:flex;gap:14px;margin-bottom:26px}.social a{color:var(--heading)}.social a:hover{color:var(--accent)}.legal{font-size:12px;line-height:1.6}.legal a{display:block;color:var(--text);margin-bottom:4px}.legal a:hover{color:var(--accent)}.legal p{margin:14px 0 0}.menu-toggle{display:none}.main{margin-left:var(--sidebar-w);min-height:100vh}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr)}.tile{position:relative;display:block;overflow:hidden;aspect-ratio:1/1;background:var(--bg-soft)}.tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}.tile-caption{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;text-align:center;background:rgba(0,0,0,.45);opacity:0;transition:opacity .35s ease}.tile-title{color:#fff;font-size:15px;font-weight:600;letter-spacing:1px;text-transform:uppercase;line-height:1.6}.tile-cat{color:#fff;font-size:14px;font-weight:500;margin-top:4px}.tile:hover img,.tile:focus-visible img{transform:scale(1.12)}.tile:hover .tile-caption,.tile:focus-visible .tile-caption{opacity:1}.latest{padding:40px 60px}.latest h2{font-size:15px;text-transform:uppercase;letter-spacing:1px}.latest ul,.post-list{list-style:none;padding:0}.latest time,.post-list time{margin-left:8px;font-size:13px}.page-title{position:relative;overflow:hidden;height:354px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-soft)}.page-title-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.page-title h1,.page-title .sep{position:relative;z-index:1}.page-title h1{margin:0;font-size:35px;line-height:40px;color:var(--heading);text-align:center;padding:0 20px}.page-title .sep{display:block;width:40px;height:1px;background:#fff;margin-top:14px}.page{max-width:1100px;margin:0 auto;padding:60px 40px 80px}.prose h3{font-size:23px}.prose ol,.prose ul{padding-left:1.4em}.prose li{margin-bottom:.4em}.post-date{font-size:13px}.post-list li{margin-bottom:1.6em}.post-list a{font-size:17px;font-weight:600;color:var(--heading)}.project-gallery{display:flex;flex-direction:column;gap:0;max-width:1400px;margin:0 auto}.project-gallery a{display:block;cursor:zoom-in}.project-info{display:grid;grid-template-columns:3fr 1fr;gap:60px;max-width:1200px;margin:0 auto;padding:60px 40px 30px}.project-title{font-size:23px;text-transform:uppercase;letter-spacing:1px;margin-top:0}.project-text h2{font-size:17px}.project-meta h2{font-size:13px;text-transform:uppercase;letter-spacing:1px;margin-top:0}.project-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;max-width:1200px;margin:0 auto;padding:30px 40px 60px;border-top:1px solid var(--line);font-size:13px}.project-nav a{color:var(--heading);font-weight:600;text-transform:uppercase;letter-spacing:1px}.project-nav a:hover{color:var(--accent)}.project-nav .next{text-align:right}.project-nav .back{font-size:22px}.compare{--pos:50%;position:relative;margin:30px auto;max-width:1100px;overflow:hidden;user-select:none}.compare img{width:100%}.compare-before{position:absolute;inset:0;height:100%;object-fit:cover;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}.compare-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}.compare-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;background:#fff;transform:translateX(-1px);pointer-events:none}.compare-handle::after{content:"\2194";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:#fff;color:var(--heading);display:grid;place-items:center;font-size:18px;box-shadow:0 1px 6px rgba(0,0,0,.25)}.map{position:relative;aspect-ratio:4/3;max-width:1100px;background:var(--bg-soft);margin:30px 0}.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.map-load{position:absolute;inset:0;width:100%;border:0;background:0 0;cursor:pointer;font:700 13px/1.6 var(--font);text-transform:uppercase;letter-spacing:1px;color:var(--heading)}.map-load small{display:block;margin-top:8px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text)}.map-load:hover{color:var(--accent)}.lightbox{border:0;padding:0;max-width:100vw;max-height:100vh;width:100vw;height:100vh;background:rgba(0,0,0,.92)}.lightbox::backdrop{background:rgba(0,0,0,.92)}.lightbox img{max-width:94vw;max-height:90vh;width:auto;margin:5vh auto 0}.lightbox button{position:absolute;background:0 0;border:0;color:#fff;font-size:34px;cursor:pointer;padding:10px 18px;opacity:.8}.lightbox button:hover{opacity:1}.lb-close{top:10px;right:10px}.lb-prev{left:10px;top:50%;transform:translateY(-50%)}.lb-next{right:10px;top:50%;transform:translateY(-50%)}@media(max-width:1100px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:1000px){.sidebar{position:sticky;top:0;inset:auto;width:100%;height:auto;padding:10px 16px;flex-direction:row;flex-wrap:wrap;justify-content:space-between;border-right:0;border-bottom:1px solid var(--line);overflow:visible}.logo img{width:56px;height:56px}.menu-toggle{display:block;width:44px;height:44px;border:0;background:0 0;cursor:pointer;position:relative}.menu-toggle .bars,.menu-toggle .bars::before,.menu-toggle .bars::after{position:absolute;left:11px;width:22px;height:2px;background:var(--heading);content:""}.menu-toggle .bars{top:21px}.menu-toggle .bars::before{left:0;top:-7px}.menu-toggle .bars::after{left:0;top:7px}.nav{display:none;width:100%;padding-bottom:20px}.nav.open{display:flex}.nav ul{margin:16px 0}.main{margin-left:0}.page-title{height:220px}.page-title h1{font-size:26px}.project-info{grid-template-columns:1fr;gap:10px;padding:40px 16px 20px}.page{padding:40px 16px 60px}.project-nav{padding:24px 16px 40px;font-size:11px}.latest{padding:30px 16px}}@media(max-width:700px){.portfolio-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.tile img,.tile-caption{transition:none}}