@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Serif+Display:ital@0;1&family=Manrope:wght@400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap";.noise-overlay{z-index:20;pointer-events:none;opacity:.22;width:100vw;height:100vh;image-rendering:pixelated;mix-blend-mode:multiply;position:fixed;inset:0}@media print,(prefers-reduced-motion:reduce){.noise-overlay{display:none}}:root{--paper:#e8e5dc;--ink:#171716;--muted:#65655e;--line:#bbb9ae;--teal:#24d5ca;--teal-dark:#008f91;--teal-pale:#b9f6ee;--sun:#e5ff55;color:var(--ink);background:var(--paper);font-family:Noto Sans KR,Manrope,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{overflow:hidden}button,a{font:inherit}button{cursor:pointer}.portfolio-shell{background:var(--paper);min-height:100vh}.topbar{z-index:10;color:var(--muted);letter-spacing:.11em;justify-content:space-between;font:500 10px/1 DM Mono,monospace;display:flex;position:fixed;top:23px;left:34px;right:34px}.slide{background:var(--paper);width:100%;min-height:100vh;display:none;position:relative;overflow:hidden}.slide.is-active{animation:.48s cubic-bezier(.2,.8,.2,1) arrive;display:block}@keyframes arrive{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-inner{flex-direction:column;min-height:100vh;padding:80px clamp(36px,8vw,144px) 72px;display:flex;position:relative}.dot-grid{display:none}.slide-kicker,.eyebrow,.case-label{letter-spacing:.12em;color:var(--teal-dark);margin:0;font:500 10px/1.4 DM Mono,monospace}h1,h2,h3,p{margin-top:0}h1,h2{white-space:pre-line;letter-spacing:-.08em;font-family:Noto Sans KR,sans-serif;font-weight:800;line-height:.92}h1{margin:22px 0;font-size:clamp(44px,5.7vw,102px)}h2{word-break:keep-all;margin:0 0 28px;font-size:clamp(38px,4.7vw,76px)}h3{letter-spacing:-.035em}.slide-number{color:var(--muted);font:500 10px DM Mono,monospace;position:absolute;bottom:29px;right:34px}.intro,.body-large{letter-spacing:-.04em;color:#344440;font-size:clamp(16px,1.45vw,25px);line-height:1.65}.body-copy{max-width:490px;color:var(--muted);letter-spacing:-.025em;font-size:15px;line-height:1.75}.cover-layout{flex:1;grid-template-columns:1.22fr .78fr;align-items:center;gap:40px;display:grid}.cover-copy{padding-bottom:6vh}.eyebrow span{color:var(--teal);padding:0 8px}.cover-meta{color:var(--muted);letter-spacing:.08em;gap:28px;margin-top:48px;font:10px DM Mono,monospace;display:flex}.cover-mark{background:var(--teal);height:min(58vw,610px);box-shadow:15px 15px 0 var(--ink);place-items:center;display:grid;position:relative;transform:rotate(2deg)}.profile-logo{z-index:2;filter:drop-shadow(12px 14px #17171633);width:clamp(210px,31vw,470px);position:relative}.orbit{aspect-ratio:1;border:1px solid var(--ink);border-radius:48% 52% 46% 54%;width:75%;position:absolute}.orbit-a{transform:rotate(35deg)scale(.86)}.orbit-b{border-color:var(--paper);width:55%;transform:rotate(-43deg)}.thesis-layout{flex-direction:column;flex:1;justify-content:center;display:flex}.statement{letter-spacing:-.075em;margin:0 0 8vh;font-family:DM Serif Display,Noto Serif KR,serif;font-size:clamp(36px,5.3vw,90px);font-weight:400;line-height:1.02}.statement em{color:var(--teal-dark);text-underline-offset:.08em;font-style:normal;text-decoration:underline;text-decoration-thickness:.08em}.principles{border-top:1px solid var(--ink);grid-template-columns:repeat(3,1fr);display:grid}.principles article{border-right:1px solid var(--ink);padding:21px 28px 0 0}.principles article+article{padding-left:28px}.principles article:last-child{border:0}.principles span,.model-cards span{color:var(--teal-dark);font:10px DM Mono,monospace}.principles h3{margin:25px 0 10px;font-size:19px}.principles p{color:var(--muted);max-width:260px;font-size:13px;line-height:1.7}.profile-layout,.facies-layout,.product-layout,.model-layout{flex:1;grid-template-columns:1fr 1fr;align-items:center;gap:7vw;display:grid}.skill-map{aspect-ratio:1;border:1px dashed #82aaa4;border-radius:50%;justify-self:end;width:min(470px,90%);position:relative}.skill-core,.skill{text-align:center;border:1px solid var(--ink);background:var(--paper);letter-spacing:.03em;border-radius:50%;place-items:center;font:600 11px/1.45 DM Mono,monospace;display:grid;position:absolute}.skill-core{background:var(--teal);inset:30%}.skill-core b{font-size:12px}.skill-top{width:38%;height:38%;top:-5%;left:31%}.skill-left{width:35%;height:35%;top:35%;left:-8%}.skill-right{width:35%;height:35%;top:35%;right:-8%}.skill-bottom{width:31%;height:31%;bottom:-4%;left:35%}.career-layout{flex-direction:column;flex:1;justify-content:center;display:flex}.timeline{border-top:1px solid var(--ink);margin-top:18px}.timeline article{border-bottom:1px solid var(--line);grid-template-columns:220px 1fr;gap:35px;padding:21px 0;display:grid}.timeline p{color:var(--teal-dark);letter-spacing:.04em;margin:4px 0;font:10px DM Mono,monospace}.timeline h3{margin:0 0 7px;font-size:18px}.timeline span{color:var(--muted);font-size:13px}.credentials{flex-wrap:wrap;gap:8px;margin-top:26px;display:flex}.tag{color:#53625e;border:1px solid #b5c6c0;border-radius:999px;align-items:center;padding:4px 8px;font:9px/1 DM Mono,monospace;display:inline-flex}.case-problem{flex:1;grid-template-columns:1fr 1fr;align-items:center;gap:8vw;display:grid}.problem-stack{justify-self:end;width:min(500px,100%);height:400px;position:relative}.paper{letter-spacing:-.05em;background:#fffefa;border:1px solid #bbcbc5;width:72%;padding:27px;font-size:20px;position:absolute;box-shadow:10px 12px #10211f14}.paper-one{top:13%;left:3%;transform:rotate(-7deg)}.paper-two{background:var(--teal-pale);top:31%;right:0;transform:rotate(7deg)}.problem-note{background:var(--ink);color:#fff;width:62%;padding:20px;position:absolute;bottom:0;left:20%;transform:rotate(-2deg)}.problem-note b{color:var(--teal);font:10px DM Mono,monospace}.problem-note p{margin:8px 0 0;font-size:13px;line-height:1.55}.system-layout{flex-direction:column;flex:1;justify-content:center;display:flex}.pipeline{justify-content:space-between;align-items:center;gap:10px;margin:8vh 0 4vh;display:flex}.pipeline>div{border:1px solid var(--line);background:#fbfbf6;flex-direction:column;gap:10px;width:21%;min-height:135px;padding:17px;display:flex}.pipeline small{color:var(--teal-dark);font:9px DM Mono,monospace}.pipeline b{letter-spacing:-.04em;font-size:14px}.pipeline span{color:var(--muted);font-size:11px;line-height:1.5}.pipeline svg{color:var(--teal-dark);flex:none}.pipeline-output{background:var(--teal)!important;border-color:var(--ink)!important}.system-footnote{color:var(--muted);border-left:2px solid var(--teal-dark);padding-left:12px;font-size:12px}.result-layout{flex:1;grid-template-columns:1fr 1fr;align-items:center;gap:7vw;display:grid}.outcomes{grid-template-columns:repeat(3,1fr);align-self:end;gap:9px;display:grid}.outcomes article{background:var(--ink);color:#fff;flex-direction:column;justify-content:space-between;min-height:160px;padding:17px;display:flex}.outcomes article:nth-child(2){background:var(--teal-dark)}.outcomes article:nth-child(3){background:var(--teal);color:var(--ink)}.outcomes strong{letter-spacing:-.08em;font:700 clamp(27px,3.4vw,52px)/1 Manrope,sans-serif}.outcomes small{font-size:.45em}.outcomes span{font-size:11px;line-height:1.4}.case-link{color:var(--teal-dark);align-items:center;gap:8px;font:12px DM Mono,monospace;display:flex;position:absolute;bottom:18%;right:8vw}.well-visual{border:1px solid var(--ink);background:#e7efeb;justify-self:end;width:min(480px,90%);height:480px;position:relative;overflow:hidden}.well-axis{z-index:2;writing-mode:vertical-rl;color:var(--muted);font:9px DM Mono,monospace;position:absolute;top:22px;left:20px}.well-curve{background:var(--ink);width:2px;position:absolute;top:0;bottom:0;left:35%;transform:rotate(13deg)}.well-curve:after{content:"";border-left:2px solid var(--teal-dark);border-radius:50%;position:absolute;inset:0 -28px}.facies-bands{flex-direction:column;width:24%;height:100%;display:flex;position:absolute;top:0;right:10%}.facies-bands i{border-bottom:1px solid var(--ink);background:repeating-linear-gradient(45deg,#24d5ca,#24d5ca 4px,#d7f5f0 4px 8px);flex:1}.facies-bands i:nth-child(2n){background:repeating-linear-gradient(-45deg,#e3ee79,#e3ee79 4px,#f7f4cf 4px 8px)}.well-label{color:var(--muted);font:9px DM Mono,monospace;position:absolute;bottom:16px;left:20px}.model-cards{gap:8px;display:grid}.model-cards article{border-left:4px solid var(--teal-dark);background:#e6ede9;padding:20px 22px}.model-cards article:nth-child(2){background:var(--teal-pale)}.model-cards article:nth-child(3){background:#e7eeba}.model-cards h3{margin:10px 0 6px;font-size:18px}.model-cards p{color:#53625e;margin:0;font-size:13px}.product-screen{background:var(--ink);color:#fff;box-shadow:13px 13px 0 var(--teal-dark);padding:12px}.screen-bar{color:#84a39b;letter-spacing:.08em;align-items:center;gap:5px;height:18px;font:8px DM Mono,monospace;display:flex}.screen-bar i{background:var(--teal);border-radius:50%;width:5px;height:5px}.screen-bar span{margin-left:8px}.screen-content{border-top:1px solid #39534d;grid-template-columns:35% 1fr;min-height:290px;display:grid}.screen-logs,.screen-section{padding:16px;font:9px DM Mono,monospace}.screen-logs{color:#9ec8bd;border-right:1px solid #39534d}.screen-logs div{border-top:1px solid var(--teal);background:linear-gradient(120deg, transparent 0 20%, #e3ee79 21% 23%, transparent 24% 45%, var(--teal) 46% 48%, transparent 49%);border-bottom:1px dashed #46645c;height:55px;margin-top:15px}.screen-section{color:var(--teal)}.screen-section svg{width:100%;height:190px}.screen-section path{fill:none;stroke:var(--teal);stroke-width:2px}.screen-section path:nth-child(2){stroke:#e3ee79}.screen-section path:nth-child(3){stroke:#83a9ff}.screen-section span{color:#a3c1b9}.github-layout{flex:1;grid-template-columns:.65fr 1.35fr;align-items:center;gap:5vw;display:grid}.github-link{color:var(--ink);align-items:center;gap:9px;margin-top:30px;font:12px DM Mono,monospace;display:flex}.repo-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.repo-card{border:1px solid var(--line);min-height:126px;color:var(--ink);background:0 0;padding:15px;text-decoration:none;transition:transform .2s,background .2s}.repo-card:hover{background:var(--sun);transform:translate(-3px,-3px)}.repo-accent{border-color:var(--teal-dark)}.repo-card b{font:600 12px DM Mono,monospace}.repo-card p{min-height:32px;color:var(--muted);margin:12px 0;font-size:11px;line-height:1.4}.archive-note{color:var(--teal-dark);font:10px DM Mono,monospace;position:absolute;bottom:18%;right:8vw}.contact-layout{flex:1;grid-template-columns:1fr 1fr;align-items:center;display:grid;position:relative}.contact-list{gap:17px;display:grid}.contact-list a,.contact-list span{color:var(--ink);align-items:center;gap:13px;font:500 16px DM Mono,monospace;text-decoration:none;display:flex}.contact-list svg{color:var(--teal-dark)}.contact-layout .profile-logo{opacity:.9;width:180px;position:absolute;bottom:-4%;right:2%}.slide:before{z-index:3;content:"SELECTED WORK / 2026";color:var(--muted);letter-spacing:.08em;writing-mode:vertical-rl;font:9px DM Mono,monospace;position:absolute;top:50%;left:17px;transform:translateY(-50%)rotate(180deg)}.slide .slide-kicker{border-bottom:2px solid;width:max-content;margin-bottom:clamp(22px,4vh,55px);padding-bottom:7px;display:inline-flex}.slide-thesis{background:var(--sun)}.slide-thesis .dot-grid,.slide-cover .dot-grid{display:none}.slide-thesis .statement{width:min(1180px,100%);margin-left:auto;font-size:clamp(45px,6.5vw,112px)}.slide-thesis .principles{border-top-width:2px;width:min(980px,86%);margin-left:auto}.slide-thesis .principles article{border-right-color:var(--ink);min-height:148px}.slide-profile{background:var(--ink);color:var(--paper)}.slide-profile h2,.slide-profile .body-large,.slide-profile .slide-number{color:var(--paper)}.slide-profile .slide-kicker{color:var(--sun)}.slide-profile .body-large{color:#b9c0ba}.slide-profile .skill-map{background:repeating-linear-gradient(90deg,#0000 0 48px,#39403c 48px 49px);border:0;border-radius:0;width:min(530px,95%)}.slide-profile .skill-core,.slide-profile .skill{box-shadow:7px 7px 0 var(--sun);border-radius:0}.slide-profile .skill-core{background:var(--teal);color:var(--ink)}.slide-profile .skill{background:var(--paper);color:var(--ink)}.slide-career{background:#fc5d3d}.slide-career .career-layout{width:min(1100px,100%);margin:0 auto}.slide-career .timeline{border-top-width:2px}.slide-career .timeline article{border-bottom-color:var(--ink);grid-template-columns:270px 1fr;padding:27px 0}.slide-career .timeline p{color:var(--ink)}.slide-career .credentials .tag{border-color:var(--ink);color:var(--ink)}.slide-mcp-problem{color:var(--paper);background:#1e37c8}.slide-mcp-problem h2,.slide-mcp-problem .body-large{color:var(--paper)}.slide-mcp-problem .body-large{color:#d7e1ff}.slide-mcp-problem .case-label,.slide-mcp-problem .slide-kicker,.slide-mcp-problem .slide-number{color:var(--sun)}.slide-mcp-problem .paper{border:2px solid var(--ink);box-shadow:11px 11px 0 var(--sun)}.slide-mcp-problem .paper-two{background:#f8ffb8}.slide-mcp-problem .problem-note{background:var(--sun);color:var(--ink)}.slide-mcp-problem .problem-note b{color:#1e37c8}.slide-mcp-system{background:#d9d1bf}.slide-mcp-system .pipeline{border:2px solid var(--ink);gap:0}.slide-mcp-system .pipeline>div{border:0;border-right:2px solid var(--ink);background:0 0;flex:1;width:auto;min-height:165px}.slide-mcp-system .pipeline>svg{display:none}.slide-mcp-system .pipeline>div:nth-of-type(2){background:var(--teal)}.slide-mcp-system .pipeline-output{background:var(--sun)!important;border-right:0!important}.slide-mcp-result{background:var(--teal)}.slide-mcp-result .result-layout{grid-template-columns:1.1fr .9fr}.slide-mcp-result .outcomes{border:2px solid var(--ink);grid-template-columns:1fr;gap:0}.slide-mcp-result .outcomes article{border-bottom:2px solid var(--ink);grid-template-columns:150px 1fr;align-items:center;min-height:105px;display:grid;color:var(--ink)!important;background:0 0!important}.slide-mcp-result .outcomes article:last-child{border-bottom:0}.slide-mcp-result .outcomes strong{font-family:DM Serif Display,serif;font-size:clamp(38px,4vw,65px)}.slide-facies-problem{color:var(--paper);background:#171716}.slide-facies-problem h2,.slide-facies-problem .body-large{color:var(--paper)}.slide-facies-problem .body-large,.slide-facies-problem .body-copy{color:#c6ccc6}.slide-facies-problem .case-label,.slide-facies-problem .slide-kicker,.slide-facies-problem .slide-number{color:var(--teal)}.slide-facies-problem .well-visual{border:2px solid var(--paper);box-shadow:14px 14px 0 var(--teal-dark);background:#222a27;transform:rotate(-2deg)}.slide-facies-model{background:#cab6ff}.slide-facies-model .model-cards{border-top:2px solid var(--ink);gap:0}.slide-facies-model .model-cards article{border:0;border-bottom:2px solid var(--ink);background:0 0;grid-template-columns:68px 1fr 1.4fr;align-items:center;padding:19px 0;display:grid}.slide-facies-model .model-cards h3,.slide-facies-model .model-cards p{margin:0}.slide-facies-model .model-cards p{color:#353239}.slide-facies-product{background:#f2eee4}.slide-facies-product .product-screen{border:2px solid var(--ink);transform:rotate(1.2deg);box-shadow:14px 14px #1e37c8}.slide-github{background:#ffedce}.slide-github .github-layout{grid-template-columns:.8fr 1.2fr}.slide-github .repo-grid{border:2px solid var(--ink);grid-template-columns:repeat(4,1fr);gap:0}.slide-github .repo-card{border:0;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);min-height:155px}.slide-github .repo-card:nth-child(4n){border-right:0}.slide-github .repo-card:hover{transform:none}.slide-contact{color:var(--paper);background:#151515}.slide-contact h2,.slide-contact .body-large,.slide-contact .contact-list a,.slide-contact .contact-list span,.slide-contact .slide-number{color:var(--paper)}.slide-contact .slide-kicker,.slide-contact .contact-list svg{color:var(--sun)}.slide-contact .contact-list{border-top:2px solid var(--paper);padding-top:22px}.slide-contact .profile-logo{transform:rotate(-8deg)}.archive-button{color:var(--teal-dark);background:0 0;border:0;align-items:center;gap:7px;margin-top:17px;padding:0;font:11px DM Mono,monospace;display:flex}.archive-modal{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#10211f61;place-items:center;padding:5vh 8vw;display:grid;position:fixed;inset:0}.archive-dialog{background:var(--paper);border:1px solid var(--ink);width:min(1080px,100%);max-height:90vh;box-shadow:16px 16px 0 var(--teal-dark);padding:30px;overflow:auto}.archive-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.archive-header h3{letter-spacing:-.04em;margin:12px 0 0;font:600 18px DM Mono,monospace}.archive-header button{border:1px solid var(--ink);background:0 0;place-items:center;width:32px;height:32px;display:grid}.archive-list{border-top:1px solid var(--ink);grid-template-columns:repeat(2,1fr);display:grid}.archive-list a{min-height:63px;color:var(--ink);border-bottom:1px solid var(--line);grid-template-columns:1.2fr 1.6fr auto 18px;align-items:center;gap:12px;padding:12px;text-decoration:none;display:grid}.archive-list a:nth-child(odd){border-right:1px solid var(--line)}.archive-list a:hover{background:var(--teal-pale)}.archive-list b,.archive-list em{font:10px DM Mono,monospace}.archive-list span{color:var(--muted);font-size:11px}.archive-list em{color:var(--teal-dark);white-space:nowrap;font-style:normal}.controls{z-index:10;align-items:center;gap:8px;display:flex;position:fixed;bottom:22px;left:34px;right:34px}.controls button{border:1px solid var(--ink);background:var(--paper);width:32px;height:32px;color:var(--ink);place-items:center;display:grid}.controls button:disabled{opacity:.25;cursor:not-allowed}.controls .print-button{gap:6px;width:auto;margin-left:9px;padding:0 11px;font:10px DM Mono,monospace;display:flex}.progress{gap:5px;margin:0 7px;display:flex}.progress button{background:#b2c0bb;border:0;width:14px;height:2px;padding:0}.progress button.active{background:var(--teal-dark);width:30px}.swipe-hint{z-index:4;color:var(--muted);letter-spacing:.04em;align-items:center;gap:6px;font:9px DM Mono,monospace;display:flex;position:fixed;bottom:30px;left:50%;transform:translate(-50%)}@media (width<=760px){.topbar{top:16px;left:18px;right:18px}.slide-inner{padding:62px 26px 54px}.cover-layout,.profile-layout,.case-problem,.result-layout,.facies-layout,.product-layout,.model-layout,.github-layout,.contact-layout{grid-template-columns:1fr}.cover-mark{opacity:.22;width:70%;height:auto;position:absolute;bottom:8%;right:-18%}.principles{grid-template-columns:1fr}.principles article,.principles article+article{border-right:0;border-bottom:1px solid var(--line);padding:13px 0}.skill-map,.well-visual{display:none}.timeline article{grid-template-columns:1fr;gap:8px}.pipeline{margin:30px 0;overflow:auto}.pipeline>div{min-width:150px}.pipeline>svg{min-width:20px}.outcomes{align-self:stretch}.case-link,.archive-note{margin-top:25px;position:static}.repo-grid{grid-template-columns:1fr 1fr}.contact-layout .profile-logo{width:100px}.slide-number{bottom:17px;right:18px}.controls{bottom:13px;left:18px;right:18px}.swipe-hint{display:none}}@media print{@page{size:16in 9in;margin:0}html,body,#root,.portfolio-shell{background:var(--paper);width:16in;overflow:visible!important}.slide{break-after:page;page-break-after:always;width:16in!important;height:9in!important;min-height:9in!important;display:block!important;overflow:hidden!important}.slide:last-child{break-after:auto;page-break-after:auto}.slide-inner{height:9in;min-height:9in;padding:.72in 1.15in .65in}.no-print{display:none!important}.profile-logo{filter:none}.slide-number{bottom:.3in;right:.34in}h1{font-size:58pt}h2{font-size:46pt}.intro,.body-large{font-size:17pt}.body-copy{font-size:11pt}.statement{font-size:53pt}.slide-kicker,.eyebrow,.case-label{font-size:8pt}.dot-grid{opacity:.35}.repo-card:hover{transform:none}}
