:root{--bg:#f8fafc;--surface:#fff;--text:#0f172a;--text-soft:#334155;--muted:#475569;--line:#e2e8f0;--accent:#1d4ed8;--chip-bg:#e0ecff;--chip-text:#1e40af;--navy:#0f1f3d;--navy-text:#e2e8f0;--navy-accent:#93c5fd;--done:#0f766e;--done-soft:#dff4ef;--wip:#92400e;--wip-soft:#fef3c7;--shadow:0 4px 16px #0f1f3d0f;--shadow-hover:0 14px 36px #0f1f3d29}@media (prefers-color-scheme:dark){:root{--bg:#0b1220;--surface:#131c2e;--text:#e6ebf2;--text-soft:#c3cddb;--muted:#9aa7b8;--line:#25324a;--accent:#8fb0ff;--chip-bg:#1b2742;--chip-text:#a9c1ff;--navy:#0a1630;--done:#5fd6c3;--done-soft:#12332f;--wip:#f0b25c;--wip-soft:#3a2a12;--shadow:0 4px 16px #00000059;--shadow-hover:0 14px 36px #00000080}}*{box-sizing:border-box}body{color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;margin:0;font-family:system-ui,-apple-system,Noto Sans JP,Hiragino Sans,Yu Gothic UI,Meiryo,sans-serif;line-height:1.9}p{margin:0 0 1rem}a{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}img{max-width:100%}.muted{color:var(--muted);font-size:.9rem}.hero{background:var(--navy);color:#fff;padding:clamp(56px,9vw,96px) 24px clamp(48px,8vw,88px)}.hero-inner{flex-wrap:wrap;align-items:center;gap:48px 64px;max-width:1120px;margin:0 auto;display:flex}.hero-text{flex:460px;min-width:0}.hero-media{flex:0 400px;min-width:0}.hero-center .hero-inner{text-align:center;justify-content:center}.hero-center .hero-text{flex:0 760px}.hero-center .hero-lead{margin-left:auto;margin-right:auto}.hero-center .btn-row{justify-content:center}.hero-media img{border-radius:20px;width:100%;max-width:400px;height:auto;margin:0 auto;display:block}.eyebrow{letter-spacing:.14em;color:var(--navy-accent);margin:0;font-size:.8rem;font-weight:500}.hero h1{letter-spacing:.04em;margin:.9rem 0 1.25rem;font-size:clamp(2.2rem,7vw,3.75rem);font-weight:700;line-height:1.2}.hero-lead{max-width:560px;color:var(--navy-text);margin:0 0 2.25rem;font-size:clamp(1.05rem,2.5vw,1.25rem);line-height:1.85}.hero .muted,.hero a.back{color:var(--navy-text)}.hero a.back{margin-bottom:1.25rem;font-size:.95rem;text-decoration:none;display:inline-block}.hero a.back:hover{text-decoration:underline}.btn-row{flex-wrap:wrap;gap:.75rem;display:flex}.btn-row.center{justify-content:center}.btn-solid,.btn-ghost{border-radius:999px;min-height:44px;padding:.55rem 1.6rem;font-size:.95rem;font-weight:700;line-height:1.6;text-decoration:none;display:inline-block}.btn-solid{color:#0f1f3d;background:#fff}.btn-solid:hover{background:#dbeafe}.btn-ghost{border:1px solid var(--navy-accent);color:#fff}.btn-ghost:hover{background:#ffffff1f}.container{max-width:1120px;margin:0 auto;padding:clamp(56px,8vw,88px) 24px clamp(64px,8vw,96px)}.container.narrow{max-width:860px}.section{flex-wrap:wrap;gap:16px 56px;margin-top:clamp(56px,8vw,80px);display:flex}.section:first-child{margin-top:0}.section-head{flex:0 0 220px;align-items:baseline;gap:12px;display:flex}.section-head .num{color:var(--accent);letter-spacing:.08em;font-size:.9rem;font-weight:700}.section-head h2{margin:0;font-size:1.4rem;font-weight:700}.section-body{flex:460px;min-width:0;max-width:760px}.section-body.wide{max-width:none}.tags{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.tags li{background:var(--chip-bg);color:var(--chip-text);border-radius:999px;margin:0;padding:0 .8rem;font-size:.8rem;line-height:1.8}.hero .tags li{color:var(--navy-text);background:#ffffff1f}.badge{vertical-align:middle;border-radius:999px;padding:0 .75rem;font-size:.75rem;font-weight:700;line-height:1.7;display:inline-block}.badge-done{background:var(--done-soft);color:var(--done)}.badge-wip{background:var(--wip-soft);color:var(--wip)}.card{background:var(--surface);border:1px solid var(--line);color:inherit;box-shadow:var(--shadow);border-radius:16px;flex-wrap:wrap;align-items:center;gap:24px 32px;margin:0 0 1rem;padding:clamp(20px,4vw,32px);text-decoration:none;transition:box-shadow .15s,transform .15s;display:flex}.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.card-text{flex:300px;min-width:0}.card-media{flex:0 300px;min-width:0}.card-media img{border-radius:12px;width:100%;height:auto;display:block}.card-title{margin-right:.6rem;font-size:1.5rem;font-weight:700;line-height:1.5}.card p{color:var(--text-soft);margin:.75rem 0 0}.card .more{color:var(--accent);margin-top:1.25rem;font-size:.9rem;font-weight:700}.timeline{border-left:2px solid var(--line);margin:0 0 0 6px;padding:0 0 0 28px;list-style:none}.timeline>li{margin-bottom:2.5rem;position:relative}.timeline>li:last-child{margin-bottom:0}.timeline>li:before{content:"";background:var(--accent);width:14px;height:14px;box-shadow:0 0 0 4px var(--bg);border-radius:50%;position:absolute;top:.65rem;left:-37px}.timeline .role{margin:.1rem 0 .5rem;font-size:1.1rem;font-weight:700;line-height:1.6}.timeline .period{color:var(--muted);margin:0;font-size:.85rem}.timeline p{color:var(--text-soft);margin-bottom:.75rem;font-size:.95rem}.callout{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:0 0 2.5rem;padding:1.25rem 1.5rem}.callout h2{margin:0 0 .75rem;font-size:1.05rem}.callout p:last-child{margin-bottom:0}.work-image{border-radius:16px;margin:0 0 2.5rem;display:block}.prose h2{align-items:center;gap:.6rem;margin:3rem 0 1rem;font-size:1.3rem;display:flex}.prose h2:before{content:"";background:var(--accent);border-radius:2px;width:.3rem;height:1.1em}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin-bottom:.3rem}.contact-band{background:var(--navy);color:#fff;text-align:center;padding:clamp(48px,7vw,64px) 24px}.contact-inner{max-width:1120px;margin:0 auto}.contact-band h2{margin:0 0 .5rem;font-size:1.5rem}.contact-band p{color:var(--navy-text)}.contact-band .btn-row{margin-top:1.25rem}.contact-address{margin:1.25rem 0 0;font-size:.9rem}
