:root {
  --v2-paper: #101318;
  --v2-surface: #191f27;
  --v2-raised: #222b35;
  --v2-white: #f4f6f8;
  --v2-ink: #f4f6f8;
  --v2-muted: #b9c3ce;
  --v2-black: #101318;
  --v2-blue: #70adff;
  --v2-blue-hover: #96c4ff;
  --v2-line: #3d4a57;
  --v2-nav-line: #657382;
  --v2-card-radius: 14px;
  --v2-header-height: 76px;
  --v2-width: 1120px;
  --v2-font-body: "Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --v2-font-display: "Portfolio Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --v2-font-ui: var(--v2-font-display);
  --v2-font-latin: "Space Grotesk", "Segoe UI", sans-serif;
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--v2-header-height) + 24px); }
body.portfolio-v2 { margin: 0; min-width: 300px; background: var(--v2-paper); color: var(--v2-ink); font-family: var(--v2-font-body); font-weight: 500; line-height: 1.8; -webkit-font-smoothing: antialiased; }
body.portfolio-v2 *, body.portfolio-v2 *::before, body.portfolio-v2 *::after { box-sizing: border-box; }
body.portfolio-v2:not(.detail-page) a { color: inherit; }
:where(body.portfolio-v2 button) { font: inherit; font-family: var(--v2-font-ui); }
body.portfolio-v2 :focus-visible { outline: 3px solid var(--v2-blue); outline-offset: 4px; }
body.portfolio-v2 :is(.v2-hero, .v2-page-hero, .v2-footer, .project-hero) :focus-visible { outline-color: var(--v2-white); }
body.portfolio-v2 img { max-width: 100%; }
.v2-container { width: min(var(--v2-width), calc(100% - 48px)); margin-inline: auto; }
.v2-skip-link { position: fixed; z-index: 3000; top: 12px; left: 12px; padding: 10px 16px; transform: translateY(-180%); background: var(--v2-blue); color: var(--v2-paper); font-family: var(--v2-font-ui); font-weight: 700; text-decoration: none; border: 2px solid var(--v2-blue); }
.v2-skip-link:focus { transform: translateY(0); }

