:root{
  --bg:#0f1115;
  --surface:#151924;
  --surface-2:#1b2231;
  --text:#f5f3ee;
  --muted:#b8b2a6;
  --line:rgba(255,255,255,.12);
  --accent:#f4b548;
  --accent-2:#2ea784;
  --shadow:0 24px 60px rgba(7,9,12,.45);
  --radius:20px;
  --max:1200px;
  --focus:0 0 0 3px rgba(244,181,72,.3);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:"Space Grotesk", system-ui, -apple-system, sans-serif;
  color:var(--text);
  background:
    radial-gradient(1100px 600px at 15% -10%, rgba(244,181,72,.18), transparent 60%),
    radial-gradient(1000px 600px at 90% 0%, rgba(46,167,132,.16), transparent 55%),
    linear-gradient(180deg, #0f1115 0%, #0e1319 40%, #0d1116 100%);
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  background:
    linear-gradient(120deg, rgba(255,255,255,.03) 0%, transparent 40%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.02) 0 2px, transparent 2px 10px);
  opacity:.25;
  pointer-events:none;
  z-index:-1;
}

h1,h2,h3{font-family:"Source Serif 4", serif; margin:0}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}

.wrap{max-width:var(--max); margin:0 auto; padding:0 20px}
.skip{position:absolute; left:-9999px}
.skip:focus{left:20px; top:20px; z-index:99; background:var(--surface); padding:10px 14px; border-radius:999px; box-shadow:var(--focus)}

.muted{color:var(--muted)}
.eyebrow{font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); margin:0 0 10px}
.lead{font-size:18px; line-height:1.6}

/* Topbar */
.topbar{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(12,14,20,.82);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.topbar__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 0;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.brand__mark{
  width:42px;
  height:42px;
  border-radius:14px;
  display:grid;
  place-items:center;
  font-weight:700;
  background:linear-gradient(140deg, rgba(244,181,72,.25), rgba(255,255,255,.05));
  border:1px solid rgba(244,181,72,.4);
}
.brand__text{display:flex; flex-direction:column; gap:2px}
.brand__name{font-weight:700}
.brand__tag{font-size:12px; color:var(--muted)}

.nav{display:flex; gap:18px; font-size:14px; flex-wrap:wrap}
.nav a{color:var(--muted)}
.nav a:hover{color:var(--text)}

.topbar__cta{display:flex; gap:12px; align-items:center}

/* Buttons */
.btn{
  border:1px solid var(--line);
  border-radius:999px;
  padding:10px 16px;
  background:rgba(255,255,255,.03);
  color:var(--text);
  font-weight:600;
  cursor:pointer;
}
.btn:hover{background:rgba(255,255,255,.08)}
.btn:focus{outline:none; box-shadow:var(--focus)}
.btn:disabled{opacity:.5; cursor:not-allowed}
.btn--solid{
  background:linear-gradient(120deg, rgba(244,181,72,.9), rgba(240,160,60,.9));
  color:#1a1407;
  border-color:transparent;
}
.btn--solid:hover{filter:brightness(1.05)}
.btn--ghost{background:rgba(255,255,255,.02)}

/* Sections */
.section{padding:70px 0}
.section--alt{background:rgba(20,24,34,.72)}
.section__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:30px;
}

.books__actions{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:10px;
}
.carousel__controls{display:flex; gap:8px}

.section-label{
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent-2);
  margin:24px 0 12px;
}
.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px;
}
.example-title{margin:0}
.example-sub{margin:6px 0 0; color:var(--muted)}
.example-text{margin:10px 0; color:var(--muted); line-height:1.6}
.example-text.spaced{margin-top:18px}
.example-list{
  margin:0 0 12px;
  padding-left:18px;
  color:var(--muted);
  line-height:1.6;
}
.example-list li{margin-bottom:6px}

.panel{
  background:rgba(18,22,32,.88);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
  box-shadow:var(--shadow);
  margin-bottom:32px;
}

.work-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
  margin-top:20px;
}
.work-card{
  background:rgba(18,22,32,.85);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:16px;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  gap:10px;
}
.work-media{
  position:relative;
  border-radius:16px;
  overflow:hidden;
  aspect-ratio:16/9;
  background:rgba(255,255,255,.06);
}
.work-media img{width:100%; height:100%; object-fit:cover}
.work-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent, rgba(8,10,14,.7));
  opacity:.7;
  transition:opacity .2s ease;
}
.work-pill{
  position:absolute;
  bottom:12px;
  left:12px;
  padding:6px 12px;
  border-radius:999px;
  font-size:12px;
  background:rgba(244,181,72,.9);
  color:#1a1407;
  font-weight:600;
}
.work-media:hover .work-overlay{opacity:.9}
.work-title{margin:0}
.work-desc{margin:0; color:var(--muted); line-height:1.55}
.work-link{color:var(--accent); font-weight:600}
.work-link:hover{text-decoration:underline}

