/* Wasatch / second review: electric accents, quieter framing, richer experiments. */
:root{--electric:#52e3bd;--accent:var(--blue)}
.home-page{--blue:var(--electric);--green:var(--electric);--purple:var(--electric)}
.accent-dot{color:var(--accent)}
.home-page .accent-dot,.home-page .hero-welcome{--accent:var(--electric)}
.site-header{height:114px}
.brand,.brand img{width:224px}
.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:54px;height:54px;border-color:#ffffff40;padding:15px}
.menu-toggle span{width:22px;margin:0;transition:transform .25s,opacity .25s;background:var(--blue)}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{position:absolute;inset:100px var(--pad) auto auto;width:min(400px,calc(100% - 44px));padding:20px 30px 24px;border:1px solid #ffffff30;border-radius:18px;box-shadow:0 24px 90px #000b;background:#101214fa;backdrop-filter:blur(20px);max-height:calc(100svh - 122px)}
.mobile-menu a{font-size:25px;align-items:center;padding:14px 0}
.mobile-menu a[aria-current]{color:var(--blue)}
.mobile-menu a:last-child{border:0}
body.menu-open{overflow:auto}
.hero{min-height:0;padding-top:54px}
.hero-content{padding-bottom:28px}
.hero-content>.eyebrow{margin-bottom:34px}
.hero-bottom{margin-top:10px;padding-block:22px}
.hero-description{margin-bottom:16px}
.action-icon{display:inline-block;position:relative;width:19px;height:19px;flex:0 0 19px;transition:transform .3s}
.action-icon i{position:absolute;left:8px;top:2px;height:15px;width:1px;background:currentColor;transition:transform .3s}
.action-icon i:last-child{transform:rotate(90deg)}
a:hover>.action-icon,.button:hover .action-icon{transform:rotate(90deg)}
.button{--button-accent:var(--blue);background:transparent!important;border:1px solid var(--button-accent)!important;color:var(--button-accent)!important;box-shadow:none}
.button.purple{--button-accent:var(--purple)}
.button.green{--button-accent:var(--green)}
.button:not(:disabled):hover{background:var(--button-accent)!important;color:#0b0b0c!important;transform:translateY(-2px);box-shadow:0 0 30px color-mix(in srgb,var(--button-accent) 12%,transparent)}
.service-card .action-icon{color:var(--blue)}
.service-card:hover .action-icon{transform:rotate(90deg)}
.signal{isolation:isolate;background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--tint) 16%,#0c1015),#0c1015 74%)}
.signal.purple,.signal.green{background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--tint) 16%,#0c1015),#0c1015 74%)}
.signal-grid{position:absolute;inset:0;background-image:linear-gradient(color-mix(in srgb,var(--tint) 7%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--tint) 7%,transparent) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(ellipse,#000,transparent 74%);transform:perspective(300px) rotateX(32deg) scale(1.3);animation:grid-drift 16s linear infinite}
.signal-orbit{position:absolute;left:50%;top:46%;width:210px;height:210px;margin:-105px;border:1px solid color-mix(in srgb,var(--tint) 18%,transparent);border-radius:50%;animation:orbit-spin 14s linear infinite}
.signal-orbit:before,.signal-orbit:after{content:'';position:absolute;left:50%;top:-3px;width:5px;height:5px;background:var(--tint);border-radius:50%;box-shadow:0 0 16px var(--tint)}
.signal-orbit:after{top:auto;bottom:-3px;opacity:.4}
.signal-field{filter:drop-shadow(0 0 12px color-mix(in srgb,var(--tint) 30%,transparent));z-index:1}
.signal-0 .signal-field{animation:field-turn 24s linear infinite}
.signal-0 .signal-field i{border-width:1.5px}
.signal-1 .signal-field i{animation:layer-float 4.8s ease-in-out infinite;animation-delay:calc(var(--layer,0) * -.8s)}
.signal-1 i:nth-child(2){--layer:1}.signal-1 i:nth-child(3){--layer:2}.signal-1 i:nth-child(4){--layer:3}
.signal-2 .signal-field:after{content:'';position:absolute;left:14px;top:45px;width:70px;height:3px;background:var(--tint);box-shadow:0 14px 0 color-mix(in srgb,var(--tint) 60%,transparent),0 28px 0 color-mix(in srgb,var(--tint) 30%,transparent);transform-origin:left;animation:code-write 4s ease-in-out infinite}
.signal-3 .signal-field{animation:node-turn 14s ease-in-out infinite}
.signal-3 .signal-field:before,.signal-3 .signal-field:after{content:'';position:absolute;left:52px;top:43px;width:64px;height:64px;border:1px dashed var(--tint);opacity:.3}
.signal-3 .signal-field:after{width:5px;height:5px;background:var(--tint);border:0;border-radius:50%;offset-path:path('M 0 0 L 64 0 L 64 64 L 0 64 Z');animation:route-pulse 5s linear infinite}
.signal-beacon{position:absolute;right:18px;top:18px;width:5px;height:5px;border-radius:50%;background:var(--tint);box-shadow:0 0 12px var(--tint);animation:signal-breathe 3s ease-in-out infinite alternate}
.signal-code{font-size:11px;color:color-mix(in srgb,var(--tint) 65%,#929ba7)}
.service-expanded{display:grid;grid-template-columns:1fr 1.4fr;gap:80px;padding-top:70px;padding-bottom:10px}
.expanded-heading h2{font-size:clamp(32px,3.3vw,48px);margin-top:24px;max-width:470px}
.expanded-copy>p{font-size:18px;max-width:760px}
.usecase-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:38px}
.usecase-pair h3{font-size:23px;line-height:1.2;margin-bottom:14px}
.usecase-pair>div{border-top:1px solid var(--line);padding-top:24px}
.in-practice{margin-top:28px;border-left:2px solid var(--purple);padding:25px 30px;background:#c1a6ff06;border-radius:0 12px 12px 0}
.in-practice h3{font-size:25px;margin:16px 0}
.in-practice p{margin-bottom:22px}
.classified-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.classified-card{text-align:left;color:var(--ink);position:relative;display:flex;flex-direction:column;padding:0;font:inherit}
.classified-card .classified-art{min-height:230px;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:28px}
.classified-card .classification{font-size:20px}
.classified-card h3{font-size:29px;min-height:2.2em}
.classified-card .card-info{padding:27px}
.redacted-word{display:inline-block;background:#36323e;color:transparent;border-radius:2px;user-select:none;line-height:1.1;vertical-align:middle}
.restricted-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:28px;text-align:center;background:#510e16f2;color:#fff1f1;opacity:0;visibility:hidden;transform:scale(1.03);transition:opacity .25s,transform .25s,visibility .25s;backdrop-filter:blur(10px)}
.restricted-overlay strong{font-size:27px;font-weight:400;letter-spacing:-.03em}
.restricted-overlay>span:not(.lock-symbol){font-size:16px;color:#ffb2b9}
.restricted-overlay small{font-size:12px;color:#f0a0aa;margin-top:28px}
.lock-symbol{font-size:48px;line-height:1;color:#ff8c9c;border:1px solid #ff8c9c60;border-radius:50%;width:72px;height:72px;display:grid;place-items:center;margin-bottom:12px}
.classified-card[aria-expanded=true] .restricted-overlay{opacity:1;visibility:visible;transform:scale(1)}
.classified-card[aria-expanded=true]{border-color:#e77987}
.project-hero{position:relative;min-height:380px;display:flex;align-items:flex-start;isolation:isolate;overflow:hidden}
.project-hero>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center 44%;opacity:.65;animation:terrain 20s ease-in-out infinite alternate}
.project-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b0b0ce0,transparent),linear-gradient(0deg,#0b0b0c,transparent 80%);z-index:-1}
.project-hero-copy{padding-block:24px 38px}
.project-hero h1{margin:20px 0;font-size:clamp(52px,8vw,110px)}
.project-hero p{font-size:24px;color:#e0e2e9;margin:0}
.project-back{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0 0 16px -10px;color:var(--blue);border-radius:50%;transition:background .2s,transform .2s}
.project-back:hover{background:#9bdfff12;transform:translateX(-3px)}
.project-overview{padding-block:80px;display:grid;grid-template-columns:1fr 1.3fr;gap:80px}
.project-overview h2{margin:24px 0 0;font-size:43px}
.project-overview p{font-size:18px}
.project-overview .button{margin-top:16px}
.interface-preview{margin:0 auto}
.preview-frame{border:1px solid #ffffff30;border-radius:15px;overflow:hidden;background:#111317;box-shadow:0 20px 80px #0005}
.preview-chrome{display:flex;gap:7px;align-items:center;padding:17px 22px;border-bottom:1px solid var(--line)}
.preview-chrome>span{width:6px;height:6px;border-radius:50%;background:#ffffff40}
.preview-chrome b{font:400 11px var(--mono);letter-spacing:.07em;color:#b4bdc9;margin-left:20px}
.preview-frame img{width:100%;height:auto}
figcaption{color:#919ba6;font-size:13px;margin-top:16px}
.project-technology{display:grid;grid-template-columns:1fr 1.3fr;gap:80px;padding-block:20px 100px}
.project-technology h2{font-size:36px}
.technology-note{font-size:14px}
.team-grid{align-items:stretch}
.team-card{display:flex;flex-direction:column;height:100%;min-height:610px}
.team-card .card-info{flex:1;min-height:270px}
.portrait,.jayda-stage{height:340px;flex:0 0 340px}
.jayda-stage{background:radial-gradient(ellipse at 50% 70%,#382749,#100f15 72%)}
.jayda-sprite{transform:scale(1.9);top:-22px}
.jayda-status{font-size:13px!important;min-height:22px}
.jayda-runway{height:150px;position:relative;overflow:hidden;margin-block:30px 50px;border-bottom:1px solid var(--line)}
.jayda-runway>.eyebrow{position:absolute;top:14px;left:var(--pad);font-size:11px;color:#8d849f}
.jayda-runner{position:absolute;bottom:0;left:-110px;width:96px;height:104px;background:url('/assets/jayda.webp') 0 -104px / 768px 1144px;animation:jayda-crossing 20s linear infinite}
.article-image{background:radial-gradient(ellipse at center,#192e29,#101214)}
.article-image img{object-position:center 24%}
.new-story-header{padding-block:60px 45px;max-width:1300px}
.new-story-header h1{font-size:clamp(42px,5.8vw,86px);max-width:1100px;margin:25px 0}
.new-story-header>p{font-size:20px;max-width:760px}
.story-cover{position:relative;overflow:hidden;margin-bottom:20px}
.story-cover>img{width:100%;max-height:590px;aspect-ratio:2;object-fit:cover;border-radius:18px}
.astra-orbits{position:absolute;right:18%;top:20%;height:220px;width:220px;display:grid;place-items:center;color:#b4ffe7}
.astra-orbits i{position:absolute;inset:0;border:1px solid #52e3bd88;border-radius:50%;animation:astra-orbit 14s linear infinite}
.astra-orbits i:nth-child(2){animation-delay:-4s;inset:15px}.astra-orbits i:nth-child(3){animation-delay:-8s;inset:30px}
.astra-orbits span{font:400 16px var(--mono);letter-spacing:.2em;text-shadow:0 0 20px #52e3bd}
.new-article .article-body>p:first-child{font-size:22px;color:#d8dee6}
.new-article .article-body h2{color:#eef3fa}
.story-gallery{margin:35px 0;display:grid;gap:25px}
.story-gallery img{width:100%;height:auto;border-radius:12px}
.story-gallery figure{margin:0}
.audio-dock{position:fixed;right:24px;bottom:20px;z-index:45;display:flex;align-items:center;gap:12px;background:#14171af5;border:1px solid #ffffff35;box-shadow:0 6px 32px #0008;border-radius:16px;padding:12px 13px;backdrop-filter:blur(20px)}
.audio-play{width:42px;height:42px;border:1px solid var(--blue);color:var(--blue);background:transparent;border-radius:50%;display:grid;place-items:center;padding:0}
.play-glyph{display:block;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid currentColor;margin-left:3px}
.audio-play[aria-pressed=true] .play-glyph{border:0;border-left:3px solid currentColor;border-right:3px solid currentColor;width:9px;height:12px;margin:0}
.audio-track label{display:block;font:400 9px var(--mono);letter-spacing:.1em;color:#9ea8b2;margin-bottom:3px}
.audio-track select{border:0;background:transparent;color:#f0f3f8;font:400 13px var(--font);width:154px;max-width:100%;cursor:pointer;padding:2px 15px 2px 0}
.audio-track option{background:#16191e;color:white}






.audio-meter{display:flex;gap:3px;height:18px;align-items:center}
.audio-meter i{height:3px;width:2px;background:var(--blue);border-radius:2px}
.audio-dock.playing .audio-meter i{animation:equalizer 1.1s ease-in-out infinite alternate}.audio-meter i:nth-child(2){animation-delay:-.4s!important}.audio-meter i:nth-child(3){animation-delay:-.7s!important}.audio-meter i:nth-child(4){animation-delay:-.2s!important}
.site-footer{padding-bottom:115px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes grid-drift{to{background-position:32px 32px}}
@keyframes orbit-spin{to{transform:rotate(360deg)}}
@keyframes field-turn{to{rotate:360deg}}
@keyframes layer-float{0%,100%{margin-top:0;opacity:.4}50%{margin-top:-15px;opacity:.85}}
@keyframes code-write{0%,100%{transform:scaleX(.25);opacity:.3}60%{transform:scaleX(1);opacity:.8}}
@keyframes node-turn{0%,25%,100%{rotate:0deg}50%,75%{rotate:90deg}}
@keyframes route-pulse{to{offset-distance:100%}}
@keyframes jayda-crossing{0%{left:-110px}70%,100%{left:calc(100% + 20px)}}
@keyframes astra-orbit{to{transform:rotateY(360deg) rotateZ(180deg)}}
@keyframes equalizer{to{height:18px}}
@media(max-width:1100px){.service-expanded,.project-overview,.project-technology{gap:40px}.classified-grid{gap:18px}.classified-card h3{font-size:25px}.classified-card .card-info{padding:22px}.portrait,.jayda-stage{height:300px;flex-basis:300px}.team-card .card-info{min-height:300px}.team-card{min-height:600px}.jayda-sprite{transform:scale(1.65);top:-28px}}
@media(max-width:800px){.site-header{height:96px}.brand,.brand img{width:198px}.mobile-menu{top:84px}.hero{padding-top:42px;min-height:0}.hero-content{padding-bottom:24px}.hero-content>.eyebrow{margin-bottom:32px}.service-expanded{grid-template-columns:1fr;gap:12px;padding-top:40px}.expanded-heading h2{max-width:600px}.expanded-copy>p{font-size:17px}.classified-grid{grid-template-columns:1fr}.classified-card{display:grid;grid-template-columns:1fr 1.3fr}.classified-card .classified-art{height:100%;border-bottom:0;border-right:1px solid var(--line);min-height:250px}.classified-card h3{min-height:0;font-size:30px}.project-overview,.project-technology{grid-template-columns:1fr;gap:25px}.project-overview{padding-block:50px}.project-overview h2{font-size:36px}.team-grid{grid-template-columns:1fr}.team-card{min-height:590px;max-width:600px;width:100%;margin:auto}.portrait,.jayda-stage{height:350px;flex-basis:350px}.team-card .card-info{min-height:240px}.jayda-sprite{transform:scale(1.85);top:-16px}.astra-orbits{width:150px;height:150px;right:15%}.audio-dock{right:16px;bottom:16px}.new-story-header>p{font-size:18px}}
@media(max-width:540px){.brand,.brand img{width:185px}.menu-toggle{width:48px;height:48px;padding:12px}.hero{padding-top:32px;min-height:0}.hero-content{padding-bottom:26px}.hero-content>.eyebrow{margin-bottom:30px;font-size:11px}.hero-description{margin:24px 0 12px}.hero-bottom{padding-block:18px;gap:20px}.hero-bottom>span:first-child{max-width:170px;font-size:10px}.hero-bottom a{font-size:11px}.service-hero{padding-top:35px}.service-expanded{padding-top:40px}.usecase-pair{grid-template-columns:1fr;gap:12px}.in-practice{padding:22px}.classified-card{display:flex}.classified-card .classified-art{height:220px;min-height:220px;border-right:0;border-bottom:1px solid var(--line)}.classified-card .card-info{padding:26px}.project-hero{min-height:420px}.project-hero p{font-size:21px}.project-hero h1{overflow-wrap:anywhere}.project-overview{padding-block:40px}.project-overview h2{font-size:33px}.preview-chrome{padding:13px}.preview-chrome b{font-size:9px;letter-spacing:0;margin-left:6px}.project-technology{padding-bottom:65px}.team-card{min-height:640px}.portrait,.jayda-stage{height:380px;flex-basis:380px}.team-card .card-info{min-height:260px}.jayda-sprite{transform:scale(2);top:-8px}.new-story-header{padding-block:40px 25px}.new-story-header h1{font-size:42px}.story-cover>img{aspect-ratio:1.3}.astra-orbits{width:130px;height:130px;top:22%;right:16%}.astra-orbits span{font-size:12px}.audio-dock{right:12px;bottom:12px;gap:9px;padding:10px;max-width:calc(100% - 24px)}.audio-meter{display:none}.audio-track select{width:150px}.new-article .article-body>p:first-child{font-size:20px}.service-nav{font-size:13px}.signal-code{font-size:11px}}
@media(prefers-reduced-motion:reduce){.jayda-runner{left:70%}.astra-orbits i{transform:rotateY(55deg) rotateZ(30deg)}}

.home-page .service-grid{--blue:#9bdfff;--purple:#c1a6ff;--green:#92b48a}

.footer-wordmark .accent-dot{display:inline;color:var(--blue);margin:0}
@media(max-width:800px){
 .project-hero{min-height:0}
 .project-hero-copy{padding-block:14px 32px}
 .project-hero h1{margin:14px 0 18px}
 .project-hero .eyebrow{max-width:100%;font-size:11px}
 .project-back{margin-bottom:12px}
 .interface-preview figcaption{font-size:14px;line-height:1.6}
}

.classified-card .classified-art{position:relative;overflow:hidden}.classified-art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(2px) brightness(.55);transform:scale(1.025)}.classified-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#080a0b22,#080a0b88)}.classified-art>.classification,.classified-art>.eyebrow{position:relative;z-index:1}.classified-art>.eyebrow{position:absolute;bottom:24px;left:28px}

/* Production polish: breathing room, compact sound, a quiet spectrum footer. */
.site-header{height:134px;padding-top:34px;padding-bottom:14px}
.mobile-menu{top:120px}
.audio-dock{gap:9px;padding:7px 10px;border-radius:14px;right:20px;bottom:16px}
.audio-play{width:38px;height:38px}
.audio-track select{width:144px;font-size:14px;min-height:28px}
.audio-track label{font-size:9px;margin-bottom:0}
.audio-meter{gap:2px}
.site-footer{position:relative;padding-top:30px;padding-bottom:82px;background:radial-gradient(ellipse at 5% 0%,#52e3bd0b,transparent 55%),#09090a}
.site-footer:before{content:'';position:absolute;top:-1px;left:var(--pad);right:var(--pad);height:1px;background:linear-gradient(90deg,#52e3bd,#9bdfff70,#c1a6ff80,transparent)}
.footer-top{padding-bottom:22px;gap:20px;align-items:center}
.footer-top>p{margin:0;line-height:1.5}
.footer-top .text-link{color:#52e3bd}
.footer-wordmark>span{margin-top:5px}
.footer-wordmark .accent-dot{color:#52e3bd}
.footer-bottom{padding-top:15px;gap:16px}
@media(max-width:800px){.site-header{height:114px;padding-top:32px}.mobile-menu{top:102px}.footer-top{grid-template-columns:1fr auto}.footer-top>.text-link{grid-column:1/-1}.audio-dock{right:12px;bottom:12px}}
@media(max-width:540px){.footer-top{grid-template-columns:1fr;gap:14px}.footer-top>.text-link{grid-column:auto}.site-footer{padding-top:26px;padding-bottom:86px}.footer-bottom{gap:10px}.footer-bottom .motion-toggle{margin-left:0}.audio-play{width:44px;height:44px}.audio-track select{min-height:34px}}

/* Preserve the original equal card frames; adjust only photo crops. */
.portrait>img{object-position:50% 0%}
.portrait{overflow:hidden}
.portrait-kha>img{object-position:50% 15%;transform:scale(1.08);transform-origin:50% 15%}

/* Center the plus within the larger journal-preview circle. */
.article-image>.action-icon i{left:50%;top:50%;transform:translate(-50%,-50%)}
.article-image>.action-icon i:last-child{transform:translate(-50%,-50%) rotate(90deg)}

/* New square portrait: full-bleed photography inside the original card frame. */
.portrait-brady>img{object-fit:cover;object-position:50% 50%;transform:none}
@media(min-width:541px) and (max-width:800px){.team-card{max-width:500px}.portrait-kha>img{transform:scale(1.32);transform-origin:50% 0%}}
@media(max-width:540px){.portrait-brady>img{transform:scale(1.1);transform-origin:50% 100%}}

@media(max-width:800px){.team-grid{grid-auto-rows:1fr}}

@media(min-width:1600px){.portrait-kha>img{transform:scale(1.25);transform-origin:50% 0%}}
@media(min-width:1800px){.portrait-kha>img{transform:scale(1.35)}}