/* The same site navigation is used on Home, all five category pages and legacy case studies. */
.v2-header { position: fixed; z-index: 1000; inset: 0 0 auto; height: var(--v2-header-height); color: var(--v2-ink); background: rgba(25, 31, 39, .98); border-bottom: 1px solid var(--v2-line); box-shadow: 0 8px 28px rgba(0, 0, 0, .16); }
.v2-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: min(var(--v2-width), calc(100% - 48px)); height: 100%; margin-inline: auto; }
.v2-brand { position: relative; display: flex; flex: 0 0 auto; height: 100%; min-height: 44px; align-items: center; color: var(--v2-ink) !important; text-decoration: none; }
.v2-brand[aria-current="page"]::after { position: absolute; right: 0; bottom: 0; left: 0; height: 3px; background: var(--v2-blue); content: ""; }
.v2-brand-name { font: 700 2rem/1 "Caveat", "Segoe Script", "Bradley Hand", cursive; letter-spacing: -.01em; white-space: nowrap; }
.v2-nav { display: flex; align-items: stretch; height: 100%; margin-left: auto; border-left: 1px solid var(--v2-nav-line); }
.v2-nav .v2-nav-home { display: none; }
.v2-nav a { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-width: 106px; padding: 0 11px; border-right: 1px solid var(--v2-nav-line); color: var(--v2-ink) !important; font: 600 .9rem var(--v2-font-ui); text-decoration: none; transition: background .2s ease; }
.v2-nav a span { margin-top: 1px; color: var(--v2-muted); font: 500 .68rem var(--v2-font-latin); letter-spacing: .03em; }
html[lang="en"] .v2-nav a { font-family: var(--v2-font-latin); }
html[lang="en"] .v2-nav a span { display: none; }
.v2-nav a:hover, .v2-nav a[aria-current="page"] { background: var(--v2-raised); }
.v2-nav a[aria-current="page"]::after { position: absolute; right: 12px; bottom: 0; left: 12px; height: 3px; background: var(--v2-blue); content: ""; }
.v2-language-switcher { display: flex; flex: 0 0 auto; align-items: center; gap: 2px; margin-left: 4px; padding: 3px; border: 1px solid var(--v2-nav-line); }
.v2-language-switcher button { position: relative; min-width: 36px; min-height: 38px; padding: 5px; border: 0; background: transparent; color: var(--v2-muted); font: 700 .74rem var(--v2-font-latin); cursor: pointer; }
.v2-language-switcher button:hover { color: var(--v2-ink); background: var(--v2-raised); }
.v2-language-switcher button[aria-pressed="true"] { color: var(--v2-ink); background: var(--v2-raised); box-shadow: inset 0 -2px var(--v2-blue); }
.v2-menu-toggle { display: none; flex: 0 0 auto; width: 48px; height: 48px; padding: 0; align-items: center; justify-content: center; border: 1px solid var(--v2-nav-line); background: var(--v2-surface); color: var(--v2-ink); cursor: pointer; }
.v2-menu-toggle-lines, .v2-menu-toggle-lines::before, .v2-menu-toggle-lines::after { display: block; width: 20px; height: 2px; background: currentColor; content: ""; transition: transform .2s ease; }
.v2-menu-toggle-lines { position: relative; }
.v2-menu-toggle-lines::before { position: absolute; top: -6px; }
.v2-menu-toggle-lines::after { position: absolute; top: 6px; }
.v2-menu-toggle[aria-expanded="true"] .v2-menu-toggle-lines { background: transparent; }
.v2-menu-toggle[aria-expanded="true"] .v2-menu-toggle-lines::before { transform: translateY(6px) rotate(45deg); background: var(--v2-ink); }
.v2-menu-toggle[aria-expanded="true"] .v2-menu-toggle-lines::after { transform: translateY(-6px) rotate(-45deg); background: var(--v2-ink); }
.v2-menu-backdrop { display: none; }
.v2-main { padding-top: var(--v2-header-height); }
body.portfolio-v2.detail-page { padding-top: var(--v2-header-height); }
body.portfolio-v2.detail-page .project-header, body.portfolio-v2.detail-page .detail-header { position: relative; z-index: 1; }
body.portfolio-v2.detail-page .project-main { padding-top: 56px; }
body.portfolio-v2.detail-page .project-toc { top: calc(var(--v2-header-height) + 20px); }
body.portfolio-v2.detail-page :is(.skip-link, .back-link, .project-toc a, .project-return-link, .project-next > span, .project-next a) { font-family: var(--v2-font-ui); }
.v2-language-notice { max-width: var(--v2-width); margin: 0 auto 24px; padding: 12px 16px; border-left: 3px solid var(--v2-blue); background: var(--v2-surface); color: var(--v2-ink); font-size: .9rem; }

