*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #fafafa;--bg-secondary: #ffffff;--text-primary: #1a1a1a;--text-secondary: #666666;--accent: #d32f2f;--border: #e0e0e0;--shadow: rgba(0, 0, 0, .05)}body{font-family:Noto Sans JP,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.8;font-weight:300;overflow-x:hidden}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:"Noto Serif JP",serif;font-weight:500;letter-spacing:.02em}a{color:var(--text-primary);text-decoration:none;transition:opacity .3s ease}a:hover{opacity:.6}::selection{background-color:var(--accent);color:#fff}.hero{position:relative;overflow:hidden}.hero-content{text-align:center;opacity:0;transform:translateY(30px);transition:all 1s ease;padding:0 8rem}.hero-content.visible{opacity:1;transform:translateY(0)}.hero-vertical-text{writing-mode:vertical-rl;text-orientation:mixed;position:absolute;right:4rem;top:50%;transform:translateY(-50%);font-size:.75rem;letter-spacing:.3em;color:var(--text-secondary);opacity:.5}.hero-name{font-size:clamp(4rem,12vw,8rem);font-weight:300;line-height:.9;margin-bottom:2rem;display:flex;flex-direction:column;gap:.5rem}.hero-name-line{display:block;opacity:0;animation:fadeInUp .8s ease forwards}.hero-name-line:nth-child(1){animation-delay:.2s}.hero-name-line:nth-child(2){animation-delay:.4s}.hero-subtitle{font-size:1.5rem;font-weight:300;color:var(--text-secondary);margin-bottom:3rem;letter-spacing:.1em;opacity:0;animation:fadeInUp .8s ease forwards;animation-delay:.6s}.hero-details{display:flex;flex-direction:column;gap:.5rem;font-size:1rem;color:var(--text-secondary);opacity:0;animation:fadeInUp .8s ease forwards;animation-delay:.8s}.hero-decoration{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1}.circle{position:absolute;border:1px solid var(--border);border-radius:50%;opacity:.3}.circle-1{width:400px;height:400px;top:10%;left:-10%;animation:float 20s ease-in-out infinite}.circle-2{width:300px;height:300px;bottom:10%;right:-5%;animation:float 15s ease-in-out infinite reverse}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translate(0)}50%{transform:translate(30px,30px)}}@media(max-width:1200px){.hero-content{padding:0 2rem}.hero-vertical-text{display:none}}@media(max-width:768px){.hero-content{padding:0 1rem}.hero-details{font-size:.9rem}.circle-1,.circle-2{display:none}}.about{background-color:var(--bg-secondary)}.about-content{display:flex;flex-direction:column;gap:3rem}.about-intro{font-size:1.5rem;line-height:2;margin-bottom:4rem;color:var(--text-primary);font-weight:300;max-width:800px}.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:3rem}.about-item{padding:2rem;border-left:1px solid var(--border);transition:transform .3s ease}.about-item:hover{transform:translate(10px)}.about-item h3{font-size:1.2rem;margin-bottom:1rem;color:var(--accent)}.about-item p{margin-bottom:.5rem;font-size:1rem}.about-item .detail{font-size:.9rem;color:var(--text-secondary)}@media(max-width:768px){.about-intro{font-size:1.2rem}.about-grid{grid-template-columns:1fr;gap:2rem}}.experience{background-color:var(--bg-primary)}.experience-timeline{position:relative;display:flex;flex-direction:column;gap:4rem}.experience-item{position:relative;padding:2.5rem;background-color:var(--bg-secondary);border:1px solid var(--border);transition:all .3s ease}.experience-item:hover{box-shadow:0 8px 24px var(--shadow);transform:translateY(-4px)}.experience-badge{position:absolute;top:-12px;right:2rem;background-color:var(--accent);color:#fff;padding:.4rem 1rem;font-size:.75rem;letter-spacing:.1em;font-weight:400}.experience-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;gap:2rem}.experience-header h3{font-size:1.5rem;margin-bottom:.5rem}.experience-company{color:var(--text-secondary);font-size:1rem}.experience-period{color:var(--text-secondary);font-size:.9rem;white-space:nowrap}.experience-description{list-style:none;display:flex;flex-direction:column;gap:.75rem}.experience-description li{padding-left:1.5rem;position:relative;line-height:1.8}.experience-description li:before{content:"—";position:absolute;left:0;color:var(--accent)}@media(max-width:768px){.experience-header{flex-direction:column;gap:1rem}.experience-period{white-space:normal}.experience-item{padding:2rem 1.5rem}}.projects{background-color:var(--bg-secondary)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}.project-card{padding:2.5rem;border:1px solid var(--border);background-color:var(--bg-primary);transition:all .3s ease;display:flex;flex-direction:column;gap:1.5rem}.project-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px var(--shadow)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.project-header h3{font-size:1.5rem}.project-header h3 a{color:inherit;text-decoration:none;transition:color .3s ease}.project-header h3 a:hover{color:var(--accent)}.project-period{font-size:.85rem;color:var(--text-secondary);white-space:nowrap}.project-description{color:var(--text-secondary);line-height:1.8;font-size:1rem}.project-highlights{list-style:none;display:flex;flex-direction:column;gap:.75rem;flex-grow:1}.project-highlights li{padding-left:1.5rem;position:relative;font-size:.95rem;line-height:1.7}.project-highlights li:before{content:"•";position:absolute;left:0;color:var(--accent);font-size:1.2rem}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto}.project-tag{padding:.4rem .8rem;background-color:var(--bg-secondary);border:1px solid var(--border);font-size:.75rem;letter-spacing:.05em;transition:all .3s ease}.project-tag:hover{background-color:var(--accent);color:#fff;border-color:var(--accent)}@media(max-width:768px){.projects-grid{grid-template-columns:1fr}.project-card{padding:2rem 1.5rem}}.achievements{background-color:var(--bg-primary)}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.achievement-card{padding:2rem;background-color:var(--bg-secondary);border:1px solid var(--border);position:relative;transition:all .3s ease}.achievement-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px var(--shadow)}.achievement-card.highlight{border-left:3px solid var(--accent)}.achievement-year{position:absolute;top:1rem;right:1rem;font-size:.75rem;color:var(--text-secondary);letter-spacing:.1em}.achievement-card h3{font-size:1.2rem;margin-bottom:1rem;padding-right:3rem}.achievement-card.highlight h3{color:var(--accent)}.achievement-card p{color:var(--text-secondary);line-height:1.7;font-size:.95rem}@media(max-width:768px){.achievements-grid{grid-template-columns:1fr}}.contact{background-color:var(--bg-secondary);min-height:80vh}.contact-content{display:flex;flex-direction:column;align-items:center;gap:4rem}.contact-intro{font-size:1.3rem;text-align:center;max-width:600px;color:var(--text-secondary);line-height:2}.contact-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;width:100%;max-width:800px}.contact-link{display:flex;flex-direction:column;gap:.5rem;padding:2rem;border:1px solid var(--border);background-color:var(--bg-primary);transition:all .3s ease;text-decoration:none}.contact-link:hover{transform:translateY(-4px);box-shadow:0 8px 24px var(--shadow);border-color:var(--accent)}.contact-label{font-size:.85rem;color:var(--text-secondary);letter-spacing:.1em;text-transform:uppercase}.contact-value{font-size:1.1rem;color:var(--text-primary);font-family:"Noto Serif JP",serif}.contact-footer{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--border);text-align:center;color:var(--text-secondary);font-size:.9rem}@media(max-width:768px){.contact-links{grid-template-columns:1fr}.contact-intro{font-size:1.1rem}}.navigation{position:fixed;top:0;left:0;right:0;z-index:100;padding:2rem;transition:all .3s ease}.navigation.scrolled{background-color:#fafafaf2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem 2rem;box-shadow:0 1px 0 var(--border)}.nav-container{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.nav-logo{font-family:"Noto Serif JP",serif;font-size:1.5rem;font-weight:500;background:none;border:none;cursor:pointer;color:var(--text-primary);transition:opacity .3s ease}.nav-logo:hover{opacity:.6}.nav-links{display:flex;gap:3rem}.nav-links button{background:none;border:none;font-family:Noto Sans JP,sans-serif;font-size:.9rem;font-weight:300;cursor:pointer;color:var(--text-secondary);transition:color .3s ease;letter-spacing:.05em}.nav-links button:hover{color:var(--text-primary)}@media(max-width:768px){.nav-links{gap:1.5rem;font-size:.8rem}.navigation{padding:1rem}.navigation.scrolled{padding:.75rem 1rem}}.app{position:relative}.scroll-indicator{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--accent),#ff6b6b);z-index:1000;transition:width .1s ease-out}section{min-height:100vh;padding:8rem 2rem;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative}.section-title{font-size:2.5rem;margin-bottom:4rem;position:relative;display:inline-block}.section-title:after{content:"";position:absolute;bottom:-.5rem;left:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;animation:slideIn .8s ease forwards;animation-delay:.3s}@keyframes slideIn{to{transform:scaleX(1)}}.container{max-width:1200px;width:100%;margin:0 auto}@media(max-width:768px){section{padding:4rem 1.5rem}.section-title{font-size:2rem}}
