/* Product artwork revision 1.4 — conceptual illustrations, not application screenshots. */
.art.art-password,.art.art-crypto{container-type:inline-size;isolation:isolate}
.art.art-password{background:radial-gradient(ellipse at 25% 10%,#f4efff 0,transparent 68%),linear-gradient(145deg,#e4ddef,#d3c9e3)}
.art.art-crypto{background:radial-gradient(ellipse at 85% 15%,#49403c 0,transparent 67%),#242321;color:#eee9df}
.art-password>.art-caption,.art-crypto>.art-caption{z-index:5}.art-password>.art-caption.bottom,.art-crypto>.art-caption.bottom{opacity:.75}
.art-crypto>.art-code{display:none}
.password-scene,.crypto-scene{position:absolute;left:50%;top:52%;width:460px;height:250px;transform:translate(-50%,-50%) scale(.96);pointer-events:none}
.password-grid{position:absolute;inset:0;background-image:linear-gradient(#76618716 1px,transparent 1px),linear-gradient(90deg,#76618716 1px,transparent 1px);background-size:31px 31px;mask-image:radial-gradient(ellipse,#000 0%,transparent 67%)}
.password-orbit{position:absolute;width:375px;height:205px;left:40px;top:24px;border:1px solid #76618733;border-radius:50%;transform:rotate(-28deg)}
.password-orbit.orbit-b{transform:rotate(27deg);border-style:dashed;opacity:.55}
.password-stack{position:absolute;left:96px;top:61px;width:280px;height:149px;border-radius:14px;border:1px solid #afa1c6;box-shadow:0 14px 20px #3c25451a}
.password-stack.stack-a{background:#b5a3ce;transform:rotate(13deg) translate(8px,7px)}
.password-stack.stack-b{background:linear-gradient(135deg,#ece4f8,#ccbedf);transform:rotate(2deg) translate(0,0)}
.password-card{position:absolute;left:83px;top:38px;width:290px;height:164px;padding:17px 19px;border-radius:14px;background:linear-gradient(135deg,#3a3342,#201d26 80%);border:1px solid #5f546b;transform:rotate(-10deg);box-shadow:0 3px 0 #17131e,0 20px 35px #25132944,inset 0 1px 0 #ffffff30;color:#f3ecff;font-family:var(--mono);overflow:hidden}
.password-card:after{content:'';position:absolute;width:210px;height:180px;top:-150px;left:45px;transform:rotate(30deg);background:#ffffff12;filter:blur(3px)}
.password-card-top{display:flex;align-items:center;gap:7px;position:relative;z-index:1;font-size:8px;letter-spacing:.04em;color:#d2c4e0}.password-card-top span:last-child{margin-left:auto;color:#b7a7c8}
.password-led{width:6px;height:6px;border-radius:50%;background:#ff865b;box-shadow:0 0 8px #ff633340}
.password-card-body{display:flex;align-items:center;gap:15px;height:91px}
.vault-lock{width:54px;height:62px;position:relative;flex-shrink:0}.vault-lock i{position:absolute;left:12px;top:0;width:32px;height:36px;border:7px solid #d8cbe9;border-bottom:0;border-radius:19px 19px 0 0;box-shadow:inset 2px 0 #fff7}
.vault-lock b{position:absolute;left:2px;top:25px;width:53px;height:39px;border-radius:9px;background:linear-gradient(135deg,#ff9a74,#ff6333 65%);box-shadow:0 3px 0 #a33b23,inset 0 1px 0 #ffcbb4}
.vault-lock b:before{content:'';position:absolute;left:22px;top:11px;width:10px;height:10px;background:#422518;border-radius:50%}.vault-lock b:after{content:'';position:absolute;left:25px;top:16px;width:4px;height:12px;background:#422518;border-radius:1px}
.vault-copy{display:flex;flex-direction:column;gap:2px}.vault-copy>span{font-size:8px;letter-spacing:.12em;color:#c9b9d9}.vault-copy strong{font-family:Arial,sans-serif;font-size:31px;letter-spacing:4px;line-height:1.05;font-weight:700}.vault-copy small{font-size:7px;letter-spacing:.03em;color:#998ba8;margin-top:4px}
.password-card-bottom{padding-top:11px;border-top:1px solid #6b5e784f;display:flex;justify-content:space-between;font-size:8px;color:#b9a9ca;letter-spacing:.07em}
.password-tab{position:absolute;font-family:var(--mono);font-size:10px;letter-spacing:.08em;padding:11px 16px;border-radius:5px;box-shadow:0 9px 18px #34223c20}.password-tab.tab-a{left:44px;top:193px;background:#f5effc;border:1px solid #c0b2d3;transform:rotate(-10deg);color:#6b537f}.password-tab.tab-b{right:30px;top:181px;background:#ff784b;color:#34231b;border:1px solid #ff996f;transform:rotate(6deg);box-shadow:0 3px 0 #cb542e,0 9px 18px #34223c20}
.crypto-grid{position:absolute;inset:-10px -10px;background-image:linear-gradient(#cab9a412 1px,transparent 1px),linear-gradient(90deg,#cab9a412 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(ellipse,#000,transparent 69%)}
.crypto-glow{position:absolute;left:96px;top:23px;width:290px;height:230px;background:radial-gradient(ellipse,#ff633322,transparent 69%)}
.crypto-panel{position:absolute;border-radius:12px;font-family:var(--mono)}
.crypto-panel.panel-back{width:225px;height:171px;left:63px;top:30px;background:linear-gradient(145deg,#f0eadd,#c5bcab);border:1px solid #f3ecdc;transform:rotate(-13deg);box-shadow:0 4px 0 #827968,0 18px 35px #0004;color:#625f56;overflow:hidden}
.crypto-panel.panel-back:before{content:'Aa';position:absolute;left:24px;top:32px;font-family:Georgia,serif;font-weight:700;font-size:79px;letter-spacing:-8px;line-height:1;color:#686156}
.crypto-panel.panel-back:after{content:'PLAIN TEXT / 01';position:absolute;top:16px;left:25px;font-size:8px;letter-spacing:.12em;color:#6e665b}
.crypto-panel.panel-main{width:259px;height:171px;left:144px;top:60px;padding:14px 16px;background:linear-gradient(135deg,#40372f,#252522 67%);border:1px solid #8c7765;box-shadow:0 4px 0 #15130f,0 18px 35px #0006,inset 0 1px #ffffff1c;transform:rotate(8deg);overflow:hidden}
.crypto-panel-top,.crypto-panel-bottom{display:flex;justify-content:space-between;gap:8px;position:relative;z-index:2;color:#c2b29a;letter-spacing:.02em;font-size:7px}.crypto-panel-top span:last-child{color:#f7a480}
.crypto-panel-bottom{position:absolute;left:16px;right:16px;bottom:13px;border-top:1px solid #7d6b5a66;padding-top:10px;font-size:7px}
.crypto-lines{position:absolute;left:16px;top:40px;right:14px;height:94px;display:grid;gap:4px;align-content:start;transform:rotate(-2deg)}
.crypto-lines i{display:block;height:9px;font-style:normal;font-size:8px;letter-spacing:.20em;white-space:nowrap;color:#bfa48759}.crypto-lines i:before{content:'7F A2 9D E4 1B 06 C8 3A 5F'}.crypto-lines i:nth-child(2n){color:#c3bfb630}.crypto-lines i:nth-child(2n):before{content:'0C 6E B8 1F 93 AA 20 7D 48'}.crypto-lines i:nth-child(3n):before{content:'E8 43 D1 5B 00 9C F2 36 A7'}
.crypto-cipher{position:absolute;left:77px;top:43px;width:93px;height:93px;transform:rotate(-8deg);display:grid;place-items:center}
.cipher-ring{position:absolute;inset:0;border:1px solid #ff9b6e;border-radius:22px;transform:rotate(45deg);background:linear-gradient(135deg,#ffb08a,#ff6333 72%);box-shadow:0 3px 0 #b54320,0 8px 18px #0005,inset 0 1px #ffd3b8}
.cipher-ring:after{content:'';position:absolute;inset:9px;border:1px solid #813c2436;border-radius:16px}
.cipher-core{position:relative;color:#3c2117;font:900 37px Arial,sans-serif;letter-spacing:-2px;z-index:1}
.cipher-orbit{position:absolute;inset:-10px;border:1px solid #ffa3723d;border-radius:29px;transform:rotate(45deg)}
.crypto-brace{position:absolute;font-family:Georgia,serif;font-size:65px;line-height:1;color:#af9c874a}.crypto-brace.brace-left{left:21px;top:79px;transform:rotate(-13deg)}.crypto-brace.brace-right{right:4px;top:111px;transform:rotate(8deg)}
.crypto-chip{position:absolute;font-family:var(--mono);font-size:9px;letter-spacing:.09em;border:1px solid #7c6752;background:#302d27;padding:9px 13px;color:#d4bea4;border-radius:4px;box-shadow:0 6px 14px #0003}.crypto-chip.chip-a{top:11px;right:53px;transform:rotate(8deg);border-color:#c38154;color:#ffac7b}.crypto-chip.chip-b{left:47px;bottom:5px;transform:rotate(-13deg)}
@container (min-width:540px){.password-scene,.crypto-scene{transform:translate(-50%,-50%) scale(1.08)}}
@container (max-width:460px){.password-scene,.crypto-scene{transform:translate(-50%,-50%) scale(.83)}}
@container (max-width:370px){.password-scene,.crypto-scene{transform:translate(-50%,-50%) scale(.70)}}
@container (max-width:295px){.password-scene,.crypto-scene{transform:translate(-50%,-50%) scale(.60)}.art-password>.art-caption,.art-crypto>.art-caption{font-size:8px}}
.art-password.art-large .password-scene,.art-crypto.art-large .crypto-scene{top:50%}
@media(prefers-reduced-motion:reduce){.password-scene *,.crypto-scene *{animation:none!important;transition:none!important}}

/* Unified collage treatment for virus and DNS, matching the password/crypto visual family. */
.art.art-virus,.art.art-dns{container-type:inline-size;isolation:isolate}
.art.art-virus{background:radial-gradient(ellipse at 16% 13%,#f1ece1 0,transparent 67%),linear-gradient(145deg,#e5dfd3,#d2cabe);color:#f3eee5}
.art.art-dns{background:radial-gradient(ellipse at 85% 16%,#f4eee6 0,transparent 66%),linear-gradient(145deg,#e3ddd2,#d0c6ba);color:#f3eee5}
.virus-scene,.dns-scene{position:absolute;left:50%;top:52%;width:460px;height:250px;transform:translate(-50%,-50%) scale(.96);pointer-events:none}
.virus-grid,.dns-grid{position:absolute;inset:0;background-image:linear-gradient(#756c5e18 1px,transparent 1px),linear-gradient(90deg,#756c5e18 1px,transparent 1px);background-size:29px 29px;mask-image:radial-gradient(ellipse,#000,transparent 67%)}
.virus-backplate,.dns-backplate{position:absolute;left:75px;top:36px;width:290px;height:164px;border:1px solid #c4b8aa;background:#eeeadf;box-shadow:0 11px 20px #51463720}
.virus-backplate{transform:rotate(-8deg)}.dns-backplate{transform:rotate(10deg);background:#d7cec4}
.virus-panel,.dns-panel{position:absolute;left:109px;top:38px;width:294px;height:173px;padding:15px 17px;border-radius:12px;border:1px solid #786c60;background:linear-gradient(145deg,#443c35,#282623 72%);box-shadow:0 4px 0 #211f1d,0 19px 33px #33281f45,inset 0 1px #fff3;transform:rotate(7deg);overflow:hidden;font-family:var(--mono)}
.dns-panel{left:86px;top:40px;transform:rotate(-8deg);background:linear-gradient(145deg,#3f3933,#242422 72%)}
.virus-panel-top,.dns-panel-top,.virus-panel-bottom,.dns-panel-bottom{display:flex;justify-content:space-between;gap:8px;position:relative;z-index:3;color:#cbbca8;font-size:7px;letter-spacing:.04em}.virus-panel-top span:last-child,.dns-panel-top span:last-child{color:#ff9a72}.virus-panel-bottom,.dns-panel-bottom{position:absolute;left:17px;right:17px;bottom:13px;border-top:1px solid #a8957d38;padding-top:10px;color:#bcae9b;font-size:7px}
.virus-radar{position:absolute;left:83px;top:37px;width:126px;height:104px;border:1px solid #d2bea633;border-radius:50%;overflow:hidden}.radar-ring{position:absolute;inset:13px;border:1px solid #e8c9a833;border-radius:50%}.radar-ring.ring-2{inset:31px}.radar-ring.ring-3{inset:47px}.radar-sweep{position:absolute;left:62px;top:-14px;width:1px;height:124px;background:linear-gradient(#ff845c,#ff845c00);transform:rotate(42deg);transform-origin:bottom}.radar-shield{position:absolute;left:49px;top:31px;width:35px;height:42px;background:linear-gradient(145deg,#ff9b73,#ff6333);clip-path:polygon(50% 0,94% 17%,87% 67%,50% 100%,13% 67%,6% 17%);box-shadow:0 3px 0 #9f4228}.radar-shield:after{content:'';position:absolute;left:15px;top:13px;width:6px;height:13px;border-right:2px solid #3f261b;border-bottom:2px solid #3f261b;transform:rotate(45deg)}.radar-node{position:absolute;width:6px;height:6px;border-radius:50%;background:#ff8d66;box-shadow:0 0 0 3px #ff8d6628}.node-a{left:19px;top:26px}.node-b{right:17px;top:48px}.node-c{left:28px;bottom:17px}.virus-chip,.dns-chip{position:absolute;font-family:var(--mono);font-size:9px;letter-spacing:.07em;border:1px solid #867768;background:#f5f0e6;color:#5a4f44;padding:10px 13px;border-radius:4px;box-shadow:0 7px 16px #51463720}.virus-chip.chip-a,.dns-chip.chip-a{left:36px;top:19px;transform:rotate(-8deg)}.virus-chip.chip-b,.dns-chip.chip-b{right:21px;bottom:7px;background:#ff794e;border-color:#ff9c78;color:#39231b;box-shadow:0 3px 0 #bd4b2d,0 8px 16px #51463725}.virus-chip.chip-b{transform:rotate(6deg)}
.dns-map{position:absolute;left:69px;top:31px;width:158px;height:112px;border:1px solid #d6c3ad50;border-radius:50%;overflow:hidden}.map-lat,.map-lon{position:absolute;border:1px solid #d6c3ad52;border-radius:50%}.map-lat{left:-8px;right:-8px;height:46px}.lat-a{top:12px}.lat-b{bottom:12px}.map-lon{top:-10px;bottom:-10px;width:63px}.lon-a{left:33px}.lon-b{right:33px}.map-route{position:absolute;height:1px;background:#ff815d;transform-origin:left center;box-shadow:0 0 7px #ff815d88}.route-a{width:96px;left:31px;top:67px;transform:rotate(-28deg)}.route-b{width:74px;left:93px;top:43px;transform:rotate(49deg)}.map-node{position:absolute;width:9px;height:9px;border-radius:50%;background:#ff8a64;border:2px solid #3c2d23;box-shadow:0 0 0 4px #ff8a6428}.map-a{left:26px;top:64px}.map-b{left:118px;top:23px}.map-c{right:19px;bottom:14px}
@container (min-width:540px){.virus-scene,.dns-scene{transform:translate(-50%,-50%) scale(1.08)}}
@container (max-width:460px){.virus-scene,.dns-scene{transform:translate(-50%,-50%) scale(.83)}}
@container (max-width:370px){.virus-scene,.dns-scene{transform:translate(-50%,-50%) scale(.70)}}
@container (max-width:295px){.virus-scene,.dns-scene{transform:translate(-50%,-50%) scale(.60)}}
.art-virus.art-large .virus-scene,.art-dns.art-large .dns-scene{top:50%}

/* Keep shared captions readable on the light virus/DNS canvases. */
.art.art-virus,.art.art-dns{color:var(--ink)}


/* Artwork 1.4: matched vector scale, warm material, and clear product symbols. */
.virus-radar,.dns-map{left:37px;top:7px;width:220px;height:150px;border:0;border-radius:0;overflow:visible;transform:none}
.art .virus-icon,.art .dns-icon{display:block;width:100%;height:100%;max-width:none;overflow:visible}
.virus-orbit,.dns-orbit{fill:none;stroke:#decfbe;stroke-opacity:.25;stroke-width:1}
.virus-orbit.orbit-two,.dns-orbit.orbit-cross{stroke-dasharray:3 6;stroke-opacity:.18}
.virus-orbit.orbit-three{stroke-opacity:.18}
.virus-sweep{fill:none;stroke:url(#virusSweep);stroke-width:1.3;stroke-linecap:round;opacity:.7}
.virus-node .node-halo{fill:#ff8c69;opacity:.13}
.virus-node .node-core{fill:#ff9b76;stroke:#33231c;stroke-width:2}
.virus-token .token-back{fill:#532b1f;stroke:#211a16;stroke-width:1.5}
.virus-token .token-face{stroke:#ffc9af;stroke-width:1.2}
.virus-token .token-edge{fill:none;stroke:#8e3921;stroke-opacity:.3;stroke-width:1}
.virus-token .token-check{fill:none;stroke:#40251b;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.dns-route{fill:none;stroke:#ff9975;stroke-width:1.4;stroke-linecap:round;stroke-dasharray:4 5;opacity:.72}
.dns-node .node-halo{fill:#ff936f;opacity:.12}
.dns-node .node-ring{fill:#292522;stroke:#ff9a75;stroke-width:1.5}
.dns-node .node-dot{fill:#ffd1be}
.dns-hub .hub-back{fill:#5a2b1d;stroke:#211a16;stroke-width:1.5}
.dns-hub .hub-face{stroke:#ffcdb6;stroke-width:1.2}
.dns-hub .globe-meridians{fill:none;stroke:#78371e;stroke-width:1.7;opacity:.65}
.dns-hub .hub-highlight{fill:none;stroke:#ffe2d4;stroke-width:2;stroke-linecap:round;opacity:.7}
.dns-hub .hub-badge{fill:#29221d;stroke:#e5b39a;stroke-opacity:.45;stroke-width:1}
.dns-hub .hub-label{fill:#ffd3bb;font:700 10px var(--mono);letter-spacing:.04em}
