:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;--ink:#0b0b0a;--bone:#ede9df;--muted:#8f8c85;--faint:#ede9df21;--copper:#b1704d;font-family:Aptos Mono,Cascadia Mono,IBM Plex Mono,ui-monospace,monospace}*{box-sizing:border-box}html,body,#root{background:var(--ink);width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}body{color:var(--bone);text-rendering:geometricprecision;-webkit-font-smoothing:antialiased}button,a{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit}.portfolio-shell{isolation:isolate;background:radial-gradient(circle at 70% 42%,#ffffff06,#0000 34%),#0b0b0a;width:100%;height:100%;min-height:600px;position:relative;overflow:hidden}.cosmic-field{z-index:0;pointer-events:none;background:radial-gradient(at 74% 40%,#dedad00d 0%,#716b6205 24%,#0000 53%),radial-gradient(at 92% 72%,#b1704d06 0%,#0000 38%),linear-gradient(121deg,#0000 0 58%,#ede9df03 66%,#0000 75%);position:absolute;inset:0;overflow:hidden}.cosmic-field:before{content:"";opacity:.68;background-image:radial-gradient(circle at 7% 16%,#ede9dfb3 0 1px,#0000 1.5px),radial-gradient(circle at 13% 68%,#ede9df73 0 .7px,#0000 1.2px),radial-gradient(circle at 23% 12%,#ede9df57 0 .6px,#0000 1.1px),radial-gradient(circle at 29% 73%,#ede9df8c 0 .8px,#0000 1.3px),radial-gradient(circle at 36% 27%,#ede9df5c 0 .6px,#0000 1.1px),radial-gradient(circle at 43% 88%,#ede9df99 0 .9px,#0000 1.4px),radial-gradient(circle at 52% 11%,#ede9df6b 0 .7px,#0000 1.2px),radial-gradient(circle at 58% 63%,#ede9df61 0 .65px,#0000 1.2px),radial-gradient(circle at 66% 18%,#ede9df80 0 .8px,#0000 1.3px),radial-gradient(circle at 74% 84%,#ede9df66 0 .7px,#0000 1.2px),radial-gradient(circle at 81% 9%,#ede9df9e 0 .9px,#0000 1.4px),radial-gradient(circle at 88% 48%,#ede9df5c 0 .65px,#0000 1.1px),radial-gradient(circle at 94% 16%,#ede9df8a 0 .8px,#0000 1.3px),radial-gradient(circle at 97% 78%,#ede9df66 0 .7px,#0000 1.2px);position:absolute;inset:0}.orbital-field{fill:none;stroke:#ede9df13;stroke-width:.7px;width:100%;height:100%;position:absolute;inset:0}.orbital-field .orbit-secondary{stroke:#ede9df09;stroke-dasharray:3 8}.orbital-field path{stroke:#ede9df08}.orbital-field .orbit-moon{fill:#ede9df47;stroke:#ede9df0e;stroke-width:3px}.orbital-field .orbit-node{fill:var(--copper);stroke:#b1704d38;stroke-width:7px}.layout-grid{z-index:1;pointer-events:none;background-image:repeating-linear-gradient(90deg,#0000 0 calc(20% - 1px),#ede9df16 calc(20% - 1px) 20%);border-left:1px solid #ede9df14;border-right:1px solid #ede9df14;position:absolute;inset:0 24px}.site-header{z-index:12;text-transform:uppercase;letter-spacing:.15em;justify-content:flex-end;align-items:center;height:112px;padding:0 clamp(36px,4.35vw,72px);display:flex;position:absolute;top:0;left:0;right:0}.site-header nav{color:var(--muted);gap:clamp(28px,3vw,54px);font-size:11px;display:flex}.site-header nav a{padding:8px 0;transition:color .18s;position:relative}.site-header nav a:after{content:"";background:var(--bone);height:1px;transition:right .18s;position:absolute;bottom:2px;left:0;right:100%}.site-header nav a:hover,.site-header nav .is-active{color:var(--bone)}.site-header nav a:focus-visible{color:var(--bone)}.site-header nav a:focus-visible{outline:none}.site-header nav a:hover:after,.site-header nav .is-active:after{right:0}.site-header nav a:focus-visible:after{right:0}.hero{z-index:1;height:100%;position:relative}.identity-panel{z-index:4;pointer-events:none;width:min(350px,27vw);position:absolute;top:35.5%;left:clamp(36px,4.35vw,72px);transform:translateY(-50%)}.identity-panel h1{letter-spacing:-.055em;text-transform:uppercase;margin:0;font-family:inherit;font-size:clamp(62px,6vw,98px);font-weight:400;line-height:.82}.identity-panel h1 span{display:block}.identity-panel h1 span:last-child{margin-left:-.02em}.degree{letter-spacing:.32em;text-transform:uppercase;color:#b2afa7;margin:38px 0 0;font-size:13px;line-height:1}.globe-stage{z-index:1;position:absolute;inset:0 0 0 31%;-webkit-mask-image:radial-gradient(106% 132% at 101% 63%,#000 0 62%,#000000db 68%,#0000006b 76%,#0000 86%);mask-image:radial-gradient(106% 132% at 101% 63%,#000 0 62%,#000000db 68%,#0000006b 76%,#0000 86%)}.globe-stage:after{content:"";z-index:4;pointer-events:none;background:linear-gradient(#0b0b0afa 0,#0b0b0ad6 44%,#0b0b0a52 72%,#0000 100%);height:158px;position:absolute;top:0;left:0;right:0}.globe-canvas-stack,.terrain-canvas,.globe-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.globe-canvas-stack{isolation:isolate;position:absolute}.globe-canvas-stack:before{content:"";z-index:0;pointer-events:none;opacity:.94;filter:blur(28px);background:radial-gradient(at 52% 48%,#ede9df33 0%,#ede9df17 21%,#ede9df06 45%,#0000 72%);width:69%;height:62%;position:absolute;top:4%;left:6%}.terrain-canvas{z-index:1;pointer-events:none;filter:grayscale(.82)sepia(.3)saturate(.72)brightness(.78)contrast(1.06)drop-shadow(-22px -16px 34px #b7a2890b)}.globe-canvas{z-index:2;touch-action:none;cursor:grab;outline:none}.work-label,.city-line,.project-count{z-index:4;text-transform:uppercase;pointer-events:none;margin:0;position:absolute}.work-label{letter-spacing:.22em;color:#aaa79f;flex-direction:column;gap:5px;font-size:10px;line-height:1.2;display:flex;bottom:112px;left:clamp(36px,4.35vw,72px)}.city-line{letter-spacing:.2em;color:#77746e;font-size:9px;bottom:66px;left:clamp(36px,4.35vw,72px)}.project-count{color:#8f8c85;align-items:flex-end;gap:13px;display:flex;bottom:56px;right:clamp(36px,4.35vw,72px)}.project-count strong{letter-spacing:-.08em;color:var(--bone);font-family:inherit;font-size:50px;font-weight:700;line-height:.8}.project-count span{letter-spacing:.13em;font-size:9px;font-weight:600;line-height:1.45}.project-preview{z-index:20;pointer-events:none;background:#0b0b0af5;border:1px solid #ede9df2e;width:340px;animation:.24s cubic-bezier(.2,.75,.2,1) both preview-in;position:fixed;overflow:hidden;box-shadow:0 28px 80px #00000059}@keyframes preview-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.project-preview:after{content:"";background:var(--copper);width:2px;height:100%;position:absolute;top:0;left:0}.project-preview__image-wrap{aspect-ratio:16/10.2;position:relative;overflow:hidden}.project-preview__image{object-fit:cover;filter:saturate(.72)contrast(1.02);width:100%;height:100%;display:block}.project-preview__index{letter-spacing:.14em;text-transform:uppercase;background:#0b0b0ab3;padding:5px 7px;font-size:8px;position:absolute;top:10px;right:10px}.project-preview__body{padding:23px 25px 25px}.project-preview__place{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:8px}.project-preview h2{letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:14px;font-weight:500;line-height:1.45}.project-preview__action{color:var(--copper);letter-spacing:.18em;text-transform:uppercase;align-items:center;margin:18px 0 0;font-size:8px;display:flex}.project-preview__action span{margin-left:14px;font-size:13px;line-height:.5}.project-preview__cluster-hint{color:var(--copper);letter-spacing:.18em;text-transform:uppercase;margin:18px 0 0;font-size:8px}.projects-index{z-index:6;scrollbar-width:thin;scrollbar-color:#ede9df3d transparent;background:linear-gradient(#0b0b0ad6,#0b0b0af5);padding:142px clamp(36px,4.35vw,72px) 90px;animation:.42s cubic-bezier(.2,.75,.2,1) both projects-in;position:absolute;inset:0;overflow:hidden auto}.projects-index::-webkit-scrollbar{width:6px}.projects-index::-webkit-scrollbar-track{background:0 0}.projects-index::-webkit-scrollbar-thumb{background:#ede9df33}@keyframes projects-in{0%{opacity:0;transform:translateY(10px)}}.projects-index__intro{border-bottom:1px solid #ede9df21;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:72px;padding-bottom:32px;display:flex}.projects-index__intro p{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;margin:0 0 24px;font-size:9px;line-height:1.6}.projects-index__intro h1{letter-spacing:-.065em;text-transform:uppercase;margin:0;font-size:clamp(64px,8.4vw,136px);font-weight:400;line-height:.78}.projects-index__intro .projects-index__note{text-align:right;color:#6f6c66;flex:none;margin:0}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:74px clamp(28px,4.2vw,68px);display:grid}.projects-grid--single{grid-template-columns:minmax(0,760px)}.about-page{z-index:6;scrollbar-width:thin;scrollbar-color:#ede9df3d transparent;background:linear-gradient(118deg,#0b0b0ab3,#0b0b0af0);grid-template-columns:minmax(300px,37%) minmax(0,1fr);gap:clamp(52px,7vw,116px);padding:154px clamp(36px,4.35vw,72px) 78px;animation:.42s cubic-bezier(.2,.75,.2,1) both projects-in;display:grid;position:absolute;inset:0;overflow:hidden auto}.about-page::-webkit-scrollbar{width:6px}.about-page::-webkit-scrollbar-track{background:0 0}.about-page::-webkit-scrollbar-thumb{background:#ede9df33}.about-page__identity{flex-direction:column;justify-content:space-between;min-height:100%;padding-bottom:4px;display:flex}.about-page__identity h1{letter-spacing:-.07em;text-transform:uppercase;margin:0;font-size:clamp(58px,6.1vw,98px);font-weight:400;line-height:.8}.about-page__meta{color:#77746e;letter-spacing:.2em;text-transform:uppercase;flex-direction:column;gap:8px;font-size:9px;line-height:1.4;display:flex}.about-page__links{gap:26px;margin-top:26px;display:flex}.about-page__links a{color:#aaa79f;letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:8px;padding:8px 0;font-size:9px;transition:color .18s;display:inline-flex;position:relative}.about-page__links a:after{content:"";background:var(--copper);height:1px;transition:right .18s;position:absolute;bottom:3px;left:0;right:100%}:is(.about-page__links a:hover,.about-page__links a:focus-visible){color:var(--bone)}.about-page__links a:hover:after{right:0}.about-page__links a:focus-visible:after{right:0}.about-page__links a:focus-visible{outline:none}.about-page__links svg{fill:none;stroke:currentColor;stroke-width:1px;width:13px}.about-page__copy{border-left:1px solid #ede9df21;flex-direction:column;justify-content:center;max-width:830px;padding:18px 0 18px clamp(38px,5vw,84px);display:flex}.about-page__copy p{color:#b8b5ad;max-width:760px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(17px,1.24vw,20px);line-height:1.72}.about-page__copy p+p{border-top:1px solid #ede9df1a;margin-top:clamp(28px,3.2vh,42px);padding-top:clamp(28px,3.2vh,42px)}.about-page__copy .about-page__lead{color:#b8b5ad;letter-spacing:0;font-size:clamp(17px,1.24vw,20px);line-height:1.72}.contact-page{z-index:6;scrollbar-width:thin;scrollbar-color:#ede9df3d transparent;background:radial-gradient(circle at 28% 62%,#b1704d13,#0000 26%),linear-gradient(116deg,#0b0b0ab3,#0b0b0af5);grid-template-columns:minmax(300px,.72fr) minmax(600px,1.28fr);gap:clamp(48px,5vw,84px);padding:150px clamp(36px,4.35vw,72px) 64px;animation:.42s cubic-bezier(.2,.75,.2,1) both projects-in;display:grid;position:absolute;inset:0;overflow:hidden auto}.contact-page__intro{flex-direction:column;justify-content:space-between;min-height:100%;padding:70px 0 6px;display:flex}.contact-page__intro h1{letter-spacing:-.045em;text-transform:uppercase;max-width:540px;margin:0;font-size:clamp(48px,4.55vw,74px);font-weight:400;line-height:.96}.contact-page__intro h1 span{white-space:nowrap;display:block}.contact-page__email{border-top:1px solid #ede9df24;flex-direction:column;align-self:flex-start;gap:9px;padding:20px 0 5px;display:flex}.contact-page__email span{color:#6f6c66;letter-spacing:.18em;text-transform:uppercase;font-size:8px}.contact-page__email strong{letter-spacing:.08em;font-size:11px;font-weight:400;transition:color .18s}.contact-page__email:hover strong{color:var(--copper)}.contact-page__email:focus-visible{outline:1px solid var(--copper);outline-offset:8px}.contact-form{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#10100eb8;border:1px solid #ede9df24;align-self:center;width:100%;padding:clamp(38px,4vw,64px);box-shadow:0 32px 90px #0000003d}.contact-form__question{border:0;margin:0;padding:0;display:block}.contact-form__question>span,.contact-form__question legend{color:#b7b3aa;letter-spacing:.17em;text-transform:uppercase;margin-bottom:13px;font-size:10px;display:block}.contact-form__row{grid-template-columns:1fr 1fr;gap:26px;display:grid}.contact-form input,.contact-form textarea{width:100%;color:var(--bone);font:inherit;background:0 0;border:0;border-bottom:1px solid #ede9df30;border-radius:0;outline:0;padding:0 0 13px;font-size:14px;transition:border-color .18s}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#55534f}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--copper)}.contact-form textarea{resize:vertical;min-height:150px;line-height:1.6}.contact-form__question--message{margin-top:34px}.contact-form__submit-row{border-top:1px solid #ede9df1a;justify-content:space-between;align-items:center;gap:28px;margin-top:34px;padding-top:24px;display:flex}.contact-form__submit-row p{color:#66635e;letter-spacing:.1em;text-transform:uppercase;max-width:270px;margin:0;font-size:9px;line-height:1.55}.contact-form__submit-row button{border:1px solid var(--bone);background:var(--bone);color:var(--ink);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;align-items:center;gap:24px;padding:15px 18px;font-size:10px;transition:background .18s,color .18s;display:inline-flex}.contact-form__submit-row button svg{fill:none;stroke:currentColor;stroke-width:1.3px;width:20px;transition:transform .18s}.contact-form__submit-row button:hover{color:var(--bone);background:0 0}.contact-form__submit-row button:hover svg{transform:translate(4px)}.contact-form__submit-row button:focus-visible{outline:1px solid var(--copper);outline-offset:4px}.project-card{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #ede9df26;min-width:0;padding:0 0 22px;display:block}.project-card__image-wrap{aspect-ratio:16/10;background:#11110f;display:block;position:relative;overflow:hidden}.project-card__image{object-fit:cover;filter:grayscale(.18)saturate(.7)contrast(1.05)brightness(.82);width:100%;height:100%;transition:transform .65s cubic-bezier(.2,.75,.2,1),filter .35s;display:block}:is(.project-card:hover .project-card__image,.project-card:focus-visible .project-card__image){filter:grayscale(0)saturate(.82)contrast(1.04)brightness(.94);transform:scale(1.025)}.project-card__number{color:var(--bone);letter-spacing:.15em;background:#0b0b0ac2;padding:6px 8px;font-size:8px;position:absolute;top:14px;right:14px}.project-card__meta,.project-card__title-row,.project-card__type{display:flex}.project-card__meta{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;justify-content:space-between;gap:18px;margin-top:18px;font-size:8px}.project-card__title-row{justify-content:space-between;align-items:center;gap:20px;margin-top:13px}.project-card__title-row strong{letter-spacing:-.035em;text-transform:uppercase;font-size:clamp(22px,2.1vw,34px);font-weight:400;line-height:1.1}.project-card__title-row svg{fill:none;width:27px;stroke:var(--copper);stroke-width:1px;flex:none;transition:transform .22s}:is(.project-card:hover .project-card__title-row svg,.project-card:focus-visible .project-card__title-row svg){transform:translate(5px)}.project-card__type{color:#77746e;letter-spacing:.14em;text-transform:uppercase;margin-top:10px;font-size:8px;line-height:1.5}.project-detail{z-index:40;scrollbar-width:thin;scrollbar-color:#ede9df3d transparent;background:#0b0b0a;animation:.43s cubic-bezier(.2,.75,.2,1) both detail-in;position:fixed;inset:0;overflow:hidden auto}.project-detail::-webkit-scrollbar{width:6px}.project-detail::-webkit-scrollbar-track{background:0 0}.project-detail::-webkit-scrollbar-thumb{background:#ede9df33}@keyframes detail-in{0%{opacity:0;transform:translateY(12px)}}.project-detail--closing{pointer-events:none;animation:.36s cubic-bezier(.4,0,.2,1) both detail-out}@keyframes detail-out{to{opacity:0;transform:translateY(12px)}}.project-detail__close{z-index:5;cursor:pointer;background:#0b0b0a5c;border:1px solid #ede9df38;border-radius:50%;place-items:center;width:42px;height:42px;display:grid;position:fixed;top:42px;right:46px}.project-detail__close svg{fill:none;stroke:currentColor;stroke-width:1.2px;width:17px}.project-detail__gallery{background:#11110f;padding:clamp(54px,6vw,96px) clamp(24px,4.35vw,72px) 110px;position:relative}.project-detail__gallery figure{background:#e8e8e5;max-width:1680px;margin:0 auto clamp(38px,5vw,76px);position:relative;box-shadow:0 34px 90px #00000047}.project-detail__gallery figure:last-child{margin-bottom:0}.project-detail__gallery img{width:100%;height:auto;display:block}.project-detail__sheet-number{z-index:1;width:34px;height:34px;color:var(--bone);letter-spacing:.12em;background:#0b0b0ac7;place-items:center;font-size:9px;display:grid;position:absolute;top:16px;right:18px}@media (max-width:900px){.portfolio-shell{min-height:520px}.layout-grid{inset:0 16px}.site-header{height:78px;padding:0 24px}.site-header nav{gap:20px;font-size:9px}.identity-panel{width:62vw;top:25%;left:24px}.identity-panel h1{font-size:clamp(48px,12.5vw,72px);line-height:.84}.degree{margin-top:25px;font-size:11px}.globe-stage{inset:13% -26% -5% 3%;-webkit-mask-image:none;mask-image:none}.work-label{font-size:8px;bottom:72px;left:24px}.city-line{font-size:7px;bottom:34px;left:24px}.project-count{display:none}.project-preview{width:min(300px,100vw - 32px)}.projects-index{padding:105px 24px 60px}.projects-index__intro{align-items:flex-start;margin-bottom:46px}.projects-index__intro h1{font-size:clamp(54px,17vw,84px)}.projects-index__intro .projects-index__note{display:none}.projects-grid{grid-template-columns:1fr;gap:48px}.about-page{padding:116px 24px 64px;display:block}.about-page__identity{min-height:auto}.about-page__identity h1{font-size:clamp(52px,16vw,72px)}.about-page__meta{margin-top:52px}.about-page__copy{border-top:1px solid #ede9df21;border-left:0;margin-top:52px;padding:42px 0 0}.about-page__copy .about-page__lead{font-size:17px}.contact-page{padding:116px 24px 56px;display:block}.contact-page__intro{min-height:auto;padding:0}.contact-page__intro h1{font-size:clamp(46px,12.5vw,62px)}.contact-page__email{margin-top:48px}.contact-form{margin-top:54px;padding:28px 22px}.contact-form__row{grid-template-columns:1fr}.contact-form__submit-row{flex-direction:column;align-items:flex-start}.project-detail__close{top:22px;right:22px}.project-detail__gallery{padding:38px 16px 64px}}@media (max-height:670px) and (min-width:901px){.identity-panel{top:38%}.identity-panel h1{font-size:76px}.degree{margin-top:25px}.work-label{bottom:78px}.city-line{bottom:38px}}.portfolio-shell.page-transition--leaving>.hero,.portfolio-shell.page-transition--leaving>.projects-index,.portfolio-shell.page-transition--leaving>.about-page,.portfolio-shell.page-transition--leaving>.contact-page,.portfolio-shell.page-transition--entering>.hero,.portfolio-shell.page-transition--entering>.projects-index,.portfolio-shell.page-transition--entering>.about-page,.portfolio-shell.page-transition--entering>.contact-page{pointer-events:none;will-change:opacity, transform, filter}.portfolio-shell.page-transition--leaving.page-motion--forward>.hero,.portfolio-shell.page-transition--leaving.page-motion--forward>.projects-index,.portfolio-shell.page-transition--leaving.page-motion--forward>.about-page,.portfolio-shell.page-transition--leaving.page-motion--forward>.contact-page{animation:.62s cubic-bezier(.4,0,.2,1) both page-forward-out}.portfolio-shell.page-transition--leaving.page-motion--backward>.hero,.portfolio-shell.page-transition--leaving.page-motion--backward>.projects-index,.portfolio-shell.page-transition--leaving.page-motion--backward>.about-page,.portfolio-shell.page-transition--leaving.page-motion--backward>.contact-page{animation:.62s cubic-bezier(.4,0,.2,1) both page-backward-out}.portfolio-shell.page-transition--entering.page-motion--forward>.hero,.portfolio-shell.page-transition--entering.page-motion--forward>.projects-index,.portfolio-shell.page-transition--entering.page-motion--forward>.about-page,.portfolio-shell.page-transition--entering.page-motion--forward>.contact-page{animation:.9s cubic-bezier(.16,1,.3,1) both page-forward-in}.portfolio-shell.page-transition--entering.page-motion--backward>.hero,.portfolio-shell.page-transition--entering.page-motion--backward>.projects-index,.portfolio-shell.page-transition--entering.page-motion--backward>.about-page,.portfolio-shell.page-transition--entering.page-motion--backward>.contact-page{animation:.9s cubic-bezier(.16,1,.3,1) both page-backward-in}@keyframes page-forward-in{0%{opacity:0;filter:blur(7px);transform:translateY(28px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes page-backward-in{0%{opacity:0;filter:blur(7px);transform:translateY(-28px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes page-forward-out{0%{opacity:1;filter:blur();transform:translateY(0)}to{opacity:0;filter:blur(6px);transform:translateY(-22px)}}@keyframes page-backward-out{0%{opacity:1;filter:blur();transform:translateY(0)}to{opacity:0;filter:blur(6px);transform:translateY(22px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important}}
