*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--sakura:#ffb7c5;--sakura-deep:#ff88a0;--sky:#7ec8e3;--sky-soft:#a8dce7;--gold:#d4a574;--gold-light:#e8cfa0;--radius:14px;--transition:.35s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg:#0a0a1a;--bg-card:#13132a;--bg-card-hover:#1a1a38;--text:#e8e0f0;--text-dim:#88a;--border:#ffb7c51f;--header-bg:#0a0a1ad9;--glow-color:#ffb7c599;--skill-tag-bg:#7ec8e314;--skill-tag-border:#7ec8e333;--project-tag-bg:#d4a57414;--project-tag-border:#d4a57433}[data-theme=light]{--bg:#faf7f2;--bg-card:#fff;--bg-card-hover:#fdf6f0;--text:#3d3340;--text-dim:#8c8094;--border:#ffb7c540;--header-bg:#faf7f2e0;--glow-color:#ffb7c566;--skill-tag-bg:#7ec8e31f;--skill-tag-border:#7ec8e34d;--project-tag-bg:#d4a5741f;--project-tag-border:#d4a5744d}html{scroll-behavior:smooth;scroll-padding-top:80px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;transition:background var(--transition), color var(--transition);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,Noto Sans JP,sans-serif;line-height:1.7;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}.starfield-canvas{z-index:0;pointer-events:none;position:fixed;inset:0}.petals-container{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.petal{opacity:.55;filter:drop-shadow(0 0 6px #ffb7c580);animation:linear infinite petalFall;position:absolute;top:-40px}[data-theme=light] .petal{opacity:.35}@keyframes petalFall{0%{opacity:.7;transform:translateY(0)rotate(0)translate(0)}25%{transform:translateY(25vh)rotate(90deg)translate(30px)}50%{opacity:.5}75%{opacity:.3;transform:translateY(75vh)rotate(270deg)translate(-20px)}to{opacity:0;transform:translateY(105vh)rotate(360deg)translate(15px)}}.header{z-index:100;transition:background var(--transition), backdrop-filter var(--transition);position:fixed;top:0;left:0;right:0}.header.scrolled{background:var(--header-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}.header-inner{justify-content:space-between;align-items:center;max-width:1200px;height:64px;margin:0 auto;padding:0 24px;display:flex}.logo{color:var(--sakura);letter-spacing:.04em;font-size:1.3rem;font-weight:800}.nav{gap:32px;display:flex}.nav a{color:var(--text-dim);transition:color var(--transition);font-size:.92rem;position:relative}.nav a:after{content:"";background:var(--sakura);height:2px;transition:transform var(--transition);position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.nav a:hover{color:var(--sakura)}.nav a:hover:after{transform:scaleX(1)}.header-actions{align-items:center;gap:10px;display:flex}.theme-btn,.lang-btn{border:1px solid var(--border);width:40px;height:40px;transition:all var(--transition);border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;display:flex}.theme-btn:hover,.lang-btn:hover{border-color:var(--sakura);background:#ffb7c514}.lang-btn{color:var(--gold);font-size:.8rem;font-weight:700}.menu-toggle{flex-direction:column;gap:5px;padding:4px;display:none}.menu-toggle span{background:var(--text);width:22px;height:2px;transition:var(--transition);border-radius:1px;display:block}.menu-toggle.open span:first-child{transform:rotate(45deg)translate(5px,5px)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:rotate(-45deg)translate(5px,-5px)}@media (width<=768px){.nav{background:var(--header-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:transform var(--transition);border-bottom:1px solid var(--border);flex-direction:column;gap:16px;padding:20px 24px;position:fixed;top:64px;left:0;right:0;transform:translateY(-120%)}.nav.open{transform:translateY(0)}.menu-toggle{display:flex}}.section{z-index:2;max-width:1100px;margin:0 auto;padding:100px 24px;position:relative}.section-title{text-align:center;background:linear-gradient(135deg, var(--sakura), var(--sky));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:56px;font-size:2rem;font-weight:800}.hero{z-index:2;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative}.hero-content{text-align:center;max-width:680px}.hero-greeting{color:var(--sky);letter-spacing:.04em;margin-bottom:8px;font-size:1.15rem}.hero-name{background:linear-gradient(135deg, var(--sakura) 20%, var(--gold) 60%, var(--sky) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:12px;font-size:4.5rem;font-weight:900;line-height:1.1;animation:3s ease-in-out infinite glowPulse}@keyframes glowPulse{0%,to{filter:drop-shadow(0 0 12px var(--glow-color))}50%{filter:drop-shadow(0 0 24px var(--glow-color))}}.hero-subtitle{color:var(--gold);margin-bottom:20px;font-size:1.25rem;font-weight:500}.hero-desc{color:var(--text-dim);max-width:540px;margin-bottom:40px;margin-left:auto;margin-right:auto;font-size:1.05rem;line-height:1.8}.hero-cta{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.btn-primary,.btn-outline{transition:all var(--transition);border-radius:50px;padding:12px 32px;font-size:.95rem;font-weight:600}.btn-primary{background:linear-gradient(135deg, var(--sakura-deep), var(--sakura));color:#fff;box-shadow:0 4px 20px #ff88a059}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 28px #ff88a080}.btn-outline{border:2px solid var(--sky);color:var(--sky)}.btn-outline:hover{background:#7ec8e31a;transform:translateY(-2px)}@media (width<=768px){.hero-name{font-size:2.8rem}.hero-subtitle{font-size:1.05rem}}.about-grid{grid-template-columns:1fr 1fr;align-items:center;gap:48px;display:grid}.about-text p{color:var(--text-dim);margin-bottom:16px;font-size:1rem;line-height:1.9}.about-stats{grid-template-columns:1fr;gap:16px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;transition:all var(--transition);padding:24px}.stat-card:hover{border-color:var(--sakura);background:var(--bg-card-hover);transform:translateY(-2px)}.stat-label{color:var(--text-dim);margin-bottom:6px;font-size:.85rem;display:block}.stat-value{color:var(--sakura);font-size:1.5rem;font-weight:700;display:block}@media (width<=768px){.about-grid{grid-template-columns:1fr;gap:32px}}.skills-grid{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.skill-category{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition);padding:32px 24px}.skill-category:hover{border-color:var(--sky);background:var(--bg-card-hover)}.skill-category h3{color:var(--sky);text-align:center;margin-bottom:20px;font-size:1.15rem;font-weight:700}.skill-tags{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.skill-tag{background:var(--skill-tag-bg);border:1px solid var(--skill-tag-border);color:var(--sky);transition:all var(--transition);border-radius:20px;padding:6px 16px;font-size:.85rem;font-weight:500}.skill-tag:hover{border-color:var(--sky);background:#7ec8e32e;transform:translateY(-1px)}@media (width<=768px){.skills-grid{grid-template-columns:1fr}}.projects-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition);padding:32px}.project-card:hover{border-color:var(--gold);background:var(--bg-card-hover);transform:translateY(-4px);box-shadow:0 8px 32px #d4a5741a}.project-icon{margin-bottom:16px;font-size:2rem}.project-card h3{color:var(--gold);margin-bottom:10px;font-size:1.2rem;font-weight:700}.project-card p{color:var(--text-dim);margin-bottom:20px;font-size:.92rem;line-height:1.7}.project-tags{flex-wrap:wrap;gap:8px;display:flex}.project-tags span{background:var(--project-tag-bg);border:1px solid var(--project-tag-border);color:var(--gold);border-radius:12px;padding:4px 12px;font-size:.78rem}@media (width<=768px){.projects-grid{grid-template-columns:1fr}}.contact-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.contact-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;transition:all var(--transition);flex-direction:column;align-items:center;gap:12px;padding:32px 16px;display:flex}.contact-card:hover{border-color:var(--sakura);background:var(--bg-card-hover);transform:translateY(-4px)}.contact-icon{font-size:1.8rem}.contact-label{color:var(--text-dim);font-size:.9rem;font-weight:500}@media (width<=600px){.contact-grid{grid-template-columns:repeat(2,1fr)}}.footer{text-align:center;border-top:1px solid var(--border);z-index:2;padding:48px 24px;position:relative}.footer p{color:var(--text-dim);font-size:.9rem}.back-top{z-index:99;background:var(--bg-card);border:1px solid var(--border);width:44px;height:44px;color:var(--sakura);opacity:0;transition:all var(--transition);pointer-events:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;display:flex;position:fixed;bottom:32px;right:32px;transform:translateY(20px)}.back-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-top:hover{border-color:var(--sakura);background:#ffb7c526;transform:translateY(-3px)}.reveal{opacity:0;transition:opacity .7s ease-out,transform .7s ease-out;transform:translateY(36px)}.reveal.revealed{opacity:1;transform:translateY(0)}
