@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.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:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.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:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-light:300;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.z-0{z-index:0}.z-10{z-index:10}.z-\[1\]{z-index:1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mt-12{margin-top:calc(var(--spacing) * 12)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.contents{display:contents}.flex{display:flex}.hidden{display:none}.h-48{height:calc(var(--spacing) * 48)}.h-56{height:calc(var(--spacing) * 56)}.h-72{height:calc(var(--spacing) * 72)}.h-full{height:100%}.min-h-full{min-height:100%}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-72{width:calc(var(--spacing) * 72)}.w-full{width:100%}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-\[\#02030a\]{background-color:#02030a}.bg-white\/\[0\.02\]{background-color:#ffffff05}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.02\]{background-color:color-mix(in oklab, var(--color-white) 2%, transparent)}}.text-center{text-align:center}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.tracking-\[0\.5em\]{--tw-tracking:.5em;letter-spacing:.5em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-\[0\.35em\]{--tw-tracking:.35em;letter-spacing:.35em}.text-white\/40{color:#fff6}@supports (color:color-mix(in lab, red, red)){.text-white\/40{color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-30{opacity:.3}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-700{--tw-duration:.7s;transition-duration:.7s}}:root{--background:#08090d;--foreground:#eeedf5;--muted:#797b89}*{box-sizing:border-box}body{background:var(--background);color:var(--foreground);margin:0;font-family:Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline-offset:6px;outline:2px solid #b29aff}button,a{transition:color .2s,background .2s,opacity .2s}button:hover{color:#fff}.portfolio{max-width:1800px;margin:auto;padding:0 4.2%}.header{border-bottom:1px solid #ffffff0e;justify-content:space-between;align-items:center;height:100px;display:flex}.brand{letter-spacing:2px;align-items:center;gap:13px;font-size:12px;font-weight:700;display:flex}.brand-mark{color:#d9d1ff;font-size:39px;font-weight:400}.brand-sub{color:#777985;letter-spacing:1.7px;margin-top:7px;font-size:8px;font-weight:400;display:block}nav{color:#92929e;gap:32px;font-size:12px;display:flex}nav button{padding:12px 0}nav button span{color:#636372;margin-left:9px}nav .nav-active{color:#eeedf5;position:relative}nav .nav-active:after{content:"";background:#bca9fb;border-radius:100%;width:4px;height:4px;position:absolute;bottom:0;left:50%}.availability{letter-spacing:1.5px;color:#a4a5af;align-items:center;gap:9px;font-size:8px;display:flex}i{display:inline-block}.availability i,footer>span:first-child i{background:#a3c6ab;border-radius:100%;width:5px;height:5px;box-shadow:0 0 10px #a3c6ab45}.intro{text-align:center;padding:48px 0 0}.eyebrow{letter-spacing:2.4px;color:#aaa3ba;justify-content:center;align-items:center;gap:10px;font-size:9px;display:flex}.eyebrow>span{background:#bd9fed;border-radius:100%;width:5px;height:5px}h1{letter-spacing:-2px;margin:20px 0 15px;font-size:clamp(32px,3.2vw,53px);font-weight:400;line-height:1.16}h1>span{color:#9692ab}.intro p{color:#7e7e8d;font-size:12px;line-height:1.9}.scene{isolation:isolate;height:570px;min-height:420px;margin-top:9px;position:relative}.universe-canvas{cursor:grab;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.universe-canvas:active{cursor:grabbing}.scene-corner{font:8px var(--font-geist-mono),monospace;letter-spacing:1.3px;color:#7a798c;z-index:2;position:absolute;top:25px;left:0}.tiny-cross{color:#bdbbc9;margin-right:12px;font-size:17px}.muted{color:#444553;margin-left:6px}.view-switch{z-index:2;color:#777785;background:#0d0e14;border:1px solid #ffffff10;border-radius:7px;padding:4px;font-size:10px;display:flex;position:absolute;top:23px;right:0}.view-switch button{border-radius:4px;padding:7px 12px}.view-switch .current{color:#dfd9ef;background:#23212e}.connections{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.connections path{fill:none;stroke-width:.06px;stroke-dasharray:.3 .5;opacity:.22}.core-label{pointer-events:none;text-align:center;text-shadow:0 2px 14px #08090d;position:absolute;top:49%;left:50%;transform:translate(-50%,-50%)}.core-label span{letter-spacing:2px;color:#c3b5e0;font-size:7px;display:block}.core-label span:last-child{letter-spacing:1.2px;color:#9c91b2;font-size:6px}.core-label strong{letter-spacing:-2px;margin:7px 0;font-size:46px;font-weight:400;display:block}.orbit-node{z-index:2;flex-direction:column;align-items:center;min-width:135px;padding:12px;display:flex;position:absolute;transform:translate(-50%,-50%)}.node-orb{border:1px solid var(--node-color);border-radius:50%;place-items:center;width:54px;height:54px;display:grid}@supports (color:color-mix(in lab, red, red)){.node-orb{border:1px solid color-mix(in srgb,var(--node-color) 35%,transparent)}}.node-orb{color:var(--node-color);background:radial-gradient(circle at 35% 25%,var(--node-color),#0c0d13 70%);font-size:24px;position:relative}@supports (color:color-mix(in lab, red, red)){.node-orb{background:radial-gradient(circle at 35% 25%,color-mix(in srgb,var(--node-color) 16%,#111019),#0c0d13 70%)}}.node-orb{box-shadow:0 0 25px var(--node-color),inset 0 0 16px #ffffff04}@supports (color:color-mix(in lab, red, red)){.node-orb{box-shadow:0 0 25px color-mix(in srgb,var(--node-color) 8%,transparent),inset 0 0 16px #ffffff04}}.node-orb{transition:transform .35s,box-shadow .35s}.node-orb:before{content:"";border:1px solid var(--node-color);position:absolute;inset:-7px}@supports (color:color-mix(in lab, red, red)){.node-orb:before{border:1px solid color-mix(in srgb,var(--node-color) 9%,transparent)}}.node-orb:before{border-radius:50%}.node-number{letter-spacing:1px;color:var(--node-color);background:#101017;border:1px solid #ffffff18;border-radius:10px;padding:3px 4px;font-size:7px;position:absolute;top:-4px;right:-8px}.node-title{letter-spacing:.2px;margin-top:17px;font-size:12px}.node-title>span{color:var(--node-color);opacity:.6;margin-left:5px;font-size:10px}.node-caption{letter-spacing:1.6px;color:#777583;margin-top:7px;font-size:6px}.orbit-node:hover .node-orb{box-shadow:0 0 45px var(--node-color);transform:translateY(-5px)scale(1.12)}@supports (color:color-mix(in lab, red, red)){.orbit-node:hover .node-orb{box-shadow:0 0 45px color-mix(in srgb,var(--node-color) 25%,transparent)}}.scene-bottom{pointer-events:none;justify-content:space-between;align-items:center;width:100%;display:flex;position:absolute;bottom:8px}.drag-hint{color:#72707f;align-items:center;gap:10px;font-size:21px;display:flex}.drag-hint span{font-size:9px}.drag-hint b{color:#44434e;margin:0 8px}.scene-controls{pointer-events:auto;color:#9995a7;background:#101016;border:1px solid #ffffff14;border-radius:7px;align-items:center;padding:3px;display:flex}.scene-controls button{width:32px;height:30px;font-size:17px}.scene-controls>span{padding:0 6px;font:9px monospace}.scene-controls i{background:#ffffff14;width:1px;height:14px;margin:0 7px}footer{color:#696a78;border-top:1px solid #ffffff0e;justify-content:space-between;align-items:center;margin-top:19px;padding:25px 0;font-size:9px;display:flex}footer>span:first-child{letter-spacing:1.2px;align-items:center;gap:9px;font-size:7px;display:flex}footer b{color:#494754;margin:0 10px}footer button{font-size:9px}footer button span{margin-left:14px}.category-index{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0c0c15e8;border:1px solid #ffffff12;border-radius:10px;padding:12px;position:absolute;inset:90px 23% 65px}.category-index button{text-align:left;border-bottom:1px solid #ffffff0b;align-items:center;gap:20px;width:100%;padding:19px 14px;display:flex}.category-index button:last-child{border:0}.category-index button:hover{background:#ffffff06}.category-index strong{flex:1;font-size:14px;font-weight:400}.category-index span{color:#85808f;font:8px monospace}.detail-dialog{color:#eeeaf5;background:#101017;border:1px solid #51485f;border-radius:18px;width:min(1000px,92vw);max-height:86vh;margin:auto;padding:0;box-shadow:0 0 130px #7752b522}.detail-dialog::backdrop{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#030308bb}.detail-inner{padding:32px}.detail-top{justify-content:space-between;align-items:center;display:flex}.detail-top .eyebrow{font-size:8px}.detail-top button{background:#ffffff07;border-radius:50%;padding:9px}.detail-inner h2{letter-spacing:-2px;margin:18px 0 28px;font-size:48px;font-weight:400}.detail-inner h2 span{color:var(--node-color)}.detail-layout{grid-template-columns:230px 1fr;gap:34px;display:grid}.item-tabs{flex-direction:column;gap:5px;display:flex}.item-tabs button{text-align:left;color:#858190;border:1px solid #0000;border-radius:6px;align-items:center;gap:12px;padding:15px 12px;font-size:11px;display:flex}.item-tabs button>span{color:var(--node-color);font-size:8px}.item-tabs button>span:last-child{margin-left:auto}.item-tabs .selected{color:#eeeaf5;background:#ffffff05;border-color:#ffffff13}.item-detail{border-left:1px solid #ffffff0c;padding-left:32px;animation:.3s ease-out appear}.detail-badge{letter-spacing:1px;color:var(--node-color);font-size:9px}.item-detail>h3{margin:12px 0;font-size:25px;font-weight:400}.item-detail p{color:#9a94a6;font-size:12px;line-height:1.8}.item-detail .detail-subtitle{color:#c1b8cc}.tags{flex-wrap:wrap;gap:7px;margin-top:22px;display:flex}.tags span{color:#b9afc9;border:1px solid #ffffff14;border-radius:5px;padding:7px 9px;font-size:9px}.visit-link{color:var(--node-color);background:#bba3e91c;border:1px solid #bba3e932;border-radius:6px;margin-top:20px;padding:12px 19px;font-size:12px;display:inline-block}.skill-meter{background:#ffffff0b;border-radius:6px;height:5px;margin-top:20px;overflow:hidden}.skill-meter span{background:var(--node-color);height:100%;display:block}.project-stage{perspective:800px;--tilt:-12deg;background:radial-gradient(#6a418333,#0000 70%);place-items:center;height:260px;margin-bottom:24px;display:grid;position:relative}.project-model{width:90%;transform:rotateY(var(--tilt)) rotateX(8deg);background:#17131f;border:1px solid #b397cb55;border-radius:9px;transition:transform .15s;overflow:hidden;box-shadow:12px 22px 30px #0008,3px 3px #413147}.preview-caption{letter-spacing:1.5px;color:#787080;font-size:6px;position:absolute;bottom:0}@keyframes appear{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (min-width:1500px){.scene{height:650px}.intro{padding-top:55px}}@media (max-width:800px){.portfolio{padding:0 5%}.header{height:85px}nav{gap:18px;font-size:10px}.availability{display:none}.brand{font-size:10px}.brand-sub{font-size:6px}.brand-mark{font-size:30px}.intro{padding-top:38px}h1{letter-spacing:-1.3px}.scene{height:530px;margin-top:20px}.scene-corner{font-size:6px}.view-switch{font-size:8px}.node-orb{width:44px;height:44px;font-size:21px}.node-title{font-size:10px}.node-caption{letter-spacing:.9px;font-size:5px}.orbit-node{min-width:100px}.core-label strong{font-size:32px}.core-label span{font-size:5px}.core-label span:last-child{font-size:4px}.drag-hint span{font-size:7px}.scene-controls button{width:25px}.scene-controls>span{font-size:7px}footer>span:nth-child(2){display:none}.detail-layout{grid-template-columns:1fr;gap:20px}.item-tabs{flex-direction:row;overflow:auto}.item-tabs button{min-width:140px}.item-detail{border-left:0;padding-left:0}.detail-inner{padding:23px}.category-index{left:6%;right:6%}}@media (max-width:480px){nav button:nth-child(2){display:none}.intro p{font-size:10px}.scene{height:480px}.scene-corner{max-width:150px;line-height:2;top:8px}.view-switch{top:8px}.node-caption{display:none}.node-title{font-size:9px}.orbit-node{min-width:80px}.scene-bottom{bottom:0}.drag-hint{gap:5px}.drag-hint b{margin:0 4px}.drag-hint span{max-width:140px;line-height:1.7}footer{font-size:7px}footer>span:first-child{font-size:5px}footer button{font-size:7px}.core-label span:last-child{display:none}.detail-inner h2{font-size:35px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.scene-expanded>.universe-canvas{opacity:.16;transition:opacity .4s}.section-constellation{z-index:3;position:absolute;inset:78px 0 48px}.constellation-heading{justify-content:space-between;align-items:center;gap:16px;padding:0 15px;display:flex}.constellation-heading button{color:var(--node-color);padding:8px 0;font-size:10px}.constellation-heading>span{letter-spacing:1.5px;color:#898393;font-size:7px}.constellation-scroll{scrollbar-color:#51475e transparent;scrollbar-width:thin;height:calc(100% - 48px);overflow:auto}.constellation-map{min-width:760px;height:100%;position:relative}.constellation-map svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.constellation-map svg path{fill:none;stroke:var(--node-color);stroke-width:1px;opacity:.5;vector-effect:non-scaling-stroke}.constellation-map svg circle{fill:var(--node-color);opacity:.8}.section-branch{stroke-dasharray:1;animation:.7s both connect-branch}.constellation-root{flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;transform:translate(-50%,-50%)}.constellation-root strong{font-size:13px;font-weight:400}.constellation-root small{letter-spacing:1.3px;color:var(--node-color);font-size:6px}.constellation-leaf{text-align:left;align-items:center;gap:14px;padding:0;animation:.45s both star-arrive;display:flex;position:absolute;transform:translate(-7px,-50%)}.leaf-star{border:1px solid var(--node-color);height:12px;box-shadow:0 0 16px var(--node-color);background:#111019;border-radius:50%;flex:0 0 12px}@supports (color:color-mix(in lab, red, red)){.leaf-star{box-shadow:0 0 16px color-mix(in srgb,var(--node-color) 40%,transparent)}}.leaf-star{transition:background .2s,box-shadow .2s}.constellation-leaf:hover .leaf-star{background:var(--node-color);box-shadow:0 0 24px var(--node-color)}.leaf-copy{background:#0a0a11e6;border-radius:5px;flex-direction:column;gap:5px;max-width:170px;padding:7px 9px;display:flex}.leaf-copy small{letter-spacing:1px;color:var(--node-color);font-size:7px}.leaf-copy strong{font-size:11px;font-weight:400;line-height:1.3}.leaf-copy strong>span{color:var(--node-color)}.leaf-copy>span{color:#8b8498;font-size:8px;line-height:1.5}.journey-leaf{flex-direction:column;align-items:flex-start;transform:translate(-6px,-6px)}.journey-leaf .leaf-copy{margin-left:-12px}.constellation-help{text-align:center;letter-spacing:.4px;color:#827a90;margin-top:8px;font-size:8px;display:block}@keyframes connect-branch{0%{stroke-dashoffset:1px;opacity:0}to{stroke-dashoffset:0;opacity:.5}}@keyframes star-arrive{0%{opacity:0}to{opacity:1}}@media (max-width:800px){.constellation-heading>span{display:none}.section-constellation{top:64px}.constellation-scroll{height:calc(100% - 58px)}.constellation-heading{padding:0 3px}.constellation-help{font-size:7px}}.skills-map{min-height:560px}.skills-map .leaf-copy>span{display:none}.skills-map .leaf-copy{gap:3px;padding:4px 9px}.leaf-star{width:12px;min-width:12px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
.anchored-constellation{scrollbar-width:thin;scrollbar-color:#50465d transparent;position:absolute;inset:65px 0 50px;overflow:auto}.constellation-world-map{transform-origin:50%;width:1000px;height:650px;transition:transform .75s cubic-bezier(.22,1,.36,1);position:absolute;top:50%;left:50%}.constellation-world-map>.universe-canvas{opacity:.8;transition:opacity .5s}.has-expansion .universe-canvas{opacity:.35}.anchored-lines{pointer-events:none;width:1000px;height:650px;position:absolute;inset:0;overflow:visible}.anchored-lines path{fill:none;stroke-width:1px}.hub-connection{opacity:.3}.anchored-branch{opacity:.7;stroke-dasharray:1;animation:.65s both connect-branch}.anchored-hub{width:54px;height:54px;padding:0;transition:opacity .35s;position:absolute;transform:translate(-50%,-50%)}.anchored-hub .node-orb{width:54px;height:54px}.hub-title{white-space:nowrap;font-size:15px;position:absolute;top:69px;left:50%;transform:translate(-50%)}.muted-hub{opacity:.4}.muted-hub:hover{opacity:1}.anchored-hub[aria-expanded=true] .node-orb{box-shadow:0 0 35px color-mix(in srgb,var(--node-color) 35%,transparent)}.anchored-leaf{flex-direction:column;align-items:center;gap:9px;width:180px;padding:0;animation:.5s both star-arrive;display:flex;position:absolute;transform:translate(-50%,-6px)}.anchored-leaf .leaf-copy{text-align:center;background:#0a0a11d9;align-items:center;max-width:180px;padding:6px}.anchored-leaf .leaf-copy strong{font-size:15px}.anchored-leaf .leaf-copy small{font-size:10px}.anchored-leaf .leaf-copy>span{font-size:11px}.anchored-leaf:hover .leaf-star{background:var(--node-color);box-shadow:0 0 24px var(--node-color)}.branch-actions{pointer-events:none;z-index:5;justify-content:space-between;display:flex;position:absolute;top:0;left:0;right:0}.branch-actions button{pointer-events:auto;color:#bab0ca;background:#08090de8;border-radius:5px;padding:10px;font-size:10px}@media (max-width:800px){.scene-expanded{height:650px}.anchored-constellation{overflow:auto}.has-expansion .constellation-world-map{transition-duration:.5s}}.anchored-constellation{cursor:grab}.anchored-constellation:active{cursor:grabbing}.constellation-world-map{transition:none}.branch-actions{height:0;position:sticky;top:0;left:0}.scene-controls .read-zoom{color:#d2bfef;width:auto;padding:0 10px;font-size:10px}.scene-controls button:disabled{opacity:.3;cursor:default}.portfolio>.intro{padding-top:64px}@media (max-width:600px){.portfolio>.intro{padding-top:42px}}.portfolio{isolation:isolate;width:100%;max-width:2200px;padding-inline:clamp(18px,2.5vw,54px);position:relative}.scene{height:clamp(620px,68vh,820px)}.scene-expanded{height:clamp(700px,76vh,920px)}.ambient-starfield{z-index:-2;pointer-events:none;opacity:.72;width:100vw;height:100vh;position:fixed;inset:0}body:before{content:"";z-index:-3;pointer-events:none;background:radial-gradient(circle at 50% 42%,#5b379b21,#0000 34%),radial-gradient(circle at 12% 70%,#27628212,#0000 30%),linear-gradient(#08090d 0%,#06070b 100%);position:fixed;inset:0}@media (max-width:800px){.portfolio{padding-inline:16px}.scene{height:590px}.scene-expanded{height:680px}.ambient-starfield{opacity:.55}}
.detail-dialog{overscroll-behavior:contain;width:min(900px,100vw - 40px);max-height:min(86dvh,900px);overflow-y:auto}.detail-dialog.detail-compact{width:min(640px,100vw - 40px)}.detail-dialog .detail-inner{padding:28px}.detail-dialog .detail-top{height:28px}.detail-dialog .detail-top button{flex-shrink:0;width:34px;height:34px;padding:0}.detail-dialog .detail-inner h2{letter-spacing:-1.2px;margin:12px 0 22px;font-size:36px;line-height:1.15}.detail-dialog .detail-layout{flex-direction:column;gap:22px;min-width:0;display:flex}.detail-dialog .item-tabs{border-bottom:1px solid #ffffff12;flex-flow:wrap;gap:8px;padding-bottom:18px;display:flex;overflow:visible}.detail-dialog .item-tabs button{border:1px solid #ffffff0c;flex:0 auto;gap:8px;min-width:0;padding:10px 12px;font-size:12px;line-height:1.45}.detail-dialog .item-tabs button>span:first-child{font-size:9px}.detail-dialog .item-tabs button>span:last-child{display:none}.detail-dialog .item-tabs .selected{border-color:color-mix(in srgb, var(--node-color) 45%, transparent);background:color-mix(in srgb, var(--node-color) 10%, transparent)}.detail-dialog .item-detail{border:0;min-width:0;padding:0}.detail-dialog .detail-badge{margin-bottom:8px;line-height:1.5;display:block}.detail-dialog .item-detail>h3{margin:0 0 8px;font-size:24px;line-height:1.3}.detail-dialog .item-detail>p{overflow-wrap:anywhere;margin:0 0 12px;font-size:13px;line-height:1.75}.detail-dialog .item-detail>.detail-subtitle{margin-bottom:14px}.detail-dialog .item-detail>:last-child{margin-bottom:0}.detail-dialog .tags{gap:6px;margin:18px 0 0}.detail-dialog .tags span{padding:6px 9px;font-size:10px}.detail-dialog .visit-link{margin-top:8px;padding:11px 16px}.detail-dialog .skill-meter{margin-top:14px}.detail-dialog .project-stage{max-width:520px;height:240px;margin:0 auto 24px}@media (max-width:600px){.detail-dialog,.detail-dialog.detail-compact{border-radius:12px;width:calc(100vw - 24px);max-height:90dvh}.detail-dialog .detail-inner{padding:20px}.detail-dialog .detail-inner h2{margin:10px 0 18px;font-size:30px}.detail-dialog .detail-layout{gap:18px}.detail-dialog .item-tabs{gap:6px;padding-bottom:16px}.detail-dialog .item-tabs button{padding:8px 10px;font-size:11px}.detail-dialog .item-detail>h3{font-size:21px}.detail-dialog .project-stage{height:220px}}
:root{--background:#050609;--foreground:#f1eee9}body{font-family:var(--font-geist-sans), Arial, Helvetica, sans-serif}body:before{background:radial-gradient(at 73% 24%,#42344a0a,#0000 48%),radial-gradient(at 15% 65%,#283b420a,#0000 46%),linear-gradient(#08090d,#050609 80%)}.portfolio.immersive-portfolio{--scene-line:#e6ddf015;--scene-muted:#93929f;--scene-accent:#baa5ee;width:100%;max-width:2100px;min-height:100dvh;padding:0 clamp(20px,3.5vw,76px)}.immersive-portfolio .ambient-starfield{opacity:.35}.portfolio>.intro.immersive-intro{text-align:left;grid-template-columns:1.3fr 1fr;align-items:end;column-gap:clamp(40px,8vw,140px);max-width:1420px;margin:0 auto;padding:48px 12px 32px;display:grid}.immersive-intro .intro-kicker{color:#b9b5c4;font:10px var(--font-geist-mono), monospace;letter-spacing:1.8px;text-transform:uppercase;grid-column:1/-1;align-items:center;gap:10px;margin-bottom:18px;display:flex}.intro-kicker i,.intro-kicker>span:first-child:empty{background:#c3d8b9;border-radius:50%;width:5px;height:5px;box-shadow:0 0 12px #c3d8b966}.immersive-intro h1{color:#f1eee9;letter-spacing:-.055em;grid-area:2/1/4;margin:0;font-size:clamp(44px,4.2vw,68px);font-weight:450;line-height:1.08}.immersive-intro h1>span{color:#938f9e;letter-spacing:-.05em;margin-top:5px;font-size:.76em;font-weight:380;display:inline-block}.immersive-intro>p{color:#9e9aa8;letter-spacing:-.1px;grid-column:2;max-width:440px;margin:0 0 16px;font-size:14px;line-height:1.8}.intro-meta{flex-wrap:wrap;grid-column:2;align-items:center;gap:9px 16px;margin-bottom:4px;display:flex}.intro-meta>span,.intro-meta>a{color:#a9a3b4;font:9px var(--font-geist-mono), monospace;letter-spacing:.6px;line-height:1.6}.intro-meta>:not(:first-child):before{content:"/";color:#5f5668;padding-right:16px}.scene.immersive-scene,.scene.scene-expanded.immersive-scene{border:1px solid var(--scene-line);isolation:isolate;background:radial-gradient(at 52% 49%,#6b478806 0,#0000 58%),linear-gradient(145deg,#14121d12,#080a1105 70%);border-radius:16px;max-width:1800px;height:clamp(660px,75dvh,860px);min-height:600px;margin:0 auto;overflow:hidden}.immersive-scene:before{content:"";z-index:3;pointer-events:none;background:linear-gradient(#afa5bf38,#afa5bf38) 0 0/14px 1px no-repeat,linear-gradient(#afa5bf38,#afa5bf38) 0 0/1px 14px no-repeat,linear-gradient(#afa5bf38,#afa5bf38) 100% 0/14px 1px no-repeat,linear-gradient(#afa5bf38,#afa5bf38) 100% 0/1px 14px no-repeat,linear-gradient(#afa5bf38,#afa5bf38) 0 100%/14px 1px no-repeat,linear-gradient(#afa5bf38,#afa5bf38) 0 100%/1px 14px no-repeat,linear-gradient(#afa5bf38,#afa5bf38) 100% 100%/14px 1px no-repeat,linear-gradient(#afa5bf38,#afa5bf38) 100% 100%/1px 14px no-repeat;position:absolute;inset:12px}.scene-topline{z-index:5;pointer-events:none;justify-content:space-between;align-items:center;gap:20px;display:flex;position:absolute;top:20px;left:28px;right:28px}.scene-caption{color:#a9a1b6;font:9px var(--font-geist-mono), monospace;letter-spacing:1.8px;text-transform:uppercase;align-items:center;gap:12px;line-height:1.5;display:flex}.scene-caption>span{color:#666170;letter-spacing:.9px;font-size:8px}.immersive-scene .view-switch{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#8f899c;pointer-events:auto;background:#0b0c12d9;border:1px solid #b9a9d120;border-radius:7px;flex-shrink:0;gap:2px;padding:3px;font-size:10px;display:flex;position:static}.immersive-scene .view-switch button{border-radius:4px;min-width:74px;min-height:32px;padding:7px 14px}.immersive-scene .view-switch .current{color:#f0e8fa;background:#9b83c221;box-shadow:inset 0 0 0 1px #c2addb10}.spatial-scene{touch-action:none;position:absolute;inset:55px 0 65px;overflow:hidden}.spatial-canvas{cursor:grab;touch-action:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.spatial-canvas:active{cursor:grabbing}.spatial-labels{z-index:2;pointer-events:none;position:absolute;inset:0}.spatial-node{color:#ebe6f1;text-align:center;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;width:142px;height:142px;padding:0;transition:opacity .4s;display:block;position:absolute;top:0;left:0}.spatial-node .node-glyph{border:1px solid color-mix(in srgb, var(--node-color) 35%, transparent);width:54px;height:54px;color:color-mix(in srgb, var(--node-color) 60%, #fff);text-shadow:0 0 18px var(--node-color);box-shadow:0 0 0 7px color-mix(in srgb, var(--node-color) 3%, transparent);pointer-events:none;background:#0507091a;border-radius:50%;place-items:center;font-size:24px;font-weight:300;transition:border-color .25s,box-shadow .25s,background .25s;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.spatial-node .node-label{color:#e5e0e9;letter-spacing:-.2px;text-shadow:0 2px 10px #000;pointer-events:auto;background:#05060999;border-radius:4px;width:max-content;max-width:190px;padding:3px 8px;font-size:14px;font-weight:450;line-height:1.45;transition:color .25s,background .25s;position:absolute;top:calc(50% + 40px);left:50%;transform:translate(-50%)}.spatial-node .node-meta{color:#8e839f;width:max-content;max-width:210px;font:8px var(--font-geist-mono), monospace;letter-spacing:1.15px;text-transform:uppercase;text-shadow:0 1px 8px #000;pointer-events:auto;line-height:1.5;position:absolute;top:calc(50% + 69px);left:50%;transform:translate(-50%)}.spatial-node .node-index{color:color-mix(in srgb, var(--node-color) 70%, #aaa);font:8px var(--font-geist-mono), monospace;letter-spacing:.6px;display:block;position:absolute;top:calc(50% - 35px);left:calc(50% + 25px)}.spatial-node:hover .node-glyph,.spatial-node:focus-visible .node-glyph,.spatial-node.is-active .node-glyph{border-color:var(--node-color);background:color-mix(in srgb, var(--node-color) 8%, transparent);box-shadow:0 0 0 7px color-mix(in srgb, var(--node-color) 7%, transparent), 0 0 32px color-mix(in srgb, var(--node-color) 20%, transparent)}.spatial-node:hover .node-label,.spatial-node:focus-visible .node-label,.spatial-node.is-active .node-label{color:#fff;background:color-mix(in srgb, var(--node-color) 10%, #07080dc7)}.spatial-node.is-muted{opacity:.28}.spatial-node.is-muted:hover,.spatial-node.is-muted:focus-visible{opacity:.95}.spatial-node.spatial-leaf{width:184px;height:94px}.spatial-leaf .node-glyph{border-color:color-mix(in srgb, var(--node-color) 75%, transparent);background:color-mix(in srgb, var(--node-color) 15%, #060709);width:14px;height:14px;box-shadow:0 0 18px color-mix(in srgb, var(--node-color) 25%, transparent);font-size:0}.spatial-leaf .node-label{border:1px solid color-mix(in srgb, var(--node-color) 16%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080911d9;max-width:175px;padding:5px 9px;font-size:12px;font-weight:400;line-height:1.4;top:calc(50% + 15px)}.spatial-leaf .node-meta{letter-spacing:.4px;text-transform:none;background:#05060999;max-width:150px;padding:2px 5px;font-size:8px;top:calc(50% + 50px)}.spatial-leaf .node-index{font-size:7px;top:calc(50% - 12px);left:calc(50% + 13px)}.spatial-reading .spatial-leaf .node-label,.spatial-reading .spatial-hub .node-label{font-size:16px}.spatial-reading .spatial-leaf .node-label{max-width:230px}.spatial-reading .spatial-leaf .node-meta{max-width:210px;font-size:9px}.spatial-core-label{z-index:1;color:#ece7f5;text-align:center;text-shadow:0 2px 20px #080610;pointer-events:none;min-width:100px;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.spatial-core-label strong{letter-spacing:-3px;margin-bottom:4px;font-size:38px;font-weight:350;line-height:1;display:block}.spatial-core-label span,.spatial-core-label small{color:#b5a8ca;font:7px var(--font-geist-mono), monospace;letter-spacing:1.2px;text-transform:uppercase;line-height:1.65;display:block}.spatial-back{z-index:4;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#cbc0de;text-align:left;pointer-events:auto;background:#0a0b12dc;border:1px solid #c2aadd22;border-radius:6px;align-items:center;gap:10px;max-width:calc(100% - 56px);min-height:36px;padding:8px 12px;font-size:10px;line-height:1.4;display:flex;position:absolute;top:13px;left:28px}.spatial-back:hover{background:#161320;border-color:#c2aadd44}.spatial-back>button{border-radius:4px;min-height:30px;padding:5px 9px;font-size:10px}.spatial-back>button:hover{background:#b79aca14}.spatial-back>button+button{color:#b9a5cf;border-left:1px solid #bca4d126;border-radius:0 4px 4px 0}.spatial-fallback .spatial-canvas,.spatial-fallback .spatial-core-label{display:none}.spatial-fallback .spatial-labels{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:25px 16px;display:grid;inset:65px 9% 50px}.spatial-fallback .spatial-node{opacity:1;width:100%;height:142px;visibility:visible!important;position:relative!important;top:auto!important;left:auto!important;transform:none!important}.spatial-fallback-note{color:#9b90a9;font:9px var(--font-geist-mono), monospace;text-align:center;line-height:1.7;position:absolute;top:14px;left:28px;right:28px}.spatial-legend{z-index:3;color:#8b8299;font:8px var(--font-geist-mono), monospace;letter-spacing:.5px;pointer-events:none;align-items:center;gap:8px;line-height:1.7;display:flex;position:absolute;bottom:13px;left:28px}.spatial-legend i{background:#b39bd1;border-radius:50%;width:4px;height:4px;box-shadow:0 0 9px #b39bd155}.scene-status{z-index:3;color:#756d85;font:8px var(--font-geist-mono), monospace;letter-spacing:.8px;pointer-events:none;line-height:1.6;position:absolute;bottom:80px;right:28px}.immersive-scene .scene-bottom{z-index:5;gap:16px;width:auto;bottom:18px;left:28px;right:28px}.immersive-scene .drag-hint{color:#a196b0;gap:9px;font-size:17px}.immersive-scene .drag-hint span{color:#837d90;font:9px var(--font-geist-mono), monospace;line-height:1.6}.immersive-scene .drag-hint b{color:#4f465d;margin-inline:8px;font-weight:400}.immersive-scene .scene-controls{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#c6bbd6;background:#0b0c14de;border:1px solid #b9a9d122;border-radius:7px;flex-shrink:0;padding:3px}.immersive-scene .scene-controls button{border-radius:4px;place-items:center;width:34px;height:34px;font-size:17px;display:grid}.immersive-scene .scene-controls button:hover{background:#b89dda13}.immersive-scene .scene-controls button:disabled{opacity:.25}.immersive-scene .scene-controls>span{text-align:center;color:#aea3bd;min-width:40px;font:9px var(--font-geist-mono), monospace;padding-inline:4px}.immersive-scene .scene-controls .read-zoom{color:#d3c2ea;width:auto;min-width:44px;padding:0 10px;font-size:10px}.immersive-scene .scene-controls i{background:#c2aadd24;margin:0 4px}.immersive-scene .category-index{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0;display:grid;inset:95px 10%}.immersive-scene .category-index button,.immersive-scene .category-index button:last-child{--node-color:#baa5ee;background:linear-gradient(135deg,#1a162445,#08091199);border:1px solid #b49ec222;border-radius:10px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:16px;min-width:0;height:100%;padding:clamp(20px,2.4vw,36px);transition:border-color .25s,background .25s,transform .25s;display:flex;position:relative;overflow:hidden}.immersive-scene .category-index button:before{content:"";border:1px solid color-mix(in srgb, var(--node-color) 22%, transparent);background:radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--node-color) 13%, transparent), transparent 80%);width:38px;height:38px;box-shadow:0 0 0 5px color-mix(in srgb, var(--node-color) 3%, transparent);border-radius:50%;position:absolute;top:21px;right:21px}.immersive-scene .category-index button:hover{border-color:color-mix(in srgb, var(--node-color) 45%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--node-color) 10%, #0c0c13), #0b0b13);transform:translateY(-3px)}.immersive-scene .category-index button>span:first-child{letter-spacing:1.4px;font-size:10px}.immersive-scene .category-index strong{color:#ece6f1;letter-spacing:-.9px;flex:none;margin-top:auto;font-size:clamp(21px,2.1vw,32px);font-weight:400;line-height:1.2}.immersive-scene .category-index button>span:last-child{color:#9588a4;letter-spacing:1px;font-size:8px}.portfolio-footer{color:#817b8c;max-width:1800px;font:9px var(--font-geist-mono), monospace;letter-spacing:.6px;border-top:0;margin:0 auto;padding:24px 12px 28px}.portfolio-footer>span:first-child{color:#817b8c;letter-spacing:.9px;font-size:8px;line-height:1.5}.portfolio-footer button{color:#bcb1cd;font-size:10px}.portfolio-footer button:hover{color:#e8d8fb}@media (min-width:1800px){.portfolio>.intro.immersive-intro{padding-top:58px;padding-bottom:42px}}@media (max-width:1000px){.portfolio>.intro.immersive-intro{grid-template-columns:1.25fr 1fr;column-gap:36px;padding:40px 6px 28px}.immersive-intro h1{font-size:48px}.immersive-intro>p{font-size:12px}.intro-meta{gap:8px 12px}.intro-meta>span,.intro-meta>a{font-size:8px}.intro-meta>:not(:first-child):before{padding-right:12px}.scene.immersive-scene,.scene.scene-expanded.immersive-scene{height:660px}.immersive-scene .category-index{left:7%;right:7%}}@media (max-width:700px){.portfolio.immersive-portfolio{padding-inline:14px}.portfolio>.intro.immersive-intro{padding:32px 9px 26px;display:block}.immersive-intro .intro-kicker{letter-spacing:1.5px;margin-bottom:16px;font-size:8px}.immersive-intro h1{letter-spacing:-.05em;font-size:clamp(40px,7vw,49px)}.immersive-intro h1>span{margin-top:6px;font-size:.76em}.immersive-intro>p{max-width:400px;margin:18px 0 12px;font-size:12px;line-height:1.75}.intro-meta{margin-bottom:0}.scene.immersive-scene,.scene.scene-expanded.immersive-scene{border-radius:12px;height:620px;min-height:620px}.scene-topline{gap:8px;top:17px;left:20px;right:20px}.scene-caption{letter-spacing:1px;gap:7px;font-size:7px}.scene-caption>span{display:none}.immersive-scene .view-switch{font-size:9px}.immersive-scene .view-switch button{min-width:64px;min-height:34px;padding-inline:10px}.spatial-scene{inset:63px 0 88px}.spatial-node{width:116px;height:122px}.spatial-node .node-glyph{width:42px;height:42px;font-size:20px}.spatial-node .node-label{max-width:144px;padding-inline:5px;font-size:12px;top:calc(50% + 31px)}.spatial-node .node-meta{letter-spacing:.65px;font-size:7px;top:calc(50% + 56px)}.spatial-node .node-index{font-size:7px;top:calc(50% - 28px);left:calc(50% + 21px)}.spatial-node.spatial-leaf{width:148px;height:82px}.spatial-leaf .node-glyph{width:12px;height:12px;font-size:0}.spatial-leaf .node-label{max-width:140px;font-size:11px;top:calc(50% + 12px)}.spatial-leaf .node-meta{letter-spacing:.2px;max-width:140px;font-size:7px;top:calc(50% + 50px)}.spatial-leaf .node-index{top:calc(50% - 10px);left:calc(50% + 12px)}.spatial-core-label strong{font-size:29px}.spatial-core-label span,.spatial-core-label small{letter-spacing:.7px;font-size:6px}.spatial-back{max-width:calc(100% - 40px);font-size:9px;top:11px;left:20px}.spatial-back>button{padding-inline:5px;font-size:9px}.spatial-fallback .spatial-labels{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 10px;inset:65px 8% 45px}.spatial-fallback .spatial-node{height:100px}.spatial-fallback-note{font-size:8px;left:20px;right:20px}.spatial-legend{max-width:calc(100% - 40px);font-size:7px;bottom:10px;left:20px}.scene-status{font-size:7px;bottom:90px;right:20px}.immersive-scene .scene-bottom{gap:10px;bottom:19px;left:20px;right:20px}.immersive-scene .drag-hint{font-size:14px}.immersive-scene .drag-hint span{max-width:125px;font-size:7px}.immersive-scene .drag-hint b{margin-inline:3px}.immersive-scene .scene-controls button{width:30px;height:40px;font-size:16px}.immersive-scene .scene-controls>span{min-width:32px;font-size:8px}.immersive-scene .scene-controls .read-zoom{min-width:36px;padding-inline:7px;font-size:9px}.immersive-scene .category-index{grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;inset:89px 20px 98px}.immersive-scene .category-index button,.immersive-scene .category-index button:last-child{gap:9px;padding:17px 15px}.immersive-scene .category-index button:before{width:25px;height:25px;top:16px;right:17px}.immersive-scene .category-index button>span:first-child{letter-spacing:1px;font-size:8px}.immersive-scene .category-index strong{letter-spacing:-.6px;font-size:20px}.immersive-scene .category-index button>span:last-child{letter-spacing:.5px;font-size:7px}.portfolio-footer{gap:15px;padding:20px 8px 24px}.portfolio-footer>span:first-child{letter-spacing:.3px;max-width:220px;font-size:7px;line-height:1.7;display:block}.portfolio-footer button{flex-shrink:0;font-size:9px}}@media (max-width:440px){.immersive-scene .scene-bottom{flex-direction:column;align-items:center;gap:8px;bottom:15px}.immersive-scene .drag-hint{gap:6px;font-size:11px}.immersive-scene .drag-hint span{max-width:none;font-size:7px}.spatial-scene{bottom:108px}.scene-status{bottom:112px}.immersive-scene .category-index{bottom:115px}.immersive-scene .category-index strong{font-size:18px}}@media (prefers-reduced-motion:reduce){.spatial-node,.spatial-node *,.immersive-scene .category-index button{transition:none}}
.portfolio-dialog{--dialog-accent:#b89aff;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#454252 transparent;border:1px solid color-mix(in srgb, var(--dialog-accent) 25%, #ffffff0a);color:#eeeef6;background:radial-gradient(ellipse at 0 0, color-mix(in srgb, var(--dialog-accent) 9%, transparent), transparent 55%), #101119f5;width:min(720px,100vw - 40px);max-height:min(88dvh,960px);box-shadow:0 36px 120px #0008, 0 0 80px color-mix(in srgb, var(--dialog-accent) 8%, transparent);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);font-family:var(--font-geist-sans), Arial, sans-serif;border-radius:24px;margin:auto;padding:0;overflow:auto}.portfolio-dialog-wide{width:min(1000px,100vw - 40px)}.portfolio-dialog::backdrop{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#03040bb0}.portfolio-dialog[open]{animation:.26s ease-out portfolio-dialog-enter}.portfolio-dialog-inner{padding:28px}.portfolio-dialog-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:26px;display:flex}.portfolio-dialog-heading{align-items:center;gap:17px;min-width:0;display:flex}.portfolio-dialog-symbol{border:1px solid color-mix(in srgb, var(--dialog-accent) 24%, transparent);width:52px;height:52px;color:var(--dialog-accent);background:color-mix(in srgb, var(--dialog-accent) 7%, transparent);border-radius:16px;flex:0 0 52px;place-items:center;font-size:29px;display:grid}.portfolio-dialog-identity{color:#9798aa;font:9px var(--font-geist-mono), monospace;letter-spacing:1.6px;margin-bottom:6px;display:block}.portfolio-dialog-heading h2{letter-spacing:-1px;margin:0;font-size:30px;font-weight:450;line-height:1.1}.portfolio-dialog-heading h2>span{color:var(--dialog-accent)}.portfolio-dialog-close{color:#aab;background:#ffffff04;border:1px solid #ffffff12;border-radius:50%;flex:0 0 38px;place-items:center;width:38px;height:38px;display:grid}.portfolio-dialog-close:hover{color:#fff;background:#ffffff0c}.portfolio-dialog button:focus-visible,.portfolio-dialog a:focus-visible{outline:2px solid var(--dialog-accent);outline-offset:3px}.portfolio-dialog-layout{flex-direction:column;gap:22px;min-width:0;display:flex}.portfolio-dialog-items{border-bottom:1px solid #ffffff0c;flex-wrap:wrap;gap:7px;padding-bottom:20px;display:flex}.portfolio-dialog-items button{text-align:left;color:#9c9eaf;background:#ffffff02;border:1px solid #ffffff0c;border-radius:9px;align-items:center;gap:9px;min-width:0;padding:10px 13px;display:flex}.portfolio-dialog-items button:hover{color:#f2f1f7;background:#ffffff05}.portfolio-dialog-items button.is-selected{color:#f1f0f7;background:color-mix(in srgb, var(--dialog-accent) 8%, transparent);border-color:color-mix(in srgb, var(--dialog-accent) 35%, transparent)}.portfolio-item-indicator{background:#555668;border-radius:50%;flex:0 0 5px;width:5px;height:5px}.is-selected .portfolio-item-indicator{background:var(--dialog-accent);box-shadow:0 0 10px color-mix(in srgb, var(--dialog-accent) 55%, transparent)}.portfolio-item-copy{flex-direction:column;gap:5px;min-width:0;display:flex}.portfolio-item-copy strong{font-size:12px;font-weight:450;line-height:1.4}.portfolio-item-copy small{color:#777a8b;font-size:10px;line-height:1.4}.portfolio-item-arrow{color:var(--dialog-accent);opacity:0;font-size:12px}.is-selected .portfolio-item-arrow{opacity:.75}.portfolio-dialog-detail{min-width:0;animation:.2s ease-out portfolio-detail-enter}.portfolio-detail-heading{margin-bottom:14px}.portfolio-detail-badge{color:var(--dialog-accent);font:10px var(--font-geist-mono), monospace;margin-bottom:9px;line-height:1.5;display:block}.portfolio-detail-heading h3{letter-spacing:-.5px;margin:0;font-size:25px;font-weight:450;line-height:1.3}.portfolio-detail-subtitle{color:#c2c3d2;margin:7px 0 0;font-size:13px;line-height:1.6}.portfolio-detail-body p{color:#a7a9bb;margin:0 0 12px;font-size:14px;line-height:1.8}.portfolio-detail-body p:last-child{margin-bottom:0}.portfolio-career-responsibilities{gap:13px;margin:0;padding:0;list-style:none;display:grid}.portfolio-career-responsibilities li{color:#a8aabb;padding-left:16px;font-size:13px;line-height:1.8;position:relative}.portfolio-career-responsibilities li:before{content:"";background:color-mix(in srgb, var(--dialog-accent) 60%, transparent);border-radius:50%;width:4px;height:4px;position:absolute;top:.83em;left:0}.portfolio-detail-tags{flex-wrap:wrap;gap:6px;margin-top:20px;display:flex}.portfolio-detail-tags>span{color:#b7b9ca;background:#ffffff03;border:1px solid #ffffff12;border-radius:6px;padding:6px 9px;font-size:10px;line-height:1.5}.portfolio-detail-link{background:color-mix(in srgb, var(--dialog-accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--dialog-accent) 22%, transparent);color:var(--dialog-accent);border-radius:8px;align-items:center;gap:28px;margin-top:20px;padding:11px 16px;font-size:12px;display:inline-flex}.portfolio-detail-link:hover{background:color-mix(in srgb, var(--dialog-accent) 16%, transparent)}.portfolio-dialog-timeline{grid-template-columns:198px minmax(0,1fr);gap:28px;display:grid}.portfolio-dialog-timeline .portfolio-dialog-items{border:0;flex-flow:column;align-self:start;padding:0;position:relative}.portfolio-dialog-timeline .portfolio-dialog-items button{align-items:flex-start;padding:13px 11px}.portfolio-dialog-timeline .portfolio-item-indicator{margin-top:7px}.portfolio-dialog-timeline .portfolio-item-copy{flex:1}.portfolio-dialog-timeline .portfolio-item-arrow{padding-top:2px}.portfolio-skill-level{background:#ffffff02;border:1px solid #ffffff0d;border-radius:13px;padding:18px 20px}.portfolio-skill-level>div:first-child{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.portfolio-skill-level>div:first-child>span{color:#9296aa;font-size:12px}.portfolio-skill-level strong{color:var(--dialog-accent);font-size:27px;font-weight:450;line-height:1}.portfolio-skill-level strong small{color:#6c7189;margin-left:3px;font-size:12px}.portfolio-skill-meter{grid-template-columns:repeat(10,1fr);gap:5px;display:grid}.portfolio-skill-meter span{background:#ffffff09;border-radius:2px;height:8px}.portfolio-skill-meter span.is-filled{background:var(--dialog-accent);box-shadow:0 0 10px color-mix(in srgb, var(--dialog-accent) 12%, transparent)}.portfolio-skill-level>p{color:#8e94aa;margin:13px 0 0;font-size:11px}.portfolio-contact-list{gap:10px;display:grid}.portfolio-contact-card{background:#ffffff02;border:1px solid #ffffff0d;border-radius:13px;align-items:center;gap:16px;padding:17px 18px;display:flex}.portfolio-contact-card:hover,.portfolio-contact-card.is-selected{border-color:color-mix(in srgb, var(--dialog-accent) 27%, transparent);background:color-mix(in srgb, var(--dialog-accent) 6%, transparent)}.portfolio-contact-icon{width:39px;height:39px;color:var(--dialog-accent);background:#ffffff06;border-radius:11px;flex:0 0 39px;place-items:center;font-size:19px;display:grid}.portfolio-contact-copy{flex:1;gap:5px;min-width:0;display:grid}.portfolio-contact-copy>strong{color:#e6e8f0;font-size:13px;font-weight:450}.portfolio-contact-copy>span{color:#9a9fb5;overflow-wrap:anywhere;font-size:12px;line-height:1.5}.portfolio-contact-card>svg{color:var(--dialog-accent);opacity:.7;flex:0 0 20px}@keyframes portfolio-dialog-enter{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes portfolio-detail-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (max-width:720px){.portfolio-dialog,.portfolio-dialog-wide{border-radius:18px;width:calc(100vw - 24px);max-height:91dvh}.portfolio-dialog-inner{padding:22px}.portfolio-dialog-header{gap:12px;margin-bottom:22px}.portfolio-dialog-heading{gap:13px}.portfolio-dialog-symbol{border-radius:12px;flex-basis:43px;width:43px;height:43px;font-size:24px}.portfolio-dialog-heading h2{font-size:25px}.portfolio-dialog-identity{letter-spacing:1.3px;font-size:8px}.portfolio-dialog-close{flex-basis:34px;width:34px;height:34px}.portfolio-dialog-timeline{gap:20px;display:flex}.portfolio-dialog-timeline .portfolio-dialog-items{border-bottom:1px solid #ffffff0c;flex-flow:wrap;gap:7px;width:100%;padding-bottom:18px}.portfolio-dialog-timeline .portfolio-dialog-items button{flex:130px;padding:10px}.portfolio-item-copy strong{font-size:11px}.portfolio-item-copy small{font-size:9px}.portfolio-dialog-items button{padding:9px 11px}.portfolio-detail-heading h3{font-size:23px}.portfolio-detail-subtitle,.portfolio-career-responsibilities li{font-size:12px}.portfolio-contact-card{gap:12px;padding:15px}.portfolio-contact-copy>span{font-size:11px}}@media (max-width:420px){.portfolio-dialog-inner{padding:18px}.portfolio-dialog-heading h2{font-size:23px}.portfolio-dialog-symbol{flex-basis:38px;width:38px;height:38px;font-size:21px}.portfolio-dialog-items{gap:6px}.portfolio-dialog-items button{gap:7px;padding:8px 10px}.portfolio-item-arrow{display:none}.portfolio-contact-icon{flex-basis:33px;width:33px;height:33px;font-size:17px}}@media (prefers-reduced-motion:reduce){.portfolio-dialog[open],.portfolio-dialog-detail{animation:none}}
