@font-face{font-family:sans;src:url(../media/dm_sans_latin-s.p.0lsanbtneewqp.woff2)format("woff2");font-display:swap;font-weight:400 700}@font-face{font-family:sans Fallback;src:local(Arial);ascent-override:94.36%;descent-override:29.49%;line-gap-override:0.0%;size-adjust:105.13%}.sans_c7ac43da-module__ULDNOq__className{font-family:sans,sans Fallback,Arial}.sans_c7ac43da-module__ULDNOq__variable{--font-dm-sans:"sans", "sans Fallback", Arial}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--scene-paper:#f3f1e9;--scene-ink:#29362e;--scene-accent:#9b4e2f;--font-display:var(--font-dm-sans), Arial, sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--scene-paper);color:var(--scene-ink);font-family:var(--font-display);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}::selection{color:#29362e;background:#d9b49a}.scene-experience{isolation:isolate;touch-action:manipulation;background:#f3f1e9;position:fixed;inset:0;overflow:clip}.scene-world{opacity:0;transition:opacity .65s;position:absolute;inset:0}.scene-experience[data-phase=revealing] .scene-world,.scene-experience[data-phase=entered] .scene-world{opacity:1}.scene-world canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}.scene-atmosphere{pointer-events:none;z-index:2;background:radial-gradient(at 50% 48%,#0000 37%,#b6bba211 100%);position:absolute;inset:0}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button:focus-visible,a:focus-visible{outline-offset:5px;outline:2px solid #9b6848}.scene-trail{z-index:4;color:#526246;background:#f3f1e9e8;border-radius:24px;align-items:center;gap:14px;padding:0 12px;font-size:12px;line-height:1;display:flex;position:absolute;bottom:30px;left:clamp(20px,4vw,56px)}.scene-trail a{color:#334031;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.scene-trail a:hover{color:#b56744}.scene-back{align-items:center;gap:8px;display:inline-flex}.scene-back span{font-size:19px}.scene-trail-divider{opacity:.4}.scene-hint{z-index:3;color:#35412e;letter-spacing:.025em;pointer-events:none;width:max-content;margin:0;font-size:13px;position:absolute;bottom:23px;left:50%;transform:translate(-50%)}.scene-hint span{padding-left:10px}.scene-motion{z-index:4;color:#526246;cursor:pointer;background:#f3f1e980;border:1px solid #c6c2b666;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;bottom:19px;right:24px}.portfolio-detail{--detail-accent:#ba6742;z-index:4;touch-action:manipulation;background:#f8f6ef;border:1px solid #c9c5b986;border-radius:24px;flex-direction:column;width:min(36vw,440px);max-height:calc(100svh - 170px);padding:25px 29px 22px;animation:.55s cubic-bezier(.2,.8,.2,1) both enter-detail;display:flex;position:absolute;top:50%;right:clamp(24px,3.5vw,50px);overflow:hidden;transform:translateY(-50%);box-shadow:0 22px 75px #36412c0b}.portfolio-detail[data-area=data]{--detail-accent:#7e8b6b}.portfolio-detail[data-area=technology]{--detail-accent:#6e7d70}.detail-topline{justify-content:space-between;align-items:center;gap:15px;display:flex}.detail-eyebrow{color:var(--detail-accent);letter-spacing:.12em;text-transform:uppercase;font-size:12px}.detail-close{color:#7b8471;cursor:pointer;background:#e7e5dc99;border:0;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:22px;font-weight:400;display:grid}.portfolio-detail h2{letter-spacing:-.055em;outline:none;margin:20px 0 15px;font-size:clamp(26px,3vw,40px);font-weight:450;line-height:1.06}.detail-status{color:#626f58;align-items:center;gap:7px;margin:0 0 18px;font-size:12px;display:flex}.detail-status span{background:#b6996a;border-radius:50%;width:5px;height:5px}.detail-tabs{border-bottom:1px solid #c8c4b952;gap:20px;margin-top:21px;display:flex}.detail-tabs button{color:#626f58;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;min-height:44px;margin-bottom:-1px;padding:10px 4px;font-size:13px}.detail-tabs button[aria-selected=true]{border-bottom-color:var(--detail-accent);color:#3e4936}.detail-content{touch-action:pan-y pinch-zoom;overscroll-behavior:contain;flex:auto;min-height:0;padding:20px 0 10px;overflow-y:auto}.detail-content:focus-visible{outline-offset:-3px;outline:2px solid #9b6848}.detail-topline,.portfolio-detail h2,.detail-status,.detail-tabs,.detail-bottomline{flex-shrink:0}.experience-timeline{border-left:1px solid #c8c4b9;margin:25px 0 10px 5px;padding:0 0 0 15px;list-style:none}.experience-timeline li{margin-bottom:23px;position:relative}.experience-timeline li:last-child{margin-bottom:0}.experience-timeline li:before{content:"";background:var(--detail-accent);border-radius:50%;width:7px;height:7px;position:absolute;top:4px;left:-19px}.experience-role-period{color:#626f58;margin:0 0 7px;font-size:12px;line-height:1.5}.experience-role-title{color:#46523e;margin:0 0 8px;font-size:15px;font-weight:500;line-height:1.4}.experience-role-description{color:#69735f;margin:0;font-size:14px;line-height:1.6}.detail-description{letter-spacing:-.02em;color:#616b58;margin:0;font-size:16px;line-height:1.55}.detail-facts{grid-template-columns:1fr 1fr;gap:18px;margin:23px 0 7px;display:grid}.detail-facts dt{color:#626f58;margin-bottom:6px;font-size:12px}.detail-facts dd{color:#5d6853;margin:0;font-size:14px;line-height:1.4}.detail-perspective p{color:#69735f;margin:0 0 12px;font-size:15px;line-height:1.6}.detail-contact{color:var(--detail-accent);align-items:center;gap:14px;margin-top:17px;font-size:12px;text-decoration:none;display:inline-flex}.detail-bottomline{border-top:1px solid #c8c4b952;justify-content:space-between;align-items:center;gap:18px;padding-top:17px;display:flex}.detail-count{color:#6e7863;white-space:nowrap;font-size:12px}.detail-count span{color:#626f58}.detail-bottomline a{color:#526246;text-align:right;align-items:center;gap:10px;font-size:12px;line-height:1.4;text-decoration:none;display:inline-flex}.detail-bottomline a:hover{color:var(--detail-accent)}.detail-bottomline a span{font-size:17px}.scene-error-card{z-index:9;background:#f8f6ef;border:1px solid #c9c5b9;border-radius:24px;width:min(90vw,440px);padding:30px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 70px #36412c18}.scene-error-card p{color:#8a927c;letter-spacing:.1em;text-transform:uppercase;margin:0 0 18px;font-size:12px}.scene-error-card h1{letter-spacing:-.055em;margin:0 0 24px;font-size:32px;font-weight:450}.scene-error-card a{color:#856547;font-size:13px;text-decoration:none}@keyframes enter-detail{0%{opacity:0;transform:translate(20px,-48%)}to{opacity:1;transform:translateY(-50%)}}.intro-screen{z-index:5;background:var(--scene-paper);place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.intro-content{text-align:center;width:min(100%,560px);padding:32px 24px 56px}.intro-pergola{width:clamp(220px,32vh,300px);max-width:100%;height:auto;margin:0 auto 32px;animation:.65s both intro-arrive;display:block;overflow:visible}.pergola-ground{fill:#e7e6db}.pergola-foundation{fill:#d9d9cc}.pergola-paving{stroke:#f3f1e9;stroke-width:1.5px}.pergola-frame-guide,.pergola-frame,.pergola-rafter{stroke:#796451;stroke-width:5px;stroke-linecap:square;stroke-linejoin:round}.pergola-frame-guide{opacity:.16}.pergola-frame{stroke-dasharray:100;animation:2.8s ease-in-out infinite pergola-build}.pergola-rafter{stroke-width:4px;animation:2.8s ease-in-out infinite pergola-rafter;animation-delay:calc(var(--part-order) * 90ms)}.pergola-vine{stroke:#7c8c68;stroke-width:1.5px;stroke-linecap:round}.pergola-leaf,.pergola-plant{fill:#8d9b78}.pergola-leaf{animation:2.8s ease-in-out infinite pergola-leaf;animation-delay:calc(var(--part-order) * .12s);transform-box:fill-box;transform-origin:bottom}.pergola-stream,.pergola-stream-trace{stroke:#a0b3b0;stroke-width:2px;stroke-linecap:round}.pergola-stream{opacity:.25}.pergola-stream-trace{stroke-dasharray:14 86;animation:2.2s linear infinite pergola-stream}.intro-screen[data-ready=true] .pergola-frame,.intro-screen[data-ready=true] .pergola-rafter,.intro-screen[data-ready=true] .pergola-leaf{stroke-dashoffset:0;opacity:1;animation:none}.intro-screen h1{letter-spacing:-.05em;margin:0;font-size:clamp(34px,4vw,48px);font-weight:450;line-height:1.1;animation:.65s .1s both intro-arrive}.intro-subtitle{color:#526246;letter-spacing:.01em;margin:14px 0 0;font-size:13px;animation:.65s .2s both intro-arrive}.intro-screen[data-phase=revealing]{pointer-events:none;animation:.65s forwards release-intro}@keyframes pergola-build{0%,5%{stroke-dashoffset:100px;opacity:.3}45%,78%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:.15}}@keyframes pergola-rafter{0%,to{opacity:.18}30%,72%{opacity:1}}@keyframes pergola-leaf{0%,to{opacity:.45;transform:scale(.85)}45%,75%{opacity:1;transform:scale(1)}}@keyframes pergola-stream{to{stroke-dashoffset:-100px}}@keyframes intro-arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes release-intro{0%{opacity:1}to{opacity:0}}@media (max-height:600px){.intro-content{padding:24px}.intro-pergola{width:170px;margin-bottom:18px}.intro-screen h1{font-size:32px}.intro-subtitle{margin-top:10px}}@keyframes enter-detail-mobile{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.pergola-frame{stroke-dashoffset:0;opacity:1}.pergola-rafter,.pergola-leaf{opacity:1}.intro-screen[data-phase=revealing]{opacity:0}}.scene-experience{background:#929b7b}.scene-experience[data-view=reading]{visibility:hidden}.scene-atmosphere{display:none}.portfolio-identity{top:max(18px, env(safe-area-inset-top));z-index:20;position:fixed;left:24px}.portfolio-identity a{color:var(--scene-ink);background:#f3f1e9f2;border-radius:14px;flex-direction:column;gap:4px;padding:10px 14px;text-decoration:none;display:flex}.portfolio-identity strong{font-size:17px;font-weight:500}.portfolio-identity span{font-size:12px}.scene-view-toggle{top:max(24px, env(safe-area-inset-top));z-index:20;background:var(--scene-paper);cursor:pointer;border:1px solid #29362e30;border-radius:24px;min-height:44px;padding:10px 16px;font-size:13px;position:fixed;right:24px}#portfolio-document{inset:96px 16px max(16px, env(safe-area-inset-bottom));z-index:10;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;background:var(--scene-paper);border-radius:18px;position:fixed;overflow-y:auto}html[data-portfolio-view=garden] #portfolio-document{display:none}.portfolio-page{max-width:780px;margin:0 auto;padding:clamp(22px,5vw,56px);font-size:16px;line-height:1.7}.portfolio-page h1{letter-spacing:-.04em;font-size:clamp(28px,5vw,40px);font-weight:500;line-height:1.2}.portfolio-page h2{margin-top:32px;font-size:23px;font-weight:500;line-height:1.3}.portfolio-page a{color:#7f3c21;text-underline-offset:4px}.portfolio-page nav{flex-wrap:wrap;gap:20px;display:flex}.portfolio-page li{margin:12px 0}.portfolio-page dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.portfolio-page dt{color:#526246;font-size:13px}.portfolio-page dd{margin:4px 0 0}.portfolio-page .experience-role-description{font-size:16px}.portfolio-page .experience-role-title{font-size:19px}html #portfolio-document:has(.scene-error-card){pointer-events:none;background:0 0;display:block;overflow:visible}.scene-error-card{pointer-events:auto}.garden-controls{z-index:6;bottom:max(20px, env(safe-area-inset-bottom));align-items:center;gap:12px;width:max-content;max-width:calc(100% - 24px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.garden-navigation{background:#eef0dd;border-radius:28px;gap:4px;padding:5px 10px;display:flex;box-shadow:0 4px 24px #283e2410}.garden-navigation a{color:#35412e;white-space:nowrap;border-radius:18px;justify-content:center;align-items:center;min-height:44px;padding:8px 12px;font-size:13px;text-decoration:none;display:flex}.garden-navigation a:hover{background:#dfe4cd}.garden-controls .scene-motion{flex-shrink:0;position:static}.scene-hint{text-align:center;white-space:normal;background:#f3f1e9e8;border-radius:16px;max-width:calc(100% - 32px);padding:7px 12px}.scene-experience[data-space=overview] .scene-hint{bottom:90px}.garden-section{z-index:8;touch-action:pan-y pinch-zoom;background:var(--scene-paper);border-radius:18px;width:min(380px,35vw);max-height:calc(100svh - 170px);padding:26px;position:absolute;top:50%;right:28px;overflow-y:auto;transform:translateY(-50%);box-shadow:0 15px 50px #29362e20}.garden-section h2{margin:12px 0;font-size:30px;font-weight:500}.garden-section p{font-size:15px;line-height:1.6}.garden-section>p:first-child{text-transform:uppercase;letter-spacing:.1em;font-size:12px}.garden-section a{min-height:44px;color:inherit;border-top:1px solid #29362e20;justify-content:space-between;align-items:center;padding:12px 0;font-size:15px;text-decoration:none;display:flex}.fallback-world{background:#929b7b;position:absolute;inset:0}.fallback-message{text-align:center;position:absolute;top:20%;left:24px;right:24px}.fallback-message p{margin:0 0 14px;font-size:16px}.fallback-message button{background:var(--scene-paper);cursor:pointer;border:1px solid #29362e40;border-radius:24px;min-height:44px;padding:10px 18px}.fallback-destinations{grid-template-columns:repeat(3,1fr);gap:16px;display:grid;position:absolute;inset:40% 15% 12%}.fallback-destinations a{background:var(--scene-paper);min-height:44px;color:var(--scene-ink);border-radius:14px;justify-content:space-between;align-items:center;padding:18px;text-decoration:none;display:flex}.intro-progress{max-width:240px;margin:20px auto 0}.intro-progress progress{accent-color:#526246;width:100%;height:8px}.intro-progress p,.intro-reading-hint{color:#526246;font-size:13px;line-height:1.5}.detail-bottomline a,.detail-contact{align-items:center;min-height:44px}.portfolio-detail[data-area=data],.portfolio-detail[data-area=technology]{--detail-accent:#526246}@media (max-width:800px){.scene-experience:not([data-space=overview]) .scene-hint{display:none}.garden-section{width:auto;padding:20px;inset:auto 14px 84px;transform:none}.garden-section h2{font-size:26px}.garden-section>p:nth-of-type(2){display:none}}@media (max-width:600px){.portfolio-identity{left:12px;top:max(12px, env(safe-area-inset-top))}.portfolio-identity a{padding:8px 10px}.portfolio-identity strong{font-size:15px}.portfolio-identity span{font-size:11px}.scene-view-toggle{top:max(16px, env(safe-area-inset-top));padding:8px 12px;font-size:12px;right:12px}.garden-controls{bottom:max(12px, env(safe-area-inset-bottom));gap:8px;width:calc(100% - 24px);max-width:500px}.garden-navigation{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:4px 6px;display:grid}.garden-navigation a{padding:4px;font-size:12px}.scene-experience[data-space=overview] .scene-hint{width:calc(100% - 32px);bottom:124px}.scene-motion{right:12px;bottom:max(12px, env(safe-area-inset-bottom))}.scene-trail{gap:10px;font-size:12px;bottom:28px;left:16px}.portfolio-detail{border-radius:20px;width:auto;padding:16px 18px;animation:.45s both enter-detail-mobile;inset:auto 12px 76px;transform:none}.portfolio-detail h2{margin:8px 0 12px;font-size:28px}.detail-eyebrow{letter-spacing:.08em;font-size:11px}.detail-tabs{margin-top:4px}.detail-description,.detail-perspective p{font-size:15px}.detail-facts{gap:14px;margin-top:18px}.detail-facts dd{font-size:13px}.detail-bottomline{gap:10px;padding-top:8px}.detail-bottomline a{font-size:12px}.fallback-destinations{grid-template-columns:repeat(2,1fr);gap:10px;inset:40% 8% 12%}.fallback-destinations a{padding:14px;font-size:14px}.intro-content{padding:80px 24px}}@media (max-height:600px) and (orientation:landscape){.portfolio-detail{width:min(440px,55vw);max-height:none;padding:14px 18px;animation:.3s both enter-detail-mobile;inset:82px 16px 70px auto;transform:none}.detail-topline{position:absolute;top:8px;right:12px}.detail-eyebrow{display:none}.portfolio-detail h2{margin:0 44px 8px 0;font-size:25px}.detail-tabs{margin-top:0}.detail-content{min-height:0;padding:10px 0}.detail-bottomline{padding-top:0}.garden-section{width:min(440px,55vw);max-height:none;padding:16px 20px;inset:82px 16px 70px auto;transform:none}.garden-section>p{display:none}.garden-section h2{margin-top:0;font-size:25px}.garden-section a{font-size:14px}.intro-pergola{width:110px;margin-bottom:10px}.intro-content{padding-top:68px;padding-bottom:10px}.intro-reading-hint,.intro-progress{margin-top:8px}}@media (max-width:600px) and (orientation:landscape){.garden-controls{max-width:none}.garden-navigation{grid-template-columns:repeat(6,minmax(0,1fr))}.scene-experience[data-space=overview] .scene-hint{font-size:12px;bottom:80px}}@media (max-height:360px) and (orientation:landscape){.portfolio-detail{padding:8px 12px;top:72px;bottom:64px}.portfolio-detail h2{margin-bottom:4px;font-size:22px}.detail-topline{top:2px;right:8px}.detail-content{padding:4px 0}.garden-section{padding:12px 16px;top:72px;bottom:64px}.garden-section h2{margin-bottom:8px;font-size:22px}}
