@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500&family=Alex+Brush&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --cream: #F8F5ED;
  --cream-dim: #EFEAE0;
  --ink: #ECE6D8;
  --pine: #1F3C2E;
  --gold: #C89A4A;
  --gold-dim: #A87A28;
  --gold-light: #E4C688;
  --deep: #0A1516;
  --white: #FFFFFF;
  --display: 'Fraunces', serif;
  --body: 'Inter', system-ui, sans-serif;
  --max: 1180px;
  --edge: clamp(1.25rem, 4vw, 3.5rem);
  --shadow-sm: 0 1px 2px rgba(10,21,22,.06);
  --shadow-md: 0 18px 40px -20px rgba(10,21,22,.35);
  --shadow-lg: 0 30px 70px -24px rgba(10,21,22,.4);
}
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{ margin:0; background:
    radial-gradient(60% 45% at 12% -8%, rgba(200,154,74,.09), transparent 60%),
    radial-gradient(55% 40% at 92% 8%, rgba(31,60,46,.4), transparent 60%),
    var(--deep);
  color:var(--ink); font-family:var(--body); font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased; }
img{ max-width:100%; display:block; }
a{ color:inherit; }
::selection{ background:var(--gold); color:var(--white); }
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:.001ms !important; transition-duration:.001ms !important;} }
.wrap{ max-width:var(--max); margin-inline:auto; padding-inline:var(--edge); }
.eyebrow{ font-family:var(--body); font-size:.72rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-dim); display:inline-flex; align-items:center; gap:.7em; }
.eyebrow.on-dark{ color:var(--gold-light); }
h1,h2,h3{ font-family:var(--display); font-weight:600; line-height:1.06; margin:0 0 .4em; letter-spacing:-0.02em; }
h1{ font-size:clamp(2.7rem,6vw,4.8rem); font-weight:500; }
h2{ font-size:clamp(1.8rem,3.4vw,2.7rem); font-weight:500; }
h3{ font-size:1.25rem; font-weight:600; }
p{ margin:0 0 1em; }
.lede{ font-size:1.18rem; color:color-mix(in srgb, var(--ink) 75%, transparent); max-width:46ch; font-weight:400; }
.btn{ display:inline-flex; align-items:center; gap:.5em; font-family:var(--body); font-weight:600; font-size:.88rem; letter-spacing:.03em; padding:.95em 1.9em; border-radius:999px; text-decoration:none; border:1px solid transparent; cursor:pointer; transition:transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, background .22s ease, border-color .22s ease, color .22s ease; }
.btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.btn-gold{ background:linear-gradient(155deg, var(--gold-light), var(--gold) 55%, var(--gold-dim)); color:var(--deep); box-shadow:var(--shadow-sm); }
.btn-gold:hover{ background:linear-gradient(155deg, var(--gold-light), var(--gold-dim) 60%, var(--gold-dim)); }
.btn-ghost{ background:transparent; border-color:color-mix(in srgb, currentColor 55%, transparent); color:var(--ink); }
.btn-ghost:hover{ background:var(--ink); border-color:var(--ink); color:var(--deep); }
.btn-ghost.on-dark{ color:var(--cream); border-color:color-mix(in srgb, var(--gold-light) 55%, transparent); }
.btn-ghost.on-dark:hover{ background:var(--gold-light); border-color:var(--gold-light); color:var(--deep); }
.site-header{ position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--deep) 62%, transparent); backdrop-filter:blur(16px) saturate(1.3); border-bottom:1px solid color-mix(in srgb, var(--gold-dim) 35%, transparent); }
.nav{ display:flex; align-items:center; justify-content:space-between; padding-block:1.1rem; max-width:none; }
@media (min-width:721px){ .nav{ padding-inline:2rem; } }
.brand{ font-family:var(--display); font-weight:600; font-size:1.35rem; text-decoration:none; color:var(--ink); display:flex; align-items:center; gap:.55em; letter-spacing:-.01em; background:none; border:none; cursor:pointer; padding:0; }
.brand .mark-full{ height:68px; width:auto; flex:none; color:var(--white); }
.navlinks{ display:flex; gap:2.3rem; list-style:none; margin:0; padding:0; }
.navlinks a{ background:none; border:none; font-family:var(--body); text-decoration:none; font-size:.88rem; font-weight:500; letter-spacing:.02em; color:var(--ink); position:relative; padding:0 0 4px; cursor:pointer; transition:color 0s linear; }
.navlinks a[aria-current="page"]::after{ right:0; }
@media (hover:hover) and (pointer:fine){
  .navlinks a:hover{ color:var(--gold-dim); }
}
.navlinks a::after{ content:''; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--gold-dim); transition:right .25s cubic-bezier(.2,.8,.2,1); }
@media (hover:hover) and (pointer:fine){
  .navlinks a:hover::after{ right:0; }
}
.navlinks a[aria-current="page"]{ color:var(--gold-dim); background-position:left bottom; }
.navtoggle{ display:none; }
@media (max-width:720px){
  .navlinks{ position:absolute; inset:100% 0 auto 0; background:color-mix(in srgb, var(--deep) 92%, transparent); backdrop-filter:blur(16px); flex-direction:column; gap:0; padding:.5rem var(--edge) 1.2rem; border-bottom:1px solid color-mix(in srgb, var(--ink) 20%, transparent); transform:translateY(-8px); opacity:0; pointer-events:none; transition:all .2s ease; }
  .navlinks a{ display:block; width:100%; text-align:left; padding:.8rem 0; border-top:1px solid color-mix(in srgb, var(--ink) 12%, transparent); }
  .navlinks.open{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .navtoggle{ display:block; background:none; border:none; cursor:pointer; padding:.4rem; color:var(--ink); }
}
.rowline{ display:flex; align-items:flex-end; gap:clamp(6px,1.4vw,14px); opacity:.85; }
.rowline svg{ width:clamp(14px,2.2vw,22px); height:auto; }
.hero{ position:relative; background:linear-gradient(160deg, rgba(42,78,59,.55), rgba(10,21,22,.88)), url(img/christbaumhof-lang-feld-trandorf.jpg) center 35%/cover; color:var(--cream); overflow:hidden; padding-block:clamp(4.5rem,11vw,8rem) clamp(3.5rem,9vw,5.5rem); }
.hero-field{ position:absolute; inset:auto 0 0 0; height:46%; display:flex; align-items:flex-end; justify-content:space-between; padding-inline:var(--edge); opacity:.35; pointer-events:none; }
.hero-inner{ position:relative; z-index:2; }
.hero .eyebrow{ margin-bottom:1.4rem; }
.hero h1{ color:var(--white); max-width:14ch; text-shadow:0 2px 40px rgba(0,0,0,.25); }
.hero .lede{ color:color-mix(in srgb, var(--cream) 85%, transparent); font-size:1.22rem; max-width:42ch; }
.hero-ctas{ display:flex; gap:1.1rem; flex-wrap:wrap; margin-top:2.4rem; }
@media (max-width:640px){
  .hero{ padding-block:2.4rem 2rem; }
  .hero-field{ display:none; }
  .hero .eyebrow{ font-size:.68rem; margin-bottom:.8rem; }
  .hero h1{ font-size:1.92rem; max-width:17ch; margin-bottom:.55rem; }
  .hero .lede{ font-size:1.04rem; max-width:32ch; }
  .hero-ctas{ margin-top:1.24rem; gap:.68rem; }
  .hero-ctas .btn{ padding:.79em 1.36em; font-size:.86rem; }
}
.page-hero{ background:radial-gradient(120% 160% at 15% 0%, #2A4E3B 0%, var(--pine) 45%, var(--deep) 100%); color:var(--cream); padding-block:clamp(3.6rem,9vw,5.6rem) clamp(2.8rem,7vw,3.6rem); }
.hero-compact{ padding-block:clamp(2.4rem,6vw,5.6rem) clamp(1.9rem,4.7vw,3.6rem); }
@media (max-width:640px){
  .hero-compact{ padding-block:2.4rem 1.9rem; }
  .hero-compact h1, .hero-compact h2{ font-size:1.9rem; margin-bottom:.3em; }
  .hero-compact .lede{ font-size:.95rem; }
}
.page-hero h1, .page-hero h2{ color:var(--white); }
.page-hero h1, .page-hero h2{ font-family:var(--display); font-weight:500; font-size:clamp(2.7rem,6vw,4.8rem); line-height:1.06; letter-spacing:-0.02em; margin:0 0 .4em; }
.page-hero .lede{ color:color-mix(in srgb, var(--cream) 85%, transparent); }
section{ padding-block:clamp(3.6rem,7.5vw,6rem); }
.section-head{ max-width:60ch; margin-bottom:2.8rem; }
.grid3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
@media (max-width:860px){ .grid3{ grid-template-columns:1fr; } }
.grid-2col{ grid-template-columns:repeat(2,1fr); max-width:760px; margin-inline:auto; }
.grid-2col-wide{ grid-template-columns:repeat(2,1fr); max-width:920px; margin-inline:auto; }
@media (max-width:860px){ .grid-2col{ grid-template-columns:1fr; } .grid-2col-wide{ grid-template-columns:1fr; } }
.card{ background:color-mix(in srgb, var(--ink) 6%, transparent); backdrop-filter:blur(18px) saturate(1.1); border:1px solid color-mix(in srgb, var(--ink) 14%, transparent); border-radius:22px; padding:2.2rem 2rem; box-shadow:var(--shadow-sm); }
body .card{ transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, background .25s ease; }
.card-round{ border-radius:26px; background:color-mix(in srgb, var(--ink) 7%, transparent); backdrop-filter:blur(22px) saturate(1.15); border:1px solid color-mix(in srgb, var(--gold-dim) 30%, transparent); box-shadow:0 10px 34px rgba(0,0,0,.28), inset 0 1px 0 color-mix(in srgb, var(--cream) 8%, transparent); }
body .card-round:hover{ transform:translateY(-4px) scale(1.02); background:color-mix(in srgb, var(--ink) 10%, transparent); }
body .card:hover{ transform:translateY(-4px) scale(1.02); box-shadow:var(--shadow-md); background:color-mix(in srgb, var(--ink) 9%, transparent); }
.spotlight{ position:relative; border:1px solid color-mix(in srgb, var(--gold-dim) 45%, transparent); border-radius:26px; padding:clamp(2rem,4.5vw,3.2rem); background:linear-gradient(165deg, color-mix(in srgb, var(--gold) 14%, transparent), color-mix(in srgb, var(--gold) 3%, transparent)); backdrop-filter:blur(18px); box-shadow:var(--shadow-md); }
body .spotlight{ transition:transform .25s cubic-bezier(.2,.8,.2,1); }
body .spotlight:hover{ transform:scale(1.012); }
.spotlight .section-head{ margin-bottom:2.2rem; }
.spotlight h2{ color:var(--gold-light); }
.spotlight .card{ border-color:color-mix(in srgb, var(--gold-dim) 35%, transparent); background:color-mix(in srgb, var(--ink) 5%, transparent); }
.card p{ color:color-mix(in srgb, var(--ink) 75%, transparent); font-size:.97rem; }
.card p:last-child{ margin-bottom:0; }
.band{ background:linear-gradient(155deg, color-mix(in srgb, var(--pine) 55%, transparent), color-mix(in srgb, var(--deep) 70%, transparent)); backdrop-filter:blur(18px); color:var(--cream); border-radius:26px; padding:clamp(1.6rem,4vw,2.6rem); display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; box-shadow:var(--shadow-md); border:1px solid color-mix(in srgb, var(--gold-dim) 35%, transparent); }
body .band{ transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease; }
body .band:hover{ transform:scale(1.015); box-shadow:0 16px 44px rgba(0,0,0,.32); }
.band h3{ color:var(--white); margin-bottom:.3rem; font-size:1.3rem; }
.band p{ color:color-mix(in srgb, var(--cream) 78%, transparent); margin:0; font-size:.92rem; }
.band .eyebrow{ font-size:.68rem; }
table{ width:100%; border-collapse:collapse; }
th,td{ text-align:left; padding:1.15rem 1rem; border-bottom:1px solid color-mix(in srgb, var(--ink) 12%, transparent); }
th{ font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; color:var(--gold-light); font-weight:700; }
td.price{ font-family:var(--display); font-weight:600; font-size:1.1rem; white-space:nowrap; color:var(--gold-light); }
tr:last-child td{ border-bottom:none; }
tr{ transition:background .2s ease; }
tbody tr:hover{ background:color-mix(in srgb, var(--gold) 5%, transparent); }
.timeline{ position:relative; padding-left:2.4rem; border-left:1px solid color-mix(in srgb, var(--gold-dim) 40%, transparent); }
.tl-item{ position:relative; padding-bottom:1.6rem; }
.tl-item:last-child{ padding-bottom:0; }
.tl-item::before{ content:''; position:absolute; left:-2.58rem; top:.3rem; width:11px; height:11px; border-radius:50%; background:var(--gold); border:2px solid var(--cream); box-shadow:0 0 0 1px var(--gold-dim); }
.tl-year{ font-family:var(--display); font-weight:700; color:var(--gold-dim); font-size:1.1rem; }
.tl-item h3{ font-size:1.19rem; margin-bottom:.2em; }
.tl-item p{ font-size:1.01rem; line-height:1.45; margin-bottom:0; color:color-mix(in srgb, var(--ink) 78%, transparent); }
.contact-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:3.2rem; align-items:start; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
.infoblock{ margin-bottom:2rem; }
.infoblock h3{ margin-bottom:.4rem; }
.infoblock p{ color:color-mix(in srgb, var(--ink) 78%, transparent); }
.standcard h3{ margin-bottom:.3rem; }
.standcard > p:first-of-type{ color:color-mix(in srgb, var(--ink) 72%, transparent); }
.standphoto{ width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:18px; margin-bottom:1.3rem; box-shadow:var(--shadow-sm); border:4px solid color-mix(in srgb, var(--gold-dim) 55%, transparent); }
.standcard{ padding:0; overflow:hidden; }
body .standcard:hover{ transform:translateY(-4px) scale(1.045); }
.standcard .standphoto{ border-radius:0; border:none; box-shadow:none; margin-bottom:0; display:block; }
.standbody{ padding:1.5rem 1.5rem 1.7rem; }
.standbody h3{ margin-bottom:.3rem; }
.standbody p{ color:color-mix(in srgb, var(--ink) 72%, transparent); font-size:.95rem; margin-bottom:1.1rem; }
.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; max-width:1100px; margin-inline:auto; align-items:start; }
@media (max-width:860px){ .gallery-grid{ grid-template-columns:1fr; max-width:280px; } }
.galitem{ width:100%; margin:0; display:flex; flex-direction:column; align-items:center; gap:1rem; }
.galitem img{ width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:50%; display:block; box-shadow:var(--shadow-md); border:2px solid color-mix(in srgb, var(--gold-dim) 55%, transparent); transition:transform .3s ease; }
.galitem:hover img{ transform:scale(1.08); }
.galitem figcaption{ font-family:var(--display); font-style:italic; font-weight:500; font-size:1.3rem; letter-spacing:.01em; line-height:1.3; color:var(--white); text-align:center; max-width:240px; }
.paybadge{ display:inline-flex; align-items:center; gap:.6em; background:color-mix(in srgb, var(--ink) 6%, transparent); backdrop-filter:blur(14px); border:1px solid color-mix(in srgb, var(--gold-dim) 55%, transparent); color:var(--ink); font-weight:600; font-size:.88rem; letter-spacing:.02em; padding:.65em 1.2em; border-radius:999px; box-shadow:var(--shadow-sm); }
.paybadge svg{ width:18px; height:18px; flex:none; color:var(--gold-light); }
.pricebadge{ display:inline-flex; align-items:center; gap:.7em; background:var(--pine); border:1.5px solid var(--gold); color:var(--cream); font-weight:600; font-size:.95rem; letter-spacing:.02em; padding:.85em 1.4em; border-radius:16px; box-shadow:var(--shadow-sm); }
body .pricebadge{ transition:transform .22s cubic-bezier(.2,.8,.2,1), border-color .2s ease; }
.pricebadge svg{ width:20px; height:20px; flex:none; color:var(--gold-light); }
body .pricebadge:hover{ border-color:var(--gold-light); transform:scale(1.04); }
.social-link{ display:inline-flex; align-items:center; gap:.7em; color:var(--ink); text-decoration:none; font-size:1.02rem; transition:color .2s ease, transform .2s ease; }
.social-link svg{ transition:transform .2s ease; }
.social-link:hover{ color:var(--gold-light); transform:translateX(2px); }
.social-link:hover svg{ transform:scale(1.08); }
form.contact-form{ display:grid; gap:1.2rem; }
.field{ display:grid; gap:.45rem; }
.field label{ font-size:.72rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:color-mix(in srgb, var(--ink) 70%, transparent); }
.field input, .field textarea{ font-family:var(--body); font-size:16px; padding:.85em .95em; border-radius:14px; border:1px solid color-mix(in srgb, var(--ink) 22%, transparent); background:color-mix(in srgb, var(--ink) 5%, transparent); backdrop-filter:blur(10px); color:var(--ink); transition:border-color .2s ease, box-shadow .2s ease; }
.field textarea{ resize:vertical; min-height:120px; }
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--gold-dim); box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 18%, transparent); }
.tree-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
@media (max-width:860px){ .tree-list{ grid-template-columns:1fr; } }
.tree{ border-top:1px solid var(--gold-dim); padding-top:1.4rem; position:relative; }
body .tree{ transition:transform .25s cubic-bezier(.2,.8,.2,1); }
body .tree:hover{ transform:scale(1.02); }
.treephoto{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:18px; margin-bottom:1rem; box-shadow:var(--shadow-sm); background:color-mix(in srgb, var(--ink) 6%, transparent); border:4px solid color-mix(in srgb, var(--gold-dim) 55%, transparent); }
.tree::before{ content:''; position:absolute; top:-1px; left:0; width:40%; height:2px; background:linear-gradient(90deg, var(--gold), transparent); }
.tree .from{ font-family:var(--display); font-size:1.5rem; font-weight:500; color:var(--gold-light); }
.tree .from span{ font-size:.83rem; font-weight:500; color:color-mix(in srgb, var(--ink) 65%, transparent); }
.note{ font-size:.85rem; color:color-mix(in srgb, var(--ink) 58%, transparent); border-top:1px dashed color-mix(in srgb, var(--ink) 25%, transparent); padding-top:1.1rem; margin-top:1.6rem; }
footer{ background:var(--deep); color:var(--cream-dim); padding-block:3.6rem 2rem; }
.foot-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2.6rem; padding-bottom:2.2rem; border-bottom:1px solid color-mix(in srgb, var(--gold-dim) 25%, transparent); }
.foot-links{ display:block; }
@media (max-width:760px){
  footer{ padding-block:2rem 1.4rem; }
  .foot-grid{ grid-template-columns:1fr; text-align:center; gap:.6rem; padding-bottom:1.4rem; }
  .foot-links{ display:none; }
  footer .brand{ justify-content:center; margin-inline:auto; margin-bottom:.3rem !important; }
  footer .brand .mark-full{ height:60px; }
  footer p{ margin-inline:auto; margin-top:.5rem; font-size:.82rem !important; }
  footer ul{ justify-items:center; font-size:.82rem; gap:.4rem; }
  footer ul a{ font-size:.82rem; }
  .foot-bottom{ justify-content:center; text-align:center; font-size:.72rem; padding-top:1.1rem; gap:.4rem; }
}
footer h3{ color:var(--gold-light); font-size:.82rem; text-transform:uppercase; letter-spacing:.12em; margin-bottom:1.1rem; font-weight:600; }
footer .brand{ color:var(--cream); }
footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
footer button, footer a{ text-decoration:none; color:var(--cream-dim); font-size:.92rem; background:none; border:none; padding:0; cursor:pointer; font-family:var(--body); text-align:left; transition:color .2s ease; }
footer button:hover, footer a:hover{ color:var(--gold-light); }
.foot-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem; padding-top:1.6rem; font-size:.8rem; letter-spacing:.02em; color:color-mix(in srgb, var(--cream) 50%, transparent); }
@media (max-width:640px){
  body.compact-mobile{ zoom:0.85; }
}


