/* Each bespoke product gets a separate visual vocabulary. Animate transforms only. */
.product-with-effects{isolation:isolate;--product-motion:running}
.product-with-effects>.wrap{position:relative;z-index:1}
.product-backdrop{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:strict;background:var(--fx-base)}
.product-backdrop>*{position:absolute;animation-play-state:var(--product-motion)}
.product-effects-hidden .product-with-effects{--product-motion:paused}
.product-effects-page #bg,.product-effects-page .overlay{visibility:hidden}
.product-effects-page .footer{background:#0b0f1af2}
.product-fx-light{inset:-20%;background:radial-gradient(ellipse at 85% 20%,var(--fx-glow),transparent 45%),radial-gradient(ellipse at 12% 90%,var(--fx-glow),transparent 40%);animation:product-light-drift 16s ease-in-out infinite alternate}
.backdrop-projector{--fx-base:#0b1525;--fx-glow:#58b6ff1d}
.projector-beam{inset:-15%;background:conic-gradient(from 235deg at 100% 10%,transparent 0 9deg,#58b6ff15 10deg,#85d7ff27 18deg,#58b6ff12 30deg,transparent 31deg);transform-origin:100% 10%;animation:projector-sweep 13s ease-in-out infinite alternate}
.projector-beam-second{opacity:.6;animation-direction:alternate-reverse;animation-duration:17s}
.projector-frame{width:230px;aspect-ratio:16/10;right:3%;top:18%;border:1px solid #73c8ff38;box-shadow:inset 0 0 35px #58b6ff08;transform:perspective(650px) rotateY(-22deg);animation:projector-frame-drift 12s ease-in-out infinite alternate}
.projector-frame-second{width:170px;left:2%;top:65%;animation-direction:alternate-reverse;animation-duration:15s}
.projector-dots{inset:-50px;background:radial-gradient(#8ad8ff28 1px,transparent 2px) 0 0/48px 48px;mask-image:linear-gradient(130deg,transparent 35%,#000);animation:product-grid-drift 20s linear infinite}
.backdrop-converter{--fx-base:#1b160f;--fx-glow:#f5b54c17}
.converter-film{width:180px;height:160vh;left:-7%;top:-30%;border-inline:8px dashed #f5b54c2b;background:repeating-linear-gradient(0deg,transparent 0 130px,#f5b54c17 130px 132px);transform:rotate(20deg);animation:converter-reel 12s linear infinite}
.converter-film-second{left:auto;right:-5%;width:145px;opacity:.6;animation-duration:16s;animation-direction:reverse}
.converter-wave{width:125%;left:-12%;top:55%;stroke:#f5b54c;stroke-width:1.5;opacity:.12;animation:converter-wave-drift 9s ease-in-out infinite alternate}
.converter-wave path:nth-child(2){stroke:#d882ff;opacity:.6}
.converter-track{bottom:10%;left:15%;width:70%;height:1px;background:#f5b54c1a}
.converter-track span{display:block;width:75px;height:3px;background:linear-gradient(90deg,transparent,#f5b54c88,transparent);animation:converter-playhead 8s ease-in-out infinite alternate}
.product-effects-hidden .converter-track span{animation-play-state:paused}
.backdrop-trimmer{--fx-base:#0b191b;--fx-glow:#4fd8c615}
.trimmer-uv-grid{inset:-48px;background:linear-gradient(#4fd8c610 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,#4fd8c610 1px,transparent 1px) 0 0/48px 48px;mask-image:radial-gradient(ellipse at 75% 60%,#000,transparent 80%);animation:product-grid-drift 20s linear infinite}
.trimmer-zone{border:1px solid #4fd8c638;background:#4fd8c605;color:#4fd8c66b;animation:trimmer-zone-drift 12s ease-in-out infinite alternate}
.trimmer-zone span{position:absolute;left:8px;top:6px;font:10px var(--mono);letter-spacing:.12em}
.trimmer-zone-a{width:200px;height:150px;top:12%;right:3%}
.trimmer-zone-b{width:150px;height:240px;top:45%;left:-3%;animation-direction:alternate-reverse;animation-duration:15s}
.trimmer-zone-c{width:300px;height:70px;bottom:9%;right:10%;border-color:#8b8dff35;color:#8b8dff66;animation-duration:10s}
.trimmer-guide{top:0;bottom:0;left:0;width:1px;background:linear-gradient(transparent,#4fd8c655,transparent);animation:trimmer-guide-slide 14s ease-in-out infinite alternate}
.backdrop-arcade{--fx-base:#0d0a1a;--fx-glow:#8c55cc20}
.arcade-starfield{inset:-120px;background:radial-gradient(#b2a0ff80 1px,transparent 1.5px) 0 0/103px 97px,radial-gradient(#58b6ff4d 1px,transparent 1.5px) 30px 40px/173px 131px;opacity:.45;animation:arcade-stars-fall 18s linear infinite}
.arcade-starfield-near{opacity:.35;transform:scale(1.5);animation-duration:11s}
.arcade-invader{width:77px;height:56px;color:#b2a0ff;opacity:.18;shape-rendering:crispEdges;animation:arcade-patrol 8s steps(12) infinite alternate}
.arcade-invader-a{right:7%;top:19%}
.arcade-invader-b{left:6%;bottom:20%;width:55px;height:40px;color:#58b6ff;animation-direction:alternate-reverse;animation-duration:10s}
.arcade-orb{width:9px;height:9px;left:10%;bottom:10%;background:#f5b54c;box-shadow:-8px 8px 0 #f5b54c1f,-16px 16px 0 #f5b54c0c;opacity:.5;animation:arcade-orb-bounce 12s linear infinite}
.arcade-scanlines{inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#00000016 3px 4px)}
@keyframes product-light-drift{from{transform:translate3d(-3%,-3%,0)}to{transform:translate3d(5%,4%,0)}}
@keyframes projector-sweep{from{transform:rotate(-9deg)}to{transform:rotate(12deg)}}
@keyframes projector-frame-drift{from{transform:perspective(650px) translate3d(-20px,-24px,0) rotateY(-22deg)}to{transform:perspective(650px) translate3d(24px,32px,0) rotateY(-8deg)}}
@keyframes product-grid-drift{to{transform:translate3d(48px,48px,0)}}
@keyframes converter-reel{from{transform:rotate(20deg) translateY(0)}to{transform:rotate(20deg) translateY(132px)}}
@keyframes converter-wave-drift{from{transform:translate3d(-25px,25px,0)}to{transform:translate3d(25px,-30px,0)}}
@keyframes converter-playhead{from{transform:translateX(0)}to{transform:translateX(45vw)}}
@keyframes trimmer-zone-drift{from{transform:translate3d(-25px,-22px,0)}to{transform:translate3d(28px,32px,0)}}
@keyframes trimmer-guide-slide{from{transform:translateX(8vw)}to{transform:translateX(92vw)}}
@keyframes arcade-stars-fall{from{transform:translate3d(0,0,0)}to{transform:translate3d(-35px,97px,0)}}
@keyframes arcade-patrol{from{transform:translate3d(-35px,-10px,0)}to{transform:translate3d(40px,28px,0)}}
@keyframes arcade-orb-bounce{0%,100%{transform:translate3d(0,0,0)}25%{transform:translate3d(58vw,-40vh,0)}50%{transform:translate3d(20vw,-72vh,0)}75%{transform:translate3d(70vw,-20vh,0)}}
@media(max-width:650px){.projector-frame{width:150px;opacity:.65}.projector-frame-second{width:110px}.converter-film{width:110px;left:-18%;opacity:.6}.converter-film-second{left:auto;right:-17%}.trimmer-zone{opacity:.65}.trimmer-zone-a{right:-10%;width:150px}.trimmer-zone-c{right:-12%;width:210px}.arcade-invader{width:55px;height:40px;opacity:.13}}
@media(prefers-reduced-motion:reduce){.product-backdrop *{animation:none!important}}
/* The standard portfolio pages stay plain; the welcome page keeps its original ambience. */
.plain-page::before{display:none}.plain-page #bg,.plain-page .overlay{visibility:hidden}
.checker-mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1rem 0 3rem}.checker-mode-grid section{padding:1.3rem;border:1px solid #4fd8c635;background:#122428bb;border-radius:12px}.checker-mode-grid span{font-size:.6rem;color:#4fd8c6}.checker-mode-grid h2{font-size:1.2rem;margin:1rem 0}.checker-mode-bar{height:5px;background:linear-gradient(90deg,#4fd8c6,#9bbba5,#f5b54c,#ff9280);border-radius:6px;opacity:.5}.checker-summary{max-width:64ch;padding:2rem 0}.checker-summary h2{font-size:2rem}.checker-summary p{color:var(--muted);margin-top:1rem}.product-checker{--product-accent:#4fd8c6}.profiler-preview{border:1px solid #8b8dff66;border-radius:12px;overflow:hidden;background:#161b32ed}.profiler-preview-head{font-size:.67rem;color:#babaff;padding:1rem 1.4rem;border-bottom:1px solid #8b8dff44}.profiler-group-list{padding:1rem 1.4rem}.profiler-group-list div{display:flex;gap:1rem;align-items:center;padding:.85rem 0;border-bottom:1px solid #8b8dff1a;font-size:.95rem}.profiler-group-list span{font-size:.65rem;color:#9699df}.profiler-group-list span:last-child{margin-left:auto}.profiler-preview>p{font-size:.6rem!important;padding:0 1.4rem 1rem;color:#9699df!important;margin:0!important}.profiler-status{font-size:.75rem!important;color:#babaff!important}.profiler-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;padding:2rem 0 3rem}.profiler-feature-grid section{border-top:1px solid #8b8dff55;padding-top:1.2rem}.profiler-feature-grid span{color:#babaff;font-size:.7rem}.profiler-feature-grid h2{font-size:1.35rem;margin:1rem 0}.profiler-feature-grid p{color:var(--muted)}.profiler-art{position:relative;aspect-ratio:21/8;overflow:hidden;border:1px solid var(--steel);border-radius:14px}.profiler-art .card__img{object-fit:contain}.product-profiler{--product-accent:#a5a7ff}.product-lorima{--product-accent:#e3cc92;--aqua:#e3cc92;background:#161a14}.lorima-hero{text-align:center;padding:2.5rem 0 2rem}.lorima-hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(4.5rem,11vw,8rem);font-weight:400;letter-spacing:.03em;color:#f3e7c9}.lorima-tagline{font-size:1rem;color:#b5bba7;margin:1rem 0 2.5rem}.lorima-art{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid #e3cc9238;border-radius:3px;box-shadow:0 20px 80px #0004}.lorima-art .card__img{object-fit:cover}.lorima-note{display:flex;align-items:start;gap:2rem;max-width:760px;margin:3rem auto 5rem}.lorima-seal{font-size:3rem;color:#e3cc92;line-height:1}.lorima-note h2{font-family:Georgia,serif;font-size:2rem;font-weight:400;line-height:1.2}.lorima-note p{margin:1.3rem 0;color:#b5bba7}.lorima-note .ilink{color:#e3cc92}.product-lorima .product-return{border-color:#e3cc9229}.backdrop-checker{--fx-base:#0c1c20;--fx-glow:#4fd8c61b}.checker-grid{inset:-48px;background:linear-gradient(#4fd8c60b 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,#4fd8c60b 1px,transparent 1px) 0 0/48px 48px;mask-image:linear-gradient(120deg,transparent 20%,#000);animation:product-grid-drift 22s linear infinite}.checker-sphere{width:155px;height:155px;border-radius:50%;border:1px solid #4fd8c640;background:radial-gradient(at 30% 25%,#9be5d52b,transparent 65%);animation:checker-sphere-drift 11s ease-in-out infinite alternate}.checker-sphere-a{right:4%;top:10%}.checker-sphere-b{left:1%;top:50%;width:115px;height:115px;background:radial-gradient(at 30% 25%,#b7bec936,transparent 65%);border-color:#b7bec938;animation-duration:14s;animation-direction:alternate-reverse}.checker-sphere-c{right:16%;bottom:10%;width:85px;height:85px;border-color:#f5b54c38;animation-duration:9s}.checker-scan{inset:-10%;background:linear-gradient(0deg,transparent 42%,#4fd8c60c 49%,#4fd8c622 50%,transparent 51%);animation:checker-scan 12s ease-in-out infinite alternate}.backdrop-profiler{--fx-base:#111427;--fx-glow:#8b8dff1e}.profiler-grid{inset:-48px;background:linear-gradient(#8b8dff0d 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,#8b8dff0d 1px,transparent 1px) 0 0/48px 48px;mask-image:linear-gradient(transparent,#000);animation:product-grid-drift 24s linear infinite}.profiler-trace{width:150%;left:-25%;bottom:5%;opacity:.15;stroke:#a5a7ff;stroke-width:1.5;animation:profiler-trace 12s ease-in-out infinite alternate}.profiler-trace path:nth-child(2){stroke:#58b6ff}.profiler-tick{width:1px;height:100%;top:0;background:linear-gradient(transparent,#8b8dff38,transparent);animation:profiler-tick 16s linear infinite}.profiler-tick-a{left:0}.profiler-tick-b{left:-35%;animation-duration:23s}.backdrop-lorima{--fx-base:#161a14;--fx-glow:#dac28b12}.lorima-lightshaft{inset:-40%;background:linear-gradient(115deg,transparent 40%,#dac28b0c 44%,#dac28b18 48%,transparent 53%);transform-origin:50% 0;animation:lorima-sunlight 16s ease-in-out infinite alternate}.lorima-lightshaft-second{animation-direction:alternate-reverse;animation-duration:22s;opacity:.5}.lorima-mist{inset:-30%;background:radial-gradient(ellipse at 75% 80%,#a8b78e13,transparent 45%);animation:product-light-drift 20s ease-in-out infinite alternate}.lorima-mote{width:3px;height:3px;background:#e3cc92;border-radius:50%;box-shadow:0 0 9px #e3cc9240;opacity:.35;animation:lorima-mote 13s ease-in-out infinite alternate}.lorima-mote-a{left:7%;top:20%}.lorima-mote-b{right:12%;top:10%;animation-duration:17s;animation-direction:alternate-reverse}.lorima-mote-c{left:30%;bottom:12%;animation-duration:11s}.lorima-mote-d{right:2%;top:65%;animation-duration:15s}.lorima-mote-e{left:3%;top:70%;animation-duration:19s;animation-direction:alternate-reverse}@keyframes checker-sphere-drift{from{transform:translate3d(-20px,-25px,0)}to{transform:translate3d(30px,35px,0)}}@keyframes checker-scan{from{transform:translateY(-32vh)}to{transform:translateY(32vh)}}@keyframes profiler-trace{from{transform:translate3d(-35px,15px,0)}to{transform:translate3d(40px,-20px,0)}}@keyframes profiler-tick{to{transform:translateX(130vw)}}@keyframes lorima-sunlight{from{transform:rotate(-9deg) translateX(-3%)}to{transform:rotate(9deg) translateX(4%)}}@keyframes lorima-mote{from{transform:translate3d(-25px,30px,0)}to{transform:translate3d(35px,-70px,0)}}@media(max-width:750px){.checker-mode-grid{grid-template-columns:1fr 1fr}.profiler-feature-grid{grid-template-columns:1fr}.lorima-note{gap:1rem;margin:2rem auto 3rem}.lorima-note h2{font-size:1.6rem}.lorima-seal{font-size:2rem}.lorima-art{aspect-ratio:4/3}.lorima-art .card__img{object-position:65% center}.checker-sphere{opacity:.6}.lorima-mote-e{display:none}}
@media(prefers-reduced-motion:reduce){.product-backdrop *{animation:none!important}}
