
:root{--bg:#f6f6f3;--paper:#fff;--ink:#171717;--muted:#676767;--line:#d9ddda;--cyan:#69d7dc;--cyan-deep:#2daeb7;--soft:#eef8f8;--black:#101111;--ok:#138a5b;--warn:#b47817;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;line-height:1.58;-webkit-font-smoothing:antialiased}a{color:inherit}img{max-width:100%;display:block}.wrap{width:min(var(--max),calc(100% - 40px));margin:0 auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(246,246,243,.93);backdrop-filter:blur(12px);border-bottom:1px solid rgba(23,23,23,.08)}.nav{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:18px;font-weight:800;letter-spacing:.04em;text-decoration:none}.brand b{color:var(--cyan-deep)}.nav-links{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.nav-links a{text-decoration:none;font-size:14px;color:#303030;border-bottom:1px solid transparent;padding:4px 0}.nav-links a:hover,.nav-links a.active{border-color:var(--cyan-deep)}.hero-banner{width:100%;background:#fff;border-bottom:1px solid var(--line)}.hero-banner img{width:100%;aspect-ratio:3/1;object-fit:cover;object-position:center}.hero-copy{padding:70px 0 58px}.eyebrow{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:700;color:var(--cyan-deep)}.eyebrow:before{content:"";width:28px;height:1px;background:var(--cyan-deep)}h1,h2,h3{font-family:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,"Times New Roman",serif;font-weight:500;line-height:1.05;margin:0;color:var(--ink)}h1{font-size:clamp(48px,8vw,104px);letter-spacing:-.045em;max-width:1080px}h2{font-size:clamp(35px,5vw,64px);letter-spacing:-.03em}h3{font-size:26px;letter-spacing:-.015em}.lede{font-family:Georgia,"Times New Roman",serif;font-size:clamp(20px,2.4vw,31px);line-height:1.36;color:#333;max-width:900px;margin:26px 0 0}.section{padding:84px 0;border-top:1px solid var(--line)}.section.dark{background:var(--black);color:#eee;border-top:0}.section.dark h2,.section.dark h3{color:#fff}.section.dark p,.section.dark .muted{color:#bfc5c3}.grid{display:grid;gap:22px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--paper);border:1px solid var(--line);padding:28px;min-height:100%;border-radius:2px}.card.soft{background:var(--soft)}.card.darkcard{background:#171919;border-color:#2a3030}.kicker{font-size:12px;letter-spacing:.11em;text-transform:uppercase;font-weight:800;color:var(--cyan-deep);margin-bottom:12px}.card p{margin:14px 0 0;color:#4f4f4f}.big-number{font-family:Georgia,"Times New Roman",serif;font-size:52px;line-height:1;color:var(--cyan-deep)}.status{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid #b9d9cb;background:#eef8f3;color:var(--ok);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:800}.status.warn{color:var(--warn);background:#fff7e7;border-color:#ead3a3}.proof-table{width:100%;border-collapse:collapse;margin-top:28px;background:#fff}.proof-table th,.proof-table td{padding:15px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.proof-table th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#737373}.proof-table td:first-child{font-weight:700}.code{background:#101212;color:#dfe9e8;border:1px solid #252b2b;padding:22px;overflow:auto;font:14px/1.55 Consolas,"SFMono-Regular",monospace;white-space:pre-wrap}.quote{font-family:Georgia,"Times New Roman",serif;font-size:30px;line-height:1.3;border-left:2px solid var(--cyan-deep);padding-left:24px;margin:0}.steps{counter-reset:step;display:grid;gap:16px;margin-top:30px}.step{counter-increment:step;display:grid;grid-template-columns:54px 1fr;gap:18px;align-items:start;padding:20px 0;border-top:1px solid var(--line)}.step:before{content:counter(step,decimal-leading-zero);font-family:Georgia,"Times New Roman",serif;font-size:27px;color:var(--cyan-deep)}.step p{margin:6px 0 0;color:#555}.footer{padding:46px 0;border-top:1px solid var(--line);font-size:13px;color:#696969}.footer-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}.pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.pill{padding:6px 9px;border:1px solid var(--line);font-size:12px;background:white}.link-card{text-decoration:none;transition:transform .15s ease,border-color .15s ease}.link-card:hover{transform:translateY(-2px);border-color:var(--cyan-deep)}.progress{height:8px;background:#e6e8e5;margin:16px 0 6px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--cyan-deep)}.note{padding:18px 20px;background:#fff;border-left:3px solid var(--cyan-deep);color:#4b4b4b}.timeline{border-left:1px solid var(--line);padding-left:24px;margin-top:30px}.timeline article{position:relative;padding:0 0 34px 10px}.timeline article:before{content:"";position:absolute;left:-30px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--cyan-deep)}.timeline time{font-size:12px;color:#777;text-transform:uppercase;letter-spacing:.08em}.timeline h3{margin-top:7px}.timeline p{color:#555}.small{font-size:13px;color:#777}@media(max-width:820px){.nav{height:auto;padding:16px 0;align-items:flex-start;flex-direction:column}.nav-links{gap:14px}.hero-copy{padding:48px 0}.section{padding:60px 0}.grid-2,.grid-3{grid-template-columns:1fr}.wrap{width:min(var(--max),calc(100% - 28px))}.proof-table{display:block;overflow-x:auto}}

.gallery-intro{align-items:end}.gallery-lede{font-size:22px;max-width:none;margin-top:0}.portrait-section{background:linear-gradient(180deg,#f6f6f3 0%,#f3f6f6 100%)}.portrait-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.portrait-card{margin:0;background:#fff;border:1px solid var(--line);padding:18px}.portrait-card img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#ececea}.portrait-card figcaption{margin-top:12px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:#6a6a6a}.site-header .brand{display:flex;align-items:center;gap:10px}.site-header .brand:before{content:"";display:inline-block;width:26px;height:26px;border-radius:6px;background:url("favicon-32x32.png") center/cover no-repeat;flex:0 0 26px;box-shadow:0 0 0 1px rgba(0,0,0,.06)}@media(max-width:820px){.portrait-row{grid-template-columns:1fr}.gallery-lede{font-size:20px}}