:root{--font-main:"Pretendard", "Segoe UI", Arial, sans-serif;--color-bg:#111318;--color-bg-soft:#181c20;--color-surface:#1f2429;--color-surface-strong:#293039;--color-text:#f7f7f2;--color-muted:#aeb6bf;--color-border:#f7f7f224;--color-primary:#33d69f;--color-secondary:#40c9ff;--color-accent:#ffb347;--color-danger:#ff5a7a;--shadow-card:0 24px 70px #00000047;--radius-sm:6px;--radius-md:8px;--radius-lg:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-main);background:var(--color-bg);color:var(--color-text);text-rendering:optimizelegibility;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.app{background:var(--color-bg);isolation:isolate;min-height:100vh;position:relative;overflow-x:hidden}.app:before{z-index:-2;pointer-events:none;content:"";position:fixed;inset:0}.app:after{z-index:-1;pointer-events:none;content:"";opacity:.34;position:fixed;inset:0}.theme-colorful{--color-bg:#fcf326;--color-bg-soft:#12c7d6;--color-surface:#fffdf3;--color-surface-strong:#101820;--color-text:#101820;--color-muted:#3a4350;--color-border:#1018202e;--color-primary:#ff3d67;--color-secondary:#006bff;--color-accent:#00a86b;--color-danger:#8a2be2;--shadow-card:8px 8px 0 #101820f0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.theme-colorful:before{background:linear-gradient(90deg, #1018201f 2px, transparent 2px), linear-gradient(#1018201f 2px, transparent 2px), var(--color-bg);background-size:54px 54px}.theme-colorful:after{opacity:.16;background:radial-gradient(circle at 18% 18%,#ff3d67 0 9%,#0000 10%),radial-gradient(circle at 82% 24%,#006bff 0 8%,#0000 9%),radial-gradient(circle at 72% 78%,#00a86b 0 10%,#0000 11%)}.theme-pastel{--color-bg:#effbff;--color-bg-soft:#f7efff;--color-surface:#ffffffe0;--color-surface-strong:#dff8f2;--color-text:#243046;--color-muted:#697189;--color-border:#5e6a8a33;--color-primary:#68d8c3;--color-secondary:#82c7ff;--color-accent:#f3a7c5;--color-danger:#b89cff;--shadow-card:0 18px 45px #5e6a8a2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.theme-pastel:before{background:linear-gradient(135deg, #68d8c347, transparent 30%), linear-gradient(45deg, #f3a7c538, transparent 35%), repeating-linear-gradient(0deg, transparent 0 28px, #82c7ff29 29px 30px), var(--color-bg)}.theme-pastel:after{background-image:linear-gradient(45deg,#2430460a 25%,#0000 25%),linear-gradient(-45deg,#2430460a 25%,#0000 25%);background-size:26px 26px}.theme-dark{--color-bg:#161413;--color-bg-soft:#211e1b;--color-surface:#231f1d;--color-surface-strong:#302922;--color-text:#f4eee6;--color-muted:#b8aba0;--color-border:#f4eee629;--color-primary:#d3a45f;--color-secondary:#6fb18a;--color-accent:#a14648;--color-danger:#6f86b1;--shadow-card:0 28px 80px #00000057;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.theme-dark:before{background:linear-gradient(90deg,#f4eee60b 1px,#0000 1px) 0 0/58px 58px,linear-gradient(#f4eee60b 1px,#0000 1px) 0 0/58px 58px,linear-gradient(120deg,#161413,#211e1b)}.theme-dark:after{background:repeating-linear-gradient(135deg,#0000 0 12px,#d3a45f0f 13px 14px)}.theme-digital{--color-bg:#101112;--color-bg-soft:#16191b;--color-surface:#181b1d;--color-surface-strong:#202527;--color-text:#f4f0e8;--color-muted:#a7a39a;--color-border:#f4f0e821;--color-primary:#34d399;--color-secondary:#38bdf8;--color-accent:#f59e0b;--color-danger:#fb7185;--shadow-card:0 30px 90px #00000057;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.theme-digital:before{background:linear-gradient(#f4f0e809 1px, transparent 1px), linear-gradient(90deg, #f4f0e809 1px, transparent 1px), var(--color-bg);background-size:42px 42px}.theme-digital:after{background:repeating-linear-gradient(0deg,#34d3990b 0 1px,#0000 1px 5px)}.section{width:min(1160px,100% - 36px);margin:0 auto;padding:96px 0;scroll-margin-top:96px}.section-heading{max-width:760px;margin-bottom:28px}.section-heading h2,.home-content h1,.home-content h2,.text-panel h3,.skill-card h3,.project-card h3,.certificate-card h3{letter-spacing:0;margin:0}.section-heading h2{font-size:clamp(2.2rem,5vw,4.6rem);line-height:.98}.section-heading p,.home-description,.text-panel p,.project-card p,.certificate-card p{color:var(--color-muted);line-height:1.7}.eyebrow{color:var(--color-secondary);letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:.78rem;font-weight:850}.button-row,.card-actions{flex-wrap:wrap;gap:12px;display:flex}.button,.card-actions a,.card-actions button,.certificate-card button,.disabled-link{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-height:42px;color:var(--color-text);white-space:nowrap;justify-content:center;align-items:center;padding:0 18px;font-weight:850;display:inline-flex}.button.primary,.card-actions a:first-child,.card-actions button:first-child,.certificate-card button{background:var(--color-primary);color:#101112;border-color:#0000}.button.secondary,.card-actions a:last-child{background:0 0}.button.ghost{background:var(--color-surface-strong)}.text-panel,.skill-card,.project-card,.certificate-card,.site-note,.layout-note{border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 88%, transparent);box-shadow:var(--shadow-card)}.text-panel,.skill-card,.project-card,.certificate-card{position:relative;overflow:hidden}.text-panel:before,.skill-card:before,.project-card:before,.certificate-card:before{background:linear-gradient(90deg, var(--color-primary), var(--color-secondary), var(--color-accent));content:"";opacity:.82;width:100%;height:3px;position:absolute;top:0;left:0}.reveal{animation:.64s both reveal-up}@keyframes reveal-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.site-header{z-index:20;border-bottom:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg) 88%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:18px;width:min(1220px,100% - 36px);min-height:76px;margin:0 auto;display:flex}.logo{min-width:max-content;color:var(--color-text);background:0 0;border:0;align-items:center;gap:10px;font-size:1rem;font-weight:900;display:inline-flex}.logo:before{background:var(--color-primary);width:10px;height:10px;box-shadow:0 0 22px var(--color-primary);content:"";border-radius:50%;display:inline-block}.header-menu{flex:1;justify-content:flex-end;align-items:center;gap:14px;min-width:0;display:flex}.layout-switcher,.nav-links{align-items:center;gap:6px;display:flex}.nav-links{flex-wrap:wrap;flex:360px;justify-content:flex-end;min-width:0}.layout-switcher{border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 78%, transparent);padding:5px}.layout-switcher a,.nav-links button{border-radius:var(--radius-sm);min-height:34px;color:var(--color-muted);background:0 0;border:0;font-size:.82rem;font-weight:850}.layout-switcher a{align-items:center;padding:0 10px;display:inline-flex}.layout-switcher a.active{background:var(--color-primary);color:#101112}.nav-links button{padding:8px 9px}.nav-links button:hover,.layout-switcher a:hover{background:var(--color-surface-strong);color:var(--color-text)}.menu-button{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:42px;height:42px;display:none}.menu-button span{background:var(--color-text);width:18px;height:2px;margin:4px auto;display:block}.site-note,.layout-note{justify-content:space-between;align-items:center;gap:18px;width:min(1160px,100% - 36px);margin:22px auto 0;padding:12px 16px;display:flex}.layout-note{box-shadow:none;background:0 0;margin-top:10px}.site-note strong,.layout-note strong{color:var(--color-primary);letter-spacing:0;text-transform:uppercase;font-size:.86rem}.site-note span,.layout-note span{color:var(--color-muted);line-height:1.5}.home-section{grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);align-items:center;gap:clamp(34px,6vw,78px);min-height:calc(100vh - 132px);padding-top:66px;display:grid}.home-content h1{max-width:820px;font-size:clamp(4.2rem,13vw,10.2rem);line-height:.82}.theme-colorful .home-content h1{color:var(--color-primary);text-shadow:4px 4px 0 var(--color-secondary), 8px 8px 0 var(--color-accent)}.theme-pastel .home-content h1{color:var(--color-text)}.theme-dark .home-content h1{color:var(--color-primary)}.theme-digital .home-content h1{color:var(--color-text);opacity:.92}.home-content h2{color:var(--color-primary);margin-top:24px;font-size:clamp(1.2rem,3vw,2rem);font-weight:850}.home-description{max-width:680px;margin:20px 0 30px;font-size:1.08rem}.hero-meta{border-top:1px solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));max-width:620px;margin:34px 0 0;display:grid}.hero-meta div{padding:18px 18px 0 0}.hero-meta dt{color:var(--color-muted);letter-spacing:0;text-transform:uppercase;font-size:.76rem;font-weight:900}.hero-meta dd{color:var(--color-text);margin:8px 0 0;line-height:1.45}.profile-visual{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden}.theme-colorful .profile-visual{transform:rotate(-1.4deg)}.theme-pastel .profile-visual{border-style:dashed}.theme-dark .profile-visual{border-color:color-mix(in srgb, var(--color-primary) 42%, var(--color-border))}.profile-visual img{aspect-ratio:1;object-fit:cover;width:100%}.profile-caption{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:14px;padding:18px 20px;display:flex}.profile-caption span{color:var(--color-muted);font-size:.82rem;font-weight:850}.profile-caption strong{color:var(--color-primary);overflow-wrap:anywhere;font-size:.9rem}.about-layout,.info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.info-grid{margin-top:18px}.text-panel{padding:30px}.text-panel h3{margin-bottom:12px;font-size:1.15rem}.tag-list,.tech-list,.skill-card ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tag-list li,.tech-list li,.skill-card li{border:1px solid var(--color-border);background:var(--color-surface-strong);color:var(--color-text);border-radius:999px;padding:7px 11px;font-size:.84rem;font-weight:780}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.skill-card{min-height:178px;padding:28px}.skill-card h3{color:var(--color-primary);margin-bottom:18px}.project-grid,.certificate-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.project-grid.featured,.project-grid.minimal{grid-template-columns:1fr}.project-card.gallery{transition:transform .18s,border-color .18s,box-shadow .18s}.project-card.gallery:hover{border-color:color-mix(in srgb, var(--color-primary) 68%, var(--color-border));transform:translateY(-5px)}.theme-colorful .project-card.gallery:hover{transform:rotate(1deg)translateY(-5px)}.project-card.featured{grid-template-columns:minmax(240px,.52fr) minmax(0,1fr);display:grid}.project-image{background:var(--color-surface-strong);border:0;width:100%;height:100%;padding:0;display:block}.project-image img{aspect-ratio:16/10;object-fit:cover;width:100%;height:100%;min-height:220px}.project-body{padding:28px}.project-body h3{font-size:1.45rem}.summary{min-height:56px}.project-card.featured .summary,.project-card.minimal .summary{min-height:auto}.project-details{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);gap:10px;margin:18px 0;padding:16px 0;display:grid}.project-details div{grid-template-columns:52px 1fr;gap:12px;display:grid}.project-details dt,.detail-list dt{color:var(--color-primary);font-weight:900}.project-details dd,.detail-list dd{color:var(--color-muted);margin:0}.certificate-card{flex-direction:column;justify-content:space-between;gap:20px;min-height:190px;padding:28px;display:flex}.certificate-card h3{margin-bottom:8px}.certificate-card span:not(.disabled-link){color:var(--color-secondary);font-weight:850}.disabled-link{border:1px dashed var(--color-border);color:var(--color-muted)}.contact-section{padding-bottom:110px}.contact-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.contact-list a{border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 88%, transparent);color:var(--color-muted);overflow-wrap:anywhere;gap:6px;padding:22px;display:grid}.contact-list a:hover{border-color:color-mix(in srgb, var(--color-primary) 62%, var(--color-border));color:var(--color-text)}.contact-list span{color:var(--color-primary);letter-spacing:0;text-transform:uppercase;font-size:.78rem;font-weight:900}.site-footer{border-top:1px solid var(--color-border);color:var(--color-muted);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 18px;padding:30px 16px;display:flex}.site-footer p{margin:0}.back-to-top{z-index:12;border:1px solid color-mix(in srgb, var(--color-primary) 48%, var(--color-border));background:color-mix(in srgb, var(--color-surface) 82%, transparent);width:44px;height:44px;color:var(--color-primary);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;font-weight:900;display:inline-flex;position:fixed;bottom:18px;right:18px}.modal-backdrop{z-index:50;background:#0000009e;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:min(960px,100%);max-height:min(760px,100vh - 48px);box-shadow:var(--shadow-card);overflow:auto}.modal-header{z-index:1;border-bottom:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex;position:sticky;top:0}.modal-header h3{margin:0}.modal-header button{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-text);background:0 0;font-size:1.3rem}.detail-layout{grid-template-columns:minmax(240px,.8fr) minmax(0,1fr);gap:22px;padding:22px;display:grid}.detail-image{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-strong);width:100%}.detail-content{padding:22px}.detail-content p{color:var(--color-muted);line-height:1.7}.detail-list{gap:12px;margin:18px 0;display:grid}.detail-list div{grid-template-columns:90px 1fr;gap:14px;display:grid}.pdf-viewer,.pdf-empty{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-soft);width:100%;min-height:320px}.pdf-empty{color:var(--color-muted);place-items:center;display:grid}@media (width<=1120px){.header-inner{min-height:auto;padding:12px 0}.header-menu{flex-wrap:wrap;align-items:center;gap:10px}.layout-switcher a,.nav-links button{font-size:.78rem}.nav-links button{padding:7px 8px}.skills-grid,.project-grid,.certificate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid.featured{grid-template-columns:1fr}}@media (width<=900px){.menu-button{display:block}.header-menu{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card);flex-direction:column;align-items:stretch;padding:16px;display:none;position:absolute;top:76px;left:18px;right:18px}.header-menu.open{display:flex}.layout-switcher,.nav-links{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.nav-links button,.layout-switcher a{text-align:center;justify-content:center}.home-section{grid-template-columns:1fr;gap:34px;min-height:auto}.profile-visual{max-width:520px}.about-layout,.info-grid,.contact-list,.detail-layout,.project-card.featured{grid-template-columns:1fr}.site-note,.layout-note{flex-direction:column;align-items:flex-start}}@media (width<=640px){.section{width:min(100% - 28px,1160px);padding:68px 0}.site-note,.layout-note{width:min(100% - 28px,1160px)}.home-content h1{font-size:clamp(3.2rem,19vw,5.2rem)}.hero-meta,.skills-grid,.project-grid,.project-grid.featured,.certificate-grid{grid-template-columns:1fr}.card-actions,.button-row{flex-direction:column}.button,.card-actions a,.card-actions button,.certificate-card button,.disabled-link{width:100%}.profile-caption{flex-direction:column;align-items:flex-start}.detail-list div{grid-template-columns:1fr}}