/* The original stage photograph is the Home's visual anchor. Its dark left side holds the copy. */
.v2-hero { position: relative; display: grid; min-height: clamp(540px, 66vh, 660px); overflow: hidden; align-items: center; padding: clamp(64px, 7vw, 90px) 0; color: var(--v2-white); background: var(--v2-black); }
.v2-hero::before, .v2-hero::after { position: absolute; inset: 0; content: ""; pointer-events: none; }
.v2-hero::before { background: url("../images/back-optimized.webp") center 62% / cover no-repeat; }
.v2-hero::after { background: linear-gradient(90deg, rgba(16,19,24,.94) 0%, rgba(16,19,24,.82) 34%, rgba(16,19,24,.26) 72%, rgba(16,19,24,.14) 100%), linear-gradient(0deg, rgba(16,19,24,.35), transparent 40%); }
.v2-hero-grid { position: relative; z-index: 1; width: min(var(--v2-width), calc(100% - 48px)); }
.v2-hero-copy { max-width: 620px; }
.v2-kicker, .v2-eyebrow { margin: 0 0 20px; color: var(--v2-blue); font: 700 .77rem var(--v2-font-latin); letter-spacing: .17em; text-transform: uppercase; }
.v2-hero .v2-kicker { color: var(--v2-blue); }
.v2-hero h1 { max-width: 720px; margin: 0; font: 600 clamp(2.9rem, 5.5vw, 5.2rem)/1.2 var(--v2-font-display); letter-spacing: -.045em; text-shadow: 0 2px 18px rgba(0,0,0,.28); }
html[lang="en"] .v2-hero h1 { font-size: clamp(2.7rem, 4.7vw, 4.4rem); line-height: 1.16; }
.v2-hero-lede { max-width: 600px; margin: 30px 0 0; color: var(--v2-white); font-size: clamp(1rem, 1.5vw, 1.13rem); text-shadow: 0 1px 9px rgba(0,0,0,.35); }
.v2-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.v2-button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 52px; padding: 10px 22px; border: 1px solid var(--v2-blue); border-radius: var(--v2-card-radius); background: var(--v2-blue); color: var(--v2-paper) !important; font-family: var(--v2-font-ui); font-weight: 700; text-decoration: none; transition: transform .2s ease, background .2s ease; }
.v2-button:hover { transform: translateY(-2px); background: var(--v2-blue-hover); }
.v2-button-outline { border-color: var(--v2-nav-line); background: rgba(25,31,39,.72); color: var(--v2-white) !important; }
.v2-button-outline:hover { background: var(--v2-raised); }
.v2-profile-band { border-top: 3px solid var(--v2-blue); border-bottom: 1px solid var(--v2-line); background: var(--v2-surface); color: var(--v2-ink); }
.v2-profile-snapshot { display: grid; grid-template-columns: 235px minmax(0, 1fr); gap: clamp(28px, 5vw, 70px); align-items: center; padding-block: 31px; }
.v2-profile-heading p { margin: 0 0 7px; color: var(--v2-muted); font: 600 .73rem var(--v2-font-latin); letter-spacing: .15em; text-transform: uppercase; }
.v2-profile-snapshot strong { display: block; font: 600 clamp(1.8rem, 2.8vw, 2.5rem) var(--v2-font-display); letter-spacing: .05em; }
.v2-profile-snapshot dl { display: grid; grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr); gap: 8px 13px; margin: 0; font-family: var(--v2-font-ui); font-size: .86rem; }
.v2-profile-snapshot dt { color: var(--v2-muted); }
.v2-profile-snapshot dd { margin: 0; }
.v2-home-intro { display: flex; justify-content: space-between; gap: 30px; align-items: end; padding: 68px 0 30px; }
.v2-home-intro h2 { margin: 0; font: 600 clamp(2rem, 4vw, 3.4rem)/1.3 var(--v2-font-display); }
.v2-home-intro p { max-width: 440px; margin: 0; color: var(--v2-muted); }
.v2-preview-list { display: grid; gap: 18px; padding-bottom: 110px; }
.v2-preview { display: grid; grid-template-columns: minmax(190px, .6fr) minmax(0, 1.4fr) 44px; gap: clamp(20px, 4vw, 56px); align-items: start; padding: clamp(24px, 4vw, 40px); border: 1px solid var(--v2-line); border-top: 2px solid var(--v2-nav-line); border-radius: var(--v2-card-radius); background: var(--v2-surface); color: var(--v2-ink); text-decoration: none; cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.v2-preview:hover, .v2-preview:focus-visible { border-color: var(--v2-blue); background: var(--v2-raised); box-shadow: 0 16px 36px rgba(0, 0, 0, .25); transform: translateY(-2px); }
.v2-preview:active { transform: translateY(0); }
.v2-preview h3 { margin: 0; font: 600 clamp(1.7rem, 3.2vw, 2.8rem)/1.2 var(--v2-font-display); }
.v2-preview h3 span { display: block; margin-top: 9px; color: var(--v2-muted); font: 600 .76rem var(--v2-font-latin); letter-spacing: .05em; }
html[lang="en"] .v2-preview h3 span { display: none; }
.v2-preview-content > p { max-width: 620px; margin: 0 0 18px; color: var(--v2-muted); }
.v2-preview-facts { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.v2-preview-facts li { padding: 5px 11px; border: 1px solid var(--v2-line); background: var(--v2-raised); color: var(--v2-ink); font-family: var(--v2-font-ui); font-size: .78rem; }
.v2-preview-arrow { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--v2-nav-line); border-radius: 50%; color: var(--v2-blue); font: 700 1.35rem/1 var(--v2-font-latin); transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.v2-preview:hover .v2-preview-arrow, .v2-preview:focus-visible .v2-preview-arrow { border-color: var(--v2-blue); background: var(--v2-blue); color: var(--v2-paper); transform: translate(2px, -2px); }
.v2-text-link { display: inline-flex; align-items: center; gap: 12px; padding-bottom: 2px; border-bottom: 2px solid var(--v2-blue); color: var(--v2-blue) !important; font-family: var(--v2-font-ui); font-weight: 700; text-decoration: none; }
.v2-text-link:hover { gap: 18px; }


/* Shared category page layout */
.v2-page-hero { padding: clamp(54px, 7vw, 96px) 0 clamp(44px, 6vw, 76px); border-bottom: 3px solid var(--v2-blue); color: var(--v2-white); background: var(--v2-black); }
.v2-page-hero .v2-eyebrow { color: var(--v2-blue); }
.v2-page-hero h1 { max-width: 900px; margin: 0; font: 600 clamp(2.8rem, 5.6vw, 5.4rem)/1.2 var(--v2-font-display); letter-spacing: -.04em; }
.v2-page-hero p:last-child { max-width: 760px; margin: 24px 0 0; color: var(--v2-muted); font-size: 1.05rem; }
.v2-section { padding: clamp(48px, 6vw, 76px) 0; border-bottom: 1px solid var(--v2-line); }
.v2-section h2, .v2-section-title { margin: 0 0 24px; font: 600 clamp(1.8rem, 3.2vw, 3rem)/1.3 var(--v2-font-display); }
.v2-section-lede { max-width: 760px; margin: 0 0 30px; color: var(--v2-muted); }
.v2-section p { max-width: 800px; }
.v2-footer { padding: 36px 0; color: var(--v2-muted); background: var(--v2-black); }
.v2-footer-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.v2-footer p { margin: 0; font-family: var(--v2-font-ui); font-size: .78rem; }
.v2-footer a { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 10px; padding: 10px 20px; border: 1px solid var(--v2-nav-line); border-radius: var(--v2-card-radius); background: var(--v2-surface); color: var(--v2-white) !important; font-family: var(--v2-font-ui); font-size: .88rem; font-weight: 700; text-decoration: none; }
.v2-footer a:hover { border-color: var(--v2-blue); background: var(--v2-raised); }
.v2-footer-inner a { border-color: var(--v2-nav-line); background: var(--v2-surface); }
.v2-footer-inner a:hover { border-color: var(--v2-blue); background: var(--v2-raised); }
.v2-footer small { color: var(--v2-muted); font-family: var(--v2-font-ui); font-size: .78rem; }
.v2-footer .v2-container:not(.v2-footer-inner) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.v2-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
[hidden] { display: none !important; }
.v2-section-heading { margin-bottom: 30px; }
.v2-section-heading .v2-eyebrow { margin-bottom: 11px; color: var(--v2-blue); }
.v2-section-heading h2 { margin-bottom: 10px; }
.v2-section-heading > p:last-child { margin: 0; color: var(--v2-muted); }
.v2-page-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px; padding-block: 34px 70px; }
.v2-page-links a { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 10px; padding: 10px 20px; border: 1px solid var(--v2-nav-line); border-radius: var(--v2-card-radius); background: var(--v2-surface); color: var(--v2-white) !important; font-family: var(--v2-font-ui); font-size: .9rem; font-weight: 700; text-align: center; text-decoration: none; }
.v2-page-links a:hover { border-color: var(--v2-blue); background: var(--v2-raised); }
.v2-page-links a:last-child:not(:first-child) { border-color: var(--v2-blue); background: var(--v2-blue); color: var(--v2-paper) !important; }
.v2-page-links a:last-child:not(:first-child):hover { background: var(--v2-blue-hover); }

/* About */
.about-profile { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; overflow: hidden; border: 1px solid var(--v2-line); border-radius: var(--v2-card-radius); background: var(--v2-line); }
.about-profile-item { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 14px; align-items: baseline; padding: 20px 24px; background: var(--v2-surface); }
.about-profile-item dt { color: var(--v2-muted); font-size: .84rem; }
.about-profile-item dd { margin: 0; font-weight: 700; }
.about-profile-item small { color: var(--v2-muted); font-size: .76rem; font-weight: 500; }
.about-history-section { background: var(--v2-surface); }
.about-timeline { margin: 0 0 36px; padding: 0; list-style: none; }
.about-timeline-item { position: relative; display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 28px; padding: 0 0 26px 26px; border-left: 2px solid var(--v2-nav-line); }
.about-timeline-item:last-child { padding-bottom: 0; }
.about-timeline-item::before { position: absolute; top: 6px; left: -7px; width: 12px; height: 12px; border: 3px solid var(--v2-blue); border-radius: 50%; background: var(--v2-surface); content: ""; }
.about-timeline-item time { color: var(--v2-ink); font: 700 .87rem var(--v2-font-latin); letter-spacing: .05em; }
.about-timeline-content { padding: 14px 20px; border-left: 3px solid var(--v2-blue); border-radius: 0 var(--v2-card-radius) var(--v2-card-radius) 0; background: var(--v2-raised); }
.about-timeline-content p { margin: 0; }
.about-purpose-section { background: var(--v2-surface); }
.about-purpose-copy { max-width: 820px !important; margin: 0; font: 500 clamp(1.22rem, 2.2vw, 1.75rem)/1.8 var(--v2-font-body); }
.about-career-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.about-career-item { padding: 25px; border-top: 2px solid var(--v2-nav-line); border-radius: var(--v2-card-radius); background: var(--v2-surface); }
.about-career-item h3 { margin: 0 0 18px; color: var(--v2-ink); font: 700 1.18rem var(--v2-font-display); }
.about-career-item p { margin: 0; font-size: .98rem; }

/* Skills */
.v2-skill-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin: 0; padding: 0; list-style: none; }
.v2-skill-card { display: flex; min-width: 0; flex-direction: column; padding: 23px; border: 1px solid var(--v2-line); border-top: 2px solid var(--v2-nav-line); border-radius: var(--v2-card-radius); background: var(--v2-surface); }
.v2-skill-card[data-status="learning"] { border-top-color: var(--v2-blue); }
.v2-skill-card[data-status="planned"] { border-top-color: var(--v2-muted); }
.v2-skill-top { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.v2-skill-icon { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 auto; border: 1px solid var(--v2-line); background: var(--v2-raised); color: var(--v2-ink); font: 700 .9rem var(--v2-font-latin); letter-spacing: -.03em; }
.v2-skill-icon img { filter: brightness(0) invert(1); opacity: .9; }
.v2-skill-status { padding: 3px 9px; border: 1px solid var(--v2-line); color: var(--v2-ink); font-size: .72rem; font-weight: 700; white-space: nowrap; }
[data-status="learning"] .v2-skill-status { border-color: var(--v2-blue); color: var(--v2-blue); }
[data-status="planned"] .v2-skill-status { border-color: var(--v2-line); color: var(--v2-muted); }
.v2-skill-card h3 { margin: 18px 0 8px; font: 700 1.16rem var(--v2-font-display); }
.v2-skill-card p { margin: 0 0 17px; color: var(--v2-muted); font-size: .94rem; }
.v2-skill-link { display: inline-block; align-self: start; margin-top: auto; border-bottom: 1px solid var(--v2-blue); color: var(--v2-blue) !important; font-family: var(--v2-font-ui); font-size: .78rem; font-weight: 700; text-decoration: none; }
.v2-skill-link:hover { border-bottom-width: 2px; }

/* Qualification */
.v2-qualification-list { margin: 0; padding: 0; border-top: 1px solid var(--v2-line); list-style: none; }
.v2-qualification-item { display: grid; grid-template-columns: minmax(120px, .22fr) minmax(0, 1fr); gap: 24px; align-items: baseline; padding: 24px; border-bottom: 1px solid var(--v2-line); background: var(--v2-surface); }
.v2-qualification-date { color: var(--v2-blue); font: 700 1rem var(--v2-font-latin); white-space: nowrap; }
.v2-qualification-name { margin: 0; font-size: 1.04rem; font-weight: 600; }

/* Achievements: tabs change visible content without a long-page jump. */
.achievement-tabs-shell { position: sticky; z-index: 900; top: var(--v2-header-height); border-bottom: 1px solid var(--v2-line); background: var(--v2-surface); box-shadow: 0 7px 20px rgba(0, 0, 0, .18); }
.achievement-tabs { display: flex; justify-content: center; gap: 3px; min-height: 66px; align-items: stretch; }
.achievement-tab { position: relative; min-width: 150px; padding: 10px 18px; border: 0; background: transparent; color: var(--v2-ink); font-family: var(--v2-font-ui); font-weight: 700; cursor: pointer; }
.achievement-tab:hover, .achievement-tab.is-active { color: var(--v2-ink); background: var(--v2-raised); }
.achievement-tab.is-active::after { position: absolute; right: 12px; bottom: 0; left: 12px; height: 3px; background: var(--v2-blue); content: ""; }
.achievement-tab-count { margin-left: 10px; color: var(--v2-muted); font: 600 .67rem var(--v2-font-latin); }
.achievement-tab.is-active .achievement-tab-count { color: var(--v2-ink); }
.achievement-panel { min-height: 410px; padding-top: 56px; }
.achievement-panel-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 25px; }
.achievement-panel-heading .v2-eyebrow { margin-bottom: 8px; color: var(--v2-blue); }
.achievement-panel-heading h2 { margin: 0; }
.achievement-panel-count { margin: 0; color: var(--v2-muted); font-size: .8rem; }
.achievement-panel-tools, .achievement-controls { display: flex; align-items: center; gap: 12px; }
.achievement-controls { gap: 8px; }
.achievement-slide-button { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--v2-nav-line); border-radius: 50%; background: var(--v2-surface); color: var(--v2-blue); font: 700 1.2rem var(--v2-font-latin); cursor: pointer; }
.achievement-slide-button:hover:not(:disabled) { border-color: var(--v2-blue); background: var(--v2-raised); }
.achievement-slide-button:disabled { opacity: .42; cursor: default; }
.achievement-slide-button[data-slide="next"] { border-color: var(--v2-blue); background: var(--v2-blue); color: var(--v2-paper); }
.achievement-slide-button[data-slide="next"]:hover:not(:disabled) { border-color: var(--v2-blue-hover); background: var(--v2-blue-hover); }
.achievement-controls[hidden], .achievement-scroll-hint[hidden] { display: none; }
.achievement-progress { min-width: 75px; color: var(--v2-ink); font: 700 .78rem var(--v2-font-latin); text-align: center; white-space: nowrap; }
.achievement-scroll-hint { display: flex; width: fit-content; align-items: center; gap: 9px; margin: -11px 0 14px auto; padding: 5px 12px; border-radius: 999px; background: var(--v2-surface); border: 1px solid var(--v2-line); color: var(--v2-ink); font: 700 .75rem var(--v2-font-ui); }
.achievement-scroll-hint span:last-child { font: 700 1rem var(--v2-font-latin); }
.achievement-grid { display: grid; grid-auto-flow: column; grid-auto-columns: calc(50% - 8.5px); gap: 17px; overflow-x: auto; overscroll-behavior-inline: contain; contain: paint; padding-bottom: 12px; scroll-snap-type: x mandatory; scrollbar-color: var(--v2-nav-line) transparent; scrollbar-width: thin; }
.achievement-grid.has-overflow-cards { grid-auto-columns: calc(50% - clamp(40px, 5vw, 60px)); }
.achievement-card { display: flex; min-width: 0; flex-direction: column; padding: clamp(22px, 3vw, 32px); border: 1px solid var(--v2-line); border-top: 2px solid var(--v2-nav-line); border-radius: var(--v2-card-radius); background: var(--v2-surface); scroll-snap-align: start; }
.achievement-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 18px; color: var(--v2-blue); font: 700 .78rem var(--v2-font-latin); }
.achievement-status { display: inline-flex; padding: 3px 9px; border: 1px solid var(--v2-line); background: var(--v2-raised); color: var(--v2-muted); font: 700 .72rem var(--v2-font-ui); }
.achievement-card h3 { margin: 0 0 10px; font: 600 clamp(1.3rem, 2vw, 1.65rem)/1.35 var(--v2-font-display); }
.achievement-card > p:not(.achievement-meta) { margin: 0 0 17px; color: var(--v2-muted); font-size: .96rem; }
.achievement-facts { display: grid; gap: 8px; margin: 0 0 20px; padding-top: 16px; border-top: 1px solid var(--v2-line); }
.achievement-facts div { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 12px; font-size: .76rem; }
.achievement-facts dt { color: var(--v2-muted); }
.achievement-facts dd { margin: 0; font-weight: 600; }
.achievement-actions { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: auto; }
.achievement-actions a { color: var(--v2-blue) !important; font-family: var(--v2-font-ui); font-size: .8rem; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }

