:root{--bg:#0b0712;--surface:#130b20;--violet:#8b5cf6;--violet-2:#c084fc;--lilac:#e9d5ff;--pink:#f0abfc;--text:#f8f5ff;--muted:#aea6bd;--line:rgba(233,213,255,.16);--serif:"Playfair Display",serif;--sans:"Be Vietnam Pro",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;overflow-x:hidden}body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");z-index:20}.cursor-glow{position:fixed;width:28rem;height:28rem;left:0;top:0;border-radius:50%;background:rgba(139,92,246,.08);filter:blur(40px);transform:translate(-50%,-50%);pointer-events:none;z-index:0}a{color:inherit;text-decoration:none}button,input{font:inherit}.site-header{height:92px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(24px,5vw,80px);position:absolute;top:0;width:100%;z-index:10;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;font-size:.86rem;letter-spacing:.17em;font-weight:600}.brand em,.footer-brand em{font-family:var(--serif);font-weight:500;color:var(--violet-2)}.brand-mark{width:29px;height:29px;border:1px solid rgba(233,213,255,.7);display:grid;place-items:center;transform:rotate(45deg)}.brand-mark i{width:9px;height:9px;background:linear-gradient(135deg,var(--violet-2),var(--violet));border-radius:50%}.site-header nav{display:flex;gap:44px}.site-header nav a{font-size:.82rem;color:#d9d1e4;transition:.3s}.site-header nav a:hover{color:white}.icon-btn{justify-self:end;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.035);color:white;display:grid;place-items:center;position:relative;cursor:pointer}.icon-btn svg{width:19px;fill:none;stroke:currentColor;stroke-width:1.5}.cart-count{position:absolute;right:-3px;top:-4px;min-width:18px;height:18px;border-radius:20px;background:var(--lilac);color:#2b0c4d;font-size:.66rem;display:grid;place-items:center;font-weight:600}.hero{min-height:100vh;padding:140px clamp(24px,7vw,110px) 60px;display:grid;grid-template-columns:minmax(320px,.85fr) minmax(440px,1.15fr);gap:5vw;align-items:center;position:relative;background:radial-gradient(circle at 78% 42%,#31175b 0,rgba(39,17,73,.45) 25%,transparent 50%),linear-gradient(125deg,#0b0712 15%,#120921 65%,#08050e)}.hero-copy{z-index:2}.eyebrow{text-transform:uppercase;letter-spacing:.23em;font-size:.7rem;color:var(--violet-2);display:block;margin-bottom:22px}.hero h1{font-family:var(--serif);font-size:clamp(3.6rem,6.3vw,7rem);line-height:.94;letter-spacing:-.045em;font-weight:500;margin:0;max-width:780px}.hero h1 span{font-style:italic;color:var(--lilac);display:block}.hero-copy>p{color:var(--muted);line-height:1.8;max-width:540px;margin:30px 0 34px;font-weight:300}.hero-actions{display:flex;gap:32px;align-items:center}.primary-btn{border:0;background:linear-gradient(120deg,#6d3ee7,#a567ef);color:white;padding:16px 22px;min-height:54px;display:inline-flex;gap:30px;align-items:center;justify-content:space-between;cursor:pointer;transition:.3s;box-shadow:0 15px 35px rgba(98,47,189,.28)}.primary-btn:hover{transform:translateY(-3px);box-shadow:0 20px 45px rgba(139,92,246,.35)}.text-btn{border:0;background:none;color:#eee8f7;padding:12px 0;cursor:pointer;border-bottom:1px solid var(--line)}.text-btn span{margin-left:15px;color:var(--violet-2)}.hero-stats{display:flex;gap:40px;margin-top:60px;padding-top:24px;border-top:1px solid var(--line);max-width:580px}.hero-stats div{display:flex;flex-direction:column;gap:5px}.hero-stats strong{font-family:var(--serif);font-size:1.3rem;font-weight:500}.hero-stats span{font-size:.67rem;text-transform:uppercase;letter-spacing:.15em;color:#887f96}.hero-stage{height:min(73vh,780px);position:relative;perspective:1400px;display:grid;place-items:center;transform-style:preserve-3d}.art-frame{position:relative;z-index:2;transition:transform .2s ease-out;transform:rotateY(-8deg) rotateX(2deg);width:min(72%,480px)}.frame-rim{padding:14px;background:linear-gradient(135deg,#ddc6ff,#6b438c 16%,#170d22 52%,#c7a7ee);box-shadow:0 45px 75px rgba(0,0,0,.58),inset 0 0 0 2px #4a3261}.frame-rim img{display:block;width:100%;max-height:620px;object-fit:cover;aspect-ratio:4/5;filter:saturate(.9) contrast(1.04)}.frame-shadow{position:absolute;inset:9% -8% -10% 13%;background:#7d42cb;filter:blur(45px);opacity:.32;z-index:-1}.orb{position:absolute;border-radius:50%;filter:blur(2px)}.orb-a{width:70px;height:70px;right:7%;top:11%;background:linear-gradient(135deg,#f0abfc,#7c3aed);box-shadow:0 0 60px #a855f7;animation:float 6s ease-in-out infinite}.orb-b{width:22px;height:22px;left:9%;bottom:17%;background:#e9d5ff;box-shadow:0 0 35px #d8b4fe;animation:float 5s ease-in-out infinite reverse}.floating-label{position:absolute;z-index:4;background:rgba(18,9,32,.7);backdrop-filter:blur(20px);border:1px solid rgba(233,213,255,.2);padding:14px 18px;display:flex;gap:24px;align-items:center;box-shadow:0 18px 40px rgba(0,0,0,.25)}.floating-label span{font-size:.66rem;color:var(--violet-2);letter-spacing:.1em}.floating-label b{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.label-top{right:1%;top:26%}.label-bottom{left:4%;bottom:13%;flex-direction:column;align-items:flex-start;gap:5px;padding:18px 24px}.label-bottom b{font-family:var(--serif);font-size:1.2rem;text-transform:none;letter-spacing:0}.depth-line{position:absolute;width:80%;height:80%;border:1px solid rgba(216,180,254,.12);transform:rotate(11deg);z-index:0}.scroll-cue{position:absolute;right:30px;bottom:45px;writing-mode:vertical-rl;font-size:.58rem;letter-spacing:.22em;color:#6f667b;display:flex;align-items:center;gap:12px}.scroll-cue span{width:1px;height:55px;background:linear-gradient(var(--violet-2),transparent)}.intro-strip{min-height:330px;padding:80px clamp(24px,7vw,110px);display:grid;grid-template-columns:120px minmax(280px,780px) 1fr;gap:5vw;align-items:center;background:#f2edf7;color:#24182f}.intro-index{font-family:var(--serif);font-size:.85rem;color:#8054a4}.intro-strip p{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.8rem);line-height:1.35;margin:0}.line-art{height:130px;position:relative}.line-art:before,.line-art:after{content:"";position:absolute;left:10%;right:0;height:1px;background:#bdaacb;transform:rotate(-10deg);top:45%}.line-art:after{transform:rotate(10deg)}.line-art i{position:absolute;width:46px;height:46px;border:1px solid #9469b8;border-radius:50%;left:48%;top:31%}.collection{padding:120px clamp(24px,7vw,110px);background:linear-gradient(180deg,#10091b,#09060e)}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:60px}.section-head h2,.experience h2,.artist h2{font-family:var(--serif);font-size:clamp(2.5rem,5vw,5.1rem);font-weight:500;letter-spacing:-.04em;margin:0}.filters{display:flex;gap:10px;flex-wrap:wrap}.filters button{border:1px solid var(--line);background:transparent;color:#978ca6;padding:11px 18px;cursor:pointer;transition:.25s}.filters button:hover,.filters button.active{background:var(--lilac);color:#2d1742;border-color:var(--lilac)}.art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px 26px}.art-card{min-width:0;transition:opacity .35s,transform .35s}.art-card.hidden{display:none}.art-image{aspect-ratio:4/5;overflow:hidden;background:#1c1228;position:relative;cursor:pointer}.art-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s}.art-card:nth-child(3n+2) .art-image{aspect-ratio:1/1.13}.art-card:hover img{transform:scale(1.045);filter:saturate(1.1)}.art-actions{position:absolute;inset:auto 14px 14px 14px;display:flex;justify-content:space-between;align-items:end;opacity:0;transform:translateY(10px);transition:.35s}.art-card:hover .art-actions{opacity:1;transform:none}.art-actions button{width:46px;height:46px;border:0;background:rgba(245,237,255,.92);color:#29133e;border-radius:50%;font-size:1.3rem;cursor:pointer}.art-tag{font-size:.62rem;background:rgba(15,8,24,.72);backdrop-filter:blur(10px);padding:10px 12px;text-transform:uppercase;letter-spacing:.15em}.art-meta{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:17px}.art-meta h3{font-family:var(--serif);font-size:1.35rem;margin:0;font-weight:500}.art-meta strong{font-size:.82rem;color:var(--lilac);font-weight:500}.art-meta p{grid-column:1/-1;color:#8f859c;font-size:.74rem;margin:0}.outline-btn{margin:65px auto 0;background:transparent;border:1px solid var(--line);color:white;display:flex;gap:35px;padding:16px 22px;cursor:pointer}.experience{display:grid;grid-template-columns:1.05fr .95fr;min-height:780px;background:#211130;position:relative;overflow:hidden}.experience-art{position:relative;min-height:650px}.experience-art>img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) brightness(.7)}.experience-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 65%,#211130)}.glass-card{position:absolute;z-index:2;right:6%;bottom:12%;width:250px;padding:22px;background:rgba(32,15,48,.67);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(20px);display:flex;flex-direction:column;gap:8px}.glass-card span{font-size:.67rem;color:#bca9cd}.glass-card strong{font-family:var(--serif);font-weight:500}.glass-card i{width:36px;height:1px;background:var(--violet-2);margin-top:8px}.experience-copy{padding:clamp(60px,9vw,150px) clamp(30px,8vw,120px);display:flex;flex-direction:column;justify-content:center}.experience-copy h2{font-size:clamp(2.6rem,4vw,4.7rem)}.experience-copy>p{color:#b2a5bd;line-height:1.8;margin:28px 0}.experience-copy ul{list-style:none;padding:0;margin:10px 0 38px;border-top:1px solid var(--line)}.experience-copy li{padding:17px 0;border-bottom:1px solid var(--line);font-size:.85rem}.experience-copy li span{color:var(--violet-2);font-size:.67rem;margin-right:22px}.experience-copy .primary-btn{align-self:flex-start}.artist{padding:120px clamp(24px,7vw,110px);display:grid;grid-template-columns:1fr 1fr;gap:9vw;background:#eee9f2;color:#2a1b34}.artist-title h2{max-width:600px}.artist .eyebrow{color:#8050a8}.artist-content{align-self:end;border-top:1px solid #cbbfd2;padding-top:24px}.artist-year{font-family:var(--serif);font-size:1.8rem;color:#6a467f}.artist-year span{margin:0 18px;color:#a985bc}.artist-content p{line-height:1.9;color:#655b6c;margin:25px 0}.artist .text-btn{color:#3d2949;border-color:#cbbfd2}footer{background:#08050c;padding:60px clamp(24px,7vw,110px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-top:1px solid var(--line)}.footer-brand{font-size:1.1rem;letter-spacing:.17em}.footer-links{display:flex;gap:30px;font-size:.75rem;color:#978da1}footer p{text-align:right;color:#746b7d;font-size:.7rem}.cart-drawer{position:fixed;z-index:31;right:0;top:0;width:min(460px,100%);height:100dvh;background:#130b1f;transform:translateX(101%);transition:.45s cubic-bezier(.2,.8,.2,1);padding:30px;display:flex;flex-direction:column}.cart-drawer.open{transform:none}.drawer-head{display:flex;justify-content:space-between;align-items:start;padding-bottom:22px;border-bottom:1px solid var(--line)}.drawer-head h3,dialog h3{font-family:var(--serif);font-size:2rem;font-weight:500;margin:0}.close-cart,.close-modal{border:0;background:transparent;color:#bdb2c9;font-size:2rem;cursor:pointer}.cart-items{flex:1;overflow:auto;padding:15px 0}.empty-cart{color:#8f849b;text-align:center;margin-top:70px;font-size:.85rem}.cart-item{display:grid;grid-template-columns:78px 1fr auto;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);align-items:center}.cart-item img{width:78px;height:92px;object-fit:cover}.cart-item h4{font-family:var(--serif);font-size:1.05rem;margin:0 0 7px}.cart-item span{font-size:.7rem;color:#a79bb2}.cart-item button{border:0;background:none;color:#a89ab5;cursor:pointer}.drawer-foot{padding-top:20px;border-top:1px solid var(--line)}.drawer-foot .primary-btn{width:100%}.overlay{position:fixed;z-index:30;inset:0;background:rgba(5,2,9,.7);backdrop-filter:blur(5px);opacity:0;visibility:hidden;transition:.3s}.overlay.open{opacity:1;visibility:visible}dialog{width:min(540px,calc(100% - 30px));border:1px solid rgba(233,213,255,.2);background:#160d23;color:white;padding:45px;box-shadow:0 40px 100px #000;border-radius:0}dialog::backdrop{background:rgba(3,1,6,.78);backdrop-filter:blur(8px)}.close-modal{position:absolute;right:20px;top:14px}dialog>p{color:#9e93a9;line-height:1.7}dialog form{display:grid;gap:16px;margin-top:28px}dialog label{font-size:.72rem;color:#c9bfd3;display:grid;gap:8px}dialog input{border:1px solid var(--line);background:#0d0813;color:white;padding:14px;outline:none}dialog input:focus{border-color:var(--violet-2)}.form-success{text-align:center;padding:35px 0}.form-success span{display:grid;place-items:center;margin:auto;width:60px;height:60px;border-radius:50%;background:var(--violet);font-size:1.5rem}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}@keyframes float{50%{transform:translateY(-20px) translateX(8px)}}
@media(max-width:980px){.site-header{grid-template-columns:1fr auto}.site-header nav{display:none}.hero{grid-template-columns:1fr;padding-top:150px}.hero-stage{height:650px;margin-top:-50px}.hero-copy{max-width:720px}.art-grid{grid-template-columns:repeat(2,1fr)}.experience{grid-template-columns:1fr}.experience-art{height:650px}.experience-art:after{background:linear-gradient(0deg,#211130,transparent 40%)}.artist{grid-template-columns:1fr}.intro-strip{grid-template-columns:70px 1fr}.line-art{display:none}footer{grid-template-columns:1fr;gap:25px}.footer-links{justify-content:flex-start}footer p{text-align:left}}
@media(max-width:620px){.site-header{height:76px;padding:0 18px}.brand{font-size:.72rem}.brand-mark{width:24px;height:24px}.hero{padding:125px 20px 50px;display:block;min-height:auto}.hero h1{font-size:3.3rem}.hero-actions{align-items:flex-start;flex-direction:column;gap:5px}.hero-stats{gap:24px;overflow:auto}.hero-stage{height:500px;margin-top:25px}.art-frame{width:75%}.floating-label.label-top{display:none}.label-bottom{left:0}.scroll-cue{display:none}.intro-strip{padding:65px 20px;grid-template-columns:1fr;gap:25px}.collection{padding:80px 20px}.section-head{align-items:flex-start;flex-direction:column;gap:30px}.filters{overflow:auto;width:100%;flex-wrap:nowrap;padding-bottom:5px}.filters button{white-space:nowrap}.art-grid{grid-template-columns:1fr;gap:42px}.art-card:nth-child(n+7){display:none}.art-grid.expanded .art-card{display:block}.art-actions{opacity:1;transform:none}.experience-art{height:500px;min-height:0}.experience-copy{padding:70px 22px}.artist{padding:80px 20px}.artist-year{font-size:1.35rem}footer{padding:50px 20px}.footer-links{flex-wrap:wrap}.cursor-glow{display:none}dialog{padding:35px 24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Artist-first gallery */
.artist-hero{grid-template-columns:minmax(400px,.86fr) minmax(460px,1.14fr);gap:7vw;background:radial-gradient(circle at 18% 48%,#4a205f 0,rgba(61,23,84,.44) 28%,transparent 55%),linear-gradient(125deg,#0b0712 15%,#170b2b 65%,#08050e)}
.portrait-stage{height:min(72vh,760px);position:relative;perspective:1400px;display:grid;place-items:center;transform-style:preserve-3d}
.portrait-frame{position:relative;width:min(74%,480px);height:86%;padding:12px;background:linear-gradient(135deg,#f0dcff,#7b4a9e 18%,#24122f 56%,#cfa9e8);box-shadow:0 48px 90px rgba(0,0,0,.58),inset 0 0 0 1px rgba(255,255,255,.22);transform:rotateY(7deg) rotateX(1deg);transition:transform .2s ease-out;z-index:2}
.portrait-frame img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 20%;filter:saturate(.84) contrast(1.02)}
.portrait-halo{position:absolute;width:72%;height:74%;border-radius:50%;background:radial-gradient(circle,#b65ee7 0,rgba(131,63,181,.44) 36%,transparent 70%);filter:blur(35px);opacity:.72}
.portrait-caption{position:absolute;z-index:4;right:0;bottom:11%;min-width:245px;padding:18px 23px;background:rgba(20,9,33,.75);backdrop-filter:blur(22px);border:1px solid rgba(233,213,255,.24);box-shadow:0 22px 55px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:4px}
.portrait-caption span{font-size:.66rem;color:var(--violet-2);letter-spacing:.18em;text-transform:uppercase}.portrait-caption strong{font-family:var(--serif);font-size:1.28rem;font-weight:500}
.portrait-year{position:absolute;left:1%;top:10%;font-family:var(--serif);font-size:clamp(4rem,7vw,7.5rem);color:rgba(233,213,255,.08);z-index:0}
.biography h1{font-size:clamp(3.6rem,5.8vw,6.6rem)}.biography .lead{font-family:var(--serif);font-size:1.25rem;color:#e8deef;line-height:1.55}.bio-details{display:grid;gap:10px;margin:12px 0 28px;border-left:1px solid rgba(216,180,254,.28);padding-left:20px}.bio-details p{color:#a99daf;font-size:.82rem;line-height:1.65;margin:0}.artist-hero .hero-stats{margin-top:42px;max-width:680px}.artist-hero .hero-stats strong{font-size:1.1rem}
.collection{background:radial-gradient(circle at 12% 26%,rgba(97,42,135,.16),transparent 28%),linear-gradient(180deg,#10091b,#09060e)}
.art-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.art-card:nth-child(4n+2){transform:translateY(28px)}.art-card:nth-child(4n){transform:translateY(-10px)}
.intro-index{white-space:nowrap}.artist-content p+p{margin-top:-8px}.outline-btn{display:none}
@media(max-width:980px){.artist-hero{grid-template-columns:1fr;padding-top:130px}.portrait-stage{height:620px;order:1}.biography{order:2}.portrait-frame{height:560px;width:min(68%,450px)}.portrait-caption{right:10%}.art-card:nth-child(4n+2),.art-card:nth-child(4n){transform:none}}
@media(max-width:620px){.artist-hero{padding-top:110px}.portrait-stage{height:480px}.portrait-frame{height:430px;width:82%}.portrait-caption{right:0;bottom:3%;min-width:220px}.biography h1{font-size:3.6rem}.biography .lead{font-size:1.1rem}.bio-details p{font-size:.78rem}.artist-hero .hero-stats{gap:20px}.art-card:nth-child(n+7){display:block}.art-grid.expanded .art-card{display:block}.intro-index{white-space:normal}}

/* Original portrait: no crop, color treatment, frame, shadow or motion effect */
.portrait-stage{height:min(74vh,780px);perspective:none}
.portrait-original{width:min(82%,520px);height:100%;display:flex;align-items:center;justify-content:center;background:transparent;border:0;box-shadow:none;transform:none}
.portrait-original img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:none!important;transform:none!important;box-shadow:none;border:0}

/* Complete author dossier above the gallery */
.author-profile{padding:110px clamp(24px,7vw,110px);background:linear-gradient(145deg,#170a28 0%,#241037 52%,#100719 100%);position:relative;overflow:hidden}
.author-profile:before{content:"";position:absolute;width:540px;height:540px;border-radius:50%;right:-180px;top:-180px;background:radial-gradient(circle,rgba(192,132,252,.13),transparent 68%);pointer-events:none}
.profile-heading{display:grid;grid-template-columns:.7fr 1.3fr;gap:5vw;align-items:end;margin-bottom:58px}.profile-heading h2{font-family:var(--serif);font-size:clamp(2.7rem,5vw,5rem);line-height:1.03;font-weight:500;letter-spacing:-.04em;margin:0;max-width:850px}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.profile-block{position:relative;padding:38px 38px 42px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.018)}.profile-block h3{font-family:var(--serif);font-size:1.55rem;font-weight:500;margin:0 0 24px;color:#f4eaff}.profile-number{position:absolute;right:24px;top:24px;font-size:.68rem;letter-spacing:.16em;color:#9d73b8}.profile-block ul{margin:0;padding:0;list-style:none;display:grid;gap:12px}.profile-block li{position:relative;padding-left:18px;color:#b8adbf;font-size:.84rem;line-height:1.65}.profile-block li:before{content:"";position:absolute;left:0;top:.73em;width:5px;height:5px;border-radius:50%;background:#b879e0}.profile-wide{grid-column:1/-1}.timeline-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 45px}.timeline-list p{display:grid;grid-template-columns:90px 1fr;gap:16px;margin:0;padding:14px 0;border-bottom:1px solid rgba(233,213,255,.1);font-size:.84rem;line-height:1.6}.timeline-list b{color:#d9b7f0;font-family:var(--serif);font-weight:500}.timeline-list span{color:#b8adbf}.contact-block p{display:grid;grid-template-columns:145px 1fr;gap:18px;margin:0;padding:13px 0;border-bottom:1px solid rgba(233,213,255,.1);color:#d7cedd;font-size:.84rem;line-height:1.55}.contact-block p>span{color:#988aa1}.contact-block a{color:#e9d5ff}

/* Three-dimensional hanging treatment for every artwork */
.art-card{perspective:1200px}.art-wall{position:relative;min-height:490px;padding:54px 28px 66px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 48% 36%,rgba(118,75,148,.2),transparent 45%),linear-gradient(145deg,#191020,#0e0913);border:1px solid rgba(233,213,255,.08);overflow:hidden;transform-style:preserve-3d}.art-wall:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px);background-size:34px 34px;opacity:.28}.picture-hook{position:absolute;left:50%;top:18px;width:8px;height:8px;border-radius:50%;background:#8a6b9e;box-shadow:0 1px 3px #000;z-index:2}.picture-hook:before,.picture-hook:after{content:"";position:absolute;top:7px;width:1px;height:46px;background:rgba(190,167,205,.45);transform-origin:top}.picture-hook:before{left:3px;transform:rotate(31deg)}.picture-hook:after{right:3px;transform:rotate(-31deg)}
.picture-frame{position:relative;z-index:2;width:min(88%,360px);padding:12px;background:linear-gradient(135deg,#a780c0 0%,#2a1935 18%,#0c0810 50%,#75538c 82%,#c29cd9 100%);box-shadow:-18px 26px 34px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.22),inset 0 0 0 5px rgba(10,5,14,.65);transform:rotateY(-5deg) rotateX(1.5deg) translateZ(22px);transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s}.art-card:nth-child(3n+2) .picture-frame{transform:rotateY(4deg) rotateX(1deg) translateZ(22px)}.art-card:nth-child(3n) .picture-frame{transform:rotateY(-3deg) rotateX(-1deg) translateZ(22px)}.art-card:hover .picture-frame{transform:rotateY(0) rotateX(0) translateZ(34px) scale(1.015);box-shadow:0 32px 48px rgba(0,0,0,.58),inset 0 0 0 1px rgba(255,255,255,.25),inset 0 0 0 5px rgba(10,5,14,.65)}
.picture-mat{padding:10px;background:#e7dfeb;box-shadow:inset 0 0 12px rgba(43,26,52,.3)}.art-wall .art-image{width:100%;aspect-ratio:4/5;background:#18111c;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.art-wall .art-image img{object-fit:contain;filter:none}.frame-floor-shadow{position:absolute;z-index:1;left:23%;right:18%;bottom:35px;height:25px;border-radius:50%;background:rgba(0,0,0,.58);filter:blur(15px);transform:rotate(-3deg)}.art-card:hover .art-image img{transform:none;filter:none}.art-actions{z-index:3}.art-meta{padding:0 4px}

@media(max-width:980px){.profile-heading{grid-template-columns:1fr}.art-wall{min-height:450px}.portrait-original{width:min(68%,470px)}.profile-grid{grid-template-columns:1fr}.profile-wide{grid-column:auto}.timeline-list{grid-template-columns:1fr}}
@media(max-width:620px){.portrait-stage{height:auto;min-height:0;margin-bottom:36px}.portrait-original{width:100%;height:auto}.portrait-original img{height:auto}.author-profile{padding:75px 20px}.profile-heading{margin-bottom:38px}.profile-grid{display:block;border-left:1px solid var(--line)}.profile-block{padding:30px 24px}.timeline-list p{grid-template-columns:70px 1fr}.contact-block p{grid-template-columns:1fr;gap:5px}.art-wall{min-height:470px;padding:54px 18px 65px}.picture-frame{width:min(86%,340px)}.picture-mat{padding:8px}}

/* Responsive refinement: preserve the desktop gallery and adapt controls for touch screens. */
html,body{max-width:100%;overflow-x:clip}
.site-header nav#primary-navigation{min-width:0}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--violet-2);outline-offset:4px}

@media (min-width:621px) and (max-width:1100px){
  .site-header{grid-template-columns:minmax(0,1fr) auto auto;gap:16px;padding-inline:clamp(24px,4vw,48px)}
  .site-header nav#primary-navigation{position:absolute;display:none;top:calc(100% + 1px);left:clamp(24px,4vw,48px);right:clamp(24px,4vw,48px);padding:18px;background:rgba(19,11,32,.97);border:1px solid var(--line);backdrop-filter:blur(18px);gap:8px;z-index:12}
  .site-header nav#primary-navigation.is-open{display:flex;flex-direction:column}
  .site-header nav#primary-navigation a{padding:12px 14px}
  .menu-trigger{grid-column:2;grid-row:1}
  .cart-trigger{grid-column:3;grid-row:1}
  .menu-trigger{width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0;border:1px solid var(--line);background:rgba(255,255,255,.035);color:white;cursor:pointer}
  .menu-trigger span{width:17px;height:1px;background:currentColor;transition:transform .2s,opacity .2s}
  .menu-trigger[aria-expanded="true"] span:first-child{transform:translateY(6px) rotate(45deg)}
  .menu-trigger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-trigger[aria-expanded="true"] span:last-child{transform:translateY(-6px) rotate(-45deg)}
  .artist-hero{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:4vw;padding-inline:clamp(32px,5vw,64px)}
  .portrait-stage{height:min(68vh,620px)}
  .portrait-original{width:min(92%,500px)}
  .biography h1{font-size:clamp(3.2rem,6vw,5.3rem)}
  .biography .lead{font-size:1.1rem}
  .bio-details{padding-left:15px}
  .bio-details p{font-size:.78rem}
  .artist-hero .hero-stats{gap:22px;margin-top:28px}
  .profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-wide{grid-column:1/-1}
  .timeline-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
  .contact-block p{grid-template-columns:115px minmax(0,1fr);gap:12px;overflow-wrap:anywhere}
  .art-wall{min-height:390px;padding:50px 20px 58px}
  .picture-frame{width:min(88%,320px)}
  .picture-mat{padding:8px}
  .experience{grid-template-columns:1fr 1fr;min-height:620px}
  .experience-art{height:auto;min-height:560px}
  .experience-copy{padding:60px 5vw}
  footer{grid-template-columns:1fr auto;gap:20px 30px}
  .footer-links{grid-column:1/-1;grid-row:2}
  footer p{grid-column:2;grid-row:1;margin:0}
}

@media (max-width:620px){
  .site-header{grid-template-columns:minmax(0,1fr) auto auto;gap:10px;padding-inline:16px}
  .brand{min-width:0;gap:9px;font-size:.68rem;letter-spacing:.12em;white-space:nowrap}
  .site-header nav#primary-navigation{position:absolute;display:none;top:calc(100% + 1px);left:12px;right:12px;padding:12px;background:rgba(19,11,32,.98);border:1px solid var(--line);backdrop-filter:blur(18px);gap:4px;z-index:12}
  .site-header nav#primary-navigation.is-open{display:flex;flex-direction:column}
  .site-header nav#primary-navigation a{padding:13px 12px;font-size:.88rem}
  .menu-trigger{grid-column:2;grid-row:1;width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0;border:1px solid var(--line);background:rgba(255,255,255,.035);color:white;cursor:pointer}
  .menu-trigger span{width:16px;height:1px;background:currentColor;transition:transform .2s,opacity .2s}
  .menu-trigger[aria-expanded="true"] span:first-child{transform:translateY(6px) rotate(45deg)}
  .menu-trigger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-trigger[aria-expanded="true"] span:last-child{transform:translateY(-6px) rotate(-45deg)}
  .cart-trigger{grid-column:3;grid-row:1;width:40px;height:40px}
  .hero.artist-hero{padding:102px 20px 48px}
  .artist-hero .hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:28px;overflow:visible}
  .artist-hero .hero-stats div{min-width:0}
  .artist-hero .hero-stats strong{font-size:1rem;white-space:nowrap}
  .artist-hero .hero-stats span{font-size:.55rem;letter-spacing:.08em;line-height:1.4}
  .biography h1{font-size:clamp(3rem,13vw,3.6rem)}
  .hero .eyebrow{font-size:.61rem;letter-spacing:.16em;line-height:1.65}
  .hero-actions{gap:10px}
  .hero-actions .primary-btn{width:100%;max-width:350px}
  .bio-details{padding-left:14px}
  .intro-strip{grid-template-columns:minmax(0,1fr);gap:16px}
  .intro-strip p{font-size:clamp(1.55rem,7vw,2rem)}
  .collection{padding:72px 18px}
  .section-head{gap:22px;margin-bottom:34px}
  .section-head h2,.profile-heading h2{font-size:clamp(2.35rem,10vw,3.4rem)}
  .filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;overflow:visible;padding:0}
  .filters button{min-width:0;min-height:42px;padding:9px 7px;font-size:.68rem;white-space:normal;line-height:1.25}
  .art-grid{grid-template-columns:minmax(0,1fr);gap:34px}
  .art-wall{min-height:clamp(340px,112vw,430px);padding:46px 16px 52px}
  .picture-frame{width:min(84%,350px);padding:9px}
  .picture-mat{padding:7px}
  .picture-hook:before,.picture-hook:after{height:36px}
  .frame-floor-shadow{bottom:24px}
  .art-meta{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;margin-top:12px}
  .art-meta h3{font-size:1.2rem;overflow-wrap:anywhere}
  .art-meta strong{font-size:.75rem;text-align:right;max-width:130px}
  .art-meta p{font-size:.68rem;line-height:1.5}
  .art-actions{inset:auto 8px 8px}
  .art-actions button{width:40px;height:40px}
  .experience-art{height:390px;min-height:0}
  .glass-card{right:16px;bottom:20px;width:min(230px,72%);padding:16px}
  .experience-copy{padding:58px 20px}
  .experience-copy h2{font-size:clamp(2.35rem,10vw,3.1rem)}
  .experience-copy li{font-size:.78rem;line-height:1.5}
  .experience-copy li span{margin-right:12px}
  .author-profile{padding:72px 18px}
  .profile-heading{gap:6px;margin-bottom:30px}
  .profile-heading h2{font-size:clamp(2.25rem,9vw,3rem)}
  .profile-block{padding:28px 20px}
  .profile-block h3{padding-right:35px;font-size:1.4rem}
  .profile-block li,.timeline-list p,.contact-block p{font-size:.78rem}
  .timeline-list p{grid-template-columns:68px minmax(0,1fr);gap:10px}
  .contact-block p{overflow-wrap:anywhere}
  .cart-drawer{padding:22px 18px}
  .cart-item{grid-template-columns:64px minmax(0,1fr) auto;gap:10px}
  .cart-item img{width:64px;height:76px}
  footer{padding:42px 18px;gap:20px}
  .footer-brand{font-size:.95rem}
  .footer-links{gap:14px 20px;line-height:1.6}
  footer p{margin:0;font-size:.68rem;overflow-wrap:anywhere}
  dialog{max-height:calc(100dvh - 24px);overflow:auto;padding:36px 20px 22px}
}

@media(max-width:360px){
  .brand{font-size:.62rem;letter-spacing:.09em}
  .brand-mark{width:21px;height:21px}
  .site-header{gap:7px;padding-inline:12px}
  .menu-trigger,.cart-trigger{width:36px;height:36px}
  .filters button{font-size:.62rem;padding-inline:5px}
  .hero.artist-hero{padding-inline:16px}
  .artist-hero .hero-stats{gap:6px}
  .artist-hero .hero-stats span{letter-spacing:.04em}
  .collection{padding-inline:14px}
  .profile-block{padding-inline:17px}
}

@media(prefers-reduced-motion:reduce){.menu-trigger span{transition:none}}
.menu-trigger{display:none}
@media (min-width:621px) and (max-width:1100px){.menu-trigger{display:flex}}

/* Clean gallery card: retain the light frame and make the add control reliable on touch. */
.art-card{perspective:none}
.art-wall{transform-style:flat}
.art-wall:before{pointer-events:none}
.picture-frame,.art-card:nth-child(3n+2) .picture-frame,.art-card:nth-child(3n) .picture-frame{
  z-index:2;
  padding:9px;
  background:linear-gradient(145deg,#fff,#e8e2eb);
  box-shadow:0 12px 26px rgba(0,0,0,.3),inset 0 0 0 1px rgba(255,255,255,.8);
  transform:none;
  transform-style:flat;
  transition:box-shadow .25s ease;
}
.picture-mat{padding:7px;background:#faf9fb;box-shadow:none}
.art-card:hover .picture-frame{transform:none;box-shadow:0 17px 32px rgba(0,0,0,.38),inset 0 0 0 1px #fff}
.art-actions{z-index:3;pointer-events:none}
.art-actions button{pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.selection-toast{position:fixed;z-index:40;right:24px;bottom:24px;max-width:min(420px,calc(100vw - 32px));padding:14px 18px;background:rgba(19,11,32,.97);border:1px solid rgba(233,213,255,.24);color:#f8f5ff;font-size:.82rem;line-height:1.5;box-shadow:0 16px 40px rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .22s,transform .22s,visibility .22s;pointer-events:none}
.selection-toast.visible{opacity:1;visibility:visible;transform:none}
@media (hover:none) and (pointer:coarse){
  .art-card{transform:none!important}
  .art-actions{opacity:1;transform:none}
  .art-actions button{width:44px;height:44px}
}
@media(max-width:620px){.selection-toast{left:16px;right:16px;bottom:16px;max-width:none;text-align:center}}