.graphics-showcase{display:flex; flex-direction:column; gap:18px}
.graphics-showcase-media img{border-radius:16px; border:1px solid var(--line)}
.graphics-cta-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}
.graphics-cta-text{display:flex; align-items:center; gap:12px; flex-wrap:wrap; color:var(--muted)}
.graphics-chip{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(244,181,72,.4);
  background:rgba(244,181,72,.2);
  color:var(--accent);
  font-weight:600;
}

.testimonials-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
  margin-top:16px;
}
.t-card{
  background:rgba(18,22,32,.85);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  gap:12px;
}
.t-stars{color:var(--accent); letter-spacing:2px; font-size:14px}
.t-quote{margin:0; line-height:1.6}
.t-meta{display:flex; flex-direction:column; gap:4px; font-size:13px; color:var(--muted)}
.t-name{font-weight:600; color:var(--text)}
.t-link{color:var(--accent); font-weight:600}
.t-link:hover{text-decoration:underline}
.t-cta{
  margin-top:20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}
.t-cta-text{color:var(--muted); max-width:60ch}

.btn-main{
  background:linear-gradient(120deg, rgba(244,181,72,.9), rgba(240,160,60,.9));
  color:#1a1407;
  border-color:transparent;
}
.btn-main:hover{filter:brightness(1.05)}

/* Hero */
.hero{padding-top:90px}
.hero__grid{display:grid; grid-template-columns:1.2fr .8fr; gap:28px; align-items:stretch}
.hero__cta{display:flex; gap:12px; flex-wrap:wrap; margin:24px 0}
.hero__stats{display:flex; gap:16px; flex-wrap:wrap}
.stat{
  background:rgba(255,255,255,.04);
  border:1px solid var(--line);
  padding:14px 18px;
  border-radius:16px;
  min-width:140px;
}
.stat__k{font-size:20px; font-weight:700}
.stat__l{font-size:12px; color:var(--muted)}

.hero__card{
  background:linear-gradient(160deg, rgba(244,181,72,.18), rgba(255,255,255,.02));
  border:1px solid rgba(244,181,72,.3);
  border-radius:var(--radius);
  padding:24px;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  gap:14px;
}
.hero__card-top{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.hero__card-actions{display:flex; gap:10px; flex-wrap:wrap}
.hero__card-footer{display:flex; justify-content:space-between; color:var(--muted); font-size:12px}

/* Chips */
.chiprow{display:flex; flex-wrap:wrap; gap:8px}
.chip{
  border-radius:999px;
  border:1px solid var(--line);
  padding:6px 12px;
  font-size:13px;
  background:rgba(255,255,255,.03);
  color:var(--text);
  cursor:pointer;
}
.chip:hover{background:rgba(255,255,255,.08)}
.chip--active{background:rgba(244,181,72,.18); border-color:rgba(244,181,72,.4)}
.chip--solid{background:rgba(244,181,72,.8); border-color:transparent; color:#1a1407}

/* Carousel */
.carousel{overflow:hidden}
.carousel__track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(240px, 1fr);
  gap:16px;
  overflow-x:auto;
  scroll-behavior:smooth;
  padding-bottom:6px;
  scroll-snap-type:x mandatory;
}
.carousel__track > *{scroll-snap-align:start}
.book-carousel .carousel__track{
  grid-auto-columns: clamp(220px, 24vw, 320px);
  justify-content: start;
}
.carousel__track::-webkit-scrollbar{height:6px}
.carousel__track::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18); border-radius:999px}

/* Filters */
.filters{display:grid; grid-template-columns:1.2fr .6fr 1fr; gap:16px; align-items:end; margin-bottom:24px}
#books{scroll-margin-top:90px}
.field{display:flex; flex-direction:column; gap:8px}
.field__label{font-size:13px; color:var(--muted)}
input, select{
  background:rgba(255,255,255,.04);
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
  color:var(--text);
}
input:focus, select:focus{outline:none; box-shadow:var(--focus)}

.results{font-weight:600; color:var(--muted)}

/* Grid */
.grid{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:18px}
.card{
  background:rgba(18,22,32,.9);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  gap:12px;
}

