/* Compact artwork galleries: a quiet contact sheet, with full detail on selection. */
.cover-art .cover-background{filter:blur(6px) brightness(.60) saturate(1.05);transform:scale(1.13);opacity:1;object-fit:cover;width:100%;height:100%}
.cover-art .cover-preview-1{position:absolute;inset:0;mask-image:linear-gradient(90deg,transparent 24%,#000 76%);object-position:65% center;mix-blend-mode:normal}
.cover-art:after{z-index:1;background:linear-gradient(90deg,#05150915,#00101926)}
.cover-art .cover-logo{width:68%;height:62%;filter:drop-shadow(0 2px 5px #0009)}
.case-band .case-wordmark{display:block;width:clamp(50px,6.4cqw,92px);height:auto;max-height:65%;object-fit:contain;object-position:left center;flex-shrink:0}
.brand-text{white-space:nowrap;line-height:1.2}
.project-view{padding-bottom:12px;scroll-padding-block:112px 16px}
.project-toolbar{height:44px;min-height:44px;margin-bottom:14px;padding:0 3px;gap:12px;top:0;background:#e3e9dbf5;z-index:7}
.project-toolbar>button{display:inline-flex;align-items:center;gap:7px;min-height:40px;font-size:13px;white-space:nowrap}
#gallery-count{font-size:12px;color:#526347;white-space:nowrap;font-variant-numeric:tabular-nums}
.project-intro{display:block;margin:0 3px 16px;padding:0}
.project-intro h2{margin:0;font-size:clamp(24px,2.6cqw,37px);font-weight:400;line-height:1.15;letter-spacing:-.025em;max-width:none}
.gallery-filters{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px;padding:0 3px 8px;background:#e3e9dbf5;position:sticky;top:44px;z-index:6}
.gallery-filters button{min-height:34px;padding:7px 12px;border:1px solid #b0bda0;background:#f0f5e8;border-radius:3px;font-size:12px;line-height:1.2;color:#425236}
.gallery-filters button[aria-pressed=true]{background:var(--console-selection);border-color:#52752d;color:white;box-shadow:inset 0 1px #89a960}
.gallery-filters button:focus-visible,.keyboard-navigation .gallery-filters button:focus{outline-offset:1px}
.work-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;grid-auto-flow:row;gap:14px 12px;padding:3px 3px 14px;align-items:start}
.work-item,.work-item.mobile-half{grid-column:auto;grid-row:auto!important;min-width:0;scroll-margin-block:10px}
.work-media,.work-media.is-cutout,.work-media.is-dark{aspect-ratio:4/3;padding:0;background:#d0dac4;box-shadow:none;border-radius:3px}
.work-media img{width:100%;height:100%;object-fit:contain;display:block}
.work-media.is-dark{background:#1d2a22}
.work-media.is-cutout img{padding:12px}
.work-caption{display:block;padding:7px 1px 0;min-width:0}
.work-caption strong{display:block;font-size:13px;font-weight:400;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3e5132}
.work-zoom{width:26px;height:26px;bottom:8px;right:8px}
.concept-label{position:absolute;left:6px;bottom:6px;background:#233416ed;color:#f4f8ed;padding:3px 6px;font-size:11px;line-height:1.1;border-radius:2px}
.project-end{justify-content:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid #a7b693}
.viewer{grid-template-rows:auto minmax(0,1fr) auto;gap:14px;padding:24px 30px}
.viewer-top{align-items:center;min-height:40px}
.viewer-top h2{max-width:calc(100% - 90px);font-size:clamp(14px,1.65cqw,23px);line-height:1.3;letter-spacing:-.015em}
.viewer-image{overflow:hidden}
.viewer-image img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.viewer-bottom{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:20px}
.viewer-info{min-width:0;max-width:72%;font-size:12px;color:#425236;line-height:1.45}
.viewer-info p{font-size:13px;margin:0 0 3px}
.viewer-info small{display:block;font-size:12px;line-height:1.5}
.viewer-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:7px}
.viewer-links a{font-size:12px;text-underline-offset:3px;min-height:28px;display:inline-flex;align-items:center}
.viewer-bottom .navigation{gap:8px;margin-left:auto;align-self:flex-end}
.viewer .counter{min-width:50px;white-space:nowrap;font-size:12px}
.gamer-card p{line-height:1.5}
.profile-email{display:inline-block;color:#385824;font-size:14px;margin-top:24px;text-underline-offset:4px;overflow-wrap:anywhere}
.experience{gap:18px;align-items:start}.experience>div{min-width:0}.experience small{white-space:nowrap;flex-shrink:0;padding-top:2px}
.experience span{display:block;line-height:1.5;margin-top:3px;max-width:50ch}
@container(max-width:850px){.work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-filters button{font-size:11px;padding-inline:9px}.viewer-info{max-width:70%}}
@media(max-width:700px) and (orientation:portrait){
 .project-view{padding-inline:0 5px;scroll-padding-top:138px}
 .project-toolbar{margin-bottom:14px}.project-toolbar>button{font-size:12px}
 .project-intro h2{font-size:26px}.project-intro{margin-bottom:14px}
 .work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 10px}
 .work-caption strong{font-size:12px}.work-media{aspect-ratio:1/1}
 .gallery-filters{gap:6px;margin-bottom:12px;padding-bottom:10px}.gallery-filters button{min-height:36px;font-size:12px;padding:7px 9px}
 .viewer{padding:16px 13px;gap:10px}.viewer-bottom{display:block}
 .viewer-info{max-width:100%}.viewer-info p{font-size:12px}.viewer-info small{font-size:11px}
 .viewer-bottom .navigation{justify-content:flex-end;margin-top:10px}.viewer-links a{min-height:32px}
 .experience{flex-direction:column;gap:5px}.experience small{padding:0}.gamer-card .text-link{font-size:12px}
 .profile-trigger .profile-name{font-size:12px}.brand-text{font-size:3.7cqw}
}
@container(max-height:450px) and (min-aspect-ratio:13/10){.project-intro h2{font-size:24px}.project-intro{margin-bottom:10px}.gallery-filters{position:relative;top:auto;margin-bottom:10px}.project-toolbar{margin-bottom:10px}.work-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.viewer{padding:12px 22px;gap:8px}.viewer-info p{font-size:12px}.viewer-info small,.viewer-links a{font-size:11px}.viewer-top{min-height:30px}.viewer-top h2{font-size:15px}.viewer-links{margin-top:3px}.viewer-links a{min-height:22px}}

.orb{overflow:hidden;background:#d8e0cf;border-color:#f6faed}.orb:before,.orb:after{display:none}.orb img{display:block;width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}

/* Personal portrait sits with the biography and resume; the console account keeps its gamer picture. */
.profile-introduction{display:grid;grid-template-columns:minmax(0,1fr) clamp(132px,13cqw,188px);column-gap:24px;row-gap:14px;align-items:start}
.profile-introduction h2{grid-column:1;grid-row:1;margin:0;align-self:end}
.profile-introduction .profile-bio{grid-column:1;grid-row:2;margin:0;max-width:none}
.resume-portrait{grid-column:2;grid-row:1 / span 2;margin:0;padding:5px;border:1px solid #96a88b;border-radius:4px;background:linear-gradient(#f8fbef,#d8e2ca);box-shadow:inset 0 1px #fff,0 2px 5px #36472b26}
.resume-portrait img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:1px}
@media(max-width:700px) and (orientation:portrait){
 .profile-introduction{grid-template-columns:112px minmax(0,1fr);gap:16px}
 .resume-portrait{grid-column:1;grid-row:1}
 .profile-introduction h2{grid-column:2;grid-row:1;align-self:center;font-size:clamp(21px,6cqw,26px);line-height:1.12}
 .profile-introduction .profile-bio{grid-column:1 / -1;grid-row:2}
}
@container(max-height:450px) and (min-aspect-ratio:13/10){.profile-introduction{grid-template-columns:minmax(0,1fr) 112px;gap:12px 18px}}

/* An image-only mosaic: preserve artwork proportions and reveal details on selection. */
.deck-caption{justify-content:flex-end}
.project-view{scroll-padding-top:110px}
.project-toolbar{margin-bottom:10px}
.project-intro{margin-bottom:12px}
.gallery-filters{margin-bottom:10px;padding-bottom:8px}
.gallery-tools{display:flex;align-items:center;gap:14px;min-width:0}
.gallery-size{display:flex;align-items:center;gap:2px}
.project-toolbar .gallery-size button{width:34px;min-height:34px;display:grid;place-items:center;padding:0;border:1px solid var(--ui-line,#9bad88);border-radius:3px;background:var(--ui-raised,#edf2e5);color:var(--ui-ink,#34482a)}
.project-toolbar .gallery-size button svg{width:16px;height:16px}
#project-gallery .work-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;padding:0 0 12px;grid-template-columns:none;grid-auto-rows:auto}
#project-gallery .work-item{flex:none;width:calc(25% - 5px);height:150px;position:relative;margin:0;scroll-margin-block:8px;border-radius:0;outline-offset:2px;cursor:zoom-in;overflow:hidden}
#project-gallery .work-content,#project-gallery .work-media{width:100%;height:100%;display:block;aspect-ratio:auto;border-radius:0;box-shadow:none;padding:0;overflow:hidden}
#project-gallery .work-media{background:var(--ui-tile,#d2dcc8)}
#project-gallery .work-media.is-dark{background:#17241d}
#project-gallery .work-media img{display:block;width:100%;height:100%;object-fit:contain;padding:0;filter:none;transform:none;user-select:none;-webkit-user-drag:none}
#project-gallery .work-media.is-cutout img{padding:8px}
#project-gallery .work-item:focus-visible,.keyboard-navigation #project-gallery .work-item:focus{outline:3px solid var(--ui-focus,#527326);outline-offset:-3px}
#project-gallery .work-item:focus-visible .work-media,.keyboard-navigation #project-gallery .work-item:focus .work-media{box-shadow:none}
@media(max-width:700px) and (orientation:portrait){
 .project-toolbar{gap:8px}.project-toolbar>button{font-size:12px}.gallery-tools{gap:8px}#gallery-count{font-size:11px}
 .project-intro h2{font-size:25px}.project-intro{margin-bottom:10px}
 #project-gallery .work-item{width:calc(50% - 2px);height:112px}
 .gallery-filters button{min-height:34px;padding:6px 8px}
}
.motion-off #project-gallery .work-media img{transition:none;transform:none}
@media(prefers-reduced-motion:reduce){#project-gallery .work-media img{transition:none;transform:none}}

/* Keep navigation compact so the artwork begins near the top of each project. */
.project-toolbar{height:auto;min-height:48px;margin:0;padding:2px 0 8px;gap:12px;align-items:center}
.gallery-heading{display:flex;align-items:center;gap:8px;min-width:0}
.gallery-heading h2{margin:0;font-size:clamp(23px,2.3cqw,31px);font-weight:400;letter-spacing:-.025em;line-height:1.15;color:var(--ui-ink,#30372f);overflow-wrap:normal}
.project-toolbar #project-back{width:32px;min-width:32px;height:38px;min-height:38px;display:grid;place-items:center;padding:0}
.gallery-filters{top:var(--gallery-toolbar-height,48px);padding-top:8px;margin-bottom:8px}
.gallery-tools{flex-shrink:0}
@media(max-width:700px) and (orientation:portrait){
 .project-toolbar{gap:8px;align-items:center}.gallery-heading{gap:4px}.gallery-heading h2{font-size:20px}
 .project-toolbar #project-back{width:25px;min-width:25px}
 .gallery-tools{gap:6px}.project-toolbar .gallery-size button{width:29px;min-height:34px}
 #gallery-count{font-size:10px;max-width:34px;white-space:normal;text-align:right;line-height:1.2}
}
@container(max-height:450px) and (min-aspect-ratio:13/10){.gallery-filters{position:sticky;top:var(--gallery-toolbar-height,48px)}}
/* On phones, filters scroll sideways so multiple rows never consume the image area. */
@media(max-width:700px) and (orientation:portrait){
 .gallery-filters{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:none;scroll-padding-inline:3px}
 .gallery-filters::-webkit-scrollbar{display:none}
 .gallery-filters button{flex:none;white-space:nowrap;min-height:38px}
}


/* The artwork itself defines every tile; no padded cards or hover zoom. */
#project-gallery .work-grid{display:block;position:relative;padding:0;gap:0;min-height:120px}
#project-gallery .work-item{position:absolute;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:pointer}
#project-gallery .work-media,#project-gallery .work-media.is-dark,#project-gallery .work-media.is-cutout{background:transparent;border:0;padding:0}
#project-gallery .work-media img,#project-gallery .work-media.is-cutout img{padding:0;border:0;object-fit:contain;transition:none;transform:none}
#project-gallery .work-item:hover .work-media{transform:none;box-shadow:none}
#project-gallery .work-item:hover:after{display:none}

/* Readable details and reachable filters at every gallery size. */
.gallery-filter-buttons{display:flex;flex-wrap:wrap;gap:6px;width:100%}
.gallery-filters button{font-size:14px;min-height:40px;padding:8px 12px}
.gallery-filter-picker{display:none}
.gallery-filter-picker select{width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--ui-line);border-radius:3px;background:var(--ui-raised);color:var(--ui-ink);font:inherit;font-size:16px;line-height:1.35}
.gallery-filter-picker select:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}
.project-toolbar .gallery-size button{width:38px;min-height:40px}
#gallery-count{font-size:13px}
.viewer{grid-template-rows:auto minmax(120px,1fr) auto;overflow:auto;overscroll-behavior:contain}
.viewer-top{gap:14px}
.viewer-top h2{font-size:clamp(18px,1.7cqw,24px);line-height:1.3;overflow-wrap:anywhere;max-width:none;min-width:0}
.viewer-top button{flex:none;min-height:44px;font-size:14px}
.viewer-info{max-width:76%;font-size:14px;line-height:1.5}
.viewer-info p,.viewer-info small,.viewer-links a{font-size:14px;line-height:1.5}
.viewer-info p{max-width:65ch}
.viewer-links a{min-height:36px}
.viewer .counter{font-size:14px}
@media(max-width:700px) and (orientation:portrait){
 .gallery-filter-buttons{display:none}
 .gallery-filter-picker{display:block}
 .gallery-filters{display:block;overflow:visible;padding:7px 0 9px;margin-bottom:5px}
 .project-view:has(.gallery-filters) #gallery-count{display:none}
 .project-toolbar .gallery-size button{width:36px;min-height:40px}
 .gallery-heading h2{font-size:20px;overflow-wrap:normal}
 .viewer{padding:15px 12px;gap:12px}
 .viewer-info{max-width:100%}
 .viewer-top h2{font-size:18px}
 .viewer-links a{min-height:40px}
 .viewer-bottom .navigation{margin-top:8px}
}
