/* Approved November refresh. Layout rules are scoped to the portfolio sections. */
:root{--geek-bg:#0c0f0d;--geek-fg:#edf1e8;--geek-muted:#a6afa5;--geek-line:#344136;--geek-accent:#c5f487}
.refresh-home,.refresh-contact{width:calc(100% - 80px);max-width:1200px;margin-inline:auto;color:var(--geek-fg)}
.refresh-home h2,.refresh-contact h2{font-weight:550;letter-spacing:-1.5px;line-height:1.35}
.refresh-home svg,.refresh-contact svg{width:20px;height:20px}
.refresh-home .text-link,.refresh-contact .text-link{font-size:16px;color:var(--geek-accent);gap:12px;min-height:44px;line-height:1.7}
.refresh-home .text-link:hover,.refresh-contact .text-link:hover{text-decoration:underline;text-underline-offset:6px}
.refresh-home .button,.refresh-contact .button{min-height:52px;border-radius:2px;padding:13px 23px;border-color:#657360;background:transparent;color:var(--geek-fg);font-size:16px;line-height:1.5}
.refresh-home .button:hover,.refresh-contact .button:hover{background:#1a251b;border-color:var(--geek-accent)}
.refresh-home .primary-link,.refresh-contact .primary-link{background:var(--geek-accent);border-color:var(--geek-accent);color:#16200f}
.refresh-home .primary-link:hover,.refresh-contact .primary-link:hover{background:#d6ffa3;color:#16200f}
.section-code{font:12px/1.8 var(--geek-mono);letter-spacing:1px;color:var(--geek-muted);margin-bottom:22px}
.refresh-hero{padding-top:75px}
.refresh-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:96px;align-items:start}
.refresh-identity h1{font-size:76px;font-weight:600;line-height:1.1;letter-spacing:-4px;margin-left:-3px}
.refresh-english{font:13px/1.8 var(--geek-mono);letter-spacing:4px;color:#c3ccc0;margin-top:16px}
.refresh-identity h2{font-size:36px;margin-top:34px;letter-spacing:-1px;line-height:1.5}
.refresh-hero-description{margin-top:25px;max-width:650px}
.refresh-hero-description p{font-size:17px;line-height:1.95;color:var(--geek-muted)}
.refresh-hero-description p+p{margin-top:12px}
.refresh-actions{display:flex;align-items:center;gap:30px;flex-wrap:wrap;margin-top:30px}
.refresh-actions>.text-link{color:var(--geek-fg)}
.refresh-directory{padding-top:16px;min-width:0}
.refresh-directory>h2{font-size:21px;letter-spacing:0;margin-bottom:25px}
.refresh-directory>a{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:25px 0;border-top:1px solid var(--geek-line);min-height:108px}
.refresh-directory>a:last-child{border-bottom:1px solid var(--geek-line)}
.refresh-directory h3{font-size:22px;line-height:1.5;font-weight:500;color:var(--geek-accent)}
.refresh-directory p{font-size:15px;line-height:1.8;color:var(--geek-muted);margin-top:5px}
.refresh-directory>a>svg{color:var(--geek-accent);transition:transform .2s}
.refresh-directory>a:hover>svg{transform:translate(3px,-3px)}
.refresh-background{padding:23px 0;margin-top:50px;border-top:1px solid var(--geek-line);font-size:14px;line-height:1.8;color:var(--geek-muted)}
.refresh-section{position:relative;border-top:1px solid var(--geek-line);padding:78px 0 85px;scroll-margin-top:100px}
.anchor-alias{position:absolute;top:0;scroll-margin-top:100px}
.refresh-section-heading{margin-bottom:42px}
.refresh-section-heading h2{font-size:44px}
.refresh-section-heading>p{font-size:18px;line-height:1.9;color:var(--geek-muted);margin-top:23px;max-width:830px}
.refresh-featured-project{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:58px;border-top:1px solid var(--geek-line);padding-top:42px;align-items:center;scroll-margin-top:100px}
.refresh-project-copy h3{font-size:31px;font-weight:550;line-height:1.45;letter-spacing:-.7px}
.refresh-project-meta{font:12px/1.8 var(--geek-mono);color:var(--geek-muted);margin-bottom:13px}
.refresh-project-copy>p:not(.refresh-project-meta){font-size:17px;line-height:1.95;color:var(--geek-muted);margin-top:21px}
.refresh-project-copy>.text-link{margin-top:23px}
.refresh-project-media{min-width:0}
.refresh-project-media .demo-player{margin-top:0}
.refresh-secondary-projects{margin-top:47px;border-top:1px solid var(--geek-line)}
.refresh-project-row{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.05fr) minmax(190px,.85fr);align-items:center;gap:28px;border-bottom:1px solid var(--geek-line);padding:31px 0;scroll-margin-top:100px}
.refresh-project-row h3{font-size:23px;font-weight:500;letter-spacing:-.4px;line-height:1.5}
.refresh-project-row>p{font-size:16px;color:var(--geek-muted);line-height:1.9;padding-left:26px;border-left:1px solid var(--geek-line)}
.refresh-project-row>.text-link,.refresh-project-links{justify-self:end}
.refresh-project-links{display:flex;flex-wrap:wrap;gap:2px 22px}
.refresh-project-links .text-link{font-size:14px}
.refresh-more{display:flex;justify-content:flex-end;padding-top:22px}
.refresh-timeline{margin-top:45px}
.refresh-career-row{position:relative;display:grid;grid-template-columns:205px minmax(0,.9fr) minmax(0,1.2fr) 20px;gap:26px;align-items:center;padding:27px 0 27px 25px;border-bottom:1px solid var(--geek-line)}
.refresh-career-row:before{content:'';width:8px;height:8px;border-radius:50%;background:var(--geek-accent);position:absolute;left:0;top:38px}
.refresh-period{font:13px/1.8 var(--geek-mono);white-space:nowrap;color:#d0d8ca}
.refresh-career-row h3{font-size:23px;font-weight:500;line-height:1.5;letter-spacing:-.4px}
.refresh-career-row p{font-size:16px;line-height:1.9;color:var(--geek-muted)}
.refresh-career-row>svg{color:var(--geek-muted)}
.refresh-career-row:hover h3,.refresh-career-row:hover>svg{color:var(--geek-accent)}
.refresh-resume-link{margin-top:25px}
.refresh-education{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;margin-top:35px;padding:33px 0;border-top:1px solid var(--geek-line);border-bottom:1px solid var(--geek-line)}
.refresh-education>div+div{border-left:1px solid var(--geek-line);padding-left:35px}
.refresh-education h3{font-size:23px;font-weight:500;line-height:1.6}
.refresh-education p{font-size:15px;line-height:1.9;color:var(--geek-muted);margin-top:6px}
.terminal-disclosure{max-width:700px;margin-top:24px}
.terminal-disclosure summary{list-style:none;display:flex;align-items:center;gap:13px;min-height:44px;cursor:pointer;color:var(--geek-accent);font-size:15px}
.terminal-disclosure summary::-webkit-details-marker{display:none}
.terminal-caret{font-size:25px;line-height:1;transition:transform .2s}
.terminal-disclosure[open] .terminal-caret{transform:rotate(90deg)}
.terminal-disclosure .portfolio-terminal{margin-top:14px}
.terminal-disclosure .terminal-output{height:275px}
.refresh-writing-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr);gap:85px}
.refresh-writing-intro h2{font-size:39px;line-height:1.5}
.refresh-writing-intro>p:not(.section-code){font-size:18px;line-height:1.9;color:var(--geek-muted);margin-top:22px}
.refresh-writing-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:30px}
.refresh-featured-read{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:21px 0 24px;border-top:1px solid var(--geek-line)}
.refresh-featured-read:last-child{border-bottom:1px solid var(--geek-line)}
.refresh-read-category{font-size:12px;color:var(--geek-accent);line-height:1.8}
.refresh-featured-read h3{font-size:24px;font-weight:500;line-height:1.5;letter-spacing:-.5px;margin-top:6px}
.refresh-featured-read p{font-size:16px;color:var(--geek-muted);line-height:1.9;margin-top:6px}
.refresh-featured-read>svg{color:var(--geek-accent)}
.refresh-featured-read:hover h3{color:var(--geek-accent)}
.refresh-travel{margin-top:55px;border-top:1px solid var(--geek-line);padding-top:35px;scroll-margin-top:100px}
.refresh-travel-photo{display:block}
.refresh-travel-photo img{width:100%;height:270px;object-fit:cover;object-position:center 58%}
.refresh-travel-caption{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:23px}
.refresh-travel-caption h3{font-size:25px;line-height:1.5;font-weight:500}
.refresh-travel-caption p{font-size:16px;line-height:1.9;color:var(--geek-muted);margin-top:6px}
.refresh-contact{text-align:left;padding:72px 0 28px;border-top:1px solid var(--geek-line);scroll-margin-top:100px}
.refresh-contact h2{font-size:49px;color:var(--geek-fg)}
.refresh-contact-invite{max-width:850px;font-size:18px;color:var(--geek-muted);line-height:1.95;margin-top:25px}
.refresh-contact-topics{display:flex;gap:40px;flex-wrap:wrap;margin-top:36px}
.refresh-contact-topics>a{display:flex;align-items:center;gap:12px;min-height:44px;border-bottom:1px solid var(--geek-accent);font-size:17px;line-height:1.7}
.refresh-contact-topics>a:hover{color:var(--geek-accent)}
.refresh-contact-actions{display:flex;align-items:center;gap:35px;flex-wrap:wrap;margin-top:43px}
.refresh-contact-address{display:flex;align-items:center;gap:22px;flex-wrap:wrap;position:relative}
.refresh-contact .contact-email{font:18px/1.8 var(--geek-mono);color:var(--geek-fg);margin-top:0;overflow-wrap:anywhere}
.refresh-contact .copy-email{padding:10px 15px;min-height:44px;border:1px solid #657360;color:var(--geek-fg);font-size:13px;border-radius:2px;text-decoration:none}
.refresh-contact .copy-email:hover{border-color:var(--geek-accent);color:var(--geek-accent)}
.refresh-contact .copy-status{flex-basis:100%;font-size:12px;line-height:1.8;color:var(--geek-accent)}
.refresh-contact .copy-status:empty{display:none}
.refresh-contact .footer-bottom{font-size:12px;line-height:1.8;flex-wrap:wrap;gap:16px 26px;margin-top:58px;padding-top:24px;border-color:var(--geek-line)}
/* Shared real demo, used on the homepage and long project page. */
.demo-player{margin-top:24px}.demo-media{overflow:hidden;border:1px solid var(--geek-line);background:#000;aspect-ratio:1920/984;border-radius:3px}.demo-media video{width:100%;height:100%;display:block;object-fit:contain;background:#000}.demo-bar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:13px}.demo-toggle{display:none;align-items:center;gap:10px;min-height:44px;border:1px solid #657d51;border-radius:2px;padding:9px 13px;color:var(--geek-accent);background:#162013;font:12px/1.7 var(--geek-mono);cursor:pointer}.demo-ready .demo-toggle{display:inline-flex}.demo-toggle:hover{background:#26391e}.demo-toggle svg{width:15px;height:15px}.demo-duration{font:12px/1.8 var(--geek-mono);color:var(--geek-muted)}.demo-status{font-size:12px;line-height:1.8;color:var(--geek-accent);margin-top:10px}.demo-status:empty{display:none}.article-demo{margin-top:30px}.article-tool-link{margin-top:24px;display:inline-flex;align-items:center;gap:10px;color:var(--geek-accent);font-size:15px}.article-tool-link svg{width:17px;height:17px}
@media(max-width:1100px){
 .refresh-hero-grid{gap:52px}.refresh-identity h2{font-size:32px}.refresh-directory h3{font-size:20px}.refresh-directory p{font-size:14px}
 .refresh-featured-project{gap:36px}.refresh-project-row{grid-template-columns:minmax(0,.85fr) minmax(0,1fr) minmax(145px,.8fr);gap:22px}.refresh-project-row h3{font-size:21px}.refresh-project-row>p{padding-left:22px}
 .refresh-career-row{grid-template-columns:180px minmax(0,.9fr) minmax(0,1.2fr) 18px;gap:20px}.refresh-period{font-size:12px}.refresh-career-row h3{font-size:21px}
 .refresh-education{gap:25px}.refresh-education>div+div{padding-left:25px}.refresh-education h3{font-size:21px}.refresh-education p{font-size:14px}
 .refresh-writing-grid{gap:50px}.refresh-writing-intro h2{font-size:34px}.refresh-contact h2{font-size:44px}
}
@media(max-width:900px){
 .refresh-home,.refresh-contact{width:calc(100% - 56px)}
 .refresh-hero{padding-top:55px}.refresh-hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:35px}.refresh-identity h1{font-size:68px}.refresh-identity h2{font-size:28px}.refresh-hero-description p{font-size:16px}.refresh-directory{padding-top:10px}.refresh-directory>h2{font-size:18px}.refresh-directory h3{font-size:18px}.refresh-directory>a{padding:23px 0}
 .refresh-section{padding:63px 0 68px}.refresh-section-heading h2{font-size:39px}.refresh-section-heading>p{font-size:17px}
 .refresh-featured-project{grid-template-columns:1fr;gap:28px;align-items:start}.refresh-project-copy{max-width:700px}.refresh-project-copy>p:not(.refresh-project-meta){margin-top:15px}.refresh-project-copy>.text-link{margin-top:14px}.refresh-project-media{max-width:760px;width:100%}
 .refresh-project-row{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.refresh-project-row>.text-link,.refresh-project-links{grid-column:2;justify-self:start;margin-top:-18px}
 .refresh-career-row{grid-template-columns:175px minmax(0,1fr) 20px;gap:15px 22px}.refresh-career-row p{grid-column:2;grid-row:2}.refresh-career-row>svg{grid-column:3;grid-row:1/3}
 .refresh-writing-grid{gap:35px}.refresh-writing-intro h2{font-size:29px}.refresh-writing-intro>p:not(.section-code){font-size:16px}.refresh-writing-links{gap:10px}.refresh-home .refresh-writing-links .button{padding-inline:15px;font-size:14px}.refresh-featured-read h3{font-size:22px}
}
@media(max-width:760px){
 .refresh-home,.refresh-contact{width:calc(100% - 48px)}
 .refresh-hero{padding-top:40px}.refresh-hero-grid{grid-template-columns:1fr;gap:36px}.refresh-identity h1{font-size:68px;letter-spacing:-3px}.refresh-english{font-size:12px;letter-spacing:3px;margin-top:14px}.refresh-identity h2{font-size:30px;line-height:1.55;margin-top:26px}.refresh-hero-description{margin-top:21px}.refresh-hero-description p{font-size:16px;line-height:1.95}.refresh-actions{gap:24px;margin-top:26px}.refresh-home .button,.refresh-contact .button{font-size:15px;padding:12px 18px;min-height:48px}.refresh-actions>.text-link{font-size:15px}
 .refresh-directory{padding-top:0}.refresh-directory>h2{font-size:17px;margin-bottom:17px}.refresh-directory>a{padding:17px 0;min-height:88px}.refresh-directory h3{font-size:19px}.refresh-directory p{font-size:14px}.refresh-background{font-size:12px;padding:20px 0;margin-top:32px}
 .refresh-section{padding:48px 0 54px;scroll-margin-top:84px}.anchor-alias{scroll-margin-top:84px}.section-code{font-size:12px;margin-bottom:17px}.refresh-section-heading{margin-bottom:30px}.refresh-section-heading h2{font-size:32px;letter-spacing:-1px;line-height:1.5}.refresh-section-heading>p{font-size:16px;line-height:1.95;margin-top:19px}
 .refresh-featured-project{padding-top:28px;gap:24px;scroll-margin-top:84px}.refresh-project-copy h3{font-size:27px}.refresh-project-meta{font-size:12px;margin-bottom:10px}.refresh-project-copy>p:not(.refresh-project-meta){font-size:16px;line-height:1.95}.refresh-home .text-link{font-size:15px}.refresh-project-copy>.text-link{margin-top:17px}.demo-bar{gap:10px}.demo-toggle{font-size:12px;padding:8px 11px}.demo-duration{font-size:12px}.refresh-secondary-projects{margin-top:30px}.refresh-project-row{grid-template-columns:1fr;gap:13px;padding:26px 0;scroll-margin-top:84px}.refresh-project-row h3{font-size:23px}.refresh-project-row>p{padding-left:0;border-left:0;font-size:16px}.refresh-project-row>.text-link,.refresh-project-links{grid-column:auto;margin-top:0}.refresh-project-links{gap:5px 24px}.refresh-more{padding-top:17px}
 .refresh-timeline{margin-top:28px}.refresh-career-row{grid-template-columns:minmax(0,1fr) 20px;gap:7px 15px;padding:23px 0 23px 22px}.refresh-career-row:before{top:31px;width:7px;height:7px}.refresh-period{font-size:12px;grid-column:1}.refresh-career-row h3{grid-column:1;font-size:22px}.refresh-career-row p{grid-column:1;grid-row:auto;font-size:16px}.refresh-career-row>svg{grid-column:2;grid-row:1/4}.refresh-resume-link{margin-top:22px}
 .refresh-education{grid-template-columns:1fr;gap:21px;margin-top:27px;padding:27px 0}.refresh-education>div+div{padding-left:0;border-left:0}.refresh-education h3{font-size:22px}.refresh-education p{font-size:16px;margin-top:4px}.terminal-disclosure{margin-top:18px}.terminal-disclosure summary{font-size:15px}.terminal-disclosure .portfolio-terminal{margin-top:10px}.terminal-disclosure .terminal-output{height:270px}
 .refresh-writing-grid{grid-template-columns:1fr;gap:32px}.refresh-writing-intro h2{font-size:31px;line-height:1.55}.refresh-writing-intro>p:not(.section-code){font-size:16px;margin-top:20px}.refresh-writing-links{margin-top:25px;gap:12px}.refresh-home .refresh-writing-links .button{font-size:15px;padding-inline:17px}.refresh-featured-read{padding:21px 0 24px;gap:18px}.refresh-read-category{font-size:12px}.refresh-featured-read h3{font-size:23px}.refresh-featured-read p{font-size:16px}.refresh-travel{margin-top:35px;padding-top:25px}.refresh-travel-photo img{height:210px;object-position:44% 58%}.refresh-travel-caption{display:block;padding-top:21px}.refresh-travel-caption h3{font-size:26px}.refresh-travel-caption p{font-size:16px;margin-top:9px}.refresh-travel-caption>.text-link{margin-top:12px}
 .refresh-contact{padding:48px 0 26px;scroll-margin-top:84px}.refresh-contact h2{font-size:32px;line-height:1.5;letter-spacing:-1px}.refresh-contact-invite{font-size:16px;line-height:1.95;margin-top:21px}.refresh-contact-topics{gap:16px 26px;margin-top:25px}.refresh-contact-topics>a{font-size:16px;gap:9px}.refresh-contact-actions{gap:24px;margin-top:32px}.refresh-contact-address{gap:15px 18px}.refresh-contact .contact-email{font-size:16px}.refresh-contact .copy-email{font-size:13px;padding:9px 13px}.refresh-contact .footer-bottom{font-size:12px;gap:15px 22px;margin-top:34px;padding-top:22px}.refresh-contact .footer-bottom>span{flex-basis:100%;margin:0}
}
@media(max-width:360px){
 .refresh-home,.refresh-contact{width:calc(100% - 40px)}.refresh-identity h1{font-size:62px}.refresh-identity h2{font-size:27px;letter-spacing:-.7px}.refresh-actions{gap:20px}.refresh-home .button{padding-inline:15px}.refresh-directory h3{font-size:18px}.refresh-directory p{font-size:13px}.refresh-section-heading h2,.refresh-contact h2{font-size:29px}.refresh-writing-intro h2{font-size:28px}.refresh-project-copy h3{font-size:25px}.demo-bar{flex-wrap:wrap}.refresh-featured-read h3{font-size:21px}.refresh-contact .contact-email{font-size:15px}.refresh-travel-photo img{height:190px}
}
@media(prefers-reduced-motion:reduce){.refresh-directory>a>svg,.terminal-caret{transition:none}.refresh-directory>a:hover>svg{transform:none}}
@media print{.refresh-contact,.compact-footer{display:none}}
