.portfolio{--pe-font:"Pretendard Variable", Pretendard, sans-serif;--font-family-body:var(--pe-font);--font-family-heading:var(--pe-font);--font-family-code:var(--pe-font);--pe-ink:#21384b;--pe-paper:#fff;--pe-signal:#bfe4f5;--pe-signal-ink:#17364a;--pe-pastel:#a9dcf4;--pe-action:#2f7ca4;--pe-action-hover:#246988;--pe-line-dark:#21384b24;--pe-muted-dark:#5b7488;--page-bg:var(--pe-paper);--surface:#fbfdff;--surface-muted:#eff8fc;--ink:var(--pe-ink);--ink-soft:#557084;--ink-muted:#5d778a;--accent:#68acd0;--accent-strong:#2f7ca4;--blue:#4b8eaf;--amber:#6e94aa;--border:#d8e8f0;--border-strong:#a9c9d9;--button-pink:var(--pe-signal);--button-pink-border:#86c9e7;--button-pink-text:var(--pe-signal-ink);background:var(--pe-paper);color:var(--pe-ink);font-family:var(--pe-font)}.portfolio .site-nav{background:#ffffffeb;border-color:#0b22391f}.portfolio .brand{min-height:44px;color:var(--pe-ink);align-items:center;display:inline-flex}.portfolio .site-nav nav a{color:#4d6a7f;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding-inline:3px;display:inline-flex}.portfolio .site-nav nav a:hover{color:var(--pe-action)}.portfolio .site-nav__tools{align-items:center;gap:16px;display:flex}.portfolio .language-switcher{min-height:44px;color:var(--ink-muted);letter-spacing:.04em;align-items:center;gap:4px;font-size:11px;font-weight:750;display:inline-flex}.portfolio .language-switcher button{min-width:32px;min-height:44px;color:var(--ink-muted);cursor:pointer;letter-spacing:.04em;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:11px;font-weight:750;display:inline-flex}.portfolio .language-switcher button:hover,.portfolio .language-switcher button.is-active{color:var(--pe-action)}.portfolio .language-switcher button:focus-visible{outline:2px solid var(--pe-action);outline-offset:2px}.portfolio .section-band,.portfolio .section-band--muted{border-color:var(--border);background:var(--pe-paper)}.portfolio .section-band--muted{background:linear-gradient(#2f7ca40a 1px, transparent 1px), var(--surface);background-size:100% 56px}.portfolio .eyebrow{color:var(--accent-strong);font-family:var(--pe-font);letter-spacing:.1em}.portfolio .section-header h2,.portfolio .contact-section h2{color:var(--pe-ink);letter-spacing:-.035em}.portfolio .section-header p,.portfolio .metric-card p,.portfolio .principle-card p,.portfolio .case-summary,.portfolio .case-columns li,.portfolio .timeline-row__body p,.portfolio .timeline-row__body ul,.portfolio .credential-block li span{color:var(--ink-soft)}.portfolio .metric-card,.portfolio .principle-card,.portfolio .stack-card,.portfolio .case-card{background:var(--surface);box-shadow:none;border-color:#d0e4ee;border-radius:0}.portfolio .metric-card strong{color:var(--pe-ink);font-family:var(--pe-font);letter-spacing:-.04em}.portfolio .principle-card:first-child{background:var(--pe-signal);color:var(--pe-signal-ink);border-color:#86c9e7}.portfolio .card-index,.portfolio .case-card__meta span{color:var(--accent-strong)}.portfolio .case-card__meta{background:#edf8fd}.portfolio .case-card__body{position:relative}.portfolio .case-card__intro{grid-template-columns:minmax(0,1fr) 270px;align-items:end;gap:32px;margin-top:20px;display:grid}.portfolio .case-card__context{color:var(--accent-strong);font-family:var(--pe-font);letter-spacing:.11em;font-size:10px;font-weight:820}.portfolio .case-card__intro h3{margin-top:8px}.portfolio .case-card__signal{background:var(--pe-ink);color:#fff;flex-direction:column;justify-content:space-between;align-self:stretch;min-height:124px;padding:18px;display:flex}.portfolio .case-card__signal span{color:#bfe9fb;font-family:var(--pe-font);letter-spacing:.08em;font-size:9px}.portfolio .case-card__signal strong{text-wrap:balance;font-size:18px;line-height:1.35}.portfolio .case-card .astryx-badge,.portfolio .astryx-badge{color:#315f78;background:#f3faff;border-color:#c7dfe9;border-radius:2px}.portfolio .case-columns{border-color:#d0e4ee}.portfolio .case-columns h4{color:var(--accent-strong);letter-spacing:.08em}.portfolio .case-columns li:before{background:var(--pe-action);border-radius:0}.portfolio .timeline,.portfolio .timeline-row,.portfolio .credential-block,.portfolio .credential-block li,.portfolio .footer-line{border-color:#d0e4ee}.portfolio .timeline-row__time,.portfolio .timeline-row__time small{color:var(--ink-muted)}.portfolio .tag-cloud span{color:#315f78;background:#f3faff;border-color:#c7dfe9;border-radius:2px}.portfolio .credential-block p{color:var(--accent-strong)}.portfolio .contact-section{color:var(--pe-signal-ink);background:#d3effc}.portfolio .contact-section .eyebrow,.portfolio .contact-actions>a:not([class]),.portfolio .footer-line{color:var(--pe-signal-ink)}.portfolio .contact-section .astryx-button{min-height:44px;border-color:var(--pe-signal-ink)!important;background:var(--pe-signal-ink)!important;color:#d3effc!important}.portfolio .contact-actions>a:not([class]){align-items:center;min-height:44px;display:inline-flex}.portfolio a{cursor:pointer}.portfolio a:focus-visible{outline:3px solid var(--pe-action);outline-offset:3px}.portfolio .hero-section a:focus-visible,.portfolio .contact-section a:focus-visible{outline-color:#075f93}.portfolio .metric-grid{border-top:1px solid var(--pe-ink);border-bottom:1px solid var(--pe-ink);gap:0}.portfolio .metric-card{background:0 0;border:0;border-right:1px solid #d0e4ee;min-height:184px}.portfolio .metric-card:last-child{border-right:0}.portfolio .principle-grid{border-top:1px solid var(--pe-ink);display:block}.portfolio .principle-card,.portfolio .principle-card:first-child{min-height:0;color:var(--pe-ink);background:0 0;border:0;border-bottom:1px solid #d0e4ee}.portfolio .principle-card>*{grid-template-columns:72px minmax(240px,.72fr) minmax(0,1fr);align-items:center;gap:24px;display:grid}.portfolio .principle-card:first-child p{color:var(--ink-soft)}.portfolio .principle-card h3{font-size:21px}.portfolio .principle-card p{font-size:15px}.portfolio .stack-grid{border-top:1px solid var(--pe-ink);display:block}.portfolio .stack-card{background:0 0;border:0;border-bottom:1px solid #d0e4ee;min-height:0}.portfolio .stack-card>*{grid-template-columns:260px minmax(0,1fr);align-items:center;gap:32px;display:grid}.portfolio .stack-card__title{color:var(--pe-ink)}.portfolio .stack-card__title svg{color:var(--accent-strong)}@media (max-width:820px){.portfolio .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio .metric-card:nth-child(2){border-right:0}.portfolio .metric-card:nth-child(-n+2){border-bottom:1px solid #d0e4ee}.portfolio .principle-card>*{grid-template-columns:52px minmax(0,1fr)}.portfolio .principle-card p{grid-column:2}.portfolio .stack-card>*{grid-template-columns:1fr;gap:16px}.portfolio .case-card__intro{grid-template-columns:1fr;gap:20px}.portfolio .case-card__signal{min-height:112px}}@media (max-width:560px){.portfolio .metric-grid{grid-template-columns:1fr}.portfolio .metric-card,.portfolio .metric-card:nth-child(2){border-bottom:1px solid #d0e4ee;border-right:0;min-height:0}.portfolio .metric-card:last-child{border-bottom:0}.portfolio .principle-card>*{grid-template-columns:38px minmax(0,1fr);gap:12px}}.hero-section--system{min-height:calc(100svh - 72px);color:var(--pe-ink);background-color:#0000;background-image:linear-gradient(#2f7ca40b 1px,#0000 1px),linear-gradient(90deg,#2f7ca40b 1px,#0000 1px),linear-gradient(135deg,#fff 0%,#f5fbfe 58%,#eaf7fd 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:48px 48px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border-bottom:0;padding:72px 0 0;display:block;position:relative;overflow:hidden}.hero-system-layout{grid-template-columns:minmax(0,1.06fr) minmax(430px,.94fr);align-items:center;gap:clamp(48px,7vw,96px);min-height:calc(100svh - 230px);padding-bottom:72px;display:grid}.hero-copy--system{text-align:left;max-width:none;margin:0;animation:.56s cubic-bezier(.22,1,.36,1) both pe-rise}.hero-kicker{border-bottom:1px solid var(--pe-line-dark);color:var(--accent-strong);font-family:var(--pe-font);letter-spacing:.12em;justify-content:space-between;align-items:center;gap:24px;padding:0 0 16px;font-size:12px;font-weight:780;display:flex}.hero-copy--system h1{color:var(--pe-ink);letter-spacing:-.045em;text-align:left;margin:30px 0 24px;font-size:clamp(52px,5.45vw,78px);font-weight:860;line-height:1.03}.hero-copy--system h1 span{color:var(--pe-action);display:block}.hero-copy--system .hero-lead{color:#557084;text-wrap:pretty;max-width:650px;margin:0;font-size:clamp(18px,1.65vw,22px);font-weight:560;line-height:1.55}.hero-actions--system{justify-content:flex-start;align-items:center;gap:12px;margin-top:34px;display:flex}.signal-button,.ghost-button{border:1px solid #0000;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:0 18px;font-size:14px;font-weight:760;transition:background-color .16s,color .16s,transform .16s,border-color .16s;display:inline-flex}.signal-button{background:var(--pe-pastel);color:var(--pe-signal-ink)}.signal-button:hover{background:#93d1ed;transform:translateY(-2px)}.ghost-button{color:var(--pe-ink);border-color:#b7d7e6}.ghost-button:hover{background:#a9dcf452;border-color:#93cbe3;transform:translateY(-2px)}.hero-proof{color:var(--pe-muted-dark);font-family:var(--pe-font);letter-spacing:.1em;flex-wrap:wrap;gap:10px 24px;margin-top:34px;font-size:11px;font-weight:700;display:flex}.hero-proof span{align-items:center;gap:8px;display:inline-flex}.hero-proof span:before{background:var(--pe-action);content:"";width:5px;height:5px}.delivery-system{border:1px solid var(--pe-line-dark);background:#ffffffbd;animation:.66s cubic-bezier(.22,1,.36,1) .11s both pe-rise;box-shadow:18px 18px #74b8d72e}.delivery-system__header{border-bottom:1px solid var(--pe-line-dark);color:#48677a;min-height:48px;font-family:var(--pe-font);letter-spacing:.08em;justify-content:space-between;align-items:center;gap:20px;padding:0 16px;font-size:11px;display:flex}.delivery-system__status{color:var(--pe-action);align-items:center;gap:7px;display:inline-flex}.delivery-system__status i{background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.8s ease-in-out infinite pe-status;box-shadow:0 0 12px}.delivery-system__loop{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.delivery-system__stage{border-right:1px solid var(--pe-line-dark);border-bottom:1px solid var(--pe-line-dark);min-height:148px;padding:18px}.delivery-system__stage:nth-child(2n){border-right:0}.delivery-system__stage span{color:var(--pe-action);font-family:var(--pe-font);font-size:12px}.delivery-system__stage strong{color:var(--pe-ink);font-family:var(--pe-font);letter-spacing:.04em;margin-top:22px;font-size:18px;display:block}.delivery-system__stage p{color:var(--pe-muted-dark);margin:7px 0 0;font-size:13px;line-height:1.45}.delivery-system__signals{border-bottom:1px solid var(--pe-line-dark);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.delivery-system__signals div{border-right:1px solid var(--pe-line-dark);min-width:0;padding:14px 10px}.delivery-system__signals div:last-child{border-right:0}.delivery-system__signals span,.delivery-system__signals strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.delivery-system__signals span{color:var(--pe-muted-dark);font-family:var(--pe-font);letter-spacing:.06em;font-size:9px}.delivery-system__signals strong{color:var(--pe-action);margin-top:5px;font-size:13px}.delivery-system__command{color:#48677a;font-family:var(--pe-font);padding:18px;font-size:12px}.delivery-system__command span{color:var(--pe-action);margin-right:7px}.hero-ticker{border-top:1px solid var(--pe-line-dark);color:var(--pe-signal-ink);background:#c5eafd;overflow:hidden}.hero-ticker>div{min-width:max-content;min-height:62px;font-family:var(--pe-font);letter-spacing:.08em;align-items:center;gap:24px;padding:0 32px;font-size:13px;font-weight:820;display:flex}.hero-ticker i{opacity:.4;font-style:normal}.resume-section{border-bottom:1px solid var(--border);background:#f6fbfe;padding:64px 0 72px}.resume-summary{background:#fff;border:1px solid #cfe3ed;grid-template-columns:minmax(0,1.35fr) minmax(250px,.9fr) minmax(210px,.72fr);display:grid}.resume-summary__identity,.resume-summary__career,.resume-summary__facts{border-right:1px solid #d6e7ef;min-height:244px;padding:28px 30px}.resume-summary__identity h2{max-width:570px;color:var(--pe-ink);letter-spacing:-.045em;text-wrap:balance;margin:16px 0 10px;font-size:clamp(25px,2.4vw,36px);line-height:1.12}.resume-summary__identity>p{max-width:540px;color:var(--ink-soft);margin:0;font-size:15px;line-height:1.6}.resume-summary__actions{flex-wrap:wrap;gap:10px 18px;margin-top:24px;display:flex}.resume-summary__actions a{min-height:36px;color:var(--pe-action);align-items:center;gap:7px;font-size:12px;font-weight:760;display:inline-flex}.resume-summary__actions a:not(.resume-summary__primary){color:var(--ink-muted)}.resume-summary__actions a:hover{color:var(--pe-ink)}.resume-summary__primary{background:#dff3fc;border:1px solid #8ecce8;padding:0 12px}.resume-summary__label{color:var(--accent-strong);font-family:var(--pe-font);letter-spacing:.12em;font-size:10px;font-weight:820;display:block}.resume-career-list{margin-top:18px}.resume-career-row{border-bottom:1px solid #e2eef3;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:11px 0;display:grid}.resume-career-row:first-child{padding-top:0}.resume-career-row:last-child{border-bottom:0}.resume-career-row__index{color:var(--pe-action);letter-spacing:.08em;font-size:10px;font-weight:820}.resume-career-row strong,.resume-career-row span:not(.resume-career-row__index){display:block}.resume-career-row strong{color:var(--pe-ink);font-size:13px;line-height:1.3}.resume-career-row span:not(.resume-career-row__index){color:var(--ink-muted);margin-top:4px;font-size:11px}.resume-summary__facts{background:#eef9fd;flex-direction:column;align-items:flex-start;display:flex}.resume-summary__facts>strong{color:var(--pe-ink);margin-top:20px;font-size:18px;line-height:1.25}.resume-summary__facts>span:not(.resume-summary__label){color:var(--ink-soft);margin-top:7px;font-size:12px;line-height:1.4}.resume-summary__facts small{color:var(--ink-muted);margin-top:10px;font-size:11px}.resume-current-badge{color:var(--pe-action);letter-spacing:.07em;background:#fff;border:1px solid #9ad3e9;margin-top:auto;padding:5px 8px;font-size:10px;font-weight:800}.resume-summary__footer{border-top:1px solid #d6e7ef;grid-column:1/-1;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);display:grid}.resume-facts,.resume-toolkit{padding:20px 30px}.resume-facts{border-right:1px solid #d6e7ef;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.resume-fact span,.resume-fact strong{display:block}.resume-fact span{color:var(--ink-muted);letter-spacing:.08em;font-size:10px;font-weight:760}.resume-fact strong{color:var(--pe-ink);margin-top:4px;font-size:13px;line-height:1.35}.resume-toolkit>div{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.resume-toolkit>div span{color:#315f78;background:#f8fcfe;border:1px solid #c6e0eb;padding:4px 8px;font-size:11px;font-weight:680}.signal-button:focus-visible,.ghost-button:focus-visible{outline-offset:3px;outline:3px solid #075f93}.portfolio .astryx-card,.portfolio .astryx-badge{transition:none!important}.portfolio .astryx-button{transition-property:background-color,border-color,color,opacity,transform!important;transition-duration:.16s!important;transition-timing-function:ease-out!important}@keyframes pe-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes pe-status{0%,to{opacity:.55;transform:scale(.82)}50%{opacity:1;transform:scale(1.15)}}@media (prefers-reduced-motion:reduce){.hero-copy--system,.delivery-system,.delivery-system__status i{animation:none}.signal-button,.ghost-button,.portfolio .astryx-button{transition:none!important}}@media (max-width:980px){.resume-summary{grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr)}.resume-summary__identity{border-bottom:1px solid #d6e7ef}.resume-summary__career{border-bottom:1px solid #d6e7ef;border-right:0}.resume-summary__facts{border-right:1px solid #d6e7ef}.resume-summary__footer{grid-column:1/-1}.hero-system-layout{grid-template-columns:1fr;gap:56px;padding-bottom:64px}.hero-copy--system{max-width:760px}}@media (max-width:560px){.resume-section{padding:48px 0 56px}.resume-summary{display:block}.resume-summary__identity,.resume-summary__career,.resume-summary__facts{border-bottom:1px solid #d6e7ef;border-right:0;min-height:0;padding:24px 20px}.resume-summary__identity h2{font-size:28px}.resume-summary__footer{display:block}.resume-facts{border-bottom:1px solid #d6e7ef;border-right:0;gap:12px;padding:18px 20px}.resume-toolkit{padding:18px 20px 22px}.portfolio .site-nav__tools{gap:2px}.portfolio .site-nav nav{gap:0}.portfolio .site-nav nav a{min-width:44px;font-size:10px}.portfolio .language-switcher button{min-width:44px}.hero-section--system{min-height:auto;padding-top:46px}.hero-system-layout{gap:42px}.hero-kicker{flex-direction:column;align-items:flex-start;gap:4px}.hero-copy--system h1{margin-top:24px;font-size:clamp(44px,13.2vw,58px)}.hero-copy--system .hero-lead{font-size:17px}.hero-actions--system{flex-direction:column;align-items:stretch}.signal-button,.ghost-button{width:100%}.delivery-system{box-shadow:10px 10px #74b8d72e}.delivery-system__header{flex-direction:column;align-items:flex-start;gap:6px;padding-block:12px}.delivery-system__stage{min-height:138px;padding:14px}.delivery-system__stage strong{margin-top:18px;font-size:15px}.delivery-system__signals{grid-template-columns:repeat(2,minmax(0,1fr))}.delivery-system__signals div:nth-child(2){border-right:0}.delivery-system__signals div:nth-child(-n+2){border-bottom:1px solid var(--pe-line-dark)}}
