@charset "UTF-8";
:root{--bg:#f8f9f6;--surface:#fff;--soft:#edf3ee;--text:#192b27;--muted:#586762;--accent:#176b53;--on-accent:#fff;--border:#dce5dd;--radius:18px;--shadow:0 12px 32px #162d2110;color-scheme:light}
:root[data-theme=dark]{--bg:#111b18;--surface:#192722;--soft:#21362e;--text:#e5efe8;--muted:#afc0b6;--accent:#8ce0bc;--on-accent:#10271c;--border:#354b3e;--shadow:0 12px 32px #0002;color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111b18;--surface:#192722;--soft:#21362e;--text:#e5efe8;--muted:#afc0b6;--accent:#8ce0bc;--on-accent:#10271c;--border:#354b3e;--shadow:0 12px 32px #0002;color-scheme:dark}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.75 var(--gh-font-body,system-ui),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-underline-offset:5px;text-decoration-thickness:1px}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}img{max-width:100%;height:auto;display:block}svg{display:block}h1,h2,h3,h4{font-family:var(--gh-font-heading,system-ui),sans-serif;line-height:1.2;letter-spacing:-.035em;font-weight:720;color:var(--text);overflow-wrap:anywhere}h1{font-size:clamp(2.2rem,4.8vw,3.7rem)}h2{font-size:clamp(1.65rem,3.1vw,2.35rem)}h3{font-size:1.22rem}p{margin:0 0 1.15em}a,button,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--accent);outline-offset:5px;border-radius:4px}[hidden]{display:none!important}main:focus{outline:none}.site-header,.site-main,.site-footer{max-width:1240px;margin:auto;padding-left:32px;padding-right:32px}
.site-header{min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid var(--border);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:12px;font-size:1.05rem;font-weight:750;color:var(--text);text-decoration:none;line-height:1.35;flex-shrink:0}.brand:hover{text-decoration:none}.brand-mark{font-size:1.05rem;letter-spacing:-.08em;display:grid;place-content:center;position:relative;width:42px;height:42px;background:var(--accent);color:var(--on-accent);border-radius:12px}.brand-dot{position:absolute;right:7px;bottom:5px}.brand small{display:block;font-size:.64rem;font-weight:500;letter-spacing:0;color:var(--muted);margin-top:5px}.nav{display:flex;align-items:center;list-style:none;gap:22px;margin:0;padding:0}.nav a{color:var(--muted);font-size:.79rem;font-weight:600;text-decoration:none;white-space:nowrap}.nav a:hover,.nav-current a{color:var(--accent)}.nav-current a{position:relative}.nav-current a:after{content:"";height:3px;width:13px;background:var(--accent);border-radius:2px;position:absolute;bottom:-9px;left:0}.header-tools{display:flex;align-items:center;gap:4px}.icon-button{width:34px;height:36px;display:grid;place-items:center;flex-shrink:0;border:0;background:transparent;color:var(--text);border-radius:8px;padding:7px}.icon-button:hover{background:var(--soft)}.icon-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.menu-toggle{display:none}.skip-link{position:absolute;top:-120px;left:20px;z-index:100;padding:10px 18px;background:var(--surface);border:2px solid var(--accent);border-radius:8px}.skip-link:focus{top:10px}
.hero{display:grid;grid-template-columns:1.45fr 1fr;gap:65px;align-items:center;padding:76px 0 82px}.hero h1{font-size:clamp(3rem,5.8vw,5.3rem);line-height:1.08;letter-spacing:-.065em;margin:19px 0 26px}.eyebrow{font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;font-weight:750;color:var(--accent);margin:0 0 12px}.status-dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:10px}.hero-description{font-size:1.12rem;line-height:1.8;max-width:620px;color:var(--muted)}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:12px 20px;background:var(--accent);border:1px solid var(--accent);color:var(--on-accent);text-decoration:none;border-radius:9px;font-weight:650;font-size:.86rem;line-height:1.6;min-height:45px}.button:hover{text-decoration:none;filter:brightness(.95)}.button.secondary{color:var(--accent);background:transparent;border-color:var(--border)}.button.secondary:hover{background:var(--soft)}.hero-footnote{color:var(--muted);font-size:.78rem;margin:24px 0 0}.hero-footnote span{margin:0 10px;color:var(--accent)}.hero-art{background:linear-gradient(135deg,#e5efe5,#dce9dc 70%,#cfe3d2);border:1px solid #cbdccb;border-radius:26px;aspect-ratio:1.08;position:relative;overflow:hidden;padding:29px;color:#214636}.art-label{font-size:.58rem;letter-spacing:.16em;position:relative;z-index:1;font-weight:700}.art-monogram{font-size:clamp(5.5rem,10vw,9.1rem);font-weight:800;line-height:1;letter-spacing:-.09em;position:absolute;left:40px;top:50%;transform:translateY(-50%);z-index:1}.art-monogram span{color:#377654}.art-bottom{position:absolute;bottom:28px;left:29px;right:29px;display:flex;justify-content:space-between;align-items:center;font-size:.73rem;font-weight:600}.art-bottom span:last-child{font:600 1.35rem ui-monospace,monospace}.art-orbit{position:absolute;border:1px solid #aac3ac80;width:420px;height:420px;border-radius:50%;right:-150px;top:-45px}.orbit-two{width:280px;height:280px;right:-80px;top:25px}.hero-portrait{margin:0}.hero-portrait img{width:100%;height:auto;aspect-ratio:1.08;object-fit:cover;border-radius:26px}
.home-section{padding:54px 0 60px;border-top:1px solid var(--border)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.section-heading h2{margin:0 0 12px}.section-heading p:not(.eyebrow){font-size:.92rem;margin:0;color:var(--muted)}.text-link{display:inline-flex;gap:10px;align-items:center;font-size:.81rem;font-weight:650;text-decoration:none}.section-heading>.text-link{white-space:nowrap;flex-shrink:0}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}.project-card,.post-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.project-card:hover,.post-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.project-card{padding:27px;display:flex;flex-direction:column}.project-number{font:500 .75rem ui-monospace,monospace;color:var(--accent);margin-bottom:23px}.project-card h3{margin:0 0 15px}.project-card h3 a,.post-card h2 a,.post-card h3 a{color:var(--text);text-decoration:none}.project-card h3 a:hover,.post-card h2 a:hover,.post-card h3 a:hover{text-decoration:underline}.project-card p{color:var(--muted);font-size:.9rem;line-height:1.7;flex:1;margin-bottom:25px}.post-card{display:flex;flex-direction:column}.card-image img{width:100%;aspect-ratio:16/9;object-fit:cover}.card-body{padding:26px;display:flex;flex-direction:column;flex:1}.card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px}.badge{display:inline-block;background:var(--soft);color:var(--accent);font-size:.64rem;font-weight:700;line-height:1.5;padding:4px 8px;border-radius:5px;vertical-align:middle}.badge-auto{border:1px solid var(--border)}.category-label{font-size:.67rem;text-decoration:none;color:var(--muted);font-weight:600}.post-date{font-size:.74rem;color:var(--muted);margin:0 0 11px}.post-card h2,.post-card h3{font-size:1.15rem;line-height:1.4;margin:0 0 14px;letter-spacing:-.025em}.card-excerpt{font-size:.88rem;color:var(--muted);line-height:1.75;flex:1;margin-bottom:22px}.summary-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.summary-stream{padding:28px;background:var(--soft);border-radius:var(--radius);border:1px solid var(--border)}.stream-heading{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--border);padding-bottom:21px;margin-bottom:22px}.stream-heading h3{font-size:1.07rem;margin:0 0 3px}.stream-heading p{font-size:.78rem;color:var(--muted);margin:0}.category-icon{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:11px;font-size:1.2rem;font-weight:800}.hn-icon{background:#a94613;color:white}.rg-icon{background:#225a51;color:white;font-size:.9rem}.summary-preview h4{font-size:1.04rem;line-height:1.5;margin:12px 0}.summary-preview h4 a{color:var(--text);text-decoration:none}.summary-preview h4 a:hover{text-decoration:underline}.summary-preview>p:not(.post-date){font-size:.86rem;color:var(--muted)}.summary-preview .badge{margin-left:8px}.about-strip{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:49px 0 20px;border-top:1px solid var(--border)}.about-strip h2{font-size:1.8rem;margin:0 0 17px}.about-strip p:not(.eyebrow){font-size:.88rem;color:var(--muted)}.about-strip>.button{flex-shrink:0}
.archive-header{padding:61px 0 34px;max-width:920px}.archive-header h1{margin:9px 0 19px}.archive-header>p:not(.eyebrow){color:var(--muted);max-width:780px}.archive-links{display:flex;gap:24px;flex-wrap:wrap;margin:22px 0 0;font-size:.83rem}.category-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 22px}.category-tabs a{border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font-size:.84rem;padding:9px 17px;text-decoration:none}.category-tabs a.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.archive-header>.archive-note{font-size:.8rem;line-height:1.8;color:var(--muted)}.pagination{display:flex;justify-content:center;align-items:center;gap:22px;padding:42px 0 8px;font-size:.8rem}.pagination .button{padding:8px 16px;min-height:40px}.pagination span{color:var(--muted)}
.article{max-width:900px;margin:0 auto;padding:62px 0 25px}.article-header{max-width:780px;margin:0 auto 34px}.article-header h1{margin:21px 0 25px;line-height:1.16}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;font-size:.77rem;color:var(--muted)}.article-excerpt{font-size:1.1rem;color:var(--muted)}.automation-note{font-size:.8rem;border-left:3px solid var(--accent);background:var(--soft);padding:12px 16px;color:var(--muted);border-radius:0 8px 8px 0}.feature-image{margin:0 0 35px}.feature-image img{width:100%;border-radius:var(--radius);height:auto;max-height:600px;object-fit:contain}.feature-image figcaption{font-size:.82rem;text-align:center;color:var(--muted);margin-top:12px}.gh-content{max-width:760px;margin:0 auto;overflow-wrap:anywhere;font-size:1.02rem;line-height:1.9}.gh-content h2{font-size:1.8rem;margin:1.9em 0 .8em;scroll-margin-top:28px}.gh-content h3{font-size:1.32rem;margin:1.7em 0 .8em;scroll-margin-top:28px}.gh-content h4{font-size:1.1rem}.gh-content ul,.gh-content ol{padding-left:1.5em}.gh-content li{margin-bottom:.45em}.gh-content img{border-radius:10px;margin:22px auto}.gh-content figure{margin:30px 0}.gh-content figcaption{text-align:center;font-size:.8rem;color:var(--muted)}.gh-content pre{overflow-x:auto;border-radius:12px;background:#172822;color:#e3f0e9;padding:22px;line-height:1.7;font-size:.85rem;max-width:100%}.gh-content code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.gh-content :not(pre)>code{background:var(--soft);padding:2px 6px;border-radius:4px;font-size:.87em;box-decoration-break:clone}.gh-content blockquote{border-left:3px solid var(--accent);margin:28px 0;padding:10px 24px;background:var(--soft);border-radius:0 10px 10px 0;color:var(--muted)}.gh-content blockquote p:last-child{margin:0}.gh-content table{border-collapse:collapse;width:100%;display:block;overflow-x:auto;max-width:100%;font-size:.9rem}.gh-content th,.gh-content td{border:1px solid var(--border);padding:10px 13px}.gh-content th{background:var(--soft)}.gh-content hr{border:0;border-top:1px solid var(--border);margin:34px 0}.gh-content .kg-width-wide{width:100%;max-width:100%}.gh-content .kg-width-full{width:100%;max-width:100%}.gh-content iframe{max-width:100%}.kg-gallery-container{display:flex;flex-direction:column;gap:10px}.kg-gallery-row{display:flex;gap:10px}.kg-gallery-image{flex:1;min-width:0}.kg-gallery-image img{width:100%;height:100%;object-fit:cover}.kg-bookmark-container{display:flex;gap:20px;padding:20px;border:1px solid var(--border);border-radius:10px;text-decoration:none}.kg-bookmark-content{flex:1;min-width:0}.kg-bookmark-title{font-weight:700;color:var(--text)}.kg-bookmark-description{font-size:.82rem;color:var(--muted)}.kg-bookmark-thumbnail{width:30%;flex-shrink:0}.kg-bookmark-icon{width:20px;display:inline}.article-toc{max-width:760px;margin:0 auto 34px;border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:15px 21px;font-size:.86rem}.article-toc summary{cursor:pointer;font-weight:650;color:var(--accent)}.article-toc ol{list-style:none;padding-left:0;margin:16px 0 3px}.article-toc li{margin:7px 0}.article-toc .toc-subheading{padding-left:16px;font-size:.82rem}.article-toc a{text-decoration:none}.article-toc a:hover{text-decoration:underline}.article-footer{max-width:760px;margin:45px auto 0;border-top:1px solid var(--border);padding-top:24px;font-size:.84rem}.article-footer p{color:var(--muted);margin-top:18px}.article-tags{display:flex;gap:8px;flex-wrap:wrap}.article-tags a{font-size:.72rem;background:var(--soft);padding:4px 10px;border-radius:6px;text-decoration:none}
.gh-content .profile-links{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.gh-content .profile-links a{display:inline-block;background:var(--soft);padding:8px 16px;border:1px solid var(--border);border-radius:8px;text-decoration:none;font-size:.87rem}.gh-content .portfolio-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.gh-content .portfolio-project{border:1px solid var(--border);background:var(--surface);padding:24px;border-radius:14px;scroll-margin-top:25px}.gh-content .portfolio-project h2{font-size:1.35rem;margin:0 0 14px}.gh-content .portfolio-project p{font-size:.9rem;line-height:1.85}.gh-content .portfolio-project p:last-child{margin:0}.gh-content .project-period{font-size:.72rem;line-height:1.5;color:var(--muted);margin-bottom:14px}.gh-content .timeline-item{border-left:2px solid var(--border);padding:0 0 27px 23px;margin-top:25px}.gh-content .timeline-item h2{font-size:1.3rem;margin:0 0 8px}.gh-content .timeline-item p{font-size:.92rem}.gh-content .contact-panel{padding:25px;border:1px solid var(--border);border-radius:14px;background:var(--surface);margin:25px 0}.gh-content .contact-panel h2{margin:0 0 15px;font-size:1.3rem}.gh-content .legal-updated{font-size:.8rem;color:var(--muted)}
.site-footer{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:32px;border-top:1px solid var(--border);margin-top:70px;padding-top:35px;padding-bottom:36px;font-size:.8rem}.footer-brand{color:var(--text);font-weight:750;text-decoration:none;font-size:1rem}.footer-intro p{color:var(--muted);font-size:.8rem;margin:8px 0}.footer-intro small{font-size:.7rem;color:var(--muted)}.site-footer .nav{flex-direction:column;align-items:start;gap:9px}.site-footer .nav a{font-weight:500;font-size:.78rem}.site-footer .nav-current a:after{display:none}.footer-feeds{display:flex;flex-direction:column;align-items:start;gap:7px}.footer-feeds span{color:var(--muted);font-size:.72rem;margin-bottom:3px}.footer-feeds a{font-size:.78rem;text-decoration:none}.error-page{padding:80px 0;max-width:720px}.error-page h1{margin:15px 0 22px}.error-page>p:not(.eyebrow){color:var(--muted)}
@media(max-width:1079px){.site-header{min-height:93px;flex-wrap:wrap;padding-top:22px;padding-bottom:22px;gap:20px}.header-tools{margin-left:auto}.site-nav{order:3;flex-basis:100%;padding-top:18px;border-top:1px solid var(--border)}.nav{gap:12px 22px;flex-wrap:wrap}.menu-toggle{display:grid}.js .site-nav:not(.is-open){display:none}.hero{gap:36px;padding:62px 0}.hero h1{font-size:clamp(2.8rem,6vw,4.6rem)}.hero-description{font-size:1rem}.art-monogram{left:26px}.art-label{font-size:.52rem}.card-grid{gap:18px}.project-card,.card-body{padding:22px}.project-card h3{font-size:1.14rem}.summary-stream{padding:24px}}
@media(max-width:767px){.site-header,.site-main,.site-footer{padding-left:22px;padding-right:22px}.hero{grid-template-columns:1fr;padding:48px 0;gap:34px}.hero h1{font-size:clamp(2.9rem,9vw,4.5rem)}.hero-copy{max-width:620px}.hero-description{font-size:1.06rem}.hero-art{aspect-ratio:1.6;max-width:620px;padding:24px}.art-monogram{font-size:6rem;left:30px}.art-bottom{bottom:22px}.hero-portrait{max-width:500px}.hero-portrait img{aspect-ratio:1.4;object-position:center 30%}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid .project-card:last-child{grid-column:1/-1}.section-heading{align-items:start;flex-direction:column;gap:15px}.home-section{padding:38px 0 42px}.summary-columns{grid-template-columns:1fr}.about-strip{align-items:start;flex-direction:column;gap:10px;padding-top:36px}.about-strip h2{font-size:1.55rem}.site-footer{grid-template-columns:1.5fr 1fr;gap:25px;margin-top:49px}.footer-intro{grid-column:1/-1}.archive-header{padding-top:42px}.article{padding-top:42px}.gh-content{font-size:1rem}.gh-content h2{font-size:1.55rem}.article-header h1{font-size:2.25rem}.gh-content .portfolio-grid{grid-template-columns:1fr}}
@media(max-width:500px){.brand{font-size:.91rem;gap:9px}.brand-mark{width:35px;height:35px;border-radius:10px;font-size:.9rem}.brand small{font-size:.55rem}.header-tools{gap:1px}.icon-button{width:31px;height:34px;padding:6px}.site-header{gap:8px}.card-grid{grid-template-columns:1fr}.project-grid .project-card:last-child{grid-column:auto}.hero h1{font-size:3rem}.hero .eyebrow{font-size:.64rem;letter-spacing:.08em}.hero-art{aspect-ratio:1.45}.art-monogram{font-size:5.6rem}.hero-footnote span{margin:0 6px}.hero-footnote{font-size:.71rem}.button{font-size:.8rem;padding:11px 17px;gap:10px}.article-header h1{font-size:2rem}.article-meta{gap:10px;font-size:.72rem}.gh-content pre{padding:16px;font-size:.8rem}.pagination{gap:12px}.pagination .button{font-size:.73rem;padding:7px 12px}.site-footer{gap:18px}.archive-links{gap:12px}.category-tabs{gap:7px}.category-tabs a{font-size:.77rem;padding:8px 13px}.summary-stream{padding:23px}.article-toc{padding:13px 17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.post-card,.project-card{transition:none}.post-card:hover,.project-card:hover{transform:none}}
