/* Local review only: no external fonts, scripts, or required network requests. */
:root { color-scheme:dark; --bg:#080a0b; --panel:#111517; --text:#f4f5f2; --muted:#bbc3c2; --line:#3b4547; --accent:#b5f36c; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--text); font-family:Arial,Helvetica,sans-serif; font-size:1.125rem; line-height:1.55; }
a { color:inherit; text-underline-offset:.23em; }
a:hover { color:var(--accent); }
a:focus-visible { outline:3px solid var(--accent); outline-offset:5px; border-radius:2px; }
h1,h2,p { overflow-wrap:break-word; }
.accent { color:var(--accent); }
.shell { width:min(100% - 2.5rem,72rem); margin-inline:auto; }
.skip-link { position:absolute; top:-8rem; left:1rem; z-index:10; padding:.7rem 1rem; background:var(--accent); color:var(--bg); font-weight:700; }
.skip-link:focus { top:1rem; }
/* Short homepage */
.home-header-inner { display:flex; align-items:center; justify-content:flex-end; min-height:4.5rem; }
.home-main { display:flex; align-items:center; min-height:calc(100svh - 4.5rem); padding-block:5rem; }
.home-content { width:min(100%,52rem); }
.home-content h1 { margin:0; font-size:clamp(3rem,6vw,4.5rem); line-height:1.04; letter-spacing:-.065em; }
.home-intro { max-width:52rem; margin:1.8rem 0 .25rem; font-size:clamp(1.25rem,2vw,1.55rem); line-height:1.4; letter-spacing:-.02em; }
.home-intro p { margin:0; }
.home-intro p.home-landing { margin-top:1.35rem; }
.home-landing span { display:block; }
.draft-note { margin:0; color:var(--muted); font-size:.9rem; }
.home-routes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:5rem; }
.route { display:grid; grid-template-columns:5.5rem minmax(0,1fr); align-items:center; gap:1rem; min-height:10rem; padding:1.5rem; border:1px solid var(--line); border-radius:.3rem; background:var(--panel); text-decoration:none; }
.route:hover { border-color:var(--accent); }
.route-icon { display:block; width:5.5rem; height:5.5rem; border:2px solid #758487; border-radius:.7rem; }
.route-copy { display:flex; flex-direction:column; gap:.75rem; min-width:0; }
.route-title { display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; min-width:0; overflow-wrap:anywhere; font-size:clamp(1.6rem,3vw,2.1rem); line-height:1.1; letter-spacing:-.045em; font-weight:800; }
.route-title span { color:var(--accent); font-size:1.25rem; line-height:1.2; }
.route-description { color:var(--muted); font-size:1rem; }
/* Personal and Professional pages */
.site-header { border-bottom:1px solid var(--line); }
.header-inner { min-height:5.25rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.site-name { display:inline-flex; align-items:center; min-height:2.75rem; white-space:nowrap; font-weight:800; font-size:1.25rem; letter-spacing:-.04em; text-decoration:none; }
.nav-list { display:flex; flex-wrap:wrap; align-items:center; gap:.2rem 1.25rem; margin:0; padding:0; list-style:none; }
.nav-list a { display:inline-flex; align-items:center; min-height:2.75rem; padding:.2rem .1rem; font-size:1rem; font-weight:700; text-decoration:none; }
.nav-list a[aria-current="page"] { color:var(--accent); text-decoration:underline; }
.inner-main { padding-bottom:7rem; }
.page-heading { padding-block:clamp(4.5rem,8vw,7rem) clamp(3rem,6vw,5rem); }
.eyebrow,.item-label { margin:0 0 .9rem; color:var(--accent); font-size:.83rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.page-heading h1 { margin:0; font-size:clamp(3.5rem,8vw,6rem); line-height:1; letter-spacing:-.07em; }
.page-heading p:last-child { max-width:40rem; margin:1.3rem 0 0; color:var(--muted); font-size:clamp(1.2rem,2vw,1.5rem); }
.work-list { border-top:1px solid var(--line); }
.work-item { display:flex; align-items:center; justify-content:space-between; gap:2.5rem; padding-block:clamp(2.75rem,5vw,4.5rem); border-bottom:1px solid var(--line); }
.work-copy { max-width:43rem; }
.work-item h2 { margin:0 0 .9rem; font-size:clamp(1.8rem,3vw,2.7rem); line-height:1.13; letter-spacing:-.045em; }
.work-item p:not(.item-label) { margin:.7rem 0; }
.title-tail { color:var(--muted); }
.text-link { display:inline-flex; align-items:center; gap:.5rem; min-height:2.75rem; color:var(--accent); font-weight:700; }
.link-stack { display:flex; align-items:flex-start; flex-direction:column; gap:.35rem; margin-top:1.25rem; }
.breadcrumb-link { color:var(--accent); }


/* Word Score preview and reusable app detail layout */
.app-feature .work-copy, .work-item-music .work-copy, .work-item-optical .work-copy, .work-item-apps .work-copy, .work-item-journal .work-copy, .work-item-podcast .work-copy, .work-item-linkedin .work-copy, .work-item-writing .work-copy { max-width:100%; width:100%; }
.app-title-link { text-decoration:none; }
.app-title-link:hover { text-decoration:underline; }
.feature-body { display:grid; grid-template-columns:minmax(10rem,15rem) minmax(0,1fr); align-items:center; gap:clamp(1.5rem,5vw,4rem); margin-top:1.5rem; }
.app-icon-link { display:block; width:100%; aspect-ratio:1; border-radius:2.8rem; text-decoration:none; }
.app-icon-image { display:block; width:100%; height:100%; object-fit:cover; border-radius:2.8rem; }
.app-icon-link:hover .app-icon-image { box-shadow:0 0 0 2px var(--accent); }
.optical-artwork-frame { width:100%; max-width:15rem; aspect-ratio:1; overflow:hidden; border:1px solid var(--line); border-radius:1rem; }
.optical-artwork { display:block; width:100%; height:100%; object-fit:cover; }
a.optical-artwork-frame:hover { border-color:var(--accent); }
.apps-artwork-frame { display:block; width:100%; max-width:15rem; aspect-ratio:1; overflow:hidden; border:3px solid #a4b7b4; border-radius:2.6rem; background:#2d3a3d; }
.apps-artwork { display:block; width:100%; height:100%; object-fit:cover; }
.apps-artwork-frame:hover { border-color:var(--accent); }
.journal-artwork-frame { display:block; width:100%; max-width:15rem; aspect-ratio:1; overflow:hidden; border:2px solid #758487; border-radius:1rem; background:#202a2c; }
.journal-artwork { display:block; width:100%; height:100%; object-fit:cover; }
.journal-artwork-frame:hover { border-color:var(--accent); }
.optical-heading { padding-bottom:clamp(2.5rem,5vw,4rem); }
.optical-intro { display:grid; grid-template-columns:clamp(18rem,28vw,22rem) minmax(0,1fr); align-items:start; gap:clamp(2rem,6vw,5rem); border-top:1px solid var(--line); padding-block:clamp(3rem,6vw,5rem); }
.optical-page-artwork { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border:1px solid var(--line); border-radius:1rem; }
.optical-story { max-width:40rem; }
.optical-story h2, .social-follow h2 { margin:0 0 1.25rem; font-size:clamp(2rem,4vw,3rem); line-height:1.1; letter-spacing:-.05em; }
.optical-story p { margin:0 0 1.4rem; }
.social-follow { border-top:1px solid var(--line); padding-block:clamp(3rem,6vw,5rem); }
.instagram-platform { max-width:25rem; }
.app-description, .feature-description { max-width:34rem; }
.app-description p, .feature-description p { margin-top:0 !important; }
.page-jump-links { display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; border-top:1px solid var(--line); padding-block:1rem; }
.page-jump-links a { display:inline-flex; align-items:center; min-height:2.75rem; color:var(--accent); font-weight:700; }
.app-info-section { max-width:50rem; padding-block:clamp(2.5rem,5vw,4rem); border-top:1px solid var(--line); scroll-margin-top:1rem; }
.app-info-section h2 { margin:0 0 1.5rem; font-size:clamp(1.8rem,3vw,2.7rem); line-height:1.15; letter-spacing:-.04em; }
.app-info-section h3 { margin:2rem 0 .5rem; font-size:1.2rem; line-height:1.3; }
.app-info-section p { margin:.7rem 0; }
.policy-date { color:var(--muted); font-size:1rem; }

/* Journal list: the date leads, with native expand-in-place entries. */
.journal-page-heading { padding-bottom:clamp(2rem,4vw,3rem); }
.journal-example-note { margin:0 0 1.5rem; color:var(--muted); font-size:.95rem; }
.journal-list { --journal-gap:clamp(1.5rem,4vw,3rem); border-top:1px solid var(--line); }
.journal-entry { border-bottom:1px solid var(--line); }
.journal-entry summary { display:grid; grid-template-columns:14rem minmax(0,1fr) 2.75rem; align-items:start; gap:var(--journal-gap); padding:1.6rem 0; list-style:none; cursor:pointer; }
.journal-entry summary::-webkit-details-marker { display:none; }
.journal-entry summary::marker { content:""; }
.journal-entry summary:focus-visible { outline:3px solid var(--accent); outline-offset:4px; border-radius:.25rem; }
.journal-date { display:flex; flex-direction:column; align-items:flex-start; gap:.55rem; color:var(--accent); font-size:clamp(1.25rem,2vw,1.55rem); font-weight:800; line-height:1.2; font-variant-numeric:tabular-nums; }
.journal-example-tag { padding:.3rem .5rem; border:1px solid var(--line); border-radius:.25rem; color:var(--muted); font-size:.75rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.journal-entry-heading { display:flex; flex-direction:column; gap:.45rem; }
.journal-entry-title { color:var(--text); font-size:clamp(1.2rem,2vw,1.45rem); font-weight:800; line-height:1.25; }
.journal-preview { color:var(--muted); font-size:1rem; line-height:1.45; }
.journal-entry summary:hover .journal-entry-title { color:var(--accent); }
.journal-toggle { display:grid; place-items:center; width:2.75rem; height:2.75rem; border:1px solid #7d9390; border-radius:50%; color:var(--accent); font-size:1.8rem; font-weight:400; line-height:1; }
.journal-entry[open] .journal-toggle { transform:rotate(45deg); }
.journal-entry-featured .journal-entry-header { display:grid; grid-template-columns:14rem minmax(0,1fr); align-items:start; gap:var(--journal-gap); padding:1.6rem 0 .5rem; }
.journal-entry-featured h2 { margin:0; }
.journal-entry-featured .journal-body { padding-bottom:2rem; }
.journal-body { max-width:49rem; margin-left:calc(14rem + var(--journal-gap)); padding:0 2.75rem 2rem 0; }
.journal-body p { margin:0 0 1.25rem; }
.journal-body p:last-child { margin-bottom:0; }
.journal-archive { padding-top:clamp(2rem,4vw,3rem); }
.journal-archive h2 { margin:0 0 1rem; font-size:clamp(1.35rem,2vw,1.65rem); }
.journal-month { border-bottom:1px solid var(--line); }
.journal-month > summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:3.75rem; padding:.8rem 0; color:var(--text); font-size:1.2rem; font-weight:750; cursor:pointer; list-style:none; }
.journal-month > summary::-webkit-details-marker { display:none; }
.journal-month > summary::marker { content:""; }
.journal-month > summary:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.journal-month > summary span { color:var(--accent); font-size:1.7rem; }
.journal-month[open] > summary span { transform:rotate(45deg); }
.journal-month .journal-entry:last-child { border-bottom:0; }
@media (max-width:42rem) {
  .journal-entry summary { grid-template-columns:minmax(0,1fr) 2.75rem; gap:.8rem 1rem; }
  .journal-entry-featured .journal-entry-header { grid-template-columns:minmax(0,1fr); gap:.8rem; }
  .journal-date,.journal-entry-heading { grid-column:1; }
  .journal-toggle { grid-column:2; grid-row:1 / span 2; }
  .journal-body { margin-left:0; padding-right:0; }
}

.work-item .placeholder-note { margin-top:1.5rem !important; color:var(--muted); font-size:.9rem; font-style:italic; }
.artwork-placeholder { flex:none; display:grid; place-items:center; width:min(28%,14rem); aspect-ratio:1; border:1px solid #6b8f63; background:radial-gradient(circle at 72% 27%,#5b914b 0 7%,transparent 8%),linear-gradient(135deg,#34473a,#18241e 55%,#2d4d35); color:#e5f4df; text-align:center; font-size:clamp(1.2rem,2vw,1.6rem); font-weight:800; line-height:1.2; letter-spacing:-.04em; }
.about-main .page-heading { padding-bottom:clamp(2rem,4vw,3rem); }
.about-copy { max-width:44rem; border-top:1px solid var(--line); padding-top:2.5rem; font-size:clamp(1.125rem,1.6vw,1.3rem); line-height:1.72; }
.about-copy p { margin:0 0 1.8rem; }
.about-copy p:last-child { margin-bottom:0; }
.site-footer { border-top:1px solid var(--line); }
.footer-inner { min-height:7rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.footer-inner a { display:inline-flex; align-items:center; min-height:2.75rem; font-weight:700; }
@media (max-width:42rem) {
  .shell { width:min(100% - 2rem,72rem); }
  .home-header-inner { justify-content:flex-start; }
  .home-main { align-items:flex-start; min-height:calc(100svh - 4.5rem); padding-block:clamp(4rem,12vh,7rem) 4rem; }
  .home-routes { grid-template-columns:1fr; margin-top:3.5rem; }
  .route { grid-template-columns:72px minmax(0,1fr); min-height:8.5rem; padding:1.2rem; }
  .route-icon { width:72px; height:72px; }
  .header-inner { flex-direction:column; align-items:flex-start; justify-content:center; gap:0; padding-block:.65rem; }
  .nav-list { gap:1rem; }
  .work-item { align-items:flex-start; flex-direction:column; gap:1.75rem; }
  .artwork-placeholder { order:-1; width:min(100%,13rem); }
  .feature-body { grid-template-columns:1fr; }
  .app-icon-link { max-width:13rem; border-radius:2.3rem; }
  .app-icon-image { border-radius:2.3rem; }
}
@media (max-width:22rem) { .nav-list { gap:.5rem; } .page-heading h1 { font-size:clamp(3rem,14vw,3.5rem); } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

.music-artwork { display:block; width:100%; height:100%; object-fit:cover; transform:scale(1.54); transform-origin:50% 46%; }

/* Linked project artwork and the music page */
.project-title-link { text-decoration:none; }
.project-title-link:hover { text-decoration:underline; }
.project-artwork-link { position:relative; display:block; width:100%; max-width:15rem; aspect-ratio:1; overflow:hidden; border:2px solid #758487; border-radius:1rem; background:#20292b; }
.artwork-window { position:absolute; inset:.3rem; overflow:hidden; border-radius:.6rem; background:#000; }
.project-artwork-link:hover { border-color:var(--accent); }
.goam-heading { padding-bottom:clamp(2.5rem,5vw,4rem); }
.goam-heading h1 { max-width:15ch; }
.goam-intro { display:grid; grid-template-columns:clamp(18rem,28vw,22rem) minmax(0,1fr); align-items:start; gap:clamp(2rem,6vw,5rem); border-top:1px solid var(--line); padding-block:clamp(3rem,6vw,5rem); }
.goam-artwork-frame { width:100%; aspect-ratio:1.12; overflow:hidden; border:1px solid var(--line); border-radius:1rem; background:#000; }
.goam-page-artwork { display:block; width:100%; height:100%; object-fit:cover; transform:scale(1.48); transform-origin:50% 46%; }
.goam-story { max-width:40rem; }
.goam-story h2, .goam-listen h2 { margin:0 0 1.25rem; font-size:clamp(2rem,4vw,3rem); line-height:1.1; letter-spacing:-.05em; }
.goam-story p { margin:0 0 1.4rem; }
.goam-listen { border-top:1px solid var(--line); padding-top:clamp(3rem,6vw,5rem); }
.goam-listen h2 { margin-bottom:2rem; }
.featured-track { display:grid; grid-template-columns:7.5rem minmax(0,1fr) auto; align-items:center; gap:clamp(1rem,3vw,2rem); max-width:50rem; padding:1.25rem; border:1px solid var(--line); border-radius:1rem; background:var(--panel); }
.featured-track[hidden] { display:none; }
.more-tracks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; max-width:50rem; margin-top:.75rem; }
.compact-track { grid-template-columns:4.5rem minmax(0,1fr) 3.5rem; gap:.75rem; padding:1rem; }
.compact-track .featured-artwork { width:4.5rem; height:4.5rem; }
.compact-track .featured-details h3 { font-size:clamp(1.2rem,2vw,1.45rem); }
.compact-track .featured-play { grid-column:auto; width:3.5rem; min-width:3.5rem; min-height:3.5rem; padding:0; }
.compact-track .play-text { display:none; }
.featured-artwork { display:block; width:7.5rem; height:7.5rem; object-fit:cover; border-radius:.6rem; }
.featured-details .item-label { margin-bottom:.25rem; }
.featured-details { min-width:0; overflow-wrap:anywhere; }
.featured-details h3 a { text-decoration:none; }
.featured-details h3 a:hover { text-decoration:underline; }
.featured-details h3 { margin:0; font-size:clamp(1.4rem,2.5vw,1.9rem); line-height:1.2; }
.featured-details p:last-child { margin:.25rem 0 0; color:var(--muted); font-size:.9rem; }
.featured-play { display:inline-flex; align-items:center; justify-content:center; gap:.6rem; min-width:7.5rem; min-height:3.4rem; padding:.5rem 1rem; border:1px solid var(--accent); border-radius:999px; background:var(--accent); color:var(--bg); font:inherit; font-weight:800; cursor:pointer; }
.featured-play:hover { background:#d0ffa0; }
.featured-play:disabled { cursor:not-allowed; opacity:.5; }
.featured-play:focus-visible { outline:3px solid var(--text); outline-offset:4px; }
.play-symbol { font-size:1.1rem; line-height:1; }
.music-platforms { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; max-width:50rem; margin-top:1.2rem; }
.music-platform { display:grid; grid-template-columns:56px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:5.25rem; padding:12px; border:1px solid var(--line); border-radius:.65rem; background:var(--panel); font-weight:700; text-decoration:none; }
a.music-platform:hover { border-color:var(--accent); }
.platform-icon { display:block; width:56px; height:56px; object-fit:contain; }
.platform-icon-youtube { transform:scale(1.25); }
.platform-name { min-width:0; overflow-wrap:anywhere; font-size:1.05rem; line-height:1.15; }
.platform-arrow { color:var(--muted); }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:42rem) { .goam-intro { grid-template-columns:1fr; } .goam-artwork-frame { max-width:15rem; aspect-ratio:1; } .featured-track { grid-template-columns:80px minmax(0,1fr); } .featured-artwork { width:80px; height:80px; } .featured-play { grid-column:1 / -1; min-width:0; width:100%; } .more-tracks { grid-template-columns:1fr; } .music-platforms { grid-template-columns:1fr; } }
@media (max-width:42rem) { .optical-intro { grid-template-columns:1fr; } .optical-page-artwork { max-width:15rem; } }
@media (max-width:42rem) { .compact-track { grid-template-columns:72px minmax(0,1fr) 56px; } .compact-track .featured-artwork { width:72px; height:72px; } .compact-track .featured-play { width:56px; min-width:56px; min-height:56px; } }
@media (max-width:22rem) { .compact-track { grid-template-columns:60px minmax(0,1fr) 56px; gap:.6rem; padding:.75rem; } .compact-track .featured-artwork { width:60px; height:60px; } }

/* Optical Delusion podcast: clear artwork, calm copy and one dark player. */
.podcast-artwork-frame { display:block; width:100%; max-width:15rem; aspect-ratio:1; overflow:hidden; border:2px solid #758487; border-radius:1rem; background:#202a2c; }
.podcast-artwork { display:block; width:100%; height:100%; object-fit:cover; }
.podcast-artwork-frame:hover { border-color:var(--accent); }
.podcast-heading { padding-bottom:clamp(2.5rem,5vw,4rem); }
.podcast-intro { display:grid; grid-template-columns:clamp(18rem,28vw,22rem) minmax(0,1fr); align-items:start; gap:clamp(2rem,6vw,5rem); border-top:1px solid var(--line); padding-block:clamp(3rem,6vw,5rem); }
.podcast-page-artwork { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border:1px solid var(--line); border-radius:1rem; }
.podcast-story { max-width:40rem; }
.podcast-story h2, .podcast-listen h2 { margin:0 0 1.25rem; font-size:clamp(2rem,4vw,3rem); line-height:1.1; letter-spacing:-.05em; }
.podcast-story p { margin:0 0 1.4rem; }
.podcast-listen { border-top:1px solid var(--line); padding-top:clamp(3rem,6vw,5rem); }
.podcast-player { max-width:50rem; padding:1.25rem; border:1px solid var(--line); border-radius:1rem; background:var(--panel); }
.podcast-player-head { display:grid; grid-template-columns:6rem minmax(0,1fr) auto; align-items:center; gap:clamp(1rem,3vw,1.5rem); }
.podcast-player-artwork { display:block; width:6rem; height:6rem; object-fit:cover; border-radius:.6rem; }
.podcast-player-details .item-label { margin-bottom:.3rem; }
.podcast-player-details { min-width:0; overflow-wrap:anywhere; }
.podcast-player-details h3 { margin:0; font-size:clamp(1.2rem,2vw,1.55rem); line-height:1.2; }
.podcast-player-details h3 a { text-decoration:none; }
.podcast-player-details h3 a:hover { text-decoration:underline; }
.podcast-player-details p:last-child { margin:.35rem 0 0; color:var(--muted); font-size:.9rem; }
.podcast-timeline { display:flex; align-items:center; gap:1rem; margin-top:1.3rem; }
.podcast-timeline input { flex:1; min-width:0; accent-color:var(--accent); cursor:pointer; }
.podcast-timeline input:disabled { cursor:not-allowed; opacity:.55; }
.podcast-timeline input:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.podcast-timeline span { min-width:5.5rem; color:var(--muted); font-size:.9rem; font-variant-numeric:tabular-nums; text-align:right; }
.podcast-listen-link { margin:1.1rem 0 0; }
.podcast-platform { max-width:25rem; }
.podcast-player-error { max-width:50rem; margin:1rem 0 0; color:#ffb8b2; }
@media (max-width:42rem) {
  .podcast-intro { grid-template-columns:1fr; }
  .podcast-page-artwork { max-width:15rem; }
  .podcast-player-head { grid-template-columns:80px minmax(0,1fr); }
  .podcast-player-artwork { width:80px; height:80px; }
  .podcast-player-head .featured-play { grid-column:1 / -1; width:100%; }
}

/* LinkedIn: one focused preview, with the same square artwork rhythm. */
.linkedin-artwork-frame { display:block; width:100%; max-width:15rem; aspect-ratio:1; overflow:hidden; border:2px solid #758487; border-radius:1rem; background:#202a2c; }
.linkedin-artwork { display:block; width:100%; height:100%; object-fit:cover; }
.linkedin-artwork-frame:hover { border-color:var(--accent); }
.linkedin-heading { padding-bottom:clamp(2.5rem,5vw,4rem); }
.linkedin-intro { display:grid; grid-template-columns:clamp(15rem,24vw,19rem) minmax(0,1fr); align-items:center; gap:clamp(2rem,6vw,5rem); border-top:1px solid var(--line); padding-block:clamp(3rem,6vw,5rem); }
.linkedin-page-artwork { display:block; width:100%; height:auto; aspect-ratio:1; border:2px solid #758487; border-radius:1rem; }
.linkedin-story { max-width:42rem; }
.linkedin-story h2, .linkedin-latest h2 { margin:0 0 1.25rem; font-size:clamp(2rem,4vw,3rem); line-height:1.1; letter-spacing:-.05em; }
.linkedin-story p { margin:0; }
.linkedin-latest { border-top:1px solid var(--line); padding-block:clamp(3rem,6vw,5rem); }
.linkedin-sample-note { margin:0 0 1.25rem; color:var(--muted); font-size:.95rem; }
.linkedin-post-preview { max-width:50rem; min-width:0; overflow-wrap:anywhere; padding:clamp(1.4rem,3vw,2rem); border:1px solid var(--line); border-radius:1rem; background:var(--panel); }
.linkedin-post-preview .item-label { margin-bottom:.6rem; }
.linkedin-post-preview h3 { margin:0 0 1rem; font-size:clamp(1.4rem,2.5vw,1.9rem); line-height:1.2; letter-spacing:-.03em; }
.linkedin-post-preview p { margin:0; }
.linkedin-post-preview h3 + p, .linkedin-post-preview p + p { margin-top:1rem; }
.linkedin-platform { max-width:25rem; }
@media (max-width:42rem) {
  .linkedin-intro { grid-template-columns:minmax(0,1fr); }
  .linkedin-story { min-width:0; overflow-wrap:anywhere; }
  .linkedin-page-artwork { max-width:15rem; }
}

/* Writing and publications: spare lists keep long titles readable. */
.writing-artwork-frame { display:block; width:100%; max-width:15rem; aspect-ratio:1; overflow:hidden; border:2px solid #758487; border-radius:1rem; background:#202a2c; }
.writing-artwork { display:block; width:100%; height:100%; object-fit:cover; }
.writing-artwork-frame:hover { border-color:var(--accent); }
.writing-heading { padding-bottom:clamp(2.5rem,5vw,4rem); }
.writing-heading h1 { font-size:clamp(3rem,6vw,4.6rem); }
.writing-intro { display:grid; grid-template-columns:clamp(15rem,24vw,19rem) minmax(0,1fr); align-items:center; gap:clamp(2rem,6vw,5rem); border-top:1px solid var(--line); padding-block:clamp(3rem,6vw,5rem); }
.writing-page-artwork { display:block; width:100%; height:auto; aspect-ratio:1; border:2px solid #758487; border-radius:1rem; }
.writing-story { max-width:42rem; }
.writing-story h2, .publication-section h2 { margin:0 0 1.25rem; font-size:clamp(2rem,4vw,3rem); line-height:1.1; letter-spacing:-.05em; }
.writing-story p { margin:0; }
.publication-section { border-top:1px solid var(--line); padding-block:clamp(3rem,6vw,5rem); }
.publication-section-heading { max-width:45rem; margin-bottom:1.5rem; }
.publication-section-heading h2 { margin-bottom:.5rem; }
.publication-section-heading p { margin:0; color:var(--muted); }
.publication-list { max-width:60rem; margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.publication-row { display:grid; grid-template-columns:12rem minmax(0,1fr); gap:clamp(1rem,4vw,3rem); padding:1.5rem 0; border-bottom:1px solid var(--line); }
.publication-books .publication-row { grid-template-columns:minmax(0,1fr); }
.publication-row time, .publication-type { color:var(--accent); font-size:.95rem; font-weight:800; line-height:1.3; font-variant-numeric:tabular-nums; }
.publication-row time { overflow-wrap:anywhere; }
.publication-row h3 { margin:0 0 .4rem; font-size:clamp(1.25rem,2vw,1.55rem); line-height:1.25; letter-spacing:-.025em; }
.publication-row h3 a { overflow-wrap:anywhere; text-decoration:none; }
.publication-row h3 a:hover { text-decoration:underline; }
.publication-row p { margin:0; color:var(--muted); font-size:1rem; line-height:1.5; }
.publication-book-content { display:grid; grid-template-columns:72px minmax(0,1fr); align-items:center; gap:20px; }
.publication-book-content h3 { overflow-wrap:anywhere; }
.publication-cover-link { display:block; width:72px; height:106px; border:1px solid #68777a; background:#202a2c; overflow:hidden; }
.publication-cover-link img { display:block; width:100%; height:100%; object-fit:contain; }
.publication-cover-link:hover, .publication-cover-link:focus-visible { border-color:var(--accent); }
.publication-more { margin:1.25rem 0 0; overflow-wrap:anywhere; }
.publication-pending { font-style:italic; }
@media (max-width:42rem) {
  .writing-intro { grid-template-columns:1fr; }
  .writing-page-artwork { max-width:15rem; }
  .publication-row { grid-template-columns:minmax(0,1fr); gap:.5rem; }
}
