@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/inter-regular.woff") format("woff")}
@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/inter-medium.woff") format("woff")}
@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/inter-semibold.woff") format("woff")}
:root{color-scheme:dark;--paper:#424242;--ink:#cfcfcf;--muted:#b6b6b6;--highlight:#fff;--line:#ffffff1f;--faint:#ffffff14;--selection:#ffffff26;--code:#ffffff0a;--scrollbar:#858585;--edge:32px;--type:Inter,Arial,sans-serif;--heading:var(--type);--small:.8125rem;--body:1rem;--section:1.625rem;--title:2.375rem;scrollbar-color:var(--scrollbar) var(--paper)}
:root[data-theme="light"]{color-scheme:light;--paper:#e2e0dc;--ink:#343434;--muted:#63615e;--highlight:#1a1a1a;--line:#0000001f;--faint:#0000000f;--selection:#0000001f;--code:#00000006;--scrollbar:#92908b}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:2rem}
body{margin:0;overflow:hidden;background:var(--paper);color:var(--ink);font:400 var(--body)/1.75 var(--type);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--highlight)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
::selection{background:var(--selection);color:var(--highlight)}
p{margin:0 0 1.25rem}
h1,h2,h3{font-family:var(--heading);font-weight:400;line-height:1.25;margin:0 0 1.15rem;text-wrap:pretty}
h1{font-size:var(--title);max-width:25ch;letter-spacing:-.025em}
h2{font-size:var(--section);letter-spacing:-.015em}
h3{font-size:1.3125rem}
strong,b{font-weight:600}
img{max-width:100%;height:auto}
code,pre,kbd,samp{font-family:var(--type)}
.app-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100vh;height:100dvh;isolation:isolate}
.app-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:calc(20px + env(safe-area-inset-top)) max(var(--edge),env(safe-area-inset-right)) 20px max(var(--edge),env(safe-area-inset-left));z-index:2}
.reading-pane{min-height:0;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;scroll-padding-block:24px;scrollbar-width:thin;scrollbar-color:var(--scrollbar) var(--paper);padding:28px 0 64px}
.reading-pane:focus-visible{outline:1px solid var(--muted);outline-offset:-1px}
.page{width:min(1280px,calc(100% - 10rem));margin:0 auto}
.name{display:flex;align-items:center;gap:12px;white-space:nowrap;text-decoration:none;font-family:var(--type);font-size:14px;font-weight:400;line-height:1;color:var(--highlight)}
.brand-marks{display:block;width:32px;height:32px;flex-shrink:0}
.brand-mark{display:block;width:32px;height:32px;object-fit:contain}
.mark-dark{mix-blend-mode:screen}
.mark-light{display:none}
[data-theme="light"] .mark-dark{display:none}
[data-theme="light"] .mark-light{display:block}
.wordmark{letter-spacing:.35em}
.menu-trigger,.menu-close{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border:1px solid var(--line);border-radius:999px;background:var(--code);color:var(--ink);font:400 .8125rem/1 var(--type);cursor:pointer;touch-action:manipulation;transition:background 150ms ease,transform 150ms ease}
.menu-trigger:hover,.menu-close:hover{background:var(--faint);color:var(--highlight)}
.menu-trigger:active,.menu-close:active{transform:scale(.96)}
.site-menu{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:16px;border:0;background:transparent;color:var(--ink);overflow:hidden}
.site-menu[open]{display:flex;align-items:flex-start;justify-content:flex-end}
.site-menu::backdrop{background:#0006;backdrop-filter:blur(5px);animation:menu-dim-in 200ms ease both}
.site-menu[data-modal-fallback][open]{z-index:30;background:#0006;backdrop-filter:blur(5px)}
.menu-panel{width:min(420px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;padding:24px;border:1px solid var(--line);border-radius:24px;background:var(--paper);box-shadow:0 24px 80px #0003;transform-origin:top right}
.menu-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
.menu-heading h2{margin:0;font-size:.875rem;font-weight:400;letter-spacing:0;color:var(--muted)}
.menu-close{padding-inline:16px}
.menu-panel nav{display:flex;flex-direction:column;gap:6px}
.menu-panel a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:14px 16px;border-radius:12px;font-size:1.0625rem;line-height:1.4;text-decoration:none;transition:background 150ms ease,color 150ms ease,transform 150ms ease;touch-action:manipulation}
.menu-panel a:hover{background:var(--code);color:var(--highlight)}
.menu-panel a[aria-current="page"]{background:var(--faint);color:var(--highlight)}
.menu-current{width:6px;height:6px;flex-shrink:0;border-radius:50%;background:currentColor;opacity:0}
[aria-current="page"]>.menu-current{opacity:1}
.menu-panel a:active{background:var(--selection);transform:scale(.985)}
.menu-panel a:focus-visible{outline-offset:-2px}
.menu-panel .menu-elsewhere{flex-direction:row;flex-wrap:wrap;gap:0 20px;border-top:1px solid var(--line);margin-top:24px;padding-top:16px}
.menu-elsewhere a{min-height:44px;padding:8px 0;border-radius:0;font-size:.8125rem;color:var(--muted)}
.no-script-menu{display:flex;flex-wrap:wrap;gap:16px;font-size:.875rem}
.site-menu[open] .menu-panel{animation:menu-sheet-in 220ms cubic-bezier(.16,1,.3,1) both}
.site-menu.is-closing .menu-panel{animation:menu-sheet-out 150ms ease-in both;pointer-events:none}
.site-menu.is-closing::backdrop{animation:menu-dim-out 150ms ease-in both}
@keyframes menu-sheet-in{from{opacity:0;transform:translateX(24px) scale(.98)}to{opacity:1;transform:none}}
@keyframes menu-sheet-out{to{opacity:0;transform:translateX(16px) scale(.98)}}
@keyframes menu-dim-in{from{opacity:0}to{opacity:1}}
@keyframes menu-dim-out{to{opacity:0}}
@media(max-width:720px){.site-menu{padding:12px 12px max(12px,env(safe-area-inset-bottom))}.site-menu[open]{align-items:flex-end}.menu-panel{width:100%;max-height:calc(100dvh - 24px - env(safe-area-inset-top));padding:20px;border-radius:24px;transform-origin:bottom center}.menu-heading{margin-bottom:16px}.menu-panel a{min-height:56px}.menu-panel .menu-elsewhere{margin-top:20px}.menu-elsewhere a{min-height:44px}@keyframes menu-sheet-in{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}@keyframes menu-sheet-out{to{opacity:0;transform:translateY(24px)}}}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.home-page .app-header{justify-content:flex-end;padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:12px}
.home-page .app-header>.name{display:none}
.home-page .reading-pane{display:flex;padding:12px 0 24px}
.home-page .page{width:min(440px,calc(100% - 2 * var(--edge)));margin:auto}
.link-hub{text-align:center}
.hub-identity{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:26px}
.hub-identity .name{max-width:none;margin:0}
.hub-links{display:grid;gap:8px;list-style:none;padding:0;margin:0}
.hub-link{position:relative;display:flex;align-items:center;justify-content:center;min-height:56px;padding:14px 20px;border:1px solid var(--line);border-radius:12px;background:var(--code);color:var(--highlight);font-size:1rem;line-height:1.4;text-decoration:none;transition:background .18s ease,border-color .18s ease,transform .18s ease;touch-action:manipulation}
.hub-contact summary{list-style:none;cursor:pointer}
.hub-contact summary::-webkit-details-marker{display:none}
.hub-contact[open] summary{border-color:var(--muted)}
.contact-reveal{padding:16px 8px 4px;font-size:.9375rem;line-height:1.5;color:var(--highlight);overflow-wrap:anywhere;user-select:text}
.hub-link svg{position:absolute;left:20px;display:block;width:21px;height:21px}
.hub-link-instagram,.hub-link-x{padding-inline:52px}
.hub-link-label{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:0 8px}
.hub-handle{font-size:.875rem;opacity:.9}
.hub-link-instagram{background:linear-gradient(115deg,#6833a4 0%,#a9276b 53%,#b83e36 100%);border-color:#ffffff1a;color:#fff}
.hub-link-x{background:#111;border-color:#ffffff1a;color:#fff}
.hub-link:active{transform:scale(.985)}
.home-page .app-footer{justify-content:flex-end;padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}
.home-page .contact-links{display:none}
@media(hover:hover){.hub-link:hover{background:var(--faint);border-color:var(--muted);transform:translateY(-1px)}.hub-link-instagram:hover{background:linear-gradient(115deg,#743bb5 0%,#b52e76 53%,#c6473f 100%);color:#fff;border-color:#ffffff55}.hub-link-x:hover{background:#202020;color:#fff;border-color:#ffffff55}}
.journal{max-width:880px;margin:0 auto}
.hobby-gallery,.hobby-index{max-width:1120px;margin:0 auto}
.build-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.build-card{display:block;min-width:0;text-decoration:none;border-radius:16px;transition:transform 180ms ease}
.build-card .media-frame{border:1px solid var(--line);border-radius:16px;transition:border-color 180ms ease}
.build-card-copy{padding:20px 2px 8px}
.build-card-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.build-card h2{font-size:1.5rem;font-weight:500;margin:0 0 8px;color:var(--highlight)}
.build-card-heading>span{font-size:.8125rem;white-space:nowrap;color:var(--muted)}
.build-card p{margin:0;font-size:.9375rem;line-height:1.6;color:var(--muted)}
.build-card:active{transform:scale(.99)}
@media(hover:hover){.build-card:hover .media-frame{border-color:var(--muted)}.build-card:hover{transform:translateY(-3px)}}
.build-back{display:inline-flex;align-items:center;min-height:44px;margin:0 0 24px;font-size:.875rem;color:var(--muted)}
@media(max-width:720px){.build-cards{grid-template-columns:1fr}.build-card-copy{padding-top:16px}.build-back{margin-bottom:16px}}

.build-intro{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,2fr);gap:32px;align-items:start;margin-bottom:32px}
.build-intro h1.section-title{margin:0}
.build-intro p{max-width:62ch;font-size:1rem;line-height:1.7;margin:0;color:var(--muted)}
.build-app-link{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;font-size:.9375rem}
.build-shot{margin:0;min-width:0}
.build-shot .media-frame{width:100%;border-radius:12px;overflow:hidden;background:var(--faint)}
.build-shot img{display:block;width:100%;height:auto}
.build-shot figcaption{margin-top:14px;font-size:.875rem;line-height:1.5;color:var(--muted)}
.build-mobile-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:32px;padding:32px;background:var(--code);border-radius:12px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin}
.build-mobile{scroll-snap-align:start}
.build-mobile-gallery:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
@media(max-width:720px){.build-intro{grid-template-columns:1fr;gap:16px;margin-bottom:24px}.build-mobile-gallery{display:flex;gap:18px;margin-top:20px;padding:20px;scroll-padding-inline:20px}.build-mobile{flex:0 0 min(300px,85%)}}
.journal-intro{margin-bottom:48px}
.journal-intro h1,.section-title{font-size:clamp(2rem,4vw,2.75rem);font-weight:500;line-height:1.12;letter-spacing:-.03em;color:var(--highlight)}
.journal-intro p{max-width:44ch;margin:0;color:var(--muted);font-size:1.125rem}
.journal-feed{margin:24px 0 0;font-size:.875rem;color:var(--muted)}
.section-title{margin:0 0 40px}
.journal-list{list-style:none;padding:0;margin:0}
.journal-entry{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:3rem;align-items:start;border-top:1px solid var(--line);padding:3rem 0}
.journal-entry:not(.has-art) .journal-heading{grid-column:1/-1;max-width:600px}
.journal-entry:first-child{border-top:0;padding-top:0}
.journal-entry:last-child{border-bottom:1px solid var(--line)}
.journal-heading{display:flex;flex-direction:column;min-width:0;gap:1.25rem}
.journal-heading h2{font-size:1.75rem;line-height:1.25;letter-spacing:-.02em;margin:0;color:var(--highlight)}
.journal-heading h2 a{text-decoration:none;transition:color .2s ease}
.journal-heading h2 a:hover{color:var(--highlight)}
.journal-date{display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-size:var(--small);line-height:1.45;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:.15rem}
.journal-copy{min-width:0;max-width:68ch}
.journal-copy p{font-size:var(--body);line-height:1.75;margin:0;color:var(--ink)}
.journal-art-link{display:block;justify-self:end}
.journal-art{display:block;width:280px;height:280px;object-fit:cover}
.portfolio{max-width:1000px;margin:0 auto}
.company-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0}
.company-grid>li{min-width:0;border-top:1px solid var(--line);border-right:1px solid var(--line)}
.company-grid>li:nth-child(-n+3){border-top:0}
.company-grid>li:nth-child(3n){border-right:0}
.company{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;min-height:228px;padding:32px 24px;text-decoration:none}
.company-logo{display:flex;align-items:center;justify-content:center;width:100%;height:100px;filter:grayscale(1);transition:filter 220ms ease}
.company-logo img{display:block;width:auto;height:auto;max-width:min(200px,100%);max-height:100px;object-fit:contain}
.logo-dark img{filter:brightness(0) invert(1);opacity:.85}
.logo-light img,.logo-mixed img{opacity:.85}
[data-theme="light"] .logo-dark img{filter:none;opacity:.9}
[data-theme="light"] .logo-light img{filter:brightness(0);opacity:.8}
[data-theme="light"] .logo-mixed img{filter:brightness(.4);opacity:1}
.company-caption{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.company-caption h2{font-size:.9375rem;line-height:1.5;letter-spacing:0;margin:0}
.company-status{font-size:.75rem;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.company-wordmark{font-size:1.5rem;line-height:1.2;text-align:center;letter-spacing:.02em}
.company:focus-visible{outline-offset:-5px}
.company:focus-visible .company-logo,.company:active .company-logo{filter:grayscale(0)}
@media(hover:hover){.company:hover .company-logo{filter:grayscale(0)}}
@media(hover:none){.company:active .company-logo{transition:none}}
.content-list{list-style:none;padding:0;margin:0}
.content-list>li+li{border-top:1px solid var(--faint);margin-top:1.5rem;padding-top:1.5rem}
.content-list h3{margin-bottom:.65rem;font-size:1.5rem;line-height:1.25;letter-spacing:-.01em}
.content-list h3 a{text-decoration:none}
.content-list h3 a:hover{text-decoration:underline}
.content-list p{margin:0;max-width:68ch;font-size:1.0625rem;color:var(--muted)}
.entry-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:var(--small);line-height:1.45;color:var(--muted);margin-bottom:.7rem}
.entry-meta>span{margin-left:auto;text-align:right}
.breadcrumbs{display:flex;gap:.55rem;flex-wrap:wrap;font-size:var(--small);line-height:1.5;padding:.5rem 0 2.5rem;color:var(--muted)}
.breadcrumbs>span[aria-current]{max-width:55ch}
.document-grid{display:grid;grid-template-columns:190px minmax(0,740px);justify-content:center;gap:4rem;padding-bottom:3.5rem;border-bottom:1px solid var(--line);align-items:start}
.document{min-width:0}
.contents{position:sticky;top:2rem;font-size:var(--small);line-height:1.45}
.contents nav{display:flex;flex-direction:column;gap:.7rem;font:inherit}
.contents nav a{display:block;padding:6px 0;text-decoration:none;line-height:1.45}
.contents nav a:hover{text-decoration:underline}
.contents-art{display:block;width:190px;height:190px;object-fit:cover}
.contents nav+.contents-art{margin-top:2rem}
.contents nav+.contents-art-frame{margin-top:2rem}
.article-mobile-art-frame{display:none}
.article-header h1{font-size:clamp(2rem,3.4vw,2.75rem);font-weight:500;line-height:1.13;letter-spacing:-.03em;max-width:26ch;color:var(--highlight)}
.article-mobile-art{display:none}
.profile-page .prose>p:first-child{font-size:1.25rem;line-height:1.7;color:var(--highlight);margin-bottom:32px}
.byline{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:var(--small);line-height:1.45;color:var(--muted);border-bottom:1px solid var(--faint);padding:0 0 1.3rem;margin-bottom:1.7rem}
.prose{overflow-wrap:break-word;max-width:68ch;font-size:1.125rem}
.prose>p:first-child{color:var(--ink)}
.prose h2{font-size:var(--section);line-height:1.2;margin-top:2.6rem;margin-bottom:1.1rem;scroll-margin-top:2rem}
.prose h3{margin-top:1.8rem}
.prose ul,.prose ol{padding-left:1.4rem;margin:0 0 1.4rem}
.prose li{padding-left:.3rem;margin:.65rem 0}
.prose li p{margin-bottom:.6rem}
.prose blockquote{margin:1.7rem 0;border-left:1px solid var(--line);padding-left:1.4rem;color:var(--muted)}
.prose pre{overflow:auto;padding:1rem;background:var(--code);font-size:1rem}
.prose code{font-family:var(--type);font-size:1em;background:var(--code);padding:.05em .15em}
.prose pre code{padding:0}
.prose table{display:block;overflow-x:auto;border-collapse:collapse;margin:1.5rem 0;font-size:1rem}
.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:.7rem}
.prose hr{border:0;border-top:1px solid var(--line);margin:2rem 0}
.references,.author-box,.related,.collection{border-top:1px solid var(--line);padding-top:1.7rem;margin-top:2.5rem}
.references h2,.related>h2,.collection>h2{font-size:1.5rem}
.references ol{padding-left:1.3rem;margin-bottom:0;font-size:1rem}
.references li{margin:.65rem 0;overflow-wrap:anywhere}
.author-box{font-size:1rem;max-width:68ch}
.author-box h2{font-size:1.25rem;margin-bottom:.7rem;letter-spacing:0}
.author-box p:last-of-type{margin-bottom:.7rem}
.related .content-list h3{font-size:1.3125rem}
.profile-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0 0 2rem}
.profile-photo{position:relative;display:block;min-width:0;aspect-ratio:1;margin:0;padding:0;border:0;border-radius:0;background:var(--faint);cursor:pointer;touch-action:manipulation}
.profile-photo-wide{grid-column:span 2;aspect-ratio:auto}
.profile-photo img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter 220ms ease}
.profile-photo[aria-pressed="true"] img,.profile-photo:focus-visible img{filter:grayscale(0)}
.profile-photo[data-touch-active] img{filter:grayscale(0);transition:none}
.profile-photo:focus-visible{outline:2px solid var(--ink);outline-offset:2px;z-index:1}
@media(hover:hover){.profile-photo:hover img{filter:grayscale(0)}}
@media(max-width:560px){.profile-gallery{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;padding-bottom:10px}.profile-photo{flex:0 0 160px;height:160px;scroll-snap-align:start}.profile-photo-wide{flex-basis:240px;aspect-ratio:3/2}}
.empty-page{padding:5rem 0;border-bottom:1px solid var(--line)}
.app-footer{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding:10px max(var(--edge),env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(var(--edge),env(safe-area-inset-left));color:var(--muted)}
.footer-signature{display:block;grid-column:2;width:clamp(80px,26vw,144px);height:auto;transform:translateY(var(--signature-offset,0px));color:var(--ink);pointer-events:none;user-select:none}
.app-footer .theme-toggle{grid-column:3;justify-self:end}
@media(max-width:560px){.app-footer{gap:8px}.app-footer .contact-links{gap:12px;font-size:.6875rem;letter-spacing:.1em}.app-footer .contact-links a:first-child{min-width:16px}}
.contact-links{display:flex;align-items:center;gap:24px;font-size:.75rem;line-height:1.5;letter-spacing:.15em;text-transform:uppercase}
.contact-links a{display:flex;align-items:center;min-height:44px;text-decoration:none}
.contact-links a:first-child{min-width:24px;font-size:1rem;letter-spacing:0}
.theme-toggle{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:400 .6875rem/1.5 var(--type);letter-spacing:.1em;text-transform:uppercase}
.theme-toggle:hover{color:var(--highlight)}
.theme-toggle svg{flex-shrink:0}
.theme-toggle .moon{display:none}
[data-theme="light"] .theme-toggle .sun{display:none}
[data-theme="light"] .theme-toggle .moon{display:block}
.skip{position:absolute;top:-10rem;left:var(--edge);background:var(--paper);padding:1rem;z-index:10}
.skip:focus{top:1rem}
@media(max-width:1050px){.page{width:calc(100% - 6rem)}.document-grid{grid-template-columns:160px minmax(0,1fr);gap:2rem}.journal-entry{grid-template-columns:minmax(0,1fr) 185px;gap:1.7rem}.journal-art{width:185px;height:185px}.journal-heading h2{font-size:1.375rem}}
@media(max-width:720px){:root{--edge:20px;--body:1rem;--title:2.125rem;--section:1.625rem}.page{width:calc(100% - 2 * var(--edge))}.app-header{padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:12px;gap:16px}.name{gap:8px;font-size:11px}.wordmark{letter-spacing:.24em}.menu-trigger{padding-inline:16px}.reading-pane{padding:24px 0 40px}.journal-entry{grid-template-columns:minmax(0,1fr);gap:1.2rem;padding:1.75rem 0 2rem}.journal-entry:not(.has-art) .journal-heading{grid-column:auto;max-width:none}.journal-heading{gap:.8rem}.journal-heading h2{font-size:1.5rem;line-height:1.25}.journal-date{margin:0}.journal-art{width:100%;height:auto;aspect-ratio:3/2;justify-self:start}.journal-copy p{font-size:var(--body)}.entry-meta>span{margin-left:0;text-align:left}.content-list h3{font-size:1.375rem}.breadcrumbs{padding:0 0 1.8rem}.document-grid{grid-template-columns:1fr;gap:0;padding-bottom:2.5rem}.contents{display:none}.byline{gap:.4rem .8rem}.app-footer{padding-top:4px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}.theme-label{display:none}}
@media(max-height:480px){.app-header{padding-top:6px;padding-bottom:6px}.app-footer{padding-top:0;padding-bottom:0}.reading-pane{padding-top:16px}}
@media(max-width:720px){.company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.company-grid>li:nth-child(n){border-top:1px solid var(--line);border-right:1px solid var(--line)}.company-grid>li:nth-child(-n+2){border-top:0}.company-grid>li:nth-child(2n){border-right:0}.company{min-height:190px;padding:24px 12px;gap:24px}.company-logo{height:72px}.company-logo img{max-width:100%;max-height:72px}.company-caption h2{font-size:.8125rem}.company-wordmark{font-size:1.125rem}}
@media(max-width:720px){.journal-intro{margin-bottom:32px}.journal-art-link{width:100%}.article-mobile-art{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;margin-bottom:28px}.profile-page .prose>p:first-child{font-size:1.125rem;line-height:1.7;margin-bottom:24px}.company-caption h2{font-size:.875rem}.section-title{margin-bottom:28px}}
/* The shell stays still; the name connects the home hub to the reading view. */
.name{view-transition-name:brand}
.page{view-transition-name:content}
.page [tabindex="-1"]:focus:not(a):not(button){outline:none}
.menu-trigger{view-transition-name:menu}
.app-footer{view-transition-name:footer}
::view-transition-old(root),::view-transition-new(root){animation:none}
::view-transition-group(brand){animation-duration:260ms;animation-timing-function:cubic-bezier(.16,1,.3,1)}
::view-transition-group(menu),::view-transition-group(footer){animation-duration:180ms}
::view-transition-old(content){animation:page-out 120ms ease-out both}
::view-transition-new(content){animation:page-in 180ms ease-out both}
@keyframes page-out{to{opacity:0}}
@keyframes page-in{from{opacity:0}to{opacity:1}}
.contact-links a:active{opacity:.65}
.navigation-progress{position:fixed;inset:0 0 auto;height:2px;overflow:hidden;z-index:20;pointer-events:none;background:var(--faint)}
.navigation-progress::after{content:"";position:absolute;inset:0;background:var(--ink);transform-origin:left;animation:navigation-progress 1.4s cubic-bezier(.4,0,.2,1) infinite}
@keyframes navigation-progress{0%{transform:translateX(-100%) scaleX(.35)}55%{transform:translateX(15%) scaleX(.55)}100%{transform:translateX(100%) scaleX(.35)}}
.navigation-error{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:6;display:flex;align-items:center;gap:8px 20px;width:max-content;max-width:calc(100% - 2 * var(--edge));padding:12px 20px;border:1px solid var(--muted);border-radius:12px;background:var(--paper);color:var(--highlight);font-size:.875rem;line-height:1.5}
.navigation-error button{border:0;background:none;color:inherit;font:inherit;min-height:44px;padding:8px 0;white-space:nowrap;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.navigation-error button:last-child{color:var(--muted)}
.loading-skeleton{pointer-events:none;user-select:none}
.skeleton-block,.media-loading{position:relative;overflow:hidden;background:var(--faint)}
.skeleton-block{border-radius:3px}
.skeleton-block::after,.media-loading::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(100deg,transparent 25%,var(--line) 50%,transparent 75%);transform:translateX(-100%);animation:skeleton-sweep 1.7s ease-in-out infinite}
.media-loading:not([data-media-visible])::after,[data-page-hidden] .media-loading::after,[data-page-hidden] .skeleton-block::after,[data-page-hidden] .navigation-progress::after{animation-play-state:paused}
@keyframes skeleton-sweep{to{transform:translateX(100%)}}
.skeleton-line{height:14px;width:100%;max-width:65ch}
.skeleton-short{width:58%}
.skeleton-paragraph{display:grid;gap:16px;margin:0 0 32px}
.skeleton-title{height:42px;width:76%;max-width:520px;margin-bottom:40px}
.skeleton-heading{height:62px;width:90%;margin-bottom:24px}
.skeleton-breadcrumb{width:280px;max-width:100%;padding:8px 0 48px}
.skeleton-meta{width:65%;margin:-12px 0 32px}
.skeleton-build-preview{width:calc((100% - 32px)/2);aspect-ratio:8/5;border-radius:16px}
.skeleton-build-desktop{width:100%;aspect-ratio:8/5;border-radius:12px}
@media(max-width:720px){.skeleton-build-preview{width:100%}}
.skeleton-art{width:100%;aspect-ratio:1}
.skeleton-mobile-art{display:none}
.skeleton-gallery{margin-bottom:32px}
.skeleton-photo{width:100%;aspect-ratio:1;border-radius:0}
.skeleton-brand{height:32px;width:208px;margin:0 auto 26px}
.skeleton-button{height:56px;border-radius:12px}
.skeleton-company-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.skeleton-company{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;min-height:228px;padding:32px 24px}
.skeleton-logo{height:76px;width:70%}
.media-frame,.journal-art-link,.company-logo{position:relative}
.media-frame{width:fit-content;max-width:100%}
.media-loading img{opacity:0}
.media-ready img{transition:opacity 220ms ease-out,filter 220ms ease}
.media-error{background:var(--faint)}
.media-error img{opacity:1}
@media(max-width:720px){.article-mobile-art-frame{display:block;width:100%;margin-bottom:28px;aspect-ratio:16/9}.article-mobile-art-frame .article-mobile-art{margin-bottom:0}.skeleton-title{height:36px;margin-bottom:32px}.skeleton-company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skeleton-company{min-height:190px;padding:24px 12px;gap:24px}.skeleton-logo{height:60px}.skeleton-mobile-art{display:block;aspect-ratio:16/9;margin-bottom:28px}.skeleton-breadcrumb{padding-bottom:36px}.journal-entry>.skeleton-art{aspect-ratio:3/2}.navigation-error{flex-wrap:wrap;gap:0 20px}.navigation-error>span{flex:1 0 100%}}
@media(max-width:560px){.skeleton-gallery .skeleton-photo{flex:0 0 160px;height:160px}.skeleton-gallery .profile-photo-wide{flex-basis:240px}}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.site-menu[open] .menu-panel,.site-menu::backdrop,.skeleton-block::after,.media-loading::after,.navigation-progress::after{animation:none}.skeleton-block::after,.media-loading::after{display:none}.navigation-progress::after{transform:scaleX(.7)}.media-ready img{transition:none}}
@media print{.navigation-progress,.navigation-error,.navigation-skeleton{display:none!important}}
@media(prefers-reduced-motion:reduce){html,.reading-pane{scroll-behavior:auto}a,button,.profile-photo img,.company-logo{transition:none!important}}
@media print{:root,:root[data-theme="light"]{--paper:#fff;--ink:#222;--muted:#555;--highlight:#000;--line:#bbb;--faint:#ddd}.app-header,.app-footer,.contents{display:none}.app-shell{display:block;height:auto}.reading-pane{overflow:visible;padding:0}.page{width:100%}.document-grid{display:block}body{overflow:visible;background:#fff;color:#222;font-size:12pt}.references a{overflow-wrap:anywhere}.journal-entry.has-art{grid-template-columns:1fr 100px}.journal-art{width:100px;height:100px}}
