@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/space-grotesk-500.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/space-grotesk-700.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-400.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/inter-500.woff2) format("woff2")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/rung/fonts/hanken-grotesk-var.woff2) format("woff2")}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:200 800;font-display:swap;src:url(/rung/fonts/atkinson-hyperlegible-next-var.woff2) format("woff2")}@font-face{font-family:Atkinson Hyperlegible Next;font-style:italic;font-weight:200 800;font-display:swap;src:url(/rung/fonts/atkinson-hyperlegible-next-var-italic.woff2) format("woff2")}.resume-page{--bg: #ffffff;--fg: #000000;--muted: #595959;--cv-rule-base: #e3e3e3;--rule: var(--cv-rule-base);--cjk-sans: "PingFang SC", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", "Malgun Gothic", "Microsoft YaHei", "Microsoft JhengHei", "Noto Sans CJK SC", "Noto Sans SC", "Noto Sans JP", "Noto Sans KR", sans-serif;--cjk-serif: "Songti SC", "Hiragino Mincho ProN", "Yu Mincho", "SimSun", "Batang", "Noto Serif CJK SC", "Noto Serif SC", "Noto Serif JP", "Noto Serif KR", serif;--display: "Space Grotesk", "Inter", system-ui, var(--cjk-sans);--body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, var(--cjk-sans);--cv-accent: var(--fg);--cv-accent-text: var(--muted);--cv-accent-light: var(--muted);--cv-section-gap: 2.7rem;--cv-job-gap: 2rem;--cv-head-gap: 2.6rem;--cv-bullet-gap: .34rem;--cv-body-line: 1.55;--fs-scale: 1;--cv-body-size: calc(.969rem * var(--fs-scale));--fs-label: calc(.8rem * var(--fs-scale));--fs-meta: calc(.9rem * var(--fs-scale));--fs-body: calc(.96rem * var(--fs-scale));--fs-lead: calc(1.05rem * var(--fs-scale));--fs-title: calc(1.16rem * var(--fs-scale));--cv-name-size: calc(1.9rem * var(--fs-scale));--cv-h2-bar: 2.5px;--cv-h2-transform: uppercase;--cv-h2-letter: .15em;--cv-rail-w: 32%;margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:var(--cv-body-size);line-height:var(--cv-body-line);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html[data-view-mode=dark] .resume-page{--bg: #0a0a0a;--fg: #ffffff;--muted: #9d9d9d;--cv-rule-base: #242424}.resume-page *,.resume-page *:before,.resume-page *:after{box-sizing:border-box}.resume-page a{color:inherit}.cv-mode{position:relative;width:2.4rem;height:2.4rem;display:flex;justify-content:center;align-items:center;background:none;border:0;cursor:pointer}.cv-mode .sun,.cv-mode .moon{width:50%;height:50%;position:absolute;opacity:0;transform:scale(.6) rotate(0);transition:transform .3s ease-in,opacity .2s ease-in .1s}.cv-mode .sun{background:radial-gradient(circle,#0000 50%,#26292c 50%)}.cv-mode .sun:before{content:"";position:absolute;display:block;width:100%;height:100%;background:radial-gradient(circle,#26292c 30%,#0000 30% 50%,#26292c 50%);transform:rotate(45deg)}html[data-view-mode=light] .cv-mode .sun{opacity:1;transform:scale(1) rotate(180deg)}.cv-mode .moon{left:12.5%;top:18.75%;background-color:transparent;border-radius:50%;box-shadow:9px 3px #fcfdff;transform:scale(.3) rotate(65deg)}html[data-view-mode=dark] .cv-mode .moon{opacity:1;transform:scale(1) rotate(0)}.cv-mode .moon .star{position:absolute;top:25%;left:5%;display:block;width:0;height:0;border-inline-end:7px solid transparent;border-bottom:5px solid #fcfdff;border-inline-start:7px solid transparent;transform:scale(.55) rotate(35deg);opacity:0;transition:all .2s ease-in .4s}.cv-mode .moon .star:before{content:"";position:absolute;top:-3px;left:-5px;width:0;height:0;border-bottom:5px solid #fcfdff;border-inline-start:3px solid transparent;border-inline-end:3px solid transparent;transform:rotate(-35deg)}.cv-mode .moon .star:after{content:"";position:absolute;top:0;left:-7px;width:0;height:0;border-inline-end:7px solid transparent;border-bottom:5px solid #fcfdff;border-inline-start:7px solid transparent;transform:rotate(-70deg)}.cv-mode .moon .star.small{position:relative;top:50%;left:37.5%;transform:scale(.35) rotate(35deg);opacity:0;transition:all .2s ease-in .45s}.cv-mode .moon.visible .star{opacity:.8}.cv-mode .moon.visible .star.small{opacity:.7;transform:scale(.45) rotate(35deg)}.cv{max-width:860px;margin:0 auto;padding:1.5rem 1.6rem 6rem}.cv-head{margin-bottom:var(--cv-head-gap)}.cv-tagline{margin:.5rem 0 0;max-width:54ch;color:var(--cv-accent-light);font-size:var(--fs-lead)}.is-editing [data-rz-editable]{min-height:calc(24px / var(--rz-fit, 1));align-content:center}.cv-contact{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.55rem 1.5rem;font-size:var(--fs-meta)}.cv-contact li{display:inline-flex;align-items:center;gap:.45rem;unicode-bidi:plaintext}.cv-contact svg{width:16px;height:16px;color:var(--muted);flex:none}.cv-contact li[data-cv-contact=linkedin] svg{width:12px;height:12px}.cv-contact a{text-decoration:none;border-bottom:1px solid transparent;padding-bottom:1px}.cv-contact a:hover{border-color:var(--fg)}.cv-stats{list-style:none;margin:.8rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.cv-stats li{font-size:var(--fs-label);color:var(--muted);padding:.35rem .7rem;border:1px solid var(--cv-rule-base);border-radius:999px}.cv-stats strong{color:var(--fg);font-family:var(--display);font-weight:700}.cv-status-text{margin:0;max-width:74ch}.cv-section{margin:0 0 var(--cv-section-gap)}.cv-section h2{position:relative;margin:0 0 1.3rem;font-family:var(--display);font-weight:700;font-size:var(--fs-label);text-transform:var(--cv-h2-transform);letter-spacing:var(--cv-h2-letter);color:var(--cv-accent);padding-bottom:.6rem;border-bottom:1px solid var(--rule)}.cv-section h2:after{content:"";position:absolute;left:0;bottom:-1.5px;width:40px;height:var(--cv-h2-bar);background:var(--cv-accent)}.cv-summary{margin:0;font-size:var(--fs-lead);max-width:74ch}.cv-job{margin:0 0 var(--cv-job-gap)}.cv-job:last-child{margin-bottom:0}.cv-row{display:flex;justify-content:space-between;align-items:baseline;gap:1.2rem;flex-wrap:wrap}.cv-role{min-width:0}.cv-job h3{margin:0;font-family:var(--display);font-weight:700;font-size:var(--fs-title);letter-spacing:-.005em}.cv-org{margin:.2rem 0 0;color:var(--muted);font-size:var(--fs-meta)}.cv-dates{font-family:var(--display);font-weight:500;font-size:var(--fs-label);color:var(--cv-accent-text);white-space:nowrap;font-variant-numeric:tabular-nums}.cv-bullets{margin:.5rem 0 0;padding:0;list-style:none}.cv-bullets li{position:relative;padding-inline-start:1.2rem;margin:var(--cv-bullet-gap) 0}.cv-bullets li:before{content:"";position:absolute;left:2px;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--cv-accent)}.cv-clients{margin:1.1rem 0 0;padding-inline-start:1.3rem;border-inline-start:2px solid var(--rule);display:grid;gap:1.3rem}.cv-client h4{margin:0;font-weight:700;font-size:var(--fs-body)}.cv-loc{color:var(--muted);font-weight:400}.cv-client-brief h4{font-weight:500;font-size:var(--fs-meta)}.cv-client-brief .cv-note{margin:.15rem 0 0;color:var(--muted);font-size:var(--fs-meta)}.cv-earlier{list-style:none;margin:0;padding:0}.cv-earlier li{display:grid;grid-template-columns:1fr auto;column-gap:1.2rem;padding:.65rem 0;border-bottom:1px solid var(--rule);align-items:baseline}.cv-earlier li:last-child{border-bottom:0}.cv-earlier-role{grid-column:1;grid-row:1;font-weight:700}.cv-earlier-org{grid-column:1;grid-row:2;color:var(--muted);font-size:var(--fs-meta)}.cv-earlier .cv-dates{grid-column:2;grid-row:1 / span 2;align-self:center}.cv-skills{margin:0;display:grid;gap:1.05rem}.cv-skills>div{display:grid;grid-template-columns:190px 1fr;gap:.4rem 1.6rem;align-items:baseline}.cv-skills dt{margin:0;font-family:var(--display);font-weight:700;font-size:var(--fs-meta)}.cv-skills dd{margin:0;font-size:var(--fs-body)}.cv-skills-line{margin:0;font-size:var(--fs-body);max-width:74ch}.cv-two-col{display:grid;grid-template-columns:1fr 1fr;column-gap:2.6rem;row-gap:1.8rem;align-items:start}.cv-two-col>div{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid}.cv-two-col>div:last-child:nth-child(odd){grid-column:1 / -1}.cv-plain{list-style:none;margin:0;padding:0}.cv-plain li{margin:0 0 .7rem}.cv-plain li:last-child{margin-bottom:0}.cv-muted{color:var(--muted);font-size:var(--fs-meta)}.cv-two-col-band{display:grid;grid-template-columns:1fr 1fr;column-gap:2.6rem;row-gap:var(--cv-section-gap);align-items:start}.cv-two-col-band>.cv-section{margin:0;break-inside:avoid;page-break-inside:avoid}.cv-two-col-band>.cv-section:last-child:nth-child(odd){grid-column:1 / -1}@media (max-width: 640px){.cv-skills>div{grid-template-columns:1fr;gap:.15rem}.cv-two-col,.cv-two-col-band{grid-template-columns:1fr}.cv-bar,.cv{padding-inline-start:1.1rem;padding-inline-end:1.1rem}}.cv-field input.invalid{border-color:#b3261e}html[data-view-mode=dark] .cv-field input.invalid{border-color:#ff8a7a}@page{size:letter;margin:12mm 16mm 14mm}@page cv-bleed{size:letter;margin:0}@media print{html{font-size:12.9px}.resume-page,html[data-view-mode=dark] .resume-page{--bg: #fff;--fg: #000;--muted: #404040;--rule: #c9c9c9;--rule-soft: #e4e4e4;background:#fff;color:#000}.cv{max-width:none;margin:0;padding:1.5rem 1.6rem 0}.cv-contact svg{width:13px;height:13px}.cv-contact li[data-cv-contact=linkedin] svg{width:10px;height:10px}.cv-bullets li:before{width:4px;height:4px}.cv-skills>div{grid-template-columns:12.3em 1fr}.cv-bullets li:before,.cv-section h2:after{print-color-adjust:exact;-webkit-print-color-adjust:exact}.cv-client,.cv-earlier li,.cv-skills>div{break-inside:avoid;page-break-inside:avoid}.cv-section h2,.cv-job h3{break-after:avoid;page-break-after:avoid}.cv,.cv-section,.cv-job{orphans:3;widows:3}.resume-page[data-cv-columns=two]{page:cv-bleed}.resume-page[data-cv-columns=two] .cv{padding:0;min-height:100vh}.cv--two>.cv-rail{padding:11mm 6mm 10mm 9.5mm}.cv--two>.cv-main{padding:11mm 11mm 10mm 8mm}.resume-page a{color:inherit;text-decoration:none;border:0}}.resume-doc{line-height:1.55}.cv.letter{max-width:720px;margin:0;padding:0}.letter-head{margin-bottom:2.2rem}.letter-body p{margin:0 0 .95rem;max-width:64ch}.letter-date{color:var(--muted)}@media print{.cv.letter{max-width:45rem}.letter-body a{color:inherit;text-decoration:none}.letter-body .cv-link{text-decoration:underline}}
