:root{color-scheme:dark;--bg:#091019;--text:#edf5ff;--muted:#aabbc7;--accent:#8ee5cf;--line:#2b3c44;--panel:#101c24;--gold:#e6be89;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:radial-gradient(ellipse at 0 0,#1c3636 0,transparent 33%),var(--bg);color:var(--text);line-height:1.7}a{color:var(--accent);text-underline-offset:5px}a:hover{color:white}button,summary,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button,a,summary{touch-action:manipulation}:focus-visible{outline:3px solid var(--gold);outline-offset:6px}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.08;letter-spacing:-.045em}p{color:var(--muted)}.wrap{width:min(1180px,calc(100% - 80px));margin-inline:auto}.site-header{display:flex;justify-content:space-between;align-items:center;gap:32px;padding-block:30px}.brand{font-weight:700;text-decoration:none;font-size:.9rem}.brand span{display:block;font-weight:400;color:var(--muted);font-size:.8rem}.site-header nav{display:flex;gap:26px;font-size:.9rem}.site-header nav a{text-decoration:none}.hero{padding-top:70px}.hero-top{display:flex;justify-content:space-between;gap:20px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:600;color:var(--accent);margin-bottom:20px}.location{font-size:.88rem}h1{font-size:clamp(3.4rem,8.2vw,7.5rem);letter-spacing:-.065em;font-weight:650;margin:22px 0 48px;line-height:1.04}em{font-family:Georgia,"Times New Roman",serif;font-weight:400;color:var(--accent);letter-spacing:-.045em}.intro-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:100px}.role{font-size:.95rem;color:var(--text);margin-bottom:12px}.intro{font-size:1.4rem;line-height:1.5;max-width:510px}.hero-note{border-left:1px solid var(--accent);padding-left:30px;align-self:start}.hero-note p{font-size:1.08rem}.hero-note a{font-size:.9rem}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;border:1px solid var(--accent);padding:12px 20px;text-decoration:none;font-size:.9rem;font-weight:600;background:var(--accent);color:var(--bg);border-radius:3px}.button:hover{background:#bbf4e5;color:var(--bg)}.button.secondary{background:transparent;color:var(--text);border-color:#5a7079}.button.secondary:hover{background:var(--panel)}.at-a-glance{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:64px;padding:24px 0;gap:24px}.at-a-glance strong{display:block;font-size:1.7rem;font-weight:500;letter-spacing:-.04em}.at-a-glance span{font-size:.88rem;color:var(--muted)}.section{padding-top:110px;padding-bottom:20px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:80px;margin-bottom:38px}h2{font-size:clamp(2.3rem,4.6vw,4rem);font-weight:550;margin:0}.section-heading>p{max-width:350px;margin-bottom:4px}.lens-controls{display:flex;gap:8px;flex-wrap:wrap}.lens-controls button{background:transparent;color:var(--muted);padding:9px 17px;border:1px solid var(--line);border-radius:30px;font-size:.9rem}.lens-controls button[aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}.lens-controls button:hover{border-color:var(--accent)}.lens-note{font-size:.9rem;margin:18px 0 32px;min-height:2em}.chapter{border-top:1px solid var(--line);padding:30px 0}.chapter:last-child{border-bottom:1px solid var(--line)}.chapter summary{display:grid;grid-template-columns:160px 1fr 30px;gap:26px;list-style:none;cursor:pointer}.chapter summary::-webkit-details-marker{display:none}.period{color:var(--accent);font-size:.9rem;padding-top:7px;font-variant-numeric:tabular-nums}.chapter-label{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;display:block;margin-bottom:8px}.chapter strong{font-size:clamp(1.25rem,2.4vw,1.8rem);font-weight:500;line-height:1.25;display:block;letter-spacing:-.025em}.chapter-meta{display:block;color:var(--muted);font-size:.9rem;margin-top:10px}.expand{font-size:1.7rem;color:var(--accent);transition:transform .2s;justify-self:end;align-self:center}.chapter[open] .expand{transform:rotate(45deg)}.chapter-body{max-width:840px;margin:25px 0 0 186px}.chapter-body p{margin-bottom:18px}.carry{border-left:2px solid var(--accent);padding:8px 0 8px 22px;color:var(--text)}.carry span{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:7px}.source-note{font-size:.8rem}.chapter[data-match=false]{display:none}.work-section{margin-top:90px;padding-top:80px;padding-bottom:80px;background:linear-gradient(140deg,#13252a,#0d1821);border-block:1px solid var(--line)}.flagship{display:grid;grid-template-columns:1.3fr .7fr;gap:80px;padding:45px 0;border-block:1px solid #49616a}.flagship h3{font-size:3.3rem;margin:0 0 22px;font-weight:550}.project-lead{font-size:1.4rem;line-height:1.4;color:var(--text)}.flagship details summary,.sources summary{cursor:pointer;color:var(--accent)}.flagship details p{margin:16px 0 0}.flagship aside{border-left:1px solid var(--line);padding-left:42px}.flagship ol{padding-left:24px;font-size:1.05rem;line-height:2.5}.flagship li::marker{color:var(--accent)}.project-context{font-size:.8rem;color:var(--muted)}.project-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:64px}.project{padding:40px 0;border-bottom:1px solid var(--line)}h3{font-size:1.55rem;font-weight:550}.project p{max-width:520px}.stack{color:var(--accent);font-size:.85rem;margin-bottom:0}.playground{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding-top:70px}.playground h3{font-size:2rem;line-height:1.2}.experiment-links>a{display:flex;justify-content:space-between;align-items:center;gap:25px;text-decoration:none;border-bottom:1px solid var(--line);padding:16px 0;font-size:1.1rem}.experiment-links>a:first-child{padding-top:0}.experiment-links small{display:block;font-size:.85rem;color:var(--muted)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px}.large-copy{font-size:clamp(1.8rem,3vw,2.6rem);color:var(--text);line-height:1.35;letter-spacing:-.025em}.about-grid h3{font-size:1.2rem;margin-top:30px}.skills{display:flex;flex-wrap:wrap;list-style:none;gap:8px;padding:0}.skills li{border:1px solid var(--line);padding:4px 11px;font-size:.85rem;color:var(--muted);border-radius:3px}.sources{margin-top:46px;padding:25px 0;border-block:1px solid var(--line);font-size:.9rem}.sources p{max-width:850px;margin-top:22px}.sources li{margin-bottom:8px}.contact{padding-block:100px}.contact h2{margin-bottom:30px}.contact-link{font-size:clamp(1.05rem,2.8vw,1.7rem);overflow-wrap:anywhere}.site-footer{border-top:1px solid var(--line);padding-block:25px 40px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px;font-size:.8rem;color:var(--muted)}.skip{position:absolute;top:10px;left:20px;transform:translateY(-160%);z-index:5;background:var(--bg);padding:12px}.skip:focus{transform:none}.reading-progress{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:var(--accent);z-index:10}
@media(min-width:1000px){.hero h1{max-width:1050px}}@media(max-width:800px){.wrap{width:calc(100% - 40px)}.site-header{align-items:start;flex-direction:column;gap:20px}.hero{padding-top:35px}.intro-grid,.about-grid{gap:35px}.section-heading{gap:35px}.chapter summary{grid-template-columns:115px 1fr 22px;gap:16px}.chapter-body{margin-left:131px}.flagship{gap:30px}.flagship aside{padding-left:24px}.section{padding-top:75px}.work-section{margin-top:60px}.hero-note{padding-left:20px}.project-grid,.playground{column-gap:30px}}@media(max-width:560px){.brand span{font-size:.8rem}.site-header nav{gap:20px;font-size:.85rem;flex-wrap:wrap}.hero-top{display:block}.location{margin-top:-12px}h1{font-size:clamp(3.05rem,12.3vw,4.3rem);margin-block:28px}.intro-grid,.about-grid,.flagship,.project-grid,.playground{grid-template-columns:1fr}.hero-note{margin-top:12px}.intro{font-size:1.25rem}.at-a-glance{gap:15px}.at-a-glance strong{font-size:1.15rem}.at-a-glance span{font-size:.8rem;display:block;line-height:1.45;margin-top:8px}.section-heading{display:block}.section-heading>p{margin-top:20px}.chapter summary{grid-template-columns:1fr 22px;gap:8px}.period{grid-column:1/-1;font-size:.82rem}.chapter-body{margin-left:0}.chapter strong{font-size:1.4rem}.chapter{padding-block:24px}.chapter-meta{font-size:.82rem}.flagship{padding-block:30px}.flagship aside{border-left:none;border-top:1px solid var(--line);padding:24px 0 0}.flagship h3{font-size:2.6rem}.playground{padding-top:50px}.contact{padding-block:70px}.lens-controls button{padding:8px 12px;font-size:.85rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{ :root{color-scheme:light;--text:#111;--muted:#333;--accent:#185f51;--bg:#fff;--line:#ccc}body{background:white!important;font-size:10pt;line-height:1.45}.wrap{width:100%;margin:0}.site-header,.hero-top .location,.actions,.hero-note,.lens-controls,.lens-note,.reading-progress,.skip,.expand,.site-footer,.contact,.sources,.playground{display:none!important}.hero{padding:0}.hero-top .eyebrow{font-size:18pt;letter-spacing:0;text-transform:none;color:#111;margin:0}.hero h1{font-size:30pt;margin:12px 0}.intro-grid{display:block}.role,.intro{font-size:12pt;margin:8px 0}.at-a-glance{margin:18px 0;padding:12px 0}.at-a-glance strong{font-size:14pt}.section,.work-section{padding:15px 0;margin:0;background:white;border:0}.section-heading{margin:15px 0;display:block}.section-heading>p{display:none}h2{font-size:21pt}h2 br{display:none}.eyebrow{font-size:8pt;margin-bottom:6px}.chapter,.chapter[data-match=false]{display:block!important;padding:15px 0;break-inside:avoid}.chapter summary{grid-template-columns:100px 1fr}.chapter strong{font-size:13pt}.chapter-body{margin:12px 0 0 126px}.chapter-body p{margin-bottom:9px}.chapter-meta{font-size:9pt}.chapter-label{font-size:8pt}.period{font-size:9pt}.carry{padding-block:0}.flagship{padding:15px 0;gap:25px;break-inside:avoid}.flagship h3{font-size:23pt}.project-lead{font-size:12pt}.flagship ol{font-size:10pt;line-height:1.9}.project-grid{gap:0 25px}.project{padding:18px 0;break-inside:avoid}h3{font-size:13pt}.about-grid{gap:30px}.large-copy{font-size:16pt}.about-grid h3{margin-top:15px}a{color:#185f51}.hero:after{content:"tharwood75@gmail.com · github.com/ncypher · Lansing, Michigan";display:block;font-size:10pt;margin:12px 0}.source-note{font-size:8pt}@page{margin:16mm}}

/* Social field notes: a playful companion to the career narrative. */
.social-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:32px}.social-grid a{display:block;text-decoration:none;color:var(--text);transition:border-color .2s,background .2s}.social-feature{padding:42px;border:1px solid #4f756c;background:linear-gradient(145deg,#16382f,#102127);border-radius:4px;display:flex!important;flex-direction:column}.social-feature:hover{border-color:var(--accent);background:#19392f}.social-feature h3{font-family:Georgia,serif;font-weight:400;font-size:clamp(2.3rem,4vw,3.6rem);margin:12px 0 24px}.social-feature p{max-width:470px;font-size:1.05rem}.social-feature .field-joke{font-size:.95rem;color:#c5d9ce;border-left:2px solid var(--accent);padding-left:20px;margin:15px 0 30px}.social-cta{color:var(--accent);font-size:.9rem;display:flex;justify-content:space-between;gap:20px;margin-top:auto}.social-side{display:grid;gap:28px}.social-side a{padding:24px 0;border-bottom:1px solid var(--line)}.social-side a:first-child{padding-top:0}.social-side a:hover{border-color:var(--accent)}.social-side h3{font-size:1.45rem}.social-side .eyebrow{display:block}.social-side p{font-size:.95rem}.off-duty .section-heading>p{max-width:330px}@media(max-width:650px){.social-grid{grid-template-columns:1fr}.social-feature{padding:28px}.social-side{gap:15px}.social-side a:first-child{padding-top:15px}}@media print{.off-duty{display:none!important}}
