body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#1a1a2e;--card-dark:#16213e;--gold:#c8a96e;--text:#e8e3d8;--muted:#6b7a99;--dim:#3a4a6a;--border:#232345;--ease:cubic-bezier(0.25,0.46,0.45,0.94);--ease-spring:cubic-bezier(0.34,1.2,0.64,1)}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#1a1a2e;background-color:var(--bg);color:#e8e3d8;color:var(--text);font-family:Inter,Noto Sans KR,-apple-system,sans-serif;line-height:1.6}.reveal{opacity:0;transform:translateY(36px);transition:opacity .8s cubic-bezier(.25,.46,.45,.94) 0s,transform .8s cubic-bezier(.25,.46,.45,.94) 0s;transition:opacity .8s var(--ease) var(--delay,0s),transform .8s var(--ease) var(--delay,0s)}.reveal.in-view{opacity:1;transform:none}.hero{align-items:center;background-color:#1a1a2e;background-color:var(--bg);display:flex;justify-content:center;overflow:hidden;padding:5rem 3rem;position:relative}.hero:before{background:radial-gradient(ellipse 55% 65% at 8% 65%,hsla(39,45%,61%,.055) 0,#0000 65%),radial-gradient(ellipse 40% 50% at 92% 15%,#6366c90f 0,#0000 60%);content:"";inset:0;pointer-events:none;position:absolute}.hero-inner{align-items:center;display:flex;gap:5rem;max-width:1060px;position:relative;width:100%;z-index:1}.hero-photo-wrap{flex-shrink:0}.hero-photo{animation:heroIn 1s cubic-bezier(.25,.46,.45,.94) .1s both;animation:heroIn 1s var(--ease) .1s both;border:2px solid #c8a96e4d;border-radius:50%;box-shadow:0 0 0 8px #c8a96e0d,0 20px 60px #00000080;display:block;height:190px;object-fit:cover;width:190px}.hero-text{display:flex;flex-direction:column}.hero-name{animation:heroIn 1s cubic-bezier(.25,.46,.45,.94) .25s both;animation:heroIn 1s var(--ease) .25s both;color:#f0ebe0;font-size:clamp(2.2rem,4.2vw,4rem);font-weight:700;letter-spacing:.06em;line-height:1;margin-bottom:.6rem;white-space:nowrap}.hero-title{animation:heroIn 1s cubic-bezier(.25,.46,.45,.94) .4s both;animation:heroIn 1s var(--ease) .4s both;color:#c8a96e;color:var(--gold);font-size:clamp(.7rem,1.4vw,.85rem);font-weight:400;letter-spacing:.44em;margin-bottom:1.6rem;text-transform:uppercase}.hero-intro{animation:heroIn 1s cubic-bezier(.25,.46,.45,.94) .55s both;animation:heroIn 1s var(--ease) .55s both;color:#6b7a99;color:var(--muted);font-size:clamp(.9rem,1.6vw,1rem);font-weight:300;line-height:1.8}@keyframes heroIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.section{border-top:1px solid #232345;border-top:1px solid var(--border);margin:0 auto;max-width:1060px;padding:5rem 3rem}.section-label{color:#3a4a6a;color:var(--dim);font-size:.65rem;font-weight:600;letter-spacing:.48em;margin-bottom:3rem;text-transform:uppercase}.stack-categories{display:flex;flex-direction:column;gap:1.1rem}.stack-row{align-items:center;display:flex;gap:1.75rem}.category-name{color:#3a4a6a;color:var(--dim);flex-shrink:0;font-size:.65rem;font-weight:600;letter-spacing:.14em;min-width:76px;text-transform:uppercase}.badge-row{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem}.shield-badge{border-radius:3px;display:block;height:20px}.project-grid{grid-gap:1.75rem;display:grid;gap:1.75rem;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.project-card{border-radius:20px;display:block;overflow:hidden;text-decoration:none;transition:transform .55s cubic-bezier(.34,1.2,.64,1),box-shadow .55s cubic-bezier(.25,.46,.45,.94);transition:transform .55s var(--ease-spring),box-shadow .55s var(--ease);will-change:transform}.project-card:hover{transform:translateY(-10px) scale(1.012)}.project-card--dark{background-color:#16213e;background-color:var(--card-dark);border:1px solid #2a3a6e;box-shadow:0 6px 32px #00000073;color:#e8e3d8;color:var(--text)}.project-card--dark:hover{box-shadow:0 24px 64px #000000a6,0 0 0 1px #c8a96e33}.project-card--light{background-color:#f5f0e8;border:1px solid #e4ddd0;box-shadow:0 6px 32px #0000001a;color:#1a1a1a}.project-card--light:hover{box-shadow:0 24px 64px #0000002e}.project-card-inner{display:flex;flex-direction:column;gap:1rem;padding:2.5rem}.badge{align-self:flex-start;border-radius:100px;display:inline-block;font-size:.65rem;font-weight:600;letter-spacing:.1em;padding:.28rem .75rem;text-transform:uppercase}.badge--live{background-color:#48c78e1f;border:1px solid #48c78e47;color:#48c78e}.badge--github{background-color:#00000012;border:1px solid #0000001f;color:#555}.project-title{font-size:2.1rem;font-weight:700;letter-spacing:.05em;line-height:1.1}.project-card--dark .project-title{color:#f0ebe0}.project-card--light .project-title{color:#111}.project-desc{font-size:.875rem;font-weight:300;line-height:1.8}.project-card--dark .project-desc{color:#7a8ab0}.project-card--light .project-desc{color:#666}.tech-pills{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}.tech-pill{border-radius:5px;font-size:.68rem;font-weight:500;letter-spacing:.03em;padding:.22rem .6rem}.project-card--dark .tech-pill{background-color:#ffffff0d;border:1px solid #ffffff12;color:#8a9ac0}.project-card--light .tech-pill{background-color:#0000000f;border:1px solid #00000014;color:#666}.contact-section{padding-bottom:6rem;padding-top:4rem}.contact-title{color:#f0ebe0;font-size:clamp(2rem,4vw,3rem);font-weight:700;letter-spacing:.06em;line-height:1;margin-bottom:1.5rem}.contact-links{display:flex;flex-direction:column;gap:1rem}.contact-item{align-items:center;color:#6b7a99;color:var(--muted);display:inline-flex;font-size:clamp(.9rem,1.6vw,1.05rem);font-weight:400;gap:.75rem;letter-spacing:.02em;text-decoration:none;transition:color .25s cubic-bezier(.25,.46,.45,.94),gap .25s cubic-bezier(.25,.46,.45,.94);transition:color .25s var(--ease),gap .25s var(--ease);width:-webkit-fit-content;width:fit-content}.contact-item svg{flex-shrink:0;height:18px;opacity:.6;transition:opacity .25s cubic-bezier(.25,.46,.45,.94);transition:opacity .25s var(--ease);width:18px}.contact-item:hover{color:#c8a96e;color:var(--gold);gap:1rem}.contact-item:hover svg{opacity:1}@media (max-width:720px){.hero{padding:5rem 1.5rem 4rem}.hero-inner{flex-direction:column;gap:2.5rem;text-align:center}.hero-name{white-space:normal}.section{padding:4rem 1.5rem}.contact-section{padding-bottom:4rem}.project-grid{grid-template-columns:1fr}.stack-row{align-items:flex-start;flex-direction:column;gap:.6rem}}
/*# sourceMappingURL=main.b3ba19ed.css.map*/