@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;700&display=swap";:root{color:#111;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#f7f7f4;--paper:#fff;--text:#111;--muted:#6f6f68;--quiet:#a5a49b;--line:#deded6;--line-strong:#c9c8bf;--black:#050505;--white:#fff;--radius:14px;background:#f7f7f4;font-family:Inter,Noto Sans JP,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.75}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin-top:0}p{color:var(--muted)}.entry-screen{background:var(--bg);place-items:center;min-height:100svh;padding:24px;display:grid;position:relative}.entry-toolbar{position:absolute;top:18px;right:18px}.entry-card,.code-card{text-align:center;width:min(100%,480px)}.screen-label{color:var(--quiet);letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px;font-size:.76rem;font-weight:700}.entry-card h1,.code-card h1{color:var(--text);letter-spacing:-.07em;margin-bottom:34px;font-weight:600;line-height:1}.entry-name{color:var(--text);letter-spacing:.02em;margin-bottom:12px;font-size:.82rem;font-weight:600}.entry-card h1{font-size:clamp(1.8rem,7vw,3.6rem)}.code-card h1{font-size:clamp(1.35rem,5vw,2.4rem);line-height:1.15}.text-button,.solid-button{border-radius:999px;min-height:46px;padding:10px 22px;transition:background .16s,color .16s,border-color .16s}.text-button{color:var(--text);text-underline-offset:6px;background:0 0;border:1px solid #0000;text-decoration:underline}.text-button:hover,.text-button:focus-visible{border-color:var(--line);text-decoration:none}.solid-button{border:1px solid var(--black);color:var(--white);background:var(--black);justify-content:center;align-items:center;display:inline-flex}.solid-button:hover,.solid-button:focus-visible{color:var(--black);background:0 0}.code-card{border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:clamp(28px,6vw,48px)}.code-card label{color:var(--muted);text-align:left;margin-bottom:8px;font-size:.88rem;display:block}.code-card input{border:1px solid var(--line-strong);width:100%;min-height:52px;color:var(--text);background:var(--white);border-radius:10px;margin-bottom:14px;padding:12px 14px}.code-card input:focus{border-color:var(--black);outline:2px solid #05050514}.error-message{color:#9f1d1d;text-align:left;margin-bottom:16px;font-size:.92rem}.code-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.portfolio-shell{width:min(100%,1480px);margin:0 auto;padding:18px}.portfolio-header{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f7f7f4eb;justify-content:space-between;align-items:center;gap:24px;padding:18px 0;display:flex;position:sticky;top:0}.portfolio-header>a{letter-spacing:-.03em;font-weight:700}.portfolio-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px 22px;display:flex}.portfolio-header nav{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:10px 22px;font-size:.9rem;display:flex}.lang-switch{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:3px;display:inline-flex}.lang-switch button{min-height:32px;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:4px 12px;font-size:.82rem;font-weight:600}.lang-switch button.is-active{color:var(--white);background:var(--black)}.lang-switch button:hover:not(.is-active),.lang-switch button:focus-visible:not(.is-active){color:var(--text)}.portfolio-header a:hover,.portfolio-header a:focus-visible{color:var(--text);text-underline-offset:5px;text-decoration:underline}.portfolio-cover{align-content:start;padding:clamp(48px,10vw,120px) 0 clamp(16px,3vw,28px);display:grid}.portfolio-cover h1{max-width:980px;color:var(--text);letter-spacing:-.08em;margin-bottom:0;font-size:clamp(3rem,11vw,9rem);font-weight:600;line-height:.94}.timeline-section{padding-top:clamp(20px,3vw,36px)}.career-summary{max-width:760px;margin-bottom:clamp(48px,8vw,96px)}.career-summary .screen-label{margin-bottom:22px}.career-summary p:not(.screen-label){color:var(--text);margin-bottom:18px;font-size:clamp(1rem,1.6vw,1.12rem);line-height:1.85}.career-summary p:not(.screen-label):last-child{margin-bottom:0}.career-summary-link{border:0;border-bottom:1px solid color-mix(in srgb, var(--text) 35%, transparent);color:inherit;font:inherit;line-height:inherit;cursor:pointer;text-align:inherit;background:0 0;padding:0;display:inline}.career-summary-link:hover,.career-summary-link:focus-visible{border-bottom-color:var(--text)}.timeline-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:clamp(28px,4vw,40px);display:flex}.timeline-label{margin-bottom:0}.content-section{border-bottom:1px solid var(--line);padding:clamp(64px,10vw,120px) 0;scroll-margin-top:78px}.section-heading{grid-template-columns:minmax(0,.62fr) minmax(280px,.38fr);align-items:end;gap:clamp(24px,5vw,72px);margin-bottom:clamp(34px,6vw,72px);display:grid}.section-heading .screen-label{grid-column:1/-1;margin-bottom:-4px}.section-heading h2{color:var(--text);letter-spacing:-.07em;margin-bottom:0;font-size:clamp(2.2rem,6vw,6rem);font-weight:600;line-height:.98}.section-heading p:last-child{margin-bottom:0}.timeline-layout{grid-template-columns:minmax(320px,.92fr) minmax(360px,.68fr);align-items:start;gap:clamp(28px,5vw,72px);display:grid}.timeline-list{gap:38px;padding-left:18px;display:grid;position:relative}.timeline-list:before{background:var(--line-strong);content:"";width:1px;position:absolute;top:0;bottom:0;left:2px}.career-phase{gap:18px;display:grid;position:relative}.career-phase:before{border:1px solid var(--black);background:var(--bg);content:"";border-radius:999px;width:7px;height:7px;position:absolute;top:8px;left:-21px}.phase-heading{gap:3px;display:grid}.phase-heading span{color:var(--text);font-size:.9rem;font-weight:700}.phase-heading h3{color:var(--text);letter-spacing:-.04em;margin-bottom:0;font-size:clamp(1.25rem,2vw,1.8rem);line-height:1.2}.phase-heading p{margin-bottom:0;font-size:.92rem}.phase-projects{gap:8px;display:grid}.timeline-item--no-number{grid-template-columns:1fr auto}.timeline-item{border:1px solid var(--line);width:100%;color:var(--text);text-align:left;background:0 0;border-radius:10px;grid-template-columns:92px 1fr auto;align-items:baseline;gap:14px;padding:14px 16px;scroll-margin-top:96px;display:grid}.timeline-item:hover,.timeline-item:focus-visible,.timeline-item.is-active{border-color:var(--black);background:var(--paper)}.timeline-item span,.timeline-item small{color:var(--muted);font-size:.82rem}.timeline-item strong{font-size:.96rem;font-weight:600}.project-detail{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);max-height:calc(100svh - 110px);padding:clamp(24px,3vw,36px);position:sticky;top:86px;overflow:auto}.project-detail h3{color:var(--text);letter-spacing:-.06em;margin-bottom:28px;font-size:clamp(1.7rem,3vw,3rem);font-weight:600;line-height:1.05}.project-detail-image{margin:0 0 28px}.project-detail-image img{border:1px solid var(--line);background:var(--white);border-radius:10px;width:100%;display:block}.project-detail-carousel{gap:12px;display:grid}.project-detail-carousel-frame{border:1px solid var(--line);background:var(--white);border-radius:10px;overflow:hidden}.project-detail-carousel-frame img{border:0;border-radius:0}.project-detail-carousel-controls{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;display:grid}.project-detail-carousel-indicator{color:var(--muted);text-align:center;margin:0;font-size:.84rem}.carousel-button{border:1px solid var(--line-strong);min-width:42px;min-height:42px;color:var(--text);background:var(--paper);border-radius:999px}.carousel-button:hover,.carousel-button:focus-visible{border-color:var(--black)}.project-detail-carousel-dots{justify-content:center;gap:8px;display:flex}.project-detail-carousel-dots button{background:var(--line-strong);border:0;border-radius:999px;width:8px;height:8px;padding:0}.project-detail-carousel-dots button.is-active{background:var(--black)}.detail-meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:1px;margin:0 0 30px;display:grid}.detail-meta div{border-top:1px solid var(--line);grid-template-columns:116px 1fr;gap:18px;padding:13px 0;display:grid}.detail-meta div:first-child{border-top:0}.detail-meta dt{color:var(--quiet);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;font-weight:700}.detail-meta dd{color:var(--text);margin:0}.detail-block{margin-bottom:28px}.detail-block h4{color:var(--text);margin-bottom:8px;font-size:.95rem}.detail-block p{margin-bottom:0}.detail-block ul{color:var(--muted);gap:7px;margin:0;padding-left:1.1em;display:grid}.project-detail-modal{z-index:200;align-items:flex-end;display:flex;position:fixed;inset:0}.project-detail-modal-backdrop{background:#1212126b;border:0;position:absolute;inset:0}.project-detail-modal-panel{z-index:1;background:var(--bg);border-radius:18px 18px 0 0;grid-template-rows:auto minmax(0,1fr);width:100%;max-height:94svh;display:grid;position:relative;box-shadow:0 -18px 48px #1212122e}.project-detail-modal-header{z-index:1;border-bottom:1px solid var(--line);background:var(--bg);justify-content:flex-end;padding:12px 14px;display:flex;position:sticky;top:0}.project-detail-modal-close{min-height:36px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;padding:6px 10px;font-size:.9rem;font-weight:600}.project-detail-modal-close:hover,.project-detail-modal-close:focus-visible{text-decoration:underline}.project-detail--modal{background:0 0;border:0;border-radius:0;max-height:none;padding:0 18px 24px;position:static;overflow:auto}.capability-grid{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.capability-card{background:var(--bg);min-height:220px;padding:clamp(22px,3vw,32px)}.capability-card h3{color:var(--text);margin-bottom:16px;font-size:1.12rem}.capability-card p{margin-bottom:0}@media (width<=1100px){.section-heading,.timeline-layout{grid-template-columns:1fr}.capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.portfolio-shell{padding:14px}.portfolio-header{flex-direction:column;align-items:flex-start;gap:10px;position:static}.portfolio-header-actions{justify-content:space-between;width:100%}.portfolio-header nav{justify-content:flex-start}.timeline-list{padding-left:14px}.career-phase:before{left:-17px}.timeline-item{grid-template-columns:1fr;gap:4px}.timeline-item small{justify-self:start}.detail-meta div{grid-template-columns:1fr;gap:2px}.capability-grid{grid-template-columns:1fr}.capability-card{min-height:auto}.code-actions{flex-direction:column-reverse;align-items:stretch}.code-actions .solid-button,.code-actions .text-button{width:100%}}@media (width<=460px){.entry-screen{padding:16px}.portfolio-shell{padding:12px}.content-section{padding:56px 0}.project-detail{padding:20px}}