.page-hero-photo{ position:relative; background:linear-gradient(160deg, rgba(42,78,59,.55), rgba(10,21,22,.88)), url(img/christbaumhof-lang-hof.jpg) center 40%/cover; }
.page-hero-standorte{ position:relative; background:linear-gradient(160deg, rgba(42,78,59,.55), rgba(10,21,22,.88)), url(img/christbaumhof-lang-verkaufsstand.jpg) center 15%/cover; }
.page-hero-kierling{ position:relative; background:linear-gradient(160deg, rgba(42,78,59,.55), rgba(10,21,22,.88)), url(img/christbaumstand-spar-kierling-klosterneuburg.jpg) center 40%/cover; }
.page-hero-woerdern{ position:relative; background:linear-gradient(160deg, rgba(42,78,59,.55), rgba(10,21,22,.88)), url(img/christbaumstand-adeg-st-andrae-woerdern.jpg) center 40%/cover; }
.page-hero-weissenkirchen{ position:relative; background:linear-gradient(160deg, rgba(42,78,59,.55), rgba(10,21,22,.88)), url(img/christbaumstand-weissenkirchen-wachau.jpg) center 40%/cover; }
.page-hero-kontakt{ position:relative; background:linear-gradient(160deg, rgba(42,78,59,.55), rgba(10,21,22,.88)), url(img/christbaumhof-lang-kontakt.jpg) center 40%/cover; }

