:root{--bg: #ffffff;--panel: #f6f7f9;--text: #222222;--muted: #666666;--accent: #007aff;--accent2: #00b894;--radius: 14px;--container: 1100px}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Noto Sans KR,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;color:var(--text);background:var(--bg);line-height:1.6}.layout-container{max-width:var(--container);margin:0 auto;padding:0 20px}.site-header{position:sticky;top:0;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(0,0,0,.08);z-index:10}.nav{display:flex;align-items:center;justify-content:space-between;height:64px}.logo{color:var(--text);text-decoration:none;font-weight:800;font-size:1.2rem;border:2px solid var(--text);padding:6px 12px;border-radius:10px;transition:all .15s ease}.logo:hover{background:var(--text);color:#fff}.menu{display:flex;gap:18px;list-style:none;margin:0;padding:0}.menu a{color:var(--muted);text-decoration:none;padding:8px 12px;border-radius:8px;font-weight:500;transition:color .15s ease,background .15s ease}.menu a.active,.menu a:hover{color:var(--text);background:#0000000d}main{min-height:80vh;padding-top:40px}.site-footer{background:var(--panel);border-top:1px solid rgba(0,0,0,.08);padding:20px 0;text-align:center;color:var(--muted);font-size:14px}@media (max-width: 700px){.nav{flex-direction:column;height:auto;padding:12px 0;gap:10px}.menu{flex-wrap:wrap;justify-content:center;gap:10px}.logo{font-size:1rem}}:root{--text: #222;--muted: #555;--accent: #007aff;--accent2: #00b894;--panel: #f6f7f9;--radius: 14px;--container: 900px}.portfolio p{word-break:keep-all;overflow-wrap:break-word;line-height:1.8;text-align:justify;margin-bottom:14px}.container{max-width:var(--container);margin:0 auto;padding:40px 40px 60px;color:var(--text)}.pdf-page{background:#fff;box-sizing:border-box;padding:0 25mm}.pdf-page.pdf-export{padding:25mm}.page2 h3{font-size:1.2rem;font-weight:700;margin-top:28px;margin-bottom:10px;color:#1a1a1a;letter-spacing:.5px}.link{color:inherit;text-decoration:none;cursor:pointer}.link:hover,.link:active,.link:visited{color:inherit;text-decoration:none}.profile-area{display:flex;justify-content:space-between;align-items:center;gap:40px;margin-bottom:36px}.profile-left{flex:1}.job-title{color:var(--accent2);font-weight:600;margin:0;font-size:1.2rem;line-height:.1!important}.name{font-size:2.6rem;font-weight:800;margin:2px 0 14px;line-height:1;letter-spacing:6px}.profile-right{flex-shrink:0;display:flex;align-items:center;justify-content:center}.profile-img-wrapper{width:190px;height:190px;border-radius:50%;overflow:hidden;border:3px solid var(--accent2);box-shadow:0 4px 16px #0000001a;margin-top:20px;background-color:#fff;display:flex;justify-content:center;align-items:center}.profile-img-wrapper img.horizontal{width:auto;height:100%}.profile-img-wrapper img.vertical{width:100%;height:auto;transform:translateY(8%)}.info-table{display:flex;flex-direction:column;gap:6px;font-size:15px}.info-row{display:grid;grid-template-columns:120px 1fr;border-bottom:1px solid #ddd;padding:5px 0}.info-row span:first-child{font-weight:600;color:var(--muted);display:flex;align-items:center}.info-row span svg{vertical-align:middle;margin-right:6px;color:#2e7764;width:18px;height:18px;stroke-width:2.4}.section{margin-bottom:36px}.section h2{font-size:1.1rem;margin-bottom:6px}.section hr{border:none;border-top:1px solid #000;margin:4px 0 16px}.core-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.core-list li{position:relative;padding-left:14px;font-size:15px;line-height:1.5}.core-list li:before{content:"•";position:absolute;left:0;color:var(--accent2)}.skill-row{display:flex;flex-wrap:wrap;gap:16px 20px;margin-bottom:8px}.skill-row span{border:1px solid #ccc;padding:4px 10px;border-radius:8px;background:#fff;font-size:14px}.grid-row{display:grid;grid-template-columns:1fr 1.2fr 1.6fr;gap:8px;font-size:15px;align-items:center;padding:10px 0}.grid-row:not(:last-child){border-bottom:1px solid #ddd}.col.left{text-align:left;color:var(--muted)}.col.center{text-align:left;padding-left:24px;font-weight:500}.col.right{text-align:left;padding-left:24px;color:var(--text)}.fab-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:8px;z-index:200}.fab-main{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border:none;border-radius:10px;height:42px;width:90px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 6px 20px #00000026;transition:background .2s ease,box-shadow .2s ease}.fab-main:hover{box-shadow:0 8px 24px #0003}.fab-options{position:absolute;bottom:60px;right:0;display:flex;flex-direction:column;align-items:flex-end;gap:6px;opacity:0;pointer-events:none;transform:translateY(10px);transition:all .25s ease}.fab-container.open .fab-options{opacity:1;pointer-events:all;transform:translateY(0)}.fab-options button{background:#fff;border:1px solid #ccc;border-radius:10px;height:42px;width:90px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;text-align:center;color:var(--text);cursor:pointer;box-shadow:0 2px 8px #0000001f;transition:all .2s ease}.fab-options button:hover{background:#f7f7f7;transform:translateY(-1px)}@media (max-width: 800px){.profile-area{flex-direction:column;align-items:center;text-align:center}.info-row{grid-template-columns:1fr}.grid-row{grid-template-columns:1fr;text-align:center}}.skill-row strong.level{font-weight:700;margin-left:2px}.level.high{color:#00b894}.level.mid{color:#0984e3}.level.low{color:#636e72}@media print{.fab-container,.site-header,.site-footer{display:none!important}}:root{--text: #222;--muted: #555;--accent: #007aff;--accent2: #00b894;--panel: #f8f9fa;--radius: 14px;--container: 900px}.projects-container p{word-break:keep-all;overflow-wrap:break-word;text-align:justify;line-height:1.7;margin-bottom:12px}.projects-container{max-width:var(--container);margin:0 auto;padding:40px 40px 60px;color:var(--text)}.projects-section{margin-bottom:60px}.projects-section h2{font-size:1.4rem;font-weight:700;margin-bottom:16px;border-left:6px solid var(--accent2);padding-left:10px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:28px}.projects-card{background:#fff;border-radius:var(--radius);box-shadow:0 4px 14px #00000014;padding:24px 28px;display:flex;flex-direction:column;justify-content:space-between;transition:all .2s ease;border:1px solid #e3e3e3}.projects-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001a;border-color:var(--accent2)}.projects-thumb{width:100%;height:180px;border-radius:var(--radius);overflow:hidden;margin-bottom:16px;background:#f0f0f0;display:flex;justify-content:center;align-items:center}.projects-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.projects-card:hover .projects-thumb img{transform:scale(1.05)}.projects-card h3{font-size:1.2rem;margin-bottom:10px;color:var(--accent2)}.projects-card p{font-size:.95rem;line-height:1.55;color:var(--muted);margin-bottom:16px}.projects-role{font-size:.9rem;color:var(--text);margin-top:4px;margin-bottom:10px;line-height:1.4}.projects-role strong{color:var(--accent2);font-weight:700}.projects-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;margin-bottom:10px}.projects-tag{background:#eef9f3;border:1px solid #b7e4c7;color:#206d4c;border-radius:8px;padding:4px 10px;font-size:13px;font-weight:600}.projects-card-actions{display:flex;justify-content:flex-end}.projects-link{text-decoration:none;color:#fff;background:var(--accent2);padding:6px 14px;border-radius:8px;font-size:14px;font-weight:600;transition:background .2s ease}.projects-link:hover{background:#009e76}@media (max-width: 768px){.projects-grid{grid-template-columns:1fr}.projects-card{padding:20px}.projects-section h2{font-size:1.2rem}}@media print{.projects-link{display:none!important}.projects-card{box-shadow:none;border:1px solid #ccc}}:root{--text: #222;--muted: #555;--accent: #00b894;--accent-hover: #009e76;--border: #dcdcdc;--container: 900px;--radius: 14px}.contact-container{max-width:var(--container);margin:80px auto 120px;padding:60px 50px 80px;text-align:center;color:var(--text);background:#fff;border:2px solid var(--accent);border-radius:var(--radius);box-shadow:0 6px 18px #0000000d;transition:all .25s ease}.contact-container:hover{box-shadow:0 8px 24px #00000014;transform:translateY(-2px)}.contact-title{font-size:1.8rem;font-weight:800;color:var(--accent);margin-bottom:18px}.contact-text{font-size:1rem;color:var(--muted);margin-bottom:36px}.contact-list{list-style:none;padding:0;margin:0 auto;display:flex;justify-content:center;gap:24px;flex-wrap:wrap}.contact-link{text-decoration:none;color:var(--accent);border:2px solid var(--accent);padding:10px 20px;border-radius:10px;font-weight:700;font-size:.95rem;letter-spacing:.3px;background:transparent;transition:all .25s ease}.contact-link:hover{background:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #00b8944d}@media (max-width: 600px){.contact-container{padding:50px 24px 70px}.contact-title{font-size:1.5rem}.contact-link{font-size:.9rem;padding:8px 16px}}@media print{.contact-container{border:1px solid #ccc;box-shadow:none;transform:none}.contact-link{color:var(--accent);border:none;background:none;padding:0;box-shadow:none}}
