/* D4RK Designs / site-wide violet + teal + amber visual identity.
   Extends the approved The Lab CSS without changing its composition. */
:root{--bg:#0e0b13;--panel:#191322;--panel-2:#211a2e;--line:#413353;--line-strong:#655075;--fg:#efeaf6;--muted:#b6abc5;--faint:#91839f;--blue:#b095e1;--cyan:#a88bea;--orange:#ecaa77;--accent-teal:#77c9c4;--rule:#40314f;--radius:5px}
html{scroll-padding-top:86px}body.d4rk-site{background:var(--bg);color:var(--fg)}
.d4rk-site main{min-height:50vh}.d4rk-site p{color:var(--muted)}
.d4rk-site .topbar{z-index:120}.d4rk-site .wrap{width:min(1230px,calc(100% - 90px));margin-inline:auto}
.d4rk-site .nav a[aria-current="page"]{color:#fff}.d4rk-site .nav a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:5px;height:2px;background:#ac89e3}
.d4rk-site .site-footer{background:#0d0a12}.d4rk-site .site-footer p{margin:0}
.d4rk-site .skip-link{position:fixed;top:-100px;left:14px;background:#fff;color:#140c1c;z-index:200;padding:10px 14px}.d4rk-site .skip-link:focus{top:10px}
/* Shared atmospheric hero: the same geometry and parallax structure as The Lab. */
.d4rk-decorated-hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 72% 45%,#2c1b3d 0%,#1b1227 44%,#0e0b13 85%)}
.d4rk-decorated-hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(#a591df0b 1px,transparent 1px),linear-gradient(90deg,#a591df0b 1px,transparent 1px);background-size:76px 76px;mask-image:linear-gradient(90deg,transparent 15%,#000 95%)}
.d4rk-decorated-hero .hero-parallax{z-index:1;opacity:.94}.d4rk-decorated-hero .hero-far{z-index:1}.d4rk-decorated-hero>:not(.hero-parallax):not(.hero-far){position:relative;z-index:2}
/* Home: restore the headline, photograph and left articles/right feature layout from the editorial design. */
.d4rk-site .container{width:min(1230px,calc(100% - 90px));margin:0 auto}
.d4rk-site .d4rk-home-hero{min-height:635px;border-bottom:1px solid #4b3964}
.d4rk-home-hero .hero-art{filter:brightness(.62) saturate(.78) hue-rotate(8deg);opacity:.89;z-index:0}
.d4rk-home-hero::before{background:linear-gradient(90deg,#0e0b13 0%,#0e0b13ec 31%,#0e0b13bd 48%,#0e0b1350 75%,transparent 100%);z-index:1}
.d4rk-site .home-hero-inner{position:relative;z-index:2;min-height:635px;padding-top:125px;padding-bottom:78px}
.d4rk-site .home-hero h1,.d4rk-site .subpage-hero h1{font-family:Inter,'Segoe UI',Arial,sans-serif;font-weight:700;letter-spacing:-.07em;font-style:normal;line-height:1.03}
.d4rk-site .home-hero h1{font-size:clamp(63px,6.9vw,106px);max-width:670px;margin:13px 0 24px}
.d4rk-site .home-hero .period,.d4rk-site .period{color:#eaa471}
.d4rk-site .hero-copy{max-width:580px}.d4rk-site .intro{font-size:15px;color:#e8def0;line-height:1.77;max-width:550px}
.d4rk-site .intro.secondary{color:#aa9ebd}.d4rk-site .home-hero .eyebrow,.d4rk-site .subpage-hero .eyebrow{color:#d1b7f0;letter-spacing:.22em}
.d4rk-site .hero-rule{background:#a383d9}.d4rk-site .hero-caption{color:#d2c2e6;letter-spacing:.17em}
.d4rk-site .texture-band.d4rk-divider{background:#191324;border-color:#514063;min-height:37px}.d4rk-site .texture-band-inner{min-height:37px}.d4rk-site .texture-band-inner span{color:#bca7db}
.d4rk-site .d4rk-divider::after{background-image:radial-gradient(#9f7edc 1px,transparent 1px),radial-gradient(#e9a46d 1px,transparent 1px);background-size:19px 19px,83px 83px;opacity:.17}
.d4rk-site .home-content{padding-top:72px;padding-bottom:90px}.d4rk-site .section-label{color:#d0bced}.d4rk-site .section-label i{background:#c0a0ed}.d4rk-site .micro-link,.d4rk-site .text-link{color:#d0b7f3}
.d4rk-site .home-two-col{gap:56px}.d4rk-site .latest{border-color:#4a385d}
.d4rk-site .article-row{border-color:#3d304e}.d4rk-site .article-row:hover{background:#25183188}
.d4rk-site .article-info h3{font-family:Inter,'Segoe UI',Arial,sans-serif;font-weight:600;letter-spacing:-.035em}
.d4rk-site .article-img,.d4rk-site .featured-cover{border:1px solid #514166;background:#1a1522;overflow:hidden}
.d4rk-site .featured-cover{box-shadow:0 24px 60px #0005}.d4rk-site .feature-title{font:700 clamp(30px,3vw,45px)/1.14 Inter,'Segoe UI',Arial,sans-serif;letter-spacing:-.05em}
.d4rk-site .feature-description{color:#b7abc6}.d4rk-site .feature-index{background:#1b1426cc;color:#ddc6f3}
.d4rk-site .pathways{background:linear-gradient(150deg,#191225,#0d0b12);border-color:#4f3a63}.d4rk-site .pathway-grid a{border-color:#433353;position:relative;overflow:hidden}
.d4rk-site .pathway-grid a::after{content:"";position:absolute;width:150px;height:110px;right:-26px;bottom:-27px;opacity:.15;background:url('assets/large-card-hex-nodes.svg') center/contain no-repeat;pointer-events:none}
.d4rk-site .pathway-grid a:hover{background:#241a30}.d4rk-site .pathway-grid strong{font-family:Inter,'Segoe UI',Arial,sans-serif;font-weight:600;letter-spacing:-.04em}
.d4rk-site .pathway-number{color:#e7a875}
/* About: preserve portrait, writing and interest sections, but use same modern hex aesthetic. */
.d4rk-site .d4rk-about-hero{background:radial-gradient(ellipse at 77% 38%,#281b39,#100c17 73%);border-bottom:1px solid #49355b}
.d4rk-about-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0c0a1399,transparent 82%);z-index:1}
.d4rk-site .about-hero-grid{position:relative;z-index:2;padding-top:104px;padding-bottom:55px;min-height:555px}
.d4rk-site .subpage-hero h1{font-size:clamp(62px,6vw,91px)}
.d4rk-site .subpage-hero h1 em{font-style:normal;color:#b897ed}
.d4rk-site .subpage-hero-copy>p{max-width:510px;color:#cfc3dd;line-height:1.75}
.d4rk-site .about-portrait{border:1px solid #58406e;box-shadow:0 26px 70px #0007;background:#24192e}.d4rk-site .about-portrait img{filter:saturate(.83)}
.d4rk-site .about-content{padding-top:77px}.d4rk-site .about-main>p{color:#c7bccc}.d4rk-site .section-title{font:700 clamp(32px,3vw,47px)/1.16 Inter,'Segoe UI',Arial,sans-serif;letter-spacing:-.05em}
.d4rk-site .about-aside{border-color:#4c395e}.d4rk-site .about-interests{padding-top:25px}.d4rk-site .interest-grid a{border:1px solid #433653;background:#191423;transition:transform .24s,border-color .24s}
.d4rk-site .interest-grid a:hover{border-color:#aa86de;transform:translateY(-3px)}.d4rk-site .interest-grid img{filter:saturate(.8)}.d4rk-site .interest-grid span{font-family:Inter,'Segoe UI',Arial,sans-serif;font-weight:600;letter-spacing:-.025em}
.d4rk-site .about-closer{border-top:1px solid #4a365f;background:linear-gradient(135deg,#21162e,#110d19)}
/* Archives and collections: shared Lab palette, generous hierarchy, restrained hex nodes on cards. */
.site-hero{height:auto;min-height:390px;border-bottom:1px solid #48375a}
.site-hero .site-hero-inner{position:relative;z-index:2;min-height:390px;display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:center;gap:50px;padding-top:122px;padding-bottom:66px}
.site-hero .site-hero-copy{max-width:820px}.site-hero .kicker{margin-bottom:20px;color:#c8a9ec;font-size:10px}
.site-hero h1,.site-hero .site-title{font-size:clamp(57px,7vw,96px);font-weight:730;letter-spacing:-.069em;line-height:1.02;margin:0 0 22px}
.site-hero h1 .hero-dot{color:#e7a472}.site-hero-lede{font-size:16px;line-height:1.7;color:#c1b3d2;max-width:620px}
.site-hero-visual{width:100%;height:215px;position:relative;display:flex;justify-content:center;align-items:center}
.site-hero-hex{width:212px;height:236px;position:relative;background:#8063b1;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);filter:drop-shadow(0 5px 35px #6a4aaa55)}
.site-hero-hex::before{content:"";position:absolute;inset:2px;background:radial-gradient(circle at 50% 50%,#241536,#130f1d);clip-path:inherit}
.site-hero-hex::after{content:"";position:absolute;inset:60px 42px;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);background:#e4a474;opacity:.72}
.page-updates .site-hero-hex::after,.page-projects .site-hero-hex::after{background:#68bab9}.page-kits .site-hero-hex::after{background:#e4a474}
.site-page-body{padding-top:68px;padding-bottom:80px}
.d4rk-site .section{scroll-margin-top:90px}.d4rk-site .section-head h2{font-family:Inter,'Segoe UI',Arial,sans-serif;letter-spacing:-.04em}
.d4rk-site .project-card,.d4rk-site .visual-card,.d4rk-site .kit-featured-card,.d4rk-site .kit-card{background:linear-gradient(150deg,#21172c,#130f1b 80%);border-color:#4a385f;border-radius:5px;position:relative;isolation:isolate;overflow:hidden;transition:border-color .22s,transform .24s,box-shadow .24s}
.d4rk-site .project-card::after,.d4rk-site .kit-card::after,.d4rk-site .kit-featured-card::after{content:"";position:absolute;bottom:4px;right:0;width:158px;height:106px;background:url('assets/large-card-hex-nodes.svg') center/contain no-repeat;opacity:.11;pointer-events:none;z-index:-1}
.d4rk-site .project-card:hover,.d4rk-site .kit-card:hover,.d4rk-site .kit-featured-card:hover{border-color:#a183d6;transform:translateY(-3px);box-shadow:0 16px 36px #0004}
.d4rk-site .project-photo,.d4rk-site .kit-cover,.d4rk-site .kit-featured-photo{background:#211829}.d4rk-site .project-info h3,.d4rk-site .kit-card h3{font-weight:630;letter-spacing:-.035em}
.d4rk-site .project-info p,.d4rk-site .kit-card p,.d4rk-site .kit-featured-copy p{color:#b8abc9}
.d4rk-site .eyebrow,.d4rk-site .mini-id{color:#c6a9ed}.d4rk-site .tag{border-color:#564265;color:#d6bdf2;background:#2b1c3890}
.d4rk-site .category-tabs .filter-pill,.d4rk-site .filter-pill{background:#1c1527;border-color:#524166;color:#c4b4d6;border-radius:4px}
.d4rk-site .filter-pill:hover,.d4rk-site .filter-pill[aria-pressed="true"]{background:#3c2852;border-color:#c4a1ec;color:white}
.d4rk-site .kit-summary a{background:#1e1729;border-color:#513d63}.d4rk-site .kit-summary strong{color:#e8d8f9}.d4rk-site .kit-summary a:hover{background:#2c203b}
.d4rk-site .collection-callout{background:#21162c;border-color:#5e466e}.d4rk-site .collection-callout>span{color:#d5b9ed}
.d4rk-site .kit-search input,.d4rk-site .search-wrap input{background:#1a1522;color:#f4ecff;border:1px solid #59456d;border-radius:4px}
.d4rk-site input::placeholder{color:#9f92b1}.d4rk-site input:focus{outline:2px solid #a681df;outline-offset:1px}
.d4rk-site .post-row{border-color:#4a395b}.d4rk-site .post-row:hover{background:#281c3280}.d4rk-site .post-row h3{font-weight:630;letter-spacing:-.036em}
.d4rk-site .post-meta{color:#b8a0d6}.d4rk-site .post-arrow{color:#e7a976}
.d4rk-site .post-thumb{border-color:#594369!important}.d4rk-site .article{color:#ddd1e9}.d4rk-site .article-header h1{font-weight:700;letter-spacing:-.054em;color:#f8f3ff}.d4rk-site .article-paragraph{color:#c7b9d2}
.d4rk-site .article-image,.d4rk-site .kit-article-cover{background:#1c1627;border-color:#543e69}
.d4rk-site .article .tag-row .tag{background:#271c33}.d4rk-site .article-facts,.d4rk-site .article-gallery{border-color:#4b395e}
.d4rk-site .kit-primary-link{border-radius:4px;background:#47325e;border-color:#9a77bf;color:#f2e5ff}.d4rk-site .kit-primary-link:hover{background:#594170}
.d4rk-site .status-badge,.d4rk-site .category-badge{border-color:#664f78;color:#d3b9ef}.d4rk-site .kit-watermark{background:#100d19df;border-color:#79628f;color:#eadcf6}
.d4rk-site .archive-block,.d4rk-site .timeline-card{background:#1b1425;border-color:#4c375d}.d4rk-site .draft-note{background:#271932;border-color:#ae8add;color:#e3d1f0}
.d4rk-site .site-page-body .section{margin-bottom:85px}
/* One consistent animation system outside The Lab; no opacity hiding when JS is absent. */
.d4rk-site .site-reveal{transition:opacity .65s ease, transform .7s cubic-bezier(.2,.7,.2,1)}
.d4rk-site.motion-active .site-reveal:not(.site-visible){opacity:0;transform:translateY(25px)}
.d4rk-site.motion-active .site-reveal.site-visible{opacity:1;transform:translateY(0)}
@media(max-width:1000px){.d4rk-site .wrap,.d4rk-site .container{width:calc(100% - 56px)}.site-hero .site-hero-inner{gap:10px;grid-template-columns:1fr 200px}.site-hero-visual{transform:scale(.8)}}
@media(max-width:800px){.d4rk-site .wrap,.d4rk-site .container{width:calc(100% - 42px)}.d4rk-site .home-two-col{gap:48px}.d4rk-site .d4rk-home-hero{min-height:640px}.d4rk-site .home-hero-inner{min-height:640px}.d4rk-site .about-hero-grid{min-height:auto}.site-hero .site-hero-inner{min-height:320px;padding-top:115px;padding-bottom:45px}.site-hero{min-height:320px}.site-hero h1,.site-hero .site-title{font-size:67px}.site-hero-visual{opacity:.55}}
@media(max-width:600px){.d4rk-site .wrap,.d4rk-site .container{width:calc(100% - 34px)}.d4rk-site .home-hero-inner{min-height:630px;padding-top:125px;padding-bottom:47px;align-items:end}.d4rk-site .d4rk-home-hero{min-height:630px}.d4rk-site .home-hero h1{font-size:clamp(53px,12.4vw,72px)}.d4rk-home-hero .hero-art{top:40px;bottom:auto;height:315px;width:110%;right:-15%;opacity:.65;filter:brightness(.56) saturate(.65)}.d4rk-home-hero::before{background:linear-gradient(0deg,#0e0b13 0%,#0e0b13 30%,#0e0b13f0 48%,#0e0b1355 83%,#0e0b13ad 100%)}.d4rk-site .intro{font-size:13px}.d4rk-site .home-content{padding-block:48px 65px}.d4rk-site .article-row{grid-template-columns:106px 1fr}.d4rk-site .featured-cover{height:340px}.d4rk-site .subpage-hero h1{font-size:clamp(52px,11vw,66px)}.d4rk-site .about-hero-grid{padding-top:113px}.d4rk-site .about-content{padding-top:54px}.site-hero{min-height:295px}.site-hero .site-hero-inner{grid-template-columns:1fr;min-height:295px;padding-top:108px;padding-bottom:42px}.site-hero h1,.site-hero .site-title{font-size:clamp(51px,11vw,71px)}.site-hero-lede{font-size:13px}.site-hero-visual{position:absolute!important;right:-40px;top:85px;opacity:.14;transform:scale(.7)}.site-page-body{padding-top:45px;padding-bottom:55px}.d4rk-site .project-grid,.d4rk-site .kit-grid{grid-template-columns:1fr}.d4rk-site .site-page-body .section{margin-bottom:58px}}
@media(prefers-reduced-motion:reduce){.d4rk-site .site-reveal{transition:none!important;opacity:1!important;transform:none!important}.d4rk-site .hero-parallax,.d4rk-site .hero-far{transform:none!important;animation:none!important}}
/* Hero photograph stays behind the editorial text; decorative SVG motion remains above it. */
.d4rk-site .d4rk-home-hero .hero-art{
  position:absolute!important;
  inset:0 0 0 auto;
  z-index:0!important;
  width:62%;height:100%;
  background-size:cover;
  background-position:50% 46%;
  filter:brightness(.65) saturate(.77) hue-rotate(8deg);
  opacity:.84;
}
.d4rk-site .d4rk-home-hero::before{z-index:1}
.d4rk-site .d4rk-home-hero .hero-copy{max-width:690px}
.d4rk-site .d4rk-home-hero h1{font-size:clamp(64px,6.1vw,92px);letter-spacing:-.07em}
@media(max-width:840px){.d4rk-site .d4rk-home-hero .hero-art{width:80%;opacity:.7}}
@media(max-width:600px){
 .d4rk-site .d4rk-home-hero,.d4rk-site .d4rk-home-hero .home-hero-inner{min-height:625px}
 .d4rk-site .d4rk-home-hero .hero-art{inset:47px -10% auto auto;width:115%;height:315px;opacity:.54;background-position:60% 40%;filter:brightness(.53) saturate(.64)}
 .d4rk-site .d4rk-home-hero h1{font-size:clamp(52px,12vw,66px)}
 .d4rk-site .d4rk-home-hero .home-hero-inner{padding-top:100px;padding-bottom:35px}
}
/* Avoid an overly large gap above the Projects overview. */
.page-projects .site-page-body{padding-top:46px}
.page-projects .site-page-body .section:first-child{margin-top:0}

/* Index-style hero preview: edge-to-edge artwork with the homepage text fade. */
.d4rk-site .banner-hero{min-height:635px;padding-top:0;background:#0e0b13}
.d4rk-site .banner-hero::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,#0e0b13 0%,#0e0b13ec 31%,#0e0b13bd 48%,#0e0b1350 75%,transparent 100%);
}
.d4rk-site .banner-hero>.wrap{position:static;width:100%;margin:0}
.d4rk-site .page-hero-banner{
  --banner-orange:#efaa65;
  position:static;isolation:auto;
  display:flex;align-items:center;
  width:min(1230px,calc(100% - 90px));min-height:635px;
  padding:125px 0 78px;margin:0 auto;
  border:0;border-radius:0;background:none;overflow:visible;
}
.d4rk-site .page-hero-banner::before,.d4rk-site .page-hero-banner::after{content:none}
.d4rk-site .page-hero-banner .banner-copy{position:relative;z-index:3;width:55%;max-width:690px;min-width:0}
.d4rk-site .page-hero-banner .eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  color:#d1b7f0;font-family:"Segoe UI",Arial,sans-serif;font-size:10px;font-weight:650;line-height:1.65;letter-spacing:.22em;
}
.d4rk-site .page-hero-banner .eyebrow::before{
  content:"";display:inline-block;width:10px;height:10px;flex:none;
  border:2px solid var(--banner-orange);
  clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);
}
.d4rk-site .page-hero-banner h1{
  margin:22px 0 24px;font-family:Inter,"Segoe UI",Arial,sans-serif;
  font-size:clamp(64px,6.1vw,92px);font-weight:700;line-height:1.03;letter-spacing:-.07em;
}
.d4rk-site .page-hero-banner .banner-title-gradient{
  background:linear-gradient(100deg,#fff 3%,#f0e9ff 49%,#b990f8 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.d4rk-site .page-hero-banner .dot{color:#eaa471}
.d4rk-site .page-hero-banner p{max-width:550px;color:#e8def0;font-size:15px;line-height:1.77}
.d4rk-site .page-hero-banner .banner-summary{margin-top:16px;color:#bdb0ce}
.d4rk-site .page-hero-banner .banner-visual{
  position:absolute;inset:0 0 0 auto;transform:none;
  z-index:0;isolation:auto;width:62%;height:100%;max-width:none;margin:0;
  overflow:hidden;pointer-events:none;
}
.d4rk-site .page-hero-banner .hero-visual-frame{
  position:absolute;inset:0;width:100%;height:100%;
  border:0;box-shadow:none;clip-path:none;background:none;overflow:hidden;
}
.d4rk-site .page-hero-banner .hero-visual-frame::before,.d4rk-site .page-hero-banner .hero-visual-frame::after{content:none}
.d4rk-site .page-hero-banner .hero-visual-hex,.d4rk-site .page-hero-banner .hex-outline,.d4rk-site .page-hero-banner .visual-label{display:none}
.d4rk-site .page-hero-banner .hero-visual-frame img{
  position:absolute;inset:0;transform:none;
  width:100%;height:100%;max-width:none;max-height:none;
  object-fit:cover;object-position:50% 46%;padding:0;mix-blend-mode:normal;
  -webkit-mask-image:none;mask-image:none;
  opacity:.84;filter:brightness(.65) saturate(.77) hue-rotate(8deg);
}
.d4rk-site .page-hero-projects .hero-visual-frame img{object-position:100% 46%}
.d4rk-site .page-hero-kits .hero-photo img{object-position:100% 48%}
@media(max-width:600px){.d4rk-site .page-hero-banner.page-hero-kits .hero-photo img{object-position:100% 40%}}
@media(max-width:1000px){.d4rk-site .page-hero-banner{width:calc(100% - 56px)}}
@media(max-width:840px){.d4rk-site .page-hero-banner .banner-visual{width:80%}.d4rk-site .page-hero-banner .hero-visual-frame img{opacity:.7}}
@media(max-width:800px){.d4rk-site .banner-hero,.d4rk-site .page-hero-banner{min-height:640px}}
@media(max-width:600px){
  .d4rk-site .banner-hero{min-height:625px}
  .d4rk-site .banner-hero::before{background:linear-gradient(0deg,#0e0b13 0%,#0e0b13 30%,#0e0b13f0 48%,#0e0b1355 83%,#0e0b13ad 100%)}
  .d4rk-site .page-hero-banner{width:calc(100% - 34px);min-height:625px;align-items:flex-end;padding:100px 0 35px}
  .d4rk-site .page-hero-banner .banner-copy{width:100%;max-width:600px}
  .d4rk-site .page-hero-banner h1{font-size:clamp(52px,12vw,66px)}
  .d4rk-site .page-hero-banner p{font-size:13px}
  .d4rk-site .page-hero-banner .banner-visual{inset:47px -10% auto auto;width:115%;height:315px}
  .d4rk-site .page-hero-banner .hero-visual-frame img{opacity:.54;object-position:60% 40%;filter:brightness(.53) saturate(.64)}
}
@media(forced-colors:active){.d4rk-site .banner-title-gradient{background:none;color:CanvasText}}

/* The Lab uses the same image treatment and typography as the other banners. */
.d4rk-site .hero.banner-hero::before{opacity:1}
.d4rk-site .hero.banner-hero::after,.d4rk-site .hero.banner-hero .hex-fabric{display:none}
.d4rk-site .page-hero-lab .hero-visual-frame img{object-position:100% 46%}
@media(max-width:600px){
 .d4rk-site .page-hero-banner.page-hero-lab .hero-visual-frame img{object-position:100% 40%}
 .d4rk-site .page-hero-lab .hero-actions{flex-wrap:wrap;gap:18px}
}
/* Compact project directory: small illustrations, not another feature gallery. */
.page-projects #tech-projects{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.page-projects #tech-projects .project-card{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:start;gap:16px;padding:18px;background:linear-gradient(135deg,#1b1423,#110d18);border-radius:4px}
.page-projects #tech-projects .project-card:hover{transform:none;box-shadow:none;border-color:#9977c4}
.page-projects #tech-projects .project-photo{width:56px;height:56px;border:1px solid #493854;border-radius:4px;background:#17121e}
.page-projects #tech-projects .project-photo img{object-fit:contain}
.page-projects #tech-projects .project-info{padding:0;min-width:0}
.page-projects #tech-projects .eyebrow{font-size:9px;letter-spacing:.13em}
.page-projects #tech-projects h3{font-size:20px;line-height:1.2;margin:5px 0 8px}
.page-projects #tech-projects p{font-size:12px;line-height:1.6;min-height:0}
.page-projects #tech-projects .tag-row{margin-top:10px;gap:5px 10px}
.page-projects #tech-projects .tag{padding:0;border:0;background:none;color:#9d8eaf;font-size:10px}
.page-projects #tech-projects .text-link{font-size:11px;margin-top:10px;line-height:1.5}
.page-projects #tech-projects .secondary-project-link{margin-top:5px}
.page-projects .site-page-body .section-first{padding-block:0 28px;margin-bottom:0}
.page-projects .project-journal{padding-top:28px}
.page-projects .section-first .section-head{margin-bottom:20px}
.page-projects .section-first .section-head h2{font-size:28px}
@media(max-width:1100px){.page-projects #tech-projects{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.page-projects #tech-projects{grid-template-columns:1fr}.page-projects #tech-projects .project-card{padding:16px;gap:14px}}
/* Model Kits: avoid stacked shared section padding and archive margins. */
.page-kits .site-page-body{padding-top:36px;padding-bottom:32px}
.page-kits .kit-summary{margin:0 0 36px}
.page-kits .site-page-body>.section{padding-block:0;margin-bottom:40px}
.page-kits .site-page-body>.section:last-child{margin-bottom:0}
.page-kits .section-head{margin-bottom:20px}
.page-kits .kit-controls{margin-bottom:20px}
@media(max-width:600px){
 .page-kits .site-page-body{padding-top:28px;padding-bottom:28px}
 .page-kits .kit-summary{margin-bottom:28px}
 .page-kits .site-page-body>.section{margin-bottom:32px}
 .page-kits .site-page-body>.section:last-child{margin-bottom:0}
}
.article-gallery.gallery-contain .gallery-photo img{object-fit:contain;background:#100c17}
/* Article photos open in a native, keyboard-accessible overlay. */
.photo-viewer-open{overflow:hidden}
.article-photo,.gallery-photo{cursor:zoom-in;display:block}
.photo-viewer{width:min(1120px,calc(100vw - 40px));max-width:none;height:min(850px,calc(100dvh - 40px));max-height:none;margin:auto;padding:0;border:1px solid #66507e;border-radius:6px;background:#130f1b;color:#efeaf6;box-shadow:0 24px 100px #000b;overflow:hidden}
.photo-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.photo-viewer::backdrop{background:#07050cdb;backdrop-filter:blur(7px)}
.photo-viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #40314f}
.photo-viewer-counter{font-size:12px;color:#c8b0e5;white-space:nowrap}
.photo-viewer-toolbar>div{display:flex;gap:8px}
.photo-viewer button{min-height:40px;min-width:40px;padding:8px 12px;border:1px solid #59426d;border-radius:4px;background:#23192e;color:#eee4fa;cursor:pointer;font:600 12px Inter,"Segoe UI",Arial,sans-serif}
.photo-viewer button:hover{background:#3a294c}.photo-viewer button:disabled{opacity:.35;cursor:default}
.photo-viewer-stage{min-height:0;overflow:auto;display:grid;place-items:center;background:#0b0810;padding:12px;overscroll-behavior:contain}
.photo-viewer-stage img{display:block;width:100%;height:100%;min-height:0;object-fit:contain;cursor:zoom-in}
.photo-viewer.photo-zoomed .photo-viewer-stage{display:block}
.photo-viewer.photo-zoomed .photo-viewer-stage img{width:auto;height:auto;max-width:none;max-height:none;cursor:zoom-out}
.photo-viewer-caption{padding:12px 16px;margin:0;font:12px/1.6 Inter,"Segoe UI",Arial,sans-serif;color:#c4b7d2;max-height:110px;overflow:auto}
@media(max-width:600px){.photo-viewer{width:calc(100vw - 16px);height:calc(100dvh - 24px)}.photo-viewer-toolbar{padding:8px;gap:6px}.photo-viewer-toolbar>div{gap:4px}.photo-viewer button{padding:8px;min-height:44px;min-width:40px}.photo-viewer-stage{padding:6px}}
/* Compact collection banner on individual kit records; the kit name stays the H1. */
.page-kit .banner-hero,.page-kit .page-hero-banner{min-height:300px}
.page-kit .page-hero-banner{padding:118px 0 42px}
.page-kit .compact-banner-title{font:700 clamp(32px,3.5vw,48px)/1.08 Inter,"Segoe UI",Arial,sans-serif;letter-spacing:-.055em;margin:12px 0 14px}
.page-kit .page-hero-banner p{font-size:13px}
.page-kit .page-hero-banner .hero-visual-frame img{object-position:85% 48%}
.page-kit .site-page-body{padding-top:36px}
@media(max-width:600px){
 .page-kit .banner-hero,.page-kit .page-hero-banner{min-height:280px}
 .page-kit .page-hero-banner{padding:100px 0 30px;align-items:center}
 .page-kit .page-hero-banner .banner-visual{inset:0 0 0 auto;width:100%;height:100%}
 .page-kit .banner-hero::before{background:linear-gradient(90deg,#0e0b13ed,#0e0b13b0 55%,#0e0b1355)}
 .page-kit .page-hero-banner .hero-visual-frame img{object-position:85% 48%}
 .page-kit .compact-banner-title{font-size:34px}
}
/* Gaming profile snapshots and the two-host game-server setup. */
.page-gaming .gaming-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.page-gaming .gaming-links a{display:inline-flex;align-items:center;min-height:42px;padding:9px 13px;border:1px solid #685080;border-radius:4px;background:#21162dcc;color:#e6d5fb;font-size:12px;line-height:1.5}
.page-gaming .gaming-links a:hover{background:#352345;border-color:#b493de}
.page-gaming .site-page-body{padding-top:48px}
.page-gaming .site-page-body .section{padding-block:0;margin:0 0 62px}
.page-gaming .section-head{margin-bottom:22px}
.page-gaming .gaming-intro{font-size:14px;line-height:1.85;color:#c3b6cf;max-width:850px;margin-bottom:24px}
.page-gaming .gaming-source{font-size:11px;line-height:1.7;color:#a293b4;margin-top:14px;max-width:850px}
.page-gaming .lab-stats{margin-top:0}
.page-gaming .lab-stat{background:linear-gradient(145deg,#21172c,#130f1b);border-color:#49365c}
.page-gaming .lab-stat strong{color:#efe5fa}
.page-gaming .lab-stat span{color:#bcaace}
.page-gaming .gaming-recent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.page-gaming .gaming-host-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.page-gaming .lab-note{min-width:0;padding:22px;background:linear-gradient(145deg,#21172c,#130f1b);border:1px solid #49365c;border-radius:4px}
.page-gaming .lab-note h3{font-size:20px;line-height:1.3;letter-spacing:-.025em;margin:12px 0}
.page-gaming .lab-note p{font-size:13px;line-height:1.75;color:#bcafca}
.page-gaming .mini-id{font-size:9px;letter-spacing:.12em;color:#c1a4e5}
.page-gaming .gaming-hosting-flow{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:18px 20px;margin-bottom:18px;border:1px solid #4c385f;border-radius:4px;background:#17101f}
.page-gaming .gaming-hosting-flow span{font-size:12px;color:#d6c6e7}
.page-gaming .gaming-hosting-flow span[aria-hidden]{color:#eaa471}
.page-gaming .gaming-request-note{margin-top:20px;padding:20px 22px;border-left:2px solid #a77fd4;background:#1b1324}
.page-gaming .gaming-request-note h3{font-size:18px;line-height:1.3;margin-bottom:10px}
.page-gaming .gaming-request-note p{font-size:13px;line-height:1.8;color:#c0b0ce;max-width:900px}
.page-gaming .gaming-catalogue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #42314f}
.page-gaming .gaming-catalogue article{min-width:0;padding:19px 22px 19px 0;border-bottom:1px solid #42314f}
.page-gaming .gaming-catalogue article:nth-child(even){padding-left:22px;border-left:1px solid #42314f}
.page-gaming .gaming-catalogue h3{font-size:18px;line-height:1.3;margin-bottom:8px;color:#e9def3}
.page-gaming .gaming-catalogue p{font-size:13px;line-height:1.7;color:#b7a8c6;max-width:460px}
@media(max-width:800px){.page-gaming .gaming-recent-grid{grid-template-columns:1fr}.page-gaming .gaming-host-grid{grid-template-columns:1fr}}
@media(max-width:600px){.page-gaming .site-page-body{padding-top:34px}.page-gaming .site-page-body .section{margin-bottom:44px}.page-gaming .gaming-catalogue{grid-template-columns:1fr}.page-gaming .gaming-catalogue article:nth-child(even){padding-left:0;border-left:0}.page-gaming .gaming-hosting-flow{gap:9px;padding:16px}.page-gaming .gaming-hosting-flow span{font-size:11px}.page-gaming .gaming-links{gap:8px;margin-top:18px}}
/* Personal favourites and recorded incremental-game playtime. */
.page-gaming .gaming-favourites{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.page-gaming .gaming-favourites article{min-width:0;padding:20px 22px;background:linear-gradient(145deg,#21172c,#130f1b);border:1px solid #49365c;border-radius:4px}
.page-gaming .gaming-favourites h3{font-size:22px;line-height:1.2;letter-spacing:-.03em;margin:10px 0}
.page-gaming .gaming-favourites p{font-size:13px;line-height:1.7;color:#bcafca}
.page-gaming .gaming-idle-layout{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:start}
.page-gaming .gaming-inline-link{color:#d6b6f6;text-decoration:underline;text-underline-offset:3px}
.page-gaming .gaming-inline-link:hover{color:#f0dbff}
.page-gaming .gaming-idle-total{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;padding:16px 0;border-top:1px solid #49365c;border-bottom:1px solid #49365c}
.page-gaming .gaming-idle-total strong{font-size:36px;font-weight:650;letter-spacing:-.04em;color:#eadcf9}
.page-gaming .gaming-idle-total span{font-size:12px;color:#bda9d0}
.page-gaming .gaming-idle-list{padding:20px 22px;border:1px solid #49365c;background:#17101f;border-radius:4px;min-width:0}
.page-gaming .gaming-idle-list h3{font-size:17px;margin:0 0 14px}
.page-gaming .gaming-idle-list dl{margin:0}
.page-gaming .gaming-idle-list dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:10px 0;border-top:1px solid #3e2e4d}
.page-gaming .gaming-idle-list dt{font-size:13px;color:#d3c5e0;line-height:1.6}
.page-gaming .gaming-idle-list dd{margin:0;color:#e4bd93;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:1000px){.page-gaming .gaming-favourites{grid-template-columns:repeat(2,minmax(0,1fr))}.page-gaming .gaming-idle-layout{gap:26px}}
@media(max-width:650px){.page-gaming .gaming-favourites{grid-template-columns:1fr}.page-gaming .gaming-idle-layout{grid-template-columns:1fr;gap:24px}}
/* Gaming body adopts The Lab's numbered bands and schematic panels. */
.page-gaming .gaming-body.site-page-body{padding:0}
.page-gaming .gaming-body>.gaming-segment{margin:0;padding:0;background:#0e0b13}
.page-gaming .gaming-body>.gaming-band-soft{background:linear-gradient(155deg,#191324,#110d1a);border-block:1px solid #463554}
.page-gaming .gaming-body>.gaming-band-panel{background:linear-gradient(180deg,#181322,#100e18);border-block:1px solid #453557}
.page-gaming .gaming-segment>.wrap{padding-block:44px 50px}
.page-gaming .gaming-segment .section-top{gap:20px}
.page-gaming .gaming-section-heading{margin:27px 0 22px}
.page-gaming .gaming-section-heading .eyebrow{display:block;color:#9d82ca;font-size:10px;font-weight:700;letter-spacing:.21em;margin-bottom:14px}
.page-gaming .gaming-section-heading h2{font-size:clamp(34px,3.8vw,54px);font-weight:650;letter-spacing:-.045em;line-height:1.13}
.page-gaming .gaming-section-heading .blue{color:#e4a067}
.page-gaming .gaming-segment .gaming-intro{color:#aea5bc}
.page-gaming .gaming-favourites article{background:linear-gradient(155deg,#1e162c,#120f1b);border-color:#503f66;border-radius:0}
.page-gaming .gaming-host-grid .lab-note{background:linear-gradient(140deg,#21182e,#16111e);border-color:#514168;border-radius:0;padding:25px 27px}
.page-gaming .gaming-recent-grid .lab-note{background:#191322;border-color:#463654;border-radius:0}
.page-gaming .gaming-favourites article,.page-gaming .gaming-host-grid .lab-note,.page-gaming .gaming-recent-grid .lab-note,.page-gaming .gaming-idle-list{position:relative;isolation:isolate;overflow:hidden}
.page-gaming .gaming-favourites article::after,.page-gaming .gaming-host-grid .lab-note::after,.page-gaming .gaming-recent-grid .lab-note::after,.page-gaming .gaming-idle-list::after{content:"";position:absolute;right:8px;bottom:6px;width:190px;height:126px;background:url('assets/large-card-hex-nodes.svg') center/contain no-repeat;opacity:.16;pointer-events:none;z-index:0}
.page-gaming .gaming-host-grid .lab-note::after{width:260px;height:174px;max-height:calc(100% - 12px);opacity:.19}
.page-gaming .gaming-favourites article>*,.page-gaming .gaming-host-grid .lab-note>*,.page-gaming .gaming-recent-grid .lab-note>*,.page-gaming .gaming-idle-list>*{position:relative;z-index:1}
.page-gaming .gaming-idle-list{background:linear-gradient(140deg,#21182e,#16111e);border-color:#514168;border-radius:0}
.page-gaming .gaming-idle-total{background:#150e20;border:1px solid #3c2f50;padding:20px 23px}
.page-gaming .gaming-idle-total strong{color:#e6dbf9}
.page-gaming .gaming-library .lab-stats{gap:0;border:1px solid #3c2f50;background:#150e20}
.page-gaming .gaming-library .lab-stat{background:none;border:0;border-right:1px solid #37294f;border-radius:0;padding:24px 27px}
.page-gaming .gaming-library .lab-stat:last-child{border-right:0}
.page-gaming .gaming-library .lab-stat:nth-child(4){border-right:0}
.page-gaming .gaming-library .gaming-value{grid-column:span 2;border-top:1px solid #37294f}
.page-gaming .gaming-library .lab-stat strong{font-size:38px;font-weight:650;color:#e6dbf9}
.page-gaming .gaming-hosting-flow{background:#150e20;border-color:#3c2f50;border-radius:0}
.page-gaming .gaming-request-note{background:linear-gradient(140deg,#21182e,#16111e);border:1px solid #514168;border-left:2px solid #e4a067}
.page-gaming .gaming-catalogue{border:0;gap:14px}
.page-gaming .gaming-catalogue article,.page-gaming .gaming-catalogue article:nth-child(even){background:#191322;border:1px solid #463654;padding:22px 24px}
.page-gaming .gaming-return{padding-block:26px 32px;font-size:12px}
@media(max-width:800px){
 .page-gaming .gaming-segment>.wrap{padding-block:34px 40px}
 .page-gaming .gaming-section-heading h2{font-size:39px}
 .page-gaming .gaming-library .lab-stat{padding:19px 16px}
 .page-gaming .gaming-library .lab-stat:nth-child(2){border-right:0}
 .page-gaming .gaming-library .lab-stat:nth-child(n+3){border-top:1px solid #37294f}
}
@media(max-width:600px){
 .page-gaming .gaming-segment .section-top{align-items:start;gap:14px}
 .page-gaming .gaming-segment .section-index{max-width:58%;line-height:1.6}
 .page-gaming .gaming-segment .section-aside{max-width:42%;line-height:1.6}
 .page-gaming .gaming-section-heading{margin-top:24px}
 .page-gaming .gaming-host-grid .lab-note{padding:22px}
 .page-gaming .gaming-catalogue article,.page-gaming .gaming-catalogue article:nth-child(even){padding:20px}
}
/* In-view statistic roll-in; the original text stays in the accessibility tree. */
.stat-counter-active{position:relative;color:transparent!important;font-variant-numeric:tabular-nums}
.stat-counter-visual{position:absolute;inset:0;display:block;color:var(--counter-ink);font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;white-space:nowrap;pointer-events:none;will-change:transform}
.page-kits .kit-summary strong>.stat-counter-visual,.page-gaming .gaming-library .lab-stat strong>.stat-counter-visual{font:inherit;line-height:inherit;letter-spacing:inherit;color:var(--counter-ink)}
.stat-counter-visual::after{content:attr(data-display)}
@media(prefers-reduced-motion:reduce){.stat-counter-active{color:var(--counter-ink)!important}.stat-counter-visual{display:none}}
@media(forced-colors:active){.stat-counter-active{color:CanvasText!important}.stat-counter-visual{display:none}}
/* BEGIN KIT COLOUR PASS — reversible, page-scoped layout experiment. */
.page-kits .kits-colour-body.site-page-body{padding:0}
.page-kits .kits-summary-band{background:#120e19}
.page-kits .kits-summary-band>.wrap{padding-block:36px 18px}
.page-kits .kits-summary-band .kit-summary{margin:0}
.page-kits .kits-colour-body>.kits-featured-band{margin:0;padding:0;background:linear-gradient(155deg,#191324,#110d1a);border-block:1px solid #463554}
.page-kits .kits-featured-band>.wrap{padding-block:18px 20px}
.page-kits .kits-colour-body>.kits-collection-band{margin:0;padding:0;background:#0e0b13}
.page-kits .kits-collection-band>.wrap{padding-block:20px 32px}
.page-kits .kits-colour-body .section-head{border-bottom:1px solid #463554;padding-bottom:16px}
.page-kits .kits-colour-body .section-head .eyebrow{color:#bb9bea}
.page-kits #kit-grid .kit-grade-heading{padding:12px 16px;background:linear-gradient(100deg,#24182f,#171020);border:1px solid #4a375f;border-left:3px solid #b796e5;color:#e7d8f5;font-size:18px;letter-spacing:.025em}
.page-kits #kit-grid .kit-grade-heading:nth-of-type(even){background:linear-gradient(100deg,#261c28,#18121f);border-left-color:#e3a16c;color:#eddbc9}
@media(max-width:600px){
 .page-kits .kits-summary-band>.wrap{padding-block:28px 14px}
 .page-kits .kits-featured-band>.wrap{padding-block:14px 16px}
 .page-kits .kits-collection-band>.wrap{padding-block:16px 28px}
 .page-kits #kit-grid .kit-grade-heading{font-size:16px;padding:11px 13px}
}
/* END KIT COLOUR PASS */
/* About: one padding layer, centred text/portrait, and a tighter biography gap. */
.d4rk-site .about-hero-grid{align-items:center;padding-top:124px;padding-bottom:38px}
.d4rk-site .about-hero-grid .subpage-hero-copy{padding:0}
.d4rk-site .about-portrait{align-self:center;justify-self:center;display:block;width:fit-content;max-width:100%;height:auto;margin-inline:0}
.d4rk-site .about-portrait img{display:block;width:auto;height:363px;max-width:100%;object-fit:contain}
.d4rk-site .about-portrait>span{left:8px;right:8px;bottom:8px;padding:5px 7px;background:#100c17d9;color:#eee4fa;text-align:center;font-size:8px;letter-spacing:.1em}
@media(max-width:840px){.d4rk-site .about-portrait img{height:283px}}
@media(max-width:590px){.d4rk-site .about-portrait img{height:238px}}
.d4rk-site .about-content{padding-top:46px}
@media(max-width:800px){.d4rk-site .about-hero-grid{padding-top:111px;padding-bottom:38px}}
@media(max-width:590px){.d4rk-site .about-hero-grid{padding-top:105px;gap:24px}.d4rk-site .about-content{padding-top:34px}}
