@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--paper:#fbfaf7;--ink:#302d3d;--muted:#686574;--line:#dfdce2;--pink:#bc3874;--blue:#38699b;--mono:'Courier New',monospace;--display:'Space Grotesk',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.65 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}a:hover{color:var(--pink)}a:focus-visible,summary:focus-visible{outline:3px solid #38699b;outline-offset:6px}::selection{background:#f7c4dc;color:#302d3d}.wrap{max-width:1120px;margin-inline:auto;padding-inline:40px}.top-stripe{height:6px;background:linear-gradient(90deg,#ef9fc5 0 33.33%,#9ac9ec 33.33% 66.66%,#c6db94 66.66%)}.site-header{height:112px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-family:var(--display);font-size:24px;letter-spacing:-1px;font-weight:700;display:flex;align-items:center;gap:9px}.dot{color:var(--pink);margin-left:-9px}nav{display:flex;gap:31px;font-size:13px;font-weight:600}nav a:last-child{border-bottom:1px solid #aaa3b0}.skip{position:absolute;top:-100px;left:15px;z-index:3;padding:12px;background:white}.skip:focus{top:10px}.hero{display:grid;grid-template-columns:1.6fr 1fr;gap:26px;padding:69px 0 75px;align-items:center}.eyebrow{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:1.8px;line-height:1.7;margin:0 0 20px}.hero .eyebrow{letter-spacing:1.5px;display:flex;align-items:center;gap:10px}.status-dot{width:7px;height:7px;background:#6e8960;box-shadow:0 0 0 4px #eaf0df;display:inline-block}h1{font-family:var(--display);font-size:clamp(42px,4.7vw,64px);font-weight:600;line-height:1.1;letter-spacing:-3.5px;margin:0 0 16px;white-space:nowrap}.name-star{display:inline-block;color:#e684b4;vertical-align:top;margin:0 0 0 13px;font-size:28px;line-height:1.1}.korean-name{font-size:12px;color:var(--muted);margin:0}.korean-name span{padding:0 8px}.intro{font-family:var(--display);font-size:27px;line-height:1.42;letter-spacing:-.7px;margin:33px 0 19px}.highlight{background:linear-gradient(transparent 63%,#f8dbe8 63% 93%,transparent 93%)}.bio{max-width:520px;color:var(--muted);font-size:14px;line-height:1.85}.socials{display:flex;flex-wrap:wrap;align-items:center;gap:25px;margin-top:27px;font-size:12px;font-weight:600}.button{padding:10px 18px;border:1px solid var(--ink);box-shadow:3px 3px 0 var(--ink);display:inline-flex;gap:20px;transition:transform .15s,box-shadow .15s}.button:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink);color:var(--ink)}.primary{background:#f7c1dc}.text-link{border-bottom:1px solid #c6c0cb}.hero-art{position:relative;min-height:350px;display:flex;align-items:center;justify-content:center;background-image:radial-gradient(#c8c0ce 1px,transparent 1px);background-size:17px 17px;isolation:isolate}.pixel-window{background:#fffdfc;border:2px solid var(--ink);width:270px;box-shadow:7px 7px 0 #d2cce0;transform:rotate(-5deg);z-index:1}.window-bar{display:flex;justify-content:space-between;padding:7px 10px;background:#d5e8f8;border-bottom:2px solid var(--ink);font:10px var(--mono)}.pixel-heart{width:83px;margin:29px auto 13px}.pixel-window p{font:14px/1.7 var(--display);text-align:center;margin:0}.pixel-window p strong{font-weight:500}.window-tags{display:flex;justify-content:center;gap:10px;margin:20px 0 23px}.window-tags span{border:1px solid #ddd7e3;background:#f7f3fa;padding:3px 7px;font:8px var(--mono);letter-spacing:.5px}.sticker{position:absolute;z-index:2;bottom:22px;right:6px;background:#e0edbd;border:1px solid var(--ink);padding:12px 17px;font:11px var(--mono);transform:rotate(7deg);box-shadow:3px 3px 0 #34303d}.sticker span{margin-left:12px}.tiny-spark{position:absolute;z-index:2;line-height:1}.s-one{left:7px;top:20px;font-size:43px;color:#6d94c3}.s-two{right:5px;top:8px;font-size:53px;color:#af3971}.s-three{left:30px;bottom:7px;font-size:32px;color:#b986b7}.orbit{position:absolute;width:320px;height:210px;border:1px solid #d4c7dc;border-radius:50%;transform:rotate(-38deg);z-index:-1}.orbit-two{transform:rotate(39deg);border-color:#dae3bf}.interest-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;border-block:1px solid var(--line);padding:19px 0;font-size:11px;color:#5c5968}.interest-strip .mono{font-size:9px;letter-spacing:1px}.mono{font-family:var(--mono)}.interest-strip i{font-style:normal;color:#b25884;font-size:12px}.section{padding:78px 0 0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px}.section-heading .eyebrow{margin-bottom:11px}h2{font:500 30px/1.3 var(--display);letter-spacing:-1.2px;margin:0}.pink{color:var(--pink)}.blue{color:var(--blue)}.margin-note{font:9px var(--mono);color:var(--muted);white-space:nowrap;padding-bottom:7px}.section-description{font-size:13px;color:var(--muted);margin:17px 0 33px}.paper{display:grid;grid-template-columns:220px 1fr;gap:32px;padding:30px 0;border-top:1px solid var(--line)}.paper-visual{min-height:202px;align-self:start;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:19px 10px;background-image:radial-gradient(#ffffffb0 .8px,transparent .8px);background-size:8px 8px;border:1px solid #e4d5de;font-family:var(--mono);overflow:hidden}.pink-visual{background-color:#f8e4ed}.blue-visual{background-color:#e2eef8;border-color:#d1dfeb}.green-visual{background-color:#ebf0dd;border-color:#d9e1c6}.diagram-label{font-size:8px;letter-spacing:1.4px}.noise-grid{height:40px;width:50px;margin-top:12px;background:repeating-conic-gradient(#a1497a 0 25%,#f7c5df 0 50%) 0/9px 7px;border:3px solid #fff;box-shadow:2px 2px 0 #c6a1b6}.diagram-arrow{font-size:19px;line-height:1.5;color:#6d5377}.mini-pills{display:flex;gap:8px}.mini-pills span{background:#fffafc;border:1px solid #b699ab;padding:5px 9px;font-size:9px}.diagram-caption{font-size:8px;letter-spacing:.4px;color:#6a596d;margin-top:16px}.chat-bubble{background:#fff;border:1px solid #809db8;padding:10px 15px;font-size:9px;text-align:center;box-shadow:3px 3px 0 #b9cfe2}.chat-bubble span{display:block;color:#6285a2}.chat-bubble b{font-weight:400}.response-bubble{background:#f7d8e5;padding:6px 12px;border:1px solid #b4869b;font-size:9px}.frames{display:flex;gap:7px;margin-top:25px}.frames span{display:block;width:45px;height:43px;border:1px solid #849472;background:linear-gradient(140deg,transparent 45%,#b1c48d 46% 66%,transparent 67%),linear-gradient(40deg,#cbd9b2 45%,#f7f9ed 46%);box-shadow:3px 3px 0 #d4dfc1}.frames span:nth-child(2){transform:translateY(-8px)}.frames span:nth-child(3){transform:translateY(-16px)}.timeline{font-size:14px;letter-spacing:1px;color:#687c4e;margin-top:6px}.paper-meta{display:flex;align-items:center;gap:14px;font:10px var(--mono);color:var(--muted);margin-bottom:11px}.badge{font-size:8px;padding:4px 7px;letter-spacing:.5px;color:var(--ink)}.pink-badge{background:#f7dfeb}.blue-badge{background:#ddecf8}.green-badge{background:#e5edce}h3{font-family:var(--display);font-weight:500;line-height:1.4;letter-spacing:-.3px;font-size:20px;margin:0 0 10px}.authors{font-size:11px;color:var(--muted);line-height:1.7;margin:8px 0}.authors strong{color:var(--ink);font-weight:600}.paper-summary{font-size:12px;line-height:1.75;color:#696473;margin:9px 0 15px}.paper-links{display:flex;gap:20px;align-items:center;font:10px var(--mono)}.paper-links a{border-bottom:1px solid #b8aab9;padding-bottom:2px}.equal-note{font:9px 'DM Sans',sans-serif;color:var(--muted)}.more-papers{border-block:1px solid var(--line);margin-top:10px}.more-papers summary{cursor:pointer;display:flex;justify-content:space-between;padding:21px 0;font:500 15px var(--display);list-style:none}.more-papers summary::-webkit-details-marker{display:none}.more-papers summary .mono{font-size:11px;color:var(--muted)}.more-papers summary .mono span{margin-left:15px}.compact-paper{display:grid;grid-template-columns:55px 1fr;gap:20px;padding:22px 0;border-top:1px solid #ece8ec}.paper-year{font:11px var(--mono);color:#7a7083;padding-top:4px}.compact-paper h3{font-size:15px;margin-bottom:6px;max-width:780px}.compact-paper .authors{margin:5px 0}.venue{font:9px var(--mono);color:#62566e}.inline-code{font:9px var(--mono);margin-left:15px;color:var(--pink)}.about{display:grid;grid-template-columns:1fr 1fr;gap:110px;padding-bottom:75px}.about-intro h2{font-size:32px;margin-bottom:25px}.about-intro>p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.9}.about-intro a{border-bottom:1px solid #bdb1c6}.about-decoration{margin-top:35px;color:#b17cab;font-size:32px;display:flex;gap:15px;align-items:center}.about-decoration span{font:10px var(--mono);color:#736477}.background>.eyebrow{margin-bottom:16px}.career{position:relative;border-left:1px solid #d7ccdf;padding:0 0 23px 20px}.career:before{content:'';position:absolute;left:-3px;top:4px;width:5px;height:5px;background:#bfa7cf}.career-date{font:9px var(--mono);letter-spacing:.5px;color:#756a80}.career h4{font-size:14px;font-weight:600;margin:7px 0 0}.career p{font-size:12px;color:var(--muted);margin:1px 0 0}.education-title{margin-top:22px}.contact{position:relative;display:flex;align-items:center;justify-content:space-between;gap:25px;background:#f3eaf2;border:1px solid #e2d2e2;padding:38px 38px;overflow:hidden}.contact .eyebrow{margin-bottom:13px}.contact h2{font-size:26px}.contact-link{font-size:14px;border-bottom:1px solid #9d879f;padding-bottom:5px;z-index:1}.contact-link span{margin-left:18px}.contact-star{position:absolute;right:13px;top:-50px;color:#e7d9e8;font-size:150px;line-height:1;transform:rotate(12deg)}footer{display:flex;justify-content:space-between;gap:20px;font:9px var(--mono);color:var(--muted);padding-top:32px!important;padding-bottom:33px!important}.footer-note{color:#8e7c92}
@media(min-width:1400px){.hero{padding-top:85px;padding-bottom:90px}}
@media(max-width:900px){.wrap{padding-inline:28px}.hero{grid-template-columns:1.4fr 1fr;gap:12px}h1{font-size:46px}.name-star{font-size:22px}.pixel-window{width:220px}.hero-art{min-height:320px}.orbit{width:240px;height:190px}.sticker{font-size:9px;right:0}.intro{font-size:23px}.margin-note{display:none}.interest-strip{flex-wrap:wrap;justify-content:flex-start;gap:14px}.interest-strip .mono{width:100%}.paper{grid-template-columns:185px 1fr;gap:24px}.paper-meta{flex-wrap:wrap;gap:7px}.about{gap:50px}h2{font-size:27px}.contact h2{font-size:23px}}
@media(max-width:620px){.wrap{padding-inline:22px}.site-header{height:82px}.wordmark{font-size:21px}nav{gap:17px;font-size:11px}nav a:last-child{display:none}.hero{grid-template-columns:1fr;padding:35px 0 33px;gap:27px}.hero .eyebrow{font-size:9px}h1{font-size:49px;letter-spacing:-2.5px}.name-star{font-size:24px}.intro{font-size:26px;margin-top:27px}.bio{font-size:14px}.hero-art{min-height:290px;max-width:350px;width:100%;margin:5px auto}.pixel-window{width:238px}.pixel-heart{width:65px;margin-top:22px}.orbit{width:290px}.s-one{left:0}.sticker{bottom:8px}.socials{gap:20px}.interest-strip{font-size:10px;gap:10px}.interest-strip i{font-size:10px}.section{padding-top:48px}h2{font-size:26px}.section-description{font-size:12px;margin-bottom:25px}.paper{grid-template-columns:1fr;gap:21px;padding:25px 0}.paper-visual{min-height:175px}.paper h3{font-size:20px}.paper-meta{gap:12px}.authors{font-size:12px}.paper-summary{font-size:13px}.paper-links{font-size:11px}.compact-paper{grid-template-columns:38px 1fr;gap:12px}.compact-paper h3{font-size:15px}.about{grid-template-columns:1fr;gap:30px;padding-bottom:45px}.about-intro h2{font-size:29px}.about-decoration{margin-top:20px}.contact{flex-direction:column;align-items:flex-start;padding:28px 24px;gap:24px}.contact h2{font-size:25px}.contact-link{font-size:13px}footer{flex-wrap:wrap;font-size:9px;gap:14px}.footer-note{display:none}.korean-name{font-size:11px}}
.hero-copy,.paper-body,.about-intro,.background{min-width:0}
@media(max-width:620px){h1{font-size:clamp(35px,9vw,49px);white-space:normal}.name-star{font-size:20px;margin-left:8px}.socials{flex-wrap:wrap;gap:18px}.hero-art{max-width:100%}.orbit{max-width:100%}.interest-strip{flex-wrap:wrap}.contact-link{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.hero-art,.interest-strip,.contact,.top-stripe,nav,.about-decoration,.paper-visual,.skip{display:none}.wrap{max-width:none;padding:0}.hero{display:block;padding:20px 0}.section{padding-top:25px}.paper{display:block;break-inside:avoid;padding:15px 0}.paper-links{display:none}.about{gap:30px}.compact-paper{break-inside:avoid}body{font-size:11px;background:white}.site-header{height:40px}h1{font-size:40px}}

/* Paper figures preserve the full original image; open them for readable detail. */
.paper-figure{display:flex;align-self:start;flex-direction:column;gap:9px;padding:12px;border:1px solid #e1d6e1;text-align:right;transition:border-color .15s;background:#f8e4ed}
.paper-figure img{width:100%;height:155px;object-fit:contain;background:white;display:block}
.paper-figure span{font:9px var(--mono);color:#695669}.paper-figure:hover{border-color:var(--pink)}
.blue-figure{background:#e2eef8;border-color:#d1dfeb}.green-figure{background:#ebf0dd;border-color:#d9e1c6}
.pixel-window{transform:none}.pixel-heart{width:90px}.pixel-heart svg{display:block;width:90px;height:78px}
.news{display:flex;gap:22px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--line)}
.news-date{font:10px var(--mono);white-space:nowrap;color:#885473}.news-date span{margin-left:12px;color:#b64b80}
.news p{font-size:12px;line-height:1.8;margin:0;color:var(--muted)}.news a{border-bottom:1px solid #cab6c7}.news strong{color:var(--ink);font-weight:600}
@media(max-width:620px){.paper-figure img{height:195px}.news{flex-direction:column;gap:9px}.pixel-heart{margin-top:22px}.paper-links{flex-wrap:wrap}}
@media print{.paper-figure{display:none}}

.portrait-art{min-height:390px}.portrait-window{width:244px;background:#fffdfc}.portrait{display:block;width:240px;max-width:100%;height:auto}.portrait-caption{display:flex;justify-content:space-between;align-items:center;padding:9px 13px;font:11px var(--mono)}.portrait-heart{color:#b73e78;font-size:18px;line-height:1}.portrait-art .sticker{bottom:5px;right:-4px}.portrait-art .s-three{bottom:0;left:12px}
@media(max-width:620px){.portrait-art{max-width:330px;min-height:395px}.portrait-art .sticker{right:0}}

/* A small round portrait, with the original pixel heart kept as a keepsake. */
.portrait-art{min-height:335px}.portrait-window{width:260px}.portrait-stage{position:relative;display:flex;justify-content:center;align-items:center;min-height:205px;padding:26px 20px 15px;background:radial-gradient(#e5dce9 .8px,transparent .8px) 0 0/12px 12px}.portrait-stage .portrait{width:134px;height:134px;max-width:none;object-fit:cover;object-position:50% 30%;border-radius:50%;border:4px solid #fff;outline:1px solid #d7bed3;box-shadow:4px 4px 0 #e6eff7}.portrait-pixel-heart{position:absolute;width:60px;height:52px;right:22px;bottom:13px;filter:drop-shadow(3px 3px 0 #f5d7e5)}.portrait-caption{justify-content:center;gap:12px;padding:13px 12px 18px}.portrait-caption .portrait-heart{display:none}.portrait-art .sticker{bottom:0;right:0}.portrait-art .s-three{bottom:8px}
@media(max-width:620px){.portrait-art{min-height:335px;max-width:330px}.portrait-window{width:250px}}

/* Airy portrait composition; no enclosing window. */
.profile-composition{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:335px;padding:18px 0;text-align:center}
.profile-greeting{font:italic 17px Georgia,serif;color:#8e6884;transform:rotate(-7deg);margin:0 75px 10px 0}
.profile-orbit{position:relative;width:285px;height:193px;max-width:100%;display:flex;align-items:center;justify-content:center}
.profile-photo-ring{width:152px;height:152px;padding:7px;border:1px solid #d9b5cc;border-radius:50%;background:#fff8fc;box-shadow:7px 6px 0 #e1edf6,-5px -3px 0 #f4e3ed}
.profile-photo-ring .portrait{display:block;width:136px;height:136px;max-width:none;border-radius:50%;object-fit:cover;object-position:50% 30%;border:0;box-shadow:none;outline:none}
.profile-orbit .portrait-pixel-heart{width:30px;height:26px;right:57px;bottom:30px;filter:none}
.profile-spark{position:absolute;line-height:1}.spark-blue{font-size:25px;color:#769ac0;left:28px;top:36px}.spark-pink{font-size:29px;color:#c384a7;right:23px;top:11px}
.profile-square{position:absolute;width:7px;height:7px;background:#bace94;right:34px;top:95px;box-shadow:10px -10px 0 #e4edcf}
.profile-note{position:absolute;left:0;bottom:3px;font:10px var(--mono);color:#607247;background:#edf2df;border:1px solid #cfdcb8;padding:5px 9px;transform:rotate(-8deg)}
.profile-signature{font:500 17px/1.5 var(--display);letter-spacing:-.4px;margin:17px 0 3px}.profile-affiliation{font:10px var(--mono);letter-spacing:1px;color:var(--muted);margin:0}.profile-affiliation span{color:#bd82a3;margin:0 6px}
.profile-pixels{display:flex;gap:5px;margin-top:17px}.profile-pixels i{width:5px;height:5px;background:#efabc9}.profile-pixels i:nth-child(2){background:#afd1e9}.profile-pixels i:nth-child(3){background:#c9dba4}
@media(max-width:620px){.profile-composition{min-height:310px;margin:0 auto;width:100%;padding:6px 0}.profile-signature{margin-top:14px}}
@media print{.profile-composition{display:none}}

/* Bring the friendly window back, retaining the small circular portrait. */
.profile-window{width:285px;max-width:100%;border:2px solid var(--ink);background:#fffdfc;box-shadow:6px 6px 0 #ded4e6;padding-bottom:20px}
.profile-window .window-bar{background:#dcecf8;text-align:left;padding:9px 12px;font-size:11px}
.profile-window .profile-orbit{width:100%;height:202px;margin-top:7px}
.profile-window .profile-signature{font-size:15px;margin:5px 12px 7px}
.profile-window .profile-pixels{justify-content:center;margin-top:13px}
.profile-window .profile-note{left:10px;bottom:1px;font-size:9px}
.profile-window .profile-orbit .portrait-pixel-heart{right:53px;bottom:28px;width:24px;height:21px}
.profile-window .profile-photo-ring{overflow:hidden;background:#e4e3e7;padding:0;border:5px solid white;outline:1px solid #d9b5cc;width:144px;height:144px;position:relative}
.profile-window .profile-photo-ring .portrait{position:absolute;left:-3px;top:-3px;width:calc(100% + 6px);height:calc(100% + 6px);object-fit:cover;object-position:50% 72%;border-radius:0;max-width:none}
.profile-window .spark-blue{left:24px;top:29px}.profile-window .spark-pink{right:23px;top:19px}
@media(max-width:620px){.profile-composition{padding-block:14px;min-height:355px}}
