/* Built By Hackers — a pocket field guide, expanded for larger screens. */
:root{color-scheme:dark;--ink:#111210;--paper:#edece4;--muted:#b7b8af;--line:#41443b;--orange:#ff5100;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:20px}body{margin:0;background:var(--ink);color:var(--paper);font:17px/1.7 Arial,Helvetica,sans-serif}img{display:block;width:100%;height:auto}a{color:inherit;text-underline-offset:4px}a:hover{text-decoration-thickness:2px}a:focus-visible,summary:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:5px}p{margin:0 0 1.2rem}h1,h2,h3{margin:0 0 1.2rem;line-height:1.1}h1,h2,h3,p{overflow-wrap:break-word}.wrap{width:calc(100% - 40px);max-width:1280px;margin-inline:auto}.skip{position:fixed;left:12px;top:-100px;z-index:10;padding:12px;background:var(--paper);color:var(--ink)}.skip:focus{top:12px}.eyebrow,.micro,.breadcrumb,.topic,.edition{font:12px/1.6 var(--mono)}.eyebrow,.topic{text-transform:uppercase;letter-spacing:.07em}.eyebrow{color:var(--orange)}.masthead{background:#0a0b09}.masthead-inner{min-height:90px;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative}.brand{width:145px;display:block;flex-shrink:0}.brand img{width:100%;height:53px;object-fit:contain}.edition{display:none}.mobile-menu summary{cursor:pointer;min-width:76px;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #66685c;padding:8px 12px;list-style:none;font:13px var(--mono)}summary::-webkit-details-marker{display:none}.mobile-menu summary span{font-size:23px;color:var(--orange)}.mobile-menu[open] summary span{transform:rotate(45deg)}.mobile-menu .nav{position:absolute;top:100%;left:0;right:0;z-index:5;background:#0a0b09;border-block:1px solid var(--orange);padding:12px 20px;display:grid;box-shadow:0 24px 40px #0007}.nav a{min-height:48px;padding:10px 0;display:flex;gap:16px;align-items:center;text-decoration:none;border-bottom:1px solid var(--line);font-size:16px}.nav a:last-child{border-bottom:0}.nav a span{font:11px var(--mono);color:var(--orange)}.nav a[aria-current]{color:var(--orange)}.affiliation{padding:10px 20px;border-top:1px solid #32342e;display:flex;flex-wrap:wrap;gap:2px 14px;color:var(--muted);font:11px/1.7 var(--mono)}.affiliation a{text-decoration:none}.affiliation a:hover{text-decoration:underline}.home-hero{margin-inline:-20px;background:var(--orange);color:var(--ink)}.hero-copy{padding:34px 20px 30px}.hero-copy .eyebrow{color:var(--ink);font-size:11px}.hero-copy h1,.page-heading h1,.guide-opening h2,.checklist-invite h2{font-family:Impact,"Arial Narrow",Arial,sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.035em;line-height:.98}.hero-copy h1{font-size:clamp(3.05rem,13.2vw,5.5rem);max-width:13ch;margin:25px 0}.hero-copy .intro{font-size:17px;line-height:1.6;max-width:56ch}.button{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--orange);color:var(--ink);padding:15px 18px;min-height:52px;font:700 13px/1.5 var(--mono);text-decoration:none;text-transform:uppercase}.hero-copy .button{background:var(--ink);color:var(--paper);max-width:340px;margin-top:25px}.button span{font-size:24px;line-height:1}.text-action{display:flex;align-items:center;gap:18px;min-height:48px;margin-top:10px;font:13px/1.5 var(--mono);width:fit-content}.hero-art{position:relative;aspect-ratio:1.45;background:#090a08;overflow:hidden}.hero-art img{height:100%;object-fit:cover;object-position:center}.hero-art:after{content:"DEFENSE / IN DEPTH";position:absolute;bottom:16px;left:20px;background:var(--ink);padding:5px 8px;color:var(--orange);font:10px/1.6 var(--mono);letter-spacing:.15em}.guide-opening{padding:50px 0 30px;max-width:660px}.guide-opening h2{font-size:clamp(2.2rem,8vw,3.6rem);letter-spacing:-.025em}.guide-opening>p:last-child{color:var(--muted);max-width:45ch}.home-sections{counter-reset:chapter}.section{padding:35px 0;border-top:1px solid var(--line)}.section h2{font-size:25px;line-height:1.2;letter-spacing:-.025em;max-width:27ch}.section p{color:var(--muted);max-width:70ch}.section p:last-child{margin-bottom:0}.section li{margin-bottom:18px;color:var(--muted)}.section strong{color:var(--paper)}.section ol{padding-left:24px}.home-sections .section{counter-increment:chapter}.home-sections .section:before{content:"CHAPTER / 0" counter(chapter);display:block;color:var(--orange);font:11px/1.6 var(--mono);letter-spacing:.1em;margin-bottom:25px}.home-sections .section h2{font-size:30px;max-width:20ch}.topics{counter-reset:topic;margin-bottom:40px}.topic-link{counter-increment:topic;display:grid;grid-template-columns:28px 1fr;gap:8px 12px;padding:24px 0;text-decoration:none;border-top:1px solid var(--line)}.topic-link:before{content:"0" counter(topic);font:12px/1.5 var(--mono);color:var(--orange);grid-row:1/4;padding-top:4px}.topic-link h3{font-size:22px;line-height:1.2;margin:0}.topic-link p{font-size:16px;color:var(--muted);line-height:1.6;margin:0;grid-column:2;max-width:60ch}.topic-link .topic{grid-column:2;color:var(--orange);display:flex;align-items:center;min-height:44px;margin-top:2px}.topic-link:hover h3{text-decoration:underline;text-underline-offset:5px}.checklist-invite{background:var(--paper);color:var(--ink);padding:30px 22px;margin:50px -20px 0}.checklist-invite .eyebrow{color:#973000}.checklist-invite h2{font-size:39px;margin-top:18px}.checklist-invite p{max-width:48ch}.checklist-invite .button{max-width:340px}.page-heading{padding:28px 0 35px;border-bottom:4px solid var(--orange)}.breadcrumb{color:var(--muted);margin-bottom:30px}.page-heading h1{font-size:clamp(2.7rem,10.5vw,4.2rem);max-width:19ch}.page-heading .intro{color:var(--muted);font-size:17px;line-height:1.7;margin:0;max-width:60ch}.page-contents{padding:14px 0;border-bottom:1px solid var(--line)}.page-contents summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font:13px var(--mono);list-style:none}.page-contents summary:after{content:"+";font-size:22px;color:var(--orange)}.page-contents details[open] summary:after{content:"−"}.page-contents ol{list-style:decimal-leading-zero;padding-left:24px;font-size:15px;color:var(--muted)}.page-contents li{padding-left:6px}.page-contents a{min-height:44px;display:flex;align-items:center;padding:8px 0;text-decoration:none}.page-contents .image-note{display:none}.article{counter-reset:article;min-width:0}.article>.section{counter-increment:article;position:relative}.article>.section:before{content:"0" counter(article);display:block;font:12px var(--mono);color:var(--orange);margin-bottom:22px}.article>.section:first-child{border-top:0}.article a{color:var(--paper)}.approach-image{margin:25px 0 0;position:relative;height:240px;overflow:hidden}.approach-image img{height:100%;object-fit:cover;object-position:center 55%}.approach-image figcaption{position:absolute;bottom:0;left:0;padding:8px 12px;background:var(--orange);color:var(--ink);font:12px var(--mono)}.review{background:var(--paper);color:var(--ink);padding:28px 20px;margin:32px -20px}.review .eyebrow{color:#973000}.review h2{font:900 36px/1 Impact,"Arial Narrow",sans-serif;text-transform:uppercase}.review>p{font-size:16px}.review label{display:flex;align-items:flex-start;gap:14px;padding:18px 0;min-height:60px;border-top:1px solid #a4a59c;cursor:pointer;font-size:16px;line-height:1.5}.review input{width:24px;height:24px;flex-shrink:0;margin:0;accent-color:var(--ink)}.review label:has(input:checked) span{text-decoration:line-through;color:#5c6056}.review progress{appearance:none;display:block;width:100%;height:6px;background:#caccc2;margin:24px 0 12px;border:0}.review progress::-webkit-progress-bar{background:#caccc2}.review progress::-webkit-progress-value{background:var(--orange)}.review progress::-moz-progress-bar{background:var(--orange)}.review-progress{font:13px var(--mono)!important}.review button{min-height:48px;font:13px var(--mono);border:1px solid #74796b;background:transparent;color:var(--ink);padding:12px 14px;margin:15px 0;cursor:pointer}.review small{font-size:13px;display:block;color:#50564a}.contact-panel{background:var(--orange);color:var(--ink);padding:25px 20px;margin:30px -20px}.contact-panel .eyebrow{color:var(--ink)}.contact-panel h2{font-size:30px}.email{display:flex;align-items:center;min-height:48px;font:16px/1.6 var(--mono);overflow-wrap:anywhere}.footer{background:#080906;margin-top:0;padding:35px 0;color:var(--muted);border-top:1px solid var(--line)}.footer h2{font-size:22px;color:var(--orange)}.footer .micro{text-transform:none;font-size:12px;max-width:34ch}.footer-links{display:grid;margin:25px 0}.footer-links a{min-height:44px;display:flex;align-items:center;font-size:14px;text-decoration:none;border-bottom:1px solid #30332a}.legal{font:12px var(--mono);margin:25px 0 0}.error{min-height:60vh;padding:40px 0}
@media(min-width:650px){.wrap{width:calc(100% - 64px)}.masthead-inner{padding-inline:32px}.affiliation{padding-inline:32px}.home-hero{margin-inline:-32px}.hero-copy{padding:45px 32px}.hero-copy h1{font-size:clamp(5.5rem,11vw,8rem);max-width:15ch}.hero-art{aspect-ratio:2.3}.hero-art:after{left:32px}.checklist-invite{margin-inline:-32px;padding:40px 32px}.contact-panel,.review{margin-inline:0;padding:32px}.edition{display:block;margin-left:auto;color:var(--muted)}.mobile-menu .nav{padding:20px 32px;grid-template-columns:1fr 1fr;gap:0 35px}.topics{max-width:900px}.topic-link{grid-template-columns:45px 1fr auto}.topic-link p{grid-column:2}.topic-link .topic{grid-column:3;grid-row:1/3;align-self:center}.page-heading{padding-top:40px}.page-heading h1{font-size:64px}.approach-image{height:330px}}
@media(min-width:1050px){.wrap{width:calc(100% - 96px)}.masthead-inner{padding:16px 48px;min-height:98px}.brand{width:150px}.affiliation{padding:10px 48px;gap:35px}.mobile-menu .nav{padding-inline:48px;grid-template-columns:repeat(4,1fr)}.home-hero{margin-inline:-48px}.hero-copy{padding:55px 48px 48px;display:grid;grid-template-columns:1.7fr 1fr;column-gap:6vw}.hero-copy .eyebrow{grid-column:1/-1}.hero-copy h1{font-size:clamp(7rem,9.5vw,10rem);margin:15px 0 0;grid-column:1;grid-row:2/5;max-width:12ch}.hero-copy .intro{grid-column:2;margin-top:20px;align-self:end}.hero-copy .button,.hero-copy .text-action{grid-column:2;max-width:none}.hero-art{aspect-ratio:3.05}.hero-art img{object-position:center 58%}.hero-art:after{left:48px;bottom:24px}.guide-opening{margin-left:25%;padding:70px 0 40px;max-width:800px}.guide-opening h2{font-size:52px}.home-sections .section{display:grid;grid-template-columns:18% 29% 1fr;gap:3%;padding:40px 0}.home-sections .section:before{padding-top:7px}.home-sections .section h2{font-size:32px}.home-sections .section>div{max-width:65ch}.topics{margin-left:25%;max-width:none}.checklist-invite{margin:60px -48px 0;padding:55px 48px 55px calc(25% + 24px)}.checklist-invite h2{font-size:58px}.page-heading{display:grid;grid-template-columns:1.5fr 1fr;gap:6vw;align-items:end;padding:48px 0}.page-heading h1{font-size:72px;margin-bottom:0}.page-heading .intro{padding-bottom:5px}.reading-layout{display:grid;grid-template-columns:22% 1fr;gap:6%}.page-contents{align-self:start;position:sticky;top:20px;border:0;padding-top:27px}.page-contents summary{border-bottom:1px solid var(--line)}.page-contents ol{font-size:13px;line-height:1.5}.article>.section{padding:45px 0 45px 60px}.article>.section:before{position:absolute;top:49px;left:0}.article>.section h2{font-size:30px}.article>.section>div{max-width:71ch}.review{padding:40px}.review h2{font-size:46px}.approach-image{height:350px;margin-left:28%}.contact-panel{margin-left:28%;padding:40px}.email{font-size:21px}.footer{padding:45px 0}.footer-inner{display:grid;grid-template-columns:1fr 2fr;gap:35px}.footer-links{grid-template-columns:1fr 1fr;gap:0 30px;margin:0}.legal{grid-column:2;margin:0}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media print{body{background:white;color:black}.masthead,.page-contents,.footer,.button,.text-action{display:none}.wrap{width:100%}.section p,.section li{color:#222}.review{margin:0}.section{break-inside:avoid}}
@media(min-width:1050px){.hero-copy h1{font-size:clamp(6rem,8vw,8rem);max-width:none}.hero-copy .button{align-self:start}.hero-copy .text-action{align-self:start}}

/* Public journal: built from approved, due source posts only. */
.blog-wrap{width:100%;max-width:1040px;margin-inline:auto}.blog-heading{padding-block:2.5rem;border-bottom:1px solid currentColor}.blog-heading h1{font-size:clamp(2rem,8.5vw,3.8rem);line-height:1.1;max-width:22ch;margin:1rem 0 1.5rem;overflow-wrap:break-word}.blog-heading .intro{max-width:65ch}.blog-heading>a,.blog-heading p>a,.blog-back a,.blog-read{display:inline-flex;align-items:center;min-height:44px}.blog-entry{padding-block:2.5rem;border-bottom:1px solid currentColor}.blog-entry h2{font-size:1.8rem;line-height:1.2;max-width:30ch}.blog-entry h2 a{text-decoration:none}.blog-entry p{max-width:65ch}.blog-read{font:13px/1.6 monospace}.blog-article{max-width:800px;margin-inline:auto}.blog-article .section{display:block;padding-block:2.5rem}.blog-article .section h2{font-size:1.65rem;max-width:32ch;margin-bottom:1.3rem}.blog-article .section p{font-size:17px;line-height:1.85;max-width:68ch}.blog-article .section ul{padding-left:1.2rem}.blog-article .section li{margin-bottom:1rem;overflow-wrap:anywhere}.blog-back{padding-block:2rem}@media(min-width:851px){.blog-heading{padding-block:4rem}.blog-heading h1{font-size:4.5rem}.blog-list{max-width:900px}.blog-entry h2{font-size:2.5rem}}
.built-by-hackers .blog-heading{border-bottom:3px solid #ff5100}.built-by-hackers .blog-heading h1{font-family:Impact,"Arial Narrow",system-ui,sans-serif;text-transform:uppercase;letter-spacing:-.02em}.built-by-hackers .blog-entry{border-color:#58644e}.built-by-hackers .blog-entry h2{font-family:system-ui,sans-serif;font-weight:850;letter-spacing:-.03em}.built-by-hackers .blog-article .section h2{font-family:system-ui,sans-serif;font-weight:800;text-transform:none}.built-by-hackers .blog-read{color:#ff7738}

.blog-thumb{display:block;margin-bottom:1.5rem}.blog-thumb img{width:100%;height:auto;aspect-ratio:1.7;object-fit:cover}.blog-hero-image{margin:2rem 0 1rem}.blog-hero-image img{width:100%;height:auto;max-height:580px;object-fit:cover;aspect-ratio:1.5}@media(min-width:851px){.blog-entry{display:flow-root}.blog-thumb{width:36%;float:right;margin:0 0 1.5rem 2rem}.blog-hero-image{margin-block:3rem}}
