@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-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-outline-style:solid;--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;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", Menlo, Consolas, monospace;--spacing:.25rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--default-mono-font-family:"SF Mono", "Fira Code", "Fira Mono", Menlo, Consolas, monospace}}@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}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);color:var(--foreground);overflow:hidden}html{background-color:var(--background);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.visible\!{visibility:visible!important}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.static\!{position:static!important}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.right-0{right:0}.left-0{left:0}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-400{z-index:400}.z-\[100\]{z-index:100}.z-\[110\]{z-index:110}.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}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.hidden\!{display:none!important}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-full{height:100%}.h-screen{height:100vh}.w-0{width:0}.w-24{width:calc(var(--spacing) * 24)}.w-full{width:100%}.w-screen{width:100vw}.flex-1{flex:1}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.touch-none{touch-action:none}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.bg-background{background-color:var(--background)}.font-sans{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.whitespace-nowrap{white-space:nowrap}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.invert{--tw-invert:invert(100%);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,)}.filter{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,)}.filter\!{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,)!important}.backdrop-filter{-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{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;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-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.select-none{-webkit-user-select:none;user-select:none}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f6f6f6;--foreground:#050505;--card:#fff;--card-foreground:#050505;--popover:#fff;--popover-foreground:#050505;--primary:#050505;--primary-foreground:#fff;--secondary:#f4f4f4;--secondary-foreground:#050505;--muted:#eee;--muted-foreground:#666;--accent:#2a2a2a;--accent-foreground:#fff;--destructive:#4a4a4a;--border:#d8d8d8;--input:#fff;--ring:#444;--radius:.5rem;--chart-1:#f0f0f0;--chart-2:#999;--chart-3:#666;--chart-4:#333;--chart-5:#1a1a1a;--sidebar:#fff;--sidebar-foreground:#050505;--sidebar-primary:#050505;--sidebar-primary-foreground:#fff;--sidebar-accent:#eee;--sidebar-accent-foreground:#050505;--sidebar-border:#ddd;--sidebar-ring:#444;--piano-white-key:#f5f5f5;--piano-white-key-active:#ccc;--piano-white-key-border:#2a2a2a;--piano-black-key:#111;--piano-black-key-active:#333;--piano-glow:#ffffff14}@keyframes keyPress{0%{transform:scaleY(1)}40%{transform:scaleY(.97)}to{transform:scaleY(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.liquid-swap{isolation:isolate;position:absolute;inset:0;overflow:hidden}.liquid-swap__content{z-index:1;will-change:clip-path;position:absolute;inset:0}.liquid-swap__canvas{z-index:2;opacity:1;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.liquid-swap[data-complete=true] .liquid-swap__content{will-change:auto}.liquid-swap[data-complete=true] .liquid-swap__canvas{opacity:0}.liquid-swap[data-direction=reverse] .liquid-swap__content{pointer-events:none}@media (prefers-reduced-motion:reduce){.liquid-swap__content{will-change:auto;clip-path:none!important}.liquid-swap__canvas{display:none}}.fade-in-up{animation:.45s cubic-bezier(.16,1,.3,1) forwards fadeInUp}.name-gradient{color:#fff;text-shadow:0 0 28px #ffffff0f}.portfolio-piano-shell{width:340px;min-width:340px}.portfolio-piano-mobile{display:none}.piano-keyboard{background:0 0}.piano-key{appearance:none;isolation:isolate;transform-origin:100%;transform-style:preserve-3d;-webkit-tap-highlight-color:transparent;justify-content:flex-start;align-items:center;transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .16s cubic-bezier(.16,1,.3,1),background .16s ease-out;display:flex;overflow:hidden;transform:perspective(900px)rotateY(0)translate(0)}.piano-key--interactive{cursor:pointer}.piano-key--decorative{cursor:default}.piano-penguin-icon{z-index:4;aspect-ratio:192/208;pointer-events:none;transform-origin:50% 100%;width:clamp(42px,3.7vw,54px);position:absolute;top:50%;bottom:auto;right:0;transform:translateY(-50%)}.piano-penguin-icon__image{filter:drop-shadow(0 5px 5px #181c1f38);background:url(/assets/penguins/saxphone/thumbnail.webp) bottom/contain no-repeat;transition:transform .22s cubic-bezier(.16,1,.3,1),filter .22s ease-out;position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.piano-key--penguin-icon .piano-penguin-icon__image{animation:4.8s cubic-bezier(.45,0,.55,1) infinite pianoPenguinIdle}}@keyframes pianoPenguinIdle{0%,74%,to{transform:translateY(0)rotate(0)}82%{transform:translateY(-3px)rotate(-1.2deg)}90%{transform:translateY(-1px)rotate(1deg)}}.piano-key__label{z-index:3;white-space:nowrap;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-weight:760;transition:color .15s ease-out,opacity .15s ease-out;position:relative}.piano-key--white .piano-key__label{color:#15181bc7;padding-left:10px;font-size:13px}.piano-key--black .piano-key__label{color:#f6f8fad1;padding-left:8px;font-size:12px}.piano-language-legend{z-index:3;color:#f6f8fa61;font-family:var(--font-mono);letter-spacing:.08em;align-items:center;gap:7px;padding-left:12px;font-size:11px;font-weight:650;line-height:1;transition:color .15s ease-out;display:inline-flex;position:relative}.piano-language-legend>span:not(.piano-language-divider){opacity:.5;transition:color .15s ease-out,opacity .15s ease-out}.piano-language-legend>span[data-current=true]{color:#fffffff5;opacity:1;font-weight:820}.piano-language-divider{background:#fff3;width:1px;height:10px}.piano-key--white{-webkit-backdrop-filter:blur(4px)saturate(.78);background:linear-gradient(96deg,#f7f9fac7 0%,#ffffffe0 42%,#e1e5e8a8 100%);border:1px solid #3e454b33;border-top-color:#ffffffbd;border-radius:7px 2px 2px 7px;box-shadow:inset 0 1px #ffffffeb,inset -12px 0 20px #434c5412,0 1px #31383e4d,0 2px 3px #1d232826,2px 3px 7px #21272c29}.piano-key--black{background:linear-gradient(96deg,#212427fa 0%,#0f1113fc 46%,#050607 100%);border:1px solid #fff1;border-radius:8px 2px 2px 8px;box-shadow:inset 0 1px #ffffff21,inset 0 -7px 12px #00000047,2px 5px 9px #0000007a}.piano-key__sheen,.piano-key__lip{z-index:1;pointer-events:none;position:absolute}.piano-key__sheen{border-radius:inherit;opacity:.58;background:linear-gradient(108deg,#0000 18%,#ffffff9e 36%,#0000 54%) 88% 0/220% 100%;transition:background-position .16s cubic-bezier(.16,1,.3,1),opacity .16s ease-out;inset:1px}.piano-key--black .piano-key__sheen{opacity:.2;background-image:linear-gradient(108deg,#0000 26%,#ffffff5c 42%,#0000 56%)}.piano-key__lip{inset-block:2px;background:linear-gradient(90deg,#ffffffb8,#61697024);border-radius:6px 0 0 6px;width:5px;left:0;box-shadow:1px 0 #ffffff57}.piano-key--black .piano-key__lip{background:linear-gradient(90deg,#60676d7a 0%,#181b1ef0 46%,#05060700 100%);border-radius:7px 0 0 7px;width:12px;box-shadow:inset 1px 0 #ffffff14,1px 0 #ffffff0a}.piano-key--interactive:is(:hover,:focus-visible){transform:perspective(900px)rotateY(-2.8deg)translate(2px)}.piano-key--white.piano-key--interactive:is(:hover,:focus-visible){box-shadow:inset 0 1px #fffffff5,inset -14px 0 22px #3e48501a,1px 1px #363d434d,2px 2px 5px #1c222738}.piano-key--black.piano-key--interactive:is(:hover,:focus-visible){box-shadow:inset 0 1px #ffffff2e,inset 0 -5px 10px #00000057,2px 3px 6px #00000094}.piano-key--interactive:is(:hover,:focus-visible) .piano-key__sheen{opacity:.76;background-position:58% 0}.piano-key--interactive:is(:hover,:focus-visible) .piano-key__label{color:#0c0f12f5}.piano-key--black.piano-key--interactive:is(:hover,:focus-visible) .piano-key__label{color:#fffffff5}.piano-key--language:is(:hover,:focus-visible) .piano-language-legend>span:not(.piano-language-divider){opacity:.76}.piano-key--language:is(:hover,:focus-visible) .piano-language-legend>span[data-current=true]{opacity:1}.piano-key--interactive:focus-visible{outline-offset:-3px;outline:2px solid #22282dc2}.piano-key[data-active=true]{transform:perspective(900px)rotateY(-3.5deg)translate(3px);box-shadow:inset 0 1px #ffffffd1,inset -16px 0 24px #2d353c21,1px 1px #232a3057,2px 2px 4px #14191d3d}.piano-key--black[data-active=true]{box-shadow:inset 0 1px #ffffff2e,inset 0 -4px 9px #00000061,2px 2px 5px #0000009e}.piano-key[data-pressed=true]{transition-duration:90ms;transform:perspective(900px)rotateY(-5deg)translate(4px)}.piano-key[data-pressed=true] .piano-key__sheen{opacity:.34}@media (prefers-reduced-motion:reduce){.piano-key,.piano-key__sheen,.piano-key__label{transition-duration:.01ms!important}.piano-key--interactive:is(:hover,:focus-visible),.piano-key[data-pressed=true],.piano-key[data-active=true]{transform:none}.piano-key--interactive:is(:hover,:focus-visible) .piano-key__sheen{background-position:88% 0}}.hero-poster{--poster-ease:cubic-bezier(.16, 1, .3, 1)}.hero-poster-stage{z-index:10;position:absolute;inset:0;overflow:hidden}.hero-mini-meta{z-index:18;text-align:right;letter-spacing:0;transition:opacity .9s var(--poster-ease) .52s, transform .9s var(--poster-ease) .52s;gap:3px;font-size:clamp(9px,.68vw,11px);line-height:1.25;display:grid;position:absolute;top:clamp(28px,5vw,54px);right:clamp(48px,9vw,132px)}.hero-letter-field{pointer-events:none;position:absolute;inset:clamp(18px,4vw,54px) clamp(26px,5vw,78px)}.hero-letter-field .text-scatter__anchor{font-family:var(--font-rounded-display), ui-rounded, "SF Pro Rounded", sans-serif;letter-spacing:0;text-rendering:geometricprecision;transform-origin:50%;font-size:clamp(78px,11.7vw,190px);font-weight:900;line-height:.78;display:block}.hero-letter-field .text-scatter__character{pointer-events:auto;cursor:default;transform-origin:50%}.hero-ascii-portrait{z-index:12;aspect-ratio:2/3;pointer-events:none;width:clamp(320px,29vw,440px);position:absolute;top:auto;bottom:clamp(-64px,-3.75vw,-40px);left:51%;transform:translate(-50%)}.hero-ascii-portrait *{pointer-events:none!important}.role-decrypt{appearance:none;color:inherit;font:inherit;line-height:inherit;text-align:inherit;background:0 0;border:0;margin:0;padding:10px 4px}.decrypted-text,.decrypted-text__visual{white-space:nowrap;justify-content:flex-end;align-items:baseline;display:inline-flex}.decrypted-text__glyph{text-align:center;flex:none;transition:color 90ms,opacity 90ms,text-shadow 90ms;display:inline-block}.decrypted-text__revealed{color:currentColor;opacity:1}.decrypted-text__encrypted{color:#393d4075;opacity:.78;text-shadow:0 0 8px #181a1c29}@media (max-width:900px){.hero-letter-field .text-scatter__anchor{font-size:clamp(58px,15vw,116px)}.hero-ascii-portrait{width:clamp(230px,45vw,320px);bottom:clamp(-48px,-6.5vw,-30px);left:54%}}@keyframes screenPulse{0%{transform:scale(1)}40%{transform:scale(.997)}to{transform:scale(1)}}.screen-pulse{animation:.2s ease-out screenPulse}@media (pointer:fine){html[data-custom-cursor=laura],html[data-custom-cursor=laura] *{cursor:none!important}}.panel-layout{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);align-items:center;gap:clamp(28px,5vw,72px);min-height:min(620px,100vh - 210px);display:grid}.placeholder-frame{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid;flex-direction:column;justify-content:space-between;gap:16px;min-height:112px;padding:14px;display:flex;overflow:hidden}@keyframes softFloat{0%,to{transform:translate3d(0, 0, 0) rotate(var(--r,0deg))}50%{transform:translate3d(0, -10px, 0) rotate(calc(var(--r,0deg) + 1.5deg))}}@keyframes softSlideIn{0%{opacity:0;transform:translate(18px,18px)scale(.98)}to{opacity:1;transform:translate(0)scale(1)}}.profile-scene{min-height:520px;position:relative}.profile-tag{border:1px solid;max-width:270px;padding:12px 14px;font-size:13px;line-height:1.65;animation:.68s cubic-bezier(.16,1,.3,1) both softSlideIn;position:absolute}.education-stage{border:1px solid;padding:clamp(18px,4vw,34px);animation:.72s cubic-bezier(.16,1,.3,1) both softSlideIn;position:relative}.school-line-art{opacity:.92;width:100%;height:auto;display:block}.education-caption{border-top:1px solid;flex-wrap:wrap;gap:10px;padding-top:16px;font-size:13px;line-height:1.5;display:flex}.film-strip{border-block:18px solid;grid-auto-columns:minmax(160px,210px);grid-auto-flow:column;gap:18px;width:min(860px,100%);padding:18px;animation:9s ease-in-out infinite filmDrift;display:grid;overflow:visible;transform:rotate(-2deg)}.film-frame{border:1px solid;min-height:260px;padding:10px}.hobby-stage{min-height:480px;position:relative}.hobby-sticker{left:var(--x);top:var(--y);text-align:center;min-width:112px;transform:rotate(var(--r));border:1px solid;padding:16px 22px;font-size:18px;font-weight:700;animation:4.5s ease-in-out infinite softFloat;position:absolute}@media (max-width:980px){.panel-layout{grid-template-columns:1fr;align-items:start}}@media (max-width:640px){.profile-tag{max-width:none;margin:10px 0;position:relative;inset:auto}}.minimal-panel{-webkit-user-select:none;user-select:none;transform-origin:var(--origin-x) var(--origin-y);--ink:#0a0a0a;--paper:var(--piano-white-key);--soft:#e4e4e4;--mid:#b8b8b8;--deep:#111;--line:#00000026;--shadow:#0000003d;--panel-wash:#00000009;background:radial-gradient(circle at 18% 18%, var(--panel-wash), transparent 36%), var(--paper);color:var(--ink);outline:none;position:absolute;inset:0;overflow:hidden}.hero-poster{-webkit-user-select:none;user-select:none}.hero-poster img,.minimal-panel img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.minimal-panel :is(input,textarea,[contenteditable=true]){-webkit-user-select:text;user-select:text}.minimal-panel-black{--ink:#f6f6f6;--paper:var(--piano-black-key);--soft:#171717;--mid:#3a3a3a;--deep:#ededed;--line:#ffffff21;--shadow:#000000b3;--panel-wash:#ffffff0b;background:radial-gradient(circle at 26% 16%, var(--panel-wash), transparent 34%), var(--paper);color:var(--ink)}.minimal-panel-black.section-techstack{background:var(--paper)}.minimal-panel-white:is(.section-profile,.section-education,.section-projects){--piano-white-key:#fff;--paper:var(--piano-white-key);background:var(--piano-white-key)}.minimal-close{z-index:30;position:absolute;top:clamp(22px,4vw,48px);right:clamp(22px,4vw,56px)}.minimal-scene{place-items:center;display:grid;position:absolute;inset:clamp(54px,7vw,86px)}@keyframes sceneSettle{0%{opacity:0;transform:translateY(34px)scale(.985)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes slowBreath{0%,to{transform:translate3d(0, 0, 0) rotate(var(--r,0deg))}50%{transform:translate3d(0, -10px, 0) rotate(calc(var(--r,0deg) + .8deg))}}.page-corner{background:linear-gradient(135deg, transparent 50%, var(--mid) 51%);width:54px;height:54px;position:absolute;top:0;right:0}@supports (color:color-mix(in lab, red, red)){.page-corner{background:linear-gradient(135deg, transparent 50%, color-mix(in srgb, var(--mid) 34%, var(--paper)) 51%)}}.page-corner{opacity:0;transform-origin:100% 0;transition:opacity .24s,transform .36s cubic-bezier(.16,1,.3,1)}.education-scene-v3{justify-content:center;align-items:center;gap:clamp(32px,6vw,80px);padding:6%;display:flex}.edu-cards-v3{flex-direction:column;gap:0;display:flex}.edu-card-v3{animation:.7s cubic-bezier(.16,1,.3,1) both techCardIn;animation-delay:var(--edu-delay);align-items:flex-start;gap:24px;display:flex}.edu-timeline-v3{flex-direction:column;align-items:center;gap:0;padding-top:8px;display:flex}.edu-dot-v3{background:var(--deep);width:14px;height:14px;box-shadow:0 0 0 4px var(--deep);border-radius:999px;flex-shrink:0}@supports (color:color-mix(in lab, red, red)){.edu-dot-v3{box-shadow:0 0 0 4px color-mix(in srgb, var(--deep) 18%, transparent)}}.edu-line-v3{background:linear-gradient(to bottom, var(--line), transparent);width:2px;height:80px}.edu-content-v3{flex-direction:column;gap:10px;display:flex}.edu-period-v3{letter-spacing:.08em;color:var(--mid);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500}.edu-school-v3{color:var(--ink);font-size:clamp(22px,2.8vw,36px);font-weight:800;line-height:1.15}.edu-major-v3{color:var(--ink);font-size:15px;font-weight:500}@supports (color:color-mix(in lab, red, red)){.edu-major-v3{color:color-mix(in srgb, var(--ink) 60%, transparent)}}.edu-major-v3{letter-spacing:.02em}.edu-icon-v3{flex-shrink:0;width:clamp(60px,6vw,100px);animation:.9s cubic-bezier(.16,1,.3,1) .2s both sceneSettle}.edu-icon-v3 img{object-fit:contain;filter:grayscale()contrast(1.08);opacity:.6;width:100%;height:auto}.minimal-scene.profile-scene-v3{isolation:isolate;padding:0;display:block;inset:0}.profile-content-v3{z-index:1;justify-content:center;align-items:center;gap:clamp(24px,4vw,60px);width:100%;height:100%;padding:6%;display:flex;position:relative}.profile-cutout-v3{flex-shrink:0;width:clamp(230px,21vw,350px);height:auto;max-height:70vh;animation:.9s cubic-bezier(.16,1,.3,1) both sceneSettle;position:relative}.profile-cutout-v3 img{object-fit:contain;filter:contrast(1.06)drop-shadow(0 26px 42px #0000002e);width:100%;height:auto;max-height:70vh}.profile-info-v3{flex-direction:column;gap:20px;animation:.9s cubic-bezier(.16,1,.3,1) .12s both sceneSettle;display:flex}.profile-name-v3{letter-spacing:-.02em;color:var(--ink);flex-direction:column;gap:2px;font-size:clamp(36px,4.2vw,64px);font-weight:950;line-height:.96;display:flex}.profile-tags-v3{flex-wrap:wrap;gap:8px;max-width:320px;display:flex}.profile-tag-v3{border:1px solid var(--line);background:var(--paper);padding:6px 14px;display:inline-block}@supports (color:color-mix(in lab, red, red)){.profile-tag-v3{background:color-mix(in srgb, var(--paper) 90%, var(--soft))}}.profile-tag-v3{letter-spacing:.06em;color:var(--ink);font-size:13px;font-weight:600;animation:.5s cubic-bezier(.16,1,.3,1) both profileTagIn}.profile-tag-v3:first-child{animation-delay:.2s}.profile-tag-v3:nth-child(2){animation-delay:.26s}.profile-tag-v3:nth-child(3){animation-delay:.32s}.profile-tag-v3:nth-child(4){animation-delay:.38s}.profile-tag-v3:nth-child(5){animation-delay:.44s}.profile-tag-v3:nth-child(6){animation-delay:.5s}.profile-tag-v3:nth-child(7){animation-delay:.56s}.profile-tag-v3:nth-child(8){animation-delay:.62s}@keyframes profileTagIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:760px){.profile-content-v3{flex-direction:column;gap:16px;padding:64px 24px 28px}.profile-cutout-v3{width:min(220px,58vw);max-height:48vh}.profile-cutout-v3 img{max-height:48vh}.profile-info-v3{text-align:center;align-items:center;gap:14px}.profile-name-v3{font-size:clamp(32px,11vw,46px)}.profile-tags-v3{justify-content:center;max-width:min(360px,88vw)}}.tech-scene-v3{scrollbar-width:none;place-items:center;padding:clamp(68px,7vw,94px) clamp(24px,5vw,72px) clamp(32px,5vw,64px);display:grid;overflow:visible}.tech-scene-v3::-webkit-scrollbar{display:none}.sid-tech-grid{--sid-tech-grid-glow:190, 190, 190;isolation:isolate;width:min(100%,1020px);animation:.9s cubic-bezier(.16,1,.3,1) both sceneSettle;position:relative}.sid-tech-grid-layout{z-index:1;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(8px,1vw,13px);width:100%;display:grid;position:relative}.sid-tech-grid-card{--glow-x:50%;--glow-y:50%;--glow-intensity:0;--glow-radius:400px;color:#f5f5f3;min-height:clamp(172px,20vh,218px);transform-style:preserve-3d;background:linear-gradient(145deg,#fff1,#0000 52%),#0c0d0e;border:1px solid #ffffff21;border-radius:clamp(13px,1.4vw,19px);flex-direction:column;grid-column:span 4;justify-content:space-between;padding:clamp(18px,2.25vw,28px);transition:border-color .22s,background-color .22s,box-shadow .22s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff14,0 12px 34px #0003}.sid-tech-grid-card:first-child,.sid-tech-grid-card:nth-child(5){grid-column:span 5}.sid-tech-grid-card:nth-child(2),.sid-tech-grid-card:nth-child(6){grid-column:span 3}.sid-tech-grid-card--glow:after{content:"";z-index:3;border-radius:inherit;background:radial-gradient(var(--glow-radius) circle at var(--glow-x) var(--glow-y), rgba(var(--sid-tech-grid-glow), calc(var(--glow-intensity) * .9)) 0%, rgba(var(--sid-tech-grid-glow), calc(var(--glow-intensity) * .35)) 34%, transparent 64%);pointer-events:none;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;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}.sid-tech-grid-card:hover{box-shadow:inset 0 1px 0 #ffffff1f, 0 18px 46px #00000047, 0 0 30px rgba(var(--sid-tech-grid-glow), .055);background-color:#101112;border-color:#ffffff3d}.sid-tech-grid-card-header{z-index:2;justify-content:space-between;align-items:flex-start;gap:18px;display:flex;position:relative}.sid-tech-grid-card-header h3{letter-spacing:-.025em;text-align:right;margin:0;font-size:clamp(17px,1.45vw,23px);font-weight:520;line-height:1.15}.sid-tech-grid-card-index{color:#ffffff57;font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.12em;font-size:10px;font-weight:600}.sid-tech-grid-list{z-index:2;flex-wrap:wrap;gap:6px;margin:clamp(24px,4vh,42px) 0 0;padding:0;list-style:none;display:flex;position:relative}.sid-tech-grid-list li{color:#ffffffb3;white-space:nowrap;background:#ffffff0b;border:1px solid #ffffff1c;border-radius:999px;padding:5px 9px;font-size:clamp(10px,.8vw,12px);font-weight:450;line-height:1.2}.sid-tech-grid-text-clamp{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sid-tech-grid-spotlight{z-index:0;aspect-ratio:1;background:radial-gradient(circle, rgba(var(--sid-tech-grid-glow), .11), rgba(var(--sid-tech-grid-glow), .035) 42%, transparent 70%);filter:blur(8px);opacity:0;pointer-events:none;border-radius:50%;width:min(62vw,720px);position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.sid-tech-grid-particle,.sid-tech-grid-ripple{z-index:1;pointer-events:none;border-radius:50%;position:absolute}.sid-tech-grid-particle{width:3px;height:3px}.sid-tech-grid-ripple{z-index:1}@media (max-width:900px){.sid-tech-grid-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.sid-tech-grid-card,.sid-tech-grid-card:first-child,.sid-tech-grid-card:nth-child(2),.sid-tech-grid-card:nth-child(5),.sid-tech-grid-card:nth-child(6){grid-column:span 1}}@media (max-width:620px){.tech-scene-v3{align-items:start;padding:72px 18px 28px;overflow:hidden auto}.sid-tech-grid-layout{grid-template-columns:1fr}.sid-tech-grid-card{min-height:148px}.sid-tech-grid-spotlight{display:none}}@media (prefers-reduced-motion:reduce){.sid-tech-grid,.sid-tech-grid-card{transition:none;animation:none}}@media (max-width:760px){.minimal-scene{inset:72px 24px 36px}}.cinema-paper{border:1px solid var(--line);background:var(--paper);width:clamp(110px,14vw,190px);height:clamp(140px,18vw,250px);position:absolute}@supports (color:color-mix(in lab, red, red)){.cinema-paper{background:color-mix(in srgb, var(--paper) 80%, var(--soft))}}.cinema-paper{box-shadow:0 24px 60px var(--shadow);opacity:.42;transform:translate3d(calc(var(--px) * .28), calc(var(--py) * .18), -80px) rotate(var(--paper-r));transition:transform .36s cubic-bezier(.16,1,.3,1)}.spotlight-sweep{background:linear-gradient(115deg, transparent 36%, var(--deep), transparent 58%);position:absolute;inset:-20%}@supports (color:color-mix(in lab, red, red)){.spotlight-sweep{background:linear-gradient(115deg, transparent 36%, color-mix(in srgb, var(--deep) 10%, transparent), transparent 58%)}}.spotlight-sweep{opacity:.32;pointer-events:none;animation:6.5s linear infinite spotlightSweep}.cinema-detail-backdrop,.archive-detail-backdrop{z-index:30;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#00000014;border:0;position:absolute;inset:0}.activity-scene-v3{cursor:grab;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex;overflow:hidden}.activity-scene-v3:active{cursor:grabbing}.film-strip-track{border:1px solid var(--line);background:var(--paper);border-radius:6px;width:min(1000px,90%);position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.film-strip-track{background:color-mix(in srgb, var(--paper) 92%, var(--soft))}}.film-strip-track{box-shadow:0 24px 64px var(--shadow);animation:.9s cubic-bezier(.16,1,.3,1) both sceneSettle}.film-strip-rail{flex-direction:column;transition:transform 80ms ease-out;display:flex}.film-perf-row{background:var(--soft);gap:18px;padding:6px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.film-perf-row{background:color-mix(in srgb, var(--soft) 60%, var(--paper))}}.film-perf-row{overflow:hidden}.film-perf-top{border-bottom:1px solid var(--line)}.film-perf-bottom{border-top:1px solid var(--line)}.film-perf{background:var(--line);border-radius:2px;flex-shrink:0;width:8px;height:8px}.film-strip-frames{gap:12px;padding:16px 20px;display:flex;overflow:visible}.film-frame-v3{border:1px solid var(--line);background:linear-gradient(135deg, var(--paper), var(--paper));border-radius:4px;flex-shrink:0;width:clamp(120px,14vw,180px);height:clamp(160px,20vw,260px);position:relative}@supports (color:color-mix(in lab, red, red)){.film-frame-v3{background:linear-gradient(135deg, color-mix(in srgb, var(--paper) 90%, var(--soft)), var(--paper))}}.film-frame-v3{box-shadow:0 12px 36px var(--shadow);cursor:pointer;transition:transform .38s cubic-bezier(.16,1,.3,1),box-shadow .38s,filter .26s;animation:.6s cubic-bezier(.16,1,.3,1) both filmFrameIn}.film-frame-v3:first-child{animation-delay:60ms}.film-frame-v3:nth-child(2){animation-delay:.12s}.film-frame-v3:nth-child(3){animation-delay:.18s}.film-frame-v3:nth-child(4){animation-delay:.24s}.film-frame-v3:nth-child(5){animation-delay:.3s}.film-frame-v3:nth-child(6){animation-delay:.36s}.film-frame-v3:nth-child(7){animation-delay:.42s}.film-frame-v3.is-hovered{box-shadow:0 28px 72px var(--shadow);z-index:10;transform:translateY(-16px)scale(1.04)}.film-frame-v3.is-active{box-shadow:0 36px 90px var(--shadow);z-index:20;transform:translateY(-24px)scale(1.12)}.film-detail-backdrop{z-index:30;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#00000014;border:0;position:absolute;inset:0}@keyframes filmFrameIn{0%{opacity:0;transform:translateY(20px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}.contact-scene-v2{grid-template-columns:1fr;place-items:center;display:grid;position:absolute;inset:clamp(70px,12vh,118px) clamp(70px,10vw,150px)}.contact-env{aspect-ratio:1.66;--env-paper:var(--paper);width:clamp(232px,22vw,292px);position:absolute}@supports (color:color-mix(in lab, red, red)){.contact-env{--env-paper:color-mix(in srgb, var(--paper) 88%, var(--ink))}}.contact-env{--env-paper-deep:var(--paper)}@supports (color:color-mix(in lab, red, red)){.contact-env{--env-paper-deep:color-mix(in srgb, var(--paper) 74%, var(--ink))}}.contact-env{--env-letter-paper:var(--paper);--env-ink:var(--ink);transform:translate3d(var(--contact-x), var(--contact-y), 0) rotate(var(--contact-r));animation:.7s cubic-bezier(.16,1,.3,1) backwards contactEnvIn;animation-delay:calc(.2s + var(--contact-i,0) * .11s)}@keyframes contactEnvIn{0%{opacity:0;transform:translate3d(var(--contact-x,0px), calc(var(--contact-y,0px) + 56px), 0) rotate(calc(var(--contact-r,0deg) * 4))}}.contact-env.is-open{z-index:10}.env-inner{position:absolute;inset:0}.contact-env i,.contact-env u,.contact-env em,.contact-env b{font-style:normal;text-decoration:none}.env-inner>i{pointer-events:none}.env-back{z-index:1;background:linear-gradient(165deg, var(--env-paper-deep), var(--env-paper-deep));border-radius:8px;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.env-back{background:linear-gradient(165deg, var(--env-paper-deep), color-mix(in srgb, var(--env-paper-deep) 82%, var(--env-ink)))}}.env-back{box-shadow:0 24px 48px var(--shadow);transition:box-shadow .46s}.contact-env:not(.is-open):hover .env-back{box-shadow:0 34px 70px var(--shadow)}.env-letter{z-index:2;border:1px solid var(--env-ink);border-radius:4px;flex-direction:column;justify-content:center;align-items:center;padding:14px 16px 12px;display:flex;position:absolute;inset:7px 5% 9px}@supports (color:color-mix(in lab, red, red)){.env-letter{border:1px solid color-mix(in srgb, var(--env-ink) 10%, transparent)}}.env-letter{background:var(--env-letter-paper);color:var(--env-ink);text-align:center;cursor:pointer;font:inherit;appearance:none;pointer-events:none;text-decoration:none;transition:box-shadow .5s;box-shadow:0 12px 28px #00000038}.contact-env.is-open .env-letter{pointer-events:auto;transition:box-shadow .7s .3s;box-shadow:0 30px 60px #00000052}.env-letter:focus-visible{outline:2px solid var(--env-ink);outline-offset:3px}.env-letter span{font:800 12px/1 var(--font-mono);letter-spacing:.08em;margin-bottom:8px;display:block}.env-letter small{overflow-wrap:anywhere;font:500 clamp(13px, 1vw, 15px)/1.4 var(--font-sans);color:var(--env-ink);display:block}@supports (color:color-mix(in lab, red, red)){.env-letter small{color:color-mix(in srgb, var(--env-ink) 74%, transparent)}}.env-copied{font:700 10px/1 var(--font-mono);letter-spacing:.14em;color:var(--env-ink);margin-top:9px;display:block}@supports (color:color-mix(in lab, red, red)){.env-copied{color:color-mix(in srgb, var(--env-ink) 58%, transparent)}}.env-copied{opacity:0;transition:opacity .24s,transform .32s cubic-bezier(.16,1,.3,1);transform:translateY(3px)}.env-copied.is-copied{opacity:1;transform:translateY(0)}.env-front{z-index:3;clip-path:polygon(0 0,50% 28%,100% 0,100% 100%,0 100%);background:linear-gradient(180deg, var(--env-paper), var(--env-paper-deep));border-radius:8px;position:absolute;inset:0}.env-flap{z-index:4;transform-origin:50% 0;background:0 0;border-radius:8px 8px 0 0;height:48%;transition:z-index 0s .4s;position:absolute;top:0;left:0;right:0}.env-flap-shape{clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(180deg, var(--env-paper), var(--env-paper-deep));position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.env-flap-shape{background:linear-gradient(180deg, color-mix(in srgb, var(--env-paper) 90%, #fff), var(--env-paper-deep))}}.env-flap-shape{border-radius:8px 8px 0 0}.contact-env.is-open .env-flap{z-index:1;transition:z-index 0s .19s}.env-seal{z-index:5;color:#c9b07a;clip-path:none;background:radial-gradient(120% 90% at 38% 26%,#ffffff1a 0%,#ffffff08 22%,#0000 45%),radial-gradient(circle at 50% 60%,#20201f 0%,#141413 55%,#0a0a09 92%,#050504 100%);border-radius:49% 51% 47% 53%/51% 48% 52% 49%;place-items:center;width:44px;height:44px;margin-top:-22px;margin-left:-22px;display:grid;position:absolute;top:100%;left:50%;box-shadow:inset 0 1px #ffffff14,inset 0 -1.5px 2px #0009,0 1.5px 3px #00000080,0 4px 9px #00000047}.env-seal:before{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:4px;box-shadow:inset 0 0 0 .5px #0000008c}.env-seal:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:6px;box-shadow:inset 0 0 0 .5px #c9b07a38}.env-seal .contact-icon{filter:drop-shadow(0 .5px #dcc8a073)drop-shadow(0 1px #000000d9);opacity:.9}.contact-icon{color:currentColor;fill:none;stroke:currentColor;stroke-width:1.45px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.contact-icon-github,.contact-icon-mail,.contact-icon-gmail,.contact-icon-wechat,.contact-icon-xhs{fill:currentColor;stroke:none}.contact-icon-xhs{width:30px;height:30px}.env-shell{z-index:5;color:var(--env-ink);cursor:pointer;font:inherit;appearance:none;background:0 0;border:0;border-radius:8px;padding:0;position:absolute;inset:0}.env-shell:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.env-label{font:800 13px/1 var(--font-mono);letter-spacing:.16em;text-align:center;color:var(--env-ink);position:absolute;bottom:17%;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.env-label{color:color-mix(in srgb, var(--env-ink) 78%, transparent)}}.env-index{font:700 10px/1 var(--font-mono);letter-spacing:.14em;color:var(--env-ink);position:absolute;bottom:11px;left:14px}@supports (color:color-mix(in lab, red, red)){.env-index{color:color-mix(in srgb, var(--env-ink) 36%, transparent)}}.tile-mail{--contact-x:clamp(-360px, -25vw, -220px);--contact-y:clamp(-174px, -14vh, -96px);--contact-r:-3deg}.tile-gmail{--contact-x:clamp(140px, 15vw, 230px);--contact-y:clamp(-174px, -14vh, -96px);--contact-r:2deg}.tile-github{--contact-x:clamp(-315px, -19vw, -190px);--contact-y:clamp(105px, 15vh, 165px);--contact-r:2.5deg}.tile-xhs{--contact-x:clamp(-46px, -2vw, -18px);--contact-y:clamp(-42px, -3vh, -20px);--contact-r:1.5deg}.tile-wechat{--contact-x:clamp(140px, 16vw, 255px);--contact-y:clamp(92px, 13vh, 146px);--contact-r:-2deg}.minimal-panel-black .contact-env{--env-paper:#ececec;--env-paper-deep:#d6d6d6;--env-letter-paper:#fafafa;--env-ink:#0f0f0f}.minimal-panel-black .env-back{box-shadow:0 24px 48px #0000008c}.minimal-panel-black .contact-env:not(.is-open):hover .env-back{box-shadow:0 34px 70px #000000a6}@media (max-width:760px){.contact-scene-v2{flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;inset:64px 28px 44px}.contact-env{--contact-x:0px;--contact-y:0px;--contact-r:0deg;flex-shrink:0;width:min(216px,60vw);position:relative;transform:none}}@media (prefers-reduced-motion:reduce){.contact-env{animation:none}.contact-env,.env-back,.env-flap,.env-letter,.env-seal,.env-copied{transition:none}}.hobbies-scene-v2{inset:0;overflow:hidden}.hobbies-gravity{touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:clamp(48px,8vh,76px) clamp(28px,6vw,92px) clamp(22px,4vh,42px);overflow:hidden}.matter-body{will-change:transform;position:absolute;top:0;left:0}.hobby-gravity-item{aspect-ratio:1;cursor:grab;transform-origin:50%;filter:drop-shadow(0 18px 26px #00000021);width:clamp(112px,12vw,168px);transition:filter .18s}.hobby-gravity-item[data-dragging=true]{cursor:grabbing;filter:drop-shadow(0 24px 34px #0003)}.hobby-gravity-item img{object-fit:contain;filter:contrast(1.04)saturate(1.03);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none;width:100%;height:100%;display:block}.hobby-gravity-item-2,.hobby-gravity-item-5,.hobby-gravity-item-7,.hobby-gravity-item-10{width:clamp(120px,13vw,178px)}.gravity-field--static.hobbies-gravity{touch-action:auto;grid-template-columns:repeat(3,minmax(0,1fr));place-items:center;gap:clamp(10px,3vw,30px);padding:clamp(18px,4vw,42px);display:grid}.gravity-field--static .hobby-gravity-item{cursor:default;filter:drop-shadow(0 14px 22px #0000001c);width:min(100%,190px);position:relative;top:auto;left:auto;transform:none!important}@media (max-width:680px){.hobbies-gravity{inset:54px 10px 18px}.hobby-gravity-item,.hobby-gravity-item-2,.hobby-gravity-item-5,.hobby-gravity-item-7,.hobby-gravity-item-10{width:clamp(84px,24vw,118px)}.gravity-field--static.hobbies-gravity{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.hobby-gravity-item{transition:none}}.activity-scene-v3{overflow:hidden}.film-strip-track{width:auto;box-shadow:none;background:0 0;border:0;border-radius:0;position:absolute;left:-14vw;right:-14vw;overflow:visible;transform:rotate(-2.2deg)}.film-strip-rail{filter:drop-shadow(0 30px 58px #0000002e);will-change:transform;width:max-content;transition:none}.film-perf-row{background:var(--ink);border:0;gap:18px;padding:10px 18px}.film-perf{background:var(--paper);opacity:.82;border-radius:2px;width:12px;height:8px}.film-strip-frames{background:var(--ink);gap:18px;padding:18px 22px}.film-frame-v3{border:1px solid var(--paper);border-radius:3px;width:clamp(250px,25vw,410px);height:clamp(150px,15vw,245px)}@supports (color:color-mix(in lab, red, red)){.film-frame-v3{border:1px solid color-mix(in srgb, var(--paper) 46%, transparent);background:color-mix(in srgb, var(--paper) 12%, var(--ink))}}.film-frame-v3{box-shadow:none;padding:8px;overflow:hidden}.film-frame-v3.is-hovered{transform:translateY(-22px)scale(1.055);box-shadow:0 34px 86px #00000057}.film-frame-v3.is-active{transform:translateY(-30px)scale(1.14);box-shadow:0 42px 110px #00000061}.film-frame-image-v3{object-fit:cover;filter:contrast(1.04)saturate(.9);border-radius:2px;width:100%;height:100%;transition:transform .52s cubic-bezier(.16,1,.3,1),filter .36s;display:block}.film-frame-v3.is-hovered .film-frame-image-v3{filter:contrast(1.08)saturate();transform:scale(1.06)}.edu-icon-v3{width:clamp(96px,10.5vw,158px)}.edu-icon-v3 img{opacity:.82;filter:none}.minimal-panel-black .edu-icon-v3 img{filter:grayscale()invert()contrast(1.05);opacity:.66}@media (max-width:760px){.education-scene-v3{gap:18px;padding:4%;inset:54px 20px}.edu-card-v3{gap:14px}.edu-school-v3{white-space:nowrap}.edu-icon-v3{width:82px}.film-frame-v3{width:260px;height:165px}}.film-perf-row{background:repeating-linear-gradient(90deg, var(--ink) 0 13px, transparent 13px 38px), var(--paper);align-self:stretch;height:30px;padding:0}@supports (color:color-mix(in lab, red, red)){.film-perf-row{background:repeating-linear-gradient(90deg, var(--ink) 0 13px, transparent 13px 38px), color-mix(in srgb, var(--paper) 92%, var(--soft))}}.film-perf-row{background-position:0;background-repeat:repeat-x;border:0}.film-perf{display:none}.film-strip-frames{background:var(--paper)}@supports (color:color-mix(in lab, red, red)){.film-strip-frames{background:color-mix(in srgb, var(--paper) 92%, var(--soft))}}.film-frame-v3{border:1px solid var(--ink)}@supports (color:color-mix(in lab, red, red)){.film-frame-v3{border:1px solid color-mix(in srgb, var(--ink) 32%, transparent)}}.film-frame-v3{background:var(--paper)}@supports (color:color-mix(in lab, red, red)){.film-frame-v3{background:color-mix(in srgb, var(--paper) 96%, var(--soft))}}.minimal-panel.section-activities .activity-sid-gallery{cursor:grab;position:absolute;inset:0;overflow:hidden}.minimal-panel.section-activities .activity-sid-gallery:active{cursor:grabbing}.activity-sid-gallery-canvas,.activity-sid-gallery-canvas canvas{touch-action:none;display:block;width:100%!important;height:100%!important}.activity-sid-gallery-canvas{z-index:0;position:absolute;inset:0}.activity-sid-depth-field{z-index:2;pointer-events:none;opacity:.54;mix-blend-mode:screen;position:absolute;inset:0}.activity-sid-depth-field .sid-depth-field-canvas,.activity-sid-depth-field canvas{display:block;position:absolute;inset:0;width:100%!important;height:100%!important}@media (prefers-reduced-motion:reduce){.activity-sid-depth-field{opacity:.18}}.minimal-panel.section-internship{padding:0!important}.minimal-panel.section-internship .internship-lanyard-scene{isolation:isolate;position:absolute;overflow:hidden;inset:0!important}.lanyard-canvas{touch-action:none;width:100%;height:100%;position:absolute;inset:0}.lanyard-canvas>div,.lanyard-canvas canvas{display:block;width:100%!important;height:100%!important}.lanyard-loading{place-items:center;display:grid;position:absolute;inset:0}.lanyard-loading span{background:var(--ink);border-radius:50%;width:6px;height:6px}@supports (color:color-mix(in lab, red, red)){.lanyard-loading span{background:color-mix(in srgb, var(--ink) 58%, transparent)}}.lanyard-loading span{animation:.9s ease-in-out infinite alternate lanyardLoadingPulse}@keyframes lanyardLoadingPulse{0%{opacity:.25;transform:scale(.72)}to{opacity:.8;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.lanyard-loading span{animation:none}}.competition-reveal-scroll{overscroll-behavior:contain;background:var(--paper);color:var(--ink);scrollbar-width:none;touch-action:pan-y;display:block;position:absolute;inset:0;overflow:hidden auto}.competition-reveal-scroll::-webkit-scrollbar{display:none}.competition-reveal-scroll:focus-visible{outline:1px solid var(--ink)}@supports (color:color-mix(in lab, red, red)){.competition-reveal-scroll:focus-visible{outline:1px solid color-mix(in srgb, var(--ink) 36%, transparent)}}.competition-reveal-scroll:focus-visible{outline-offset:-5px}.competition-reveal-track{min-height:200%;position:relative}.competition-reveal-stage{background:var(--paper);isolation:isolate;place-items:center;width:100%;height:100vh;min-height:480px;display:grid;position:sticky;top:0;overflow:hidden}.competition-reveal-stack{place-items:center;display:grid;position:absolute;inset:0}.competition-reveal-frame{border:1px solid var(--ink);width:fit-content;height:fit-content;margin:0;position:absolute;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.competition-reveal-frame{border:1px solid color-mix(in srgb, var(--ink) 14%, transparent)}}.competition-reveal-frame{transform-origin:50%;will-change:clip-path, filter, opacity, transform;background:#fff;box-shadow:0 24px 72px #0000001f}.competition-reveal-frame img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;background:#fff;width:auto;max-width:min(76vw,980px);height:auto;max-height:min(76vh,820px);display:block}.competition-reveal-caption{z-index:3;gap:5px;max-width:min(62vw,620px);display:grid;position:absolute;bottom:clamp(22px,4vh,46px);left:clamp(28px,6vw,88px)}.competition-reveal-caption span{color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.competition-reveal-caption span{color:color-mix(in srgb, var(--ink) 42%, transparent)}}.competition-reveal-caption span{font:650 10px/1.2 var(--font-mono);letter-spacing:.12em}.competition-reveal-caption strong{color:var(--ink);overflow:hidden}@supports (color:color-mix(in lab, red, red)){.competition-reveal-caption strong{color:color-mix(in srgb, var(--ink) 62%, transparent)}}.competition-reveal-caption strong{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(14px,1.7vw,22px);font-weight:450;line-height:1.15}.competition-reveal-progress{z-index:4;background:var(--ink);width:2px;height:clamp(94px,18vh,150px);position:absolute;top:50%;right:clamp(26px,5vw,72px);overflow:hidden}@supports (color:color-mix(in lab, red, red)){.competition-reveal-progress{background:color-mix(in srgb, var(--ink) 12%, var(--paper))}}.competition-reveal-progress{transform:translateY(-50%)}.competition-reveal-progress-fill{background:var(--ink);width:100%;position:absolute;top:0;left:0}@supports (color:color-mix(in lab, red, red)){.competition-reveal-progress-fill{background:color-mix(in srgb, var(--ink) 72%, transparent)}}@media (max-width:760px){.competition-reveal-frame img{max-width:84vw;max-height:76vh}.competition-reveal-caption{max-width:72vw;bottom:24px;left:8vw}.competition-reveal-progress{right:5vw}}@media (max-height:640px) and (orientation:landscape){.competition-reveal-stage{min-height:100vh}.competition-reveal-frame img{max-width:72vw;max-height:82vh}.competition-reveal-caption{bottom:12px}}.sticker-label-v2{background:var(--paper)}@supports (color:color-mix(in lab, red, red)){.sticker-label-v2{background:color-mix(in srgb, var(--paper) 95%, var(--soft))}}.sticker-label-v2{color:var(--ink)}.minimal-panel-black .sticker-label-v2{color:#0a0a0a;background:#ffffffeb}.flat-icon-button{box-sizing:border-box;width:44px;height:44px;color:var(--ink);background:0 0;border:0;border-radius:999px;place-items:center;padding:0;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.flat-icon-button{color:color-mix(in srgb, var(--ink) 48%, transparent)}}.flat-icon-button{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;cursor:pointer;line-height:0;transition:color .16s,transform .16s}.flat-icon-button:before{z-index:0;background:var(--ink);border-radius:999px;position:absolute;inset:6px}@supports (color:color-mix(in lab, red, red)){.flat-icon-button:before{background:color-mix(in srgb, var(--ink) 10%, var(--paper))}}.flat-icon-button:before{content:"";pointer-events:none;transition:background-color .16s}.flat-icon-button:hover{color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.flat-icon-button:hover{color:color-mix(in srgb, var(--ink) 64%, transparent)}}.flat-icon-button:hover{opacity:1;transform:none}.flat-icon-button:hover:before{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.flat-icon-button:hover:before{background-color:color-mix(in srgb, var(--ink) 16%, var(--paper))}}.flat-icon-button:active{transform:scale(.96)}.flat-icon-button:focus-visible{outline:2px solid var(--ink)}@supports (color:color-mix(in lab, red, red)){.flat-icon-button:focus-visible{outline:2px solid color-mix(in srgb, var(--ink) 34%, transparent)}}.flat-icon-button:focus-visible{outline-offset:2px}.flat-icon-button svg{z-index:1;stroke-width:1.5px;width:14px;height:14px;position:relative}.project-scroll-shell{position:absolute;inset:0}.project-carousel-scene{background:var(--paper);min-width:0;min-height:0;color:var(--ink);touch-action:manipulation;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.project-carousel-scene:focus-visible{outline:1px solid var(--ink)}@supports (color:color-mix(in lab, red, red)){.project-carousel-scene:focus-visible{outline:1px solid color-mix(in srgb, var(--ink) 64%, transparent)}}.project-carousel-scene:focus-visible{outline-offset:-5px}.project-carousel-stage{grid-template-rows:auto auto auto;align-content:center;place-items:start center;gap:clamp(8px,3.4vh,40px);width:min(100%,1280px);height:100%;min-height:0;padding:clamp(6px,2.6vh,24px) clamp(24px,5vw,72px);display:grid}.project-carousel-heading{text-align:center;justify-items:center;gap:clamp(8px,1.8vh,16px);display:grid}.project-carousel-title{max-width:15ch;color:var(--ink);letter-spacing:-.05em;text-wrap:balance;margin:0;font-size:clamp(30px,min(5vw,8vh),68px);font-weight:400;line-height:1}.project-carousel-subtitle{max-width:46ch;color:var(--ink);margin:0}@supports (color:color-mix(in lab, red, red)){.project-carousel-subtitle{color:color-mix(in srgb, var(--ink) 50%, transparent)}}.project-carousel-subtitle{letter-spacing:0;text-wrap:balance;font-size:clamp(12px,min(1.7vw,2.6vh),24px);font-weight:400;line-height:1.35}.project-carousel-navigation{flex-wrap:nowrap;justify-content:center;align-items:center;gap:clamp(6px,1vw,10px);min-width:0;display:flex}.project-carousel-arrow-controls{justify-content:center;align-items:center;gap:clamp(4px,.8vw,10px);display:flex}.project-carousel-control{appearance:none;width:44px;height:44px;color:var(--ink);background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.project-carousel-control{color:color-mix(in srgb, var(--ink) 48%, transparent)}}.project-carousel-control{box-shadow:none;cursor:pointer;transition:background-color .16s,color .16s,transform .16s}.project-carousel-control:before{background:var(--ink);border:0;border-radius:999px;position:absolute;inset:6px}@supports (color:color-mix(in lab, red, red)){.project-carousel-control:before{background:color-mix(in srgb, var(--ink) 10%, var(--paper))}}.project-carousel-control:before{content:"";transition:background-color .16s}.project-carousel-control svg{z-index:1;stroke-width:1.6px;width:16px;height:16px;position:relative}.project-carousel-control:hover:not(:disabled):before{background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.project-carousel-control:hover:not(:disabled):before{background:color-mix(in srgb, var(--ink) 16%, var(--paper))}}.project-carousel-control:hover:not(:disabled){color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.project-carousel-control:hover:not(:disabled){color:color-mix(in srgb, var(--ink) 64%, transparent)}}.project-carousel-control:active:not(:disabled){transform:scale(.96)}.project-carousel-control:focus-visible,.project-carousel-position:focus-visible,.project-carousel-preview:focus-visible{outline:2px solid var(--ink)}@supports (color:color-mix(in lab, red, red)){.project-carousel-control:focus-visible,.project-carousel-position:focus-visible,.project-carousel-preview:focus-visible{outline:2px solid color-mix(in srgb, var(--ink) 34%, transparent)}}.project-carousel-control:focus-visible,.project-carousel-position:focus-visible,.project-carousel-preview:focus-visible{outline-offset:2px}.project-carousel-positions{justify-content:center;align-items:center;gap:0;margin:0;padding:0;list-style:none;display:flex}.project-carousel-position{appearance:none;width:24px;min-height:44px;color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:width .18s;display:grid}.project-carousel-position[aria-current=true]{width:36px}.project-carousel-position-number{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.project-carousel-position-track{background:var(--ink);border:0;border-radius:999px;width:8px;height:8px;display:block;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.project-carousel-position-track{background:color-mix(in srgb, var(--ink) 15%, var(--paper))}}.project-carousel-position-track{transition:width .18s,background-color .18s}.project-carousel-position[aria-current=true] .project-carousel-position-track{width:30px}.project-carousel-position:hover .project-carousel-position-track{background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.project-carousel-position:hover .project-carousel-position-track{background:color-mix(in srgb, var(--ink) 22%, var(--paper))}}.project-carousel-position-progress{background:var(--ink);display:block;position:absolute;inset:0 auto 0 0}.project-carousel-viewport{isolation:isolate;overscroll-behavior:contain;scrollbar-width:none;place-items:start center;width:min(100%,880px);height:auto;min-height:0;max-height:calc(100dvh - clamp(142px,39dvh,160px));display:grid;position:relative;overflow:hidden auto}.project-carousel-viewport::-webkit-scrollbar{display:none}.project-carousel-slide{grid-template-rows:auto auto;align-content:start;place-items:start center;gap:clamp(12px,2vh,18px);width:100%;min-height:0;display:grid}.project-carousel-copy{text-align:center;width:min(100%,720px);display:grid}.project-carousel-copy h3{width:100%;color:var(--ink);margin:0;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.project-carousel-copy h3{color:color-mix(in srgb, var(--ink) 50%, transparent)}}.project-carousel-copy h3{letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(17px,min(2vw,4.6vh),28px);font-weight:400;line-height:1.12}.project-carousel-preview{appearance:none;aspect-ratio:16/9;border:4px solid var(--ink);width:min(100%,860px,max(180px,122.78dvh - 140px));padding:0;display:block;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.project-carousel-preview{border:4px solid color-mix(in srgb, var(--ink) 10%, var(--paper))}}.project-carousel-preview{background:var(--paper);border-radius:28px}@supports (color:color-mix(in lab, red, red)){.project-carousel-preview{background:color-mix(in srgb, var(--paper) 92%, var(--soft))}}.project-carousel-preview{cursor:zoom-in;transition:border-color .18s,background-color .18s}.project-carousel-preview img{object-fit:cover;padding:0}.project-carousel-preview:hover:not(:disabled),.project-carousel-preview:focus-visible{border-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.project-carousel-preview:hover:not(:disabled),.project-carousel-preview:focus-visible{border-color:color-mix(in srgb, var(--ink) 18%, var(--paper))}}.project-carousel-preview:hover:not(:disabled),.project-carousel-preview:focus-visible{background:var(--ink)}@supports (color:color-mix(in lab, red, red)){.project-carousel-preview:hover:not(:disabled),.project-carousel-preview:focus-visible{background:color-mix(in srgb, var(--ink) 3%, var(--paper))}}.project-carousel-preview:disabled{cursor:default}.project-carousel-preview-action{z-index:1;border:1px solid var(--ink);align-items:center;padding:7px 10px;display:inline-flex;position:absolute;bottom:10px;right:10px}@supports (color:color-mix(in lab, red, red)){.project-carousel-preview-action{border:1px solid color-mix(in srgb, var(--ink) 22%, transparent)}}.project-carousel-preview-action{background:var(--paper);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.project-carousel-preview-action{background:color-mix(in srgb, var(--paper) 92%, transparent)}}.project-carousel-preview-action{color:var(--ink);font:650 10px/1.1 var(--font-mono);letter-spacing:.04em;opacity:0;pointer-events:none;transition:opacity .16s,transform .16s;transform:translateY(4px)}.project-carousel-preview:hover:not(:disabled) .project-carousel-preview-action,.project-carousel-preview:focus-visible .project-carousel-preview-action{opacity:1;transform:translateY(0)}.project-detail-layer-v6{z-index:500;cursor:default;pointer-events:auto;display:none;position:fixed;inset:0}.project-detail-layer-v6.is-open{display:block}.project-detail-backdrop-v6{z-index:0;background:var(--paper);cursor:zoom-out;border:0;position:fixed;inset:0}.project-detail-backdrop-v6:focus-visible{outline:2px solid var(--ink);outline-offset:-6px}.project-route-detail-v6{z-index:1;border:1px solid var(--ink);width:min(94vw,1440px);height:min(88dvh,860px);display:block;position:fixed;top:50%;left:50%;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.project-route-detail-v6{border:1px solid color-mix(in srgb, var(--ink) 18%, transparent)}}.project-route-detail-v6{background:#fff;border-radius:8px;transform:translate(-50%,-50%);box-shadow:0 18px 42px #00000029}.project-route-detail-v6.is-static{aspect-ratio:1770/1290;background:#030303;width:min(94vw,1440px,120.744dvh);height:auto}.project-detail-close-v7{z-index:3;position:absolute;top:10px;left:10px}.project-detail-image-v7{border-radius:inherit;background:#fff;width:100%;min-width:0;height:100%;overflow:hidden}.project-route-detail-v6 img{object-fit:contain;background:#fff;width:100%;height:100%;display:block}.project-browser-preview,.project-browser-stage{background:#fff;width:100%;min-width:0;height:100%;min-height:0;position:relative;overflow:hidden}.project-browser-frame,.project-browser-poster{border:0;width:100%;height:100%;transition:opacity .18s;display:block;position:absolute;inset:0}.project-browser-static-image{z-index:1;object-fit:contain;background:#030303;width:100%;height:100%;display:block;position:absolute;inset:0}.project-browser-frame{z-index:1;opacity:0;pointer-events:none;background:#fff}.project-browser-poster{z-index:0;object-fit:cover;opacity:1;background:#fff}.project-browser-preview[data-state=ready] .project-browser-frame{opacity:1;pointer-events:auto}.project-browser-preview[data-state=ready] .project-browser-poster{opacity:0}@media (max-width:760px){.project-carousel-stage{gap:clamp(6px,2.2vh,16px);padding:clamp(4px,1.5vh,12px) clamp(14px,4.5vw,24px)}.project-carousel-heading{gap:clamp(3px,1.1vh,5px)}.project-carousel-title{font-size:clamp(34px,min(10.5vw,10.5vh),42px)}.project-carousel-subtitle{max-width:32ch;font-size:clamp(13px,min(4vw,4.2vh),17px)}.project-carousel-navigation{flex-flow:row;align-items:center;gap:2px;width:100%;max-width:100%}.project-carousel-arrow-controls{gap:0;min-width:0}.project-carousel-positions{gap:0}.project-carousel-slide{gap:clamp(6px,2vh,10px)}.project-carousel-copy{width:min(100%,560px)}.project-carousel-copy h3{font-size:clamp(17px,min(5.6vw,6vh),25px)}.project-carousel-preview{border-radius:24px}.project-carousel-preview-action{padding:6px 8px;font-size:9px;bottom:7px;right:7px}.project-route-detail-v6{width:96vw;height:min(86dvh,760px)}.project-route-detail-v6.is-static{width:min(96vw,118dvh);height:auto}}@media (max-width:760px),(max-width:950px) and (max-height:520px){.portfolio-home{flex-direction:column;height:100dvh;min-height:100dvh;max-height:100dvh}.portfolio-hero-shell{flex:auto;width:100%;min-width:0;min-height:0}.portfolio-piano-shell{width:100%;min-width:0;height:clamp(190px,30dvh,250px);padding-bottom:max(6px, env(safe-area-inset-bottom));flex:0 0 clamp(190px,30dvh,250px);align-items:stretch}.portfolio-piano-stage{align-items:stretch;min-height:0}.portfolio-piano-desktop{display:none}.portfolio-piano-mobile{min-height:0;display:block}.piano-keyboard--horizontal{overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:none;-webkit-overflow-scrolling:touch;overflow:auto hidden}.piano-keyboard--horizontal::-webkit-scrollbar{display:none}.piano-keyboard__horizontal-track{min-width:100%;display:flex}.piano-keyboard__horizontal-keys{flex:none}.piano-key--horizontal{transform-origin:100%;justify-content:center;align-items:flex-end}.piano-key--horizontal .piano-key__label{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.06em;max-height:calc(100% - 24px);padding:0;font-size:11px;line-height:1;position:absolute;bottom:14px;left:50%;overflow:hidden;transform:translate(-50%)}.piano-key--horizontal .piano-penguin-icon{width:min(42px,70%);inset:auto auto 0 50%;transform:translate(-50%)}.piano-key--horizontal.piano-key--black .piano-key__label{padding:0;font-size:10px;bottom:13px}.piano-key--horizontal .piano-language-legend{flex-direction:column;gap:5px;padding:0;font-size:10px;position:absolute;bottom:13px;left:50%;transform:translate(-50%)}.piano-key--horizontal .piano-language-divider{width:10px;height:1px}.piano-key--horizontal.piano-key--interactive:is(:hover,:focus-visible){transform:perspective(900px)rotateY(-2.8deg)translate(2px)}.piano-key--horizontal[data-active=true]{transform:perspective(900px)rotateY(-3.5deg)translate(3px)}.piano-key--horizontal[data-pressed=true]{transition-duration:90ms;transform:perspective(900px)rotateY(-5deg)translate(4px)}.hero-letter-field .text-scatter__anchor{font-size:clamp(56px,18vw,86px)}.hero-ascii-portrait{width:clamp(220px,58vw,280px);bottom:clamp(-42px,-8vw,-28px);left:51%}}@media (hover:none) and (pointer:coarse){.piano-key--horizontal.piano-key--interactive:hover{transform:none}}@media (max-width:950px) and (max-height:520px){.portfolio-piano-shell{flex-basis:158px;height:158px}.hero-letter-field .text-scatter__anchor{font-size:clamp(42px,11vw,78px)}.hero-ascii-portrait{width:min(36vw,220px);bottom:-38px}}@media (prefers-reduced-motion:reduce){.project-browser-frame,.project-browser-poster,.project-carousel-control,.project-carousel-control:before,.project-carousel-position,.project-carousel-position-track,.project-carousel-preview,.project-carousel-preview-action,.project-detail-close-v7{transition:none}.piano-penguin-icon__image{transition:none;animation:none}}.penguin-gacha{z-index:110;color:#151515;background:#fff;outline:none;position:fixed;inset:0;overflow:hidden}.penguin-gacha__scene{touch-action:none;cursor:pointer;opacity:0;background:#fff;width:100%;height:100%;transition:opacity .5s cubic-bezier(.16,1,.3,1);display:block}.penguin-gacha__scene.ready{opacity:1}.penguin-gacha__scene.grab{cursor:grab}.penguin-gacha__scene.grabbing{cursor:grabbing}.penguin-gacha__scene.prize{cursor:pointer}.penguin-gacha__close{top:max(18px, env(safe-area-inset-top));right:max(18px, env(safe-area-inset-right));z-index:3;--ink:#151515;--paper:#fff;position:absolute}.penguin-gacha__loader{aspect-ratio:1;pointer-events:none;width:56px;position:absolute;top:50%;left:50%;translate:-50% -50%}.penguin-gacha__loader i{border:1px solid #15181b47;border-radius:50%;display:block;position:absolute;inset:0}.penguin-gacha__loader i:last-child{border-color:#15181b1f;inset:11px}@media (prefers-reduced-motion:reduce){.penguin-gacha__scene{transition-duration:.01ms}}@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-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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-ease{syntax:"*";inherits:false}