.pager{
  margin-top:24px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.pager__btn{min-width:40px}
.pager__btn.is-active{
  background:linear-gradient(120deg, rgba(244,181,72,.9), rgba(240,160,60,.9));
  color:#1a1407;
  border-color:transparent;
}
.pager__ellipsis{color:var(--muted); padding:0 6px}
.card__media{border-radius:16px; overflow:hidden; aspect-ratio:3/4; background:rgba(255,255,255,.06)}
.card__media img{width:100%; height:100%; object-fit:cover; display:block}
.card__meta{font-size:13px; color:var(--muted)}
.card__actions{display:flex; gap:10px; flex-wrap:wrap}
.tag{
  font-size:11px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(244,181,72,.4);
  color:var(--accent);
}
.tag--promoted{background:rgba(46,167,132,.2); border-color:rgba(46,167,132,.5); color:#a8f3d8}
.price{
  font-weight:700;
  color:var(--accent);
  margin:0;
}

.card--service ul,
.card--review ul,
.submit__panel ul{padding-left:18px; margin:0; color:var(--muted); line-height:1.6}
.card--service li,
.submit__panel li{margin-bottom:8px}

.card--service{background:rgba(17,22,32,.85)}
.card--review{background:rgba(15,20,28,.85)}
.card--result{background:rgba(20,24,34,.9); text-align:center}

.service-grid,
.review-grid,
.result-grid{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:18px}
.review-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}

.review-cta{
  margin-top:28px;
  padding:20px;
  border-radius:var(--radius);
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.review-cta__actions{display:flex; gap:12px; flex-wrap:wrap}

.testimonials{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; margin-top:24px}
.quote{padding:20px; border-radius:var(--radius); border:1px solid var(--line); background:rgba(255,255,255,.04)}
.quote span{display:block; margin-top:12px; color:var(--muted); font-size:13px}

.newsletter{
  margin-top:30px;
  padding:20px;
  border-radius:var(--radius);
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.newsletter__form{display:flex; gap:12px; flex-wrap:wrap}

.submit{display:grid; grid-template-columns:1.2fr .8fr; gap:24px; align-items:start}
.submit__actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:16px}
.submit__panel{
  background:rgba(255,255,255,.05);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
}

.contact{display:grid; grid-template-columns:1.1fr .9fr; gap:22px; align-items:center}
.contact__details{display:grid; gap:16px}
.contact__label{display:block; font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.2em}

.footer{padding:40px 0; border-top:1px solid var(--line)}
.footer__inner{display:flex; justify-content:space-between; align-items:flex-start; gap:18px; flex-wrap:wrap}
.footer__links{display:flex; gap:16px; flex-wrap:wrap; color:var(--muted)}

/* Modals */
.modal{position:fixed; inset:0; display:grid; place-items:center; z-index:100}
.modal[hidden]{display:none}
.modal__backdrop{position:absolute; inset:0; background:rgba(6,8,12,.7)}
.modal__card{
  position:relative;
  background:rgba(17,21,30,.98);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:28px;
  width:min(900px, 92vw);
  max-height:85vh;
  overflow:auto;
  box-shadow:var(--shadow);
}
.modal__card--small{width:min(420px, 92vw)}
.modal__close{
  position:absolute;
  top:14px;
  right:14px;
  width:36px;
  height:36px;
  border-radius:50%;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  color:var(--text);
  cursor:pointer;
}
.modal__content{display:grid; grid-template-columns:.8fr 1.2fr; gap:20px}
.modal__media img{border-radius:16px}
.modal__tags{display:flex; gap:8px; flex-wrap:wrap; margin:12px 0}
.modal__links{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px}
.modal__quotes{margin-top:12px; color:var(--muted); font-size:14px}

.form{display:flex; flex-direction:column; gap:12px; margin-top:14px}
.form__note{color:var(--muted); font-size:13px}

/* Animation */
.reveal{animation:fadeUp .8s ease both}
@keyframes fadeUp{
  from{opacity:0; transform:translateY(20px)}
  to{opacity:1; transform:translateY(0)}
}

/* Responsive */
@media (max-width: 1000px){
  .hero__grid, .submit, .contact, .modal__content{grid-template-columns:1fr}
  .filters{grid-template-columns:1fr}
  .grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .service-grid, .result-grid, .work-grid, .testimonials-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .books__actions{align-items:flex-start}
}
@media (max-width: 700px){
  .topbar__inner{flex-direction:column; align-items:flex-start}
  .nav{gap:12px}
  .grid, .service-grid, .result-grid, .review-grid, .work-grid, .testimonials-grid{grid-template-columns:1fr}
  .hero{padding-top:120px}
}
@media (max-width: 520px){
  .hero__stats{flex-direction:column; align-items:flex-start}
  .hero__card-footer{flex-direction:column; gap:6px}
}