.page-hero-preise{ position:relative; background:linear-gradient(160deg, rgba(42,78,59,.55), rgba(10,21,22,.88)), url(img/christbaumhof-lang-preise.jpg) center 45%/cover; }

.tree-list img.treephoto{ aspect-ratio:3/4; object-position:top; max-width:260px; }

.heimisch-photo-wrap{ max-width:220px; margin:2rem 0 0; }
@media (max-width:860px){ .heimisch-photo-wrap{ max-width:280px; margin-inline:auto; } }

@media (max-width:860px){
  .spotlight{ padding:1.3rem 1.1rem; }
  .spotlight .section-head{ margin-bottom:1.1rem; }
  .spotlight .card{ padding:1.1rem 1rem; }
  .spotlight .card h3{ font-size:1rem; }
  .spotlight .card p{ font-size:.82rem; line-height:1.4; }
}

.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* staggered reveal for grid/list items */
.grid3 > div:not(.in):nth-child(1), .tree-list > .tree:not(.in):nth-child(1), .gallery-grid > .galitem:not(.in):nth-child(1), .timeline .tl-item:not(.in):nth-child(1){ transition-delay:0s; }
.grid3 > div:not(.in):nth-child(2), .tree-list > .tree:not(.in):nth-child(2), .gallery-grid > .galitem:not(.in):nth-child(2), .timeline .tl-item:not(.in):nth-child(2){ transition-delay:.09s; }
.grid3 > div:not(.in):nth-child(3), .tree-list > .tree:not(.in):nth-child(3), .gallery-grid > .galitem:not(.in):nth-child(3), .timeline .tl-item:not(.in):nth-child(3){ transition-delay:.18s; }
.gallery-grid > .galitem:not(.in):nth-child(4), .timeline .tl-item:not(.in):nth-child(4){ transition-delay:.27s; }
.timeline .tl-item:not(.in):nth-child(5){ transition-delay:.36s; }

/* hero entrance on page load */
@keyframes rise{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }
.hero .wrap.hero-inner > *, .page-hero .wrap > *{ animation:rise .85s cubic-bezier(.2,.8,.2,1) both; }
.hero .wrap.hero-inner > *:nth-child(1), .page-hero .wrap > *:nth-child(1){ animation-delay:.05s; }
.hero .wrap.hero-inner > *:nth-child(2), .page-hero .wrap > *:nth-child(2){ animation-delay:.16s; }
.hero .wrap.hero-inner > *:nth-child(3), .page-hero .wrap > *:nth-child(3){ animation-delay:.28s; }
.hero .wrap.hero-inner > *:nth-child(4), .page-hero .wrap > *:nth-child(4){ animation-delay:.4s; }

@media (prefers-reduced-motion: reduce){
  .hero .wrap.hero-inner > *, .page-hero .wrap > *{ animation:none; }
}
