:root{
  --ink:#060607;
  --panel:rgba(255,255,255,.045);
  --panel-2:rgba(255,255,255,.045);
  --panel-3:rgba(255,255,255,.07);
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.14);
  --text:#f2f0ec;
  --text-dim:#a8adb3;
  --text-faint:#6b7078;
  --orange:#f0940c;
  --orange-2:#ff7a1a;
  --orange-dim:#a86408;
  --green:#3fb56f;
  --red:#e6503f;
  --blue:#3f8cf2;
  --radius:18px;
  --shadow-lg:0 24px 60px rgba(0,0,0,.55);
  font-size:16px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background: var(--ink);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}

.page{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:28px;
  padding:44px 20px 40px;
  min-height:100vh;
}

.page-header{text-align:center;max-width:600px;}
.wordmark{font-size:1.9rem;font-weight:800;letter-spacing:-.02em;}
.wordmark__gun{color:var(--text);}
.wordmark__broker{color:var(--orange);}
.wordmark__product{
  display:block;
  margin-top:4px;
  font-size:.78rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--text-faint);
  font-weight:700;
}
.page-header__tag{
  margin:10px 0 0;
  color:var(--text-dim);
  font-size:.92rem;
}

.shell{
  width:100%;
  max-width:820px;
  display:flex;
  flex-direction:column;
  gap:20px;
}

.card{
  background:linear-gradient(180deg, var(--panel-2), rgba(255,255,255,.015));
  backdrop-filter:blur(20px) saturate(150%);
  border:1px solid var(--line-strong);
  border-radius:24px;
  padding:28px;
  box-shadow:var(--shadow-lg);
}

.step__head{
  display:flex;
  gap:14px;
  align-items:flex-start;
  margin-bottom:22px;
}
.step__num{
  flex:none;
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--panel-3);
  border:1px solid var(--line-strong);
  color:var(--orange);
  font-weight:800;
  font-size:.9rem;
  display:flex;
  align-items:center;
  justify-content:center;
}
.step__title{margin:0 0 4px;font-size:1.2rem;font-weight:800;}
.step__sub{margin:0;color:var(--text-dim);font-size:.88rem;line-height:1.5;}

.photo-picker{
  display:flex;
  gap:16px;
  align-items:center;
  margin-bottom:18px;
}
.photo-picker__slot{
  flex:none;
  width:88px;
  height:88px;
  border-radius:16px;
  background:var(--panel-3);
  border:1.5px dashed var(--line-strong);
  cursor:pointer;
  padding:0;
  overflow:hidden;
  transition:border-color .15s ease, transform .15s ease;
}
.photo-picker__slot:hover{border-color:var(--orange);transform:translateY(-1px);}
.photo-picker__preview{
  width:100%;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  color:var(--text-faint);
  font-size:.68rem;
  font-weight:600;
}
.photo-picker__preview img{width:100%;height:100%;object-fit:cover;}
.photo-picker__icon{width:26px;height:26px;}
.photo-picker__label{margin:0;font-weight:700;font-size:.95rem;}
.photo-picker__credit{margin:4px 0 0;color:var(--text-faint);font-size:.74rem;}

.gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin:0 0 18px;
  padding:14px;
  background:var(--panel-3);
  border:1px solid var(--line-strong);
  border-radius:16px;
}
.gallery__item{
  cursor:pointer;
  border-radius:12px;
  overflow:hidden;
  border:2px solid transparent;
  background:var(--panel);
  padding:0;
  aspect-ratio:1/1;
  position:relative;
  transition:border-color .15s ease, transform .15s ease;
}
.gallery__item img{width:100%;height:100%;object-fit:cover;display:block;}
.gallery__item:hover{transform:translateY(-2px);}
.gallery__item.is-selected{border-color:var(--orange);}
.gallery__item span{
  position:absolute;
  bottom:0;left:0;right:0;
  background:linear-gradient(0deg,rgba(0,0,0,.75),transparent);
  color:var(--text);
  font-size:.62rem;
  font-weight:700;
  padding:12px 6px 5px;
  text-align:center;
}

.field-label{
  display:block;
  font-size:.78rem;
  font-weight:700;
  color:var(--text-dim);
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:8px;
}
.rough-input{
  width:100%;
  resize:vertical;
  min-height:96px;
  background:var(--panel-3);
  border:1px solid var(--line-strong);
  border-radius:14px;
  color:var(--text);
  font-family:inherit;
  font-size:.95rem;
  line-height:1.5;
  padding:14px 16px;
  outline:none;
  transition:border-color .15s ease;
}
.rough-input:focus{border-color:var(--orange);}
.rough-input::placeholder{color:var(--text-faint);}

.step__actions{margin-top:22px;display:flex;justify-content:flex-end;}
.step__actions--split{justify-content:space-between;}

