:root{color-scheme:dark;--bg:#090a0b;--panel:#111315;--text:#eaeef3;--muted:#949ba5;--line:#24282a;--accent:#9dbfe5}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,summary,a{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}a:hover{color:#fff}::selection{background:#385779;color:#fff}.preview-note{display:flex;justify-content:center;gap:20px;padding:9px 16px;border-bottom:1px solid var(--line);font:10px/1.5 ui-monospace,monospace;color:var(--muted)}.preview-note>span{color:var(--accent)}.preview-note a{margin-left:20px;text-decoration:underline}.shell{max-width:880px;margin:auto;padding:0 40px;border-inline:1px solid #ffffff07}.site-header{display:flex;align-items:center;justify-content:space-between;padding:22px 0;position:sticky;top:0;z-index:10;background:#090a0be8;backdrop-filter:blur(24px);border-bottom:1px solid #ffffff0b}.mark{font-size:24px;font-weight:650;letter-spacing:-1.4px}.mark span{font-size:11px;vertical-align:top;margin-left:4px;color:var(--muted)}nav{display:flex;align-items:center;gap:25px;font-size:12px;color:var(--muted)}.nav-contact{border:1px solid #3c4143;border-radius:7px;padding:7px 12px;color:var(--text)}.intro{padding:54px 0 44px}.location,.eyebrow,.aside,.tags,.repo-heading,.life-card span,.github-foot,footer,.dates,.github-head small{font-family:ui-monospace,SFMono-Regular,monospace}.location{font-size:10px;letter-spacing:.1em;display:flex;align-items:center;gap:9px;color:var(--muted)}#clock{margin-left:0;letter-spacing:0}.signal{display:inline-block;width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:var(--accent);box-shadow:0 0 9px #9dbfe535}.identity{display:flex;gap:24px;align-items:center;margin:29px 0 23px}.identity img{width:96px;height:106px;object-fit:cover;object-position:center 30%;border-radius:13px;border:1px solid #ffffff25;padding:3px;background:#1c1f20}.eyebrow{font-size:10px;color:var(--muted);letter-spacing:.09em;margin:0 0 7px}h1{font-size:32px;letter-spacing:-1.5px;line-height:1.2;margin:0;font-weight:620}h1>span{color:var(--accent)}.byline{margin:9px 0 0;color:var(--muted);font-size:13px}.intro-copy{font-size:16px;color:#a4abb5;line-height:1.8;max-width:710px;margin:0 0 24px}.intro-copy strong{font-weight:500;color:#dee3eb}.social-row{display:flex;align-items:center;gap:10px;font-size:11px}.social-row>a{padding:6px 10px;border:1px solid var(--line);background:#ffffff04;border-radius:6px}.education{margin-left:auto;color:#747e8b;font-size:10px}.section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px;gap:12px}h2{font-size:19px;letter-spacing:-.5px;font-weight:550;margin:0}.section-top h2>span{font:10px ui-monospace,monospace;color:#66707d;margin-right:12px}.section-top>a{font-size:11px;color:var(--muted)}.aside{font-size:9px;letter-spacing:.07em;color:#737c89}main>section:not(.intro){padding:34px 0;border-top:1px solid var(--line)}.projects,.life-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.project{border:1px solid var(--line);border-radius:12px;background:#101214;overflow:hidden;transition:transform .2s,border-color .2s}.project:hover{transform:translateY(-3px);border-color:#587ca3}.project-visual{height:180px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-direction:column;background:#141719}.orchestration{background-image:radial-gradient(#353b3b 1px,transparent 1px);background-size:14px 14px}.flow-node,.flow-row span{background:#1a1f20;border:1px solid #48505b;border-radius:6px;padding:7px 19px;font:11px ui-monospace,monospace;box-shadow:0 6px 15px #0005}.flow-node i{font-style:normal;font-size:8px;color:var(--accent);margin-left:12px}.connector{height:22px;width:1px;background:#5a6472}.flow-row{display:flex;gap:9px}.flow-row span{padding:6px 13px;color:#aab8c9}.flow-caption{font:9px ui-monospace,monospace;color:#7e8fa5;margin-top:17px}.jewelry{background:#14171b;color:#c2d1e0;gap:2px}.jewelry-monogram{font:italic 56px Georgia,serif;letter-spacing:-6px;margin-bottom:9px}.jewelry>span:not(.jewelry-monogram){font:10px Georgia,serif;letter-spacing:5px}.jewelry small{font:7px ui-monospace,monospace;letter-spacing:2px;margin-top:10px;color:#7e8998}.project-copy{padding:21px}.project-title{display:flex;align-items:center;justify-content:space-between}h3{margin:0;font-size:16px;letter-spacing:-.3px;font-weight:550}.project-title>span{color:#707986}.project p{font-size:12px;line-height:1.8;color:var(--muted);min-height:64px;margin:11px 0 18px}.tags{display:flex;gap:7px;flex-wrap:wrap;font-size:9px;color:#a0adbd}.tags span{background:#ffffff06;border:1px solid #ffffff0b;padding:2px 7px;border-radius:4px}details{border-bottom:1px solid #ffffff08;padding:15px 0}details:last-child{border:0}summary{display:flex;align-items:center;gap:14px;cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.company-icon{width:35px;height:35px;border:1px solid #34383e;border-radius:8px;display:grid;place-items:center;background:#16181c;font-size:13px}.aws{font-size:10px}.company{display:flex;flex-direction:column}.company strong{font-size:13px;font-weight:500}.company small{color:var(--muted);font-size:11px}.dates{margin-left:auto;font-size:10px;color:var(--muted)}.expand{font-size:17px;color:#66707d}details[open] .expand{transform:rotate(45deg)}details p{font-size:12px;color:var(--muted);margin:15px 35px 0 49px}.github-panel{border:1px solid var(--line);border-radius:12px;padding:23px;background:#0e1011}.github-head{display:flex;align-items:center;gap:9px;font-size:12px}.github-head small{margin-left:auto;font-size:9px;color:#7b8694}.stats{display:grid;grid-template-columns:repeat(3,1fr);margin:25px 0}.stat{border-right:1px solid var(--line);padding-left:25px}.stat:first-child{padding-left:0}.stat:last-child{border:0}.stat strong{display:block;font-size:30px;letter-spacing:-1px;font-weight:500}.stat span{font-size:11px;color:var(--muted)}.repo-heading{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.07em;color:#7e8b9b;padding:16px 0 7px;border-top:1px solid var(--line)}.repo{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #ffffff08;font-size:12px}.repo:last-child{border:0}.repo small{font-size:10px;color:var(--muted);margin-left:auto}.repo>span:first-child{color:#667d99;font-family:monospace}.github-foot{color:#758190;font-size:9px;margin:14px 0 0}.life-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#111315}.life-card img{width:100%;height:160px;object-fit:cover;filter:saturate(.65);transition:filter .25s}.life-card:hover img{filter:saturate(1)}.life-card>div{padding:17px}.life-card span{font-size:8px;letter-spacing:.1em;color:var(--muted)}.life-card h3{font-size:15px;margin:6px 0}.life-card p{font-size:11px;color:var(--muted);margin:0}.listening{display:flex;align-items:center;gap:15px;border:1px solid var(--line);border-radius:9px;padding:15px;margin-top:16px;font-size:11px;background:#ffffff02}.music-icon{font-size:25px;color:#a7c4e6}.listening div{display:flex;flex-direction:column}.listening small{font:8px ui-monospace,monospace;color:var(--muted);letter-spacing:.07em}.listening strong{font-size:12px;font-weight:500;margin-top:2px}.listening>span:last-child{margin-left:auto;color:var(--muted)}#contact{padding:46px 0 50px}#contact h2{font-size:34px;font-weight:500;letter-spacing:-1.3px;line-height:1.25;margin:16px 0 25px}.contact-button{display:inline-block;background:#dce5ef;color:#142033;padding:9px 17px;border-radius:7px;font-size:12px;font-weight:600}.contact-button:hover{background:white;color:#142033}footer{padding:23px 0 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:9px;color:#798492}footer .signal{margin-left:7px;width:4px;height:4px}@media(max-width:640px){.shell{padding:0 22px;border:0}.preview-note{font-size:8px;gap:8px}.preview-note a{margin-left:auto}nav{gap:14px}.intro{padding-top:32px}.identity{gap:16px}.identity img{width:76px;height:86px}h1{font-size:25px}.byline{font-size:11px}.intro-copy{font-size:14px}.education{display:none}.aside{display:none}.projects,.life-grid{grid-template-columns:1fr}.project p{min-height:0}.project-visual{height:190px}.github-head small{font-size:8px}.github-panel{padding:18px}.stat{padding-left:16px}.stat strong{font-size:25px}.repo small{max-width:100px;text-align:right}.dates{font-size:9px}#contact h2{font-size:30px}footer>span:nth-child(2){display:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Expanded preview: real project imagery and existing personal content. */
.project-visual.screenshot{padding:12px;background:#181b1d}.screenshot img{width:100%;height:100%;object-fit:contain;border-radius:5px}.type-cover{padding:24px;align-items:flex-start;gap:15px;background:#131719}.type-cover small{font:12px ui-monospace,monospace;color:#9aafc8;letter-spacing:.08em}.type-cover strong{font-size:23px;line-height:1.3;font-weight:500;letter-spacing:-.8px}.type-cover span{font-size:13px;color:var(--muted)}.project-action{font-size:13px;color:var(--accent)}.project p{font-size:14px;min-height:0}.project-copy{padding:20px}.projects{align-items:stretch}.project{display:flex;flex-direction:column}.project-visual{flex-shrink:0}.project-copy{display:flex;flex-direction:column;flex:1}.project-action{margin-top:auto}.studio-books{display:flex;gap:20px;overflow-x:auto;padding:4px 0 20px;scroll-snap-type:x mandatory}.studio-books>a{flex:0 0 115px;scroll-snap-align:start}.studio-books img{height:165px;width:115px;object-fit:contain;object-position:bottom;border-radius:3px}.studio-books [hidden]{display:none}.spotify-card{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:20px;margin-top:20px;background:var(--panel)}.spotify-art{width:90px;height:90px;background:#17212e;border:1px solid #2c3c50;border-radius:8px;display:grid;place-items:center;font-size:32px;color:#8eafd6;flex-shrink:0}.spotify-copy p{font-size:14px;color:var(--muted);margin:5px 0 12px}.spotify-state{font-size:12px;color:#9dbfe5;margin-bottom:6px}.spotify-links{font-size:13px}.spotify-links [hidden]{display:none}.activity-intro{padding:25px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.strava-brand{font-size:12px;font-weight:700;color:#fc4c02;letter-spacing:.12em}.activity-intro h3{margin-top:12px}.activity-intro p{font-size:14px;color:var(--muted)}.activity-link{display:inline-block;border-bottom:1px solid #fc4c02;font-size:14px}.contact-socials{margin-top:20px}body{font-size:16px}nav,.social-row,.section-top>a{font-size:14px}.byline,.company small,details p,.life-card p{font-size:14px}.company strong{font-size:15px}.aside{display:none}@media(max-width:640px){nav{gap:10px;font-size:12px}.spotify-card{align-items:flex-start;padding:16px;gap:14px}.spotify-art{width:64px;height:64px}.identity h1{font-size:24px}.section-top{align-items:flex-start}.section-top>a{text-align:right;font-size:12px}.social-row{flex-wrap:wrap}}

.studio-aws{padding:24px 0;border-bottom:1px solid var(--line)}.aws-title{display:flex;align-items:center;gap:14px;margin-bottom:28px}.aws-title h3{font-size:16px}.aws-title>div>span{font-size:13px;color:var(--muted)}.career-timeline{list-style:none;margin:0 0 0 17px;padding:0 0 0 30px;border-left:1px solid #343a42}.career-timeline>li{position:relative;padding:0 0 30px}.career-timeline>li:last-child{padding-bottom:0}.career-timeline>li:before{content:"";position:absolute;left:-35px;top:7px;width:7px;height:7px;background:#9db7d5;border:1px solid var(--bg);border-radius:50%}.role-date{font:12px/1.7 ui-monospace,monospace;color:var(--muted);margin-bottom:9px}.role-date>span{display:block;font-size:11px;color:#778392;margin-top:3px}.role-content h4{font-size:16px;font-weight:550;margin:0 0 4px}.role-content .role-team{font-size:14px;color:var(--accent);margin:0 0 12px}.role-content ul{padding-left:18px;color:var(--muted);font-size:14px;line-height:1.8}.role-content li{padding-left:3px;margin:7px 0}.role-links{display:flex;gap:14px;flex-wrap:wrap;font-size:13px}.role-links a{text-decoration:underline;text-underline-offset:4px;color:#b9c9dd}@media(max-width:640px){.career-timeline{padding-left:21px;margin-left:10px}.career-timeline>li:before{left:-26px}.aws-title>div>span{font-size:12px}}

.aws-role .role-content{margin:16px 0 4px 49px}.aws-role .company{flex:1;min-width:0}.aws-role .dates{white-space:nowrap}.aws-role summary{align-items:flex-start}.aws-role .company-icon{flex-shrink:0}.aws-role .role-links{margin-top:14px}@media(max-width:640px){.aws-role summary{flex-wrap:wrap}.aws-role .company{flex-basis:calc(100% - 75px)}.aws-role .dates{margin-left:49px}.aws-role .expand{margin-left:auto}.aws-role .role-content{margin-left:20px}}

.calendar-scroll{overflow-x:auto;padding:8px 0 12px}.contribution-calendar{display:grid;grid-template-rows:repeat(7,10px);grid-auto-flow:column;grid-auto-columns:10px;gap:3px;width:max-content}.contribution-calendar a,.calendar-legend i{display:block;width:10px;height:10px;border-radius:2px;background:#18212d}.contribution-calendar [data-level="1"],.calendar-legend [data-level="1"]{background:#193957}.contribution-calendar [data-level="2"],.calendar-legend [data-level="2"]{background:#285a88}.contribution-calendar [data-level="3"],.calendar-legend [data-level="3"]{background:#428ac0}.contribution-calendar [data-level="4"],.calendar-legend [data-level="4"]{background:#83bdf1}.calendar-months{display:grid;grid-auto-flow:column;grid-auto-columns:13px;width:max-content;height:23px;font-size:10px;color:var(--muted)}.calendar-legend{display:flex;justify-content:flex-end;gap:5px;align-items:center;font-size:11px;color:var(--muted);margin-top:8px}.calendar-legend span{margin:0 4px}.contribution-calendar a:hover{outline:1px solid #c4d9f0;outline-offset:1px}

#spotify .spotify-card{margin-top:0}.shelf-group{padding:20px 0;border-top:1px solid var(--line)}.shelf-group h3{font-size:15px;margin-bottom:15px}.shelf-group h3 span{font-size:12px;font-weight:400;color:var(--muted);margin-left:8px}.reading-empty{font-size:14px;color:var(--muted);margin:0}.shelf-group:last-child{padding-bottom:0}

:root{--fg:var(--text);--surface:var(--panel);--mono:ui-monospace,SFMono-Regular,monospace} [hidden]{display:none!important} .skip{position:absolute;left:20px;top:-100px;z-index:30}.skip:focus{top:10px;background:var(--panel);padding:12px}.site-header nav>a{display:block} .site-header{gap:18px}.site-header nav{flex-wrap:wrap;justify-content:flex-end}.bookshelf-container{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:0 24px}.bookshelf-container .shelf-group:last-child{padding-bottom:22px}.bookshelf-container .shelf-group:first-child{border-top:0}.spotify-art{overflow:hidden}.spotify-art img{width:100%;height:100%;object-fit:cover}.spotify-copy{min-width:0}.spotify-copy h3{overflow-wrap:anywhere}.spotify-progress{height:3px;margin:14px 0;background:#26364a;overflow:hidden;border-radius:3px}.spotify-progress span{height:100%;display:block;background:#82b3e5}.spotify-links{display:flex;gap:18px;flex-wrap:wrap}.spotify-card{min-height:154px}.current-notes{display:grid;grid-template-columns:1fr 1fr;gap:16px}.current-note{padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.current-note p{font-size:14px;color:var(--muted)}.current-note h3{margin:12px 0}.current-note a{text-decoration:underline}.section-label h2 br{display:none}.life-card:nth-child(2) img{object-position:center 25%}@media(max-width:640px){.current-notes{grid-template-columns:1fr}.site-header nav{font-size:12px;gap:12px}.bookshelf-container{padding:0 16px}.social-row{font-size:13px}}

#activity[hidden], #activity [hidden] { display:none !important; }
.strava-activities { columns:2; column-gap:20px; margin:24px 0; }
.strava-activity { min-width:0; break-inside:avoid; margin-bottom:24px; }
.strava-activity iframe { display:block; width:100%; height:560px; border:0; border-radius:10px; background:#fff; }
.strava-activity > a { display:inline-block; margin-top:10px; font-size:12px; color:var(--muted); }
@media(max-width:1000px) { .strava-activities { columns:1; } }

.strava-custom-card{padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.strava-custom-card .strava-sport{margin:0 0 12px;color:var(--muted);font-size:12px;letter-spacing:.04em}
.strava-custom-card h3{margin:0 0 8px;font-size:23px;line-height:1.3;overflow-wrap:anywhere}
.strava-custom-card time{display:block;font-size:12px;color:var(--muted)}
.strava-stats{display:flex;flex-wrap:wrap;gap:20px;margin:24px 0}
.strava-stats dt{font-size:11px;color:var(--muted);margin-bottom:5px}
.strava-stats dd{margin:0;font-size:19px}
.strava-custom-card img{display:block;width:100%;max-height:420px;object-fit:cover;border-radius:7px;margin-bottom:16px}
.strava-custom-card>a{color:var(--fg);text-decoration:underline;text-underline-offset:4px}

/* Equal cards, with a fixed media area for routes, photos, or indoor sessions. */
.strava-activities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;columns:auto}
.strava-custom-card{display:flex;flex-direction:column;margin:0;padding:20px;min-width:0}
.strava-custom-card .strava-sport{color:#fc4c02;font-weight:700;letter-spacing:.055em}
.strava-custom-card h3{font-size:21px;height:2.6em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.strava-custom-card time{min-height:2.8em}
.strava-stats{min-height:48px;margin:18px 0;gap:14px}
.strava-media{display:flex;height:240px;flex:0 0 240px;overflow:hidden;border-radius:8px;background:var(--bg);border:1px solid var(--line);margin-top:auto}
.strava-route{height:100%;width:100%;min-width:0;z-index:0;background:#e5e9e4}
.strava-custom-card .strava-photo{display:block;height:100%;width:100%;object-fit:cover;max-height:none;margin:0;border-radius:0}
.strava-media-pair .strava-route{width:60%}.strava-media-pair .strava-photo{width:40%}
.strava-media-label{display:flex;align-items:center;justify-content:center;width:100%;font-size:18px;color:var(--muted);border-top:3px solid #fc4c02}
.strava-custom-card>a{display:block;background:#fc4c02;color:#fff;text-align:center;padding:11px 12px;border-radius:6px;margin-top:16px;font-weight:700;text-decoration:none}
.strava-route .leaflet-tile{max-height:none!important;border-radius:0!important;margin:0!important}
@media(max-width:1000px){.strava-activities{grid-template-columns:1fr}}

.strava-media-empty{height:0;flex-basis:0;border:0;background:transparent}
.strava-card-no-media{align-self:start}
.strava-card-no-media .strava-media-empty{flex-grow:0}

.strava-media{position:relative;isolation:isolate}
.strava-carousel-controls{position:absolute;left:12px;right:12px;top:12px;z-index:500;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.strava-carousel-controls button,.strava-carousel-controls span{pointer-events:auto;background:#161616e8;color:#fff;border:1px solid #ffffff40;border-radius:20px}
.strava-carousel-controls button{width:36px;height:36px;cursor:pointer;font:20px/1 sans-serif}
.strava-carousel-controls span{padding:7px 12px;font-size:12px}
.strava-carousel-controls button:focus-visible{outline:3px solid #fc4c02;outline-offset:2px}

.strava-activities{grid-template-columns:repeat(2,minmax(0,1fr))}.strava-custom-card h3{font-size:18px}.strava-custom-card{background:var(--panel)}@media(max-width:640px){.strava-activities{grid-template-columns:1fr}}

.project-visual.generated-cover{position:relative;display:block;padding:0;height:auto;aspect-ratio:605/395;overflow:hidden;background:#090a0b}.generated-cover img{position:absolute;width:207.272727%;max-width:none;height:317.468354%;max-height:none;object-fit:fill;display:block;border-radius:0}

/* Consistent image frames with an uncropped portrait. */
.life-card>div.life-image{height:240px;padding:16px;display:flex;align-items:center;justify-content:center;background:#151819;border-bottom:1px solid var(--line)}
.life-card .life-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:6px;filter:none}
.life-card .life-portrait img{width:auto;max-width:100%;object-fit:contain;object-position:center}
@media(max-width:640px){.life-card>div.life-image{height:260px}}

.location{flex-wrap:wrap}#clock{white-space:nowrap}

.intro .location{letter-spacing:0}

/* Give mobile artwork a definite frame before lazy-loaded images arrive. */
@media(max-width:640px){
 .studio-home .projects {grid-template-columns:minmax(0,1fr)}
 .studio-home .project {min-width:0}
 .studio-home .project-visual.generated-cover {width:100%;height:auto;min-height:0;aspect-ratio:605/395;flex:0 0 auto}
 .studio-home .project-visual:not(.generated-cover) {height:auto;aspect-ratio:3/2;overflow:hidden}
 .studio-home .project-visual:not(.generated-cover) img {display:block;width:100%;height:100%;object-fit:contain!important}
}

.intro-bio{min-width:0}.intro-bio .identity{gap:16px}.intro-bio h1{font-size:28px}.intro-bio .social-row{flex-wrap:wrap}.intro-bio .education{margin-left:0;width:100%}@media(max-width:640px){.intro-bio h1{font-size:25px}}

/* Baby Zen stays tucked into the contact section edge, clear of links. */
.baby-zen-spot{position:relative}
.baby-zen-peek{position:absolute;right:18px;bottom:0;width:48px;height:44px;overflow:hidden;pointer-events:none}
.baby-zen-peek img{display:block;width:72px;height:72px;margin:-24px 0 0 -12px;image-rendering:pixelated}

/* Contract services use the portfolio's existing type, colors, and section rhythm. */
.contract-availability{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--accent);font-size:13px;margin-top:20px;padding:7px 0}
.contract-availability>span:first-child{width:6px;height:6px;background:var(--accent);border-radius:50%}
.contract-availability:hover,.services-bottom a:hover,.contact-description a:hover{color:var(--text)}
.contract-services .section-top{gap:16px;flex-wrap:wrap}
.contract-kicker,.service-number{font:10px/1.6 ui-monospace,SFMono-Regular,monospace;letter-spacing:.07em;color:var(--muted)}
.contract-services .services-lead{font-size:25px;line-height:1.35;font-weight:550;letter-spacing:-.6px;margin:0 0 12px;max-width:600px}
.services-intro{color:var(--muted);font-size:15px;max-width:650px;margin:0 0 28px}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
.service-item{padding:22px 0;border-top:1px solid var(--line);min-width:0}
.service-item h3{font-size:16px;line-height:1.45;margin:9px 0 8px;font-weight:550}
.service-item p{font-size:14px;color:var(--muted);margin:0;line-height:1.75}
.services-bottom{border-top:1px solid var(--line);padding-top:24px}
.services-bottom>p{font-size:13px;color:var(--muted);margin:0 0 24px;max-width:660px}
.services-bottom>p a{color:var(--accent);white-space:nowrap}
.services-inquiry{display:flex;align-items:center;gap:28px;justify-content:space-between;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:24px}
.services-inquiry h3{margin:0 0 7px;font-size:16px;font-weight:550}
.services-inquiry p{font-size:14px;color:var(--muted);margin:0;max-width:440px}
.project-inquiry{display:inline-flex;flex-shrink:0;border:1px solid #526479;border-radius:7px;padding:10px 15px;font-size:13px;color:var(--text)}
.project-inquiry:hover{background:#1b2734}
.contact-description{max-width:550px;font-size:14px;color:var(--muted)}
.contact-description a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
@media(max-width:640px){.contract-services .services-lead{font-size:23px}.service-grid{grid-template-columns:minmax(0,1fr)}.services-inquiry{align-items:flex-start;flex-direction:column;gap:18px;padding:20px}.contract-kicker{font-size:9px}.services-bottom>p a{white-space:normal}}

.life-grid:has(> .life-card:only-child){grid-template-columns:minmax(0,1fr)}

/* A single About card uses the space as a portrait and introduction. */
.life-card:only-child{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:center}
.life-card:only-child>div.life-image{height:220px;padding:16px;border-bottom:0;border-right:1px solid var(--line);background:var(--panel)}
.life-card:only-child .life-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.life-card:only-child>div:not(.life-image){padding:28px}
@media(max-width:480px){.life-card:only-child{grid-template-columns:minmax(0,1fr)}.life-card:only-child>div.life-image{height:240px;border-right:0;border-bottom:1px solid var(--line)}.life-card:only-child .life-portrait img{width:auto;max-width:100%;object-fit:contain}.life-card:only-child>div:not(.life-image){padding:20px}}

.current-book{display:flex;align-items:center;gap:24px;margin-top:18px}.current-book>.book-cover-link{flex:0 0 110px;width:110px}.current-book .book-cover{display:block;width:110px;height:auto;object-fit:contain}.current-book-copy h4{margin:0 0 8px;font-size:18px}.current-book-copy p{margin:0 0 16px;color:var(--muted,#a0a4aa)}

.project-visual.course-preview{height:auto;aspect-ratio:605/395;padding:12px;background:#090a0b;overflow:hidden}
.course-preview img{display:block;width:100%;height:100%;object-fit:contain}
