:root{--navy:#1d2440;--charcoal:#2b2b2b;--paper:#f9fcf4;--pink:#ff9bb4;--sans:Arial, "PingFang SC", "Microsoft YaHei", sans-serif;--copy-font:var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{background:var(--navy);scroll-behavior:auto;scrollbar-width:none;min-width:320px}html::-webkit-scrollbar{display:none}body{width:100%;color:var(--paper);background:var(--navy);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;overflow-x:clip}button,a{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--pink);outline-offset:4px}::selection{color:var(--navy);background:var(--pink)}.experience-shell{isolation:isolate;background:var(--navy);min-height:100svh;position:relative}.experience-content{position:relative}.experience-shell[data-loader-phase=checking] .experience-content,.experience-shell[data-loader-phase=loading] .experience-content,.experience-shell[data-loader-phase=transition] .experience-content{visibility:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-main{position:relative}.hero-panel{--hero-title-size:clamp(52px, 19.5vw, 590px);height:150svh;min-height:900px;color:var(--paper);background:var(--navy);position:relative;overflow:clip visible}.scene-layer{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.scene-host,.scene-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.scene-canvas{opacity:0;transition:opacity .2s}.scene-layer-ready .scene-canvas{opacity:1}.scene-layer-failed .scene-canvas{display:none}.hero-title{--title-rise:150%;z-index:0;width:100vw;color:var(--pink);font-family:Arial, var(--sans);font-size:var(--hero-title-size);letter-spacing:-.09em;text-align:center;white-space:nowrap;visibility:hidden;clip-path:inset(-.3em 0);transform-origin:top;margin:0;font-weight:750;line-height:.78;position:absolute;top:6svh;left:50%;transform:translate(-50%)scaleX(1)}.hero-title-text{transform:translateY(var(--title-rise));display:block}.hero-title-letter{clip-path:inset(-35% -.08em var(--letter-erase,-35%) -.08em);display:inline-block}.hero-title[data-reveal-active=true]{visibility:visible}.hero-title[data-reveal-complete=true]{clip-path:none}.portrait-fallback{z-index:2;object-fit:contain;object-position:center;filter:drop-shadow(0 0 1px #ffffffe6);opacity:0;transform-origin:top;width:auto;max-width:none;height:min(136.4svh,128.008vw);display:block;position:absolute;top:-2.4svh;left:50%;transform:translate(-50%)}@media (max-aspect-ratio:1065/1000){.portrait-fallback{top:calc(51svh - 45.094vw)}}.experience-shell[data-scene-state=fallback] .portrait-fallback{opacity:1}.experience-shell[data-scene-state=ready] .portrait-fallback{visibility:hidden}.hero-hotspot-layer{z-index:4;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-hotspot{color:var(--navy);cursor:pointer;pointer-events:none;touch-action:manipulation;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute}.hero-hotspot-label{isolation:isolate;min-width:112px;min-height:48px;color:var(--navy);letter-spacing:-.02em;white-space:nowrap;opacity:0;pointer-events:none;place-items:center;padding:12px 22px;font-size:15px;font-weight:650;line-height:1;transition:opacity .15s,transform .19s cubic-bezier(.23,1,.32,1);display:grid;position:relative;transform:translateY(4px)rotate(-3deg)scale(.96)}.hero-hotspot-label:before{content:"";z-index:-1;background:var(--paper);position:absolute;inset:0;-webkit-mask:url(/images/ui/hero-paper-label.svg) 50%/100% 100% no-repeat;mask:url(/images/ui/hero-paper-label.svg) 50%/100% 100% no-repeat}.hero-hotspot.is-hovered .hero-hotspot-label,.hero-hotspot.is-selected .hero-hotspot-label,.hero-hotspot:focus-visible .hero-hotspot-label{opacity:1;transform:translateY(0)rotate(-3deg)scale(1)}.hero-hotspot:focus-visible .hero-hotspot-label{transition:none}.hero-hotspot[data-interest-hotspot=coding] .hero-hotspot-label{transition:opacity .15s;transform:rotate(-3deg)}.hero-hotspot[hidden]{display:none!important}.site-header{--reveal-inset:100%;z-index:6;top:calc(6svh + var(--hero-title-size) * .94 + 16px);visibility:hidden;clip-path:inset(-8px var(--reveal-inset) -8px 0);justify-content:flex-end;align-items:center;gap:10px;display:flex;position:absolute;right:clamp(17px,3vw,44px)}.site-header-actions{--language-size:44px;align-items:center;gap:10px;display:flex}.compact-header-name{color:var(--pink);letter-spacing:-.07em;white-space:nowrap;visibility:hidden;padding-block:.12em;font-size:22px;font-weight:750;line-height:1.1;text-decoration:none;display:none;overflow:hidden}.compact-header-name[data-name-visible=true]{visibility:visible}.compact-header-name>span{transform:translateY(var(--compact-rise,120%));display:block}.site-header[data-compact=true]{z-index:100;top:max(35px, env(safe-area-inset-top));clip-path:none;visibility:visible;justify-content:space-between;position:fixed;left:clamp(35px,3.35vw,43px);right:clamp(35px,2.75vw,43px)}.site-header[data-compact=true] .compact-header-name{font-size:32px;display:inline-flex}.site-header[data-compact=true] .menu-button{width:46px;height:46px;color:var(--navy);background:var(--paper)}.site-header[data-compact=true] .contact-link{min-width:0;height:46px;padding-inline:20px;font-size:15px}.site-header[data-compact=true] .site-header-actions{--language-size:46px}.site-header[data-reveal-active=true]{visibility:visible}.site-header[data-reveal-complete=true]{clip-path:none}.menu-button,.menu-close{width:56px;height:56px;color:var(--navy);background:var(--paper);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:color .18s,background .18s,border-color .18s;display:inline-flex}.menu-button{width:44px;height:44px}.menu-button:hover,.menu-close:hover{color:var(--navy);border-color:var(--paper);background:var(--paper)}.menu-glyph{flex-direction:column;justify-content:center;gap:5px;width:20px;height:9px;display:flex}.menu-glyph i{background:currentColor;width:20px;height:2px;transition:transform .18s;display:block}.site-header .menu-glyph,.site-header .menu-glyph i{width:18px}.menu-glyph-open i:first-child{transform:translateY(3.5px)rotate(45deg)}.menu-glyph-open i:last-child{transform:translateY(-3.5px)rotate(-45deg)}.contact-link{min-width:172px;height:48px;color:var(--navy);background:var(--paper);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:0 32px;font-size:16px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.home-contact-icons{z-index:5;right:clamp(18px,3vw,42px);bottom:calc(50svh + max(24px, calc(env(safe-area-inset-bottom) + 18px)));color:var(--paper);pointer-events:none;opacity:0;visibility:hidden;align-items:center;gap:9px;transition:opacity .24s,transform .24s,visibility 0s linear .24s;display:flex;position:absolute;transform:translateY(12px)scale(.96)}.home-contact-icons[data-visible=true]{pointer-events:auto;opacity:1;visibility:visible;transition-delay:0s;transform:translate(0,0)scale(1)}.home-contact-icons button{background:0 0;border:1px solid #f9fcf4bd;border-radius:50%;place-items:center;width:42px;height:42px;padding:0;display:grid}.home-contact-icons svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:20px;height:20px;display:block}.background-block{min-height:100svh}.background-paper{background:var(--paper)}.background-charcoal{background:var(--charcoal)}.hero-after-intro{z-index:7;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .36s,visibility 0s linear .36s;position:absolute;inset:0}.hero-after-intro[data-visible=true]{visibility:visible;opacity:1;transition:none}.hero-after-intro a{pointer-events:auto}.hero-interest-carousel{display:none}[data-copy-state=pending]:not([data-statement-line]){opacity:0;clip-path:inset(100% 0 0)}[data-copy-state=playing]:not([data-statement-line]){animation:copy-block-rise .78s cubic-bezier(.22, 1, .36, 1) var(--copy-delay,0s) both}@keyframes copy-block-rise{0%{opacity:1;clip-path:inset(100% 0 0);transform:translateX(var(--lower-base-x,0%)) translateY(48px)}to{opacity:1;clip-path:inset(0% 0 0);transform:translateX(var(--lower-base-x,0%)) translateY(0)}}@media (prefers-reduced-motion:reduce){[data-copy-state]{opacity:1!important;clip-path:none!important;animation:none!important}}.loading-screen{z-index:1000;padding:max(22px, env(safe-area-inset-top)) clamp(17px, 3vw, 44px);color:var(--paper);background:var(--navy);opacity:1;justify-content:flex-start;align-items:flex-start;transition:opacity .12s;display:flex;position:fixed;inset:0}.loading-screen[data-state=transition]{opacity:0;pointer-events:none}.loading-number{min-width:2ch;color:var(--pink);font-variant-numeric:tabular-nums;font-size:clamp(64px,8vw,112px);font-weight:800;line-height:1}.menu-overlay{z-index:900;padding:max(28px, env(safe-area-inset-top)) clamp(22px, 9vw, 136px) max(28px, env(safe-area-inset-bottom));color:var(--paper);background:var(--charcoal);opacity:0;visibility:hidden;clip-path:inset(0 0 100%);flex-direction:column;justify-content:center;transition:clip-path .36s cubic-bezier(.72,0,.24,1),opacity .18s,visibility .36s;display:flex;position:fixed;inset:0;overflow-y:auto}.menu-overlay-open{opacity:1;visibility:visible;clip-path:inset(0)}.menu-topline{top:max(20px, env(safe-area-inset-top));color:#f9fcf4b3;justify-content:space-between;align-items:center;font-size:14px;display:flex;position:absolute;left:clamp(22px,4vw,58px);right:clamp(22px,4vw,58px)}.menu-close{border-radius:999px;gap:10px;width:auto;min-width:95px;padding:0 14px}.menu-home{border:0;width:min(100%,900px);min-height:clamp(90px,16vh,144px);color:var(--paper);cursor:pointer;letter-spacing:-.075em;text-align:left;background:0 0;border-block:1px solid #f9fcf440;margin:56px auto 0;padding:0 clamp(15px,3vw,40px);font-size:clamp(42px,8vw,96px);font-weight:650;line-height:.95}.menu-home:hover{color:var(--pink)}@media (max-width:1000px){.site-header{gap:8px}}@media (max-width:700px){.hero-hotspot-label{min-width:88px;min-height:40px;padding:10px 18px;font-size:13px}.hero-panel{height:100svh;min-height:100svh}.hero-title{letter-spacing:-.09em;text-align:left;transform-origin:0 0;width:calc(100vw - 40px);font-size:clamp(50px,16.75vw,66px);top:20px;left:20px;transform:scaleX(.9)}.site-header{gap:8px;top:87px;left:20px;right:20px}.site-header-actions{--language-size:40px;gap:6px}.site-header[data-compact=true]{top:max(35px, env(safe-area-inset-top));left:16px;right:16px}.site-header[data-compact=true] .compact-header-name{font-size:22px}.site-header[data-compact=true] .site-header-actions{--language-size:36px}.site-header[data-compact=true] .menu-button{width:36px;height:36px}.site-header[data-compact=true] .contact-link{height:36px;padding-inline:11px;font-size:12px}.menu-button{width:40px;height:40px}.contact-link{min-width:144px;height:44px;padding-inline:24px;font-size:13px}.home-contact-icons{right:14px;bottom:calc(50svh + max(20px, calc(env(safe-area-inset-bottom) + 14px)));gap:6px}.home-contact-icons button{width:34px;height:34px}.home-contact-icons svg{width:16px;height:16px}.menu-overlay{padding-left:21px;padding-right:21px}.home-contact-icons{display:none}.hero-interest-carousel{z-index:8;pointer-events:none;display:block;position:absolute;inset:0}.hero-carousel-arrow{width:55px;height:76px;color:var(--paper);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;pointer-events:auto;touch-action:manipulation;background:#f9fcf41c;border:1px solid #f9fcf426;place-items:center;padding:0;display:grid;position:absolute;top:calc(50svh - 38px)}.hero-carousel-arrow-prev{border-radius:0 999px 999px 0;left:0}.hero-carousel-arrow-next{border-radius:999px 0 0 999px;right:0}.hero-carousel-arrow span{z-index:1;margin-top:-5px;font-size:40px;font-weight:300;line-height:1;display:block;position:relative}.hero-carousel-ring{pointer-events:none;width:39px;height:39px;position:absolute;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)rotate(-90deg)}.hero-carousel-ring circle{fill:none;stroke-width:1.5px}.hero-carousel-ring-track{stroke:#f9fcf47a}.hero-carousel-ring-progress{stroke:var(--pink);stroke-dasharray:108.385;stroke-dashoffset:108.385px}.hero-carousel-ring-progress[data-running=true]{animation:5.5s linear forwards hero-carousel-ring-progress}.hero-carousel-track{pointer-events:none;width:min(270px,100vw - 80px);height:76px;position:absolute;top:calc(50svh + 83px);left:50%;transform:translate(-50%)}.hero-carousel-label{color:var(--navy);background:var(--paper);white-space:nowrap;opacity:.5;transform:translateX(calc(-50% + var(--carousel-x,0px))) rotate(var(--carousel-angle,-6deg));border-radius:0;padding:17px 23px;font-size:22px;font-weight:720;line-height:1;transition:transform .6s cubic-bezier(.215,.61,.355,1),opacity .6s cubic-bezier(.215,.61,.355,1);display:block;position:absolute;top:0;left:50%;box-shadow:0 9px 22px #04081438;-webkit-mask-image:url(/textures/torn-paper-fibers.png);mask-image:url(/textures/torn-paper-fibers.png);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-source-type:alpha;mask-mode:alpha}.hero-carousel-label[data-active=true]{opacity:1}}@keyframes hero-carousel-ring-progress{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.experience-shell[data-reduced-motion=true] *,.experience-shell[data-reduced-motion=true] :before,.experience-shell[data-reduced-motion=true] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
