@import"https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500&display=swap";:root{--color-bg: #fafafa;--color-bg-secondary: #f5f5f5;--color-text: #2c3e50;--color-text-secondary: #5a6c7d;--color-text-muted: #8e9aaf;--color-accent: #6366f1;--color-accent-light: #818cf8;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--font-primary: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--space-xs: .5rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--space-3xl: 6rem;--transition-slow: .8s ease;--transition-normal: .4s ease;--transition-fast: .2s ease;--shadow-soft: 0 2px 8px rgba(0, 0, 0, .04);--shadow-medium: 0 4px 12px rgba(0, 0, 0, .08);--shadow-dark: 0 4px 12px rgba(0, 0, 0, .15)}[data-theme=dark]{--color-bg: #0f0f23;--color-bg-secondary: #1a1a2e;--color-text: #e2e8f0;--color-text-secondary: #cbd5e1;--color-text-muted: #94a3b8;--color-accent: #818cf8;--color-accent-light: #a5b4fc;--color-border: #334155;--color-border-light: #475569;--shadow-soft: 0 2px 8px rgba(0, 0, 0, .3);--shadow-medium: 0 4px 12px rgba(0, 0, 0, .4);--shadow-dark: 0 4px 12px rgba(0, 0, 0, .6)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-primary);font-weight:var(--font-weight-light);line-height:1.7;color:var(--color-text);background-color:var(--color-bg);overflow-x:hidden;transition:background-color var(--transition-normal),color var(--transition-normal)}.theme-toggle{position:fixed;top:var(--space-lg);right:var(--space-lg);z-index:1001;opacity:0;transform:translateY(-20px);transition:all var(--transition-normal)}.theme-toggle.visible{opacity:1;transform:translateY(0)}.theme-btn{width:48px;height:48px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.125rem;transition:all var(--transition-normal);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-soft)}.theme-btn:hover{border-color:var(--color-accent);color:var(--color-accent);transform:scale(1.1);box-shadow:var(--shadow-medium)}.theme-btn:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #6366f11a}.theme-btn i{transition:transform var(--transition-normal)}.theme-btn:hover i{transform:rotate(15deg)}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-lg)}.blank-state{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--color-bg);display:flex;align-items:center;justify-content:center;z-index:1000;transition:opacity var(--transition-slow),visibility var(--transition-slow),background-color var(--transition-normal)}.blank-state.fade-out{opacity:0;visibility:hidden}.blank-content{text-align:center;max-width:600px;padding:var(--space-xl)}.typewriter-container{font-size:1.25rem;color:var(--color-text-secondary);font-weight:var(--font-weight-normal);line-height:1.8}.typewriter-text{opacity:0;animation:fadeInText .1s ease forwards}.cursor{color:var(--color-accent);animation:blink 1.5s infinite;font-weight:var(--font-weight-normal)}@keyframes fadeInText{to{opacity:1}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.main-content{opacity:0;visibility:hidden;transition:opacity var(--transition-slow),visibility var(--transition-slow)}.main-content.visible{opacity:1;visibility:visible}section{padding:var(--space-3xl) 0;transition:opacity var(--transition-normal),transform var(--transition-normal)}.hero{min-height:100vh;display:flex;align-items:center;text-align:center}.hero-content{max-width:600px;margin:0 auto}.hero-profile{margin-bottom:var(--space-xl)}.profile-photo{width:120px;height:120px;margin:0 auto;border-radius:50%;overflow:hidden;border:3px solid var(--color-border);transition:all var(--transition-normal);box-shadow:var(--shadow-soft)}.profile-photo:hover{transform:scale(1.05);border-color:var(--color-accent);box-shadow:var(--shadow-medium)}.profile-photo img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.profile-photo:hover img{transform:scale(1.1)}.hero-title{font-size:3.5rem;font-weight:var(--font-weight-light);color:var(--color-text);margin-bottom:var(--space-md);letter-spacing:-.02em;line-height:1.2;transition:color var(--transition-normal)}.hero-subtitle{font-size:1.25rem;color:var(--color-text-secondary);margin-bottom:var(--space-lg);font-weight:var(--font-weight-normal);transition:color var(--transition-normal)}.hero-description{font-size:1.125rem;line-height:1.8;color:var(--color-text-muted);max-width:500px;margin:0 auto var(--space-xl);transition:color var(--transition-normal)}.hero-status{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);font-size:.875rem;color:var(--color-text-muted);transition:color var(--transition-normal)}.status-indicator{width:8px;height:8px;background:var(--color-accent);border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}.section-title{font-size:2.5rem;font-weight:var(--font-weight-light);color:var(--color-text);margin-bottom:var(--space-xl);text-align:center;letter-spacing:-.02em;transition:color var(--transition-normal)}.about-content{max-width:700px;margin:0 auto;text-align:center}.about-story{margin-bottom:var(--space-3xl)}.about-text{font-size:1.125rem;line-height:1.8;color:var(--color-text-secondary);max-width:600px;margin:0 auto var(--space-lg);transition:color var(--transition-normal)}.philosophy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-xl)}.philosophy-item{text-align:center;padding:var(--space-xl);background:var(--color-bg-secondary);border-radius:12px;border:1px solid var(--color-border);transition:all var(--transition-normal)}.philosophy-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-medium);border-color:var(--color-accent)}.philosophy-icon{font-size:2rem;color:var(--color-accent);margin-bottom:var(--space-md);font-weight:var(--font-weight-normal)}.philosophy-item h3{font-size:1.25rem;font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--space-sm);transition:color var(--transition-normal)}.philosophy-item p{color:var(--color-text-secondary);line-height:var(--line-height-base);font-size:.875rem;transition:color var(--transition-normal)}.skills-content{max-width:1200px;margin:0 auto}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xl)}.skill-category{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:var(--space-xl);transition:all var(--transition-normal)}.skill-category:hover{border-color:var(--color-accent);box-shadow:var(--shadow-soft)}.skill-category h3{font-size:1.25rem;font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--space-lg);text-align:center;transition:color var(--transition-normal)}.skill-items{display:flex;flex-direction:column;gap:var(--space-md)}.skill-item{display:flex;flex-direction:column;gap:var(--space-xs)}.skill-name{font-size:.875rem;color:var(--color-text-secondary);font-weight:var(--font-weight-normal);transition:color var(--transition-normal)}.skill-bar{height:6px;background:var(--color-border);border-radius:3px;overflow:hidden;position:relative;transition:background-color var(--transition-normal)}.skill-progress{height:100%;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-light));border-radius:3px;width:0;transition:width 1.5s ease;position:relative}.skill-progress:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xl)}.project-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;overflow:hidden;transition:all var(--transition-normal);position:relative}.project-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-light));opacity:0;transition:opacity var(--transition-normal);z-index:-1}.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-medium);border-color:var(--color-accent)}.project-card:hover:before{opacity:.03}.project-image{height:200px;background:var(--color-bg);display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--color-border);transition:background-color var(--transition-normal)}.project-placeholder{font-size:3rem;color:var(--color-text-muted);transition:all var(--transition-normal)}.project-card:hover .project-placeholder{color:var(--color-accent);transform:scale(1.1)}.project-content{padding:var(--space-xl)}.project-content h3{font-size:1.25rem;font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--space-md);transition:color var(--transition-normal)}.project-content p{color:var(--color-text-secondary);line-height:1.7;margin-bottom:var(--space-lg);transition:color var(--transition-normal)}.project-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-lg)}.tag{padding:.25rem .75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;font-size:.75rem;color:var(--color-text-muted);transition:all var(--transition-fast)}.tag:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.project-details-btn{background:transparent;border:2px solid var(--color-accent);color:var(--color-accent);padding:var(--space-sm) var(--space-lg);border-radius:8px;font-family:var(--font-primary);font-size:.875rem;font-weight:var(--font-weight-normal);cursor:pointer;transition:all var(--transition-normal);width:100%}.project-details-btn:hover{background:var(--color-accent);color:#fff;transform:translateY(-2px)}.project-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;visibility:hidden;transition:all var(--transition-normal)}.project-modal.active{opacity:1;visibility:visible}.modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.modal-content{background:var(--color-bg);border-radius:12px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;position:relative;transform:scale(.9);transition:transform var(--transition-normal),background-color var(--transition-normal)}.project-modal.active .modal-content{transform:scale(1)}.modal-close{position:absolute;top:var(--space-md);right:var(--space-md);background:transparent;border:none;font-size:1.5rem;color:var(--color-text-muted);cursor:pointer;z-index:10;transition:color var(--transition-fast)}.modal-close:hover{color:var(--color-text)}.modal-body{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);padding:var(--space-xl)}.modal-image{height:200px;background:var(--color-bg-secondary);border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-normal)}.modal-placeholder{font-size:3rem;color:var(--color-text-muted);transition:color var(--transition-normal)}.modal-info h2{font-size:1.5rem;font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--space-md);transition:color var(--transition-normal)}.modal-info p{color:var(--color-text-secondary);line-height:1.7;margin-bottom:var(--space-lg);transition:color var(--transition-normal)}.modal-details{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl)}.detail-item h4{font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--space-xs);transition:color var(--transition-normal)}.detail-item p{font-size:.875rem;color:var(--color-text-secondary);margin:0;transition:color var(--transition-normal)}.modal-tech{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.modal-tech .tag{font-size:.75rem;padding:.25rem .5rem}.modal-actions{display:flex;gap:var(--space-sm)}.modal-actions .btn{flex:1;text-align:center;text-decoration:none;padding:var(--space-sm) var(--space-md);border-radius:8px;font-size:.875rem;font-weight:var(--font-weight-normal);transition:all var(--transition-normal)}.btn-primary{background:var(--color-accent);color:#fff;border:2px solid var(--color-accent)}.btn-primary:hover{background:var(--color-accent-light);border-color:var(--color-accent-light);transform:translateY(-2px)}.btn-secondary{background:transparent;color:var(--color-accent);border:2px solid var(--color-accent)}.btn-secondary:hover{background:var(--color-accent);color:#fff;transform:translateY(-2px)}.contact-content{text-align:center;max-width:600px;margin:0 auto}.contact-text{font-size:1.125rem;line-height:1.8;color:var(--color-text-secondary);margin-bottom:var(--space-2xl);transition:color var(--transition-normal)}.contact-links{display:flex;justify-content:center;gap:var(--space-xl);align-items:center}.contact-link{width:60px;height:60px;border-radius:50%;border:2px solid var(--color-border);color:var(--color-text-secondary);text-decoration:none;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:all var(--transition-normal);position:relative;overflow:hidden;background:var(--color-bg-secondary)}.contact-link:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(135deg,transparent,rgba(99,102,241,.1),transparent);transition:left .6s ease}.contact-link:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-4px) scale(1.1);box-shadow:var(--shadow-medium)}.contact-link:hover:before{left:100%}.contact-link i{transition:transform var(--transition-normal)}.contact-link:hover i{transform:scale(1.2)}@media (max-width: 1024px){.skills-grid,.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.container{padding:0 var(--space-md)}.theme-toggle{top:var(--space-md);right:var(--space-md)}.theme-btn{width:44px;height:44px;font-size:1rem}.hero{padding:var(--space-2xl) 0}.hero-title{font-size:2.5rem}.section-title{font-size:2rem}.philosophy-grid,.skills-grid,.projects-grid,.modal-body{grid-template-columns:1fr;gap:var(--space-lg)}.contact-links{gap:var(--space-lg)}.contact-link{width:50px;height:50px;font-size:1.25rem}}@media (max-width: 480px){.hero-title{font-size:2rem}.hero-subtitle{font-size:1.125rem}.hero-description{font-size:1rem}.section-title{font-size:1.75rem}.about-text,.contact-text{font-size:1rem}.typewriter-container{font-size:1.125rem}.profile-photo{width:100px;height:100px}.theme-btn{width:40px;height:40px;font-size:.875rem}.contact-link{width:45px;height:45px;font-size:1.125rem}}section:nth-child(1){transition-delay:.2s}section:nth-child(2){transition-delay:.4s}section:nth-child(3){transition-delay:.6s}section:nth-child(4){transition-delay:.8s}section:nth-child(5){transition-delay:1s}html{scroll-padding-top:2rem}@keyframes breathing{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes floating{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.work-history{background-color:var(--color-bg-secondary);padding:var(--space-3xl) 0}.timeline{position:relative;display:flex;justify-content:flex-start;gap:15%;width:90%;margin:4rem auto 2rem}.timeline:before{content:"";position:absolute;top:10px;left:0;width:100%;height:2px;background-color:var(--color-border);transform:translateY(-50%);z-index:1}.timeline-item{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}.timeline-marker{width:20px;height:20px;background-color:var(--color-bg-secondary);border:3px solid var(--color-accent);border-radius:50%;transition:all var(--transition-normal);cursor:pointer;position:relative;z-index:2}.timeline-date{margin-top:1rem;font-size:.875rem;font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);padding:0 .5rem;white-space:nowrap}.timeline-content{position:absolute;bottom:35px;text-align:center;padding:1.5rem;background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-soft);width:280px;opacity:0;visibility:hidden;transform:translateY(10px);transition:all var(--transition-normal)}.timeline-item:hover .timeline-content{opacity:1;visibility:visible;transform:translateY(0)}.timeline-item:hover .timeline-marker{transform:scale(1.2);box-shadow:0 0 10px var(--color-accent);background-color:var(--color-accent)}.timeline-content h3{font-size:1.125rem;color:var(--color-text);margin-bottom:.25rem}.timeline-content h4{font-size:1rem;color:var(--color-accent);margin-bottom:.75rem;font-weight:var(--font-weight-normal)}.timeline-content ul{list-style:none;padding:0;margin:0;text-align:left}.timeline-content li{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:.5rem;position:relative;padding-left:1rem}.timeline-content li:before{content:"›";position:absolute;left:0;color:var(--color-accent)}.footer{padding:var(--space-2xl) var(--space-lg);text-align:center;border-top:1px solid var(--color-border);background-color:var(--color-bg);transition:background-color var(--transition-normal),border-color var(--transition-normal)}.footer p{color:var(--color-text-muted);font-size:.875rem;margin:0;transition:color var(--transition-normal)}.footer-made-with{margin-top:var(--space-xs);font-size:.8rem}
