:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:left;box-sizing:border-box;border:0;flex-direction:column;width:100%;max-width:none;min-height:100svh;margin:0;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*{box-sizing:border-box}:root{color:#f7e9d5;background:#171725;font-family:monospace}body{margin:0}button,a{font:inherit}a{color:inherit}.portfolio{timeline-scope:--floor-entry, --staircase-entry, --hallway-entry, --certificate-entry;width:100%}[data-floor]{transition:opacity .18s,visibility 0s linear .18s}[data-floor].floor-hidden{visibility:hidden;opacity:0;pointer-events:none}.level-transition-overlay{z-index:10;opacity:0;pointer-events:none;background:#000;position:fixed;inset:0}.hero-screen{background:linear-gradient(#080b1840,#080b1840),url(/loft-background.png) 50%/cover no-repeat;flex-direction:column;justify-content:space-between;min-height:100svh;padding:7vh 11%;display:flex;position:relative;overflow:hidden}.project-gallery{max-width:580px}.gallery-heading h1{margin:0 0 12px;font-size:clamp(28px,4vw,54px);font-weight:500}.gallery-heading p{margin:0;line-height:1.6}.profile-screen{align-self:flex-start;margin-top:auto;padding-top:12vh}.profile-screen h2{margin:0 0 8px;font-size:24px}.profile-screen p{margin:5px 0;font-size:13px}.contact-phone{border-bottom:1px solid #f7e9d5;padding-bottom:4px;text-decoration:none;position:absolute;bottom:17%;right:11%}.scroll-cue{letter-spacing:.08em;text-transform:uppercase;justify-items:center;gap:8px;font-size:11px;text-decoration:none;display:grid;position:absolute;bottom:5%;left:50%;transform:translate(-50%)}.scroll-cue-arrow{font-size:20px;animation:1.2s ease-in-out infinite scroll-bob;display:block}.explore-section{isolation:isolate;color:#f7e9d5;view-timeline-name:--floor-entry;view-timeline-axis:block;background:linear-gradient(#080b1870,#080b1870),url(/firstfloor.png) 50%/cover no-repeat;flex-direction:column;justify-content:space-between;min-height:100svh;padding:10vh 11% 0;scroll-margin-top:0;display:flex;position:relative}.staircase-page{background-color:#d7cebc}.staircase-section{view-timeline-name:--staircase-entry;view-timeline-axis:block;background:#d7cebc;height:170svh;position:relative}.staircase-page .gallery-wall.embedded{z-index:2;--wall-enter:0;height:100%;opacity:var(--wall-enter);transform:perspective(1400px) rotateX(calc((1 - var(--wall-enter)) * -9deg)) translateY(calc((1 - var(--wall-enter)) * 34px));transform-origin:top;will-change:opacity, transform;background:0 0;padding:clamp(18px,3vh,30px) 0 12px;position:absolute;top:0;left:0;right:0;overflow:hidden}.staircase-page .gallery-wall-inner{max-width:none;height:100%}.staircase-page .gallery-wall-heading{max-width:none;margin:0 auto 12px;padding:0 clamp(18px,4vw,64px)}.staircase-page .gallery-wall-heading .gallery-eyebrow{margin-bottom:5px}.staircase-page .gallery-wall-heading h1{margin:0;font-size:clamp(21px,2.4vw,32px)}.staircase-page .gallery-wall-heading>p:last-child{display:none}.staircase-page .gallery-grid{scrollbar-color:#786c55 #d7cebc;scrollbar-width:thin;align-items:flex-start;gap:clamp(14px,2vw,28px);padding:8px clamp(18px,4vw,64px) 18px;display:flex;overflow:auto hidden}.staircase-page .gallery-card{perspective:none;opacity:calc(.35 + var(--wall-enter,1) * .65);translate:0 calc((1 - var(--wall-enter,1)) * 46px);will-change:opacity, translate;flex:0 0 clamp(190px,18vw,245px)}.staircase-page .gallery-card:first-child{margin-top:200px}.staircase-page .gallery-card:nth-child(2){margin-top:120px}.staircase-page .gallery-card:nth-child(3){margin-top:40px}.staircase-page .gallery-card-frame,.hallway-page .gallery-card-frame{padding:6px;box-shadow:0 9px 18px #29231a38,0 2px 5px #29231a40}.staircase-page .gallery-card:hover .gallery-card-frame,.staircase-page .gallery-card:focus-within .gallery-card-frame,.hallway-page .gallery-card:hover .gallery-card-frame,.hallway-page .gallery-card:focus-within .gallery-card-frame{transform:translateY(-4px)}.staircase-page .gallery-card-artwork,.hallway-page .gallery-card-artwork{aspect-ratio:1.7}.staircase-page .project-artwork-fallback,.hallway-page .project-artwork-fallback{gap:7px;padding:17px}.staircase-page .project-artwork-type,.hallway-page .project-artwork-type{font-size:8px}.staircase-page .project-artwork-icon,.hallway-page .project-artwork-icon{width:28px;font-size:10px;top:11px;right:11px}.staircase-page .project-artwork-fallback>strong,.hallway-page .project-artwork-fallback>strong{font-size:clamp(21px,2.2vw,28px)}.staircase-page .project-artwork-description,.hallway-page .project-artwork-description{-webkit-line-clamp:1;font-size:10px}.staircase-page .gallery-card-copy,.hallway-page .gallery-card-copy{gap:6px;padding:10px 11px 9px}.staircase-page .gallery-card-title-row h2,.hallway-page .gallery-card-title-row h2{font-size:clamp(16px,1.5vw,20px)}.staircase-page .gallery-card-icon,.hallway-page .gallery-card-icon{width:27px;font-size:9px}.staircase-page .gallery-card-summary,.hallway-page .gallery-card-summary{-webkit-line-clamp:1;font-size:10px}.staircase-page .gallery-card-role,.hallway-page .gallery-card-role{font-size:9px}.staircase-page .technology-tags,.hallway-page .technology-tags{gap:4px}.staircase-page .technology-tags li,.hallway-page .technology-tags li{padding:3px 5px;font-size:9px}.staircase-page .gallery-card-ownership .project-status,.hallway-page .gallery-card-ownership .project-status{min-height:19px;padding:2px 5px;font-size:9px}.staircase-page .gallery-card-ownership>span:last-child,.hallway-page .gallery-card-ownership>span:last-child{font-size:10px}.staircase-page .gallery-card-links,.hallway-page .gallery-card-links{gap:12px;padding:0 12px 11px}.staircase-page .gallery-card-links a,.hallway-page .gallery-card-links a{font-size:10px}.staircase-sticky{perspective:1500px;perspective-origin:50%;background-color:#d7cebc;background-image:radial-gradient(at 18% 22%,#ffffff38 0 1px,#0000 1.5px),radial-gradient(at 76% 65%,#62574612 0 1px,#0000 1.7px),repeating-linear-gradient(2deg,#0000 0 37px,#62574608 38px,#0000 39px 74px);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;width:100%;height:100svh;position:sticky;top:0;overflow:hidden}.staircase-canvas{z-index:3;pointer-events:none;width:100%;height:100%;display:block;position:relative;transform:translateY(28svh)}.staircase-heading{z-index:4;pointer-events:none;position:absolute;bottom:8vh;left:5%}.staircase-heading h2{color:#171725;margin:0;font-size:clamp(24px,3vw,38px);font-weight:400}.staircase-back{z-index:4;color:#171725;border-bottom:1px solid #17172588;padding-bottom:4px;font-size:13px;text-decoration:none;position:absolute;bottom:9vh;right:5%}.staircase-scroll-cue{z-index:4;color:#171725a8;text-align:center;text-transform:uppercase;font-size:11px;position:absolute;bottom:6vh;left:0;right:0}.staircase-next{z-index:4;color:#171725;border-bottom:1px solid #17172588;padding-bottom:4px;font-size:13px;text-decoration:none;position:absolute;bottom:9vh;right:calc(5% + 140px)}.hallway-page{background-color:#d7cebc}.hallway-next{z-index:4;color:#171725;border-bottom:1px solid #17172588;align-items:center;gap:8px;padding-bottom:4px;font-size:13px;text-decoration:none;display:flex;position:absolute;bottom:9vh;right:calc(5% + 140px)}.hallway-section{view-timeline-name:--hallway-entry;view-timeline-axis:block;background:#d7cebc;height:200svh;position:relative}.hallway-sticky{perspective:1500px;perspective-origin:50%;background-color:#d7cebc;background-image:radial-gradient(at 18% 22%,#ffffff38 0 1px,#0000 1.5px),radial-gradient(at 76% 65%,#62574612 0 1px,#0000 1.7px),repeating-linear-gradient(2deg,#0000 0 37px,#62574608 38px,#0000 39px 74px);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;width:100%;height:100svh;position:sticky;top:0;overflow:hidden}.hallway-canvas{z-index:3;pointer-events:none;width:100%;height:100%;display:block;position:relative;transform:translateY(28svh)}.hallway-heading{z-index:4;pointer-events:none;position:absolute;bottom:8vh;left:5%}.hallway-heading h2{color:#171725;margin:0;font-size:clamp(24px,3vw,38px);font-weight:400}.hallway-back{z-index:4;color:#171725;border-bottom:1px solid #17172588;padding-bottom:4px;font-size:13px;text-decoration:none;position:absolute;bottom:9vh;right:5%}.hallway-scroll-cue{z-index:4;color:#171725a8;text-align:center;text-transform:uppercase;font-size:11px;position:absolute;bottom:6vh;left:0;right:0}.hallway-error{z-index:4;color:#ffc2b8;text-align:center;position:absolute;bottom:24px;left:24px;right:24px}.hallway-page .gallery-wall.embedded{z-index:2;--wall-enter:0;height:100%;opacity:calc(.15 + var(--wall-enter,0) * .85);transform:translateY(calc((1 - var(--wall-enter,0)) * 160px));will-change:opacity, transform;background:0 0;padding:clamp(18px,3vh,30px) 0 12px;position:absolute;top:0;left:0;right:0;overflow:hidden}.hallway-page .gallery-wall-inner{max-width:none;height:100%}.hallway-page .gallery-wall-heading{max-width:none;margin:0 auto 12px;padding:0 clamp(18px,4vw,64px)}.hallway-page .gallery-wall-heading .gallery-eyebrow{margin-bottom:5px}.hallway-page .gallery-wall-heading h1{margin:0;font-size:clamp(21px,2.4vw,32px)}.hallway-page .gallery-wall-heading>p:last-child{display:none}.hallway-page .gallery-grid{scrollbar-color:#786c55 #d7cebc;scrollbar-width:thin;align-items:flex-start;gap:clamp(14px,2vw,28px);padding:8px clamp(18px,4vw,64px) 18px;display:flex;overflow:auto hidden}.hallway-page .gallery-card{perspective:none;opacity:calc(.25 + var(--wall-enter,0) * .75);translate:0 calc((1 - var(--wall-enter,0)) * 100px);will-change:opacity, translate;flex:0 0 clamp(190px,18vw,245px);margin-top:40px!important}.hallway-page .gallery-card:nth-child(n){margin-top:40px!important}.certificate-floor{view-timeline-name:--certificate-entry;view-timeline-axis:block;background:#d7cebc;height:190svh;position:relative}.certificate-sticky{color:#272821;background-color:#d7cebc;background-image:radial-gradient(at 18% 22%,#ffffff38 0 1px,#0000 1.5px),radial-gradient(at 76% 65%,#62574612 0 1px,#0000 1.7px),repeating-linear-gradient(2deg,#0000 0 37px,#62574608 38px,#0000 39px 74px);width:100%;height:100svh;padding:clamp(56px,8vh,88px) 24px 96px;position:sticky;top:0;overflow:hidden}.certificate-canvas{z-index:3;pointer-events:none;width:100%;height:100%;display:block;position:absolute;top:0;left:0;transform:translateY(24svh)}.certificate-wall{z-index:2;width:min(100%,1000px);margin:0 auto;position:relative}.certificate-wall-heading{text-align:center;max-width:700px;margin:0 auto 34px}.certificate-wall-heading h1{color:#25271f;margin:0 0 12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,5vw,56px);font-weight:500}.certificate-wall-heading>p:last-child{color:#57574e;font-size:14px}.certificate-row{gap:clamp(14px,3vw,32px);display:grid}.certificate-row-two{grid-template-columns:repeat(2,minmax(0,1fr));width:min(60%,600px);margin:0 auto}.certificate-row-three{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(20px,3vh,30px)}.certificate-gallery{gap:clamp(20px,3vh,30px);display:grid}.certificate-card{background:linear-gradient(135deg,#261e16,#6b5134 52%,#30261b);border:5px solid #3b2d1e;padding:7px;box-shadow:0 14px 28px #080b1859,0 3px 7px #080b1866}.certificate-paper{aspect-ratio:1.42;outline-offset:-6px;color:#453722;text-align:center;background:radial-gradient(#fffdf5 0,#f1e7d0 100%);border:1px solid #a68b5e;outline:1px solid #a68b5e;flex-direction:column;justify-content:center;align-items:center;gap:9px;min-height:150px;padding:22px;display:flex;position:relative;overflow:hidden}.certificate-label{color:#7d6948;letter-spacing:.22em;text-transform:uppercase;font-size:9px}.certificate-paper h2{color:#44351f;max-width:100%;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(15px,2vw,22px);font-weight:500}.certificate-caption{color:#82765f;overflow-wrap:anywhere;width:100%;max-width:100%;font-size:9px;line-height:1.25;display:block}.certificate-seal{aspect-ratio:1;border:1px solid #9a7946;border-radius:50%;width:23px}.certificate-navigation{z-index:4;color:#272821;text-transform:uppercase;justify-content:space-between;font-size:11px;display:flex;position:absolute;bottom:28px;left:max(24px,50% - 500px);right:max(24px,50% - 500px)}.certificate-navigation a{border-bottom:1px solid #27282188;padding-bottom:4px;text-decoration:none}.certificate-error{z-index:4;color:#ffc2b8;text-align:center;font-size:12px;position:absolute;bottom:58px;left:24px;right:24px}.project-status{letter-spacing:.04em;border:1px solid;border-radius:2px;align-items:center;min-height:23px;padding:3px 7px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.project-status.public{color:#275638;background:#e7f0e5;border-color:#3a7450}.project-status.private{color:#8d342b;background:#f6e5df;border-color:#a34a3d}.project-status.unspecified{color:#66655d;background:#efede5;border-color:#88877d}.gallery-wall{color:#272821;background-color:#d7cebc;background-image:radial-gradient(at 18% 22%,#ffffff38 0 1px,#0000 1.5px),radial-gradient(at 76% 65%,#62574612 0 1px,#0000 1.7px),repeating-linear-gradient(2deg,#0000 0 37px,#62574608 38px,#0000 39px 74px);padding:clamp(64px,9vw,128px) max(24px,50% - 720px)}.gallery-wall-inner{width:100%;max-width:1440px;margin:0 auto}.gallery-wall-heading{max-width:700px;margin:0 0 52px}.gallery-eyebrow{color:#685b43;letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px;font-size:11px}.gallery-wall-heading h1{color:#25271f;margin:0 0 14px;font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,5vw,62px);font-weight:500;line-height:1.06}.gallery-wall-heading>p:last-child{color:#57574e;max-width:52ch;font-size:15px;line-height:1.6}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:42px 38px;display:grid}.gallery-card{perspective:1000px;min-width:0}.gallery-card-frame{background:linear-gradient(135deg,#29271f,#564633 55%,#302a20);border:1px solid #29261e;padding:9px;transition:transform .28s,box-shadow .28s;box-shadow:0 16px 30px #29231a38,0 3px 7px #29231a40}.gallery-card:hover .gallery-card-frame,.gallery-card:focus-within .gallery-card-frame{transform:translateY(-7px)rotateX(1deg);box-shadow:0 22px 38px #29231a44,0 5px 10px #29231a40}.gallery-card-open{width:100%;color:inherit;cursor:pointer;text-align:left;background:#f8f6ef;border:0;padding:0;display:block}.gallery-card-open:focus-visible,.gallery-card-links a:focus-visible,.project-dialog button:focus-visible,.project-lightbox button:focus-visible{outline-offset:3px;outline:3px solid #3a684e}.gallery-card-artwork{aspect-ratio:4/3;background:#39392f;border:1px solid #24231f;position:relative;overflow:hidden}.gallery-card-artwork>img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.gallery-card:hover .gallery-card-artwork>img{transform:scale(1.035)}.project-artwork-fallback{color:#fffdf6;background:linear-gradient(135deg,#0000 45%,#e8ddc51c 45.3%,#0000 45.8%),linear-gradient(32deg,#22463f,#4a6358 57%,#8d7858);flex-direction:column;justify-content:flex-end;gap:12px;width:100%;min-height:100%;padding:clamp(20px,3vw,38px);display:flex;position:relative;overflow:hidden}.gallery-card-artwork>.project-artwork-fallback{height:100%}.gallery-card:nth-child(3n+2) .project-artwork-fallback{background:linear-gradient(135deg,#0000 45%,#e8ddc51c 45.3%,#0000 45.8%),linear-gradient(32deg,#384a60,#68777a 57%,#a68d67)}.gallery-card:nth-child(3n) .project-artwork-fallback{background:linear-gradient(135deg,#0000 45%,#e8ddc51c 45.3%,#0000 45.8%),linear-gradient(32deg,#7d443b,#9a6a4e 57%,#c1a477)}.project-artwork-type{color:#f0dfb8;letter-spacing:.1em;text-transform:uppercase;max-width:calc(100% - 52px);font-size:10px}.project-artwork-icon,.gallery-card-icon{aspect-ratio:1;border:1px solid;flex:none;place-items:center;width:38px;font-size:12px;font-weight:600;display:grid}.project-artwork-icon{color:#fffdf6;position:absolute;top:18px;right:18px}.project-artwork-fallback>strong{max-width:16ch;font-family:Georgia,Times New Roman,serif;font-size:clamp(26px,3vw,42px);font-weight:500;line-height:1.02}.project-artwork-description{color:#f6f1e2d9;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:42ch;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.gallery-card-copy{gap:12px;padding:20px 20px 18px;display:grid}.gallery-card-title-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.gallery-card-title-row h2{color:#282a23;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(21px,2vw,28px);font-weight:600;line-height:1.1}.gallery-card-icon{color:#655b4c;border-color:#8b806d}.gallery-card-summary{color:#55564f;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-family:Georgia,Times New Roman,serif;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.gallery-card-role{color:#393b35;gap:4px;font-size:12px;line-height:1.4;display:grid}.gallery-card-role span{color:#817966;letter-spacing:.06em;text-transform:uppercase;font-size:10px}.technology-tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.technology-tags li{color:#56574f;border:1px solid #c8c0af;padding:4px 7px;font-size:10px;line-height:1.2}.gallery-card-ownership,.case-study-ownership{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.gallery-card-ownership>span:last-child,.case-study-ownership>span:last-child{color:#716c60;font-size:12px}.gallery-card-links{gap:16px;padding:0 20px 19px;display:flex}.gallery-card-links a,.case-study-links a{color:#3e5947;border-bottom:1px solid #5b654e;padding-bottom:3px;font-size:12px;font-weight:600;text-decoration:none}.project-dialog{color:#282a23;opacity:1;width:min(1240px,100% - 32px);max-width:none;max-height:min(92svh,1040px);transition:opacity .22s ease, transform .22s ease, overlay .22s allow-discrete, display .22s allow-discrete;background:#f5f2e9;border:1px solid #4d473b;padding:0;overflow:hidden;transform:translateY(0)scale(1);box-shadow:0 26px 90px #17150f66}.project-dialog[open]{animation:.24s both dialog-arrive}@keyframes dialog-arrive{0%{opacity:0;transform:translateY(14px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.project-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#11130fbd;transition:background .22s,-webkit-backdrop-filter .22s,backdrop-filter .22s}.case-study{grid-template-rows:auto minmax(0,1fr) auto;max-height:min(92svh,1040px);display:grid}.case-study-header{border-bottom:1px solid #282a2322;justify-content:space-between;align-items:center;min-height:54px;padding:0 24px;display:flex}.case-study-header .gallery-eyebrow{margin:0}.dialog-close{width:38px;height:38px;color:inherit;cursor:pointer;background:0 0;border:1px solid #605948;border-radius:50%;place-items:center;font-size:23px;display:grid}.case-study-columns{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);min-height:0;display:grid}.case-study-visuals{background:#e8e4d9;border-right:1px solid #282a2322;flex-direction:column;justify-content:center;gap:14px;min-height:0;padding:clamp(18px,3vw,36px);display:flex}.case-study-main-image{background:#d7d1c3;border:10px solid #342f25;place-items:center;min-height:250px;max-height:66svh;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 24px #26231b2c}.case-study-image-button{cursor:zoom-in;background:0 0;border:0;place-items:center;width:100%;max-height:65svh;padding:0;display:grid}.case-study-image-button>img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:64svh;display:block}.case-study-image-button>.project-artwork-fallback,.case-study-main-image>.project-artwork-fallback{min-height:360px}.image-zoom-hint{color:#fff;opacity:0;background:#181a15b8;border:1px solid #fff9;padding:6px 9px;font-size:10px;transition:opacity .16s;position:absolute;bottom:12px;right:12px}.case-study-image-button:hover .image-zoom-hint,.case-study-image-button:focus-visible .image-zoom-hint{opacity:1}.image-arrow{color:#fff;cursor:pointer;background:#171a16c9;border:1px solid #fff9;border-radius:50%;place-items:center;width:38px;height:38px;font-size:25px;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.image-arrow.previous{left:12px}.image-arrow.next{right:12px}.screenshot-navigation{color:#5b594f;justify-content:space-between;align-items:center;gap:12px;font-size:11px;display:flex}.screenshot-thumbnails{flex-wrap:wrap;gap:8px;display:flex}.screenshot-thumbnail{cursor:pointer;background:#d2cbbb;border:2px solid #0000;width:66px;height:48px;padding:0;overflow:hidden}.screenshot-thumbnail.active{border-color:#485a45}.screenshot-thumbnail img{object-fit:cover;width:100%;height:100%}.case-study-details{padding:clamp(24px,4vw,52px);overflow:auto}.case-study-type{color:#75684e;letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:11px}.case-study-details>h2{color:#282a23;margin:0 0 17px;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,4vw,48px);font-weight:500;line-height:1.04}.case-study-ownership{margin-bottom:24px}.case-study-section{margin-top:22px}.case-study-section h3{color:#70654f;letter-spacing:.07em;text-transform:uppercase;margin:0 0 8px;font-size:11px}.case-study-section>p,.rich-project-details{color:#44463f;font-family:Georgia,Times New Roman,serif;font-size:15px;line-height:1.62}.rich-project-details h3{color:#33372f;letter-spacing:0;text-transform:none;margin:18px 0 8px;font-family:Georgia,Times New Roman,serif;font-size:16px}.rich-project-details p{margin:0 0 12px}.rich-project-details ul,.rich-project-details ol{margin:0 0 14px;padding-left:22px}.rich-project-details li{margin:0 0 7px;padding-left:3px}.technology-tags.full-stack{gap:7px}.technology-tags.full-stack li{background:#ebe7dc;border-color:#aaa18e}.case-study-links{flex-wrap:wrap;gap:18px;margin-top:26px;display:flex}.case-study-links a{font-size:13px}.case-study-footer{color:#6b685d;border-top:1px solid #282a2322;justify-content:space-between;align-items:center;min-height:54px;padding:0 22px;font-size:11px;display:flex}.case-study-footer button{color:#394b3b;font:inherit;cursor:pointer;background:0 0;border:0;padding:8px 0}.case-study-footer button:disabled{opacity:.4;cursor:default}.project-lightbox{background:0 0;border:0;width:min(96vw,1500px);max-width:none;max-height:96svh;padding:0;position:fixed;overflow:visible}.project-lightbox::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080906ed}.project-lightbox>img{object-fit:contain;width:auto;max-width:96vw;height:auto;max-height:92svh;margin:auto;display:block}.project-lightbox .dialog-close{color:#fff;border-color:#fff;position:fixed;top:18px;right:18px}.floor-next{text-transform:uppercase;align-items:center;gap:10px;font-size:12px;text-decoration:none;display:flex;position:absolute;bottom:5vh;right:11%}.floor-scene{aspect-ratio:3/2;pointer-events:none;width:max(100%,150svh);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.room-hotspot{cursor:pointer;pointer-events:auto;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;overflow:hidden}.tv-hotspot{width:24%;height:21%;top:34%;left:4.5%}.tv-screen-video{object-fit:cover;width:100%;height:100%}.phone-hotspot{width:24%;height:22%;top:36%;left:59%}.phone-art{object-fit:contain;mix-blend-mode:multiply;transform-origin:bottom;width:68%;height:68%;animation:1.15s ease-in-out infinite phone-ring;transform:translate(-8%)}.hotspot-hint{color:#f7e9d5;opacity:0;background:#080b18d9;border:1px solid #f7e9d588;padding:6px 10px;font-size:11px;transition:opacity .16s,transform .16s;position:absolute;bottom:8%;left:50%;transform:translate(-50%,4px)}.room-hotspot:hover .hotspot-hint,.room-hotspot:focus-visible .hotspot-hint{opacity:1;transform:translate(-50%)}.room-hotspot:focus-visible{outline-offset:3px;outline:3px solid #f7e9d5}.detail-dialog{color:#f7e9d5;background:#171725;border:1px solid #f7e9d566;width:min(440px,100% - 32px);max-width:none;padding:36px;position:fixed}.detail-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#05060bd9}.detail-dialog h2{margin:0 0 14px;font-size:clamp(24px,5vw,34px);font-weight:500}.detail-dialog>p:not(.section-kicker){color:#d3c7b9;margin:0;line-height:1.7}.dialog-close{width:36px;height:36px;color:inherit;cursor:pointer;background:0 0;border:0;font-size:25px;position:absolute;top:10px;right:12px}.dialog-action{border-bottom:1px solid;padding-bottom:4px;text-decoration:none;display:inline-block}.dialog-actions{flex-wrap:wrap;gap:20px;margin-top:22px;display:flex}@supports (animation-timeline:view()){.floor-transition{animation:linear both level-transition;animation-timeline:--floor-entry;animation-range:entry}.explore-section{animation:linear both floor-fade-in;animation-timeline:--floor-entry;animation-range:entry 50%}.staircase-transition{animation:linear both level-transition;animation-timeline:--staircase-entry;animation-range:entry}.staircase-sticky{animation:linear both floor-fade-in;animation-timeline:--staircase-entry;animation-range:entry 50%}.hallway-transition{animation:linear both level-transition;animation-timeline:--hallway-entry;animation-range:entry}.hallway-sticky{animation:linear both floor-fade-in;animation-timeline:--hallway-entry;animation-range:entry 50%}.certificate-transition{animation:linear both level-transition;animation-timeline:--certificate-entry;animation-range:entry}.certificate-sticky{animation:linear both floor-fade-in;animation-timeline:--certificate-entry;animation-range:entry 50%}}.explore-content{width:min(100%,760px);margin:0 auto}.section-kicker{color:#c99a71;letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;font-size:11px}.explore-content>h2{margin:0 0 32px;font-size:clamp(30px,4vw,48px);font-weight:500}.project-list{margin:0;padding:0;list-style:none}.project-row{border-top:1px solid #f7e9d544;justify-content:space-between;align-items:baseline;gap:24px;padding:17px 0;display:flex}.project-row h3{margin:0;font-size:clamp(15px,2vw,20px);font-weight:400}.project-row p{color:#c8b8a7;text-align:right;margin:0;font-size:12px}footer{border-top:1px solid #f7e9d533;justify-content:space-between;align-items:center;gap:16px;min-height:54px;font-size:11px;display:flex}footer nav{gap:20px;display:flex}footer a{text-decoration:none}@keyframes scroll-bob{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}@keyframes level-transition{0%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes floor-fade-in{0%{opacity:0}to{opacity:1}}@keyframes phone-ring{0%,38%,to{transform:translate(-8%)rotate(0)}4%,12%,20%,28%,36%{transform:translate(-8%)rotate(-7deg)}8%,16%,24%,32%{transform:translate(-8%)rotate(7deg)}}@media (prefers-reduced-motion:reduce){.scroll-cue-arrow{animation:none}.hotspot-hint{transition:none}.phone-art{animation:none}.gallery-card-frame,.gallery-card-artwork>img,.project-dialog,.image-zoom-hint{transition:none;animation:none}.level-transition-overlay,.explore-section,.staircase-section,.hallway-section,.certificate-sticky{animation:none}}@media (width<=700px){.gallery-wall{padding:58px 18px 72px}.gallery-wall.embedded{padding-bottom:14px}.gallery-wall-heading{margin-bottom:34px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}.gallery-card-frame{padding:6px}.gallery-card-copy{gap:9px;padding:14px 12px 12px}.gallery-card-title-row h2{font-size:19px}.gallery-card-icon{width:30px;font-size:10px}.gallery-card-summary{font-size:12px}.gallery-card-links{gap:12px;padding:0 12px 14px}.gallery-card-links a{font-size:11px}.project-dialog{width:calc(100% - 20px);max-height:94svh}.case-study{max-height:94svh}.case-study-header{min-height:48px;padding:0 16px}.case-study-columns{flex-direction:column;display:flex;overflow:auto}.case-study-visuals{border-bottom:1px solid #282a2322;border-right:0;flex:none;gap:10px;padding:14px}.case-study-main-image{border-width:7px;min-height:200px;max-height:42svh}.case-study-image-button{max-height:40svh}.case-study-image-button>img{max-height:39svh}.case-study-image-button>.project-artwork-fallback,.case-study-main-image>.project-artwork-fallback{min-height:200px}.case-study-details{padding:22px 20px 30px;overflow:visible}.case-study-details>h2{font-size:32px}.case-study-section{margin-top:18px}.case-study-footer{min-height:50px;padding:0 14px}.case-study-footer button{font-size:10px}.project-lightbox{width:calc(100% - 20px)}.hero-screen{background-position:50%;min-height:100svh;padding:9vh 8% 8vh}.profile-screen{padding-top:8vh}.contact-phone{bottom:20%;right:8%}.explore-section{background-position:50% 24svh;background-repeat:no-repeat;background-size:100%;min-height:100svh;padding:9vh 8% 0}.certificate-floor{height:180svh}.certificate-sticky{background-position:50%;height:100svh;min-height:100svh;padding:44px 18px 70px;position:sticky;top:0;overflow:visible}.certificate-wall{overflow:visible}.certificate-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid;transform:none}.certificate-row-two,.certificate-row-three{width:auto;margin:0;display:contents}.certificate-wall-heading{margin-bottom:40px}.certificate-label{letter-spacing:.15em;font-size:7px}.certificate-paper h2{width:100%}.certificate-row{gap:12px}.certificate-card{border-width:3px;padding:4px}.certificate-paper{gap:7px;width:100%;min-width:0;min-height:120px;padding:14px 8px}.certificate-paper h2{font-size:clamp(10px,2.4vw,18px)}.certificate-caption{font-size:8px}.hallway-page .gallery-grid,.staircase-page .gallery-grid{scrollbar-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:100%;padding:8px 18px 20px;display:grid;overflow:visible;transform:none}.staircase-page .gallery-card,.hallway-page .gallery-card{opacity:1;min-width:0;translate:none;margin:0!important}.staircase-section,.hallway-section{height:auto;min-height:100svh}.staircase-sticky,.hallway-sticky{height:auto;min-height:100svh;position:relative;overflow:visible}.staircase-page .gallery-wall.embedded,.hallway-page .gallery-wall.embedded{opacity:1;height:auto;padding:22px 0 180px;position:relative;top:auto;left:auto;right:auto;overflow:visible;transform:none}.staircase-page .gallery-wall-inner,.hallway-page .gallery-wall-inner{height:auto}.staircase-page .gallery-card:nth-child(n),.hallway-page .gallery-card:nth-child(n){margin-top:0!important}.staircase-canvas,.hallway-canvas,.certificate-canvas{z-index:1;flex:0 0 100svh;height:100svh;margin-bottom:-100svh;position:sticky;top:0;transform:none}.staircase-page .gallery-wall.embedded,.hallway-page .gallery-wall.embedded,.certificate-wall{z-index:2}.certificate-gallery{z-index:2;gap:12px;position:relative}.staircase-heading,.hallway-heading{z-index:4;position:absolute}.staircase-scroll-cue,.hallway-scroll-cue{display:none}.staircase-page .gallery-card:first-child,.staircase-page .gallery-card:nth-child(2),.staircase-page .gallery-card:nth-child(3),.hallway-page .gallery-card:first-child,.hallway-page .gallery-card:nth-child(2),.hallway-page .gallery-card:nth-child(3){margin-top:0!important}.staircase-heading,.hallway-heading{bottom:8vh;left:5%}.hallway-next{bottom:8vh;right:calc(5% + 140px)}.staircase-back,.hallway-back{bottom:8vh;right:5%}.staircase-next{bottom:8vh;right:calc(5% + 140px)}.floor-next{right:8%}.floor-scene{width:100%;top:24svh;transform:translate(-50%)}.detail-dialog{padding:32px 24px}.project-row{flex-direction:column;align-items:flex-start;gap:5px}.project-row p{text-align:left}footer{flex-wrap:wrap;padding:14px 0}footer nav{flex-wrap:wrap}}@media (width<=440px){.gallery-grid{grid-template-columns:minmax(0,1fr);gap:28px}.gallery-card-artwork{aspect-ratio:1.28}.gallery-card-title-row h2{font-size:23px}}
