:root{--paper: #f0f1ec;--paper-raised: #e6e8e1;--ink: #18211d;--muted: #59635c;--line: #ccd1c7;--accent: #2c5b4a;--accent-soft: #b9cabe;--font: "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.75;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;overflow-wrap:break-word}a{color:inherit}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip{position:absolute;left:16px;top:-60px;padding:8px 14px;background:var(--ink);color:var(--paper);text-decoration:none;z-index:10}.skip:focus{top:16px}.shell{width:min(100% - 40px,1120px);margin-inline:auto}.site-header{padding-block:22px}.header-inner{display:flex;align-items:baseline;justify-content:space-between;gap:24px}.brand{font-size:1.0625rem;font-weight:600;letter-spacing:.01em;text-decoration:none}.site-header nav{display:flex;gap:22px;font-size:.9375rem}.site-header nav a{color:var(--muted);text-decoration:none}.site-header nav a:hover{color:var(--ink)}.hero{padding-block:32px 84px}.hero-grid{display:grid;gap:44px}.hero-copy{max-width:36rem}h1{margin:0;font-size:clamp(2.5rem,9.4vw,4.75rem);font-weight:600;line-height:1.14;letter-spacing:-.035em}.lede{margin:26px 0 0;max-width:30rem;color:var(--muted);font-size:1.0625rem;line-height:1.85}.hero-links{display:flex;flex-wrap:wrap;gap:12px 28px;margin:34px 0 0}.text-link{display:inline-block;color:var(--accent);font-weight:600;text-underline-offset:.32em;text-decoration-thickness:1px}.text-link:after{content:" ↗";font-weight:400}.text-link.internal:after{content:""}.text-link.quiet{color:var(--ink)}.board{position:relative;min-height:300px;border:1px solid var(--line);border-radius:3px;background:linear-gradient(var(--line) 1px,transparent 1px) 0 0 / 100% 25%,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0 / 25% 100%,var(--paper-raised);overflow:hidden}.board:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(240,241,236,.7),transparent 42%);pointer-events:none}.hold{position:absolute;display:block;border-radius:48% 52% 55% 45%/55% 45%;background:var(--ink);box-shadow:inset -3px -4px #f0f1ec2e}.hold.h1{left:15%;top:18%;width:34px;height:26px;rotate:-18deg}.hold.h2{left:38%;top:12%;width:20px;height:18px;background:var(--accent);rotate:24deg}.hold.h3{left:68%;top:22%;width:26px;height:22px;rotate:8deg}.hold.h4{left:30%;top:41%;width:30px;height:24px;rotate:40deg}.hold.h5{left:55%;top:45%;width:18px;height:16px;background:var(--accent);rotate:-30deg}.hold.h6{left:79%;top:50%;width:36px;height:27px;rotate:14deg}.hold.h7{left:21%;top:66%;width:22px;height:20px;rotate:-8deg}.hold.h8{left:49%;top:72%;width:32px;height:25px;rotate:32deg}.hold.h9{left:72%;top:82%;width:20px;height:18px;background:var(--accent);rotate:-22deg}.route-line{position:absolute;left:24%;top:22%;width:48%;height:58%;border-right:1px dashed var(--accent);border-bottom:1px dashed var(--accent);rotate:7deg;opacity:.75}.board-note{position:absolute;left:14px;bottom:12px;color:var(--muted);font-size:.75rem;letter-spacing:.02em}.projects{border-top:1px solid var(--line);padding-block:72px}.section-head{display:grid;gap:14px;margin-bottom:44px}.section-head h2{margin:0;font-size:1.75rem;font-weight:600;letter-spacing:-.02em}.section-head p{margin:0;max-width:34rem;color:var(--muted)}.project{display:grid;gap:16px;padding-block:40px;border-top:1px solid var(--line)}.project:last-child{border-bottom:1px solid var(--line)}.project-heading h3{margin:0;font-size:1.375rem;font-weight:600;letter-spacing:-.015em}.project-field{margin:6px 0 0;color:var(--muted);font-size:.875rem}.project-body p{margin:0 0 14px;max-width:40rem}.project-note{color:var(--muted);font-size:.9375rem}.project-body .text-link{margin-top:6px}.about{padding-block:72px 96px}.about-body{display:grid;gap:18px;max-width:40rem}.about-body p{margin:0;line-height:1.9}.operator{padding-top:18px;border-top:1px solid var(--line);color:var(--muted)}.inline-link{text-underline-offset:.28em}.site-footer{padding-block:30px 40px;border-top:1px solid var(--line);font-size:.875rem;color:var(--muted)}.footer-grid{display:grid;gap:20px}.footer-brand{margin:0;color:var(--ink);font-weight:600}.footer-small,.footer-meta p{margin:4px 0 0}@media(min-width:780px){.hero{padding-block:64px 128px}.hero-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;gap:64px}.board{min-height:420px}.section-head{grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:40px;align-items:baseline}.project{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:40px}.footer-grid{grid-template-columns:minmax(0,1fr) auto;align-items:end}.footer-meta{text-align:right}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