/* Contact */
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.contact-card { display: flex; min-width: 0; align-items: start; gap: 18px; padding: 30px; border: 1px solid var(--v2-line); border-top: 2px solid var(--v2-nav-line); border-radius: var(--v2-card-radius); background: var(--v2-surface); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.contact-card:hover { transform: translateY(-3px); background: var(--v2-raised); box-shadow: 0 14px 30px rgba(0, 0, 0, .25); }
.contact-icon { display: grid; width: 56px; height: 56px; flex: 0 0 auto; place-items: center; background: var(--v2-raised); color: var(--v2-ink); }
.contact-icon svg { width: 27px; height: 27px; }
.contact-card-copy { display: grid; gap: 5px; min-width: 0; }
.contact-card-copy strong { font-family: var(--v2-font-display); font-size: 1.16rem; }
.contact-card-copy > span { overflow-wrap: anywhere; color: var(--v2-muted); font-size: .94rem; }
.contact-card-copy small { margin-top: 9px; color: var(--v2-blue); font-family: var(--v2-font-ui); font-size: .78rem; font-weight: 700; }

@media (max-width: 1040px) {
  .v2-header-inner { gap: 12px; }
  .v2-language-switcher { margin-left: auto; }
  .v2-menu-toggle { display: flex; }
  .v2-nav { position: fixed; z-index: 1010; top: var(--v2-header-height); right: 0; left: 0; display: grid; height: auto; max-height: calc(100vh - var(--v2-header-height)); overflow: auto; padding: 14px max(24px, calc((100vw - var(--v2-width)) / 2)); border-left: 0; background: var(--v2-surface); box-shadow: 0 18px 30px rgba(0,0,0,.3); visibility: hidden; opacity: 0; pointer-events: none; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease, visibility .2s ease; }
  .v2-nav .v2-nav-home { display: flex; }
  .v2-nav a { min-height: 63px; padding: 9px 12px; border-right: 0; border-bottom: 1px solid var(--v2-nav-line); color: var(--v2-ink) !important; }
  .v2-nav a span { color: var(--v2-muted); }
  .v2-nav a:hover, .v2-nav a[aria-current="page"] { background: var(--v2-raised); }
  .v2-nav a[aria-current="page"]::after { top: 10px; right: auto; bottom: 10px; left: 0; width: 3px; height: auto; }
  body.v2-menu-open .v2-nav { visibility: visible; opacity: 1; pointer-events: auto; transform: none; }
  body.v2-menu-open .v2-menu-backdrop { position: fixed; z-index: 990; inset: var(--v2-header-height) 0 0; display: block; background: rgba(0, 0, 0, .52); }
  body.v2-menu-open { overflow: hidden; }
}
@media (max-width: 760px) {
  :root { --v2-header-height: 68px; }
  .v2-container, .v2-header-inner { width: calc(100% - 36px); }
  .v2-hero { min-height: 620px; padding: 82px 0 74px; }
  .v2-hero::before { background-position: 58% center; }
  .v2-hero::after { background: linear-gradient(90deg, rgba(16,19,24,.89), rgba(16,19,24,.60)), linear-gradient(0deg, rgba(16,19,24,.58), transparent 62%); }
  .v2-hero h1 { font-size: clamp(2.1rem, 10vw, 3rem); }
  html[lang="en"] .v2-hero h1 { font-size: clamp(2rem, 8.5vw, 2.75rem); }
  .v2-profile-snapshot { grid-template-columns: 1fr; gap: 20px; }
  .v2-home-intro { display: block; padding-top: 50px; }
  .v2-home-intro p { margin-top: 16px; }
  .v2-preview { grid-template-columns: minmax(0, 1fr) 44px; gap: 18px; }
  .v2-preview h3 { grid-column: 1; grid-row: 1; }
  .v2-preview-content { grid-column: 1 / -1; grid-row: 2; }
  .v2-preview-arrow { grid-column: 2; grid-row: 1; }
  .about-profile, .about-career-list, .v2-skill-grid, .contact-grid { grid-template-columns: 1fr; }
  .achievement-grid, .achievement-grid.has-overflow-cards { grid-auto-columns: 82%; gap: 14px; }
  .achievement-panel-heading { align-items: stretch; flex-direction: column; gap: 14px; }
  .achievement-panel-tools { justify-content: space-between; }
  .achievement-tabs { min-height: 58px; }
  .achievement-tab { flex: 1; min-width: 0; padding-inline: 5px; font-size: .78rem; }
  .achievement-tab-count { margin-left: 3px; font-size: .55rem; }
}
@media (max-width: 600px) {
  .v2-profile-snapshot dl { grid-template-columns: auto minmax(0, 1fr); }
  .v2-page-links { flex-direction: column; }
  .v2-page-links a { width: 100%; }
}
@media (max-width: 440px) {
  .v2-header-inner { gap: 8px; }
  .v2-brand { flex-shrink: 1; min-width: 0; }
  .v2-brand-name { display: block; overflow: hidden; max-width: 100%; font-size: 1.65rem; text-overflow: ellipsis; }
  .v2-language-switcher { gap: 0; padding: 2px; }
  .v2-language-switcher button { min-width: 31px; min-height: 36px; padding: 3px; font-size: .68rem; }
  .v2-menu-toggle { width: 42px; height: 42px; }
}
@media (max-width: 390px) {
  .v2-hero-actions { display: grid; }
  html[lang="en"] .v2-page-hero h1 { font-size: clamp(2rem, 9vw, 2.4rem); }
  .v2-home-intro h2 { font-size: 1.6rem; line-height: 1.4; }
  .about-profile-item { grid-template-columns: 1fr; gap: 2px; }
  .about-timeline-item { grid-template-columns: 1fr; gap: 4px; }
  .v2-qualification-item { grid-template-columns: 1fr; gap: 5px; }
  .achievement-tab { white-space: nowrap; font-size: .74rem; }
  .achievement-tab-count { display: block; margin: 0; line-height: 1.1; }
  .contact-card { padding: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .v2-button, .v2-nav, .v2-text-link, .v2-preview, .v2-preview-arrow, .v2-menu-toggle-lines, .v2-menu-toggle-lines::before, .v2-menu-toggle-lines::after, .contact-card { transition: none !important; }
}
