@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;600;700&display=swap";:root{color-scheme:dark;font-family:Manrope,Noto Sans KR,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;--bg: #0a0e19;--surface: #111725;--surface-2: #171e2e;--line: #252d3e;--line-strong: #3d465a;--text: #eef1f8;--muted: #97a1b4;--muted-strong: #c7cede;--muted-soft: #7b869a;--primary: #8c83ff;--on-primary: #0b0f1b;--header-bg: rgba(10,14,25,.86);--overlay-1: rgba(108,99,255,.12);--overlay-2: rgba(37,194,160,.05);--cta-bg: #756cff;--cta-text: #0a0e19;--cta-eyebrow: #29234f}:root[data-theme=dark]{color-scheme:dark;--bg: #0a0e19;--surface: #111725;--surface-2: #171e2e;--line: #252d3e;--line-strong: #3d465a;--text: #eef1f8;--muted: #97a1b4;--muted-strong: #c7cede;--muted-soft: #7b869a;--primary: #8c83ff;--on-primary: #0b0f1b;--header-bg: rgba(10,14,25,.86);--overlay-1: rgba(108,99,255,.12);--overlay-2: rgba(37,194,160,.05);--cta-bg: #756cff;--cta-text: #0a0e19;--cta-eyebrow: #29234f}:root[data-theme=white]{color-scheme:light;--bg: #ffffff;--surface: #f6f7fb;--surface-2: #eef0f7;--line: #e1e4ee;--line-strong: #c7cce0;--text: #12141f;--muted: #5b6376;--muted-strong: #333a4d;--muted-soft: #828ca0;--primary: #6c63ff;--on-primary: #ffffff;--header-bg: rgba(255,255,255,.86);--overlay-1: rgba(108,99,255,.08);--overlay-2: rgba(37,194,160,.06);--cta-bg: #6c63ff;--cta-text: #ffffff;--cta-eyebrow: #e3e0ff}:root[data-theme=pink]{color-scheme:light;--bg: #fff6f9;--surface: #ffeef4;--surface-2: #ffe3ee;--line: #f7d2e2;--line-strong: #f0b7d1;--text: #3a1626;--muted: #9c6b82;--muted-strong: #5c2e42;--muted-soft: #b98da2;--primary: #ec4899;--on-primary: #ffffff;--header-bg: rgba(255,246,249,.86);--overlay-1: rgba(236,72,153,.1);--overlay-2: rgba(255,182,213,.18);--cta-bg: #ec4899;--cta-text: #ffffff;--cta-eyebrow: #ffd9ea}:root[data-theme=green]{color-scheme:light;--bg: #f3fbf6;--surface: #e9f7ee;--surface-2: #dcf1e5;--line: #c9e7d4;--line-strong: #a9d8bc;--text: #0e2318;--muted: #4d7a63;--muted-strong: #123322;--muted-soft: #6f9683;--primary: #1ea36b;--on-primary: #ffffff;--header-bg: rgba(243,251,246,.86);--overlay-1: rgba(30,163,107,.1);--overlay-2: rgba(112,225,180,.16);--cta-bg: #1ea36b;--cta-text: #ffffff;--cta-eyebrow: #d3f3e3}:root[data-theme=blue]{color-scheme:light;--bg: #f2f7ff;--surface: #e8f0ff;--surface-2: #dbe8ff;--line: #c7daf9;--line-strong: #a8c7f2;--text: #0c1c30;--muted: #4c6690;--muted-strong: #0f2c4d;--muted-soft: #6f89ac;--primary: #2f6fed;--on-primary: #ffffff;--header-bg: rgba(242,247,255,.86);--overlay-1: rgba(47,111,237,.1);--overlay-2: rgba(112,178,245,.16);--cta-bg: #2f6fed;--cta-text: #ffffff;--cta-eyebrow: #d6e6ff}*{box-sizing:border-box}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,.84,.44,1),transform .7s cubic-bezier(.16,.84,.44,1);transition-delay:var(--reveal-delay,0s)}.reveal.is-visible{opacity:1;transform:translateY(0)}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);transition:background .2s,color .2s}body:before{content:"";position:fixed;inset:-10%;pointer-events:none;background:radial-gradient(circle at 80% 4%,var(--overlay-1),transparent 31%),radial-gradient(circle at 10% 42%,var(--overlay-2),transparent 24%);z-index:-1;animation:bg-drift 24s ease-in-out infinite alternate}@keyframes bg-drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(-2.5%,2%,0) scale(1.06)}}a{color:inherit;text-decoration:none}button,input{font:inherit}img{display:block;max-width:100%}p{line-height:1.75;color:var(--muted)}h1,h2,h3,p{margin-top:0}.site-shell{min-height:100vh;display:flex;flex-direction:column}main{flex:1;animation:page-fade-in .55s cubic-bezier(.16,.84,.44,1) both}@keyframes page-fade-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.container{width:min(1180px,calc(100% - 48px));margin:0 auto}.section{padding:112px 0}.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:var(--header-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.header-inner{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-size:.8rem;font-weight:800;letter-spacing:.18em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:var(--on-primary);background:var(--primary);letter-spacing:0;font-size:1rem}.header-actions{display:flex;align-items:center;gap:26px}.theme-switcher{display:flex;align-items:center;gap:8px}.theme-switcher button{position:relative;width:20px;height:20px;padding:0;border:2px solid transparent;border-radius:50%;cursor:pointer;box-shadow:inset 0 0 0 1px #7f89a059;transition:transform .15s,border-color .15s}.theme-switcher button:hover{transform:scale(1.14)}.theme-switcher button.active{border-color:var(--primary)}.nav{display:flex;align-items:center;gap:34px}.nav a{position:relative;color:var(--muted);font-size:.86rem;font-weight:600}.nav a:hover,.nav a.active{color:var(--text)}.nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-27px;height:2px;background:var(--primary)}.menu-button{display:none;background:none;border:0;padding:8px}.menu-button span{display:block;width:22px;height:1px;margin:6px 0;background:var(--text)}.scroll-top-button{position:fixed;right:24px;bottom:24px;z-index:30;width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface-2);color:var(--text);font-size:1.2rem;line-height:1;cursor:pointer;box-shadow:0 14px 34px #00000047;opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .25s,transform .25s,border-color .2s,background .2s,color .2s}.scroll-top-button.visible{opacity:1;transform:translateY(0);pointer-events:auto}.scroll-top-button:hover{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.eyebrow,.section-number{font:500 .75rem/1 DM Mono,monospace;letter-spacing:.14em;color:var(--primary)}.hero{min-height:700px;display:flex;align-items:center;padding-top:94px}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:center}@keyframes fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.hero-copy .eyebrow{animation:fade-up .7s cubic-bezier(.16,.84,.44,1) both}.hero-copy h1{animation:fade-up .8s cubic-bezier(.16,.84,.44,1) .1s both}.hero-copy .hero-description{animation:fade-up .8s cubic-bezier(.16,.84,.44,1) .2s both}.hero-copy .button-row{animation:fade-up .8s cubic-bezier(.16,.84,.44,1) .3s both}.hero h1{max-width:770px;margin:26px 0 28px;font-size:clamp(2.75rem,6vw,5.25rem);line-height:1.12;letter-spacing:-.055em}.hero h1 span{color:transparent;-webkit-text-stroke:1px var(--primary)}.hero-description{max-width:600px;font-size:1.08rem}.button-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:38px}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:0 21px;border:1px solid var(--line);border-radius:9px;font-size:.88rem;font-weight:700;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.button:hover{transform:translateY(-2px);border-color:var(--line-strong)}.button.primary{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.button.secondary{background:var(--surface-2)}.button.ghost{border-color:transparent;color:var(--muted-strong)}.button.light{background:#fff;color:#111523;border-color:#fff}.hero-panel{padding:0 28px 25px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:linear-gradient(145deg,#141b2a,#0d121e);box-shadow:0 30px 80px #00000047;animation:panel-in .9s cubic-bezier(.16,.84,.44,1) .25s both,panel-float 6s ease-in-out 1.3s infinite}@keyframes panel-in{0%{opacity:0;transform:rotate(1deg) translateY(30px) scale(.97)}to{opacity:1;transform:rotate(1deg) translateY(0) scale(1)}}@keyframes panel-float{0%,to{transform:rotate(1deg) translateY(0)}50%{transform:rotate(1deg) translateY(-10px)}}.code-dots{height:48px;display:flex;align-items:center;gap:7px;border-bottom:1px solid rgba(255,255,255,.08)}.code-dots span{width:8px;height:8px;border-radius:50%;background:#3a4253}.code-dots span:first-child{background:#ff6e79}.code-dots span:nth-child(2){background:#f4bf4f}.code-dots span:last-child{background:#4fd18b}.hero-code{padding:28px 0 18px;font:.82rem/1.8 DM Mono,monospace;color:#c4cada}.hero-code p{margin:0;color:inherit;line-height:inherit}.code-key{color:#bd83ff}.code-value{color:#7ed9c4}.availability{padding-top:20px;border-top:1px solid rgba(255,255,255,.08);font-size:.74rem;color:#8d97a9}.availability span{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#4fd18b;box-shadow:0 0 0 4px #4fd18b1a}.section-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;margin-bottom:46px}.section-heading .eyebrow{grid-column:1 / -1;margin-bottom:17px}.section-heading h2{margin:0;font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.04em}.section-heading p{max-width:480px;margin:0 0 4px auto}.projects-preview{background:color-mix(in srgb,var(--surface) 55%,transparent);border-block:1px solid var(--line)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project-card{position:relative;min-height:460px;display:flex;flex-direction:column;padding:27px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:linear-gradient(155deg,var(--surface-2),var(--surface));transition:border-color .3s,transform .3s,box-shadow .3s}.project-card:before{content:"";position:absolute;width:180px;height:180px;top:-80px;right:-80px;border-radius:50%;background:var(--accent);filter:blur(75px);opacity:.16;transition:opacity .3s}.project-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));transform:translateY(-6px);box-shadow:0 24px 48px #00000038}.project-card:hover:before{opacity:.26}.card-topline{display:flex;justify-content:space-between;color:var(--muted-soft);font:.68rem DM Mono,monospace;letter-spacing:.08em}.card-topline span:first-child{color:var(--accent)}.project-card h3{margin:52px 0 10px;font-size:2rem;letter-spacing:-.04em}.tagline{min-height:54px;margin-bottom:38px;font-size:.9rem}.highlight-row{display:flex;flex-wrap:wrap;gap:6px;margin:-20px 0 24px}.highlight-chip{padding:5px 10px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);font-size:.68rem;font-weight:700}.project-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px}.project-filter button{padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted-strong);font-size:.8rem;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s,color .2s,transform .2s}.project-filter button:hover{transform:translateY(-2px);border-color:var(--line-strong)}.project-filter button.active{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.card-meta{display:grid;gap:23px;margin-bottom:28px}.card-meta p{margin:8px 0 0;font-size:.8rem;line-height:1.55}.meta-label{color:var(--muted-soft);font:.65rem DM Mono,monospace;letter-spacing:.12em}.chip-row,.large-chip-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.chip{padding:5px 9px;border:1px solid var(--line);border-radius:5px;color:var(--muted);font-size:.68rem}.card-footer{display:flex;flex-direction:column;gap:10px;margin-top:auto}.text-link{display:flex;justify-content:space-between;padding-top:19px;border-top:1px solid var(--line);font-size:.8rem;font-weight:600}.text-link span{color:var(--accent)}.deploy-link{display:flex;justify-content:space-between;font-size:.78rem;font-weight:600;color:var(--muted)}.deploy-link:hover,.deploy-link span{color:var(--accent)}.center-action{margin-top:40px;text-align:center}.side-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.side-project-card{display:flex;flex-direction:column;padding:24px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(150deg,var(--surface-2),var(--surface));transition:border-color .2s}.side-project-card:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line))}.side-project-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.side-project-head h4{margin:0;font-size:1.1rem;letter-spacing:-.02em}.status-badge{flex:0 0 auto;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,#ffbe70 20%,transparent);color:#ffbe70;font-size:.68rem;font-weight:700;white-space:nowrap}.side-project-card p{margin:0 0 14px;font-size:.82rem;color:var(--muted)}.side-project-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.side-project-tag{padding:4px 9px;border:1px solid var(--line);border-radius:5px;color:var(--muted-soft);font-size:.68rem}.side-project-link{margin-top:auto;font-size:.78rem;font-weight:600;color:var(--primary)}.compact-cta{padding-block:68px}.cta-box{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:50px;border-radius:16px;background:var(--cta-bg);color:var(--cta-text)}.cta-box .eyebrow{color:var(--cta-eyebrow)}.cta-box h2{margin:12px 0 0;font-size:clamp(1.7rem,3vw,2.5rem);letter-spacing:-.04em}.site-footer{border-top:1px solid var(--line)}.footer-inner{min-height:92px;display:flex;justify-content:space-between;align-items:center;font-size:.75rem}.footer-inner p{margin:0}.footer-inner a{color:var(--muted)}.page-section{padding-top:92px;min-height:70vh}.detail-hero{padding:72px 0 80px;border-bottom:1px solid var(--line);background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 10%,transparent),transparent 45%)}.back-link{display:inline-block;margin-bottom:65px;color:var(--muted);font-size:.8rem}.detail-title{display:flex;justify-content:space-between;align-items:end;gap:50px}.detail-title h1{margin:18px 0 14px;font-size:clamp(3.4rem,8vw,7rem);letter-spacing:-.07em}.detail-title p{margin:0;font-size:1.05rem}.detail-actions{display:flex;gap:10px}.detail-actions .resource-link{min-width:150px}.detail-layout{display:grid;grid-template-columns:90px 1fr;gap:70px;padding-top:80px;padding-bottom:120px}.detail-nav{position:sticky;top:110px;align-self:start;display:grid;gap:11px}.detail-nav span{margin-bottom:10px;color:var(--muted-soft);font:.62rem DM Mono,monospace}.detail-nav button{width:fit-content;padding:0;border:0;background:transparent;color:var(--muted-soft);font:.72rem DM Mono,monospace;cursor:pointer}.detail-nav button:hover{color:var(--accent)}.detail-content{max-width:900px}.detail-section{padding:0 0 90px;margin-bottom:90px;border-bottom:1px solid var(--line)}.detail-section h2,.resume-block h2{margin:18px 0 28px;font-size:clamp(1.8rem,3vw,2.55rem);letter-spacing:-.035em}.detail-section>p{max-width:760px;font-size:1rem}.lead-copy{font-size:1.2rem!important;color:var(--muted-strong)!important}.role-summary-card{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:30px;padding:26px 28px;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:12px;background:var(--surface)}.role-summary-card p{margin:8px 0 0;font-size:.88rem;color:var(--muted-strong);line-height:1.65}.team-note{display:inline-block;margin-bottom:16px;padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.75rem;font-weight:600}.check-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:0;list-style:none}.check-list li{padding:17px 18px;border:1px solid var(--line);border-radius:8px;color:var(--muted-strong);font-size:.87rem}.check-list li:before{content:"✓";margin-right:10px;color:var(--accent)}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.feature-grid>div{padding:25px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.feature-grid span{color:var(--accent);font:.7rem DM Mono,monospace}.feature-grid h3{margin:28px 0 0;font-size:1rem}.large-chip-row{gap:10px}.large-chip-row span{padding:10px 14px;border:1px solid var(--line);border-radius:7px;color:var(--muted-strong);font-size:.8rem;background:var(--surface)}.trouble-card{padding:30px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.trouble-list{display:grid;gap:14px}.trouble-card h3{font-size:1.2rem}.trouble-card dl{margin:26px 0 0}.trouble-card dl div{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:18px 0;border-top:1px solid var(--line)}.trouble-card dt{color:var(--accent);font:.7rem DM Mono,monospace;text-transform:uppercase}.trouble-card dd{margin:0;color:var(--muted);font-size:.87rem;line-height:1.7}.screenshots figure{margin:0}.screenshots img{width:100%;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.screenshots figcaption{margin-top:11px;color:var(--muted-soft);font-size:.75rem}.resource-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.resource-link{display:flex;align-items:center;justify-content:space-between;min-height:60px;padding:0 17px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:.8rem}.resource-link:hover{border-color:var(--line-strong)}.resource-link.disabled{color:var(--muted-soft);cursor:not-allowed}.resource-link small{font-size:.65rem;color:var(--muted-soft)}blockquote{margin:0;padding:30px 32px;border-left:3px solid var(--accent);background:var(--surface);color:var(--muted-strong);font-size:1.05rem;line-height:1.85}.detail-bottom{display:flex;justify-content:center}.system-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.flow-step{position:relative;min-height:170px;display:flex;flex-direction:column;justify-content:space-between;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.flow-step:not(:last-child):after{content:"→";position:absolute;z-index:2;right:-17px;top:50%;width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--accent);background:var(--bg);font-size:.7rem;transform:translateY(-50%)}.flow-step>span{color:var(--accent);font:.68rem DM Mono,monospace}.flow-step h3{margin:0 0 9px;font-size:.9rem}.flow-step p{margin:0;font-size:.72rem;line-height:1.55}.security-note{margin-top:18px;padding:12px 15px;border:1px solid var(--line);border-radius:7px;color:var(--muted-soft)!important;font-size:.72rem!important}.resume-header{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:70px}.resume-header .section-heading{display:block;margin:0}.resume-header .section-heading p{margin:20px 0 0}.resume-photo-card{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;gap:14px}.resume-photo-card img{width:140px;aspect-ratio:3/4;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.resume-links{display:flex;flex-wrap:wrap;gap:10px 22px;margin-bottom:24px}.resume-links a{color:var(--muted-strong);font-size:.82rem;text-decoration:none;border-bottom:1px solid var(--line)}.resume-links a:hover{color:var(--primary);border-color:var(--primary)}.resume-positioning{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-bottom:40px;padding:20px 24px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface-2)}.resume-positioning span{font:.78rem DM Mono,monospace;letter-spacing:.02em;color:var(--primary)}.resume-positioning p{margin:0;font-size:.85rem;color:var(--muted-strong)}.resume-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.resume-block{padding:34px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.resume-block.full{grid-column:1/-1}.resume-block>p{margin:0}.timeline-item{display:grid;grid-template-columns:120px 1fr;gap:25px}.timeline-item>span{color:var(--muted-soft);font-size:.75rem}.timeline-item h3{margin:0 0 8px}.timeline-item p{margin:0;font-size:.85rem}.summary-table{margin:26px 0 0}.summary-table div{display:grid;grid-template-columns:140px 1fr;gap:20px;padding:16px 0;border-top:1px solid var(--line)}.summary-table div:first-child{border-top:0}.summary-table dt{margin:0;color:var(--muted-soft);font:.7rem DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.summary-table dd{margin:0;font-size:.88rem;color:var(--muted-strong);line-height:1.6}.about-text p{margin:0 0 16px;font-size:.92rem}.about-text p:last-child{margin-bottom:0}.work-list{display:grid;gap:34px;margin-top:26px}.work-item{padding-top:26px;border-top:1px solid var(--line)}.work-item:first-child{padding-top:0;border-top:0}.work-item-head{display:grid;grid-template-columns:120px 1fr;gap:25px;margin-bottom:20px}.work-item-head>span{color:var(--muted-soft);font-size:.75rem}.work-item-head h3{margin:0 0 8px;font-size:1.15rem}.work-item-head p{margin:0;font-size:.85rem}.work-tasks{margin-bottom:18px}.work-takeaway{margin:0;padding:16px 18px;border-left:3px solid var(--primary);border-radius:0 8px 8px 0;background:var(--surface-2);color:var(--muted);font-size:.85rem!important;line-height:1.7}.cert-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:26px}.cert-item{padding:20px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);transition:border-color .2s}.cert-item.has-image{padding-top:0;overflow:hidden}.cert-item h3{margin:0 0 6px;font-size:1rem}.cert-item p{margin:0;font-size:.8rem;color:var(--muted-soft)}.cert-image{display:block;margin:0 -20px 16px;border-bottom:1px solid var(--line);overflow:hidden;cursor:zoom-in}.cert-image img{width:100%;max-height:260px;object-fit:cover;object-position:top;transition:transform .35s}.cert-item:hover .cert-image img{transform:scale(1.04)}.role-strength-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:26px}.role-strength-card{padding:24px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(155deg,var(--surface-2),var(--surface))}.role-strength-card h3{margin:0 0 16px;font-size:1.05rem;letter-spacing:-.01em}.role-strength-card .check-list li{font-size:.82rem;padding:13px 15px}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.skills-grid h3{font-size:.9rem}.skill-category{padding:22px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(155deg,var(--surface-2),var(--surface));transition:border-color .2s,transform .2s}.skill-category:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));transform:translateY(-3px)}.skill-category-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.skill-category-head h3{margin:0}.skill-icon-badge{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:10px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);transition:transform .3s}.skill-icon-badge svg{width:20px;height:20px}.skill-category:hover .skill-icon-badge{transform:rotate(-8deg) scale(1.08)}.skill-chip-grid{display:flex;flex-wrap:wrap;gap:8px}.skill-chip{padding:7px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted-strong);font-size:.74rem;background:var(--surface);transition:transform .18s,border-color .18s,background .18s,color .18s}.skill-chip:hover{transform:translateY(-2px);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--text)}.skill-usage-list{display:grid;gap:8px;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line);list-style:none}.skill-usage-list li{font-size:.76rem;color:var(--muted-soft);line-height:1.6}.skill-usage-list strong{margin-right:6px;color:var(--muted-strong)}.resume-projects{display:grid}.resume-projects a{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 0;border-top:1px solid var(--line)}.resume-projects span{color:var(--muted-soft);font-size:.68rem}.resume-projects h3{margin:5px 0;font-size:1.1rem}.resume-projects p{margin:0;font-size:.8rem}.resume-projects strong{flex:0 0 auto;color:var(--primary)}.resume-project-meta{display:grid;gap:4px;margin-top:12px}.resume-project-meta div{display:grid;grid-template-columns:70px 1fr;gap:12px}.resume-project-meta dt{margin:0;color:var(--muted-soft);font:.66rem DM Mono,monospace;letter-spacing:.06em;text-transform:uppercase}.resume-project-meta dd{margin:0;font-size:.78rem;color:var(--muted-strong);line-height:1.6}.contact-page{max-width:1080px}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.contact-grid>a{position:relative;min-height:220px;padding:30px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.contact-grid>a:hover{border-color:var(--line-strong)}.contact-grid span{color:var(--muted-soft);font:.66rem DM Mono,monospace}.contact-grid h2{margin:50px 0 9px;font-size:1.3rem}.contact-grid p{margin:0;font-size:.8rem}.contact-grid strong{position:absolute;right:30px;top:28px;color:var(--primary)}.contact-summary{margin-bottom:34px;padding:30px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(155deg,var(--surface-2),var(--surface))}.contact-summary p{margin:0;font-size:.95rem;color:var(--muted-strong)}.contact-keywords{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.contact-topics{margin-top:60px}.contact-topic-list{display:flex;flex-wrap:wrap;gap:8px}.contact-topic-chip{padding:8px 14px;border:1px solid var(--line);border-radius:999px;color:var(--muted-strong);font-size:.78rem;background:var(--surface)}.learning-header{display:flex;align-items:center;justify-content:space-between;gap:32px}.learning-header .section-heading{flex:1}.learning-header .button{flex:0 0 auto;margin-bottom:46px}.learning-path{display:flex;align-items:center;justify-content:center;gap:24px;margin:5px 0 42px;padding:24px;border-block:1px solid var(--line);color:var(--muted-strong);font:.72rem DM Mono,monospace;letter-spacing:.14em}.learning-path i{color:var(--primary);font-style:normal}.learning-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.learning-card{min-height:300px;padding:28px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(150deg,var(--surface-2),var(--surface))}.learning-number{color:var(--primary);font:.7rem DM Mono,monospace}.learning-card h2{margin:54px 0 14px;font-size:1.35rem;letter-spacing:-.025em}.learning-card p{min-height:76px;font-size:.82rem}.learning-block{margin-top:70px}.learning-note{margin-top:70px;padding:50px;border:1px solid var(--line-strong);border-radius:15px;background:radial-gradient(circle at 90% 10%,color-mix(in srgb,var(--primary) 14%,transparent),transparent 35%),var(--surface)}.learning-note h2{max-width:760px;margin:18px 0 14px;font-size:clamp(1.7rem,3vw,2.7rem);letter-spacing:-.04em}.learning-note p{max-width:690px;margin:0}.empty-state{min-height:70vh;display:grid;place-content:center;justify-items:center;text-align:center}.empty-state h1{margin:20px 0 8px;font-size:3rem}.empty-state .button{margin-top:20px}:is(.project-grid,.side-project-grid,.learning-grid,.cert-list,.skills-grid,.resume-grid,.contact-grid,.system-flow,.feature-grid,.trouble-list,.detail-content)>.reveal:nth-child(2){transition-delay:.07s}:is(.project-grid,.side-project-grid,.learning-grid,.cert-list,.skills-grid,.resume-grid,.contact-grid,.system-flow,.feature-grid,.trouble-list,.detail-content)>.reveal:nth-child(3){transition-delay:.14s}:is(.project-grid,.side-project-grid,.learning-grid,.cert-list,.skills-grid,.resume-grid,.contact-grid,.system-flow,.feature-grid,.trouble-list,.detail-content)>.reveal:nth-child(4){transition-delay:.21s}:is(.project-grid,.side-project-grid,.learning-grid,.cert-list,.skills-grid,.resume-grid,.contact-grid,.system-flow,.feature-grid,.trouble-list,.detail-content)>.reveal:nth-child(5){transition-delay:.28s}:is(.project-grid,.side-project-grid,.learning-grid,.cert-list,.skills-grid,.resume-grid,.contact-grid,.system-flow,.feature-grid,.trouble-list,.detail-content)>.reveal:nth-child(6){transition-delay:.35s}@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:55px}.hero-panel{max-width:570px}.project-grid{grid-template-columns:1fr 1fr}.project-card:last-child{grid-column:1/-1}.section-heading{grid-template-columns:1fr}.section-heading p{margin:18px 0 0}.detail-title{display:block}.detail-actions{margin-top:35px}.skills-grid,.detail-layout{grid-template-columns:1fr}.detail-nav{display:none}.system-flow{grid-template-columns:1fr 1fr}.flow-step:not(:last-child):after{display:none}.learning-grid{grid-template-columns:1fr 1fr}.learning-header{align-items:flex-start;flex-direction:column}.learning-header .button{margin:-18px 0 45px}.side-project-grid,.contact-grid{grid-template-columns:1fr 1fr}.role-strength-grid{grid-template-columns:1fr}.role-summary-card{grid-template-columns:1fr 1fr}}@media(max-width:640px){.container{width:min(100% - 30px,1180px)}.section{padding:78px 0}.menu-button{display:block}.header-actions{gap:14px}.theme-switcher{gap:6px}.nav{position:absolute;left:0;right:0;top:72px;display:none;flex-direction:column;align-items:flex-start;gap:0;padding:12px 15px 20px;border-bottom:1px solid var(--line);background:var(--surface)}.nav.open{display:flex}.nav a{width:100%;padding:14px}.nav a.active:after{display:none}.hero{padding-top:70px}.hero h1{font-size:2.65rem}.hero-panel{padding-inline:20px}.hero-code{font-size:.72rem}.project-grid{grid-template-columns:1fr}.project-card:last-child{grid-column:auto}.project-card{min-height:420px}.cta-box{align-items:flex-start;flex-direction:column;padding:34px 28px}.footer-inner{padding-block:25px;align-items:flex-start;flex-direction:column;justify-content:center;gap:12px}.page-section{padding-top:65px}.detail-hero{padding:48px 0 60px}.back-link{margin-bottom:45px}.detail-title h1{font-size:3.2rem}.detail-actions{flex-direction:column}.detail-actions .resource-link{width:100%}.detail-layout{padding-top:60px;padding-bottom:80px}.detail-section{padding-bottom:65px;margin-bottom:65px}.check-list,.feature-grid,.resource-grid,.system-flow,.cert-list{grid-template-columns:1fr}.trouble-card{padding:21px}.trouble-card dl div{grid-template-columns:1fr;gap:8px}.resume-header{align-items:flex-start;flex-direction:column}.resume-grid{grid-template-columns:1fr}.resume-block.full{grid-column:auto}.resume-block{padding:25px}.timeline-item{grid-template-columns:1fr;gap:10px}.summary-table div{grid-template-columns:1fr;gap:6px}.work-item-head{grid-template-columns:1fr;gap:10px}.work-tasks{grid-template-columns:1fr}.resume-projects a{flex-direction:column}.resume-project-meta div{grid-template-columns:1fr;gap:2px}.contact-grid{grid-template-columns:1fr}.contact-grid>a{min-height:210px}.button-row .button{flex:1}.button-row .ghost{flex-basis:100%}.learning-grid{grid-template-columns:1fr}.learning-path{gap:9px;padding-inline:8px;font-size:.58rem}.learning-note{padding:32px 25px}.side-project-grid{grid-template-columns:1fr}.role-summary-card{grid-template-columns:1fr;gap:16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal{opacity:1!important;transform:none!important}body:before{animation:none!important}}@media print{.site-header,.site-footer,.theme-switcher,.menu-button,.resume-photo-card button,.center-action,.scroll-top-button,body:before{display:none!important}*{box-shadow:none!important;text-shadow:none!important;background:#fff!important;color:#000!important;border-color:#ccc!important}body{background:#fff!important}a{color:#000!important;text-decoration:underline}.page-section{padding-top:0!important;min-height:0!important}.resume-photo-card img{border-color:#ccc!important}}
