:root{--bg: oklch(.155 .005 80);--bg-2: oklch(.185 .006 80);--surface: oklch(.205 .007 80);--surface-2: oklch(.235 .008 80);--line: oklch(.3 .008 80);--line-soft: oklch(.245 .007 80);--fg: oklch(.96 .004 80);--fg-2: oklch(.78 .005 80);--fg-3: oklch(.58 .006 80);--fg-4: oklch(.42 .006 80);--accent: oklch(.8 .13 75);--accent-soft: oklch(.8 .13 75 / .12);--good: oklch(.78 .13 150);--good-soft: oklch(.78 .13 150 / .12);--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans: "Inter Tight", "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--jp: "Noto Sans JP", "Inter Tight", -apple-system, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--sans);background:var(--bg);color:var(--fg);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11"}::selection{background:var(--accent);color:var(--bg)}a{color:inherit;text-decoration:none}.wrap{max-width:1240px;margin:0 auto;padding:0 32px}@media(max-width:720px){.wrap{padding:0 20px}}section{padding:96px 0;border-top:1px solid var(--line-soft)}section:first-of-type{border-top:none;padding-top:64px}@media(max-width:720px){section{padding:64px 0}}.sec-label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);display:flex;align-items:center;gap:12px;margin-bottom:24px}.sec-label:before{content:"";width:24px;height:1px;background:var(--accent)}.sec-h{font-family:var(--sans);font-size:clamp(28px,4vw,40px);font-weight:500;letter-spacing:-.02em;margin:0 0 12px;color:var(--fg)}.sec-sub{font-family:var(--jp);color:var(--fg-2);max-width:64ch;margin:0 0 48px;font-size:15px}.btn{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:8px;font-family:var(--mono);font-size:13px;border:1px solid var(--line);color:var(--fg);transition:.15s;cursor:pointer;background:transparent}.btn:hover{border-color:var(--fg-2);transform:translateY(-1px)}.btn.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:500}.btn.primary:hover{background:#ffc165;border-color:#ffc165}.btn .arrow{font-family:var(--mono);transition:.15s}.btn:hover .arrow{transform:translate(2px)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-family:var(--mono);font-size:12px;padding:5px 10px;border:1px solid var(--line-soft);border-radius:5px;color:var(--fg-2);background:var(--bg-2);transition:.12s}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip.primary{color:var(--fg);border-color:var(--line)}.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:#0d0c0ac7;border-bottom:1px solid var(--line-soft)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:56px}.brand{font-family:var(--mono);font-size:13px;letter-spacing:.02em;display:flex;align-items:center;gap:10px;color:var(--fg)}.brand .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.brand b{font-weight:600}.brand span{color:var(--fg-3)}.nav-links{display:flex;gap:4px;font-family:var(--mono);font-size:12px}.nav-links a{padding:8px 12px;border-radius:6px;color:var(--fg-2);transition:.12s;letter-spacing:.02em}.nav-links a:hover{color:var(--fg);background:var(--surface)}.nav-cta{font-family:var(--mono);font-size:12px;padding:8px 14px;border:1px solid var(--line);border-radius:6px;color:var(--fg);display:inline-flex;align-items:center;gap:8px;transition:.12s}.nav-cta:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:860px){.nav-links{display:none}}.hero{padding-block:80px 96px;border-top:none}@media(max-width:720px){.hero{padding-block:56px 72px}}.hero-meta{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);display:flex;gap:16px;flex-wrap:wrap;margin-bottom:40px}.hero-meta .live{display:inline-flex;align-items:center;gap:8px;color:var(--good)}.hero-meta .live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--good);box-shadow:0 0 0 4px var(--good-soft);animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 4px var(--good-soft)}50%{box-shadow:0 0 0 6px #76cf8a0a}}.hero-name-en{font-size:clamp(48px,9vw,96px);font-weight:500;letter-spacing:-.035em;line-height:.96;margin:0 0 12px}.hero-name-jp{font-family:var(--jp);font-size:clamp(20px,2.4vw,26px);font-weight:400;letter-spacing:.02em;color:var(--fg-2);margin:0 0 32px}.hero-role{display:inline-flex;align-items:center;gap:12px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:12px;color:var(--fg);margin-bottom:28px}.hero-role:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}.hero-desc{font-family:var(--jp);font-size:clamp(15px,1.4vw,17px);line-height:1.75;color:var(--fg-2);max-width:60ch;margin:0 0 40px;text-wrap:pretty}.hero-desc b{color:var(--fg);font-weight:500}.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:64px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line-soft);border-radius:10px;overflow:hidden;background:var(--bg-2)}.metric{padding:20px 22px;border-right:1px solid var(--line-soft)}.metric:last-child{border-right:none}.metric .k{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);margin-bottom:8px}.metric .v{font-family:var(--mono);font-size:18px;font-weight:500;color:var(--fg);letter-spacing:-.01em}.metric .v small{font-size:12px;color:var(--fg-3);font-weight:400;margin-left:4px}@media(max-width:720px){.metrics{grid-template-columns:repeat(2,1fr)}.metric{border-right:none;border-bottom:1px solid var(--line-soft)}.metric:nth-child(odd){border-right:1px solid var(--line-soft)}.metric:nth-last-child(-n+2){border-bottom:none}}.profile-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:start}@media(max-width:860px){.profile-grid{grid-template-columns:1fr;gap:32px}}.profile-text p{font-family:var(--jp);color:var(--fg-2);line-height:1.85;margin:0 0 16px;text-wrap:pretty}.info-card{border:1px solid var(--line-soft);border-radius:10px;background:var(--bg-2);overflow:hidden}.info-row{display:grid;grid-template-columns:120px 1fr;padding:14px 20px;border-bottom:1px solid var(--line-soft);font-size:14px}.info-row:last-child{border-bottom:none}.info-row .k{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);align-self:center}.info-row .v{color:var(--fg);font-family:var(--mono);font-size:13px;overflow-wrap:anywhere}.info-row .v a:hover{color:var(--accent)}.strength-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media(max-width:980px){.strength-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:540px){.strength-grid{grid-template-columns:1fr}}.strength{border:1px solid var(--line-soft);border-radius:10px;padding:24px;background:var(--bg-2);transition:.2s;position:relative}.strength:hover{border-color:var(--line);transform:translateY(-2px)}.strength .num{font-family:var(--mono);font-size:11px;color:var(--accent);margin-bottom:28px;letter-spacing:.1em}.strength h3{font-family:var(--jp);font-size:17px;font-weight:600;margin:0 0 12px;letter-spacing:-.005em}.strength p{font-family:var(--jp);margin:0;color:var(--fg-2);font-size:13.5px;line-height:1.7}.skills-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:40px}@media(max-width:720px){.skills-summary{grid-template-columns:1fr}}.skill-line{display:grid;grid-template-columns:140px 1fr;padding:14px 18px;border:1px solid var(--line-soft);border-radius:8px;background:var(--bg-2);align-items:start;gap:16px}.skill-line .label{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);align-self:center}.skill-line .body{font-family:var(--jp);font-size:13.5px;color:var(--fg-2);line-height:1.7}.skills-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--line-soft)}.skills-tab{padding:8px 14px;border-radius:6px;font-family:var(--mono);font-size:12px;color:var(--fg-3);cursor:pointer;border:1px solid transparent;background:transparent;transition:.12s;letter-spacing:.02em}.skills-tab:hover{color:var(--fg)}.skills-tab.active{color:var(--fg);background:var(--surface);border-color:var(--line)}.skills-tab .ct{font-size:10px;color:var(--fg-4);margin-left:6px}.skills-tab.active .ct{color:var(--fg-3)}.skills-panel{display:none}.skills-panel.active{display:block;animation:fade .2s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.skill-group{display:grid;grid-template-columns:180px 1fr;padding:18px 0;border-bottom:1px solid var(--line-soft);gap:24px;align-items:baseline}.skill-group:last-child{border-bottom:none}@media(max-width:720px){.skill-group{grid-template-columns:1fr;gap:10px}}.skill-group .gn{font-family:var(--mono);font-size:12px;color:var(--fg);letter-spacing:.02em}.skill-group .gn small{color:var(--fg-3);margin-left:6px;font-size:10px}.xp-list{display:flex;flex-direction:column;gap:0}.xp{border:1px solid var(--line-soft);border-radius:10px;background:var(--bg-2);overflow:hidden;transition:border-color .2s;margin-bottom:12px}.xp:hover,.xp.open{border-color:var(--line)}.xp-head{display:grid;grid-template-columns:140px 1fr auto;gap:24px;padding:22px 24px;cursor:pointer;align-items:center}@media(max-width:720px){.xp-head{grid-template-columns:1fr auto;gap:12px;padding:18px}.xp-head .when{grid-column:1 / -1;order:-1}}.xp-head .when{font-family:var(--mono);font-size:11px;color:var(--fg-3);letter-spacing:.04em}.xp-head .when .now{color:var(--good)}.xp-head .ttl{display:flex;flex-direction:column;gap:4px}.xp-head .ttl .co{font-family:var(--jp);font-size:17px;font-weight:600;color:var(--fg)}.xp-head .ttl .role{font-family:var(--mono);font-size:11px;color:var(--fg-3);letter-spacing:.06em;text-transform:uppercase}.xp-head .ttl .role .sep{margin:0 8px;opacity:.5}.xp-toggle{width:28px;height:28px;border:1px solid var(--line);border-radius:6px;display:grid;place-items:center;transition:.2s;color:var(--fg-2);font-family:var(--mono);font-size:14px;flex-shrink:0}.xp.open .xp-toggle{transform:rotate(45deg);background:var(--accent);border-color:var(--accent);color:var(--bg)}.xp-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}.xp.open .xp-body{grid-template-rows:1fr}.xp-body>.inner{overflow:hidden}.xp-body .padded{padding:20px 24px 24px;border-top:1px solid var(--line-soft);margin-top:4px}.proj-block{margin-bottom:4px}.proj-block+.proj-block{margin-top:24px}.proj-block-h{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin-bottom:12px;display:flex;align-items:center;gap:10px}.proj-block-h:after{content:"";flex:1;height:1px;background:var(--line-soft)}.proj{padding:16px 0;border-bottom:1px dashed var(--line-soft)}.proj:last-child{border-bottom:none}.proj-name{font-family:var(--jp);font-size:15px;font-weight:600;color:var(--fg);margin-bottom:6px}.proj-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 24px;font-size:13px;margin-bottom:10px}.proj-meta .row{display:flex;gap:10px;font-family:var(--jp)}.proj-meta .row .k{font-family:var(--mono);font-size:10px;color:var(--fg-3);text-transform:uppercase;letter-spacing:.1em;flex-shrink:0;padding-top:2px;min-width:60px}.proj-meta .row .v{color:var(--fg-2);font-size:13px}.single-line-meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-family:var(--mono);font-size:11px;color:var(--fg-3);letter-spacing:.04em;margin-bottom:16px}.single-line-meta b{color:var(--fg-2);font-weight:400}.proj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media(max-width:720px){.proj-grid{grid-template-columns:1fr}}.pcard{border:1px solid var(--line-soft);border-radius:10px;padding:28px;background:var(--bg-2);transition:.2s;position:relative;display:flex;flex-direction:column;min-height:220px}.pcard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px}.pcard-name{font-family:var(--mono);font-size:18px;font-weight:500;color:var(--fg);letter-spacing:-.01em}.pcard-link{font-family:var(--mono);font-size:11px;color:var(--fg-3);letter-spacing:.06em;text-transform:uppercase;transition:.15s;display:inline-flex;gap:6px;align-items:center}.pcard:hover{border-color:var(--line);transform:translateY(-2px)}.pcard:hover .pcard-link{color:var(--accent)}.pcard:hover .chip{border-color:var(--line)}.pcard-desc{font-family:var(--jp);font-size:14px;color:var(--fg-2);line-height:1.7;margin-bottom:20px;flex:1}.pcard .chips{margin-top:auto}.cred-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:720px){.cred-grid{grid-template-columns:1fr}}.cred{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--line-soft);border-radius:8px;background:var(--bg-2)}.cred .ic{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;font-family:var(--mono);font-size:11px;color:var(--accent);flex-shrink:0;letter-spacing:.04em}.cred .name{font-family:var(--jp);font-size:14px;font-weight:500;color:var(--fg)}.cred .sub{font-family:var(--mono);font-size:10px;color:var(--fg-3);letter-spacing:.08em;text-transform:uppercase;margin-top:2px}.contact{border:1px solid var(--line-soft);border-radius:12px;padding:56px 40px;background:radial-gradient(800px 300px at 20% 0%,oklch(.8 .13 75 / .04),transparent 70%),var(--bg-2)}@media(max-width:720px){.contact{padding:36px 24px}}.contact h2{font-size:clamp(28px,4vw,40px);font-weight:500;letter-spacing:-.02em;margin:0 0 8px}.contact p{font-family:var(--jp);color:var(--fg-2);margin:0 0 32px;max-width:50ch}.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-width:640px}@media(max-width:540px){.contact-grid{grid-template-columns:1fr}}.contact-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border:1px solid var(--line-soft);border-radius:8px;transition:.15s;gap:12px}.contact-row:hover{border-color:var(--accent);background:var(--surface)}.contact-row:hover .arrow{color:var(--accent);transform:translate(2px,-2px)}.contact-row .left{display:flex;flex-direction:column;gap:2px;min-width:0}.contact-row .k{font-family:var(--mono);font-size:10px;color:var(--fg-3);letter-spacing:.1em;text-transform:uppercase}.contact-row .v{font-family:var(--mono);font-size:13px;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-row .arrow{font-family:var(--mono);color:var(--fg-3);transition:.15s;flex-shrink:0}footer{border-top:1px solid var(--line-soft);padding:32px 0;font-family:var(--mono);font-size:11px;color:var(--fg-3);letter-spacing:.04em}.footer-row{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
