/* ----- Reset + base ----- */
*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  touch-action: manipulation; /* iOS 300ms tap delay'i kaldırır */
}
body{
  overflow-x: clip; /* hero wash'lerinin yan kenarlardan taşmasını gizle */
  font-family: var(--font-body);
  font-weight: var(--weight-body);
  color: var(--color-ink);
  background: var(--color-bg);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img,svg,video{ max-width:100%; height:auto; display:block; }
a{ color: var(--color-link); text-decoration:none; }
/* Apply text-link fade only when the anchor's content is plain text — anchors
   wrapping cards, images, or scene polaroids must keep full opacity on hover.
   :has() lets us limit the fade to anchors with no nested element. */
a:hover{ opacity:.85; }
a:has(img):hover,
a:has(picture):hover,
a:has(.card):hover,
a:has(.atolye-card):hover,
a:has(.brand-card):hover,
a.atolye-card:hover,
a.scene-card:hover,
.scene-photo .hot:hover,
.scene-photo-cards a:hover,
.atolye-card:hover,
.brand-card:hover,
.gallery a:hover,
.workshop-mini:hover,
.cards-grid > a:hover,
.cards-grid > .card:hover,
.post-row:hover,
.design-card:hover{
  opacity: 1;
}
button{ font-family:inherit; cursor:pointer; }

h1,h2,h3,h4{
  font-family: var(--font-display);
  color: var(--color-ink);
  line-height:1.15;
  margin: 0 0 .5em;
  letter-spacing:-.005em;
}
h1{ font-size: clamp(32px, 5.5vw, 64px); font-weight: var(--weight-h1); }
h2{ font-size: clamp(26px, 3.4vw, 40px); font-weight: var(--weight-h2); }
h3{ font-size: clamp(20px, 2.2vw, 26px); font-weight: var(--weight-h3); }
h4{ font-size: 18px; font-weight: 600; font-family: var(--font-body); letter-spacing:.02em; text-transform:uppercase; color: var(--color-muted); }
p{ margin: 0 0 1em; }
strong{ font-weight: 600; color: var(--color-ink); }
ul,ol{ padding-left:1.2em; }
hr{ border:none; height:1px; background: var(--color-line); margin: 32px 0; }
::selection{ background: var(--color-accent); color:#fff; }

.container{
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
}
.section{ padding-block: var(--space-section); }
.section-tight{ padding-block: clamp(40px, 6vw, 72px); }
.section-bg-alt{ background: var(--color-bg-alt); }

.eyebrow{
  display:inline-block;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .14em;
  margin-bottom: 14px;
}

.muted{ color: var(--color-muted); }
.text-lg{ font-size: 19px; line-height:1.6; }
.text-balance{ text-wrap: balance; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
}