.btn{
  appearance:none;
  border:none;
  border-radius:999px;
  padding:13px 22px;
  font-family:inherit;
  font-size:.92rem;
  font-weight:800;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:transform .12s ease, filter .12s ease, opacity .12s ease;
}
.btn:hover{filter:brightness(1.08);}
.btn:active{transform:translateY(1px);}
.btn:disabled{opacity:.6;cursor:not-allowed;}
.btn--primary{background:var(--orange);color:#171000;}
.btn--ghost{background:var(--panel-3);border:1px solid var(--line-strong);color:var(--text);}
.btn--lg{padding:14px 26px;font-size:.96rem;width:100%;justify-content:center;}
.btn__icon{width:18px;height:18px;flex:none;}

.btn--loading .btn__icon{animation:spin 0.9s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

.step--result{animation:fadein .35s ease;}
@keyframes fadein{
  from{opacity:0;transform:translateY(8px);}
  to{opacity:1;transform:translateY(0);}
}

.result-grid{
  display:grid;
  grid-template-columns:200px 1fr;
  gap:22px;
  margin-bottom:22px;
}
.result-photo img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:14px;
  border:1px solid var(--line-strong);
  background:var(--panel-3);
}
.result-photo__credit{
  margin:8px 0 0;
  color:var(--text-faint);
  font-size:.68rem;
  line-height:1.4;
}

.result-main{display:flex;flex-direction:column;gap:16px;}
.field-block__label{
  display:block;
  font-size:.72rem;
  font-weight:700;
  color:var(--text-faint);
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:6px;
}
.field-block__value{margin:0;color:var(--text);font-size:.92rem;line-height:1.55;}
.field-block__value--title{font-size:1.18rem;font-weight:800;line-height:1.35;}

.specs{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:10px;
  margin-bottom:22px;
}
.spec-chip{
  background:var(--panel-3);
  border:1px solid var(--line-strong);
  border-radius:12px;
  padding:11px 14px;
}
.spec-chip__label{
  display:block;
  font-size:.66rem;
  font-weight:700;
  color:var(--text-faint);
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:3px;
}
.spec-chip__value{font-size:.9rem;font-weight:700;color:var(--text);}

.price-card{
  background:linear-gradient(135deg, rgba(240,148,12,.14), rgba(240,148,12,.03));
  border:1px solid var(--orange-dim);
  border-radius:16px;
  padding:18px 20px;
  margin-bottom:22px;
}
.price-card__label{
  font-size:.72rem;
  font-weight:700;
  color:var(--orange);
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:4px;
}
.price-card__value{font-size:2rem;font-weight:800;color:var(--text);line-height:1.1;}
.price-card__hint{margin-top:6px;color:var(--text-dim);font-size:.82rem;}

.compliance{
  background:var(--panel-3);
  border:1px solid var(--line-strong);
  border-radius:16px;
  padding:20px;
  margin-bottom:6px;
}
.compliance__head{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-bottom:16px;
}
.compliance__icon{width:26px;height:26px;flex:none;color:var(--orange);margin-top:1px;}
.compliance__head h3{margin:0 0 3px;font-size:1rem;font-weight:800;}
.compliance__head p{margin:0;color:var(--text-dim);font-size:.82rem;line-height:1.4;}

.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.check-item{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid var(--line-strong);
  background:var(--panel-2);
}
.check-item__icon{
  flex:none;
  width:22px;
  height:22px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.8rem;
  font-weight:900;
  margin-top:1px;
}
.check-item.is-pass{border-color:rgba(63,181,111,.35);}
.check-item.is-pass .check-item__icon{background:rgba(63,181,111,.16);color:var(--green);}
.check-item.is-warn{border-color:rgba(230,80,63,.4);background:rgba(230,80,63,.06);}
.check-item.is-warn .check-item__icon{background:rgba(230,80,63,.18);color:var(--red);}
.check-item__text{font-size:.88rem;line-height:1.5;color:var(--text);}
.check-item__text strong{color:var(--text);}
.check-item.is-warn .check-item__text{color:#f5d4cf;}

.publish-note{
  margin:14px 0 0;
  text-align:center;
  font-size:.8rem;
  color:var(--text-faint);
}

.disclaimer{
  max-width:620px;
  text-align:center;
  font-size:.72rem;
  line-height:1.6;
  color:var(--text-faint);
  padding:0 12px;
  margin-top:8px;
}

@media (max-width:640px){
  .page{padding:32px 14px 28px;gap:22px;}
  .card{padding:20px;border-radius:20px;}
  .result-grid{grid-template-columns:1fr;}
  .result-photo img{max-width:200px;}
  .gallery{grid-template-columns:repeat(2,1fr);}
  .step__actions--split{flex-direction:column-reverse;gap:12px;}
  .step__actions--split .btn{width:100%;justify-content:center;}
  .price-card__value{font-size:1.7rem;}
}
