:root{--paper: #fbfaf7;--ink: #1f1e19;--muted: #6e6a5e;--faint: #8a8579;--green: #2b5a3d;--green-dark: #1d4029;--rule: #e7e4d9;--rule-soft: #ece9df;--serif: "Newsreader", "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", Georgia, serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.95;letter-spacing:.02em;word-break:auto-phrase;line-break:strict;-webkit-font-smoothing:antialiased}.wrap{max-width:1200px;margin-left:auto;margin-right:auto;padding:0 140px}a{color:var(--green);text-decoration:none}a:hover{color:var(--green-dark);text-decoration:underline;text-underline-offset:3px}p{text-wrap:pretty}:focus-visible{outline:2px solid var(--green);outline-offset:3px}.mono{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--green);color:var(--paper);padding:10px 18px;font-size:13px;transition:top .15s}.skip:focus{top:16px;text-decoration:none;color:var(--paper)}nav .wrap{display:flex;align-items:baseline;justify-content:space-between;padding-top:34px}.brand{font-size:23px;font-weight:500;letter-spacing:-.01em;color:var(--ink)}.brand:hover{color:var(--ink);text-decoration:none}.nav-links{display:flex;gap:28px;align-items:baseline}.nav-links a{font-size:13px;letter-spacing:.08em}.nav-links a.mail{font-family:var(--mono);font-size:11px;letter-spacing:.14em;border-bottom:1px solid var(--green);padding-bottom:2px}.identity{padding-top:104px}h1{font-size:clamp(27px,4.1vw,46px);font-weight:400;line-height:1.45;letter-spacing:0;text-wrap:balance}h1 em{display:block;font-style:normal;font-weight:500;color:var(--green-dark)}.identity p{font-size:17px;color:var(--muted);max-width:620px;margin-top:28px}.identity .meta{display:flex;flex-wrap:wrap;gap:6px 28px;color:var(--faint);margin-top:30px}section{margin-top:96px}.sec-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:12px;gap:16px;flex-wrap:wrap}.sec-head h2{font-size:14px;font-weight:500;letter-spacing:.14em;color:var(--green)}.sec-head .aside{color:var(--faint);font-size:12.5px;letter-spacing:.06em}.rule{border-top:1px solid var(--rule)}.grid{display:flex;gap:56px;padding:44px 0 8px;align-items:flex-start}.lead{flex:0 0 340px;width:340px}.lead h3{font-size:26px;font-weight:500;line-height:1.55;letter-spacing:0;text-wrap:balance}.lead p{font-size:15.5px;color:var(--muted);margin-top:14px}.rows{flex:1 1 0;padding-top:4px}.cap{display:flex;gap:24px;padding:18px 0;align-items:baseline}.cap:first-child{padding-top:0}.cap+.cap{border-top:1px solid var(--rule-soft)}.cap b{font-size:16.5px;font-weight:500;flex:0 0 180px}.cap span{font-size:15px;line-height:1.85;color:var(--muted)}.person{max-width:640px;padding-top:28px}.person p+p{color:var(--muted);margin-top:12px}.apps{padding-top:36px}.app-row{display:flex;gap:18px;align-items:flex-start;padding:18px 0}.app-row+.app-row{border-top:1px solid var(--rule-soft)}.app-row img{width:44px;height:44px;border-radius:10px;flex:none;display:block;margin-top:4px}.app-row b{font-size:17.5px;font-weight:500;display:block;line-height:1.5}.app-row b a{color:var(--ink)}.app-row b a:hover{color:var(--green-dark)}.app-row span{font-size:15px;color:var(--muted);display:block;line-height:1.8}.app-row .links{font-size:13px;margin-top:2px}.contact{padding-top:28px;max-width:620px}.contact p+p{color:var(--muted);margin-top:12px}.btn{display:inline-block;margin-top:26px;background:var(--green);color:var(--paper);font-family:var(--mono);font-size:13px;letter-spacing:.06em;padding:14px 24px;border-radius:4px}.btn:hover{background:var(--green-dark);color:var(--paper);text-decoration:none}footer{margin-top:110px}footer .wrap{border-top:1px solid var(--rule);padding-top:24px;padding-bottom:36px;display:flex;justify-content:space-between;align-items:baseline;gap:10px 28px;flex-wrap:wrap;font-size:12.5px;color:var(--faint)}footer .links{display:flex;flex-wrap:wrap;gap:6px 22px}footer a{color:var(--faint)}footer a:hover{color:var(--green-dark)}@media(max-width:980px){.wrap{padding:0 32px}.grid{flex-direction:column;gap:32px}.lead{flex:1 1 auto;width:auto;max-width:480px}}@media(max-width:640px){.wrap{padding:0 20px}.nav-links{gap:20px}.identity{padding-top:64px}section{margin-top:72px}.cap{flex-direction:column;gap:2px}.cap b{flex:none}.btn{display:block;text-align:center}}
