*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--font: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", sans-serif;--bg-start: #1a1221;--bg-mid: #2d2233;--bg-end: #1e1827;--glass-bg: rgba(255, 255, 255, .06);--glass-bg-subtle: rgba(255, 255, 255, .03);--glass-border: rgba(255, 255, 255, .1);--glass-border-subtle: rgba(255, 255, 255, .06);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .3);--glass-blur: 20px;--text-primary: rgba(255, 255, 255, .93);--text-secondary: rgba(255, 255, 255, .62);--text-muted: rgba(255, 255, 255, .38);--accent: #c4a0d4;--accent-hover: #d4b5e0;--accent-glow: rgba(196, 160, 212, .25);--accent-secondary: #e8b4b8;--orb-1: #c4a0d4;--orb-2: #e8b4b8;--radius: 20px;--radius-sm: 12px;--transition: .3s cubic-bezier(.4, 0, .2, 1);--theme-transition: .5s cubic-bezier(.4, 0, .2, 1);--hover-bg: rgba(255, 255, 255, .06);--hover-border: rgba(196, 160, 212, .2);--hover-tag-bg: rgba(196, 160, 212, .1);--hover-tag-border: rgba(196, 160, 212, .25);--hover-card-shadow: 0 12px 40px rgba(0, 0, 0, .3), 0 0 0 1px rgba(255, 255, 255, .15)}[data-theme=light]{--bg-start: #faf5f7;--bg-mid: #f3eef4;--bg-end: #f7f2f4;--glass-bg: rgba(255, 255, 255, .55);--glass-bg-subtle: rgba(0, 0, 0, .02);--glass-border: rgba(0, 0, 0, .06);--glass-border-subtle: rgba(0, 0, 0, .04);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .06);--text-primary: rgba(30, 24, 39, .92);--text-secondary: rgba(30, 24, 39, .62);--text-muted: rgba(30, 24, 39, .4);--accent: #8b5e9a;--accent-hover: #7a4f88;--accent-glow: rgba(139, 94, 154, .12);--accent-secondary: #c27882;--orb-1: #d9c4e0;--orb-2: #f0d0d4;--hover-bg: rgba(139, 94, 154, .06);--hover-border: rgba(139, 94, 154, .15);--hover-tag-bg: rgba(139, 94, 154, .08);--hover-tag-border: rgba(139, 94, 154, .2);--hover-card-shadow: 0 12px 40px rgba(0, 0, 0, .08), 0 0 0 1px rgba(0, 0, 0, .08)}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-start)}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#9b9b9b26;border-radius:20px;border:3px solid transparent;background-clip:content-box;transition:background-color .2s}::-webkit-scrollbar-thumb:hover{background-color:#9b9b9b40}body{font-family:var(--font);background:linear-gradient(135deg,var(--bg-start),var(--bg-mid),var(--bg-end));background-attachment:fixed;color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden;transition:background var(--theme-transition),color var(--theme-transition)}body:before,body:after{content:"";position:fixed;border-radius:50%;filter:blur(120px);opacity:.3;z-index:-1;animation:float 20s ease-in-out infinite;transition:background var(--theme-transition);will-change:transform;transform:translateZ(0)}body:before{width:600px;height:600px;background:radial-gradient(circle,var(--orb-1),transparent 70%);top:-200px;right:-100px}body:after{width:500px;height:500px;background:radial-gradient(circle,var(--orb-2),transparent 70%);bottom:-150px;left:-100px;animation-delay:-10s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.05)}66%{transform:translate(-20px,20px) scale(.95)}}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--glass-shadow);transition:transform var(--transition),box-shadow var(--transition),background var(--theme-transition),border-color var(--theme-transition);will-change:transform;transform:translateZ(0)}.glass:hover{transform:translateY(-2px);box-shadow:var(--hover-card-shadow)}.app{max-width:960px;margin:0 auto;padding:40px 24px 80px}.controls-bar{position:fixed;top:20px;inset-inline-end:20px;z-index:100;display:flex;gap:8px;align-items:center}.control-btn{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:10px;color:var(--text-secondary);padding:8px 12px;font-size:.75rem;font-family:var(--font);font-weight:500;cursor:pointer;letter-spacing:.03em;transition:all var(--transition);display:flex;align-items:center;gap:6px;line-height:1;position:relative}.control-btn:hover{color:var(--text-primary);border-color:var(--accent);box-shadow:0 0 20px var(--accent-glow)}.control-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-icon{transition:transform .4s cubic-bezier(.4,0,.2,1)}.control-btn:hover .theme-icon{transform:rotate(30deg)}.lang-switcher{position:relative}.lang-dropdown{position:absolute;top:calc(100% + 8px);inset-inline-end:0;padding:6px;display:flex;flex-direction:column;min-width:150px;z-index:200;animation:dropdownIn .18s ease}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.lang-option{background:none;border:none;color:var(--text-secondary);padding:8px 14px;text-align:start;font-size:.8rem;font-family:var(--font);border-radius:6px;cursor:pointer;transition:all var(--transition);line-height:1.4}.lang-option:hover{background:var(--accent-glow);color:var(--text-primary)}.lang-option:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.lang-option.active{color:var(--accent);font-weight:600}.lang-backdrop{position:fixed;inset:0;z-index:99}.hero{text-align:center;padding:60px 32px;margin-bottom:32px;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,var(--accent-glow),transparent 70%);pointer-events:none}.profile-image-wrapper{position:relative;width:150px;height:150px;margin:0 auto 24px}.profile-image{width:100%;height:100%;object-fit:cover;aspect-ratio:1 / 1;border-radius:50%;border:4px solid var(--glass-border);box-shadow:0 8px 32px #0000001f;transition:border-color var(--transition),box-shadow var(--transition)}.profile-image-wrapper:hover .profile-image{border-color:var(--accent);box-shadow:0 8px 36px var(--accent-glow)}.hero h1{font-size:clamp(2rem,5vw,3rem);font-weight:700;letter-spacing:-.02em;margin-bottom:8px;position:relative}.hero .subtitle{font-size:clamp(.75rem,1.5vw,.875rem);font-weight:500;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:20px;position:relative}.hero .contact-row{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;font-size:.85rem;color:var(--text-secondary);position:relative}.hero .contact-row .contact-item{display:flex;align-items:center;gap:6px;text-decoration:none;color:inherit;transition:color var(--transition),transform var(--transition)}.hero .contact-row .contact-item:hover,.hero .contact-row .contact-item:focus{color:var(--accent);transform:translateY(-1px);outline:none}.section{margin-bottom:28px}.section-title{font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;padding-inline-start:4px;display:flex;align-items:center;gap:8px}.section-icon{flex-shrink:0;opacity:.8}.section-card{padding:28px 32px}.summary-text{font-size:.95rem;color:var(--text-secondary);line-height:1.75}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.skill-item{padding:20px 24px;border-radius:var(--radius-sm);background:var(--glass-bg-subtle);border:1px solid var(--glass-border-subtle);transition:all var(--transition)}.skill-item:hover{background:var(--hover-bg);border-color:var(--hover-border)}.skill-item-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.skill-icon{flex-shrink:0;color:var(--accent);opacity:.7;transition:opacity var(--transition)}.skill-item:hover .skill-icon{opacity:1}.skill-item h4{font-size:.9rem;font-weight:600;margin-bottom:0}.skill-item p{font-size:.8rem;color:var(--text-secondary);line-height:1.6}.exp-entry{padding:24px 0;border-bottom:1px solid var(--glass-border-subtle)}.exp-entry:last-child{border-bottom:none;padding-bottom:0}.exp-entry:first-child{padding-top:0}.exp-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}.exp-header h3{font-size:1rem;font-weight:600}.exp-header .date{font-size:.8rem;color:var(--text-muted);font-weight:500}.exp-company{font-size:.85rem;color:var(--accent);margin-bottom:12px;font-weight:500}.exp-bullets{list-style:none;display:flex;flex-direction:column;gap:8px}.exp-bullets li{font-size:.85rem;color:var(--text-secondary);padding-inline-start:16px;position:relative;line-height:1.6}.exp-bullets li:before{content:"";position:absolute;inset-inline-start:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.5}.tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.tool-category h4{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px}.tool-tags{display:flex;flex-wrap:wrap;gap:8px}.tool-tag{font-size:.75rem;padding:6px 14px;border-radius:100px;background:var(--glass-bg-subtle);border:1px solid var(--glass-border-subtle);color:var(--text-secondary);transition:all var(--transition)}.tool-tag:hover{background:var(--hover-tag-bg);border-color:var(--hover-tag-border);color:var(--text-primary)}.cert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.cert-item{padding:0;border-radius:var(--radius-sm);background:var(--glass-bg-subtle);border:1px solid var(--glass-border-subtle);transition:all var(--transition);display:flex;overflow:hidden}.cert-item:hover{background:var(--hover-bg);border-color:var(--hover-border);transform:translateY(-2px);box-shadow:var(--hover-card-shadow)}.cert-accent-bar{width:4px;min-height:100%;background:linear-gradient(180deg,var(--accent),var(--accent-secondary));flex-shrink:0}.cert-content{padding:20px 24px;flex:1;display:flex;flex-direction:column;gap:4px}.cert-item h4{font-size:.95rem;font-weight:600;line-height:1.4;margin-bottom:2px}.cert-issuer{font-size:.8rem;color:var(--text-secondary);font-weight:500}.cert-date{font-size:.75rem;color:var(--text-muted);font-weight:400}.cert-credential{font-size:.7rem;color:var(--text-muted);font-family:SF Mono,Monaco,Inconsolata,Fira Mono,monospace;letter-spacing:.02em}.edu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.edu-item{padding:20px 24px;border-radius:var(--radius-sm);background:var(--glass-bg-subtle);border:1px solid var(--glass-border-subtle)}.edu-item h4{font-size:.9rem;font-weight:600;margin-bottom:4px}.edu-item .edu-school{font-size:.8rem;color:var(--text-secondary)}.edu-item .edu-year{font-size:.75rem;color:var(--text-muted);margin-top:4px}.footer{text-align:center;padding:32px 0 0;font-size:.75rem;color:var(--text-muted)}.footer-attribution{margin-top:6px;font-size:.68rem;opacity:.7}.footer-attribution a{color:var(--text-muted);text-decoration:none;transition:color var(--transition),opacity var(--transition)}.footer-attribution a:hover{color:var(--accent);opacity:1}.footer-attribution a:focus-visible{outline:1px solid var(--accent);outline-offset:2px;border-radius:2px}[lang=ja] body,[lang=ko] body,[lang=zh] body{line-height:1.9;word-break:break-word;overflow-wrap:anywhere}[lang=ja] .hero h1,[lang=ko] .hero h1,[lang=zh] .hero h1{letter-spacing:.05em;font-weight:700}[lang=ja] .hero .subtitle,[lang=ko] .hero .subtitle,[lang=zh] .hero .subtitle{letter-spacing:.08em;font-size:clamp(.78rem,1.8vw,.92rem)}[lang=ja] .summary-text,[lang=ko] .summary-text,[lang=zh] .summary-text{font-size:.9rem;line-height:2}[lang=ja] .skill-item h4,[lang=ko] .skill-item h4,[lang=zh] .skill-item h4{font-size:.85rem;line-height:1.5;margin-bottom:8px}[lang=ja] .skill-item p,[lang=ko] .skill-item p,[lang=zh] .skill-item p{font-size:.78rem;line-height:1.8}[lang=ja] .skill-item,[lang=ko] .skill-item,[lang=zh] .skill-item{padding:22px 24px}[lang=ja] .exp-header h3,[lang=ko] .exp-header h3,[lang=zh] .exp-header h3{font-size:.95rem;line-height:1.5}[lang=ja] .exp-bullets li,[lang=ko] .exp-bullets li,[lang=zh] .exp-bullets li{font-size:.82rem;line-height:1.85}[lang=ja] .tool-tag,[lang=ko] .tool-tag,[lang=zh] .tool-tag{font-size:.72rem;padding:6px 12px}[lang=ja] .edu-item h4,[lang=ko] .edu-item h4,[lang=zh] .edu-item h4{font-size:.85rem;line-height:1.5;margin-bottom:6px}[lang=ja] .edu-item .edu-school,[lang=ko] .edu-item .edu-school,[lang=zh] .edu-item .edu-school{font-size:.78rem;line-height:1.6}[lang=ja] .section-title,[lang=ko] .section-title,[lang=zh] .section-title{letter-spacing:.12em;font-size:.72rem}[lang=ja] .section-card,[lang=ko] .section-card,[lang=zh] .section-card{padding:28px}[lang=ar] body{line-height:1.9}[lang=ar] .section-title{letter-spacing:.1em}[lang=ar] .hero .subtitle{letter-spacing:.08em}@media(max-width:1024px){.app{padding:32px 20px 72px}}@media(max-width:640px){body{background-attachment:scroll}.app{padding:24px 16px 60px}.hero{padding:40px 20px}.profile-image-wrapper{width:100px;height:100px;margin-bottom:16px}.section-card{padding:20px}.skills-grid{grid-template-columns:1fr}.tools-grid{grid-template-columns:1fr 1fr}.edu-grid,.cert-grid{grid-template-columns:1fr}.exp-header{flex-direction:column;gap:2px}.controls-bar{top:12px;inset-inline-end:12px;gap:6px}.control-btn{padding:6px 10px;font-size:.7rem}.lang-dropdown{min-width:130px}}@media(max-width:380px){.tools-grid{grid-template-columns:1fr}}.fade-in{opacity:0;transform:translateY(20px);animation:fadeIn .6s ease forwards;will-change:opacity,transform}@keyframes fadeIn{to{opacity:1;transform:translateY(0)}}.fade-in:nth-child(1){animation-delay:.05s}.fade-in:nth-child(2){animation-delay:.1s}.fade-in:nth-child(3){animation-delay:.15s}.fade-in:nth-child(4){animation-delay:.2s}.fade-in:nth-child(5){animation-delay:.25s}.fade-in:nth-child(6){animation-delay:.3s}.fade-in:nth-child(7){animation-delay:.35s}.fade-in:nth-child(8){animation-delay:.4s}.typewriter-container{display:inline-block;position:relative;min-height:1.5em}.typewriter-cursor{color:var(--accent);font-weight:300;display:inline-block;animation:cursorBlink 1s step-end infinite;margin-inline-start:2px;vertical-align:text-bottom}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}
