/* V25: one uninterrupted surface shared by each file body and its tab. */
.home-page { --file-surface: var(--black); }
.home-page .home-file,.home-page .home-folder { background:var(--file-surface); }
.home-page .home-tab,.home-page .home-folder-tab { background:var(--file-surface);border-bottom:0;z-index:1; }
.home-page .home-profile>.home-tab,.home-page .home-feature>.home-tab,.home-page .home-folder-tab { bottom:100%;transform:translateY(2px);padding-bottom:11px;border-bottom:0; }
.home-page .home-folder-tab { padding-bottom:9px; }
.home-page .home-folder:hover .home-folder-tab { border-bottom:0; }
.home-page .category-tabs button[aria-current="page"] { background:var(--file-surface);border-bottom-color:var(--file-surface); }
/* Four internal directories and one external collection stay on the same plane. */
.home-page .home-folder-external { border-style:dashed; }
.home-page .home-folder-external::before { content:'';position:absolute;top:-30px;bottom:-2px;left:calc(var(--home-gutter) / -2 - 1px);border-left:1px solid var(--home-border); }
.home-page .home-folder-external .home-folder-tab { border-style:dashed; border-bottom:0; }
.home-page .home-folder-external .home-folder-meta { color:var(--yellow);font-size:8px;letter-spacing:.06em; }
.home-page .category-tab-external { border-style:dashed; }
/* Full-bleed cover inside its media region. Original pixels remain unchanged. */
.home-page .home-feature-image { align-self:stretch;height:auto;min-height:300px;margin:0;overflow:hidden; }
.home-page .home-feature-image img { object-fit:cover;object-position:center; }
.headline-end { white-space:nowrap; }
.headline-cursor { display:inline-block;width:.11em;height:.84em;margin-left:.13em;vertical-align:-.04em;background:var(--yellow);animation:headline-blink 1.15s steps(1,end) infinite; }
@keyframes headline-blink { 0%,49% {opacity:1} 50%,100% {opacity:0} }
@media(max-width:1119px){
 .home-page .home-folder-external::before { top:-26px;bottom:auto;left:-2px;right:-2px;border-left:0;border-top:1px solid var(--home-border); }
 .home-page .home-folder-external { margin-top:12px; }
}
@media(max-width:700px){
 .home-page .home-feature-image { min-height:0;height:auto;aspect-ratio:3335 / 1779;margin:0; }
 .home-page .home-feature-image img { height:100%; }
}
/* V26: one lifted CV window; contact destinations are compact yellow keys. */
.home-page .home-profile { margin-top:64px; overflow:visible; }
.home-page .home-profile-grid { grid-template-columns:minmax(220px, .9fr) minmax(0, 1.7fr); gap:22px 36px; padding:36px 36px 92px; }
.home-page .home-portrait { grid-column:1;grid-row:1 / 3;width:100%;max-width:340px;justify-self:center;align-self:center;margin:0; }
.home-page .home-bio { grid-column:2; }
.home-page .home-bio h1 { font-size:clamp(40px,4.2vw,60px);margin:14px 0 16px; }
.home-page .home-roles { font-size:14px;line-height:1.7; }
.home-page .home-description { font-size:19px;line-height:1.65;max-width:64ch; }
.home-page .home-profile-links { display:block;grid-column:2;margin:0;padding-right:320px; }
.home-page .home-socials { display:flex;flex-wrap:wrap;gap:12px;width:auto; }
.home-page .home-socials .social-square { display:inline-flex;align-items:center;justify-content:center;flex:0 0 56px;width:56px;height:56px;min-height:56px;padding:14px;background:var(--yellow);color:var(--black);border:2px solid var(--yellow); }
.home-page .social-square svg { display:block;width:100%;height:100%;fill:currentColor; }
.home-page .home-socials .social-square:hover { background:var(--black);color:var(--yellow); }
.home-page .cv-floating { position:absolute;z-index:4;right:-18px;bottom:-30px;width:310px;max-width:calc(100% - 28px);padding:6px;background:var(--yellow);color:var(--black);border:2px solid var(--yellow);box-shadow:10px 12px 0 #05060480,0 18px 36px #0005; }
.contact-window-bar { display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--black);color:var(--yellow);padding:10px 12px;font:11px/1.4 Mono,monospace; }
.cv-window-content { padding:16px; }
.cv-file-label { font:9px/1.5 Mono,monospace;letter-spacing:.06em; }
.cv-window-title { margin:13px 0 18px;font:29px/1.12 "Space Grotesk",Liberation,sans-serif;letter-spacing:-.04em; }
/* The same actionable PDF control is used in home, profile, case and footer. */
.portfolio a.cv-download,noscript a.cv-download { display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-height:46px;width:auto;max-width:100%;padding:12px 16px;border:1px solid var(--yellow);background:var(--black);color:var(--yellow);font:13px/1.5 Mono,monospace;text-decoration:none; }
.portfolio a.cv-download:hover,noscript a.cv-download:hover { background:var(--yellow);color:var(--black);outline:1px solid var(--black); }
.site-footer>div { align-items:center;flex-wrap:wrap; }
.about-links { align-items:center; }
.identity-check { display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;margin-left:.4em;color:var(--black);background:var(--yellow);border-radius:50%;font:bold .65em/1 Liberation,Arial,sans-serif;vertical-align:.12em; }
/* A slow, low-contrast refresh band; never a whole-screen flash. */
.crt-refresh { position:fixed;inset:0;z-index:21;overflow:hidden;pointer-events:none; }
.crt-refresh::before { content:'';position:absolute;left:0;right:0;top:-24vh;height:24vh;background:linear-gradient(transparent,#e5cd7108 50%,transparent);animation:crt-refresh-sweep 18s linear infinite;will-change:transform;pointer-events:none; }
@keyframes crt-refresh-sweep { from { transform:translateY(0); } to { transform:translateY(124vh); } }
.intro-active .crt-refresh,.intro-entering .crt-refresh { display:none; }
@media(max-width:1119px){
 .home-page .home-profile-grid { grid-template-columns:minmax(200px,.8fr) minmax(0,1.5fr);gap:24px;padding:28px 28px 72px; }
 .home-page .home-profile-links { padding-right:0; }
 .home-page .cv-floating { position:relative;width:310px;right:auto;bottom:auto;margin:-30px -12px -38px auto; }
 .home-profile>.file-scan { margin-top:58px; }
 .home-page .home-description { font-size:18px; }
}
@media(max-width:700px){
 .portfolio { padding-left:18px;padding-right:18px; }
 .masthead { gap:16px;padding:22px 0; }
 .masthead .discipline { display:block;order:3;width:100%;margin:0;font-size:10px;line-height:1.7; }
 .masthead nav { font-size:11px;gap:16px; }
 .home-page { padding-top:28px; }
 .home-page .home-profile { margin-top:0; }
 .home-page .home-profile-grid { display:flex;flex-direction:column;align-items:stretch;padding:24px 20px 58px;gap:20px; }
 .home-page .home-portrait { display:block;width:clamp(210px,55vw,280px);max-width:100%;min-height:190px;margin:0 auto;flex:none; }
 .home-page .home-bio h1 { font-size:clamp(34px,8.4vw,48px);margin:10px 0 14px; }
 .home-page .home-bio>.eyebrow { font-size:11px; }
 .home-page .home-roles { font-size:13px;line-height:1.7; }
 .home-page .home-description { font-size:17px;line-height:1.65;margin-top:14px; }
 .home-page .home-profile-links { padding:0;margin:0; }
 .home-page .home-socials { gap:12px; }
 .home-page .home-socials .social-square { flex-basis:52px;width:52px;height:52px;min-height:52px;padding:12px; }
 .home-page .cv-floating { position:relative;right:auto;bottom:auto;margin:-25px 10px -38px auto;width:310px;max-width:calc(100% - 20px); }
 .home-profile>.file-scan { margin-top:58px; }
 .home-page .home-feature { margin-top:60px; }
 .home-page .cv-window-title { font-size:29px; }
 .site-footer { gap:16px; }
 .site-footer>div { gap:16px; }
}
@media(max-width:360px){
 .masthead nav { width:100%;margin:0; }
 .home-page .home-profile-grid { padding-left:16px;padding-right:16px; }
 .home-page .home-socials { gap:10px; }
 .home-page .home-socials .social-square { flex-basis:48px;width:48px;height:48px;min-height:48px;padding:11px; }
}
@media(prefers-reduced-motion:reduce){.headline-cursor{animation:none}.crt-refresh{display:none}}
/* VT323: locally hosted DEC-terminal character, optically sized for reading.
   Editorial paragraphs and headings retain their established sans faces. */
@font-face { font-family:'VT323';src:url('assets/fonts/VT323-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap; }
.portfolio :is(.discipline,.masthead nav,.eyebrow,.home-tab,.home-folder-tab,.home-roles,.home-open-label,.home-folder-meta,.home-folder-open,.home-breadcrumb,.category-tabs button,.home-folder-meta,.category-project-copy>.eyebrow,.back-button,.rental-text-link,.rental-chips,.case-top select,.project-button,.category-button,.project-meta,.tag-list span,.case-details dt,.gallery-count,.zoom-button,.about-links,.about-email,.view-case,.site-footer,.site-footer button),.contact-window-bar,.cv-file-label,.portfolio a.cv-download,noscript a.cv-download { font-family:'VT323',Mono,monospace;font-weight:400;font-size:20px;line-height:1.2;letter-spacing:0; }
.portfolio :is(.discipline,.home-folder-meta,.home-section-heading>.eyebrow,.category-project-copy>.eyebrow,.cv-file-label,.project-meta,.tag-list span,.case-details dt) { font-size:18px; }
.portfolio .discipline { max-width:370px; }
.portfolio .discipline>span { font-size:18px; }
.portfolio .home-roles { font-size:22px;line-height:1.25; }
.portfolio .home-page .home-bio>.eyebrow { font-size:20px; }
.portfolio .home-page .category-tabs button { font-size:20px; }
.portfolio .home-page .home-tab { font-size:20px;padding-top:8px;padding-bottom:10px; }
.portfolio .home-page .home-folder-tab { font-size:20px; }
.portfolio .home-page .home-folder-meta { font-size:18px; }
.portfolio .home-page .home-folder-open,.portfolio .home-page .home-open-label { font-size:20px; }
.portfolio .home-page .home-section-heading>.eyebrow { font-size:18px; }
.portfolio .contact-window-bar { font-size:20px; }
.portfolio .cv-file-label { font-size:18px; }
.portfolio .site-footer>div { font-size:20px; }
@media(max-width:700px){
 .portfolio .masthead nav { font-size:20px; }
 .portfolio .masthead .discipline { font-size:18px;max-width:none; }
 .portfolio .home-roles { font-size:21px; }
 .portfolio .home-page .home-bio>.eyebrow { font-size:20px; }
 .portfolio .home-page .home-breadcrumb .eyebrow { font-size:18px; }
 .portfolio .home-page .category-project-copy>.eyebrow { font-size:18px; }
 .portfolio .home-page .category-project .home-open-label { font-size:20px; }
}

/* V31: a file utility, with its own chrome and a deliberately quieter content well.
   Metadata describes the bundled 2,314,114-byte PDF; no simulated transfer state. */
.home-page .cv-floating { width:350px;padding:5px;background:#14160f;color:var(--yellow);border:1px solid var(--yellow);box-shadow:5px 5px 0 #10120f,6px 6px 0 #e5cd7166,12px 18px 28px #0008; }
.portfolio .contact-window-bar { gap:9px;padding:7px 10px;background:var(--yellow);color:var(--black);font-size:18px; }
.contact-window-bar #cv-window-heading { margin:0;font:inherit;letter-spacing:.035em; }
.cv-window-mark { font-size:22px;line-height:1; }
.cv-window-index { margin-left:auto;padding-left:14px;border-left:1px solid #10120f70;font-size:16px; }
.cv-path { display:flex;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid #e5cd7140;color:#b6aa78;font:15px/1.2 'VT323',monospace;letter-spacing:.06em; }
.cv-window-content { padding:18px 17px 16px; }
.cv-document-row { display:grid;grid-template-columns:59px minmax(0,1fr);gap:17px;align-items:center; }
.cv-document { position:relative;height:76px;display:flex;align-items:center;justify-content:center;border:1px solid #e5cd7138;background:repeating-linear-gradient(0deg,transparent 0 3px,#e5cd7106 3px 4px); }
.cv-document svg { width:43px;height:60px;stroke:var(--yellow);stroke-width:1; }
.cv-document>span { position:absolute;right:-4px;bottom:7px;background:var(--yellow);color:var(--black);padding:1px 4px;font:16px/1 'VT323',monospace; }
.portfolio .cv-file-label { margin:0 0 5px;font:15px/1.2 'VT323',monospace;letter-spacing:.04em;color:#b6aa78; }
.home-page .cv-window-title { margin:0;color:var(--ink);font:30px/1.05 'Space Grotesk',Liberation,sans-serif;letter-spacing:-.04em; }
.cv-file-meta { margin:8px 0 0;font:17px/1.2 'VT323',monospace; }
.cv-file-meta span { padding:0 7px;color:#857d59; }
.cv-filename { margin:15px 0 12px;padding:7px 0;border-top:1px solid #e5cd712e;border-bottom:1px solid #e5cd712e;color:#b6aa78;font:16px/1.2 'VT323',monospace;overflow-wrap:anywhere; }
.portfolio a.cv-download,noscript a.cv-download { background:var(--yellow);color:var(--black);border:1px solid var(--yellow);padding:11px 15px;box-shadow:inset 0 0 0 2px var(--black); }
.portfolio a.cv-download>span,noscript a.cv-download>span { border-left:1px solid #10120f55;min-width:28px;padding-left:14px;text-align:right; }
.portfolio a.cv-download:hover,noscript a.cv-download:hover { background:#f2df98;color:var(--black);outline:1px solid var(--yellow);outline-offset:3px; }
.cv-window-content a.cv-download { display:flex;width:100%;min-height:48px; }
.cv-status-rail { display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border-top:1px solid #e5cd7155;font:14px/1.2 'VT323',monospace; }
.cv-status-rail>span:first-child { display:flex;align-items:center;gap:7px; }
.cv-status-rail i { width:5px;height:5px;background:var(--yellow); }
.cv-signal { width:40px;height:8px;opacity:.55;background:repeating-linear-gradient(90deg,var(--yellow) 0 2px,transparent 2px 5px); }
@media(min-width:1120px){.home-page .home-profile-grid{padding-bottom:130px}.home-page .home-profile-links{padding-right:335px}}
@media(max-width:1119px){.home-page .cv-floating{margin-top:-25px;width:350px}}
@media(max-width:700px){.home-page .cv-floating{width:350px;margin-right:10px}.cv-window-content{padding:16px 13px}.home-page .cv-window-title{font-size:28px}.cv-document-row{gap:13px}.cv-status-rail{padding-inline:8px}}
/* Strong project silhouettes; instrumentation and internal dividers stay fine. */
.home-page .home-profile,.home-page .home-folder,.home-page .category-project,.home-page .home-feature { border:3px solid #b7ad7399; }
.home-page .home-profile>.home-tab,.home-page .home-folder-tab,.home-page .home-feature>.home-tab { border:3px solid #b7ad7399;border-bottom:0;transform:translateY(3px);left:-3px; }
.home-page .home-folder-external,.home-page .home-folder-external .home-folder-tab { border-style:dashed; }
.home-page .home-folder:hover,.home-page .home-folder:hover .home-folder-tab,.home-page .category-project:hover,.home-page .home-feature:hover,.home-page .home-feature:hover>.home-tab { border-color:var(--yellow); }

/* Stable route shell: reserve scrollbar width and share the ribbon baseline.
   Percentage row gaps previously grew with the About content height. */
html { scrollbar-gutter:stable; }
.portfolio .about-page { max-width:1320px;margin:0 auto;padding-top:63px;column-gap:10%;row-gap:46px;align-items:start; }
.portfolio .about-page>.instrument-deck { margin-top:0; }
.portfolio .about-page .about-right { min-width:0; }
@media(max-width:900px){.portfolio .about-page{column-gap:6%}}
@media(max-width:700px){.portfolio .about-page{padding-top:28px}.about-block p{font-size:17px;line-height:1.65}}

/* A slight amber lift only behind the post-intro interface. Existing inner
   surfaces are pinned to the original black, never inherited from the canvas. */
.portfolio { background:#191a11; }
.home-page .home-file,.home-page .home-folder,.home-page .category-project,
.portfolio .about-page,.portfolio .case-page,.portfolio .rentals-case,.portfolio .work-page { background:var(--black); }
.intro-active .portfolio,.intro-entering .portfolio { background:var(--black); }
/* V32: compact physical link keys, subordinate to the primary CV action. */
.home-page .home-socials .social-square { position:relative;background:linear-gradient(160deg,#292b20,#171a13 65%);color:var(--yellow);border:1px solid #b5a76c99;border-top-color:#d1bf7aaa;border-radius:3px;padding:15px;box-shadow:inset 0 0 0 3px #11140f,inset 0 4px 0 #e5cd7119,0 3px 0 #050704,0 4px 0 #b5a76c66;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,translate .14s ease; }
.home-page .home-socials .social-square::after { content:'↗';position:absolute;right:4px;top:3px;font:11px/1 'VT323',monospace;color:#b5a76c;pointer-events:none; }
.home-page .home-socials .social-square svg { width:24px;height:24px;flex:none; }
.home-page .home-socials .social-square:hover { background:#303124;color:#f2df98;border-color:var(--yellow);box-shadow:inset 0 0 0 3px #15180f,0 3px 0 #050704,0 4px 0 var(--yellow);translate:0 -1px; }
.home-page .home-socials .social-square:focus-visible { outline:2px solid var(--yellow);outline-offset:6px;border-color:var(--yellow);background:#303124; }
.home-page .home-socials .social-square:active { translate:0 2px;background:#12150f;box-shadow:inset 0 2px 4px #0009,0 1px 0 #b5a76c66; }
@media(max-width:700px){.home-page .home-socials .social-square{padding:13px}}
@media(max-width:360px){.home-page .home-socials .social-square{padding:11px}}
@media(prefers-reduced-motion:reduce){.home-page .home-socials .social-square{transition:none}}

/* V33: panel gutters belong to copy; media belongs against its frame.
   Explicit grid tracks reserve real room for the lifted CV window. */
.portfolio .about-page {
 --about-inset:clamp(24px,3vw,48px);
 padding-inline:var(--about-inset);
 padding-bottom:48px;
 grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
 column-gap:clamp(32px,5vw,64px);
 row-gap:40px;
}
.portfolio .about-page>div { min-width:0; }
.portfolio .about-page .about-links { gap:16px 24px; }
.portfolio .about-page .about-block { padding-block:24px;margin-bottom:16px; }
.portfolio .about-page .about-block:last-child { margin-bottom:0; }
.portfolio .about-page .about-block h2 { margin:24px 0; }

.home-page .home-profile-grid {
 grid-template-columns:minmax(180px,.7fr) minmax(0,1.4fr) 300px;
 grid-template-rows:auto auto;
 column-gap:32px;row-gap:24px;
 padding:32px;
 align-items:start;
}
.home-page .home-profile-grid>.home-portrait { grid-column:1;grid-row:1 / 3;align-self:center; }
.home-page .home-profile-grid>.home-bio { grid-column:2;grid-row:1; }
.home-page .home-profile-grid>.home-profile-links { grid-column:2;grid-row:2;padding:0;margin:0; }
.home-page .home-profile-grid>.cv-floating {
 position:relative;grid-column:3;grid-row:1 / 3;
 align-self:center;justify-self:end;
 width:300px;max-width:100%;right:auto;bottom:auto;margin:0;
 /* Chrome and existing stepped shadow retain the floating-window hierarchy. */
}
.home-page .home-profile>.file-scan { margin-top:0; }
@media(max-width:1119px){
 .home-page .home-profile-grid { grid-template-columns:minmax(180px,.8fr) minmax(0,1.5fr);padding:28px;gap:24px; }
 .home-page .home-profile-grid>.home-portrait { grid-row:1 / 4;align-self:start; }
 .home-page .home-profile-grid>.cv-floating { grid-column:2;grid-row:3;justify-self:start; }
}
@media(max-width:700px){
 .portfolio .about-page { --about-inset:20px;padding-bottom:32px; }
 .portfolio .about-page h1 { font-size:clamp(36px,8.8vw,50px); }
 .portfolio .about-page .about-right { margin-top:32px; }
 .home-page .home-profile-grid { display:flex;flex-direction:column;padding:24px 20px;gap:24px; }
 .home-page .home-profile-grid>.home-portrait { align-self:center;margin:0 auto; }
 .home-page .home-profile-grid>.cv-floating { align-self:flex-end;width:300px;max-width:100%;margin:0; }
}
@media(max-width:360px){
 .portfolio .about-page { --about-inset:16px; }
 .home-page .home-profile-grid { padding-inline:16px; }
}
/* Full-bleed covers across every folder/category, with independent copy gutters. */
.home-page .home-folder { padding:0 0 16px; }
.home-page .home-folder-preview { border:0;margin:0; }
.home-page .home-folder-preview img,
.home-page .category-project-image img { object-fit:cover;object-position:center; }
.home-page .category-project-image { margin:0;overflow:hidden; }
.home-page .home-folder-meta { margin:20px 16px 0; }
.home-page .home-folder-title { margin:12px 16px 24px; }
.home-page .home-folder-open { margin:auto 16px 0; }
.home-page .home-folder>.folder-register { width:auto;margin:20px 16px 0; }
/* Case sheets keep the original whole image at intrinsic height, no inset frame. */
.rental-figure.rental-file { padding:0; }
.rental-file .rental-file-info { padding:20px; }
@media(max-width:700px){.rental-file .rental-file-info{padding:16px}}
/* Requested yellow frame defines the featured image without an inner moat. */
.home-page .home-feature-image { border:2px solid var(--yellow);padding:0; }

/* V34: larger Yo portrait anchored to the bottom, with a protected text gap. */
@media(min-width:701px){
 .home-page .home-profile-grid>.home-portrait {
  width:calc(100% + 32px);max-width:none;margin-left:-32px;
  justify-self:start;align-self:end;bottom:-32px;
 }
}
@media(min-width:701px) and (max-width:1119px){
 .home-page .home-profile-grid>.home-portrait { width:calc(100% + 28px);margin-left:-28px;bottom:-28px; }
}
@media(max-width:700px){
 .home-page .home-profile-grid>.home-portrait { width:clamp(260px,75vw,340px);max-width:100%; }
}

/* V41 Home/category image screens: original pixels, fine amber border and light phosphor dots. */
.home-page :is(.home-feature-image,.home-folder-preview,.category-project-image) { position:relative;overflow:hidden;isolation:isolate;border:2px solid var(--yellow);padding:0; }
.home-page :is(.home-feature-image,.home-folder-preview,.category-project-image)::before,
.home-page :is(.home-feature-image,.home-folder-preview,.category-project-image)::after { content:"";position:absolute;pointer-events:none;z-index:2; }
.home-page :is(.home-feature-image,.home-folder-preview,.category-project-image)::before { inset:0;background-image:radial-gradient(circle,#e5cd7166 .65px,transparent .9px);background-size:4px 4px;opacity:.26; }
.home-page :is(.home-feature-image,.home-folder-preview,.category-project-image)::after { left:0;right:0;top:-2px;height:1px;background:var(--yellow);opacity:.32;box-shadow:0 -2px 8px #e5cd7126;animation:media-screen-sweep 9s linear infinite;animation-play-state:paused; }
.home-page :is(.home-feature-image,.home-folder-preview,.category-project-image).screen-visible::after { animation-play-state:running; }
.home-page .home-folder:nth-child(2n) .home-folder-preview::after,
.home-page .category-project:nth-child(2n) .category-project-image::after { animation-delay:-3s; }
.home-page .home-folder:nth-child(3n) .home-folder-preview::after,
.home-page .category-project:nth-child(3n) .category-project-image::after { animation-delay:-6s; }
.home-page :is(.home-feature-image,.home-folder-preview,.category-project-image).screen-pulse::before { animation:media-screen-pulse 200ms ease-out 1; }
@keyframes media-screen-sweep { from { transform:translateY(0); } to { transform:translateY(var(--screen-sweep-distance,320px)); } }
@keyframes media-screen-pulse { 0% { background-color:#e5cd71;opacity:.15; } 100% { background-color:transparent;opacity:.26; } }
/* Mirrored lens copies stay static; no duplicate scan/pulse animation surfaces. */
.glass-fragments :is(.home-feature-image,.home-folder-preview,.category-project-image)::after,
.glass-fragments :is(.home-feature-image,.home-folder-preview,.category-project-image)::before { animation:none!important; }
@media(prefers-reduced-motion:reduce){
 .home-page :is(.home-feature-image,.home-folder-preview,.category-project-image)::after { display:none;animation:none; }
 .home-page :is(.home-feature-image,.home-folder-preview,.category-project-image).screen-pulse::before { animation:none; }
}

/* V34 file joins: one stroke owns each edge. Tabs stop at the outer top
   edge; an unbordered surface bridge covers only the body's top stroke.
   No translated border can hang down over the full-bleed image. */
.home-page .home-profile { --file-stroke:3px; }
.home-page .home-feature,.home-page .home-folder { --file-stroke:3px; }
.rental-figure.rental-file { --file-stroke:1px;background:var(--black); }
.home-page .home-profile>.home-tab,
.home-page .home-feature>.home-tab,
.home-page .home-folder>.home-folder-tab,
.rental-file>.rental-file-label {
 bottom:calc(100% + var(--file-stroke));
 left:calc(0px - var(--file-stroke));
 max-width:calc(100% + var(--file-stroke) + var(--file-stroke));
 border-width:var(--file-stroke) var(--file-stroke) 0;
 transform:none;background:var(--black);z-index:1;
}
.home-page .home-profile>.home-tab::after,
.home-page .home-feature>.home-tab::after,
.home-page .home-folder>.home-folder-tab::after,
.rental-file>.rental-file-label::after {
 content:"";position:absolute;top:100%;left:0;right:0;
 height:var(--file-stroke);background:var(--black);pointer-events:none;
}
/* Keep the external-directory separator aligned to the same outer frame. */
@media(min-width:1120px){
 .home-page .home-folder-external::before { bottom:calc(0px - var(--file-stroke)); }
}
@media(max-width:1119px){
 .home-page .home-folder-external::before { left:calc(0px - var(--file-stroke));right:calc(0px - var(--file-stroke)); }
}

/* V34 case gutters: every shared project text section has an inner inset.
   File frames, labels and complete images retain their full outer width. */
.portfolio .rentals-case { --case-inset:clamp(24px,3vw,48px); }
.portfolio .rentals-case>.rental-top,.portfolio .rentals-case>.rental-header,.portfolio .rentals-case>.rental-overview,.portfolio .rentals-case .rental-chapter-heading,.portfolio .rentals-case>.rental-closing,.portfolio .rentals-case>.instrument-deck{ padding-inline:var(--case-inset); }
.portfolio .rentals-case>.rental-top { flex-wrap:wrap; }
@media(max-width:700px){.portfolio .rentals-case{--case-inset:20px}}
@media(max-width:360px){.portfolio .rentals-case{--case-inset:16px}}

/* Contact envelopes reuse the home email icon and inherit each link’s color. */
.contact-envelope { display:inline-block; width:.8em; height:.8em; vertical-align:-.08em; }

/* V48: shared content grid and comfortable footer clearance on every route. */
.portfolio .site-footer {
 box-sizing:border-box;width:100%;max-width:1320px;margin:0 auto;
 min-height:0;flex-wrap:wrap;gap:24px;
 padding:40px 0 calc(64px + env(safe-area-inset-bottom, 0px));
}
.portfolio .site-footer>div { min-width:0;max-width:100%;gap:20px; }
/* Rental closing: CV stays primary, contact alongside as a secondary action. */
.rental-action-pair { display:flex;flex-wrap:wrap;align-items:center;gap:12px;max-width:100%; }
.portfolio .rental-action-pair>a { flex:0 0 auto;white-space:nowrap; }
.portfolio a.contact-button {
 display:inline-flex;align-items:center;justify-content:space-between;gap:16px;
 min-height:46px;max-width:100%;padding:12px 16px;border:1px solid var(--yellow);
 background:var(--black);color:var(--yellow);font:400 20px/1.2 'VT323',Mono,monospace;
 text-decoration:none;
}
.portfolio a.contact-button:hover { background:var(--yellow);color:var(--black); }
.portfolio a.contact-button:focus-visible { outline:2px solid var(--yellow);outline-offset:4px; }
/* Expose the existing warm global background between project containers only. */
.portfolio .case-page,.portfolio .rentals-case { background:transparent; }
.portfolio .rentals-case>.rental-top,.portfolio .rentals-case>.case-intro { background:var(--black); }
@media(max-width:700px){
 .portfolio .site-footer { gap:20px;padding:28px 0 calc(48px + env(safe-area-inset-bottom, 0px)); }
 .portfolio .site-footer>div { margin-left:0;gap:16px 20px; }
}

/* V66: an ordinary text link and wrapping navigation, keeping the shared grid. */
.home-page .home-more { display:inline-flex;align-items:center;min-height:44px;margin-top:8px;color:var(--yellow);font:20px/1.2 'VT323',monospace;text-decoration:underline;text-underline-offset:4px; }
.home-page .home-more:hover { color:var(--ink); }
.home-page .home-more:focus-visible { outline:2px solid var(--yellow);outline-offset:4px; }
.portfolio .masthead nav { flex-wrap:wrap; }
.portfolio .masthead #works-link { display:inline-flex;align-items:center;gap:7px; }
.portfolio .masthead #works-link svg { flex:none; }
@media(max-width:700px){.portfolio .masthead nav{gap:8px 16px}.portfolio .masthead .nav-link,.portfolio .masthead .contact-link{min-height:44px}}

/* V69: Behance entries share the index row language, with an external label. */
.index-category-external a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;width:100%;padding:14px 0;text-align:left;border-bottom:1px solid var(--line);font-size:13px;text-decoration:none;overflow-wrap:anywhere}
.index-category-external a>span{font:8px Mono,monospace;color:var(--muted);white-space:nowrap}
.index-category-external a:hover,.index-category-external a:focus-visible{color:var(--yellow)}
.index-external-note{font-size:11px;line-height:1.5;color:var(--muted);margin:8px 0}
#index-summary{line-height:1.6;overflow-wrap:anywhere}
