@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css";
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}}:root{--ink:#11101b;--lavender:#b5aff0;--purple:#5e58b5;--window:#e8e5f2}*{box-sizing:border-box}html,body{width:100%;min-height:100%;margin:0}body{overscroll-behavior:none;color:var(--ink);background:#10163f;font-family:Pretendard,sans-serif;overflow:hidden}button{font:inherit}.desktop{isolation:isolate;overscroll-behavior:none;background:url(/배경.png) 50%/cover no-repeat;width:100vw;height:100svh;min-height:720px;position:relative;overflow:hidden}.desktop img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}iconify-icon{pointer-events:none;width:1em;height:1em;display:block}.stars,.crescent,.cloud,.skyline,.balcony,.room-shadow{display:none}.desktop:after{content:"";z-index:20;pointer-events:none;opacity:.1;mix-blend-mode:soft-light;background-image:repeating-linear-gradient(0deg,#ffffff1f 0 1px,#0000 1px 3px);position:absolute;inset:0}.stars{opacity:.9;background-image:radial-gradient(circle at 3% 14%,#fff 0 1px,#0000 1.5px),radial-gradient(circle at 8% 6%,#fff 0 1px,#0000 1.5px),radial-gradient(circle at 14% 19%,#ffd8ce 0 1px,#0000 1.7px),radial-gradient(circle at 20% 3%,#fff 0 1px,#0000 1.4px),radial-gradient(circle at 25% 11%,#fff 0 1.4px,#0000 2px),radial-gradient(circle at 31% 4%,#ffcfcf 0 1px,#0000 1.7px),radial-gradient(circle at 37% 16%,#fff 0 1px,#0000 1.5px),radial-gradient(circle at 45% 8%,#fff 0 1px,#0000 1.6px),radial-gradient(circle at 52% 18%,#ffd3d3 0 1px,#0000 1.7px),radial-gradient(circle at 58% 4%,#fff 0 1.2px,#0000 1.8px),radial-gradient(circle at 66% 14%,#fff 0 1px,#0000 1.6px),radial-gradient(circle at 74% 3%,#ffd6cc 0 1px,#0000 1.8px),radial-gradient(circle at 81% 17%,#fff 0 1px,#0000 1.5px),radial-gradient(circle at 89% 8%,#fff 0 1.2px,#0000 1.8px),radial-gradient(circle at 96% 20%,#ffd7d7 0 1px,#0000 1.6px);background-size:230px 180px,290px 210px,330px 240px,370px 190px,410px 260px,460px 230px,510px 290px,560px 250px,610px 310px,660px 280px,710px 340px,760px 300px,810px 360px,860px 320px,920px 380px;position:absolute;inset:0 0 30%}.crescent{background:#f7c58f;border-radius:50%;width:35px;height:35px;position:absolute;top:11%;left:18.5%;box-shadow:0 0 18px #ffd19f5c}.crescent:after{content:"";background:#142252;border-radius:50%;width:35px;height:35px;position:absolute;top:-5px;left:9px}.cloud{z-index:0;filter:blur(8px);opacity:.7;background:#e66593;border-radius:50%;position:absolute}.cloud-one{width:340px;height:105px;bottom:26%;left:12%;box-shadow:65px -40px 40px #e26991,130px 5px 52px #ee7288,-60px 18px 48px #ce568f}.cloud-two{opacity:.35;width:420px;height:70px;bottom:20%;left:38%;box-shadow:90px -30px 50px #ed7893,230px 10px 65px #d7618e}.skyline{z-index:1;clip-path:polygon(0 48%,2% 48%,2% 32%,4% 32%,4% 46%,7% 46%,7% 28%,9% 28%,9% 52%,12% 52%,12% 42%,15% 42%,15% 19%,16% 19%,16% 52%,20% 52%,20% 34%,23% 34%,23% 54%,27% 54%,27% 44%,29% 44%,29% 60%,34% 60%,34% 37%,37% 37%,37% 58%,42% 58%,42% 48%,46% 48%,46% 61%,50% 61%,50% 44%,53% 44%,53% 58%,57% 58%,57% 38%,60% 38%,60% 53%,64% 53%,64% 31%,68% 31%,68% 56%,73% 56%,73% 42%,77% 42%,77% 51%,81% 51%,81% 28%,84% 28%,84% 49%,88% 49%,88% 36%,91% 36%,91% 53%,95% 53%,95% 41%,98% 41%,98% 49%,100% 49%,100% 100%,0 100%);filter:drop-shadow(0 -8px 22px #12163873);background:repeating-linear-gradient(90deg,#0000 0 13px,#ffbc7194 13px 15px,#0000 15px 28px),repeating-linear-gradient(0deg,#0000 0 22px,#ffa96f4d 22px 24px,#0000 24px 38px),linear-gradient(#0000 0 36%,#0b1637ed 36% 100%);height:230px;position:absolute;bottom:62px;left:0;right:0}.balcony{z-index:2;background:linear-gradient(#0000 0 31%,#060b1df2 32% 38%,#0000 39%),repeating-linear-gradient(90deg,#0000 0 9.5%,#050918eb 9.5% 10.2%,#0000 10.2% 19%),linear-gradient(#0000,#040816d4);height:108px;position:absolute;bottom:64px;left:0;right:0}.room-shadow{z-index:3;opacity:.9;background:linear-gradient(90deg,#0000,#07081766 24%,#05070fe0);border-left:5px solid #0a08162e;width:28%;height:calc(100% - 64px);position:absolute;top:0;right:0}.desktop-title{z-index:4;color:#c8c4ee;letter-spacing:2px;text-shadow:2px 2px #38345f;margin:0;font-size:20px;font-weight:700;position:absolute;top:17px;left:30px}.shortcuts{z-index:5;gap:24px;display:grid;position:absolute;top:84px;left:45px}.shortcut{color:#fff;text-align:left;text-shadow:1px 2px 2px #0b0a24e6;-webkit-user-select:none;user-select:none;cursor:pointer;background:0 0;border:0;align-items:center;width:225px;min-height:64px;padding:0;display:flex}.shortcut:focus-visible{outline-offset:5px;outline:2px solid #ffffffe6}.shortcut:hover .shortcut-icon{filter:drop-shadow(3px 7px 4px #05081c8c);transform:translateY(-2px)}.shortcut-icon{object-fit:contain;filter:drop-shadow(2px 4px 2px #05081c73);width:62px;height:62px;transition:transform .18s,filter .18s}.shortcut-copy{gap:4px;padding-left:19px;display:grid}.shortcut-copy strong{letter-spacing:-.5px;font-family:Pretendard,sans-serif;font-size:17px}.shortcut-copy small,.trash small{font-family:Pretendard,sans-serif;font-size:13px;font-weight:500;display:block}.trash{z-index:5;color:#fff;text-shadow:1px 2px 2px #06091e;align-items:center;gap:17px;display:flex;position:absolute;bottom:95px;left:51px}.trash strong{font-family:Pretendard,sans-serif;font-size:15px}.trash-can{background:repeating-linear-gradient(90deg,#f1eff9 0 6px,#b9b7cb 7px 9px);border:3px ridge #e5e5f3;border-radius:5px 5px 12px 12px;width:44px;height:48px;display:block;position:relative;transform:perspective(50px)rotateX(-4deg)}.trash-can:before{content:"";background:#d9d8e6;border:2px ridge #e8e7f3;border-radius:50%;width:48px;height:8px;position:absolute;top:-8px;left:-5px}.window{background:#d9d5e4;border:3px ridge #d9d5e9;box-shadow:7px 9px #14113273,10px 14px 24px #0c082052}.welcome-window{z-index:8;width:680px;height:540px;position:absolute;top:16.5%;left:28%}.window-bar{color:#fff;letter-spacing:.5px;background:linear-gradient(90deg,#514fa5,#7772c3 62%,#56529d);border-bottom:2px solid #f1eff8;align-items:center;gap:9px;height:31px;padding:0 5px;font-size:14px;display:flex}.window-app-icon{color:#ddd5ff;background:#7770cf;border:2px ridge #bdb6e6;place-items:center;width:21px;height:21px;display:grid}.window-controls{gap:2px;margin-left:auto;display:flex}.window-controls button{color:#171525;cursor:pointer;background:#d9d7e1;border:3px outset #e6e3ed;place-items:center;width:24px;height:23px;padding:0;font-size:19px;line-height:1;display:grid}.window-controls button:active{border-style:inset}.window-controls button:last-child:hover{color:#fff;background:#bb5370}.welcome-window.maximized{z-index:25;width:auto;height:auto;position:fixed;inset:8px 8px 72px;transform:none;translate:none!important}.welcome-window.maximized .welcome-content{padding-top:7vh;padding-left:9vw}.welcome-window.maximized .hero-computer{width:min(38vw,510px);height:min(38vw,510px);bottom:2vh;right:8vw}.portfolio-window{width:720px;height:520px;position:absolute}.portfolio-window.minimized{display:none}.portfolio-window.maximized{width:auto;height:auto;position:fixed;inset:8px 8px 72px;top:8px!important;left:8px!important}.portfolio-window .menu-bar{height:29px}.screen-window-content{scrollbar-color:#817bb7 #d8d5e5;scrollbar-width:thin;background:repeating-linear-gradient(0deg,#6d60a509 0 1px,#0000 1px 3px),#eceaf2;border:5px double #b2aec1;height:calc(100% - 60px);overflow:auto}.screen-document{color:#292638;min-height:100%;padding:35px 38px}.screen-heading{margin-bottom:24px}.screen-heading.compact{margin-bottom:20px}.screen-kicker{color:#7069b8;letter-spacing:1.6px;margin-bottom:8px;font-family:Courier New,monospace;font-size:10px;font-weight:700;display:block}.screen-heading h2{letter-spacing:-.04em;margin:0;font-size:29px;line-height:1.35}.screen-heading.compact h2{font-size:24px}.screen-heading>p{color:#746f7c;max-width:610px;margin:8px 0 0;font-size:11px;line-height:1.6}.screen-lead{color:#5d596a;max-width:600px;margin:0 0 26px;font-size:14px;line-height:1.8}.about-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.about-grid section{background:#ffffff80;border:1px solid #c7c2da;min-height:155px;padding:18px;box-shadow:inset 1px 1px #fff}.about-grid iconify-icon{color:#655eae;margin-bottom:15px;font-size:24px}.about-grid strong{margin-bottom:8px;font-size:13px;display:block}.about-grid p{color:#666171;margin:0;font-size:11px;line-height:1.65}.about-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.screen-heading-actions{align-items:center;gap:8px;display:flex}.about-heading .screen-heading-actions{flex-direction:column;align-items:stretch}.contact-heading{justify-content:space-between;align-items:flex-start;gap:20px;width:min(100%,530px);display:flex}.about-badge{background:#ffffff73;border:1px solid #bdb7d2;grid-template-columns:auto auto;align-items:center;gap:9px;padding:10px 12px;display:grid}.about-badge span{color:#665fac;font-family:Courier New,monospace;font-size:20px;font-weight:700}.about-badge small{color:#817b8d;font-size:8px;line-height:1.3}.about-story{grid-template-columns:1fr;gap:10px;margin-bottom:14px;display:grid}.about-story section{background:#ffffff61;border-left:2px solid #756db7;grid-template-columns:27px 1fr;gap:10px;padding:16px;display:grid}.about-story section>span{color:#827abd;font-family:Courier New,monospace;font-size:11px;font-weight:700}.about-story h3{margin:0 0 7px;font-size:14px}.about-story p{color:#6b6673;margin:0;font-size:12px;line-height:1.7}.screen-note{color:#777181;border-top:1px solid #cbc6da;margin-top:25px;padding-top:15px;font-size:11px;display:block}.project-list{gap:14px;display:grid}.project-card{background:linear-gradient(135deg,#ffffffc7,#e8e4f4a3);border:1px solid #c5c0d6;grid-template-columns:60px 1fr;gap:18px;padding:18px;display:grid;box-shadow:inset 1px 1px #fff,3px 4px #564e791a}.project-list.interactive .project-card{width:100%;color:inherit;text-align:left;cursor:pointer;grid-template-columns:60px minmax(0,1fr) 24px;transition:border-color .16s,background .16s,transform .16s;position:relative}.project-list.interactive .project-card.has-preview{grid-template-columns:60px minmax(0,1fr) 104px 24px}.project-card-thumb{background:#ddd8eb;border:1px solid #bdb7d0;align-self:stretch;min-height:86px;position:relative;overflow:hidden;box-shadow:inset 1px 1px #fff}.project-card-thumb img{object-fit:cover;object-position:top center}.project-list.interactive .project-card:hover,.project-list.interactive .project-card:focus-visible{background:linear-gradient(135deg,#fff,#eeeaf9);border-color:#7770b8;outline:none;transform:translate(3px);box-shadow:inset 1px 1px #fff,5px 6px #5b518b29}.project-open-icon{color:#766fb0;align-self:center;font-size:17px}.project-icon{color:#fff;background:linear-gradient(135deg,#8178ce,#5d56a8);border:2px ridge #b8b2d0;place-items:center;width:56px;height:56px;font-size:25px;display:grid}.project-card span,.project-card small{color:#756eb0;font-size:11px;font-weight:700}.project-card h3{letter-spacing:-.02em;margin:3px 0 7px;font-size:17px}.project-card p{color:#65606e;margin:0 0 8px;font-size:13px;line-height:1.65}.detail-back{color:#5e579e;cursor:pointer;background:#ffffff85;border:1px solid #bdb7d0;align-items:center;gap:7px;margin-bottom:22px;padding:9px 12px;font-size:11px;font-weight:700;display:inline-flex}.project-detail-hero{border-bottom:1px solid #c6c1d4;grid-template-columns:82px 1fr;gap:21px;padding:4px 4px 25px;display:grid}.project-detail-icon{color:#fff;background:linear-gradient(135deg,#8178ce,#554e9e);border:3px ridge #bdb6d8;place-items:center;width:76px;height:76px;font-size:34px;display:grid}.project-detail-hero span,.project-detail-grid section>span{color:#736caf;letter-spacing:1px;font-family:Courier New,monospace;font-size:10px;font-weight:700}.project-detail-hero h2{letter-spacing:-.03em;margin:5px 0 9px;font-size:25px}.project-detail-hero p{color:#65606e;margin:0;font-size:13px;line-height:1.7}.project-repo-link{color:#fff;background:#24212f;border:1px solid #bcb6d1;align-items:center;gap:6px;margin-top:12px;padding:7px 10px;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex}.project-repo-link:hover{background:#5e56a3}.project-repo-link iconify-icon:last-child{margin-left:2px;font-size:10px}.project-gallery{background:linear-gradient(145deg,#272333,#181620);border:1px solid #bdb7d0;margin-top:18px;padding:15px;box-shadow:4px 5px #3f375b29}.project-gallery>header{color:#fff;justify-content:space-between;align-items:end;gap:20px;margin-bottom:12px;display:flex}.project-gallery>header span,.project-gallery>header small{color:#aaa2d2;letter-spacing:1px;font-family:Courier New,monospace;font-size:8px}.project-gallery>header h3{margin:3px 0 0;font-size:13px}.project-gallery-track{scroll-snap-type:x proximity;scrollbar-color:#7770af #322e41;scrollbar-width:thin;gap:11px;padding-bottom:7px;display:flex;overflow-x:auto}.project-gallery-image{scroll-snap-align:start;background:#0e0d12;border:1px solid #5e586f;flex:0 0 220px;height:285px;position:relative;overflow:hidden}.project-gallery-image img{object-fit:contain;transition:transform .25s}.project-gallery-image:hover img{transform:scale(1.025)}.project-gallery-image>span{color:#fff;background:#09080dbf;padding:3px 5px;font-family:Courier New,monospace;font-size:8px;position:absolute;bottom:8px;left:8px}.project-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:17px;display:grid}.project-detail-grid section{background:linear-gradient(145deg,#ffffffc7,#e8e4f38f);border:1px solid #c3bdd5;border-top:3px solid #746cb7;min-height:168px;padding:19px;box-shadow:inset 1px 1px #fff,3px 4px #51497514}.project-detail-grid h3{margin:7px 0 11px;font-size:15px}.project-detail-grid p{color:#676271;margin:0;font-size:12px;line-height:1.75}.project-detail-grid ol{color:#625e69;gap:9px;margin:0;padding-left:19px;font-size:12px;line-height:1.6;display:grid}.contribution-list{flex-wrap:wrap;gap:6px;display:flex}.contribution-list em{color:#5f596c;background:#f6f4fb;border:1px solid #c4bed8;align-items:center;gap:4px;padding:8px 9px;font-size:11px;font-style:normal;display:inline-flex}.project-award{align-items:center;gap:12px;display:flex}.project-award>iconify-icon{color:#b1832f;font-size:36px}.project-award strong{color:#665eaa;font-size:21px}.project-award p{font-size:12px;line-height:1.65}.project-award small{color:#87818e;font-size:10px}.project-keywords{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.project-keywords span{color:#fff;background:#716ab1;padding:7px 10px;font-size:10px;box-shadow:2px 2px #36305b2e}.timeline{gap:10px;padding-left:5px;display:grid;position:relative}.timeline section{background:#ffffff78;border-left:3px solid #776fbd;grid-template-columns:105px 1fr;gap:20px;padding:14px 17px;display:grid}.timeline time{color:#6c65a8;font-family:Courier New,monospace;font-size:11px;font-weight:700}.timeline h3{margin:0 0 5px;font-size:14px}.timeline p{color:#696473;margin:0;font-size:11px;line-height:1.55}.timeline.detailed section{grid-template-columns:118px 1fr}.timeline.detailed time{align-content:start;gap:5px;display:grid}.timeline.detailed time small{color:#928ca0;letter-spacing:1px;font-size:8px}.career-status{color:#5f5a6b;border:1px dashed #9891c3;gap:18px;margin-top:18px;padding:15px 18px;font-size:12px;display:flex}.career-status strong{color:#655dae}.skill-groups{gap:16px;display:grid}.skill-groups section{border-bottom:1px solid #cbc6d9;grid-template-columns:125px 1fr;align-items:start;padding-bottom:15px;display:grid}.skill-groups h3{color:#5f58a3;margin:5px 0 0;font-size:13px}.skill-groups section>div{flex-wrap:wrap;gap:7px;display:flex}.skill-groups section span{color:#4e495b;background:#ffffff9e;border:1px solid #bbb5d2;padding:7px 10px;font-size:11px}.skill-groups.detailed section{grid-template-columns:180px 1fr}.skill-groups.detailed section>div:first-child{display:block}.skill-groups.detailed h3{margin-top:0}.skill-groups.detailed p{color:#7a7481;margin:5px 0 0;font-size:9px;line-height:1.45}.skill-proof{background:#ffffff4d;border:1px dashed #9992bf;margin-top:18px;padding:13px 16px}.skill-proof strong{color:#6d66a9;letter-spacing:1px;font-family:Courier New,monospace;font-size:9px}.skill-proof p{color:#625d6b;margin:6px 0 0;font-size:10px;line-height:1.55}.contact-list{gap:10px;max-width:530px;display:grid}.contact-list a,.contact-list>div{min-height:67px;color:inherit;background:#ffffff8c;border:1px solid #c3bed4;grid-template-columns:42px 1fr;align-items:center;gap:14px;padding:10px 15px;text-decoration:none;display:grid}.contact-list iconify-icon{color:#675faf;font-size:23px}.contact-list span{gap:3px;display:grid}.contact-list small{color:#7b7587;font-size:10px}.contact-list strong{font-size:13px}.contact-list a:hover{background:#fff;border-color:#756db7}.contact-footer{border-top:1px solid #cbc6d8;gap:15px;margin-top:17px;padding-top:15px;font-size:10px;display:flex}.contact-footer span{color:#777181}.contact-footer strong{color:#5e5868}.connect-button{color:#fff;letter-spacing:.8px;cursor:pointer;background:linear-gradient(#7770c2,#554f9d);border:2px outset #c6c0dc;justify-content:center;align-items:center;gap:8px;min-width:152px;margin-top:20px;padding:11px 16px;font-family:Courier New,monospace;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:2px 3px #2a254b4d}.connect-button:hover{background:linear-gradient(#8880d2,#625bae)}.connect-button:active{box-shadow:none;border-style:inset;transform:translate(1px,1px)}.header-connect{align-self:flex-start;min-width:132px;height:38px;margin-top:0;padding:0 13px;line-height:1}.about-heading .header-connect{align-self:stretch;width:100%}.contact-heading .header-connect{margin-right:0}.connect-button iconify-icon{flex:none;font-size:14px}.connect-button span{line-height:1;display:block}.resume-profile{border-bottom:1px solid #c8c3d6;grid-template-columns:88px 1fr;align-items:center;gap:20px;padding-bottom:23px;display:grid}.resume-avatar{color:#fff;background:linear-gradient(135deg,#8a80d8,#5b54a3);border:3px ridge #b7b0d5;place-items:center;width:82px;height:82px;font-family:Courier New,monospace;font-size:27px;font-weight:700;display:grid}.resume-profile span{color:#726bb0;letter-spacing:1.4px;font-size:9px;font-weight:700}.resume-profile h2{margin:3px 0;font-size:28px}.resume-profile p{color:#66616f;margin:0;font-size:12px}.resume-summary{grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0;display:grid}.resume-summary section{background:#ffffff73;border:1px solid #c8c2d8;gap:5px;padding:14px;display:grid}.resume-summary small{color:#777182;font-size:9px}.resume-summary strong{font-size:13px}.resume-summary span{color:#696473;font-size:10px}.resume-section{background:#fff6;border:1px solid #c7c1d7;margin-top:15px;padding:14px 16px}.resume-section h3{color:#645da4;margin:0 0 8px;font-size:12px}.resume-section ul{color:#66616f;gap:5px;margin:0;padding-left:17px;font-size:10px;line-height:1.45;display:grid}.resume-section.split{grid-template-columns:1fr 1fr;gap:20px;display:grid}.resume-section.split p{color:#66616f;margin:0;font-size:10px;line-height:1.5}.award-list{gap:8px;display:grid}.award-list section{background:#ffffff59;border-bottom:1px solid #c7c2d3;grid-template-columns:55px 1fr auto;align-items:center;gap:14px;min-height:45px;padding:8px 13px;display:grid}.award-list time{color:#6e67aa;font-family:Courier New,monospace;font-size:11px}.award-list strong{font-size:12px}.award-list span{color:#fff;background:#716ab2;padding:4px 8px;font-size:9px}.award-list.detailed section{grid-template-columns:55px 1fr auto;align-items:start;min-height:61px}.award-list.detailed div{gap:4px;display:grid}.award-list.detailed p{color:#6d6874;margin:0;font-size:9px;line-height:1.4}.award-list.detailed p small{color:#918b96;margin-top:3px;font-size:8px;display:block}.menu-bar{background:#e8e5ed;border-bottom:2px groove #b8b4c6;align-items:center;gap:22px;height:31px;padding-left:12px;font-size:15px;display:flex}.welcome-content{background:repeating-linear-gradient(0deg,#6d60a50b 0 1px,#0000 1px 3px),radial-gradient(circle at 88% 22%,#9182cf33,#0000 29%),#eceaf2;border:5px double #b2aec1;height:calc(100% - 62px);padding:45px 38px;position:relative;overflow:hidden}.hello{margin:0 0 19px;font-family:Pretendard,sans-serif;font-size:14px;font-weight:700}.welcome-content h1{z-index:2;letter-spacing:-2px;text-shadow:2px 2px #d4d0de;margin:0;font-family:Pretendard,sans-serif;font-size:32px;font-weight:900;line-height:1.4;position:relative}.signature{color:#7770d0;text-shadow:1px 2px #ddd8f4;margin:13px 0 34px;font-family:Segoe Script,Comic Sans MS,cursive;font-size:37px;line-height:1;transform:rotate(-3deg)}.signature span{font-size:24px;display:inline-block;transform:translateY(-15px)}.intro{z-index:2;margin:0;font-family:Pretendard,sans-serif;font-size:12px;font-weight:600;line-height:1.95;position:relative}.enter-button{z-index:4;color:#fff;cursor:pointer;background:linear-gradient(#6d69bf,#4e4aa1);border:3px outset #bdb9db;justify-content:center;align-items:center;gap:3px;min-width:164px;height:36px;margin-top:31px;padding:0 14px;font-size:12px;font-weight:700;display:inline-flex;position:relative;box-shadow:2px 2px #27234c}.enter-button:active{border-style:inset;transform:translate(1px,1px)}.hero-computer{z-index:3;object-fit:contain;filter:drop-shadow(6px 8px 2px #23194138);width:293px;height:293px;position:absolute;bottom:13px;right:17px}.sparkle{z-index:4;color:#8e87d8;position:absolute}.sparkle-one{font-size:24px;top:177px;left:275px}.sparkle-two{font-size:13px;top:199px;left:297px}.memo{z-index:7;filter:drop-shadow(6px 8px 6px #06061461);width:260px;height:202px;position:absolute;top:8.8%;right:4.8%;transform:rotate(-.3deg)}.memo header{color:#5e503a;background:#ffe3a0;border:1px solid #b8903e;border-radius:5px 5px 0 0;justify-content:space-between;align-items:center;height:37px;padding:0 14px;font-family:Pretendard,sans-serif;font-size:12px;display:flex}.draggable-panel>header,.draggable-handle{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.draggable-panel{-webkit-user-select:none;user-select:none;will-change:transform}.draggable-panel>header:active,.draggable-handle:active{cursor:grabbing}.memo-paper{color:#5d4c3c;background:radial-gradient(circle at 25% 55%,#ffffff4d,#0000 33%),linear-gradient(135deg,#ffe9ad,#ffdc82);border:1px solid #b88a34;border-top:0;border-radius:0 0 4px 4px;height:165px;padding:22px 31px;position:relative;box-shadow:inset 0 0 24px #d5a23b29}.memo-paper:after{content:"";clip-path:polygon(0 100%,100% 0,100% 100%);background:linear-gradient(135deg,#c59539 0 48%,#fff0bd 50% 100%);width:24px;height:24px;position:absolute;bottom:-1px;right:-1px}.memo p{margin:0 0 20px;font-family:Nanum Pen Script,Comic Sans MS,cursive;font-size:15px;line-height:1.9}.memo em{font-family:Georgia,serif;font-size:14px}.player{z-index:7;color:#f7edf9;background:linear-gradient(155deg,#6e5378,#4d3c5a);border:2px ridge #8e719d;width:205px;height:386px;padding:13px 15px;position:absolute;top:32.8%;right:8.1%;box-shadow:7px 8px #09071866,12px 16px 24px #08051259}.player header{justify-content:space-between;align-items:center;margin-bottom:20px;font-size:10px;display:flex}.album-art{cursor:pointer;background:radial-gradient(circle at 63% 42%,#ffd8b5 0 4%,#f77891 5% 11%,#0000 12%),linear-gradient(#303276,#cb527c 56%,#301d55 57%,#1b2445);border:3px solid #292239;width:100%;height:131px;padding:0;display:block;position:relative;overflow:hidden}.album-art:before{content:"";opacity:.5;background:repeating-linear-gradient(165deg,#0000 0 14px,#ff869eb3 15px,#0000 17px 28px);position:absolute;inset:0}.album-city{clip-path:polygon(0 25%,10% 25%,10% 2%,18% 2%,18% 34%,29% 34%,29% 15%,42% 15%,42% 45%,55% 45%,55% 4%,64% 4%,64% 29%,78% 29%,78% 10%,88% 10%,88% 37%,100% 37%,100% 100%,0 100%);background:repeating-linear-gradient(90deg,#182143 0 13px,#28305b 13px 24px,#10193b 24px 29px);height:47%;position:absolute;bottom:0;left:0;right:0}.song-title,.song-subtitle{text-align:center;display:block}.song-title{margin-top:12px;font-size:12px}.song-subtitle{color:#d7c7dc;margin-top:4px;font-family:Georgia,serif;font-size:11px}.progress{appearance:none;accent-color:#fff;cursor:pointer;background:#fff6;border:0;width:100%;height:3px;margin-top:24px;padding:0}.progress::-webkit-slider-thumb{appearance:none;background:#fff;border:0;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 2px #ffffff38}.volume input::-webkit-slider-thumb{appearance:none;background:#fff;border:0;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 2px #ffffff38}.time{justify-content:space-between;margin-top:7px;font-size:9px;display:flex}.player-controls{justify-content:center;align-items:center;gap:24px;margin-top:9px;font-size:12px;display:flex}.player-controls button{color:#fff;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.player-controls .main-play{color:#71577b;background:#fff;border-radius:50%;place-items:center;width:31px;height:31px;padding-left:2px;font-size:15px;display:grid}.volume{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:19px;font-size:11px;display:grid}.volume input{appearance:none;accent-color:#fff;cursor:pointer;background:#130e19a6;border:0;width:100%;height:2px;margin:0;padding:0}.taskbar{z-index:30;-webkit-backdrop-filter:blur(15px)saturate(1.15);backdrop-filter:blur(15px)saturate(1.15);background:linear-gradient(#f9f8fff0,#c9c7e1f2 46%,#b7b5d2f7);border-top:1px solid #fffc;align-items:center;gap:8px;height:64px;padding:8px 10px;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -1px #8e8aa8,0 -8px 26px #0b082147,inset 0 1px #ffffffe6}.taskbar>*{align-self:center}.start-button{letter-spacing:1px;cursor:pointer;background:linear-gradient(#fff,#d7d5e5 54%,#c2bfd5);border:2px solid #85819b;border-radius:3px;justify-content:center;align-items:center;gap:15px;min-width:132px;height:43px;font-weight:800;line-height:1;display:flex;box-shadow:inset 1px 1px #fff,inset -1px -1px #aaa6bf,2px 2px #3d395266}.start-button span{color:#e1df9f;background:#8e88ca;border:2px ridge #a6a2c6;place-items:center;width:21px;height:21px;display:grid}.task-link{color:#1a1824;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;gap:10px;min-width:154px;height:42px;padding:0 12px;font-size:13px;line-height:1;display:flex}.task-link:hover{background:#ffffff61;border-color:#706a8f80}.task-window{background:linear-gradient(#ffffffdb,#c9c4e2e0);border-color:#8883a7;box-shadow:inset 1px 1px #fff,inset -1px -1px #5b547d59}.task-window.active{background:linear-gradient(#aaa6cb,#d6d3e7);border-style:inset;box-shadow:inset 2px 2px #4d466c6b,inset -1px -1px #fff}.hello-task-icon{color:#fff;background:linear-gradient(135deg,#766ed0,#514b9f);border:2px ridge #bdb6e6;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.taskbar-divider{background:linear-gradient(#0000,#9995ac,#0000);width:1px;height:35px;margin:0 3px}.open-apps{scrollbar-width:none;flex:1;align-items:center;gap:6px;min-width:0;height:46px;display:flex;overflow-x:auto}.open-apps::-webkit-scrollbar{display:none}.screen-task{white-space:nowrap;text-overflow:ellipsis;background:#ffffff3d;border-color:#756e9780;flex:none;min-width:112px;max-width:140px;height:38px;overflow:hidden}.screen-task.active{background:linear-gradient(#aaa6cb,#d6d3e7);border-style:inset;box-shadow:inset 2px 2px #4d466c59,inset -1px -1px #fff}.screen-task iconify-icon{flex:none;font-size:17px}.task-link img{object-fit:contain;width:33px;height:33px}.terminal-icon{color:#a5d3be;background:#182322;border:2px ridge #74727c;border-radius:3px;place-items:center;width:30px;height:26px;font-size:15px;display:grid}.system-tray{background:#ffffff38;border:1px solid #8480998c;border-radius:4px;align-items:center;gap:14px;height:100%;margin-left:auto;padding:0 15px 0 20px;font-size:19px;display:flex;box-shadow:inset 1px 1px #ffffffb3}.system-tray>span,.system-tray>button{align-self:center;place-items:center;display:grid}.tray-volume{cursor:pointer;background:0 0;border:0;border-radius:3px;min-width:31px;padding:5px;font-size:15px}.tray-volume:hover{background:#6f699129}.system-tray time{text-align:center;border-left:1px solid #aaa8bc;flex-direction:column;justify-content:center;align-self:stretch;min-width:118px;padding-left:13px;font-size:14px;line-height:1.15;display:flex}.system-tray small{font-size:11px}.shutdown-screen{z-index:200;color:#e9e6ff;text-align:center;background:radial-gradient(circle at 50% 48%,#4b448b33,#0000 28%),#050713;place-items:center;animation:.55s ease-out both shutdown-on;display:grid;position:fixed;inset:0;overflow:hidden}.shutdown-screen:before{content:"";pointer-events:none;opacity:.12;background:repeating-linear-gradient(0deg,#0000 0 3px,#b9b2ff33 4px,#0000 5px);position:absolute;inset:0}.shutdown-message{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.shutdown-status{color:#8f88c1;letter-spacing:2px;margin-bottom:24px;font-family:Courier New,monospace;font-size:11px}.shutdown-message h1{letter-spacing:-.04em;text-shadow:0 0 28px #a89cff33;margin:0;font-size:clamp(24px,3vw,42px);line-height:1.45}.shutdown-message p{color:#aaa5c4;margin:18px 0 30px;font-size:14px}.power-on-button{color:#bcb3ff;cursor:pointer;background:#685eb21f;border:1px solid #827bb6;border-radius:50%;place-items:center;width:76px;height:76px;padding:0;font-size:32px;transition:color .2s,border-color .2s,box-shadow .2s,transform .2s;display:grid;box-shadow:0 0 0 7px #746ac20d,inset 0 0 22px #9084e51a}.power-on-button:hover{color:#fff;border-color:#c7c0ff;transform:scale(1.04);box-shadow:0 0 0 8px #8b7fe014,0 0 36px #7d70dc3d,inset 0 0 22px #a196f229}.power-on-button:focus-visible{outline-offset:6px;outline:2px solid #fff}.shutdown-message small{color:#6e698b;letter-spacing:1.5px;margin-top:18px;font-family:Courier New,monospace;font-size:9px}.boot-screen{z-index:100;color:#eeeaff;letter-spacing:1px;background:radial-gradient(circle at 50% 45%,#685db74d,#0000 28%),linear-gradient(#080d2b,#111640 62%,#0a0d25);flex-direction:column;justify-content:center;align-items:center;animation:.35s ease-in 2.05s forwards boot-away;display:flex;position:fixed;inset:0}.boot-screen:after{content:"";opacity:.16;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 2px,#ffffff1f 3px,#0000 4px);position:absolute;inset:0}.boot-computer{width:230px;height:230px;margin-bottom:-10px;animation:.8s cubic-bezier(.18,.8,.28,1) both computer-boot;position:relative}.boot-computer img{z-index:2;object-fit:contain;filter:drop-shadow(0 18px 30px #00000073);width:100%;height:100%;position:relative}.boot-glow{z-index:1;filter:blur(28px);opacity:.32;background:#7ff3f1;border-radius:50%;width:120px;height:120px;animation:1s ease-in-out infinite alternate screen-pulse;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%)}.boot-screen>strong{color:#d7d2ff;text-shadow:0 0 12px #a599ff8c;font-size:24px}.boot-screen p{margin:14px 0 12px;font-size:12px}.boot-progress{background:#18183b;border:2px ridge #9189c7;width:290px;height:15px;padding:2px}.boot-progress i{transform-origin:0;background:repeating-linear-gradient(90deg,#a39af0 0 9px,#746bc2 9px 12px);width:100%;height:100%;animation:1.8s cubic-bezier(.2,.8,.2,1) .15s both loading-bar;display:block}.boot-screen small{color:#aaa4d4;margin-top:12px;font-size:9px}@media (max-width:1250px){.welcome-window{left:50%;transform:translate(-40%)}.memo,.player{display:none}}@media (max-width:1024px){body{overflow:hidden}.desktop{background-position:50%;height:100svh;min-height:0}.desktop-title{font-size:17px;top:16px;left:22px}.shortcuts{grid-template-columns:repeat(4,104px);gap:18px 13px;top:70px;left:24px}.shortcut{text-align:center;flex-direction:column;justify-content:flex-start;width:104px;min-height:91px}.shortcut-icon{width:59px;height:59px}.shortcut-copy{gap:0;padding:3px 0 0}.shortcut-copy strong{font-size:13px}.shortcut-copy small{display:none}.welcome-window{width:min(680px,100% - 40px);height:min(540px,100svh - 240px);top:clamp(142px,20svh,180px);left:50%;transform:translate(-50%)}.portfolio-window{width:calc(100% - 48px);height:calc(100svh - 176px);top:88px!important;left:24px!important}.portfolio-window.maximized{width:auto;height:auto;inset:8px 8px 72px}.about-grid,.about-story,.project-detail-grid,.resume-summary,.resume-section.split{grid-template-columns:1fr}.skill-groups.detailed section{grid-template-columns:1fr;gap:10px}.timeline.detailed section{grid-template-columns:90px 1fr}.screen-document{padding:25px 22px}.project-list.interactive .project-card.has-preview{grid-template-columns:52px minmax(0,1fr) 22px}.project-card-thumb{display:none}.project-gallery-image{flex-basis:190px;height:260px}.taskbar{height:68px;padding:8px 10px;position:fixed}.taskbar-divider,.task-link:not(.task-window):not(.screen-task){display:none}.task-window,.start-button{min-width:116px}.system-tray{padding-left:13px}}@media (max-width:680px){.desktop-title{letter-spacing:1.3px;font-size:14px;top:11px;left:14px}.shortcuts{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px 3px;top:49px;left:10px;right:10px}.shortcut{width:100%;min-height:76px}.shortcut-icon{width:47px;height:47px}.shortcut-copy{padding-top:1px}.shortcut-copy strong{font-size:10px}.welcome-window{width:calc(100% - 12px);height:min(500px,100svh - 238px);top:clamp(148px,22svh,174px);bottom:auto;left:6px;transform:none}.welcome-content{padding:25px 18px;overflow-y:auto}.welcome-content h1{font-size:21px}.hello{margin-bottom:11px}.signature{margin:10px 0 19px;font-size:27px}.intro{z-index:5;max-width:68%;font-size:10px;position:relative}.hero-computer{opacity:.82;width:155px;height:155px;bottom:3px;right:-8px}.enter-button{margin-top:19px}.sparkle{display:none}.portfolio-window,.portfolio-window.maximized{width:auto;height:auto;position:fixed;inset:48px 5px 68px!important}.window-bar{height:29px;font-size:11px}.window-controls button{width:25px;height:23px}.menu-bar{gap:15px;height:27px;font-size:11px}.screen-window-content{height:calc(100% - 56px)}.screen-document{padding:20px 15px}.screen-heading h2{font-size:23px}.screen-heading.compact h2{font-size:20px}.project-card{grid-template-columns:49px minmax(0,1fr) 18px;gap:10px;padding:13px}.project-icon{width:45px;height:45px;font-size:20px}.project-card h3{font-size:14px}.project-card p{font-size:11px}.project-detail-hero{grid-template-columns:58px 1fr;gap:12px}.project-detail-icon{width:54px;height:54px;font-size:24px}.project-detail-hero h2{font-size:19px}.project-detail-hero p{font-size:11px}.project-detail-grid{grid-template-columns:1fr}.project-detail-grid section{min-height:auto}.project-gallery-image{flex-basis:76vw;height:300px}.about-heading,.contact-heading{flex-direction:column}.screen-heading-actions{flex-wrap:wrap}.contact-heading .header-connect{margin-right:0}.taskbar{gap:5px;height:62px;padding:6px}.start-button{gap:7px;min-width:91px;height:42px;padding:0 8px;font-size:10px}.start-button span{width:19px;height:19px}.task-window{min-width:89px;height:40px;padding:0 8px;font-size:10px}.hello-task-icon{width:23px;height:23px}.open-apps{height:44px}.screen-task{min-width:91px;height:38px;padding:0 8px;font-size:10px}.system-tray{display:none}.boot-computer{width:180px;height:180px}.boot-progress{width:min(280px,100% - 44px)}}@media (prefers-reduced-motion:no-preference){.welcome-window{animation:.55s cubic-bezier(.2,.8,.2,1) both window-in}.shortcut{animation:.35s both shortcut-in}.shortcut:nth-child(2){animation-delay:40ms}.shortcut:nth-child(3){animation-delay:80ms}.shortcut:nth-child(4){animation-delay:.12s}.shortcut:nth-child(5){animation-delay:.16s}.shortcut:nth-child(6){animation-delay:.2s}.shortcut:nth-child(7){animation-delay:.24s}}@keyframes window-in{0%{opacity:0;margin-top:16px}to{opacity:1;margin-top:0}}@keyframes shortcut-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes computer-boot{0%{opacity:0;transform:translateY(18px)scale(.82)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes screen-pulse{0%{opacity:.18;transform:translate(-50%,-50%)scale(.85)}to{opacity:.48;transform:translate(-50%,-50%)scale(1.12)}}@keyframes loading-bar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes boot-away{to{opacity:0;visibility:hidden}}@keyframes shutdown-on{0%{opacity:0;filter:brightness(2)}to{opacity:1;filter:brightness()}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
