@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.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:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.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:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.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:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.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:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.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:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.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:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.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:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.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:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_13d79370-module__fVamUW__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_13d79370-module__fVamUW__variable{--font-body:"DM Sans", "DM Sans Fallback"}
*,:before,:after{box-sizing:border-box;margin:0}body,h1,h2,h3,h4,p,ul,ol,li,figure,figcaption,blockquote,dl,dd{padding:0}ul,ol{list-style:none}::selection{background:#0f766e1f}:root{--bg:#faf9f7;--bg-card:#f5f4f1;--text:#1a1a1a;--text-secondary:#6b6b6b;--text-tertiary:#a0a0a0;--accent:#1a1a1a;--border:#ebebeb;--tag-bg:#f0f0f0;--tag-text:#6b6b6b;--placeholder-bg:#f0eeeb;--placeholder-icon:#d0cdc7;--nav-bg:#faf9f7d9;--dot-color:26, 26, 26;--body:"DM Sans", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111;--bg-card:#1a1a1a;--text:#f0f0f0;--text-secondary:#999;--text-tertiary:#666;--accent:#f0f0f0;--border:#2a2a2a;--tag-bg:#222;--tag-text:#999;--placeholder-bg:#1e1e1e;--placeholder-icon:#333;--nav-bg:#111111d9;--dot-color:240, 240, 240;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111;--bg-card:#1a1a1a;--text:#f0f0f0;--text-secondary:#999;--text-tertiary:#666;--accent:#f0f0f0;--border:#2a2a2a;--tag-bg:#222;--tag-text:#999;--placeholder-bg:#1e1e1e;--placeholder-icon:#333;--nav-bg:#111111d9;--dot-color:240, 240, 240;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--body);color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='6' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)' opacity='0.18'/%3E%3C/svg%3E");font-size:16px;line-height:1.6;transition:background-color .3s,color .3s;overflow-x:hidden}a{color:inherit;text-decoration:none}.container{width:100%;max-width:1400px;margin:0 auto;padding:0 40px}.container-narrow{width:100%;max-width:920px;margin:0 auto;padding:0 40px}.nav{z-index:100;padding-top:20px;padding-bottom:20px;position:fixed;top:0;left:0;right:0}.nav.scrolled{background:var(--nav-bg);-webkit-backdrop-filter:blur(20px)}.nav-inner{justify-content:space-between;align-items:center;display:flex}.nav-name{color:var(--text);align-items:center;gap:10px;font-size:15px;font-weight:500;display:inline-flex}.nav-logo{flex-shrink:0;width:auto;height:22px}.nav-links{align-items:center;gap:28px;list-style:none;display:flex}.nav-link{color:var(--text-secondary);font-size:14px;font-family:var(--body);cursor:pointer;background:0 0;border:none;transition:color .2s}.nav-link:hover{color:var(--text)}.nav-back{color:var(--text-secondary);align-items:center;gap:8px;font-size:14px;transition:color .2s;display:flex}.nav-back:hover{color:var(--text)}.nav-back svg{width:16px;height:16px}.nav-right{align-items:center;gap:24px;display:flex}.theme-toggle{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;padding:4px;transition:color .2s;display:flex}.theme-toggle:hover{color:var(--text)}.theme-toggle svg{width:18px;height:18px}.hero-wrapper{position:relative;overflow:hidden}.hero{z-index:1;padding-top:180px;padding-bottom:60px;position:relative}.hero-headline{font-family:var(--body);letter-spacing:-.03em;color:var(--text);max-width:16ch;margin-bottom:36px;font-size:clamp(3.2rem,6.5vw,5.5rem);font-weight:600;line-height:1.05}.hero-description{color:var(--text-secondary);max-width:48ch;margin-bottom:48px;font-size:clamp(1.15rem,1.8vw,1.35rem);line-height:1.55}.section{padding-top:80px;padding-bottom:80px}.section-header{justify-content:space-between;align-items:baseline;margin-bottom:48px;display:flex}.section-title{font-family:var(--body);color:var(--text);font-size:clamp(1.5rem,2.5vw,2rem);font-weight:600}.section-count{color:var(--text-tertiary);font-size:.95rem}.gallery-top{grid-template-columns:1fr;align-items:end;gap:32px;margin-bottom:16px;display:grid}@media (min-width:900px){.gallery-top{grid-template-columns:1fr 1.8fr 1fr;gap:40px}}@media (min-width:1400px){.gallery-top{gap:48px}}@media (min-width:768px) and (max-width:899px){.gallery-top{grid-template-columns:1fr 1.5fr 1fr;gap:32px}}.gallery-wall{columns:1;column-gap:40px}@media (min-width:768px){.gallery-wall{columns:2}}@media (min-width:1100px){.gallery-wall{columns:3}}.project-card{cursor:pointer;break-inside:avoid;background:0 0;border:none;border-radius:0;margin-bottom:48px;transition:transform .5s cubic-bezier(.16,1,.3,1);display:block;position:relative;overflow:visible}.project-card:hover{transform:translateY(-4px)}.project-img{aspect-ratio:4/3;background:var(--placeholder-bg);border-radius:0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.project-img svg{width:40px;height:40px;color:var(--placeholder-icon)}.project-img-inner{justify-content:center;align-items:center;width:100%;height:100%;transition:transform .6s cubic-bezier(.16,1,.3,1);display:flex}.project-card:hover .project-img-inner{transform:scale(1.03)}.frame-wrap{border-radius:2px;padding:40px;position:relative}.frame-wrap:before,.frame-wrap:after{content:"";pointer-events:none;z-index:1;border-radius:1px;position:absolute}.frame-wrap:before{inset:10px}.frame-wrap:after{inset:26px}.frame-wrap.frame-thin{padding:28px}.frame-wrap.frame-thin:before{inset:7px}.frame-wrap.frame-thin:after{inset:18px}.frame-wrap.frame-thin .project-img{border-width:8px}.frame-wrap .project-img{z-index:2;border:12px solid #f5f2ec;outline:1px solid #ddd8d0;position:relative}.frame-wrap .project-img:after{content:"";pointer-events:none;z-index:3;position:absolute;inset:0;box-shadow:inset 0 0 10px #00000026}.frame-gold{background:linear-gradient(#f0d868 0%,#e8c35a 15%,#d4a74a 35%,#c49a3c 55%,#a07828 80%,#8a6420 100%);box-shadow:inset 0 0 0 2px #8a6420,inset 3px 3px 4px #ffebaa80,inset -3px -3px 4px #50320a66,inset 0 0 0 6px #b8882e,inset 0 0 0 8px #8a6420,inset 8px 8px 6px #ffebaa40,inset -8px -8px 6px #3c28054d,0 6px 12px #00000026,0 20px 40px #0000001a,4px 30px 50px #0000000f}.frame-gold:before{border:2px solid #a07828;box-shadow:inset 1px 1px 2px #ffebaa66,inset -1px -1px 2px #3c28054d}.frame-gold:after{border:1.5px solid #8a6420;box-shadow:inset 1px 1px 3px #3c280566}.frame-darkwood{background:linear-gradient(#6b4a30 0%,#5a3d25 15%,#4a3220 35%,#3e2b1a 55%,#2e2015 80%,#221810 100%);box-shadow:inset 0 0 0 2px #2a1c10,inset 3px 3px 4px #78553266,inset -3px -3px 4px #0f0a0580,inset 0 0 0 6px #4a3220,inset 0 0 0 8px #2a1c10,inset 8px 8px 6px #78553233,inset -8px -8px 6px #0f0a054d,0 6px 12px #0003,0 20px 40px #0000001f,4px 30px 50px #00000012}.frame-darkwood:before{border:2px solid #3e2b1a;box-shadow:inset 1px 1px 2px #7855324d,inset -1px -1px 2px #0f0a0566}.frame-darkwood:after{border:1.5px solid #2a1c10;box-shadow:inset 1px 1px 3px #0f0a0566}.frame-black{background:linear-gradient(#3a3a3a 0%,#2e2e2e 15%,#222 35%,#1a1a1a 55%,#111 80%,#0a0a0a 100%);box-shadow:inset 0 0 0 2px #111,inset 3px 3px 4px #5050504d,inset -3px -3px 4px #00000080,inset 0 0 0 6px #252525,inset 0 0 0 8px #111,inset 8px 8px 6px #50505026,inset -8px -8px 6px #0006,0 6px 12px #0003,0 20px 40px #0000001f,4px 30px 50px #00000012}.frame-black:before{border:2px solid #1a1a1a;box-shadow:inset 1px 1px 2px #50505040,inset -1px -1px 2px #0006}.frame-black:after{border:1.5px solid #111;box-shadow:inset 1px 1px 3px #00000080}.frame-silver{background:linear-gradient(#ddd 0%,#c8c8c8 15%,#b8b8b8 35%,#a0a0a0 55%,#909090 80%,gray 100%);box-shadow:inset 0 0 0 2px gray,inset 3px 3px 4px #e6e6e680,inset -3px -3px 4px #3232324d,inset 0 0 0 6px #a0a0a0,inset 0 0 0 8px gray,inset 8px 8px 6px #e6e6e633,inset -8px -8px 6px #32323240,0 6px 12px #0000001f,0 20px 40px #00000014,4px 30px 50px #0000000d}.frame-silver:before{border:2px solid #909090;box-shadow:inset 1px 1px 2px #e6e6e666,inset -1px -1px 2px #3232324d}.frame-silver:after{border:1.5px solid gray;box-shadow:inset 1px 1px 3px #3232324d}.frame-walnut{background:linear-gradient(#9b6838 0%,#8b5a30 15%,#7a4e2a 35%,#6b4226 55%,#5a3620 80%,#4a2e18 100%);box-shadow:inset 0 0 0 2px #4a2e18,inset 3px 3px 4px #a06e3c66,inset -3px -3px 4px #1e120866,inset 0 0 0 6px #6b4226,inset 0 0 0 8px #4a2e18,inset 8px 8px 6px #a06e3c33,inset -8px -8px 6px #1e12084d,0 6px 12px #0000002e,0 20px 40px #0000001a,4px 30px 50px #0000000f}.frame-walnut:before{border:2px solid #5a3820;box-shadow:inset 1px 1px 2px #a06e3c4d,inset -1px -1px 2px #1e120859}.frame-walnut:after{border:1.5px solid #4a2e18;box-shadow:inset 1px 1px 3px #1e120866}.frame-bronze{background:linear-gradient(#c49530 0%,#b08520 15%,#a0791a 35%,#8b6914 55%,#7a5c10 80%,#6a5010 100%);box-shadow:inset 0 0 0 2px #6a5010,inset 3px 3px 4px #c8a03c66,inset -3px -3px 4px #32230566,inset 0 0 0 6px #8b6914,inset 0 0 0 8px #6a5010,inset 8px 8px 6px #c8a03c33,inset -8px -8px 6px #3223054d,0 6px 12px #00000026,0 20px 40px #0000001a,4px 30px 50px #0000000f}.frame-bronze:before{border:2px solid #7a5c12;box-shadow:inset 1px 1px 2px #c8a03c59,inset -1px -1px 2px #32230559}.frame-bronze:after{border:1.5px solid #6a5010;box-shadow:inset 1px 1px 3px #32230566}.frame-ivory{background:linear-gradient(#f8f5f0 0%,#f0ece4 15%,#e8e2d8 35%,#e0d9ce 55%,#d5cec2 80%,#cdc5b8 100%);box-shadow:inset 0 0 0 2px #cdc5b8,inset 3px 3px 4px #fffffa99,inset -3px -3px 4px #a0968740,inset 0 0 0 6px #ddd6ca,inset 0 0 0 8px #cdc5b8,inset 8px 8px 6px #fffffa4d,inset -8px -8px 6px #a0968733,0 6px 12px #00000014,0 20px 40px #0000000f,4px 30px 50px #0000000a}.frame-ivory:before{border:2px solid #d5cec2;box-shadow:inset 1px 1px 2px #fffffa80,inset -1px -1px 2px #a0968733}.frame-ivory:after{border:1.5px solid #cdc5b8;box-shadow:inset 1px 1px 3px #a0968740}.project-info{text-align:center;background:#fffefa;border:1px solid #e8e4dc;max-width:320px;margin:8px auto 0;padding:14px 20px;position:relative;box-shadow:0 1px 3px #0000000a,0 4px 8px #00000005}.project-title{font-family:var(--body);color:#2a2a2a;letter-spacing:.01em;margin-bottom:4px;font-size:.95rem;font-weight:600;line-height:1.3}.project-subtitle{color:#666;font-size:.8rem;font-style:italic;line-height:1.45}.project-tags{justify-content:center;gap:6px;margin-top:8px;display:flex}.project-tag{color:#999;white-space:nowrap;letter-spacing:.03em;text-transform:uppercase;background:0 0;border:1px solid #ddd8d0;border-radius:2px;padding:3px 8px;font-size:.65rem;font-weight:500}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .project-info{background:#1e1d1b;border-color:#333}:root:not([data-theme=light]) .project-title{color:#e8e8e8}:root:not([data-theme=light]) .project-tag{color:#888;border-color:#444}}:root[data-theme=dark] .project-info{background:#1e1d1b;border-color:#333}:root[data-theme=dark] .project-title{color:#e8e8e8}:root[data-theme=dark] .project-tag{color:#888;border-color:#444}.page-frame-container{z-index:9998;pointer-events:none;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 40px,40px 40px,40px calc(100% - 40px),calc(100% - 40px) calc(100% - 40px),calc(100% - 40px) 40px,40px 40px,0 40px,0 0);position:fixed;inset:0}.page-frame-inner-shadow{z-index:9999;pointer-events:none;position:fixed;inset:40px;box-shadow:inset 0 0 15px #00000026,inset 0 0 4px #00000014}body.framed{padding:40px}body.framed .nav{top:40px;left:40px;right:40px}body.framed main{background:var(--bg);min-height:calc(100vh - 80px);position:relative}.cs-main{opacity:0;transition:opacity .8s cubic-bezier(.4,0,.2,1),transform 1s cubic-bezier(.22,1,.36,1);transform:translateY(12px)}@media (prefers-reduced-motion:reduce){.cs-main{transition:opacity .3s;transform:none}}.cs-main-visible{opacity:1;transform:translateY(0)}.cs-hero{padding-top:130px;padding-bottom:64px}.cs-hero-tags{flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.tag{color:var(--tag-text);background:var(--tag-bg);white-space:nowrap;border-radius:100px;padding:5px 12px;font-size:.7rem;font-weight:500}.cs-hero-title{letter-spacing:-.025em;color:var(--text);max-width:18ch;margin-bottom:20px;font-size:clamp(2.2rem,4.5vw,3.5rem);font-weight:600;line-height:1.1}.cs-hero-summary{color:var(--text-secondary);max-width:52ch;font-size:clamp(1.05rem,1.5vw,1.15rem);line-height:1.6}.cs-hero-img{aspect-ratio:16/9;background:var(--placeholder-bg);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:10px;margin-bottom:80px;display:flex}.cs-hero-img svg{width:48px;height:48px;color:var(--placeholder-icon)}.cs-hero-img span{color:var(--text-tertiary);font-size:.75rem}.metrics-bar{border-top:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center;flex-wrap:wrap;justify-content:center;gap:64px;margin-bottom:80px;padding-top:40px;padding-bottom:40px;display:flex}.metric-number{color:var(--text);font-variant-numeric:tabular-nums;margin-bottom:6px;font-size:2.2rem;font-weight:500;line-height:1}.metric-label{color:var(--text-tertiary);font-size:.9rem}.cs-section{margin-bottom:52px}.cs-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:20px;font-size:.7rem;font-weight:500}.cs-section h2{color:var(--text);margin-bottom:20px;font-size:clamp(1.3rem,2vw,1.5rem);font-weight:600;line-height:1.25}.cs-section p{color:var(--text-secondary);max-width:65ch;margin-bottom:16px;font-size:1rem;line-height:1.7}.cs-section p strong,.cs-section li strong{color:var(--text);font-weight:500}.cs-section ul{margin-bottom:16px}.cs-section li{color:var(--text-secondary);max-width:65ch;margin-bottom:8px;padding-left:16px;font-size:1rem;line-height:1.7;position:relative}.cs-section li:before{content:"";background:var(--text-tertiary);border-radius:50%;width:4px;height:4px;position:absolute;top:11px;left:0}.cs-img{aspect-ratio:16/10;background:var(--placeholder-bg);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;margin:32px 0;display:flex}.cs-img svg{width:36px;height:36px;color:var(--placeholder-icon)}.cs-img span{color:var(--text-tertiary);font-size:.7rem}.cs-gallery{flex-direction:column;gap:40px;margin:32px 0;display:flex}.cs-gallery-item .cs-img{margin:0}.cs-gallery-img{background:var(--placeholder-bg);border-radius:12px;width:100%;height:auto;padding:32px;display:block}.cs-padded-img{margin:32px 0}.cs-gallery-item figcaption{letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-top:12px;font-size:.8rem;font-weight:500}.cs-figure{margin:32px 0}.cs-figure-caption{flex-direction:column;gap:2px;margin-bottom:12px;display:flex}.cs-figure-title{color:var(--text);font-size:.95rem;font-weight:600}.cs-figure-subtitle{color:var(--text-tertiary);font-size:.8rem}.expandable{cursor:zoom-in}.expandable:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.lightbox{z-index:10000;cursor:zoom-out;background:#0a0a0aeb;justify-content:center;align-items:center;padding:48px 24px;animation:.2s lightbox-in;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;border-radius:8px;width:100%;height:100%}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;width:40px;height:40px;padding:8px;position:absolute;top:16px;right:16px}.lightbox-close svg{width:100%;height:100%}@keyframes lightbox-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.lightbox{animation:none}}.outcomes-grid{grid-template-columns:1fr;gap:24px;margin-top:32px;display:grid}@media (min-width:600px){.outcomes-grid{grid-template-columns:repeat(2,1fr)}}.outcome-card{background:var(--bg-card);border-radius:12px;padding:24px}.outcome-number{color:var(--text);font-variant-numeric:tabular-nums;margin-bottom:6px;font-size:1.8rem;font-weight:500;line-height:1}.outcome-label{color:var(--text-secondary);font-size:.85rem;line-height:1.4}.next-project{border-top:1px solid var(--border);text-align:center;margin-top:80px;padding-top:64px;padding-bottom:80px}.next-label{color:var(--text-tertiary);letter-spacing:.04em;margin-bottom:12px;font-size:.75rem}.next-title{color:var(--text);font-size:clamp(1.5rem,3vw,2rem);font-weight:600;transition:color .2s}.next-title:hover{color:var(--text-secondary)}.mini-gallery{scroll-snap-type:x mandatory;scrollbar-width:none;justify-content:center;align-items:flex-end;gap:28px;margin:8px -40px -48px;padding:40px 40px 56px;display:flex;overflow-x:auto}.mini-gallery::-webkit-scrollbar{display:none}.mini-card{scroll-snap-align:center;flex-direction:column;flex:none;align-items:center;gap:12px;width:132px;transition:transform .4s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.mini-card:hover{transform:translateY(-4px)}.mini-card-next{width:176px}.mini-frame{width:100%}.frame-wrap.mini-frame{padding:12px}.frame-wrap.mini-frame:before{inset:3px}.frame-wrap.mini-frame:after{inset:8px}.frame-wrap.mini-frame .project-img{border-width:4px}.mini-frame .project-img img{object-fit:contain;width:100%;height:100%}.mini-frame .project-img svg{width:20px;height:20px}.mini-title{min-height:2.6em;color:var(--text-secondary);text-align:center;font-size:.8rem;font-weight:500;line-height:1.3;transition:color .2s}.mini-card:hover .mini-title{color:var(--text)}.mini-card-next .mini-title{color:var(--text);font-weight:600}@media (max-width:900px){.mini-gallery{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.mini-card,.mini-card:hover{transition:none;transform:none}}.divider{background:var(--border);border:none;height:1px;margin:0}.footer{border-top:1px solid var(--border);margin-top:40px;padding-top:60px;padding-bottom:60px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.footer-col h4{letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:12px;font-size:.7rem;font-weight:500}.footer-col ul{list-style:none}.footer-col li{margin-bottom:6px}.footer-col a{color:var(--text-secondary);font-size:1rem;transition:color .2s}.footer-col a:hover{color:var(--text)}.footer-copy{border-top:1px solid var(--border);width:100%;color:var(--text-tertiary);margin-top:40px;padding-top:24px;font-size:.8rem}.footer-simple{border-top:1px solid var(--border);padding-top:40px;padding-bottom:40px}.footer-simple .footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer-simple .footer-copy{border-top:none;width:auto;margin-top:0;padding-top:0}.footer-simple .footer-links{gap:20px;display:flex}.footer-simple .footer-links a{color:var(--text-secondary);font-size:1rem;transition:color .2s}.footer-simple .footer-links a:hover{color:var(--text)}::view-transition-group(.frame-morph){animation-duration:.6s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-old(root){animation:.3s both vt-fade-out}::view-transition-new(root){animation:.4s .15s both vt-fade-in}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0}}.about-hero{padding-top:160px;padding-bottom:80px}.about-hero-title{letter-spacing:-.025em;color:var(--text);max-width:18ch;margin-bottom:32px;font-size:clamp(2.5rem,5vw,4rem);font-weight:600;line-height:1.08}.about-hero-intro{color:var(--text-secondary);max-width:52ch;font-size:clamp(1.15rem,1.8vw,1.35rem);line-height:1.6}.photo-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:80px;display:grid}.photo-grid .photo-large{grid-row:span 2}.photo-placeholder{background:var(--placeholder-bg);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:200px;display:flex}.photo-large{min-height:420px}.photo-placeholder svg{width:32px;height:32px;color:var(--placeholder-icon)}.photo-placeholder span{color:var(--text-tertiary);font-size:.75rem}.photo-wall{columns:2;column-gap:16px;max-width:920px;margin:0 auto 80px}@media (min-width:900px){.photo-wall{column-gap:20px}}.photo-tile{break-inside:avoid;margin-bottom:16px}@media (min-width:900px){.photo-tile{margin-bottom:20px}}.photo-tile img{background:var(--placeholder-bg);border-radius:12px;width:100%;height:auto;display:block}.photo-tile figcaption{color:var(--text-tertiary);margin-top:8px;font-size:.8rem}.stats-row{border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:48px;margin-bottom:80px;padding:32px 0;display:flex}.stat-number{color:var(--text);margin-bottom:4px;font-size:1.6rem;font-weight:500;line-height:1}.stat-label{color:var(--text-tertiary);font-size:.85rem}.about-section{margin-bottom:64px}.about-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:20px;font-size:.75rem;font-weight:500}.about-section h2{color:var(--text);margin-bottom:20px;font-size:clamp(1.4rem,2vw,1.6rem);font-weight:600;line-height:1.25}.about-section p{color:var(--text-secondary);max-width:60ch;margin-bottom:16px;font-size:1.1rem;line-height:1.7}.about-section p strong{color:var(--text);font-weight:500}.personal-grid{grid-template-columns:1fr;gap:32px;margin-top:48px;margin-bottom:80px;display:grid}@media (min-width:768px){.personal-grid{grid-template-columns:repeat(3,1fr)}}.personal-card{background:var(--bg-card);border-radius:12px;overflow:hidden}.personal-card-img{aspect-ratio:4/3;background:var(--placeholder-bg);flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.personal-card-img svg{width:28px;height:28px;color:var(--placeholder-icon)}.personal-card-img span{color:var(--text-tertiary);font-size:.7rem}.personal-card-body{padding:20px}.personal-card-title{color:var(--text);margin-bottom:6px;font-size:1.1rem;font-weight:600}.personal-card-desc{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.tag-row{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.tag{color:var(--tag-text);background:var(--tag-bg);border-radius:100px;padding:6px 14px;font-size:.8rem;font-weight:500}.page-fade-out{animation:.2s forwards pageFadeOut}@keyframes pageFadeOut{to{opacity:0;transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.project-card,.project-card:hover{transition:none;transform:none}.project-img-inner{transition:none}}@media (max-width:900px){.metrics-bar{gap:32px}}@media (max-width:640px){.container,.container-narrow{padding:0 20px}.hero{padding-top:140px;padding-bottom:80px}.project-info{flex-direction:column}.project-tags{justify-content:flex-start}.nav-links{gap:20px}.footer-inner{flex-direction:column}.frame-wrap{padding:28px}.frame-wrap:before{inset:7px}.frame-wrap:after{inset:18px}.frame-wrap .project-img{border-width:8px}.cs-hero{padding-top:120px;padding-bottom:40px}.cs-hero-title{font-size:2rem}.metrics-bar{flex-direction:column;gap:20px;margin-bottom:48px;padding-top:24px;padding-bottom:24px}.cs-section{margin-bottom:48px}.cs-hero-img{aspect-ratio:4/3;margin-bottom:48px}.cs-img{margin:24px 0}.outcomes-grid{gap:12px}.outcome-card{padding:20px}.outcome-number{font-size:1.5rem}.next-project{margin-top:48px;padding-top:48px;padding-bottom:60px}.page-frame-container{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 20px,20px 20px,20px calc(100% - 20px),calc(100% - 20px) calc(100% - 20px),calc(100% - 20px) 20px,20px 20px,0 20px,0 0);padding:20px}.page-frame-inner-shadow{inset:20px}body.framed{padding:20px}body.framed .nav{top:20px;left:20px;right:20px}body.framed .cs-hero{padding-top:100px}.footer-simple .footer-inner{flex-direction:column;align-items:flex-start}.photo-grid{grid-template-columns:1fr}.photo-large{grid-row:span 1;min-height:280px}.stats-row{flex-direction:column;gap:20px}.about-hero{padding-top:120px}.personal-grid{gap:20px}}@media (max-width:380px){.container,.container-narrow{padding:0 16px}.cs-hero-title{font-size:1.75rem}.page-frame-container{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 14px,14px 14px,14px calc(100% - 14px),calc(100% - 14px) calc(100% - 14px),calc(100% - 14px) 14px,14px 14px,0 14px,0 0);padding:14px}.page-frame-inner-shadow{inset:14px}body.framed{padding:14px}body.framed .nav{top:14px;left:14px;right:14px}}@media print{.nav,.theme-toggle,.page-frame{display:none}body{color:#000;background:#fff}body.framed{padding:0}}.login{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.login-card{flex-direction:column;width:100%;max-width:360px;display:flex}.login-title{color:var(--text);margin-bottom:6px;font-size:1.5rem;font-weight:600}.login-intro{color:var(--text-secondary);margin-bottom:32px;font-size:.95rem}.login-label{color:var(--text-secondary);margin-bottom:8px;font-size:.8rem;font-weight:500}.login-input{font:inherit;color:var(--text);background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:1rem}.login-input:focus{outline:2px solid var(--accent);outline-offset:2px}.login-error{color:#c0392b;margin-top:8px;font-size:.85rem}.login-button{font:inherit;color:var(--bg);background:var(--accent);cursor:pointer;border:none;border-radius:10px;margin-top:20px;padding:12px 14px;font-size:.95rem;font-weight:500;transition:opacity .2s}.login-button:hover{opacity:.85}.contact-main{flex-direction:column;min-height:100vh;display:flex}.contact-main .hero-wrapper{flex:1}.contact-hero{padding-bottom:120px}.contact-plaque{background:#fffefa;border:1px solid #e8e4dc;max-width:440px;padding:8px 28px;box-shadow:0 1px 3px #0000000a,0 4px 8px #00000005}.contact-plaque-row{grid-template-columns:96px 1fr;align-items:baseline;gap:16px;padding:16px 0;display:grid}.contact-plaque-row+.contact-plaque-row{border-top:1px solid #ece8e0}.contact-plaque-label{letter-spacing:.06em;text-transform:uppercase;color:#999;font-size:.7rem;font-weight:500}.contact-plaque-value{color:#2a2a2a;word-break:break-word;text-underline-offset:4px;font-size:1rem;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .2s}a.contact-plaque-value:hover{text-decoration-color:currentColor}.contact-plaque-static{color:#666;font-weight:400;text-decoration:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .contact-plaque{background:#1e1d1b;border-color:#333}:root:not([data-theme=light]) .contact-plaque-row+.contact-plaque-row{border-top-color:#2e2d2a}:root:not([data-theme=light]) .contact-plaque-value{color:#e8e8e8}:root:not([data-theme=light]) .contact-plaque-static{color:#999}}:root[data-theme=dark] .contact-plaque{background:#1e1d1b;border-color:#333}:root[data-theme=dark] .contact-plaque-row+.contact-plaque-row{border-top-color:#2e2d2a}:root[data-theme=dark] .contact-plaque-value{color:#e8e8e8}:root[data-theme=dark] .contact-plaque-static{color:#999}@media (max-width:640px){.contact-plaque{padding:4px 20px}.contact-plaque-row{grid-template-columns:1fr;gap:4px}}.ft-overlay{z-index:10001;pointer-events:none;will-change:transform, width, height;position:fixed;top:0;left:0}.ft-fill{background:var(--bg);opacity:0;position:absolute;inset:0}.frame-wrap.ft-ring{clip-path:polygon(evenodd, 0 0, 100% 0, 100% 100%, 0 100%, 0 0, var(--ft-pad) var(--ft-pad), var(--ft-pad) calc(100% - var(--ft-pad)), calc(100% - var(--ft-pad)) calc(100% - var(--ft-pad)), calc(100% - var(--ft-pad)) var(--ft-pad), var(--ft-pad) var(--ft-pad));padding:0;position:absolute;inset:0}.frame-wrap.ft-ring:before{inset:var(--ft-l1)}.frame-wrap.ft-ring:after{inset:var(--ft-l2)}body.ft-active .page-frame-container,body.ft-active .page-frame-inner-shadow{visibility:hidden}.nav.ft-nav-out{opacity:0;pointer-events:none;transition:opacity .25s cubic-bezier(.4,0,1,1)}body.ft-active:not(.ft-revealed) .nav:not(.ft-nav-out){opacity:0}.nav{transition:background .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s,opacity .6s cubic-bezier(.22,1,.36,1)}body.ft-returning .nav{opacity:0;transition:opacity .25s cubic-bezier(.4,0,1,1)}
