:root{color-scheme:dark;--night:#0c2429;--ink:#172b35;--mint:#c2efde;--quiet:#c7d9d5;--paper:#f7f9fa;--teal:#087461;--line:#496260}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--night);color:var(--paper);font:400 19px/1.7 ftnk,"Helvetica Neue",Arial,sans-serif}a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}a:hover{color:var(--mint)}a:focus-visible{outline:3px solid currentColor;outline-offset:6px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:500;line-height:1.12;letter-spacing:-.04em;text-wrap:balance}p{margin-bottom:24px}.wrap{width:calc(100% - 96px);max-width:1240px;margin-inline:auto}.skip-link{position:absolute;top:-100px;left:16px;padding:12px 20px;background:var(--mint);color:var(--night);z-index:10}.skip-link:focus{top:14px}.site-header{display:flex;justify-content:space-between;align-items:center;gap:28px;min-height:108px;border-bottom:1px solid var(--line)}.brand{font-size:24px;font-weight:600;line-height:1.35;text-decoration:none;letter-spacing:-.02em}.brand span{display:block;font-size:12px;line-height:1.6;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--quiet)}.site-header nav{display:flex;gap:28px;align-items:center;font-size:16px}.site-header nav a{padding:12px 0;text-decoration:none}.site-header [aria-current]{color:var(--mint);text-decoration:underline;text-underline-offset:8px}.eyebrow,.index{font-size:13px;font-weight:500;line-height:1.6;letter-spacing:.11em;text-transform:uppercase;color:var(--mint)}.hero{padding-block:74px 65px}.hero .eyebrow{margin-bottom:22px}.hero h1{font-size:clamp(104px,15.5vw,224px);letter-spacing:-.065em;line-height:1.05;margin:0 0 42px;font-weight:500}.hero h1 span{color:var(--mint)}.hero-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:100px;align-items:end}.thesis{max-width:24ch;font-size:clamp(28px,3.1vw,44px);line-height:1.25;letter-spacing:-.027em;margin:0;text-wrap:pretty}.intro{margin:0;color:var(--quiet);max-width:37ch;font-size:21px;line-height:1.6}.read-link{display:inline-flex;align-items:center;gap:34px;margin-top:42px;font-size:16px;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:8px;color:var(--mint)}.section-light{background:var(--paper);color:var(--ink)}.section-light a:hover{color:var(--teal)}.story,.shift{padding-block:100px}.essay-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:90px}.section-heading h2,.section-intro h2{font-size:clamp(33px,3.6vw,50px);margin-bottom:25px}.section-light .eyebrow{color:var(--teal)}.section-aside{max-width:25ch;font-size:20px;line-height:1.5;color:#52656b}.prose{max-width:64ch}.prose p:last-child{margin-bottom:0}.prose .story-emphasis{font-size:25px;line-height:1.5;letter-spacing:-.025em;font-weight:500;margin-block:30px}.text-link{display:inline-block;color:var(--teal);font-size:17px;font-weight:500}.text-link span{margin-left:12px}.constraints{padding-block:90px}.section-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:100px;align-items:end;margin-bottom:50px}.section-intro h2{margin-bottom:0}.section-intro>p{margin:0;color:var(--quiet);max-width:44ch}.constraint-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 36px}.constraint-grid article{border-top:1px solid var(--line);padding-top:23px}.index{display:block;margin-bottom:21px}.constraint-grid h3{font-size:27px;margin-bottom:17px}.constraint-grid p{color:var(--quiet);font-size:18px;line-height:1.65;margin:0}.constraints-note{border-top:1px solid var(--line);padding-top:26px;margin:45px 0 0;color:var(--mint);max-width:80ch;font-size:21px;line-height:1.5}.responsibility{padding-block:90px}.responsibility .prose{color:var(--quiet)}.references{display:flex;flex-direction:column;align-items:flex-start;gap:10px;border-top:1px solid var(--line);padding-top:25px;margin-top:35px;font-size:15px;line-height:1.6}.references span{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mint);margin-bottom:3px}.closing{background:var(--mint);color:var(--night);padding-block:105px 115px}.closing-question{max-width:23ch;font-size:clamp(40px,6.2vw,85px);line-height:1.12;letter-spacing:-.045em;font-weight:500;margin-bottom:43px;text-wrap:pretty}.closing-question:nth-child(2){max-width:26ch}.closing-answer{font-size:clamp(28px,3.7vw,50px);line-height:1.22;letter-spacing:-.035em;font-weight:500;margin:0}
@media(max-width:1000px){.wrap{width:calc(100% - 60px)}.hero-bottom,.section-intro{gap:45px}.essay-layout{gap:45px;grid-template-columns:.85fr 1.3fr}.site-header nav{gap:20px}.constraint-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px}.hero{padding-top:60px}.hero h1{margin-bottom:36px}.story,.shift,.constraints,.responsibility{padding-block:72px}.section-heading h2,.section-intro h2{font-size:37px}.closing{padding-block:80px}}
@media(max-width:700px){body{font-size:18px}.wrap{width:calc(100% - 44px)}.site-header{flex-wrap:wrap;gap:12px;padding-block:21px 12px}.site-header nav{width:100%;justify-content:space-between;gap:14px;font-size:15px}.brand{font-size:23px}.brand span{font-size:12px}.hero{padding-block:42px}.hero .eyebrow{font-size:12px;letter-spacing:.07em}.hero h1{font-size:clamp(87px,21vw,145px);margin-bottom:28px}.hero-bottom,.essay-layout,.section-intro{grid-template-columns:1fr;gap:26px}.thesis{font-size:31px;max-width:23ch}.intro{font-size:19px;max-width:44ch}.read-link{font-size:15px;margin-top:29px}.story,.shift,.constraints,.responsibility{padding-block:50px}.section-heading h2,.section-intro h2{font-size:36px;margin-bottom:18px}.section-aside{font-size:18px;max-width:35ch;margin:0}.section-intro{margin-bottom:32px}.constraint-grid{gap:30px 25px}.constraint-grid h3{font-size:25px}.constraint-grid p{font-size:17px}.index{font-size:12px;margin-bottom:15px}.constraints-note{font-size:20px;margin-top:34px;padding-top:24px}.prose .story-emphasis{font-size:23px;margin-block:27px}.closing{padding-block:58px 68px}.closing-question{font-size:clamp(39px,8.4vw,58px);margin-bottom:32px}.closing-answer{font-size:29px}}
@media(max-width:450px){.constraint-grid{grid-template-columns:1fr}.hero h1{font-size:clamp(78px,22vw,104px)}.thesis{font-size:29px}.site-header nav{gap:12px;font-size:14px}.closing-question{font-size:39px}.closing-answer{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.closing-signature{font-size:clamp(24px,2.5vw,34px);font-weight:400;line-height:1.4;letter-spacing:-.02em;margin:20px 0 0}

.closing-bottom{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:65px;align-items:start;border-top:1px solid #7caa9a;padding-top:40px;margin-top:54px}
.closing-personal,.closing-cta{min-width:0}
.closing-cta h2{font-size:clamp(26px,2.4vw,32px);line-height:1.25;letter-spacing:-.025em;margin:0 0 15px;max-width:25ch;text-wrap:pretty}
.closing-cta p{font-size:20px;line-height:1.5;margin:0 0 24px}
.closing-contact-link{display:inline-flex;justify-content:space-between;align-items:center;gap:36px;min-height:52px;padding:12px 22px;border:1px solid var(--night);border-radius:4px;background:var(--night);color:var(--mint);font-size:17px;font-weight:500;line-height:1.5;text-decoration:none}
.closing-contact-link:hover{background:#1b454e;border-color:#1b454e;color:var(--paper)}
.closing-contact-link:focus-visible{outline:3px solid var(--night);outline-offset:5px}
.closing-contact-link span{font-size:22px;line-height:1}
@media(max-width:1000px){.closing-bottom{gap:40px}}
@media(max-width:800px){.closing-bottom{grid-template-columns:minmax(0,1fr);gap:38px}.closing-cta{border-top:1px solid #7caa9a;padding-top:30px}.closing-cta h2{font-size:28px;max-width:30ch}}
@media(max-width:700px){.closing-bottom{margin-top:38px;padding-top:30px}.closing-cta p{font-size:19px}}

/* The long view: a continuous, readable chronology. */
.history{padding-block:96px 90px}
.history-intro .section-aside{max-width:29ch;font-size:23px;line-height:1.5;color:var(--teal)}
.prose .history-source-note{font-size:14px;line-height:1.7;color:#52656b;margin-top:30px}
.history-source-note a{color:var(--teal)}
.timeline-heading{margin-top:65px;padding-top:38px;border-top:1px solid #ccdcd9;display:flex;justify-content:space-between;align-items:end;gap:40px}
.timeline-heading h3,.history-takeaway h3{font-size:clamp(29px,3vw,41px);font-weight:500;line-height:1.15;letter-spacing:-.03em;margin:0}
.timeline-heading p{max-width:48ch;font-size:16px;line-height:1.6;color:#52656b;margin:0}
.tech-timeline{list-style:none;margin:36px 0 0;padding:0 0 0 7px}
.tech-timeline>li{position:relative;display:grid;grid-template-columns:145px minmax(180px,.85fr) minmax(0,1.5fr);gap:28px;padding:29px 0 29px 32px;border-left:2px solid #94b9ab;border-bottom:1px solid #d6e1dd}
.tech-timeline>li:before{content:"";position:absolute;left:-7px;top:36px;width:12px;height:12px;border:2px solid var(--teal);border-radius:50%;background:var(--paper);box-sizing:border-box}
.timeline-date{padding-top:2px;font-size:14px;font-weight:500;line-height:1.6;letter-spacing:.025em;color:var(--teal)}
.timeline-label h4{margin:0 0 10px;font-size:26px;font-weight:500;line-height:1.2;letter-spacing:-.025em;text-wrap:balance}
.timeline-label>span{display:block;font-size:16px;line-height:1.5;color:#52656b;max-width:27ch}
.timeline-copy p{margin:0;font-size:18px;line-height:1.65;color:var(--ink)}
.timeline-copy>a,.timeline-source-links a{font-size:14px;line-height:1.6;color:var(--teal)}
.timeline-copy>a{display:inline-block;margin-top:12px}
.timeline-source-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:12px}
.tech-timeline>.timeline-present{background:#eaf2ef;padding-right:24px;border-bottom:0}
.tech-timeline>.timeline-present:before{background:var(--teal)}
.history-takeaway{padding-top:56px;margin-top:55px;border-top:1px solid #ccdcd9}
.history+.story{border-top:1px solid #ccdcd9}
@media(max-width:1100px){.tech-timeline>li{grid-template-columns:112px minmax(170px,.9fr) minmax(0,1.4fr);gap:24px;padding-left:28px}.timeline-label h4{font-size:24px}.timeline-copy p{font-size:17px}}
@media(max-width:1000px){.history{padding-block:72px}.history-intro .section-aside{font-size:21px}.timeline-heading{gap:30px}}
@media(max-width:800px){.timeline-heading{display:block}.timeline-heading p{margin-top:18px;max-width:58ch}.tech-timeline>li{grid-template-columns:minmax(0,1fr);gap:12px;padding:26px 0 28px 26px}.tech-timeline>li:before{top:31px}.timeline-date{padding:0;font-size:14px}.timeline-label h4{font-size:26px;margin-bottom:7px}.timeline-label>span{max-width:none}.timeline-copy p{font-size:18px}.tech-timeline>.timeline-present{padding-right:20px}}
@media(max-width:700px){.history{padding-block:50px}.history-intro .section-aside{font-size:21px;max-width:34ch}.timeline-heading{margin-top:38px;padding-top:30px}.timeline-heading h3,.history-takeaway h3{font-size:31px}.tech-timeline{margin-top:25px}.history-takeaway{margin-top:38px;padding-top:35px}}

.lovelace-feature{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.3fr);align-items:center;gap:clamp(35px,6vw,88px);margin-top:58px;padding:48px 0;border-top:1px solid #ccdcd9;border-bottom:1px solid #ccdcd9}
.lovelace-artwork{width:100%;max-width:360px;margin:0;justify-self:center}
.lovelace-artwork img{display:block;width:100%;height:auto}
.lovelace-artwork figcaption{font-size:12px;line-height:1.6;color:#52656b;margin-top:14px;text-align:center}
.lovelace-artwork figcaption a{color:var(--teal)}
.lovelace-quote{margin:0;min-width:0}
.lovelace-quote .eyebrow{margin-bottom:24px}
.lovelace-quote blockquote{margin:0;max-width:32ch}
.lovelace-quote blockquote p{font-size:clamp(27px,3.2vw,43px);font-weight:400;line-height:1.3;letter-spacing:-.025em;margin:0;color:var(--ink);text-wrap:pretty}
.lovelace-quote figcaption{display:flex;flex-direction:column;align-items:flex-start;gap:9px;font-size:15px;line-height:1.6;color:var(--teal);margin-top:28px}
.lovelace-quote figcaption>span{font-size:18px;font-weight:500;color:var(--ink)}
.lovelace-feature+.timeline-heading{margin-top:44px;padding-top:0;border-top:0}
@media(max-width:800px){.lovelace-feature{grid-template-columns:minmax(0,1fr);gap:30px;padding-block:34px}.lovelace-artwork{max-width:310px}.lovelace-quote{max-width:580px;margin-inline:auto}.lovelace-quote blockquote p{font-size:32px}.lovelace-quote .eyebrow{margin-bottom:18px}}
@media(max-width:700px){.lovelace-feature{margin-top:32px}.lovelace-feature+.timeline-heading{margin-top:32px}}
@media(max-width:450px){.lovelace-quote blockquote p{font-size:29px}}

/* A cinematic pause with an original line portrait beside the quote. */
.lucas-cinema{margin:70px 0 0;background:var(--night);color:var(--paper);border-block:12px solid #061518}
.lucas-quote-frame{display:flex;align-items:center;min-height:clamp(430px,41.84vw,620px);padding-block:46px 40px}
.lucas-quote-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.85fr);align-items:center;gap:clamp(28px,4vw,64px)}
.lucas-quote-copy{min-width:0}
.lucas-portrait{width:100%;max-width:380px;justify-self:end;margin:0}
.lucas-portrait img{display:block;width:100%;height:clamp(310px,32vw,430px);object-fit:contain;filter:contrast(1.2) brightness(.95);mix-blend-mode:lighten}
.lucas-portrait figcaption{font-size:12px;line-height:1.5;color:var(--quiet);text-align:center;margin-top:12px}
.section-light .lucas-cinema .eyebrow{color:var(--mint);margin-bottom:30px}
.lucas-cinema blockquote{margin:0;max-width:820px}
.lucas-cinema blockquote p{font-size:clamp(38px,4.6vw,64px);font-weight:400;line-height:1.14;letter-spacing:-.035em;text-wrap:pretty;margin:0}
.lucas-attribution{font-size:22px;font-weight:500;line-height:1.5;color:var(--mint);margin:30px 0 0}
.lucas-quote-context{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:60px;align-items:start;border-top:1px solid var(--line);padding-block:28px 33px;color:var(--quiet)}
.lucas-quote-context p{font-size:16px;line-height:1.65;max-width:68ch;margin:0}
.lucas-quote-context>a{justify-self:end;font-size:16px;line-height:1.65;color:var(--mint);text-decoration:none}
.lucas-quote-context>a>span[aria-hidden]{margin-left:10px}
.lucas-source{display:block;font-size:13px;color:var(--quiet);margin-top:7px}
.lucas-cinema a:hover{color:var(--mint);text-decoration:underline}
.lucas-cinema+.wrap .history-takeaway{margin-top:0;border-top:0;padding-top:70px}
@media(max-width:800px){.lucas-cinema{margin-top:48px;border-block-width:8px}.lucas-quote-frame{min-height:0;padding-block:44px 32px}.lucas-quote-layout{grid-template-columns:minmax(0,1fr);gap:24px}.lucas-portrait{max-width:240px;justify-self:center}.lucas-portrait img{height:280px}.lucas-cinema blockquote p{font-size:clamp(35px,5.7vw,48px)}.section-light .lucas-cinema .eyebrow{margin-bottom:23px}.lucas-attribution{font-size:20px;margin-top:25px}.lucas-quote-context{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:24px 30px}.lucas-quote-context>a{justify-self:start}.lucas-cinema+.wrap .history-takeaway{padding-top:48px}}

/* A short detour into the tools behind the first web browser. */
.web-did-you-know{grid-column:2/-1;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:30px;padding:30px;background:#eaf2ef;border-left:3px solid var(--teal);margin-top:2px}
.web-did-you-know .eyebrow{font-size:12px;margin:0 0 13px;color:var(--teal)}
.web-fact-heading h5{font-size:clamp(25px,2.4vw,32px);font-weight:500;line-height:1.18;letter-spacing:-.03em;margin:0 0 22px;text-wrap:pretty}
.web-fact-heading h5 em{font-style:normal;color:var(--teal)}
.web-fact-date{font-size:12px;line-height:1.6;letter-spacing:.035em;color:#52656b}
.web-fact-copy p{font-size:17px;line-height:1.65;margin:0 0 16px}
.web-fact-copy .web-fact-punchline{font-weight:500;color:var(--teal);margin:22px 0}
.web-fact-sources{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding-top:19px;border-top:1px solid #b7cec5;font-size:13px;line-height:1.6;color:#52656b}
.web-fact-sources>a{font-size:14px}.web-fact-sources a{color:var(--teal)}
@media(max-width:1100px){.web-did-you-know{gap:24px;padding:25px;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr)}}
@media(max-width:800px){.web-did-you-know{grid-column:1/-1;grid-template-columns:minmax(0,1fr);gap:24px;margin-top:12px;padding:24px}.web-fact-heading h5{font-size:28px;max-width:24ch;margin-bottom:14px}.web-fact-copy p{font-size:17px}}

/* Keep the discarded IBM entry visible as an intentional editorial mark. */
.positions-question{margin:24px 0 0;font-size:17px;line-height:1.6;color:var(--mint)}.positions-question a{display:inline-block;padding-block:6px}.positions-question span{display:inline-block;margin-left:8px}
.timeline-cut .timeline-date,.timeline-cut .timeline-label h4,.timeline-cut .timeline-copy p,.timeline-cut .timeline-copy>a{color:#52656b}
.timeline-cut del{text-decoration-line:line-through;text-decoration-thickness:1.5px;text-decoration-color:#52656b}
.timeline-label>.timeline-edit-note{display:inline-block;color:var(--teal);font-family:"Bradley Hand","Segoe Print","Comic Sans MS",cursive;font-size:26px;font-style:normal;font-weight:400;line-height:1.2;margin-top:18px;max-width:none;transform:rotate(-6deg);transform-origin:left center}


/* Keep the literary type treatment within the long-form essay sections. */
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(instrument-serif-regular.ttf) format("truetype")}
.essay-layout .section-heading h2,.essay-layout .section-heading h3{font-family:"Instrument Serif",Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(44px,4.8vw,68px);line-height:1;letter-spacing:-.025em;margin-bottom:30px}
.essay-layout .section-aside{font-family:"Instrument Serif",Georgia,"Times New Roman",serif;font-size:27px;line-height:1.27;max-width:30ch}
.essay-layout .prose{font-family:"Instrument Serif",Georgia,"Times New Roman",serif;font-size:24px;line-height:1.4;letter-spacing:0;max-width:56ch}
.essay-layout .prose>p{margin-bottom:28px}
.essay-layout .prose>p:last-child{margin-bottom:0}
.essay-layout .prose .story-emphasis{font-size:32px;font-weight:400;line-height:1.2;letter-spacing:-.012em;margin-block:38px}
.essay-layout .history-source-note,.essay-layout .text-link,.essay-layout .references{font-family:ftnk,"Helvetica Neue",Arial,sans-serif}
@media(max-width:700px){.essay-layout .section-heading h2,.essay-layout .section-heading h3{font-size:47px;line-height:1.02;margin-bottom:22px}.essay-layout .section-aside{font-size:26px;line-height:1.28;max-width:34ch}.essay-layout .prose{font-size:23px;line-height:1.42}.essay-layout .prose .story-emphasis{font-size:30px;margin-block:30px}}


/* Context for the call to contact elected representatives. */
/* The representative link and its context form one full-width mint band. */
.constraints{padding-bottom:40px}
.positions-band{background:#d5ffeb;color:#075c36;color-scheme:light;padding-block:40px 90px}
.positions-band .positions-question{margin:0;color:#00733f}
.positions-band .positions-question a:hover{color:#005f35;text-decoration-thickness:2px}
.positions-band .positions-question a:focus-visible{color:#005f35;outline:3px solid #005f35;outline-offset:6px}
.positions-context{margin-top:32px;padding:0;border-top:0;align-items:start}
.positions-context-heading h3{font-size:clamp(30px,3vw,42px);line-height:1.15;color:#00733f;margin:0 0 14px}
.positions-context-heading>p{font-size:18px;line-height:1.5;color:#075c36;max-width:25ch;margin:0}
.positions-context .prose{color:#075c36}
.positions-context .positions-contact-link{display:inline-block;font-family:ftnk,"Helvetica Neue",Arial,sans-serif;font-size:17px;font-weight:500;line-height:1.6;color:#00733f;padding-block:6px}
.positions-context .positions-contact-link:hover{color:#005f35;text-decoration-thickness:2px}
.positions-context .positions-contact-link:focus-visible{color:#005f35;outline:3px solid #005f35;outline-offset:6px}
.positions-contact-link span{display:inline-block;margin-left:8px}
@media(max-width:1000px){.positions-band{padding-bottom:72px}}
@media(max-width:700px){.constraints{padding-bottom:32px}.positions-band{padding-block:32px 50px}.positions-context{margin-top:24px;padding:0;gap:25px}.positions-context-heading h3{font-size:31px}.positions-context-heading>p{max-width:none}}


/* Let essay headings follow their copy, within each desktop section. */
@media(min-width:1001px){
  .essay-layout>.section-heading,
  .essay-layout>.positions-context-heading{
    align-self:start;
    position:sticky;
    top:35px;
  }
}

/* Keep a clear route home at the end of the essay. */
.home-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-block:28px;font-size:16px}.home-footer a{padding-block:8px}
