html[data-exp=mobile] #desktop-root,html[data-exp=desktop] #mobile-root{display:none!important}:root{--vh:1vh;--vw:1vw;--app-h:calc(var(--vh) * 100);--app-w:calc(var(--vw) * 100);--ui-grey:#595959}html,body{width:var(--app-w);height:var(--app-h);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;background-color:#ccc;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow:hidden}#scene-one,#scene-two,#scene-three{width:var(--app-w);height:var(--app-h);transition:opacity .8s;position:fixed;top:0;left:0}#scene-two,#scene-three{opacity:0;pointer-events:none;z-index:50}#gl-recovery{z-index:9999;color:#777;text-align:center;box-sizing:border-box;background:#ccc;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:24px;font-size:15px;display:none;position:fixed;inset:0}html.gl-unrecoverable #gl-recovery{display:flex}#gl-recovery button{font:inherit;color:#fff;cursor:pointer;background:#ffffff59;border:1px solid #ffffff80;border-radius:50px;padding:10px 26px}#webgl-module{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}#canvas-container{cursor:grab;width:100%;height:100%;position:absolute;top:0;left:0}#canvas-container:active{cursor:grabbing}.nav-btn{-webkit-backdrop-filter:blur(20px);color:var(--ui-grey);cursor:pointer;z-index:200;-webkit-user-select:none;user-select:none;letter-spacing:.5px;--x:50%;--y:50%;background:#ffffff40;border:1px solid #ffffff1a;border-radius:50px;align-items:center;gap:8px;padding:10px 25px;font-size:14px;font-weight:500;transition:all .4s cubic-bezier(.16,1,.3,1),opacity .55s;display:flex;position:fixed;top:32px;left:32px;box-shadow:inset 0 1px 1px #fff6,0 4px 13px #00000005}.nav-btn:hover{color:#fff;background:#ffffff59;transform:translateY(-1px);box-shadow:inset 0 1px 1px #ffffff80,0 6px 16px #00000008}.nav-btn:active{transform:translateY(0);box-shadow:inset 0 1px 1px #ffffff4d,0 2px 8px #00000005}.nav-btn:focus-visible{outline-offset:3px;outline:2px solid #fff}@media (hover:hover) and (pointer:fine){.nav-btn:after{content:"";border-radius:inherit;background:radial-gradient(28px circle at var(--x) var(--y), #fffffff2, transparent 100%);-webkit-mask-composite:xor;opacity:0;pointer-events:none;padding:1px;transition:opacity .3s,border-radius .5s cubic-bezier(.16,1,.3,1);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.nav-btn:hover:after{opacity:1}}#pulse-toggle{z-index:210;opacity:0;pointer-events:none;align-items:center;gap:10px;transition:opacity .5s,transform .5s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:32px;right:32px;transform:translateY(-6px)}#pulse-toggle.visible{opacity:1;pointer-events:auto;transform:translateY(0)}#pulse-toggle .pulse-label{color:#777;letter-spacing:.5px;-webkit-user-select:none;user-select:none;font-size:14px;font-weight:500}#pulse-toggle .pulse-switch{cursor:pointer;background:#e4e4e7;border:1px solid #0000000d;border-radius:999px;width:46px;height:26px;transition:background .3s;position:relative}#pulse-toggle .pulse-switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}#pulse-toggle.on .pulse-switch{background:#43b75d}#pulse-toggle.on .pulse-switch:after{transform:translate(20px)}.pulse-panel{z-index:300;text-align:center;-webkit-backdrop-filter:blur(28px)saturate(1.4);opacity:0;pointer-events:none;background:#18181a8c;border:1px solid #ffffff24;border-radius:22px;flex-direction:column;align-items:center;transition:opacity .4s,transform .45s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;box-shadow:inset 0 1px 1px #ffffff1f,0 24px 60px #00000059}.pulse-panel.visible{opacity:1;pointer-events:auto}#pulse-notice{width:min(420px,86vw);padding:34px 32px 28px;top:50%;left:50%;transform:translate(-50%,-50%)translateY(8px)scale(.98)}#pulse-notice.visible{transform:translate(-50%,-50%)translateY(0)scale(1)}#pulse-notice h3{color:#fff;letter-spacing:.02em;margin:0 0 14px;font-size:1.15rem;font-weight:600}#pulse-notice p{color:#fff;margin:0 0 10px;font-size:.92rem;line-height:1.55}#pulse-notice p:last-of-type{margin-bottom:22px}#pulse-notice .pulse-begin{font:inherit;letter-spacing:.4px;color:#2d2d2d;cursor:pointer;background:#fff;border:none;border-radius:999px;padding:11px 30px;font-size:14px;font-weight:500;transition:transform .25s,box-shadow .25s,opacity .25s}#pulse-notice .pulse-begin:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0000002e}#pulse-notice .pulse-begin:disabled{opacity:.6;cursor:default;box-shadow:none;transform:none}#webgl-notice{width:min(380px,86vw);padding:30px 28px 26px;top:50%;left:50%;transform:translate(-50%,-50%)translateY(8px)scale(.98)}#webgl-notice.visible{transform:translate(-50%,-50%)translateY(0)scale(1)}#webgl-notice h3{color:#fff;letter-spacing:.01em;margin:0 0 12px;padding-right:22px;font-size:1.05rem;font-weight:600;line-height:1.35}#webgl-notice p{color:#fff;opacity:.86;margin:0;font-size:.9rem;line-height:1.55}#webgl-notice-close{-webkit-appearance:none;appearance:none;color:#fff;opacity:.7;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:26px;height:26px;padding:0;transition:opacity .2s;display:flex;position:absolute;top:14px;right:14px}#webgl-notice-close:hover{opacity:1}#webgl-notice-close svg{width:15px;height:15px}#pulse-onboard{padding:22px 26px 24px;left:50%}#pulse-onboard[data-size=large]{width:min(560px,88vw);top:50%;bottom:auto;transform:translate(-50%,-50%)translateY(8px)scale(.98)}#pulse-onboard[data-size=large].visible{transform:translate(-50%,-50%)translateY(0)scale(1)}#pulse-onboard[data-size=small]{width:232px;padding:14px 16px 16px;top:auto;bottom:40px;transform:translate(-50%,14px)}#pulse-onboard[data-size=small].visible{transform:translate(-50%)}.pulse-cam{aspect-ratio:16/9;background:#111;border-radius:16px;width:100%;margin-bottom:16px;position:relative;overflow:hidden}#pulse-onboard[data-size=small] .pulse-cam{margin-bottom:10px}.pulse-cam video{object-fit:cover;width:100%;height:100%;display:block;transform:scaleX(-1)}.pulse-cam:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff38,inset 0 1px #ffffff47}.pulse-demo{color:#ffffffd9;width:52px;height:52px;margin-bottom:14px}#pulse-onboard[data-size=small] .pulse-demo{width:40px;margin-bottom:10px}.pulse-demo svg{width:100%;height:100%;display:block}.pulse-gesture-pulse{transform-origin:50%;animation:1.7s ease-in-out infinite pulseGestureFade}@keyframes pulseGestureFade{0%,to{opacity:.45;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}}.pulse-gesture-reminder{color:#ffffffd9;width:26px;height:26px;margin-bottom:10px}.pulse-gesture-reminder svg{width:100%;height:100%;display:block}.pulse-orbit{width:56px;height:56px;margin-bottom:10px;position:relative}.pulse-orbit-ring{border:1.5px dashed #ffffff40;border-radius:50%;position:absolute;inset:0}.pulse-orbit-spin{animation:2.6s linear infinite pulseOrbitSpin;position:absolute;inset:0}.pulse-orbit-dot{background:#fff;border-radius:50%;width:8px;height:8px;margin-left:-4px;position:absolute;top:-3px;left:50%;box-shadow:0 0 8px #ffffff8c}@keyframes pulseOrbitSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pulse-progress-dot{background:#ffffff47;border-radius:50%;width:7px;height:7px;margin:2px auto 0;transition:background .15s linear,transform .15s linear;display:block}.pulse-progress-dot.done{transform:scale(1.35)}.pulse-instruction{color:#fff;max-width:34ch;margin:0;font-size:.98rem;font-weight:400;line-height:1.5}#pulse-onboard[data-size=small] .pulse-instruction{max-width:26ch;font-size:.86rem}.pulse-subtext{color:#fff;max-width:34ch;margin:8px 0 0;font-size:.8rem;line-height:1.5}.pulse-subtext:empty{display:none}.pulse-skip{color:#ffffff80;letter-spacing:.3px;cursor:pointer;margin-top:16px;font-size:13px;font-weight:500;transition:color .2s;display:inline-block}.pulse-skip:hover{color:#ffffffd9}#pulse-denied{color:#ffffffe0;border-radius:18px;max-width:300px;padding:16px 18px;font-size:13px;line-height:1.5;top:84px;left:auto;right:32px;transform:translateY(-6px)}#pulse-denied.visible{transform:translateY(0)}#pulse-input-blocked{width:min(360px,84vw);padding:22px 26px;top:50%;left:50%;transform:translate(-50%,-50%)translateY(6px)scale(.97)}#pulse-input-blocked.visible{transform:translate(-50%,-50%)translateY(0)scale(1)}#pulse-input-blocked p{color:#fff;text-align:center;margin:0;font-size:.95rem;line-height:1.5}#home-btn{opacity:0;pointer-events:none}#homepage{z-index:400;opacity:1;background:#ccc;transition:opacity .85s cubic-bezier(.4,0,.2,1);position:fixed;inset:0}#homepage.leaving{opacity:0}#homepage.gone{display:none}#hp-name-btn{position:fixed;top:clamp(20px,3.5vh,34px);left:clamp(16px,2.8vw,30px)}#hp-contact-btn{position:fixed;top:clamp(20px,3.5vh,34px);left:auto;right:clamp(16px,2.8vw,30px)}#hp-inner{width:min(460px,34vw);position:absolute;top:17vh;left:18vw}#hp-stack{--hp-card:clamp(150px, 12vw, 190px);--hp-gap:clamp(10px, 1vw, 16px);width:100%;height:calc(var(--hp-card) * 1.248 + 20px);margin-bottom:clamp(28px,3.5vh,44px);position:relative}.hp-photo{width:var(--hp-card);height:var(--hp-card);will-change:transform;background:#bdbdbd;border-radius:14%;transition:transform .7s cubic-bezier(.16,1,.3,1),width .7s cubic-bezier(.16,1,.3,1),height .7s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 10px 26px #0003}.hp-photo img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.hp-photo-inner{width:116%;height:116%;margin:-8% 0 0 -8%}#hp-stack.is-clustered .hp-photo:first-child{transform:translate(calc(var(--hp-card) * .288), calc(var(--hp-card) * .016)) rotate(11deg);z-index:1}#hp-stack.is-clustered .hp-photo:nth-child(2){transform:translate(calc(var(--hp-card) * .184), calc(var(--hp-card) * .12)) rotate(5.5deg);z-index:2}#hp-stack.is-clustered .hp-photo:nth-child(3){transform:translate(0, calc(var(--hp-card) * .248)) rotate(0deg);z-index:3}#hp-stack.is-expanded .hp-photo{width:var(--hp-card);height:calc(var(--hp-card) * 1.048)}#hp-stack.is-expanded .hp-photo:first-child{transform:translate(calc((var(--hp-card) + var(--hp-gap)) * 2), calc(var(--hp-card) * .16)) rotate(0deg);transition-delay:0s}#hp-stack.is-expanded .hp-photo:nth-child(2){transform:translate(calc(var(--hp-card) + var(--hp-gap)), calc(var(--hp-card) * .16)) rotate(0deg);transition-delay:40ms}#hp-stack.is-expanded .hp-photo:nth-child(3){transform:translate(0, calc(var(--hp-card) * .16)) rotate(0deg);transition-delay:.16s}#hp-stack.is-clustered .hp-photo:nth-child(3){transition-delay:0s}#hp-stack.is-clustered .hp-photo:nth-child(2){transition-delay:80ms}#hp-stack.is-clustered .hp-photo:first-child{transition-delay:.14s}#hp-stack.is-clustered .hp-photo:first-child .hp-photo-inner{animation:6.4s ease-in-out infinite hpSwayA}#hp-stack.is-clustered .hp-photo:nth-child(2) .hp-photo-inner{animation:8.1s ease-in-out -2.7s infinite hpSwayB}#hp-stack.is-clustered .hp-photo:nth-child(3) .hp-photo-inner{animation:5.6s ease-in-out -3.9s infinite hpSwayC}@keyframes hpSwayA{0%,to{transform:translate(0)rotate(0)}34%{transform:translate(-7px,-10px)rotate(-2deg)}67%{transform:translate(4px,-4px)rotate(.8deg)}}@keyframes hpSwayB{0%,to{transform:translate(0)rotate(0)}40%{transform:translate(9px,-7px)rotate(1.8deg)}72%{transform:translate(-3px,4px)rotate(-.9deg)}}@keyframes hpSwayC{0%,to{transform:translate(0)rotate(0)}45%{transform:translate(-6px,8px)rotate(-1.6deg)}78%{transform:translate(5px,2px)rotate(1deg)}}#hp-bio{letter-spacing:-.005em;color:#3f3f3f;white-space:pre-line;margin:0;font-size:clamp(15px,1.15vw,18px);font-weight:500;line-height:1.48}.hp-link{color:#fff;cursor:pointer;transition:color .25s}.hp-link:hover{color:#3f3f3f}.hp-link.is-copied{color:#1a9e46}#hp-enter-btn{position:fixed;top:auto;bottom:clamp(32px,7vh,54px);left:50%;transform:translate(-50%)}#hp-enter-btn:hover{transform:translate(-50%)translateY(-1px)}@media (orientation:portrait){#hp-inner{width:min(420px,72vw);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#hp-stack.is-expanded .hp-photo{width:calc(var(--hp-card) * .7231);height:calc(var(--hp-card) * 1.048)}#hp-stack.is-expanded .hp-photo:first-child{transform:translate(calc(var(--hp-card) * 1.6197), calc(var(--hp-card) * .16)) rotate(0deg)}#hp-stack.is-expanded .hp-photo:nth-child(2){transform:translate(calc(var(--hp-card) * .8099), calc(var(--hp-card) * .16)) rotate(0deg)}}#homepage:not(.arr-btns) #hp-name-btn{opacity:0;transform:translateY(-9px)}#homepage:not(.arr-btns) #hp-contact-btn{transform:translateY(-9px)}#homepage:not(.arr-btns) #hp-enter-btn{opacity:0;transform:translate(-50%)translateY(11px)}#homepage.arr-btns #hp-contact-btn{opacity:1}#hp-stack{transition:transform .66s cubic-bezier(.16,1,.3,1);transform:translateY(18px)}#homepage.arr-tiles #hp-stack{transform:translateY(0)}.hp-photo{opacity:0}#homepage.arr-tiles .hp-photo{animation:.48s forwards tileArrive}#homepage.arr-tiles .hp-photo:nth-child(3){animation-delay:0s}#homepage.arr-tiles .hp-photo:nth-child(2){animation-delay:.1s}#homepage.arr-tiles .hp-photo:first-child{animation-delay:.2s}@keyframes tileArrive{0%{opacity:0}to{opacity:1}}#hp-bio{opacity:0;transform-origin:0;transition:opacity .62s,transform .78s cubic-bezier(.16,1,.3,1);transform:scale(.984)}#homepage.arr-bio #hp-bio{opacity:1;transform:scale(1)}#hp-preview{z-index:420;opacity:0;pointer-events:none;background:#cdcdcde0;border:1px solid #ffffff73;border-radius:16px;align-items:center;gap:12px;padding:12px 16px;transition:opacity .25s,transform .25s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;transform:translateY(6px)scale(.97);box-shadow:0 12px 30px #0003}#hp-preview.visible{opacity:1;transform:translateY(0)scale(1)}.hp-preview-icon{background:#fff6;border-radius:10px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.hp-preview-icon svg{fill:#3f3f3f;width:21px;height:21px}.hp-preview-name{color:#3f3f3f;font-size:14px;font-weight:500;line-height:1.3}.hp-preview-url{color:#777;font-size:12px;line-height:1.3}#hp-copied{z-index:430;letter-spacing:.2px;color:#2d2d2d;opacity:0;pointer-events:none;background:#cdcdcde0;border:1px solid #ffffff73;border-radius:999px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:500;transition:opacity .22s,transform .28s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;transform:translateY(6px)scale(.96);box-shadow:0 10px 24px #0000002e}#hp-copied.visible{opacity:1;transform:translateY(0)scale(1)}#hp-copied svg{fill:none;stroke:#555;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:13px;height:13px}#hp-contact-btn{pointer-events:auto!important}#contact-btn,#hp-contact-btn{box-sizing:border-box;opacity:0;pointer-events:none;width:104px;height:42px;padding:0;transition:width .5s cubic-bezier(.16,1,.3,1),height .5s cubic-bezier(.16,1,.3,1),border-radius .5s cubic-bezier(.16,1,.3,1),background .5s,box-shadow .5s,-webkit-backdrop-filter .5s,backdrop-filter .5s,transform .5s,opacity .4s cubic-bezier(.16,1,.3,1);display:block;left:auto;right:32px;overflow:hidden}#contact-btn.is-open,#hp-contact-btn.is-open{-webkit-backdrop-filter:blur(30px);cursor:default;background:linear-gradient(135deg,#ffffff73 0%,#ffffff40 100%);border-radius:24px;width:180px;height:204px;box-shadow:inset 0 1px 1px #fff6,inset 0 0 20px #ffffff14,0 8px 24px #00000008,0 1px 3px #00000003;transform:translateY(0)!important}.contact-label{justify-content:center;align-items:center;width:100%;height:42px;transition:opacity .3s;display:flex;position:absolute;top:0;left:0}#contact-btn.is-open .contact-label,#hp-contact-btn.is-open .contact-label{opacity:0;pointer-events:none}.contact-list{box-sizing:border-box;opacity:0;pointer-events:none;flex-direction:column;gap:4px;width:100%;height:100%;padding:16px 12px;display:flex;position:absolute;top:0;left:0}#contact-btn.is-open .contact-list,#hp-contact-btn.is-open .contact-list{opacity:1;pointer-events:auto}.contact-item{color:var(--ui-grey);cursor:pointer;opacity:0;border-radius:14px;align-items:center;gap:12px;padding:10px 14px;font-size:15px;font-weight:400;transition:background .2s,transform .3s,opacity .2s;display:flex;transform:translateY(10px)}#contact-btn.is-open .contact-item,#hp-contact-btn.is-open .contact-item{opacity:1;transition:background .2s,transform .5s cubic-bezier(.16,1,.3,1),opacity .5s;transform:translateY(0)}#contact-btn.is-open .contact-item:first-child,#hp-contact-btn.is-open .contact-item:first-child{transition-delay:.1s}#contact-btn.is-open .contact-item:nth-child(2),#hp-contact-btn.is-open .contact-item:nth-child(2){transition-delay:.15s}#contact-btn.is-open .contact-item:nth-child(3),#hp-contact-btn.is-open .contact-item:nth-child(3){transition-delay:.2s}#contact-btn.is-open .contact-item:nth-child(4),#hp-contact-btn.is-open .contact-item:nth-child(4){transition-delay:.25s}.contact-item:hover{background:#fff3}.contact-item svg{stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.be-logo{letter-spacing:-.5px;justify-content:center;align-items:center;width:18px;height:18px;font-family:inherit;font-size:16px;font-weight:700;display:flex}.item-text-wrapper{flex:1;align-items:center;display:flex;position:relative}.item-text-wrapper span{transition:opacity .3s,transform .3s}.item-text-wrapper .copied{color:#34c759;opacity:0;font-weight:500;position:absolute;left:0;transform:translateY(4px)}.contact-item.is-copied .original{opacity:0;transform:translateY(-4px)}.contact-item.is-copied .copied{opacity:1;transform:translateY(0)}#scene-two-back-btn,#scene-three-back-btn{opacity:0;pointer-events:none}#scene-two-back-btn.active,#scene-three-back-btn.active{opacity:1;pointer-events:auto}#scene-two-back-btn svg,#scene-three-back-btn svg{width:16px;height:16px;transition:stroke .3s}.welcome-text{top:calc(var(--vh) * 10);text-align:center;color:#fff;z-index:10;opacity:0;pointer-events:none;width:100%;font-size:1.125rem;font-weight:400;transition:opacity .8s;position:fixed}.welcome-text:after{content:"|";opacity:1;margin-left:4px;transition:opacity .4s;animation:1s step-start infinite blink}.welcome-text.done:after{opacity:0}@keyframes blink{50%{opacity:0}}#mindmap-interact-text{top:calc(var(--vh) * 90);opacity:0;pointer-events:none}#mindmap-interact-text:after{content:none}#mindmap-interact-text.fade-in{animation:.8s forwards interactFadeIn,4s ease-in-out .8s infinite interactPulse}#mindmap-interact-text.hidden{transition:opacity .3s;opacity:0!important;animation:none!important}@keyframes interactFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes interactPulse{0%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.scroll-instruction{top:calc(var(--vh) * 85);text-align:center;color:#fff;z-index:10;opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;width:100%;font-size:1.125rem;font-weight:400;transition:opacity 1s;display:flex;position:fixed}#scroll-text,#swipe-text{color:#777}@keyframes pulseText{0%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}to{opacity:.7;transform:scale(1)}}.scroll-instruction span{animation:4s ease-in-out infinite pulseText}#labels-container{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;top:0;left:0}.folder-label{color:#777;opacity:0;text-align:center;white-space:nowrap;will-change:transform, opacity;font-family:inherit;font-size:16px;font-weight:400;transition:opacity .4s,color .4s;position:absolute;top:0;left:0}.folder-label.focus{opacity:1}.folder-label.hover{color:#fff}#dom-layer{pointer-events:none;z-index:10;width:100%;height:100%;display:block;position:absolute;top:0;left:0}#native-scroll-container{-webkit-overflow-scrolling:touch;touch-action:pan-y;z-index:5;-ms-overflow-style:none;scrollbar-width:none;width:100%;height:100%;display:none;position:absolute;top:0;left:0;overflow:hidden auto}#native-scroll-container::-webkit-scrollbar{display:none}#native-scroll-content{width:100%;position:relative}#click-blocker{z-index:100;touch-action:none;width:100%;height:100%;display:none;position:absolute;top:0;left:0}#click-blocker.active{display:block}#collection-info{color:#777;opacity:0;pointer-events:none;z-index:200;top:calc(var(--vh) * 12);left:calc(var(--vw) * 6);will-change:transform, opacity;max-width:340px;transition:opacity .8s cubic-bezier(.16,1,.3,1);position:absolute}#collection-info.active{opacity:1}#collection-info h2{letter-spacing:.01em;margin:0 0 12px;font-size:1.5rem;font-weight:500}#collection-info p{opacity:.85;margin:0;font-size:.95rem;line-height:1.5}#close-btn{top:calc(var(--vh) * 6);right:calc(var(--vw) * 5);color:#666;cursor:pointer;opacity:0;pointer-events:none;z-index:200;justify-content:center;align-items:center;margin:-15px;padding:15px;font-size:1rem;transition:opacity .8s,color .3s;display:flex;position:absolute}#close-btn.active{opacity:1;pointer-events:auto}#close-btn:hover{color:#fff}.desktop-text{align-items:center;gap:6px;display:flex}.desktop-icon{width:16px;height:16px}.mobile-icon{display:none}.dom-card{transform-origin:50%;-webkit-backface-visibility:hidden;backface-visibility:hidden;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0;overflow:hidden}.dom-card.animating{will-change:transform, opacity}.dom-card img,.dom-card video{object-fit:cover;pointer-events:none;width:100%;height:100%;transition:box-shadow .4s;display:block}#native-scroll-content.fading{will-change:opacity}.cluster-title{transform-origin:50%;color:#777;text-align:center;white-space:nowrap;letter-spacing:.01em;font-size:.98rem;position:absolute;top:0;left:0}html.compact .welcome-text{top:calc(var(--vh) * 15)}html.compact #mindmap-interact-text{top:calc(var(--vh) * 88)}html.compact .cluster-title{font-size:1.15rem}html.compact #collection-info{top:calc(var(--vh) * 10);text-align:center;width:calc(var(--vw) * 85);max-width:none;left:50%;transform:translate(-50%)}html.compact .desktop-text{display:none}html.compact .mobile-icon{color:#fff;width:28px;height:28px;display:block}html.compact #close-btn{top:calc(var(--vh) * 3);right:calc(var(--vw) * 3);color:#fff}html.compact #contact-btn.is-open,html.compact #hp-contact-btn.is-open{border-radius:20px;width:150px;height:176px}html.compact .contact-list{gap:2px;padding:12px 8px}html.compact .contact-item{border-radius:12px;padding:8px 12px;font-size:14px}html.compact .contact-item svg,html.compact .be-logo{width:16px;height:16px}html.compact .be-logo{font-size:15px}html.compact .scroll-instruction{top:calc(var(--vh) * 89)}#mindmap-canvas-container{width:100%;height:100%;display:block}#mindmap-loading{pointer-events:none;z-index:10;flex-direction:column;justify-content:center;align-items:center;transition:opacity .5s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.morph-dots{--text-main:#fff;--text-muted:#777;width:28px;height:28px;animation:4s cubic-bezier(.4,0,.2,1) infinite colorChange}.dots-group{transform-origin:12px 12px;animation:4s cubic-bezier(.4,0,.2,1) infinite rotateGroup}.dot-1{animation:4s cubic-bezier(.4,0,.2,1) infinite dot1}.dot-2{animation:4s cubic-bezier(.4,0,.2,1) infinite dot2}.dot-3{animation:4s cubic-bezier(.4,0,.2,1) infinite dot3}.dot-4{animation:4s cubic-bezier(.4,0,.2,1) infinite dot4}.dot-5{animation:4s cubic-bezier(.4,0,.2,1) infinite dot5}@keyframes colorChange{0%,9%{fill:var(--text-muted)}10%,40%{fill:var(--text-main)}41%,to{fill:var(--text-muted)}}@keyframes rotateGroup{0%,10%{transform:rotate(0)}40%,to{transform:rotate(180deg)}}@keyframes dot1{0%,50%,to{transform:translate(0)}10%,40%{transform:translateY(-9.5px)}}@keyframes dot2{0%,50%,to{transform:translate(0)}10%,40%{transform:translate(9.03px,-2.94px)}}@keyframes dot3{0%,50%,to{transform:translate(0)}10%,40%{transform:translate(5.58px,7.68px)}}@keyframes dot4{0%,50%,to{transform:translate(0)}10%,40%{transform:translate(-5.58px,7.68px)}}@keyframes dot5{0%,50%,to{transform:translate(0)}10%,40%{transform:translate(-9.03px,-2.94px)}}.loading-text{color:#fff;margin-top:16px;font-size:1.125rem;font-weight:400;animation:4s ease-in-out infinite pulseText}@media (prefers-reduced-motion:reduce){.scroll-instruction span,.loading-text,.hp-photo-inner,#mindmap-interact-text.fade-in{animation:none!important}.welcome-text:after{animation:none}#hp-name-btn,#hp-contact-btn,#hp-enter-btn,#hp-stack,#hp-bio{transition:none!important}.hp-photo{opacity:1!important;animation:none!important}}:root{--bg:#ccc;--ink:#2d2d2d;--ink-soft:#2d2d2dc7;--ink-faint:#2d2d2d6b;--glass-fill:#ffffff6e;--glass-edge:#ffffff8c;--glass-spec:#ffffff70;--glass-shadow:#0000000d;--capsule-fill:#00000016;--capsule-edge:#ffffff80;--on-glass:#fff;--edge:20px;--control-h:36px;--header-h:56px;--mvh:1vh;--mvw:1vw;--r-lg:20px;--r-md:18px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-soft:cubic-bezier(.33, 1, .68, 1)}#mobile-root{--app-mh:calc(var(--mvh) * 100);--tabbar-h:clamp(39px, calc(var(--app-mh) * .06), 46px);--tab-gap-top:clamp(12px, calc(var(--app-mh) * .032), 28px);--tab-gap-bottom:clamp(10px, calc(var(--app-mh) * .024), 22px);--panel-top:calc(var(--header-h) + env(safe-area-inset-top,0px) + var(--tab-gap-top) + var(--tabbar-h) + var(--tab-gap-bottom));--panel-bottom:env(safe-area-inset-bottom,0px);--panel-h:calc(var(--app-mh) - var(--panel-top) - var(--panel-bottom))}#mobile-root,#mobile-root *{box-sizing:border-box}#mobile-root{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro,Segoe UI,Roboto,Helvetica,Arial,sans-serif;position:fixed;inset:0;overflow:hidden}#mobile-root .glass{background:var(--glass-fill);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-spec), inset 0 -1px 0 #0000000a, 0 2px 6px var(--glass-shadow);isolation:isolate;position:relative}#mobile-root .glass:before{content:"";border-radius:inherit;pointer-events:none;z-index:0;opacity:.5;background-image:linear-gradient(160deg,#fff6 0%,#ffffff0f 40%,#fff0 64%);position:absolute;inset:0}#mobile-root .glass>*{z-index:1;position:relative}#mobile-root .capsule{background:var(--capsule-fill);border:1px solid var(--capsule-edge);box-shadow:inset 0 1px #ffffff59,0 1px 4px #00000014}#mobile-root #header{height:calc(var(--header-h) + env(safe-area-inset-top,0px));padding:0 var(--edge);padding-top:calc(env(safe-area-inset-top,0px) + 14px);z-index:400;pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:0;left:0;right:0}#mobile-root #header>*{pointer-events:auto}#mobile-root #header-right{top:calc(env(safe-area-inset-top,0px) + 14px);right:var(--edge);pointer-events:none;position:absolute}#mobile-root #header-right>*{pointer-events:auto}#mobile-root #switcher{height:var(--control-h);touch-action:pan-y;opacity:0;transition:opacity .5s ease, transform .5s var(--ease-out);border-radius:999px;align-items:center;padding:3px;display:flex;position:relative;transform:translateY(-6px)}#mobile-root #switcher.ready{opacity:1;transform:translateY(0)}#mobile-root[data-page=gallery] #switcher{opacity:0;pointer-events:none;transform:translateY(-8px)scale(.96)}#mobile-root #switch-thumb{z-index:1;height:calc(100% - 6px);transition:transform .3s var(--ease-out), width .3s var(--ease-out);border-radius:999px;position:absolute;top:3px;left:3px}#mobile-root .switch-btn{z-index:2;-webkit-appearance:none;appearance:none;font:inherit;letter-spacing:.1px;color:var(--ui-grey);cursor:pointer;background:0 0;border:0;border-radius:999px;height:100%;padding:0 15px;font-size:13.5px;font-weight:500;transition:color .28s;position:relative}#mobile-root .switch-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}#mobile-root #contact{width:92px;height:var(--control-h);cursor:pointer;opacity:0;transition:width .5s cubic-bezier(.16, 1, .3, 1), height .5s cubic-bezier(.16, 1, .3, 1), border-radius .5s cubic-bezier(.16, 1, .3, 1), opacity .5s ease, transform .5s var(--ease-out);border-radius:999px;position:absolute;top:0;right:0;overflow:hidden;transform:translateY(-6px)}#mobile-root #contact.ready{opacity:1;transform:translateY(0)}#mobile-root #contact.is-open{border-radius:var(--r-lg);cursor:default;background:#eeeeeef7;width:160px;height:178px;box-shadow:inset 0 1px #ffffffb3,0 10px 30px #00000021,0 2px 8px #00000012}#mobile-root #contact.is-open:before{opacity:.25}#mobile-root[data-page=gallery] #contact{opacity:0;pointer-events:none}#mobile-root #contact-label{height:var(--control-h);color:var(--ui-grey);justify-content:center;align-items:center;font-size:13.5px;font-weight:500;transition:opacity .2s;display:flex;position:absolute;inset:0 0 auto}#mobile-root #contact.is-open #contact-label{opacity:0}#mobile-root #contact-list{opacity:0;pointer-events:none;flex-direction:column;gap:2px;padding:14px 10px;transition:opacity .22s .16s;display:flex;position:absolute;inset:0}#mobile-root #contact.is-open #contact-list{opacity:1;pointer-events:auto}#mobile-root .contact-item{color:var(--ui-grey);white-space:nowrap;opacity:0;border-radius:12px;align-items:center;gap:12px;padding:9px 12px;font-size:14px;transition:background .18s,transform .5s cubic-bezier(.16,1,.3,1),opacity .5s;display:flex;transform:translateY(10px)}#mobile-root #contact.is-open .contact-item{opacity:1;transform:translateY(0)}#mobile-root #contact.is-open .contact-item:first-child{transition-delay:.2s}#mobile-root #contact.is-open .contact-item:nth-child(2){transition-delay:.25s}#mobile-root #contact.is-open .contact-item:nth-child(3){transition-delay:.3s}#mobile-root #contact.is-open .contact-item:nth-child(4){transition-delay:.35s}#mobile-root .contact-item:active{background:#0000000f}#mobile-root .contact-item svg{stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 16px;width:16px;height:16px}#mobile-root .be-logo{letter-spacing:-.5px;flex:0 0 16px;justify-content:center;align-items:center;width:16px;height:16px;font-size:14px;font-weight:700;line-height:1;display:flex}#mobile-root .item-text{flex:1;position:relative}#mobile-root .item-text .copied{color:#1a9e46;opacity:0;transition:opacity .22s,transform .22s;position:absolute;top:0;left:0;transform:translateY(3px)}#mobile-root .item-text .original{transition:opacity .22s,transform .22s}#mobile-root .contact-item.copied .original{opacity:0;transform:translateY(-3px)}#mobile-root .contact-item.copied .copied{opacity:1;transform:translateY(0)}#mobile-root #back-btn{height:var(--control-h);cursor:pointer;color:var(--ui-grey);opacity:0;pointer-events:none;transition:opacity .5s ease, transform .5s var(--ease-out);border-radius:999px;align-self:flex-start;align-items:center;gap:7px;padding:0 16px 0 13px;font-size:13.5px;font-weight:500;display:flex;transform:translateY(-6px)}#mobile-root[data-page=gallery] #back-btn{opacity:1;pointer-events:auto;transition-delay:.16s;transform:translateY(0)}#mobile-root #back-btn svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}#mobile-root .page{opacity:0;pointer-events:none;transition:opacity .42s;position:absolute;inset:0}#mobile-root .page.active{opacity:1;pointer-events:auto}@keyframes homeRise{0%{transform:translateY(10px)}to{transform:translateY(0)}}#mobile-root #home.arrive #tabslot{animation:homeRise .5s var(--ease-out) both}#mobile-root #home.arrive #project-name{animation:homeRise .5s var(--ease-out) 60ms both}#mobile-root #home.arrive #carousel{animation:homeRise .5s var(--ease-out) .12s both}#mobile-root #home.arrive #meta{animation:homeRise .5s var(--ease-out) .18s both}#mobile-root #home{padding-top:calc(var(--header-h) + env(safe-area-inset-top,0px));flex-direction:column;align-items:center;display:flex}#mobile-root #tabslot{width:100%;height:var(--tabbar-h);flex:0 0 var(--tabbar-h);margin-top:var(--tab-gap-top);z-index:10;justify-content:center;align-items:center;gap:9px;display:flex;position:relative}#mobile-root #nav-profile-btn{width:var(--tabbar-h);height:var(--tabbar-h);color:var(--ui-grey);cursor:pointer;opacity:0;transition:opacity .5s ease, transform .5s var(--ease-out);-webkit-tap-highlight-color:transparent;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex;transform:scale(.92)}#mobile-root #nav-profile-btn.in{opacity:1;transform:scale(1)}#mobile-root #nav-profile-btn:active{transform:scale(.94)}#mobile-root #nav-profile-btn:focus-visible{outline:2px solid var(--ui-grey);outline-offset:2px}#mobile-root #nav-profile-btn svg{fill:currentColor;width:17px;height:17px}#mobile-root #tabbar{height:var(--tabbar-h);width:var(--tabbar-w-closed,122px);cursor:pointer;opacity:0;touch-action:pan-x;transition:opacity .5s ease, transform .5s var(--ease-out), width .58s var(--ease-out);-webkit-tap-highlight-color:transparent;border-radius:999px;flex:none;align-items:center;padding:5px 6px;display:flex;position:relative;overflow:hidden;transform:scale(.92)}#mobile-root #home[data-section=projects] #tabbar{width:var(--tabbar-w-open,240px);cursor:default}#mobile-root #tabbar:focus-visible{outline:2px solid var(--ui-grey);outline-offset:2px}#mobile-root #projects-label{letter-spacing:.4px;color:var(--ui-grey);white-space:nowrap;pointer-events:none;z-index:2;opacity:1;justify-content:center;align-items:center;font-size:13px;font-weight:500;transition:opacity .24s .12s;display:flex;position:absolute;inset:0}#mobile-root #home[data-section=projects] #projects-label{opacity:0;transition:opacity .16s}#mobile-root #tab-icons{z-index:2;opacity:0;pointer-events:none;flex:none;align-items:center;gap:2px;height:100%;transition:opacity .2s;display:flex;position:static}#mobile-root #home[data-section=projects] #tab-icons{opacity:1;pointer-events:auto;transition:opacity .3s .16s}#mobile-root #tabbar.in{opacity:1;transform:scale(1)}#mobile-root #tab-indicator{z-index:1;opacity:0;height:calc(100% - 6px);transition:transform .3s var(--ease-out), opacity .3s ease, width .2s ease;border-radius:999px;position:absolute;top:3px;left:0}#mobile-root #home[data-section=projects] #tabbar.in #tab-indicator{opacity:1}#mobile-root #tabbar.dragging #tab-indicator{transition:none}#mobile-root .tab-btn{z-index:2;-webkit-appearance:none;appearance:none;cursor:pointer;width:50px;height:100%;color:var(--ui-grey);opacity:0;background:0 0;border:0;flex:0 0 50px;justify-content:center;align-items:center;padding:0;display:flex;position:relative;transform:translateY(-8px)scale(.82)}#mobile-root #tabbar.icons-in .tab-btn{animation:iconLand .42s var(--ease-out) forwards}@keyframes iconLand{0%{opacity:0;transform:translateY(-8px)scale(.82)}to{opacity:1;transform:translateY(0)scale(1)}}#mobile-root .tab-btn svg{fill:currentColor;width:21px;height:21px}#mobile-root .tab-btn.icon-naivaa svg,#mobile-root .tab-btn.icon-a-thousand-islands svg{width:28px;height:28px}#mobile-root .tab-btn.icon-profile svg{width:17px;height:17px}#mobile-root .tab-btn:focus-visible{outline:2px solid var(--ink);outline-offset:-2px;border-radius:999px}#mobile-root #profile-panel,#mobile-root #projects-panel{left:0;right:0;top:var(--panel-top);bottom:var(--panel-bottom);opacity:0;visibility:hidden;pointer-events:none;flex-direction:column;transition:opacity .34s,visibility 0s linear .34s;display:flex;position:absolute}#mobile-root #home[data-section=profile] #profile-panel,#mobile-root #home[data-section=projects] #projects-panel{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .34s,visibility linear}#mobile-root #home[data-section=projects] #profile-clock{opacity:0;pointer-events:none}#mobile-root #profile-clock{transition:opacity .55s ease, transform .6s var(--ease-out)}#mobile-root #profile-panel{min-height:0;padding:0 26px}#mobile-root #profile-stack{--pf-card:min(124px, calc(var(--panel-h) * .26), calc(var(--mvw) * 40));width:100%;height:calc(var(--pf-card) * 1.317);margin-top:clamp(12px, calc(var(--panel-h) * .042), 34px);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .62s var(--ease-out);flex:none;position:relative;transform:translateY(16px)}#mobile-root.arr-tiles #profile-stack{transform:translateY(0)}#mobile-root.arr-tiles .profile-photo{animation:.46s forwards tileArriveM}#mobile-root.arr-tiles .profile-photo:nth-child(3){animation-delay:0s}#mobile-root.arr-tiles .profile-photo:nth-child(2){animation-delay:90ms}#mobile-root.arr-tiles .profile-photo:first-child{animation-delay:.18s}@keyframes tileArriveM{0%{opacity:0}to{opacity:1}}#mobile-root .profile-photo{opacity:0;width:var(--pf-card);height:var(--pf-card);transition:transform .62s var(--ease-out), width .62s var(--ease-out), height .62s var(--ease-out);will-change:transform;background:#bdbdbd;border-radius:14%;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 10px 26px #0003}#mobile-root .profile-photo img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}#mobile-root #profile-stack.is-clustered .profile-photo:first-child{transform:translate(calc(var(--pf-card) * .288), calc(var(--pf-card) * .028)) rotate(7deg);z-index:1}#mobile-root #profile-stack.is-clustered .profile-photo:nth-child(2){transform:translate(calc(var(--pf-card) * .19), calc(var(--pf-card) * .141)) rotate(3.5deg);z-index:2}#mobile-root #profile-stack.is-clustered .profile-photo:nth-child(3){transform:translate(0, calc(var(--pf-card) * .288)) rotate(0deg);z-index:3}#mobile-root #profile-stack.is-expanded{height:calc(var(--pf-card) * 1.317)}#mobile-root #profile-stack.is-expanded .profile-photo{width:calc(var(--pf-card) * .7521);height:calc(var(--pf-card) * 1.09);border-radius:13%}#mobile-root #profile-stack.is-expanded .profile-photo:first-child{transform:translate(calc(var(--pf-card) * 1.6847), calc(var(--pf-card) * .19)) rotate(0deg);transition-delay:0s}#mobile-root #profile-stack.is-expanded .profile-photo:nth-child(2){transform:translate(calc(var(--pf-card) * .8424), calc(var(--pf-card) * .19)) rotate(0deg);transition-delay:40ms}#mobile-root #profile-stack.is-expanded .profile-photo:nth-child(3){transform:translate(0, calc(var(--pf-card) * .19)) rotate(0deg);transition-delay:.16s}#mobile-root #profile-stack.is-clustered .profile-photo:nth-child(3){transition-delay:0s}#mobile-root #profile-stack.is-clustered .profile-photo:nth-child(2){transition-delay:80ms}#mobile-root #profile-stack.is-clustered .profile-photo:first-child{transition-delay:.14s}#mobile-root .profile-photo-inner{width:116%;height:116%;transition:transform .42s var(--ease-out);margin:-8% 0 0 -8%}#mobile-root #profile-stack.is-clustered .profile-photo:first-child .profile-photo-inner{animation:6.4s ease-in-out infinite profileSwayA}#mobile-root #profile-stack.is-clustered .profile-photo:nth-child(2) .profile-photo-inner{animation:8.1s ease-in-out -2.7s infinite profileSwayB}#mobile-root #profile-stack.is-clustered .profile-photo:nth-child(3) .profile-photo-inner{animation:5.6s ease-in-out -3.9s infinite profileSwayC}@keyframes profileSwayA{0%,to{transform:translate(0)rotate(0)}34%{transform:translate(-5px,-8px)rotate(-1.9deg)}67%{transform:translate(3px,-3px)rotate(.8deg)}}@keyframes profileSwayB{0%,to{transform:translate(0)rotate(0)}40%{transform:translate(7px,-6px)rotate(1.7deg)}72%{transform:translate(-2px,3px)rotate(-.9deg)}}@keyframes profileSwayC{0%,to{transform:translate(0)rotate(0)}45%{transform:translate(-5px,6px)rotate(-1.5deg)}78%{transform:translate(4px,2px)rotate(.9deg)}}#mobile-root #profile-bio{margin:clamp(14px, calc(var(--panel-h) * .05), 29px) 0 0;font-size:clamp(.79rem, calc(var(--panel-h) * .032), .88rem);color:var(--ui-grey);white-space:pre-line;opacity:0;transform-origin:0;transition:opacity .6s ease, transform .76s var(--ease-out);font-weight:500;line-height:1.52;transform:scale(.984)}#mobile-root.arr-bio #profile-bio{opacity:1;transform:scale(1)}#mobile-root .profile-link{color:#fff;cursor:pointer;transition:color .2s}#mobile-root .profile-link:active{color:var(--ink)}#mobile-root .profile-link.copied{color:#1a9e46}#mobile-root #m-copied{z-index:500;letter-spacing:.2px;color:#2d2d2d;opacity:0;pointer-events:none;background:#cdcdcde0;border:1px solid #ffffff73;border-radius:999px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:500;transition:opacity .22s,transform .28s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;transform:translateY(6px)scale(.96);box-shadow:0 10px 24px #0000002e}#mobile-root #m-copied.visible{opacity:1;transform:translateY(0)scale(1)}#mobile-root #m-copied svg{fill:none;stroke:#555;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:13px;height:13px}#mobile-root #profile-clock{left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);text-align:center;color:var(--ink);pointer-events:none;opacity:0;font-size:.85rem;font-weight:500;position:absolute;transform:translateY(9px)}#mobile-root.arr-clock #profile-clock{opacity:1;transform:translateY(0)}#mobile-root #clock-place{color:#fff}#mobile-root #project-name{margin-top:0;margin-bottom:clamp(4px, calc(var(--panel-h) * .016), 10px);font-size:clamp(1.05rem, calc(var(--panel-h) * .046), 1.28rem);letter-spacing:.1px;color:var(--on-glass);text-align:center;opacity:0;min-height:1.4em;transition:opacity .28s ease, transform .28s var(--ease-soft);flex:none;font-weight:600}#mobile-root #project-name.swap{opacity:0;transform:translateY(-4px)}#mobile-root #carousel{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x;opacity:0;flex:auto;align-items:center;width:100%;min-height:0;transition:opacity .55s;display:flex;position:relative;overflow:auto hidden}#mobile-root #carousel.ready{opacity:1}#mobile-root #carousel::-webkit-scrollbar{display:none}#mobile-root #carousel.tweening{scroll-snap-type:none}#mobile-root #home:not([data-section=projects]) #carousel{-webkit-overflow-scrolling:auto;overflow:hidden}#mobile-root .slide{width:100%;height:100%;padding:0 var(--edge);scroll-snap-align:center;scroll-snap-stop:normal;flex:0 0 100%;justify-content:center;align-items:center;display:flex}#mobile-root .frame{justify-content:center;align-items:center;width:100%;height:86%;display:flex;position:relative}#mobile-root .frame img{object-fit:contain;border-radius:var(--r-lg);opacity:0;max-width:100%;max-height:100%;transition:opacity .4s;display:block}#mobile-root .frame img.in{opacity:1}#mobile-root .frame img.no-round{border-radius:0}#mobile-root #meta{width:100%;height:clamp(112px, calc(var(--panel-h) * .3), 148px);padding:clamp(10px, calc(var(--panel-h) * .028), 18px) var(--edge) 0;text-align:center;opacity:0;flex:none;transition:opacity .3s;overflow:hidden}#mobile-root #meta.ready{opacity:1}#mobile-root #collection,#mobile-root #description{transition:opacity .28s ease, transform .28s var(--ease-soft)}#mobile-root #collection.swap,#mobile-root #description.swap{opacity:0;transform:translateY(5px)}#mobile-root #collection{color:var(--ink);margin-bottom:7px;font-size:.86rem;font-weight:500}#mobile-root #position-dots{justify-content:center;gap:6px;height:8px;margin-bottom:9px;display:flex}#mobile-root .dot{background:#2d2d2d38;border-radius:50%;width:4px;height:4px;transition:background .25s,transform .25s}#mobile-root .dot.active{background:var(--ink);transform:scale(1.5)}#mobile-root #description{color:var(--ink-soft);max-width:32ch;margin:0 auto;font-size:.875rem;font-weight:400;line-height:1.5}#mobile-root #gallery{overflow:hidden}#mobile-root #gallery-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;z-index:1;position:absolute;inset:0;overflow:hidden auto}#mobile-root #gallery-scroll::-webkit-scrollbar{display:none}#mobile-root #gallery-scroll-spacer{width:1px}#mobile-root:not([data-page=gallery]) #gallery-scroll{-webkit-overflow-scrolling:auto;overflow:hidden}#mobile-root #gallery-viewport{perspective:850px;pointer-events:none;z-index:2;height:100%;position:sticky;top:0}#mobile-root .gallery-card{width:min(calc(var(--mvw) * 78), 420px, calc(var(--app-mh) * 1.15));opacity:0;transform-style:preserve-3d;pointer-events:auto;display:none;position:absolute;top:50%;left:50%}#mobile-root[data-page=gallery] .gallery-card{will-change:transform, opacity}#mobile-root .gallery-card-inner{opacity:1;transform:scale(1)}#mobile-root .gallery-card-inner.gallery-entrance-start{opacity:0;transition:none;transform:translateY(18px)scale(.94)}#mobile-root .gallery-card-inner.gallery-entrance-go{opacity:1;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .72s cubic-bezier(.16,1,.3,1);transform:translateY(0)scale(1)}#mobile-root .gallery-casing{aspect-ratio:16/9;border-radius:20px;width:100%;position:relative;overflow:hidden;box-shadow:0 6px 16px #00000029}#mobile-root .gallery-casing:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff24}#mobile-root .gallery-casing video{object-fit:contain;background:#050505;width:100%;height:100%;display:block}#mobile-root .gallery-cover{z-index:3;pointer-events:none;background:#0009;flex-direction:column;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:absolute;inset:0}#mobile-root .gallery-card-title{color:#fff;letter-spacing:.02em;font-weight:400;font-size:clamp(1.05rem, calc(var(--mvw) * 4.5), 1.5rem);text-align:center;text-shadow:0 2px 10px #0006;margin:0;padding:0 16px}#mobile-root .gallery-video-message{color:#ffffffd1;text-align:center;max-width:240px;margin:10px 0 0;padding:0 16px;font-size:.82rem;font-weight:500;line-height:1.4}#mobile-root .gallery-card.gallery-video-failed .gallery-cover{pointer-events:auto;cursor:pointer;opacity:1!important}#mobile-root .gallery-card.gallery-video-failed .gallery-play-wrap{opacity:.35;pointer-events:none}#mobile-root .gallery-controls{flex-direction:column;align-items:center;gap:16px;margin-top:20px;display:flex}#mobile-root .gallery-scrub{-webkit-appearance:none;appearance:none;cursor:pointer;--p:0%;background:0 0;width:100%;max-width:340px;height:24px;margin:0}#mobile-root .gallery-scrub::-webkit-slider-runnable-track{background:linear-gradient(to right, #fff var(--p), #ffffff42 var(--p));border-radius:2px;height:3px}#mobile-root .gallery-scrub::-moz-range-track{background:#ffffff42;border-radius:2px;height:3px}#mobile-root .gallery-scrub::-moz-range-progress{background:#fff;border-radius:2px;height:3px}#mobile-root .gallery-scrub::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border-radius:50%;width:13px;height:13px;margin-top:-5px;box-shadow:0 1px 4px #00000059}#mobile-root .gallery-scrub::-moz-range-thumb{background:#fff;border:none;border-radius:50%;width:13px;height:13px;box-shadow:0 1px 4px #00000059}#mobile-root .gallery-play-btn{width:50px;height:50px;transition:transform .15s;position:relative}#mobile-root .gallery-play-btn:active{transform:scale(.92)}#mobile-root .gallery-icon-play,#mobile-root .gallery-icon-pause{justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}#mobile-root .gallery-icon-play svg{width:26px;height:auto;margin-left:3px;display:block}#mobile-root .gallery-icon-pause svg{width:20px;height:auto;display:block}#mobile-root .gallery-icon-play svg path,#mobile-root .gallery-icon-pause svg path{fill:#fff}#mobile-root .gallery-play-btn.is-play .gallery-icon-pause,#mobile-root .gallery-play-btn.is-pause .gallery-icon-play{opacity:0}#mobile-root .gallery-prompt-text{text-align:center;color:#fff;z-index:5;opacity:0;pointer-events:none;font-size:1.125rem;font-weight:400;transition:opacity .6s;position:absolute;left:0;right:0}#mobile-root #gallery-welcome{top:calc(var(--header-h) + env(safe-area-inset-top,0px) + 22px)}#mobile-root #gallery-welcome:after{content:"|";margin-left:4px;animation:1s step-start infinite blink}#mobile-root #gallery-welcome.done:after{opacity:0;transition:opacity .4s}#mobile-root[data-orient=landscape]{--tabbar-h:clamp(30px, calc(var(--app-mh) * .101), 39px);--tab-gap-top:clamp(4px, calc(var(--app-mh) * .022), 10px);--tab-gap-bottom:clamp(4px, calc(var(--app-mh) * .026), 12px)}#mobile-root[data-orient=landscape] #projects-panel{grid-template:"car name"1fr"car meta"1fr/58% 42%;align-items:stretch;padding-bottom:6px;display:grid}#mobile-root[data-orient=landscape] #tabslot{height:var(--tabbar-h);margin-top:var(--tab-gap-top)}#mobile-root[data-orient=landscape] #carousel{grid-area:car;min-width:0;min-height:0}#mobile-root[data-orient=landscape] #project-name{text-align:left;grid-area:name;align-self:end;min-width:0;margin-top:0;margin-bottom:0;padding:0 18px}#mobile-root[data-orient=landscape] #meta{text-align:left;grid-area:meta;align-self:start;min-width:0;height:auto;padding:8px 18px 0}#mobile-root[data-orient=landscape] #position-dots{justify-content:flex-start}#mobile-root[data-orient=landscape] #description{margin:0}#mobile-root[data-orient=landscape] #profile-panel{align-items:center;gap:clamp(16px, calc(var(--mvw) * 3), 26px);padding:0 clamp(16px, calc(var(--mvw) * 4), 28px);flex-direction:row}#mobile-root[data-orient=landscape] #profile-stack{--pl-gap:clamp(6px, calc(var(--panel-h) * .03), 12px);--pl-card:min(106px, calc((var(--panel-h) - (var(--pl-gap) * 2) - 8px) / 3), calc(var(--mvw) * 26));width:var(--pl-card);height:calc(var(--pl-card) * 3 + var(--pl-gap) * 2);flex:none;margin-top:0}#mobile-root[data-orient=landscape] #profile-stack .profile-photo{width:var(--pl-card);height:var(--pl-card);border-radius:16%}#mobile-root[data-orient=landscape] #profile-stack.is-clustered .profile-photo:first-child{transform:translate(0, calc(var(--pl-card) * .06)) rotate(7deg)}#mobile-root[data-orient=landscape] #profile-stack.is-clustered .profile-photo:nth-child(2){transform:translate(0, calc(var(--pl-card) * .16)) rotate(3.5deg)}#mobile-root[data-orient=landscape] #profile-stack.is-clustered .profile-photo:nth-child(3){transform:translate(0, calc(var(--pl-card) * .3)) rotate(0deg)}#mobile-root[data-orient=landscape] #profile-stack.is-expanded{height:calc(var(--pl-card) * 3 + var(--pl-gap) * 2)}#mobile-root[data-orient=landscape] #profile-stack.is-expanded .profile-photo{width:var(--pl-card);height:var(--pl-card);border-radius:16%}#mobile-root[data-orient=landscape] #profile-stack.is-expanded .profile-photo:first-child{transform:translate(0, calc((var(--pl-card) + var(--pl-gap)) * 2)) rotate(0deg);transition-delay:0s}#mobile-root[data-orient=landscape] #profile-stack.is-expanded .profile-photo:nth-child(2){transform:translate(0, calc(var(--pl-card) + var(--pl-gap))) rotate(0deg);transition-delay:40ms}#mobile-root[data-orient=landscape] #profile-stack.is-expanded .profile-photo:nth-child(3){transition-delay:.16s;transform:translate(0)rotate(0)}#mobile-root[data-orient=landscape] #profile-bio{min-width:0;font-size:clamp(12.5px, calc(var(--app-mh) * .038), 14.5px);flex:auto;margin-top:0;line-height:1.5}#mobile-root[data-orient=landscape] #profile-clock{bottom:calc(env(safe-area-inset-bottom,0px) + clamp(6px, calc(var(--app-mh) * .036), 12px));font-size:.78rem}#mobile-root[data-orient=landscape] #gallery-welcome{display:none}#mobile-root[data-orient=landscape] .gallery-card{width:calc(min(calc(var(--mvw) * 78), 420px, calc(var(--app-mh) * 1.15)) * .87)}@media (min-width:480px){#mobile-root #profile-stack{--pf-card:min(153px, calc(var(--panel-h) * .26), calc(var(--mvw) * 40))}#mobile-root{--tabbar-h:clamp(39px, calc(var(--app-mh) * .06), 52px)}#mobile-root .gallery-card{width:min(calc(var(--mvw) * 78), 460px, calc(var(--app-mh) * 1.15))}#mobile-root #profile-bio{font-size:clamp(.79rem, calc(var(--panel-h) * .032), .98rem)}}@media (prefers-reduced-motion:reduce){#mobile-root #home.arrive #tabslot,#mobile-root #home.arrive #project-name,#mobile-root #home.arrive #carousel,#mobile-root #home.arrive #meta{animation:none}#mobile-root .profile-photo-inner{animation:none!important}#mobile-root #profile-stack,#mobile-root #profile-bio,#mobile-root #profile-clock{transition:none!important;transform:none!important}#mobile-root .profile-photo{opacity:1!important;animation:none!important}#mobile-root *{scroll-behavior:auto!important}}#copy-failure{z-index:10000;color:#fff;background:#3f3f3f;border-radius:24px;padding:12px 20px;font-size:14px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}#copy-failure[hidden]{display:none}@media (orientation:landscape) and (max-width:1100px),(orientation:landscape) and (max-height:720px){#homepage{touch-action:pan-y pinch-zoom;overflow-y:auto}#hp-inner{width:min(560px,75vw);padding-bottom:32px;top:100px;left:10vw}#hp-bio{font-size:15px}#hp-enter-btn{width:max-content;margin:32px auto 40px;display:flex;position:relative;bottom:auto;left:auto;transform:none}#hp-enter-btn:hover{transform:translateY(-1px)}#hp-inner{margin-top:100px;position:relative;top:0}#homepage:not(.arr-btns) #hp-enter-btn{transform:translateY(11px)}}@media (prefers-reduced-motion:reduce){.hp-photo-inner,#mobile-root .photo-inner,.pulse-gesture-pulse,.pulse-orbit-spin{animation:none!important}}#mobile-root .gallery-play-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}#mobile-root .profile-photo-inner{animation-duration:inherit}#mobile-root,#mobile-root #carousel,#mobile-root #gallery-scroll{touch-action:pan-x pan-y pinch-zoom}[role=button]:focus-visible{outline-offset:4px;outline:2px solid #595959}.dom-card:focus-visible{outline-offset:4px;outline:2px solid #595959}#mobile-root .gallery-play-btn:focus-visible{outline-offset:4px;outline:2px solid #595959}@media (prefers-reduced-motion:reduce){#mobile-root .profile-photo-inner{animation:none!important}}#mobile-root #home.project-switching #carousel,#mobile-root #home.project-switching #project-name,#mobile-root #home.project-switching #meta{transition:opacity var(--project-change-duration,.18s) cubic-bezier(.4, 0, .2, 1)}#mobile-root #home.project-switching #tab-indicator{transition:transform var(--project-change-duration,.18s) cubic-bezier(.4, 0, .2, 1), opacity .18s ease}#mobile-root #home.project-hiding #carousel,#mobile-root #home.project-hiding #project-name,#mobile-root #home.project-hiding #meta{opacity:0}#mobile-root #home.project-direct #carousel,#mobile-root #home.project-direct #project-name,#mobile-root #home.project-direct #meta{transition:none}#mobile-root #project-name.ready{opacity:1}#mobile-root #nav-mindmap-btn{flex:0 0 var(--tabbar-h);width:var(--tabbar-h);height:var(--tabbar-h);color:var(--ui-grey);cursor:pointer;opacity:0;transition:opacity .5s ease, transform .5s var(--ease-out);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;transform:scale(.92)}#mobile-root #nav-mindmap-btn.in{opacity:1;transform:scale(1)}#mobile-root #nav-mindmap-btn:active{transform:scale(.94)}#mobile-root #nav-mindmap-btn svg{width:24px;height:24px}#mobile-root #nav-mindmap-btn[aria-pressed=true]{color:var(--ink)}#mobile-root #nav-mindmap-btn:focus-visible{outline:2px solid var(--ui-grey);outline-offset:2px}@media (max-width:380px){#mobile-root .tab-btn{flex-basis:44px;width:44px}}#mobile-root #home[data-section=mindmap] #profile-clock{opacity:0;pointer-events:none}#mobile-root #mobile-mindmap-panel{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .34s,visibility 0s linear .34s;position:absolute;inset:0}#mobile-root #home[data-section=mindmap] #mobile-mindmap-panel{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .34s,visibility}#mobile-root #mobile-mindmap-stage{touch-action:none;outline:none;position:absolute;inset:0}#mobile-root #mobile-mindmap-stage:focus-visible{outline:1px solid var(--ui-grey);outline-offset:-8px}#mobile-root #mobile-mindmap-stage canvas{display:block}#mobile-root #mobile-mindmap-loading,#mobile-root #mobile-mindmap-error{text-align:center;color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;font-size:.8rem;display:flex;position:absolute;inset:0}#mobile-root #mobile-mindmap-loading{pointer-events:none;transition:opacity .5s}#mobile-root #mobile-mindmap-error{z-index:2}#mobile-root #mobile-mindmap-error[hidden],#mobile-root #mobile-mindmap-caption [hidden],#mobile-root #mobile-mindmap-lite[hidden]{display:none}#mobile-root #mobile-mindmap-error button{color:var(--ink);cursor:pointer;border-radius:24px;padding:10px 18px}#mobile-root #mobile-mindmap-caption{left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + clamp(32px, calc(var(--app-mh) * .085), 72px));min-height:56px;padding:0 var(--edge);text-align:center;pointer-events:none;position:absolute}#mobile-root #mobile-mindmap-caption p{opacity:0;transition:opacity .6s ease, transform .6s var(--ease-soft);margin:0;transform:translateY(4px)}#mobile-root #mobile-mindmap-caption p.shown{opacity:1;transform:translateY(0)}#mobile-root #mobile-mindmap-hint{color:var(--ink);font-size:.86rem;font-weight:500}#mobile-root #mobile-mindmap-intro{color:var(--ink-soft);font-size:.76rem;line-height:1.6;margin-top:18px!important}#mobile-root[data-orient=landscape] #mobile-mindmap-caption{padding:0 12px;bottom:42%;left:70%}@media (prefers-reduced-motion:reduce){#mobile-root #mobile-mindmap-caption p{transition:none;transform:none}}@media (min-width:560px){#mobile-root[data-orient=landscape] #home[data-section=mindmap] #tabslot{top:calc(env(safe-area-inset-top,0px) + 14px);margin-top:0;position:absolute}}#pulse-toggle .pulse-label.pulse-discover{transform-origin:50%;animation:2.8s ease-in-out .4s 4 pulseLabelRhythm;display:inline-block}@keyframes pulseLabelRhythm{0%,to{transform:scale(1)}50%{color:#fff;transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){#pulse-toggle .pulse-label.pulse-discover{animation:none}}#mobile-root #nav-mindmap-btn .mindmap-orbit-dots{transform-box:view-box;transform-origin:12px 12px}#mobile-root #nav-mindmap-btn.mindmap-discover .mindmap-orbit-dots{animation:3.2s cubic-bezier(.45,0,.3,1) .4s 3 mindMapIconOrbit}@keyframes mindMapIconOrbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){#mobile-root #nav-mindmap-btn.mindmap-discover .mindmap-orbit-dots{animation:none}}#mobile-root .mindmap-loading-track{background:#2d2d2d42;border-radius:2px;width:min(240px,68vw);height:3px;overflow:hidden}#mobile-root #mindmap-loading-fill{background:#fff;width:0;height:100%;display:block}#mobile-root #mindmap-loading-number{font-variant-numeric:tabular-nums;font-size:.875rem}#mobile-root #mindmap-loading-copy{color:var(--ink-soft);opacity:1;max-width:32ch;min-height:7.5em;margin:12px auto 0;font-size:.875rem;font-weight:400;line-height:1.5;transition:opacity .35s}#mobile-root #mindmap-loading-copy.changing{opacity:0}#mobile-root #gallery-swipe-hint{left:var(--edge);right:var(--edge);bottom:calc(env(safe-area-inset-bottom,0px) + 34px);z-index:5;text-align:center;color:var(--ink-soft);pointer-events:none;opacity:0;margin:0;font-size:.875rem;transition:opacity .5s;position:absolute}#mobile-root #gallery-swipe-hint[hidden]{display:none}#mobile-root #gallery-swipe-hint.shown{opacity:1;animation:3.2s ease-in-out .6s 3 gallerySwipeNudge}@keyframes gallerySwipeNudge{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}#mobile-root[data-orient=landscape] #gallery-swipe-hint{text-align:right;bottom:18px;left:auto;right:24px}#mobile-root[data-orient=landscape] #mindmap-loading-copy{max-width:55ch;min-height:4.5em}@media (prefers-reduced-motion:reduce){#mobile-root #gallery-swipe-hint.shown{animation:none}#mobile-root #mindmap-loading-copy{transition:none}}
