pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}
/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}@tailwind base;@tailwind components;@tailwind utilities;@layer base{:root{--bg:#fff;--bg-secondary:#f3f4f6;--surface:#fff;--surface-container:#edeef0;--surface-container-high:#e7e8ea;--text:#191c1e;--text-secondary:#424754;--text-muted:#6b7280;--border:#e5e7eb;--border-subtle:#f3f4f6;--outline:#727785;--outline-variant:#c2c6d6;--accent:#e5383b;--accent-dim:#b3262a;--accent-soft:color-mix(in srgb,var(--accent) 12%,transparent);--success:#15803d;--series-1:#2563eb;--series-2:#db2777;--series-3:#7c3aed;--series-4:#15803d;--series-5:#0e7490;--series-6:#c2410c;--series-7:#a16207;--series-8:#e5383b;--series-9:#475569;--primary-container:#fde2e2;--on-primary:#fff;--secondary:#575e70;--secondary-container:#d9dff5;--shadow-floating:0 10px 15px -3px rgba(0,0,0,.05),0 4px 6px -4px rgba(0,0,0,.04);--shadow-card:none;--radius-sm:0.125rem;--radius:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-full:9999px}.dark{--bg:#111827;--bg-secondary:#1f2937;--surface:#1a1c1e;--surface-container:#2d3032;--surface-container-high:#353739;--text:#f0f1f3;--text-secondary:#c2c6d6;--text-muted:#9ca3af;--border:#374151;--border-subtle:#2d3748;--outline:#8b909e;--outline-variant:#4b5563;--accent:#ff6b6b;--success:#4ade80;--series-1:#60a5fa;--series-2:#f472b6;--series-3:#a78bfa;--series-4:#4ade80;--series-5:#22d3ee;--series-6:#fb923c;--series-7:#facc15;--series-8:#ff6b6b;--series-9:#94a3b8;--accent-dim:#ffa3a3;--primary-container:#5c1a1c;--on-primary:#2b0506;--secondary:#c0c6db;--secondary-container:#404758;--shadow-floating:0 10px 15px -3px rgba(0,0,0,.3),0 4px 6px -4px rgba(0,0,0,.2);--shadow-card:none}html{overflow-x:hidden}body{margin:0;background-color:var(--bg);color:var(--text);font-family:Pretendard,system-ui,sans-serif;font-size:1rem;line-height:1.6;overflow-x:clip}h1{font-weight:800;line-height:1.2;letter-spacing:-.02em}h2{font-weight:700;line-height:1.3;letter-spacing:-.01em}h3{font-weight:600;line-height:1.4}*{box-sizing:border-box}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}h2,h3{scroll-margin-top:90px}pre{background:var(--bg-secondary)!important;border:1px solid var(--border);border-radius:var(--radius-lg);padding:.9rem 1rem!important;margin:.75rem 0;overflow-x:auto;font-family:JetBrains Mono,monospace;font-size:.9rem;line-height:1.75;font-weight:400}pre code{background:transparent!important}.dark pre{background:#1a1c1e!important;border-color:var(--border);color:#cdd6f4!important}.dark pre code{color:inherit!important}.fab-bubble{transform:translateY(calc(var(--float, 0) * -7px))}}@layer components{.tag-badge{display:inline-flex;align-items:center;font-size:.75rem;line-height:1rem;color:var(--text-muted);background:var(--bg-secondary);padding:3px 12px;border-radius:var(--radius-full);font-weight:500;letter-spacing:.01em;border:1px solid var(--border)}.dark .tag-badge{background:var(--surface-container);border-color:var(--border)}.gb-section{background:linear-gradient(135deg,rgba(219,234,254,.45),rgba(237,233,254,.45) 50%,rgba(252,231,243,.45));border-radius:24px;padding:2.5rem 2rem;position:relative;overflow:hidden}.dark .gb-section{background:linear-gradient(135deg,rgba(30,58,138,.25),rgba(76,29,149,.25) 50%,rgba(131,24,67,.25))}.gb-card{background:hsla(0,0%,100%,.68);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid hsla(0,0%,100%,.6)}.dark .gb-card{background:rgba(25,30,55,.6);border:1px solid hsla(0,0%,100%,.08)}.gb-form-card{background:hsla(0,0%,100%,.75);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid hsla(0,0%,100%,.65)}.dark .gb-form-card{background:rgba(25,30,55,.65);border:1px solid hsla(0,0%,100%,.1)}.sidebar-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.dark .sidebar-card,.sidebar-card{background:var(--surface)}.philosophy-item{display:flex;gap:1.25rem;align-items:flex-start;padding:1rem 0;border-bottom:1px solid var(--border-subtle)}.philosophy-item:last-child{border-bottom:none}.philosophy-item-num{font-size:.72rem;font-weight:700;color:var(--accent);letter-spacing:.05em;padding-top:2px;min-width:1.5rem;flex-shrink:0}.philosophy-item-title{font-size:.925rem;font-weight:700;color:var(--text);margin:0 0 .3rem}.philosophy-item-desc{font-size:.85rem;color:var(--text-secondary);line-height:1.75;margin:0}.bottom-nav,.mobile-footer-links{display:none}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;min-height:56px;padding-bottom:env(safe-area-inset-bottom,0);background:color-mix(in srgb,var(--surface) 95%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border-subtle);box-shadow:0 -2px 12px rgba(0,0,0,.06)}.home-grid>*,.post-grid>*{min-width:0}.series-tab-bar{display:flex;flex-wrap:nowrap;overflow-x:auto;border-bottom:1px solid var(--border);scrollbar-width:none;-ms-overflow-style:none;touch-action:pan-x;-moz-user-select:none;user-select:none;-webkit-user-select:none}.series-tab-bar::-webkit-scrollbar{display:none}.series-tab-btn{padding:.6rem 1rem;border:none;border-bottom:2px solid transparent;background:transparent;font-size:.875rem;cursor:pointer;margin-bottom:-1px;font-family:inherit;letter-spacing:.01em;white-space:nowrap;flex-shrink:0;-moz-user-select:none;user-select:none;-webkit-user-select:none}.nav-link,.series-tab-btn{color:var(--text-muted);font-weight:500}.nav-link{font-size:.9rem;text-decoration:none}.prose-blockquote{border-left:3px solid var(--outline-variant);background:transparent;border-radius:0;padding:.5rem 1.25rem;margin:1.5rem 0;color:var(--text-secondary);font-style:normal}.prose-blockquote p{margin:0!important;line-height:1.85}.callout{display:flex;align-items:flex-start;gap:.625rem;padding:1rem 1.25rem;border-radius:6px;margin:1.5rem 0;border:none}.callout p{margin:0!important}.callout-icon{flex-shrink:0;font-size:1.1rem;line-height:1.8}.callout-body{flex:1 1;min-width:0;line-height:1.8;font-size:.95rem;color:var(--text)}.callout-body p{margin:0}.callout-body code{background:rgba(0,0,0,.08);padding:.1em .35em;border-radius:3px;font-family:JetBrains Mono,monospace;font-size:.875em}.callout-default,.callout-gray{background:#f1f1ef}.callout-blue{background:#e7f3f8}.callout-yellow{background:#fbf3db}.callout-orange{background:#fbecdd}.callout-red{background:#fdebec}.callout-green{background:#edf3ec}.callout-purple{background:#f4f0f7}.callout-pink{background:#f9eef3}.dark .callout-default,.dark .callout-gray{background:hsla(195,2%,60%,.15)}.dark .callout-blue{background:rgba(92,155,183,.15)}.dark .callout-yellow{background:rgba(203,145,47,.15)}.dark .callout-orange{background:rgba(215,129,50,.15)}.dark .callout-red{background:rgba(212,76,71,.15)}.dark .callout-green{background:rgba(82,158,114,.15)}.dark .callout-purple{background:rgba(154,109,185,.15)}.dark .callout-pink{background:rgba(186,85,211,.15)}.dark .callout-body code{background:hsla(0,0%,100%,.1)}.notion-columns{display:flex;flex-wrap:wrap;gap:1rem;margin:1.5rem 0;align-items:stretch}.notion-column{flex:1 1 200px;min-width:0;display:flex;flex-direction:column}.notion-column>.callout{margin:0;flex:1 1}}@media (max-width:768px){body{word-break:keep-all;overflow-wrap:break-word}.hero-section{margin:.5rem 0!important}.home-grid{grid-template-columns:1fr!important;gap:2rem!important}.home-sidebar{display:none!important}.profile-header{flex-direction:column!important;align-items:flex-start!important;gap:1.25rem!important}.about-toc-fixed{display:none!important}.project-deck-grid{grid-template-columns:1fr!important}.project-toc-nav{display:none!important}.header-nav{gap:.6rem!important}.hero-banner{height:220px!important;border-radius:16px!important}.hero-banner-tags{margin-bottom:.3rem!important}.hero-banner-content{padding:1.25rem 1.5rem 3rem!important;justify-content:flex-start!important}.hero-banner-date{left:1.5rem!important;bottom:1.25rem!important}.hero-banner-description{font-size:.78rem!important}.hero-banner-title{font-size:1.15rem!important}.notion-column{flex:1 1 100%!important}.post-grid{grid-template-columns:1fr!important;gap:0!important;justify-content:unset!important}.post-toc-aside{display:none!important}.post-title{font-size:1.6rem!important}}.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--border) 50%,var(--bg-secondary) 75%);background-size:200% 100%;border-radius:4px}.post-article{min-width:0;overflow-x:hidden;word-break:break-word}@media (max-width:480px){.header-nav{display:none!important}.mobile-header-actions{display:flex!important}main{padding-top:2rem!important;padding-bottom:calc(56px + env(safe-area-inset-bottom, 0px) + 2rem)!important}.bottom-nav{display:flex!important}.site-footer{display:none!important}.mobile-footer-links{display:block!important}.guestbook-fab{display:none!important}.guestbook-fab--home{display:flex!important;flex-direction:row!important;align-items:center!important;gap:.6rem!important;bottom:calc(56px + env(safe-area-inset-bottom, 0px) + 1.25rem)!important;right:1.25rem!important}.fab-bubble{transform:translateX(calc(var(--float, 0) * -5px))!important;padding:.45rem 1.75rem .45rem .85rem!important}.fab-bubble-tail{bottom:auto!important;left:auto!important;top:50%!important;right:-4px!important;transform:translateY(-50%)!important;border-left:6px solid var(--accent)!important;border-right:none!important;border-top:6px solid transparent!important;border-bottom:6px solid transparent!important}.fab-close-btn{display:flex!important}main h1{font-size:1.5rem!important}.post-row-date{display:none!important}.post-card-title{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical!important;overflow:hidden!important}.guestbook-grid{grid-template-columns:1fr!important}.series-folder-grid{grid-template-columns:repeat(3,1fr)!important}}.related-posts-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem;gap:1rem}@media (max-width:768px){.related-posts-grid{grid-template-columns:1fr}.about-activity-row,.about-edu-row{flex-direction:column!important;gap:.2rem!important}.about-row-period{min-width:unset!important;padding-top:0!important}}.home-wrap{max-width:1100px;margin:0 auto;padding-inline:1.5rem}.home-section{padding-block:clamp(3rem,7vw,5rem)}.home-rule{border-top:1px solid var(--border)}.home-marker{display:flex;align-items:center;gap:.6rem;margin:0;font-size:.88rem;font-weight:500;color:var(--text-secondary)}.home-marker:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--text)}.home-hero{max-width:1100px;margin:0 auto;padding-inline:1.5rem}.home-hero-play{position:relative;padding-top:clamp(3.5rem,9vw,6.5rem);padding-bottom:130px}.home-hero-stage{position:absolute;inset:0;z-index:2;display:flex;flex-wrap:wrap;align-content:flex-end;gap:.5rem;pointer-events:none}.home-hero-chip{display:inline-flex;align-items:center;padding:.45rem .95rem;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.85rem;font-weight:600;white-space:nowrap;text-decoration:none;box-shadow:var(--shadow-card);pointer-events:auto;-moz-user-select:none;user-select:none;-webkit-user-select:none}.home-hero-head{display:flex;align-items:flex-end;gap:clamp(2rem,6vw,4.5rem)}.home-hero-side{flex:0 0 320px;padding-bottom:.6rem}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.home-hero-photo{flex:none;width:clamp(130px,13vw,165px);height:auto}.home-strip{margin-top:1rem}.home-strip-label{display:flex;align-items:baseline;gap:.75rem;margin:0;font-size:.88rem}.home-strip-title{overflow:hidden;font-weight:600;color:var(--text);white-space:nowrap;text-overflow:ellipsis}.home-strip-track{display:flex;align-items:flex-end;gap:clamp(2px,.5vw,8px);height:112px;border-bottom:1px solid var(--border)}.home-strip-tick{flex:1 1;min-width:0;height:100%;display:flex;align-items:flex-end;justify-content:center}.home-strip-bar{display:block;width:100%;max-width:6px;height:34px;border-radius:2px 2px 0 0;transform-origin:center bottom}.home-post-row{display:grid;grid-template-columns:4.5rem minmax(0,1fr) 1.5rem;grid-template-areas:"date body arrow";grid-column-gap:1.25rem;column-gap:1.25rem;align-items:baseline;padding:1.5rem 0;border-top:1px solid var(--border);text-decoration:none}.home-post-arrow{grid-area:arrow;justify-self:end;color:var(--accent)}.home-numbered{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column-gap:2rem;column-gap:2rem;margin-top:2rem}.home-numbered-item{display:block;padding:1.25rem 0 1.75rem;border-top:1px solid var(--border);text-decoration:none}@media (max-width:768px){.home-numbered{grid-template-columns:1fr}.home-hero-head{flex-direction:column;align-items:flex-start;gap:1.5rem}.home-hero-side{flex:none;padding-bottom:0}.home-hero-photo{width:120px}.home-hero-play{padding-bottom:170px}.home-hero-chip{padding:.35rem .75rem;font-size:.75rem}.home-strip-track{height:72px}.home-strip-bar{height:22px}.home-post-row{grid-template-columns:minmax(0,1fr);grid-template-areas:"date" "body";row-gap:.5rem;padding:1.25rem 0}.home-post-arrow{display:none}}@media (max-width:480px){main.home-main{padding-top:0!important}}.text-arrow{display:inline-block;margin-left:.2em;vertical-align:-.125em}.text-arrow--back{margin-left:0;margin-right:.2em}.page-title{font-size:2rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;color:var(--text);margin:0 0 .5rem}body:has(.about-hero-grid) .site-footer,body:has(.about-hero-grid) .site-header{display:none}@media (prefers-reduced-motion:no-preference){.physics-stage:not(.is-physics) [data-physics]{visibility:hidden}}.physics-stage.is-physics [data-physics]{cursor:-webkit-grab;cursor:grab;touch-action:none;will-change:transform}.physics-stage.is-physics [data-physics]:active{cursor:-webkit-grabbing;cursor:grabbing}.about-physics-stage{position:absolute;inset:0;display:flex;flex-wrap:wrap;align-content:flex-end;justify-content:center;gap:.5rem;padding:1rem;--ball-scale:1}.about-physics-stage.is-physics{padding:0}.about-physics-ball{width:calc(var(--ball) * var(--ball-scale) * 1px);height:calc(var(--ball) * var(--ball-scale) * 1px);border-radius:50%;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ball-color) 14%,var(--bg));border:1px solid color-mix(in srgb,var(--ball-color) 22%,var(--border));-moz-user-select:none;user-select:none;-webkit-user-select:none}.about-physics-ball>*{width:46%;height:46%;pointer-events:none}@media (max-width:860px){.about-physics-stage{--ball-scale:0.62}}.work-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem 2rem}.work-featured{display:flex;flex-direction:column;gap:clamp(3.5rem,8vw,6rem)}.work-feature{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-gap:clamp(1.5rem,5vw,4rem);gap:clamp(1.5rem,5vw,4rem);align-items:center}.work-feature--flip{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.work-feature--flip .work-feature-mat{order:2}.work-feature-mat{display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;padding:clamp(.75rem,2.5vw,1.75rem);border-radius:var(--radius-xl);background:var(--bg-secondary);text-decoration:none}.work-feature-mat img{display:block;max-width:100%;max-height:100%;border-radius:var(--radius-md);box-shadow:var(--shadow-floating)}.work-feature-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.75rem;margin:0}.work-feature-meta dt{font-size:.75rem;color:var(--text-muted)}.work-feature-meta dd{margin:.1rem 0 0;font-size:.88rem;font-weight:500;color:var(--text)}.work-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;grid-gap:1rem;gap:1rem;align-items:baseline;padding:1rem 0;text-decoration:none}.work-row-roles{font-size:.78rem;color:var(--text-muted);white-space:nowrap}@media (max-width:768px){.work-head{flex-direction:column;align-items:flex-start}.work-feature,.work-feature--flip{grid-template-columns:minmax(0,1fr)}.work-feature--flip .work-feature-mat{order:0}.work-row{grid-template-columns:44px minmax(0,1fr)}.work-row-roles{display:none}}