/*! Portfolio additions (c) 2026 Yongjun Kim. Previously MIT-licensed code retains its original terms. See /COPYRIGHT.txt, /LICENSE and /THIRD_PARTY_NOTICES.txt. */
:root.interactive-landing.home-page{--section-heading-gap:32px;--hero-background:var(--color-white);--hero-idle:rgb(24 24 24 / 30%);--hero-highlight:var(--brand-blue);--hero-ink:#373232;--hero-control:#181818;--hero-ball-scale:1;--hero-ball-min-diameter:96px;--hero-ball-max-diameter:280px;--hero-ball-color:var(--brand-blue);--hero-ball-font-size:16px;--hero-ball-line-height:22px;--hero-ball-fill:var(--color-white);--hero-ball-stroke-color:var(--hero-ball-color);--hero-ball-stroke-width:1.5px;--hero-ball-count-mobile:3;--hero-ball-count-desktop:3;scroll-padding-top:0}:root.interactive-landing.home-page body{padding-top:0}:root.interactive-landing.home-page #landing-view{position:relative;isolation:isolate;contain:paint;overflow:hidden;width:100%;max-width:none;margin:0;padding:0;min-height:100svh;display:flex;align-items:center;justify-content:center;background:var(--hero-background);color:var(--hero-ink);scroll-margin-top:0}#landing-view>.hero-ball-pool{position:absolute;inset:0;z-index:0;pointer-events:none;-webkit-user-select:none;user-select:none}.hero-ball-size-probe{position:absolute;visibility:hidden;height:0;width:calc((var(--hero-ball-min-diameter) + (var(--hero-ball-max-diameter) - var(--hero-ball-min-diameter)) * var(--ball-size-progress, 0)) * var(--hero-ball-scale))}.hero-ball-pool>.hero-ball{position:absolute;left:0;top:0;display:grid;place-items:center;width:var(--ball-diameter);height:var(--ball-diameter);box-sizing:border-box;border:var(--hero-ball-stroke-width) solid var(--hero-ball-stroke-color);border-radius:50%!important;background-color:var(--hero-ball-fill);color:var(--hero-ball-color);font:400 var(--hero-ball-font-size)/var(--hero-ball-line-height) var(--ui-font-family);letter-spacing:normal;white-space:nowrap}.hero-ball-pool>.hero-ball-filled{background-color:var(--hero-ball-color);color:var(--color-white)}:root.interactive-landing.home-page #landing-view .intro-layout{position:relative;z-index:1;width:var(--shared-content-width);margin-inline:auto;padding-block:112px;text-align:center}.landing-statement{position:relative;--statement-size:40px;margin:0;color:var(--hero-highlight);font:400 var(--statement-size)/calc(var(--statement-size) + 8px) var(--ui-font-family);letter-spacing:normal;text-wrap:nowrap;display:flex;flex-direction:column;gap:8px}.landing-line,.landing-overlap-line{display:block;align-self:center;max-width:100%}.landing-statement-overlap{position:absolute;inset:0;display:flex;flex-direction:column;gap:inherit;color:var(--color-white);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-mask-image:url(#hero-ball-text-mask);mask-image:url(#hero-ball-text-mask);mask-mode:alpha}@supports ((background-clip:text) or (-webkit-background-clip:text)){@media(prefers-reduced-motion:no-preference){.home-page .landing-line{background-image:linear-gradient(to right,var(--hero-highlight) calc(50% - .15em),var(--hero-idle) calc(50% + .15em));background-size:calc(200% + .6em) 100%;background-position:left center;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;color:transparent}.home-page :where(.landing-reading-ready) .landing-line{animation:landing-line-fill var(--read-duration) var(--read-easing,ease-in-out) var(--read-start) both}}}@keyframes landing-line-fill{0%{background-position:100% 50%}to{background-position:0% 50%}}:root.interactive-landing #landing-view ::selection{background:#e8f0ff;color:var(--hero-ink);text-shadow:none}.landing-explore{z-index:1;position:absolute;left:50%;bottom:var(--cds-spacing-06);transform:translate(-50%);display:inline-flex;align-items:center;justify-content:center;gap:var(--cds-spacing-03);box-sizing:border-box;min-height:44px;padding:var(--cds-spacing-03) var(--cds-spacing-05);border-radius:999px!important;background:#ffffff7f;color:var(--hero-control);font:400 14px/20px var(--ui-font-family);text-align:center;text-decoration:none;white-space:nowrap}.landing-explore svg{display:block;flex:none;width:var(--text-link-arrow-size);height:var(--text-link-arrow-size)}.landing-tilt{position:absolute;z-index:1;right:var(--page-margin);bottom:var(--cds-spacing-06);display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:999px!important;background:#ffffff7f;color:var(--hero-control);font:400 14px/20px var(--ui-font-family);cursor:pointer}.landing-tilt[hidden]{display:none}.landing-tilt[aria-pressed=true]{background:var(--hero-highlight);color:var(--color-white)}:is(.landing-explore,.landing-tilt){transition:opacity var(--duration-fast) var(--ease-standard)}:is(.landing-explore,.landing-tilt):not(:disabled):is(:active:not([data-press-managed]),[data-press-state=on]){opacity:.8;transition-duration:var(--ui-press-duration)}:is(.landing-explore,.landing-tilt):not(:disabled)[data-press-state=fading]{opacity:1;transition:opacity var(--duration-exit) var(--ease-exit)}.landing-tilt:disabled{opacity:.5;cursor:wait}.landing-tilt-status{position:absolute;z-index:2;right:var(--page-margin);bottom:calc(var(--cds-spacing-06) + 44px + var(--cds-spacing-03));max-width:calc(100% - 2 * var(--page-margin));box-sizing:border-box;padding:var(--cds-spacing-03);background:#ffffffe5;color:var(--hero-control);font:400 12px/16px var(--ui-font-family);pointer-events:none}.landing-tilt-status:empty{display:none}:root.interactive-landing.home-page.intro-nav:not(.menu-layer) .home-header :is(.brand,.menu-toggle,nav a[data-nav]){color:var(--hero-control);--link-rest-color:var(--hero-control)}:root.interactive-landing.home-page #about-view{width:var(--shared-content-width);max-width:1440px;margin:0 auto;padding:var(--section-boundary-space) 0;background:#fff;scroll-margin-top:0}:root.interactive-landing.home-page #about-view:before{content:none}:root.interactive-landing.home-page #about-view .intro-layout{width:100%;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}:root.interactive-landing.home-page #about-view .about-copy{grid-column:-2 / -1;width:100%;min-width:0;max-width:none;margin:0;padding:0}:root.interactive-landing.home-page #about-view .bio-details>p{margin:0;font:400 24px/32px var(--ui-font-family);letter-spacing:normal;text-align:left}:root.interactive-landing.home-page #about-view .bio-details{display:grid;gap:24px}:root.interactive-landing.home-page #about-view .home-introduction{text-align:left}:root.interactive-landing.home-page #about-view .home-contact-links{justify-content:flex-start;margin-top:32px}:root.interactive-landing.home-page :is(#projects-view,#publications-view,#fun-view){padding-top:var(--section-boundary-space);scroll-margin-top:0}@media(max-width:767px),(hover:none)and (pointer:coarse)and (max-height:767px){:root.interactive-landing.home-page{--hero-ball-font-size:14px;--hero-ball-line-height:20px}}@media(max-width:1023px){:root.interactive-landing.home-page{--section-heading-gap:24px}.landing-statement{--statement-size:32px}:root.interactive-landing.home-page #about-view .intro-layout{grid-template-columns:minmax(0,1fr);gap:32px}}@media(max-width:767px){:root.interactive-landing.home-page #landing-view .intro-layout{padding-block:112px;container-type:inline-size}.landing-statement{--statement-size:16px}@container (min-width:328px){.landing-statement{--statement-size:20px}}:root.interactive-landing.home-page #about-view .bio-details>p{font-size:clamp(16px,calc(5vw - .75px),18px);line-height:calc(clamp(16px,calc(5vw - .75px),18px) + 8px)}:root.interactive-landing.home-page #about-view .bio-details{gap:20px}:root.interactive-landing.home-page #about-view .home-contact-links{margin-top:28px}}@media(max-height:480px){:root.interactive-landing.home-page #landing-view .intro-layout{padding-block:calc(var(--bar-height) + 32px) 104px}}@media(prefers-reduced-motion:reduce){:is(.landing-explore,.landing-tilt):is(:active,[data-press-state]),.landing-explore,.landing-tilt{transition:none}}@media(prefers-contrast:more){:root.interactive-landing.home-page{--hero-background:#fff;--hero-highlight:var(--hero-ink);--hero-control:#000}.home-page .landing-line{animation:none;background:none;color:inherit}}@media(forced-colors:active){:root.interactive-landing.home-page{--hero-background:Canvas;--hero-highlight:CanvasText;--hero-control:LinkText}.home-page .landing-line{animation:none;background:none;color:CanvasText}}
