.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{color-scheme:light;--kr:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,system-ui,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;--en:"Poppins","Pretendard Variable",Pretendard,system-ui,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,"Pretendard Variable",monospace;--bg:#ffffff;--white:#ffffff;--ink:#1c1819;--ink2:#4a4243;--muted:#8f8586;--line:#eee6e6;--accent:#d8384a;--soft:#fdf0f1;--panel:#f6f1f1;--lav:#f2eefb;--butter:#fff5e1;--sky:#edf3fa;--steel:#f2f3f6;--blush-a:#fff6f4;--blush-b:#fde2e7;--peach:#fff2ec;--mint:#edf6f1;--night:#17141a;--night-ink:#f4eff1;--term:#0f0c11;--term-ink:#ebe5e8;--ok:#86e0ad;--wave:#eadfe0;--key:#f3f1f2;--bar:#e9e9ee;--jp:#9aa1ab;--dot:#dcd2d3;--pill:rgba(24,20,22,.84)}:root:lang(ja){--kr:"Pretendard Variable",Pretendard,"Noto Sans JP","Hiragino Sans","Yu Gothic UI",Meiryo,system-ui,sans-serif}:root:lang(ja) body{word-break:normal;word-break:auto-phrase;line-break:strict}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--kr);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;word-break:keep-all;overflow-wrap:break-word;overflow-x:clip}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:40;background:var(--bg)}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;text-wrap:balance}p{margin:0;text-wrap:pretty}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:10px}.w{width:100%;max-width:1200px;margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}.page{padding-bottom:40px}[id]{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 92px)}.sec[id]{scroll-margin-top:calc(env(safe-area-inset-top,0px) - 12px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:50px;padding:0 24px;border-radius:999px;border:1px solid transparent;font:inherit;font-size:15.5px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;cursor:pointer;transition:transform .2s ease,background-color .2s,border-color .2s,color .2s}.btn:hover{transform:translateY(-1px)}.btn svg{width:15px;height:15px;flex:none}.btn--sm{height:40px;padding:0 17px;font-size:14px}.btn--dark{background:var(--ink);color:var(--white)}.btn--dark:hover{background:#000}.btn--line{background:var(--white);border-color:var(--line);color:var(--ink)}.btn--line:hover{border-color:var(--ink)}.bars{display:inline-flex;align-items:center;gap:2px;height:14px}.bars i{display:block;width:3px;height:5px;border-radius:2px;background:currentColor;animation:bar 1.1s ease-in-out infinite}.bars i:nth-child(2){animation-delay:-.18s}.bars i:nth-child(3){animation-delay:-.36s}.bars i:nth-child(4){animation-delay:-.54s}.bars i:nth-child(5){animation-delay:-.72s}@keyframes bar{0%,to{height:4px}50%{height:14px}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes blink{50%{opacity:0}}@keyframes pulse{0%{box-shadow:0 0 #d8384a73}to{box-shadow:0 0 0 10px #d8384a00}}@keyframes rise{0%{transform:translateY(14px)}to{transform:none}}.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:#ffffffdb;-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid transparent;transition:border-color .25s}.nav.is-stuck{border-bottom-color:var(--line)}.nav__in{display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;letter-spacing:-.02em}.lang{display:flex;align-items:center;font-family:var(--en);font-size:13.5px;font-weight:600}.lang [data-lang]{display:inline-grid;place-items:center;min-width:40px;height:36px;padding:0 6px;border:0;border-radius:10px;background:none;font:inherit;letter-spacing:.04em;color:var(--muted);cursor:pointer;transition:color .2s}.lang [data-lang]:hover{color:var(--ink)}.lang [aria-pressed=true],.lang [aria-current=true]{color:var(--accent)}.lang__sep{color:var(--dot);font-weight:400}@keyframes cue-bob{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}.sec{padding-top:120px}.head{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:36px}.eyebrow{margin-bottom:12px;font-size:14.5px;font-weight:700;color:var(--accent)}.h2{font-size:clamp(30px,3.6vw,46px);font-weight:800;line-height:1.25;letter-spacing:-.045em}.head>p{max-width:25em;font-size:16px;color:var(--muted)}@media(min-width:901px){.head{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:16px 56px}.head>p{text-align:right}}html{scrollbar-gutter:stable}html.is-locked{overflow:hidden}html.is-sheet{overscroll-behavior:none}.skill__chips i,.stack__chips i{width:8px;height:8px;border-radius:50%;background:var(--c)}@keyframes sheetin{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes float-in{0%{transform:translateY(26px)}to{transform:none}}.page{padding-bottom:0}.view{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 132px)}.view.is-enter{animation:view-in .5s cubic-bezier(.2,.7,.2,1) both}.view.is-leave{opacity:0;transform:translateY(-6px);transition:opacity .16s ease,transform .16s ease}@keyframes view-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.view .sec{padding-top:64px}.dock{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);z-index:35;display:flex;width:max-content;max-width:calc(100% - 24px);margin-inline:auto;padding:6px;border-radius:999px;background:#ffffffd1;-webkit-backdrop-filter:blur(22px) saturate(1.8);backdrop-filter:blur(22px) saturate(1.8);box-shadow:0 0 0 1px #1c18190f,0 22px 44px -18px #5a182861,0 3px 10px -4px #1c18191f,inset 0 1px #ffffffe6}.dock__pill{position:absolute;top:6px;bottom:6px;left:0;width:0;border-radius:999px;background:var(--soft);box-shadow:inset 0 0 0 1px #d8384a1a;transition:transform .45s cubic-bezier(.3,1.2,.4,1),width .45s cubic-bezier(.3,1.2,.4,1)}.dock a{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:70px;padding:9px 12px 8px;border-radius:999px;font-size:11.5px;font-weight:600;line-height:1.2;letter-spacing:-.01em;color:var(--ink2);white-space:nowrap;transition:color .2s}.dock a[aria-current=page]{color:var(--accent)}.dock svg{width:20px;height:20px;transition:transform .2s}.dock svg *{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dock a:active svg{transform:scale(.9)}@media(hover:hover)and (pointer:fine){.dock a:hover{color:var(--ink)}.dock a[aria-current=page]:hover{color:var(--accent)}}@media(max-width:640px){.view .sec{padding-top:44px}}.next-cue{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 100px);z-index:34;display:flex;align-items:center;gap:7px;width:max-content;max-width:calc(100% - 32px);margin-inline:auto;padding:9px 16px 9px 12px;border:0;border-radius:999px;background:var(--pill);color:var(--white);font:inherit;font-size:13.5px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;cursor:pointer;visibility:hidden;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s,visibility .25s}.next-cue.is-on{visibility:visible;opacity:1;transform:none}.next-cue svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;animation:nudge 1.1s ease-in-out infinite}@keyframes nudge{0%,to{transform:translateY(-1px)}50%{transform:translateY(2px)}}@media(max-width:420px){.dock{bottom:calc(env(safe-area-inset-bottom,0px) + 14px);padding:5px}.dock__pill{top:5px;bottom:5px}.dock a{min-width:66px;padding:9px 8px 8px;font-size:11px}.next-cue{bottom:calc(env(safe-area-inset-bottom,0px) + 88px);font-size:13px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
