:root { --ink:#151515; --muted:#686865; --line:#dfdfda; --paper:#f7f7f4; --accent:#1d5b46; }
* { box-sizing:border-box; }
html { background:var(--paper); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; }
body { margin:0; min-width:320px; }
a { color:inherit; text-decoration:none; }
a:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.wrap { max-width:1100px; margin-inline:auto; padding-inline:32px; }
.site-header { height:92px; display:flex; align-items:center; justify-content:space-between; }
.wordmark { font-family:"DM Mono",monospace; font-size:18px; font-weight:500; letter-spacing:-.08em; }
.wordmark span, .cursor { color:var(--accent); }
nav { display:flex; gap:25px; font-family:"DM Mono",monospace; font-size:12px; }
nav a { color:var(--muted); padding-block:4px; border-bottom:1px solid transparent; }
nav a:hover, nav a.active { color:var(--ink); border-color:var(--ink); }
.hero { padding:112px 0 132px; max-width:800px; }
.eyebrow, dt, time, footer { font-family:"DM Mono",monospace; font-size:11px; letter-spacing:.02em; text-transform:uppercase; }
.eyebrow { color:var(--accent); margin:0 0 25px; }
h1,h2,p { margin-top:0; }
h1 { font-size:clamp(42px,6.1vw,65px); line-height:1.04; font-weight:500; margin-bottom:30px; }
.intro { color:#53534f; font-size:20px; line-height:1.5; max-width:540px; margin-bottom:34px; }
.text-link, .app-link { font-size:15px; font-weight:600; border-bottom:1px solid var(--ink); padding-bottom:3px; }
.text-link span, .app-link span { color:var(--accent); margin-left:5px; }
.rule { border-top:1px solid var(--line); }
.content-section { display:grid; grid-template-columns:1fr 2fr; gap:32px; padding:66px 0 70px; }
.aperture-details p { color:#53534f; font-size:18px; line-height:1.65; max-width:620px; }
.aperture-details .button { display:inline-block; margin:5px 0 12px; padding:11px 16px; border:1px solid var(--accent); background:var(--accent); color:var(--paper); font-size:14px; font-weight:600; line-height:1.2; }
.aperture-details .button:hover { background:var(--ink); border-color:var(--ink); }
.aperture-details .button:focus-visible { outline-color:var(--accent); outline-offset:4px; }
.section-label .eyebrow { margin-bottom:12px; }
h2 { font-size:21px; font-weight:500; letter-spacing:-.04em; margin-bottom:0; }
.activity-list { list-style:none; padding:0; margin:0; }
.activity-list li { display:grid; grid-template-columns:130px 1fr; border-top:1px solid var(--line); padding:16px 0; }
.activity-list li:last-child { border-bottom:1px solid var(--line); }
.activity-list time { color:var(--muted); padding-top:4px; }
.activity-list p { font-size:16px; margin:0; line-height:1.45; }
.activity-list a { border-bottom:1px solid var(--ink); }
.contact-copy { color:#53534f; max-width:430px; font-size:17px; line-height:1.55; margin-bottom:25px; }
.contact-links { list-style:none; margin:0; padding:0; display:flex; gap:21px; font-size:15px; font-weight:600; }
.contact-links a { border-bottom:1px solid var(--ink); padding-bottom:3px; }
.contact-links span { color:var(--accent); margin-left:3px; }
footer { display:flex; justify-content:space-between; color:var(--muted); padding-top:25px; padding-bottom:35px; }
footer p { margin:0; }
.page-heading { padding:80px 0 83px; }
.page-heading .eyebrow { margin-bottom:22px; }
.page-heading h1 { font-size:clamp(46px,6vw,68px); margin-bottom:22px; }
.page-heading > p:last-child { color:#53534f; font-size:18px; margin:0; }
.software-list { border-top:1px solid var(--line); margin-bottom:82px; }
.app-card { display:grid; grid-template-columns:1.4fr 1fr auto; gap:32px; align-items:start; padding:32px 0 34px; border-bottom:1px solid var(--line); }
.app-main h2 { margin-bottom:9px; font-size:25px; }
.app-main p { color:#53534f; line-height:1.48; max-width:390px; margin:0; }
.app-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:3px 0 0; }
.app-meta div { display:grid; gap:7px; }
dt { color:var(--muted); }
dd { margin:0; font-size:14px; }
.app-link { margin-top:4px; font-size:14px; white-space:nowrap; }
@media (max-width:700px) { .wrap { padding-inline:22px; } .site-header { height:75px; } .hero { padding:78px 0 88px; } .intro { font-size:18px; } .content-section { grid-template-columns:1fr; gap:28px; padding:49px 0 54px; } .aperture-details p { font-size:17px; line-height:1.6; } .activity-list li { grid-template-columns:90px 1fr; } .contact-links { flex-wrap:wrap; gap:14px 20px; } .page-heading { padding:62px 0 65px; } .app-card { grid-template-columns:1fr; gap:24px; padding:27px 0 29px; } .app-meta { max-width:430px; } .app-link { width:max-content; margin-top:-10px; } }
@media (max-width:410px) { .app-meta { grid-template-columns:1fr 1fr; } }
video { max-width: 100%; }