:root{
  --ink:#15120F;
  --ink-soft:#211C17;
  --canvas:#F6F1E6;
  --canvas-dim:#E9E1CF;
  --gold:#C9A24A;
  --cadmium:#B33B2E;
  --sage:#6E7A5E;
  --line: rgba(246,241,230,0.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; overflow-x:clip;}
body{
  background:var(--ink);
  color:var(--canvas);
  font-family:'Inter', sans-serif;
  overflow-x:clip;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
::selection{background:var(--gold); color:var(--ink);}

h1,h2,h3, .display{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:-0.01em;
}
.mono{font-family:'IBM Plex Mono', monospace; letter-spacing:0.02em;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
button, input, select, textarea{font:inherit; color:inherit;}

/* ---------- NAV ---------- */
nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 36px 14px;
  padding-top:calc(12px + env(safe-area-inset-top, 0px));
  min-height:calc(84px + env(safe-area-inset-top, 0px));
  mix-blend-mode:difference;
  border-bottom:1px solid transparent;
  overflow:visible;
  transition:top .3s ease;
}
nav.is-solid,
nav.open,
body:has(main.page-pad) nav,
body:has(.muzeum-page) nav{
  mix-blend-mode:normal;
  isolation:isolate;
  background:#15120F;
  backdrop-filter:none;
  border-bottom-color:var(--line);
}
.brand{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  width:220px;
  text-decoration:none;
  mix-blend-mode:normal;
  isolation:isolate;
}
.logo{
  font-family:'Fraunces', serif;
  font-size:22px;
  font-style:italic;
  font-weight:500;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.logo img{
  width:auto;
}
.logo-word{
  height:42px;
}
.logo-mark{
  display:none;
  height:40px;
  width:40px;
  object-fit:contain;
}
.logo .logo-on-light{ display:none; }
body.on-light .logo .logo-word.logo-on-dark{ display:none; }
body.on-light .logo .logo-word.logo-on-light{ display:block; }
@media print {
  .logo .logo-on-dark{ display:none; }
  .logo .logo-word.logo-on-light{ display:block; }
  .logo .logo-mark{ display:none; }
}
nav:not(.is-solid) .logo-on-dark{
  filter: drop-shadow(0 1px 10px rgba(0,0,0,.55));
}
.brand-slogan{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  font-family:'Inter', sans-serif;
  font-size:7.5px;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(246,241,230,.78);
  white-space:nowrap;
  line-height:1;
}
.brand-slogan em{
  font-style:normal;
  font-weight:500;
}
.brand-slogan i{
  flex:1 1 14px;
  height:1px;
  background:var(--gold);
  opacity:.88;
}
.brand-slogan--lg{
  font-size:10px;
  letter-spacing:.16em;
  gap:12px;
  max-width:340px;
}
.brand-slogan--cta{
  margin:0 auto 22px;
  justify-content:center;
}
.brand-lockup{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  margin:0 0 22px;
}
.brand-lockup .brand-slogan{ max-width:280px; }
.lang-switch{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-left:8px;
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:.08em;
}
.lang-switch a{opacity:.45; padding:2px 0;}
.lang-switch a.is-on{opacity:1; color:var(--gold);}
.i18n-block{
  margin:28px 0 8px;
  padding-top:22px;
  border-top:1px solid var(--line);
}
.nav-links{display:flex; gap:36px; font-size:14px; align-items:center;}
.nav-links a{opacity:0.85; transition:opacity .25s;}
.nav-links a:hover, .nav-links a.active{opacity:1;}
.nav-cta{
  font-size:13px;
  border:1px solid var(--canvas);
  padding:9px 20px;
  border-radius:100px;
  background:transparent;
  color:var(--canvas);
  cursor:pointer;
}
.nav-cta:hover{
  border-color:var(--gold);
  color:var(--ink);
  background:var(--gold);
}
.nav-user{display:flex; gap:12px; align-items:center;}
.nav-mail{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.nav-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:100px;
  background:var(--cadmium);
  color:var(--canvas);
  font-family:'IBM Plex Mono', monospace;
  font-size:10px;
  font-style:normal;
  font-weight:500;
  line-height:1;
  mix-blend-mode:normal;
}
.nav-badge.is-empty,
.nav-badge[hidden]{ display:none; }
.nav-toggle{
  display:none;
  background:none;
  border:0;
  color:inherit;
  cursor:pointer;
  width:40px;
  height:40px;
  position:relative;
}
.nav-badge-menu{
  position:absolute;
  top:0;
  right:0;
}
.nav-toggle span{
  display:block;
  height:1px;
  background:currentColor;
  margin:7px 0;
}
@media(max-width:1280px){
  nav{padding:14px 22px; padding-top:calc(14px + env(safe-area-inset-top, 0px));}
  .nav-links{gap:20px; font-size:13px;}
}
@media(max-width:880px){
  nav{
    padding:14px 22px;
    padding-top:calc(14px + env(safe-area-inset-top, 0px));
    mix-blend-mode:normal;
    isolation:isolate;
    background:#15120F;
    border-bottom-color:var(--line);
  }
  nav.is-away:not(.open){
    top:calc(-100% - 12px);
    pointer-events:none;
  }
  nav.open{
    transform:none;
    overflow:visible;
  }
  .nav-toggle{display:block;}
  .brand{ width:40px; }
  .brand .brand-slogan{ display:none; }
  .logo .logo-word{ display:none; }
  .logo .logo-mark.logo-on-dark{ display:block; }
  .logo .logo-mark.logo-on-light{ display:none; }
  body.on-light .logo .logo-mark.logo-on-dark{ display:none; }
  body.on-light .logo .logo-mark.logo-on-light{ display:block; }
  .nav-links{
    display:none;
    position:absolute;
    top:100%;
    left:0; right:0;
    z-index:99;
    min-height:100dvh;
    background:#15120F;
    mix-blend-mode:normal;
    flex-direction:column;
    align-items:stretch;
    padding:28px 24px calc(48px + env(safe-area-inset-bottom, 0px));
    gap:20px;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
  }
  nav.open .nav-links{display:flex;}
}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:calc(140px + env(safe-area-inset-top, 0px)) 48px 80px;
  background:
    radial-gradient(ellipse 900px 500px at 20% 10%, rgba(179,59,46,0.14), transparent 60%),
    radial-gradient(ellipse 700px 500px at 85% 30%, rgba(201,162,74,0.1), transparent 60%),
    var(--ink);
}
.eyebrow{
  font-size:13px;
  color:var(--gold);
  margin-bottom:22px;
  display:flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:'';
  width:26px; height:1px; background:var(--gold);
}
.hero h1{
  font-size:clamp(42px, 7vw, 96px);
  line-height:0.98;
  max-width:920px;
}
.hero h1 em{
  font-style:italic;
  color:var(--cadmium);
}
.hero-sub{
  max-width:480px;
  margin-top:28px;
  font-size:17px;
  line-height:1.6;
  color:rgba(246,241,230,0.72);
}
.hero-actions{
  margin-top:40px;
  display:flex;
  gap:18px;
  align-items:center;
  flex-wrap:wrap;
}

.btn-primary{
  background:var(--canvas);
  color:var(--ink);
  padding:15px 30px;
  border-radius:100px;
  font-size:14px;
  font-weight:500;
  transition:transform .3s, background .3s;
  display:inline-block;
  border:0;
  cursor:pointer;
}
.btn-primary:hover{ transform:translateY(-2px); background:var(--gold); }
.btn-ghost{
  font-size:14px;
  color:rgba(246,241,230,0.75);
  display:inline-flex; align-items:center; gap:8px;
  background:none;
  border:0;
  cursor:pointer;
}
.btn-ghost svg{transition:transform .3s;}
.btn-ghost:hover svg{transform:translateX(4px);}
.btn-line{
  display:inline-block;
  text-align:center;
  padding:13px 22px;
  border-radius:100px;
  border:1px solid rgba(246,241,230,0.3);
  font-size:13px;
  background:none;
  cursor:pointer;
}
.btn-gold{
  background:var(--gold);
  color:var(--ink);
  border-color:var(--gold);
  font-weight:500;
}
.btn-danger{ color:var(--cadmium); border-color:rgba(179,59,46,0.45); }

/* ---------- GALLERY WALL ---------- */
.wall-wrap{ position:relative; padding:40px 48px 160px; }
.page-pad{ padding:calc(132px + env(safe-area-inset-top, 0px)) clamp(16px, 4vw, 48px) 80px; flex:1; }
.wrap{ width:100%; max-width:1280px; margin:0 auto; }
.wall-label{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:60px;
  border-bottom:1px solid var(--line);
  padding-bottom:24px;
  flex-wrap:wrap;
  gap:16px;
}
.wall-label h2, .page-head h1{ font-size:clamp(28px,4vw,46px); }
.wall-label span, .page-head p{ font-size:13px; color:rgba(246,241,230,0.5); max-width:min(520px,100%); }
.page-head{ margin-bottom:40px; }
.page-head p{ margin-top:12px; line-height:1.6; }

.wall{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(min(100%, 220px), 1fr));
  gap:34px 28px;
}
@media(max-width:900px){ .hero, .wall-wrap, .flow, .pricing, .cta-final, footer{padding-left:22px; padding-right:22px;} }
@media(max-width:520px){ .wall{grid-template-columns:1fr;} }

.frame{
  position:relative;
  cursor:pointer;
  transition:transform .5s cubic-bezier(.2,.8,.2,1);
  color:inherit;
}
.frame:nth-child(1){ transform:rotate(-2.2deg) translateY(10px); }
.frame:nth-child(2){ transform:rotate(1.6deg) translateY(-18px); }
.frame:nth-child(3){ transform:rotate(-1deg) translateY(24px); }
.frame:nth-child(4){ transform:rotate(2.4deg) translateY(-6px); }
.frame:nth-child(5){ transform:rotate(1.2deg) translateY(4px); }
.frame:nth-child(6){ transform:rotate(-2deg) translateY(-12px); }
.frame:nth-child(7){ transform:rotate(2deg) translateY(14px); }
.frame:nth-child(8){ transform:rotate(-1.4deg) translateY(-4px); }
.wall.flat .frame{ transform:none; }
.frame:hover{
  transform:rotate(0deg) translateY(-14px) scale(1.03);
  z-index:10;
}
.canvas-art{
  width:100%;
  aspect-ratio:3/4;
  border-radius:2px;
  box-shadow:0 4px 10px rgba(0,0,0,0.25), 0 20px 40px rgba(0,0,0,0.35);
  transition:box-shadow .5s;
  position:relative;
  overflow:hidden;
  background:#2a241c;
}
.canvas-art img{ width:100%; height:100%; object-fit:cover; }
.frame:hover .canvas-art{
  box-shadow:0 12px 20px rgba(0,0,0,0.3), 0 40px 60px rgba(0,0,0,0.45);
}
.canvas-art::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.25));
  pointer-events:none;
}
.art-1{ background:radial-gradient(circle at 30% 30%, #D97757, #B33B2E 55%, #5a1f18);}
.art-2{ background:linear-gradient(160deg, #C9A24A, #7a5f22 60%, #2c2410);}
.art-3{ background:radial-gradient(circle at 70% 60%, #6E7A5E, #33391f 60%, #14150c);}
.art-4{ background:linear-gradient(135deg, #3c4a63, #1a2130 50%, #B33B2E 130%);}
.art-5{ background:radial-gradient(circle at 40% 70%, #8a6b8f, #3a2740 60%);}
.art-6{ background:linear-gradient(200deg, #C9A24A 0%, #B33B2E 45%, #15120F 90%);}
.art-7{ background:radial-gradient(circle at 60% 30%, #7d8f6e, #2a2f1e 65%);}
.art-8{ background:linear-gradient(150deg, #b98a5a, #5a3d22 55%, #1c1409);}

.frame-meta{
  margin-top:16px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.wall:not(.flat) .frame-meta{
  opacity:0;
  transform:translateY(6px);
  transition:opacity .4s, transform .4s;
}
.wall:not(.flat) .frame:hover .frame-meta{ opacity:1; transform:translateY(0); }
.frame-meta .t{font-size:14px;}
.frame-meta .a{font-size:12px; color:rgba(246,241,230,0.5); margin-top:2px;}
.frame-meta .p{font-size:13px;}
.sold-stamp{
  position:absolute;
  top:12px;
  left:12px;
  z-index:2;
  padding:6px 10px;
  font-family:'Inter', sans-serif;
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  background:rgba(20,16,12,.82);
  color:#e8c48a;
  border:1px solid rgba(201,162,74,.45);
}
.frame.is-sold .canvas-art img{ filter:saturate(.7) brightness(.86); }
.sold-banner{
  display:inline-block;
  margin:12px 0 0;
  padding:7px 12px;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#e8c48a;
  border:1px solid rgba(201,162,74,.4);
  background:rgba(201,162,74,.08);
}
.price-lg.is-sold{
  text-decoration:line-through;
  opacity:.5;
  margin-top:10px;
}

/* ---------- MARQUEE ---------- */
.marquee{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:22px 0;
  overflow:hidden;
  white-space:nowrap;
}
.marquee-track{
  display:inline-flex;
  gap:50px;
  animation:scroll 28s linear infinite;
}
.marquee span{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:22px;
  color:rgba(246,241,230,0.35);
}
.marquee span em{ color:var(--gold); font-style:italic; margin-right:50px;}
@keyframes scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* ---------- HOW IT WORKS ---------- */
.flow{
  padding:160px 48px;
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:80px;
}
@media(max-width:900px){ .flow{grid-template-columns:1fr; gap:50px; padding-top:80px; padding-bottom:80px;} }
.flow-head span{color:var(--gold); font-size:13px;}
.flow-head h2{font-size:clamp(28px,4vw,44px); margin-top:14px; max-width:380px;}
.step{
  display:grid;
  grid-template-columns:56px 1fr;
  gap:22px;
  padding:30px 0;
  border-top:1px solid var(--line);
}
.step:last-child{border-bottom:1px solid var(--line);}
.step-num{font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--cadmium); padding-top:4px;}
.step h3{font-size:20px; font-weight:500;}
.step p{font-size:14px; color:rgba(246,241,230,0.6); margin-top:8px; line-height:1.6; max-width:440px;}

/* ---------- PRICING ---------- */
.pricing{ padding:0 48px 160px; }
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
@media(max-width:900px){ .pricing-grid{grid-template-columns:1fr;} }
.plan{
  background:var(--ink);
  padding:44px 34px;
  display:flex;
  flex-direction:column;
}
.plan.featured{ background:var(--ink-soft); }
.plan-name{font-size:13px; color:var(--gold); margin-bottom:20px;}
.plan-price{font-family:'Fraunces', serif; font-size:44px;}
.plan-price sup{font-size:16px; font-family:'Inter'; color:rgba(246,241,230,0.5); top:-18px; position:relative;}
.plan-desc{font-size:13px; color:rgba(246,241,230,0.55); margin-top:10px; margin-bottom:30px; line-height:1.6;}
.plan-features{list-style:none; font-size:13px; display:flex; flex-direction:column; gap:12px; margin-bottom:36px; flex:1;}
.plan-features li{display:flex; gap:10px; color:rgba(246,241,230,0.8);}
.plan-features li::before{content:'—'; color:var(--gold);}
.plan-btn{
  text-align:center;
  padding:13px;
  border-radius:100px;
  border:1px solid rgba(246,241,230,0.3);
  font-size:13px;
}
.plan.featured .plan-btn{ background:var(--gold); color:var(--ink); border-color:var(--gold); font-weight:500;}

.cta-final{
  padding:160px 48px;
  text-align:center;
}
.cta-final h2{
  font-size:clamp(36px,7vw,86px);
  max-width:900px;
  margin:0 auto;
  line-height:1.02;
}
.cta-final .btn-primary{ margin-top:44px; padding:18px 40px; }

footer{
  border-top:1px solid var(--line);
  padding:50px 48px;
  display:flex;
  justify-content:space-between;
  font-size:13px;
  color:rgba(246,241,230,0.45);
  flex-wrap:wrap;
  gap:20px;
}
.footer-brand{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.footer-lockup{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  width:220px;
  text-decoration:none;
}
.footer-lockup img{
  height:44px;
  width:44px;
  object-fit:contain;
  opacity:.94;
}
.brand-mark{
  display:block;
  width:72px;
  height:72px;
  object-fit:contain;
}
.page-head .brand-mark{ width:64px; height:64px; }
.page-head .brand-lockup{ align-items:flex-start; }
.page-head .brand-lockup .brand-slogan{ margin:0; }
.footer-links{display:flex; gap:22px; flex-wrap:wrap;}
.footer-links a:hover{color:var(--canvas);}

/* ---------- FORMS / APP ---------- */
.flash{
  margin-bottom:24px;
  padding:14px 18px;
  border-radius:4px;
  font-size:14px;
  border:1px solid var(--line);
}
.flash.ok{ border-color:rgba(110,122,94,0.5); color:#c5d0b8; }
.flash.error{ border-color:rgba(179,59,46,0.55); color:#e8b4ae; }

.form-card{
  max-width:480px;
  margin-inline:auto;
}
.form-wide{ max-width:none; margin-inline:0; }
label{ display:block; font-size:13px; color:rgba(246,241,230,0.65); margin-bottom:8px; }
.field-label{ display:block; font-size:13px; color:rgba(246,241,230,0.65); margin-bottom:8px; }
.field{ margin-bottom:20px; }
.color-pick{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.color-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:6px 10px 6px 8px;
  border:1px solid var(--line);
  border-radius:100px;
  background:rgba(246,241,230,0.04);
  color:var(--canvas);
  font-size:12px;
  cursor:pointer;
}
.color-chip input{ display:none; }
.color-chip i{
  width:14px;
  height:14px;
  border-radius:50%;
  border:1px solid rgba(246,241,230,0.25);
  display:block;
}
.color-chip:has(input:checked),
.color-chip.is-on{
  border-color:var(--gold);
  background:rgba(201,162,74,0.12);
}
.color-filters{ margin-top:-20px; }
.color-filter{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.color-filter i{
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
  border:1px solid rgba(246,241,230,0.2);
}
input[type=text], input[type=email], input[type=password], input[type=number], input[type=search], input[type=date], select, textarea{
  width:100%;
  background:var(--ink-soft);
  border:1px solid var(--line);
  border-radius:4px;
  padding:13px 14px;
  outline:none;
  font-size:16px;
}
textarea{ min-height:120px; resize:vertical; }
input:focus, select:focus, textarea:focus{ border-color:var(--gold); }
.role-pick{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.role-pick label{
  margin:0;
  padding:18px 16px;
  border:1px solid var(--line);
  border-radius:6px;
  cursor:pointer;
  color:var(--canvas);
}
.role-pick input{ display:none; }
.role-pick input:checked + span,
.role-pick label:has(input:checked){
  border-color:var(--gold);
  background:rgba(201,162,74,0.08);
}
.role-pick strong{ display:block; font-family:'Fraunces', serif; font-weight:500; margin-bottom:6px; }
.check{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:13px;
  color:rgba(246,241,230,0.7);
  line-height:1.5;
}
.check input{ margin-top:3px; }
.check a{ text-decoration:underline; }

.filters{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:40px;
}
.chip{
  font-size:12px;
  padding:8px 14px;
  border-radius:100px;
  border:1px solid var(--line);
  color:rgba(246,241,230,0.7);
}
.chip.active, .chip:hover{ border-color:var(--gold); color:var(--gold); }
.search{
  display:flex;
  gap:8px;
  margin-left:auto;
}
.search{ flex:1 1 200px; min-width:min(100%, 200px); }
.search input{ width:100%; max-width:280px; padding:10px 12px; }

.artwork-detail{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(280px,0.85fr);
  gap:clamp(24px, 4vw, 60px);
  align-items:start;
}
@media(max-width:900px){ .artwork-detail{grid-template-columns:1fr;} }
.artwork-photo{
  overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,0.4);
  background:#1a1612;
}
.artwork-photo img{
  width:100%;
  max-height:min(82vh, 920px);
  object-fit:contain;
  display:block;
  margin:0 auto;
}
.artwork-side h1{ font-size:clamp(32px,4vw,52px); margin:8px 0 12px; }
.muted{ color:rgba(246,241,230,0.55); font-size:14px; line-height:1.65; }
.price-lg{ font-family:'Fraunces', serif; font-size:36px; margin:22px 0; }
.action-stack{ display:flex; flex-direction:column; gap:12px; margin-top:28px; }
.action-stack .btn-primary, .action-stack .btn-line{ width:100%; }

.dropzone{
  position:relative;
  border:1px dashed rgba(246,241,230,0.28);
  border-radius:8px;
  padding:36px 20px;
  text-align:center;
  color:rgba(246,241,230,0.55);
  background:rgba(246,241,230,0.03);
  cursor:pointer;
  transition:border-color .25s, background .25s;
}
.dropzone.drag{ border-color:var(--gold); background:rgba(201,162,74,0.08); }
.dropzone strong{ display:block; color:var(--canvas); margin-bottom:6px; font-weight:500; }
.dropzone input{ display:none; }
.dropzone [data-camera-input]{ position:absolute; width:0; height:0; opacity:0; }
.drop-preview{
  margin-top:16px;
  width:100%;
  max-height:min(56vh, 560px);
  object-fit:contain;
  margin-inline:auto;
  border-radius:2px;
}

.studio-head{ margin-bottom:28px; }
.studio-grid{
  display:grid;
  grid-template-columns:minmax(260px, 0.95fr) minmax(0, 1.15fr);
  gap:clamp(24px, 4vw, 56px);
  align-items:start;
  min-width:0;
}
.studio-photo,
.studio-fields{
  min-width:0;
  max-width:100%;
}
.studio-photo{
  position:sticky;
  top:88px;
}
.studio-fields .form-sub:first-child{ margin-top:0; }
.ai-panel{
  margin-top:14px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--ink-soft);
}
.ai-panel h3{
  font-size:18px;
  margin-bottom:8px;
}
.ai-panel .btn-gold{ width:100%; }
.ai-panel .btn-gold[disabled],
.ai-panel .btn-gold.is-busy{
  opacity:.55;
  cursor:not-allowed;
  pointer-events:none;
}
.ai-progress{ margin-top:14px; }
.ai-progress-track{
  height:4px;
  border-radius:100px;
  background:rgba(246,241,230,.1);
  overflow:hidden;
}
.ai-progress-track i{
  display:block;
  height:100%;
  width:38%;
  border-radius:100px;
  background:var(--gold);
  animation:ai-progress 1.1s ease-in-out infinite;
}
@keyframes ai-progress{
  0%{ transform:translateX(-120%); }
  100%{ transform:translateX(320%); }
}
#ai-status{
  margin-top:10px;
  overflow-wrap:anywhere;
  word-break:break-word;
  max-width:100%;
}
.ai-panel .hint,
.ai-panel p{
  overflow-wrap:anywhere;
  word-break:break-word;
}
.photo-tools{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.photo-tools button{
  flex:1 1 140px;
  min-height:44px;
}
@media(max-width:900px){
  .studio-grid{ grid-template-columns:1fr; }
  .studio-photo{ position:static; }
  .field-grid{ grid-template-columns:1fr; }
  .page-pad{ overflow-x:hidden; }
  .wrap{ max-width:100%; }
}
.crop-modal{
  position:fixed;
  inset:0;
  z-index:220;
  display:flex;
  flex-direction:column;
  background:rgba(10,8,6,.94);
  padding:env(safe-area-inset-top) 12px env(safe-area-inset-bottom);
}
.crop-modal[hidden]{ display:none; }
.crop-stage{
  position:relative;
  flex:1;
  min-height:0;
  margin:12px 0;
  touch-action:none;
}
.crop-stage canvas{
  display:block;
  width:100%;
  height:100%;
  max-height:calc(100dvh - 140px);
  object-fit:contain;
}
.crop-bar{
  display:flex;
  gap:10px;
  padding:8px 0 16px;
}
.crop-bar button{ flex:1; min-height:46px; }

.panel-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:48px;
}
@media(max-width:900px){ .panel-grid{grid-template-columns:1fr;} }
.list-row{
  display:grid;
  grid-template-columns:64px 1fr auto;
  gap:16px;
  align-items:center;
  padding:16px 0;
  border-top:1px solid var(--line);
}
.list-row img{ width:64px; height:80px; object-fit:cover; }
.row-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.badge{
  font-size:11px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--gold);
}
.quota{
  font-size:13px;
  color:rgba(246,241,230,0.6);
  margin-bottom:20px;
}

.inbox a.thread{
  display:flex;
  gap:16px;
  align-items:flex-start;
  padding:18px 0;
  border-top:1px solid var(--line);
}
.inbox a.thread:hover{ color:var(--gold); }
.inbox a.thread.unread .thread-copy strong{ color:var(--canvas); }
.thread-art{
  width:56px;
  height:72px;
  object-fit:cover;
  border-radius:2px;
  flex-shrink:0;
}
.thread-copy{ min-width:0; }
.thread-copy strong{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.thread-work{
  font-size:13px;
  color:var(--gold);
  margin:4px 0 2px;
}
.work-ref{
  display:flex;
  align-items:center;
  gap:14px;
  color:inherit;
}
.work-ref img{
  width:56px;
  height:72px;
  object-fit:cover;
  border-radius:2px;
}
.work-ref-hero{
  max-width:720px;
  margin-bottom:28px;
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
}
.work-ref-hero span.mono{
  display:block;
  font-size:11px;
  color:var(--gold);
  margin-bottom:6px;
}
.work-ref-hero strong{
  font-family:'Fraunces', serif;
  font-size:22px;
  font-weight:500;
}
.work-ref-inline{
  display:flex;
  gap:10px;
  margin-bottom:10px;
  padding-bottom:10px;
  border-bottom:1px solid var(--line);
  font-size:12px;
  color:var(--gold);
}
.work-ref-inline img{
  width:36px;
  height:46px;
}
.thread-log{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin:28px 0 32px;
  max-width:720px;
}
.bubble{
  max-width:80%;
  padding:14px 16px;
  border-radius:8px;
  background:var(--ink-soft);
  font-size:14px;
  line-height:1.55;
}
.bubble.mine{ align-self:flex-end; background:rgba(201,162,74,0.12); }
.bubble time{ display:block; font-size:11px; color:rgba(246,241,230,0.4); margin-top:8px; }

.legal{
  max-width:760px;
  font-size:15px;
  line-height:1.7;
  color:rgba(246,241,230,0.78);
}
.legal h1{ margin-bottom:10px; }
.legal h2{ font-size:24px; margin:36px 0 12px; }
.legal p, .legal li{ margin-bottom:12px; }
.legal ul, .legal ol{ padding-left:20px; }
.legal .placeholder{
  color:var(--gold);
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
}
.disclaimer{
  font-size:13px;
  color:rgba(246,241,230,0.5);
  border-top:1px solid var(--line);
  padding-top:24px;
  margin-top:32px;
  line-height:1.6;
}

.empty{
  padding:40px 0;
  color:rgba(246,241,230,0.5);
  font-size:15px;
}
.blik-note{
  margin-top:28px;
  font-size:13px;
  color:rgba(246,241,230,0.5);
  line-height:1.6;
}
#paypal-button-container{ margin-top:20px; min-height:48px; }

.field-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:16px;
}
.form-sub{
  font-size:20px;
  margin:36px 0 16px;
}
.hint{
  display:block;
  margin-top:6px;
  font-size:12px;
  color:rgba(246,241,230,0.45);
  line-height:1.5;
}
.ai-bar{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  margin-top:14px;
}
.tag-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:18px 0;
}
.color-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-bottom:16px;
  font-size:13px;
}
.color-dot{
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--gold);
  border:1px solid var(--line);
}

.announce-banner{
  display:block;
  margin:calc(84px + env(safe-area-inset-top, 0px)) 16px 0;
  padding:12px 18px;
  border:1px solid rgba(201,162,74,0.45);
  background:rgba(201,162,74,0.1);
  color:var(--gold);
  font-size:14px;
  text-align:center;
  border-radius:4px;
}
.announce-banner:hover{ color:var(--canvas); }
.announce-item{
  padding:22px 0;
  border-top:1px solid var(--line);
}
.announce-item h3, .announce-item h4{
  font-size:22px;
  margin:8px 0 10px;
}
.announce-item p{ color:rgba(246,241,230,0.72); line-height:1.65; white-space:pre-wrap; }
.announce-item.is-new{ border-color:rgba(201,162,74,0.35); }

.admin-page{ padding-top:128px; }
.admin-subnav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 36px;
}
.admin-subnav a{
  padding:8px 14px;
  border:1px solid var(--line);
  border-radius:100px;
  font-size:13px;
}
.admin-subnav a.active,
.admin-subnav a:hover{
  border-color:var(--gold);
  color:var(--gold);
}
.admin-stats{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:14px;
  margin-bottom:36px;
}
.admin-stat{
  border:1px solid var(--line);
  padding:18px 16px;
  border-radius:6px;
}
.admin-stat-n{ font-size:22px; color:var(--gold); }
.admin-stat-l{ font-size:12px; color:rgba(246,241,230,0.5); margin-top:6px; }
.admin-shortcuts{ display:flex; flex-wrap:wrap; gap:10px; }
.admin-search{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:24px;
  align-items:center;
}
.admin-search input{ max-width:320px; }
.admin-table-wrap{ overflow-x:auto; }
.admin-table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
.admin-table th{
  text-align:left;
  font-size:11px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(246,241,230,0.45);
  padding:10px 12px 10px 0;
  border-bottom:1px solid var(--line);
}
.admin-table td{
  padding:14px 12px 14px 0;
  border-bottom:1px solid var(--line);
  vertical-align:middle;
}
.admin-table tr.is-off{ opacity:0.55; }
.admin-table form, .admin-inline{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.admin-inline select, .admin-inline input[type=date]{ width:auto; min-width:0; }
.admin-thumb{ width:44px; height:56px; object-fit:cover; border-radius:2px; display:block; }
.admin-panel{ margin-bottom:48px; }
.admin-panel h3{ font-size:20px; margin-bottom:18px; }
.admin-form-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:16px 20px;
  align-items:end;
}
.admin-span{ grid-column:1 / -1; }
.admin-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
}
.admin-plan-row{ grid-template-columns:1fr auto; }
.check-row{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:8px 0 22px;
}
.check-row label{ display:flex; gap:10px; align-items:center; color:var(--canvas); margin:0; }
.check-row input[type=checkbox]{ width:auto; }
.badge.ok{ color:#c5d0b8; }
.badge.warn{ color:#e8c48a; }
.badge.alert{ color:#e8b4ae; }
@media(max-width:900px){
  .admin-split{ grid-template-columns:1fr; }
  .announce-banner{ margin-top:76px; }
}

/* ---------- HOME V2 / MUSEUM ---------- */
.grain{
  pointer-events:none;
  position:fixed;
  inset:0;
  z-index:40;
  opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  animation:grain 1.4s steps(6) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)} 20%{transform:translate(-4%,2%)} 40%{transform:translate(-2%,4%)}
  60%{transform:translate(2%,-4%)} 80%{transform:translate(4%,0)} 100%{transform:translate(0,0)}
}
.reveal{ opacity:0; animation:fade-up .9s cubic-bezier(.22,.61,.36,1) forwards; animation-delay:var(--reveal-delay,0s); animation-play-state:paused; }
.reveal.is-visible{ animation-play-state:running; }
@keyframes fade-up{ from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@media(prefers-reduced-motion:reduce){
  .reveal{ animation:none; opacity:1; }
  .grain,.marquee-track{ animation:none; }
}

.eyebrow-line{ display:inline-flex; align-items:center; gap:12px; margin-bottom:22px; }
.eyebrow-rule{ width:32px; height:1px; background:rgba(201,162,74,.6); }
.eyebrow-kicker{ font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:rgba(201,162,74,.85); }
.btn-gold-fill{
  display:inline-flex; align-items:center; gap:10px;
  background:var(--gold); color:var(--ink);
  padding:14px 28px; border-radius:100px; font-size:14px; font-weight:600;
}
.btn-gold-fill:hover{ background:var(--canvas); }

.hero-split{ padding:calc(140px + env(safe-area-inset-top, 0px)) 24px 80px; }
.hero-split-grid{
  display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;
}
.hero-copy h1{
  font-size:clamp(2.6rem,6vw,4.6rem); line-height:1.02; max-width:16ch;
}
.hero-copy h1 em{ font-style:italic; color:var(--cadmium); font-weight:400; }
.hero-stats{
  display:flex; align-items:center; gap:18px; margin-top:40px;
  font-size:12px; color:rgba(246,241,230,.5);
}
.hero-stats i{ width:1px; height:14px; background:rgba(246,241,230,.15); }
.hero-art-col{ position:relative; }
.hero-glow{
  position:absolute; inset:-18%;
  background:radial-gradient(closest-side,rgba(201,162,74,.42),rgba(179,59,46,.14) 45%,transparent 72%);
  filter:blur(28px); z-index:0;
}
.hero-frame-wrap{ position:relative; z-index:1; max-width:420px; margin-inline:auto; padding:12px; }
.hero-gold-frame{
  background:rgba(201,162,74,.9); padding:10px; border-radius:14px;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.8);
  transform: rotate(-5deg);
  transform-origin: 50% 70%;
  transition: transform .55s cubic-bezier(.2,.8,.2,1), box-shadow .55s;
}
.hero-frame-wrap:hover .hero-gold-frame{
  transform: rotate(-1.5deg) translateY(-10px);
  box-shadow:0 52px 96px -28px rgba(0,0,0,.9);
}
.hero-gold-frame img{
  width:100%; aspect-ratio:16/19; object-fit:cover; border-radius:10px;
  transition:opacity .4s ease;
}
.hero-gold-frame img.is-swap{ opacity:0; }
.hero-plaque{
  position:absolute; top:50%; left:-12px; transform:translateY(-50%) rotate(-2deg);
  background:rgba(21,18,15,.92); padding:12px 16px; border-radius:6px;
  border:1px solid rgba(201,162,74,.25);
}
.hero-plaque p{ font-family:'Fraunces',serif; font-size:14px; }
.hero-plaque span{ display:block; margin-top:4px; font-size:10px; color:rgba(201,162,74,.7); }

@media(max-width:900px){
  .hero-split-grid{ grid-template-columns:1fr; }
  .hero-gold-frame{ transform: rotate(-3deg); }
  .hero-plaque{ left:12px; top:auto; bottom:24px; transform: rotate(-2deg); }
}
@media(prefers-reduced-motion:reduce){
  .hero-gold-frame,
  .hero-frame-wrap:hover .hero-gold-frame{ transition:none; }
}

.museum-teaser{
  display:flex; justify-content:space-between; align-items:center; gap:28px;
  margin:48px auto 40px; padding:32px; border-radius:16px;
  border:1px solid var(--line); background:rgba(33,28,23,.6);
}
.museum-teaser h3{ font-size:clamp(22px,3vw,32px); margin:8px 0 10px; }
.museum-teaser p{ max-width:52ch; font-size:14px; color:rgba(246,241,230,.7); line-height:1.65; }
@media(max-width:800px){ .museum-teaser{ flex-direction:column; align-items:flex-start; } }

.expo{ padding:80px 16px 100px; }
.expo-head{ display:flex; justify-content:space-between; gap:24px; margin-bottom:48px; flex-wrap:wrap; }
.expo-head h2{ font-size:clamp(28px,4vw,48px); margin-top:10px; }
.expo-head p{ max-width:36ch; font-size:14px; color:rgba(246,241,230,.55); line-height:1.65; }
.expo-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.expo-card{ display:block; }
.expo-card.is-offset{ margin-top:36px; }
.expo-frame{
  background:rgba(201,162,74,.8); padding:6px; border-radius:12px;
  box-shadow:0 20px 40px -20px rgba(0,0,0,.9); transition:transform .45s, box-shadow .45s;
}
.expo-card:hover .expo-frame{ transform:translateY(-10px) rotate(0); box-shadow:0 40px 70px -25px rgba(0,0,0,.95); }
.expo-frame img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:8px; }
.expo-meta{ margin-top:14px; padding-left:4px; }
.expo-meta p{ font-family:'Fraunces',serif; }
.expo-meta span{ display:block; margin-top:4px; font-size:12px; color:rgba(246,241,230,.5); }
.expo-more{ margin-top:40px; }
@media(max-width:1000px){ .expo-grid{ grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .expo-grid{ grid-template-columns:1fr;} .expo-card.is-offset{ margin-top:0;} }

.flow-v2{ padding-top:80px; }
.pricing-v2{ padding-bottom:80px; }
.pricing-intro{ text-align:center; max-width:40ch; margin:0 auto 48px; }
.pricing-intro h2{ font-size:clamp(28px,4vw,48px); margin:10px 0 12px; }
.pricing-intro p{ font-size:14px; color:rgba(246,241,230,.55); }
.pricing-cards{ background:none; border:0; gap:20px; }
.plan-card{
  position:relative; display:flex; flex-direction:column;
  padding:32px; border-radius:16px; background:rgba(246,241,230,.035);
  border:1px solid rgba(246,241,230,.1);
}
.plan-card.featured{ background:rgba(201,162,74,.05); border-color:rgba(201,162,74,.4); }
.plan-ribbon{
  position:absolute; top:-12px; left:28px; background:var(--gold); color:var(--ink);
  font-size:10px; letter-spacing:.16em; text-transform:uppercase; padding:4px 10px; border-radius:100px;
}
.plan-card h3{ font-size:22px; }
.plan-card-desc{ font-size:14px; color:rgba(246,241,230,.5); margin:6px 0 18px; }
.plan-card-price{ font-family:'Fraunces',serif; font-size:48px; }
.plan-card-price span{ font-size:22px; color:rgba(246,241,230,.6); }
.plan-card-price sup{ font-size:14px; color:rgba(246,241,230,.45); }
.plan-card ul{ list-style:none; margin:24px 0 28px; display:flex; flex-direction:column; gap:10px; flex:1; font-size:14px; color:rgba(246,241,230,.7); }
.plan-card li{ display:flex; gap:10px; }
.plan-card li span{ color:var(--gold); }
.plan-card-btn{
  display:block; text-align:center; padding:12px; border-radius:100px;
  border:1px solid rgba(246,241,230,.2); font-size:14px;
}
.plan-card-btn.is-gold{ background:var(--gold); color:var(--ink); border-color:var(--gold); font-weight:600; }

.cta-banner{ padding:0 16px 100px; }
.cta-banner-inner{
  position:relative; overflow:hidden; text-align:center;
  padding:80px 24px; border-radius:20px;
  border:1px solid rgba(201,162,74,.2); background:rgba(246,241,230,.03);
}
.cta-banner-inner::before{
  content:""; position:absolute; inset:-20% 0; background:radial-gradient(closest-side,rgba(201,162,74,.32),transparent 70%);
}
.cta-banner-inner h2,.cta-banner-inner p,.cta-banner-inner a,.cta-banner-inner .brand-slogan{ position:relative; }
.cta-banner-inner h2{ font-size:clamp(28px,5vw,56px); max-width:16ch; margin:0 auto; }
.cta-banner-inner p{ margin:18px auto 28px; max-width:40ch; color:rgba(246,241,230,.6); }

.muzeum-page{ padding:calc(132px + env(safe-area-inset-top, 0px)) 16px 80px; }
.muzeum-head{ display:flex; justify-content:space-between; gap:24px; align-items:flex-end; flex-wrap:wrap; margin-bottom:28px; }
.muzeum-head h1{ font-size:clamp(28px,4vw,48px); max-width:18ch; margin:10px 0 12px; }
.muzeum-head p{ max-width:48ch; font-size:14px; color:rgba(246,241,230,.7); line-height:1.65; }
.museum-stage{
  position:relative; height:78vh; min-height:520px; overflow:hidden;
  border-radius:16px; border:1px solid var(--line); background:var(--ink);
}
.museum-stage [hidden]{ display:none !important; }
.museum-canvas{ position:absolute; inset:0; }
.museum-canvas,.museum-canvas canvas{ width:100%; height:100%; display:block; }
.museum-cross{
  position:absolute; left:50%; top:50%; width:8px; height:8px; margin:-4px 0 0 -4px;
  border-radius:50%; background:rgba(246,241,230,.7); pointer-events:none; z-index:5;
}
.museum-styles{ position:absolute; left:16px; top:16px; z-index:30; display:flex; flex-wrap:wrap; gap:8px; pointer-events:auto; }
.museum-style-btn{
  border:1px solid rgba(246,241,230,.15); background:rgba(0,0,0,.55); color:inherit;
  border-radius:100px; padding:8px 14px; font-size:12px; cursor:pointer; backdrop-filter:blur(8px);
}
.museum-style-btn span{ margin-left:6px; font-size:10px; text-transform:uppercase; opacity:.7; }
.museum-style-btn.is-on{ background:var(--gold); color:var(--ink); border-color:var(--gold); }
.museum-count{
  position:absolute; right:16px; top:16px; z-index:30; width:240px; pointer-events:auto;
  padding:12px 16px; border-radius:16px; border:1px solid rgba(246,241,230,.15);
  background:rgba(0,0,0,.55); backdrop-filter:blur(8px); font-size:12px;
}
.museum-count-row{ display:flex; justify-content:space-between; }
.museum-count input{ width:100%; margin-top:8px; accent-color:var(--gold); }
.museum-count p{ margin-top:8px; font-size:11px; opacity:.75; }
.museum-focus{
  position:absolute; left:50%; bottom:16px; transform:translateX(-50%);
  width:min(420px,90%); z-index:6; padding:16px 20px; border-radius:16px;
  border:1px solid rgba(246,241,230,.15); background:rgba(0,0,0,.55); backdrop-filter:blur(8px);
  pointer-events:none;
}
.museum-focus h3{ font-family:'Fraunces',serif; font-size:20px; }
.museum-focus p{ margin-top:4px; font-size:13px; opacity:.8; }
.museum-click-hint{ margin-top:8px !important; font-size:10px !important; letter-spacing:.16em; text-transform:uppercase; color:var(--gold) !important; opacity:1 !important; }
.museum-start{
  position:absolute; inset:auto 0 20px 0; z-index:7; display:grid; place-items:center;
  pointer-events:none;
}
.museum-enter{
  pointer-events:auto; display:flex; flex-direction:column; align-items:center; gap:10px;
  max-width:420px; padding:32px 40px; border-radius:24px;
  border:1px solid rgba(246,241,230,.15); background:rgba(21,18,15,.8); color:inherit; cursor:pointer;
}
.museum-enter span{ font-size:11px; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); }
.museum-enter strong{ font-family:'Fraunces',serif; font-size:32px; font-weight:500; }
.museum-enter em{ font-style:normal; font-size:13px; text-align:center; opacity:.8; }
.museum-hint-l,.museum-hint-r{
  position:absolute; bottom:16px; z-index:5; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(246,241,230,.6); pointer-events:none;
}
.museum-hint-l{ left:16px; }
.museum-hint-r{
  right:16px; border-radius:100px; border:1px solid rgba(246,241,230,.2);
  background:rgba(21,18,15,.7); padding:8px 16px;
}
.museum-hint-r span{ color:var(--gold); }
.museum-preview{
  position:absolute; inset:0; z-index:20; display:grid; place-items:center;
  background:rgba(21,18,15,.85); padding:24px; backdrop-filter:blur(10px);
}
.museum-preview-card{
  display:grid; grid-template-columns:1.4fr 1fr; gap:24px; max-width:880px; width:100%;
  padding:24px; border-radius:24px; border:1px solid rgba(201,162,74,.25); background:rgba(33,28,23,.85);
}
.museum-preview-card img{ width:100%; max-height:58vh; object-fit:contain; border:4px solid rgba(201,162,74,.4); border-radius:12px; }
.museum-preview-card h3{ font-size:28px; margin:10px 0 8px; }
.museum-preview-card dl{ margin:18px 0; }
.museum-preview-card dl div{ display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid var(--line); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.museum-preview-card .btn-gold,.museum-preview-card .btn-line{ margin-top:10px; display:inline-block; }
.museum-stage.is-light .museum-style-btn:not(.is-on),
.museum-stage.is-light .museum-count,
.museum-stage.is-light .museum-focus{
  background:rgba(255,255,255,.75); color:var(--ink); border-color:rgba(21,18,15,.15);
}
.museum-stick{
  position:absolute; left:16px; bottom:20px; z-index:8;
  width:112px; height:112px; border-radius:50%;
  border:1px solid rgba(246,241,230,.22); background:rgba(21,18,15,.42);
  touch-action:none; pointer-events:auto;
}
.museum-stick i{
  position:absolute; left:50%; top:50%; width:48px; height:48px;
  margin:-24px 0 0 -24px; border-radius:50%; background:var(--gold);
  pointer-events:none; box-shadow:0 6px 16px rgba(0,0,0,.35);
}
.museum-exit{
  position:absolute; right:16px; bottom:20px; z-index:8;
  min-height:44px; padding:10px 18px; border-radius:100px;
  border:1px solid rgba(246,241,230,.22); background:rgba(21,18,15,.72);
  color:inherit; pointer-events:auto; touch-action:manipulation;
}
.museum-stage.is-touch-walk{ touch-action:none; }
.museum-stage.is-touch-walk .museum-focus{ pointer-events:auto; }
.museum-enter{ touch-action:manipulation; }
body.museum-walking{ overflow:hidden; overscroll-behavior:none; }
@media(max-width:800px){
  .museum-preview-card{ grid-template-columns:1fr; }
  .museum-stage{ height:min(78dvh, 640px); min-height:380px; }
  .museum-enter{ max-width:min(420px, calc(100% - 24px)); padding:22px 20px; }
  .museum-enter strong{ font-size:24px; }
  .museum-styles{
    left:10px; right:10px; top:10px;
    max-width:none;
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .museum-styles::-webkit-scrollbar{ display:none; }
  .museum-style-btn{
    flex:0 0 auto;
    white-space:nowrap;
    padding:8px 12px;
  }
  .museum-count{
    left:10px; right:10px; top:58px;
    width:auto;
    max-width:none;
  }
  .museum-count p{ overflow-wrap:anywhere; }
}

.wall-account-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin:8px 0 48px;
  padding:22px 24px;
  border:1px solid rgba(201,162,74,0.28);
  background:rgba(201,162,74,0.07);
}
.wall-account-card h3{ margin-bottom:6px; }
.wall-account-card .btn-primary{ flex:0 0 auto; }
.wall-pending{
  display:flex;
  gap:16px;
  align-items:center;
  margin-bottom:28px;
  padding:14px 16px;
  border:1px solid var(--line);
}
.wall-pending img{ width:56px; height:70px; object-fit:cover; }
.wall-upload{ max-width:640px; margin-bottom:48px; }
.wall-upload .btn-primary{ margin-top:18px; }
.wall-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:22px;
}
.wall-card{
  border:1px solid var(--line);
  background:rgba(246,241,230,0.03);
}
.wall-card img{ width:100%; height:180px; object-fit:cover; }
.wall-card-meta{ padding:14px 16px 16px; }
.wall-card-meta strong{ display:block; margin-bottom:6px; }
.wall-card-actions{ display:flex; gap:10px; align-items:center; margin-top:14px; }
.wall-toolbar{ display:flex; flex-wrap:wrap; gap:10px; margin:-8px 0 22px; }
.wall-stage{
  position:relative;
  width:100%;
  min-height:280px;
  background:#1a1612;
  overflow:hidden;
  touch-action:none;
  user-select:none;
}
.wall-photo{
  width:100%;
  max-height:min(72vh, 860px);
  object-fit:contain;
  margin:0 auto;
}
.wall-dots,
.wall-art-layer{
  position:absolute;
  pointer-events:none;
}
.wall-quad-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
}
.wall-quad-svg polyline{
  fill:rgba(201,162,74,0.12);
  stroke:var(--gold);
  stroke-width:0.7;
}
.wall-dot{
  position:absolute;
  width:28px;
  height:28px;
  margin:-14px 0 0 -14px;
  border-radius:50%;
  background:var(--gold);
  color:var(--ink);
  font-size:12px;
  font-weight:600;
  display:grid;
  place-items:center;
  box-shadow:0 0 0 3px rgba(21,18,15,0.55);
}
.wall-art{
  position:absolute;
  left:0;
  top:0;
  transform-origin:0 0;
  pointer-events:auto;
  cursor:grab;
  box-shadow:0 10px 28px rgba(0,0,0,0.45);
  touch-action:none;
}
.wall-art.is-on{ box-shadow:0 0 0 2px var(--gold), 0 10px 28px rgba(0,0,0,0.45); }
.wall-art:active{ cursor:grabbing; }
.wall-steps{
  margin:18px 0 8px 20px;
  color:rgba(246,241,230,0.62);
  font-size:14px;
  line-height:1.7;
}
.wall-hang-layout{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(240px,0.8fr);
  gap:28px;
  align-items:start;
}
.wall-side h3{ margin:22px 0 10px; font-size:22px; }
.wall-title-form .btn-line{ margin-top:10px; }
.wall-picker{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(96px,1fr));
  gap:10px;
}
.wall-pick{
  display:block;
  padding:0;
  border:1px solid var(--line);
  background:transparent;
  text-align:left;
  cursor:pointer;
}
.wall-pick img{ width:100%; height:88px; object-fit:cover; }
.wall-pick span{
  display:block;
  padding:6px 8px 8px;
  font-size:12px;
  line-height:1.35;
}
.wall-pick:disabled{ opacity:.4; cursor:default; }
.wall-hang-row{
  display:grid;
  grid-template-columns:40px 1fr auto;
  gap:10px;
  align-items:center;
  padding:8px 0;
  border-top:1px solid var(--line);
  cursor:pointer;
}
.wall-hang-row.is-on span{ color:var(--gold); }
.wall-hang-row img{ width:40px; height:50px; object-fit:cover; }
@media(max-width:900px){
  .wall-hang-layout{ grid-template-columns:1fr; }
  .wall-account-card{ flex-direction:column; align-items:flex-start; }
}
