/* GR v2: dark, high-fashion, gothic. Loaded after style.css on every GR page (never on /ogec/).
   Palette from Guada: near-black, silver (ring + earrings), ice blue (her eye), plum (hair). */
body.brand-gr {
  --bg: #060608; --bg2: #0d0d11; --card: #0d0d11; --text: #ece9ef; --muted: #8f8c98; --line: #23232b;
  --accent: #a9d6ec; --on-accent: #050507; --silver: #c8cbd3; --plum: #4a1f46; --plum2: #2a1230;
  --display: "Bodoni Moda", "Cormorant Garamond", Georgia, serif;
  background: var(--bg);
  background-image: radial-gradient(1200px 600px at 85% -10%, rgba(74,31,70,.35), transparent 60%), radial-gradient(900px 500px at -10% 40%, rgba(40,60,80,.18), transparent 60%);
  background-attachment: fixed;
}
body.brand-gr ::selection { background: var(--accent); color: #050507; }
body.brand-gr h1, body.brand-gr h2, body.brand-gr h3 { font-family: var(--display); font-weight: 500; letter-spacing: -.005em; }
body.brand-gr h1 em, body.brand-gr h2 em { font-style: italic; color: var(--accent); }
body.brand-gr .eyebrow { color: var(--accent); letter-spacing: .34em; font-size: .7rem; }
body.brand-gr a { text-decoration-color: rgba(169,214,236,.45); }

/* header */
body.brand-gr .site-header { background: rgba(6,6,8,.72); backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%); border-bottom: 1px solid rgba(200,203,211,.10); transition: background .3s, border-color .3s; }
body.brand-gr .site-header.scrolled { background: rgba(6,6,8,.9); border-bottom-color: rgba(200,203,211,.18); }
body.brand-gr .logo img { height: 40px; opacity: .95; }
body.brand-gr .nav a { font-size: .7rem; letter-spacing: .2em; padding: 10px 9px; color: #d9d6de; }
body.brand-gr .nav a:hover, body.brand-gr .nav a[aria-current] { color: var(--accent); }
body.brand-gr .nav .sub { background: rgba(8,8,11,.97); border: 1px solid rgba(200,203,211,.16); box-shadow: 0 30px 60px rgba(0,0,0,.6); }
body.brand-gr .nav .mega { left: 50%; transform: translateX(-35%); min-width: 560px; padding: 26px 30px; grid-template-columns: repeat(3, 1fr); gap: 8px 34px; }
body.brand-gr .nav li:hover > .mega, body.brand-gr .nav li:focus-within > .mega { display: grid; }
body.brand-gr .nav .mega h4 { margin: 0 0 8px; font: 500 .62rem/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--accent); }
body.brand-gr .nav .mega a { padding: 7px 0; letter-spacing: .12em; text-transform: none; font-size: .86rem; color: #d9d6de; }
body.brand-gr .nav .mega a:hover { color: var(--accent); }
body.brand-gr .brand-switch { border-color: rgba(200,203,211,.4); }
body.brand-gr .brand-switch a[aria-current] { background: var(--silver); color: #050507; }
body.brand-gr .menu-btn { border-color: rgba(200,203,211,.3); }
@media (max-width: 1180px) {
  body.brand-gr .nav { background: rgba(6,6,8,.98); }
  body.brand-gr .nav .mega { position: static; transform: none; min-width: 0; display: block; border: 0; box-shadow: none; padding: 0 0 6px 14px; background: none; }
  body.brand-gr .nav .mega div { margin-bottom: 10px; }
  body.brand-gr .nav a { font-size: .74rem; }
}

/* buttons */
body.brand-gr .btn { border-color: rgba(200,203,211,.55); letter-spacing: .26em; font-size: .7rem; padding: 15px 34px; transition: background .25s, color .25s, border-color .25s, transform .25s; }
body.brand-gr .btn:hover { background: var(--silver); color: #050507; border-color: var(--silver); }
body.brand-gr .btn.solid { background: var(--accent); border-color: var(--accent); color: #050507; }
body.brand-gr .btn.solid:hover { background: #fff; border-color: #fff; filter: none; }

/* reveal on scroll */
.js body.brand-gr .rv { opacity: 0; transform: translateY(26px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
.js body.brand-gr .rv.in { opacity: 1; transform: none; }

/* home hero */
.gr-hero { position: relative; min-height: max(36.6vw, 560px); display: flex; align-items: center; overflow: hidden; isolation: isolate; }
.gr-hero-bg { position: absolute; inset: 0; z-index: -2; background: #050507 url(/assets/gr-hero.jpg) 70% center / cover no-repeat; }
.gr-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(6,6,8,.78) 0%, rgba(6,6,8,.38) 30%, rgba(6,6,8,0) 55%), linear-gradient(0deg, var(--bg) 0%, transparent 14%); }
@media (max-width: 700px) { .gr-hero { min-height: calc(100svh - var(--header-h)); } .gr-hero-bg { background-position: 88% center; } .gr-hero::before { background: linear-gradient(90deg, rgba(6,6,8,.7) 0%, rgba(6,6,8,.15) 70%), linear-gradient(0deg, var(--bg) 0%, transparent 25%); } }
.gr-hero .wrap { width: 100%; }
.gr-hero h1 { font-size: clamp(2.6rem, 5.6vw, 5.4rem); line-height: 1; max-width: 8.5em; margin: .22em 0 .28em; font-weight: 400; letter-spacing: -.02em; }
.gr-hero h1 em { font-weight: 400; }
.gr-hero .eyebrow { max-width: 38em; line-height: 2; }
.gr-sub { font-size: 1.05rem; color: #bdb9c6; max-width: 28em; margin: 0 0 34px; letter-spacing: .02em; }
.gr-hero .btn + .btn { margin-left: 10px; }
.scroll-cue { position: absolute; left: var(--pad); bottom: 26px; font-size: .62rem; letter-spacing: .4em; text-transform: uppercase; text-decoration: none; color: var(--muted); display: flex; align-items: center; gap: 14px; }
.scroll-cue::after { content: ""; width: 60px; height: 1px; background: linear-gradient(90deg, var(--accent), transparent); }

/* marquee */
.marquee { border-block: 1px solid var(--line); overflow: hidden; white-space: nowrap; padding: 20px 0; background: rgba(13,13,17,.6); }
.marquee-track { display: inline-flex; gap: 0; animation: marq 46s linear infinite; }
.marquee span { font: italic 400 clamp(1.3rem, 2.6vw, 2rem)/1 var(--display); color: #cfcbd6; padding: 0 28px; }
.marquee span::after { content: "\2726"; margin-left: 56px; font-style: normal; font-size: .7em; color: var(--accent); vertical-align: middle; }
@keyframes marq { to { transform: translateX(-50%); } }
.marquee:hover .marquee-track { animation-play-state: paused; }

/* generic section heads */
.sec-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(26px, 4vw, 50px); }
.sec-head h2 { font-size: clamp(2rem, 4.6vw, 3.6rem); margin: .1em 0 0; font-weight: 400; }
.sec-head .eyebrow { display: block; margin-bottom: 6px; }

/* selected work: tiles, scroll downwards */
.mosaic { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.mosaic a { position: relative; display: block; aspect-ratio: 3 / 4; overflow: hidden; background: var(--bg2); cursor: zoom-in; }
.mosaic img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform 1.2s cubic-bezier(.2,.7,.2,1), filter .5s; filter: brightness(.9) contrast(1.04); }
.mosaic a:hover img { transform: scale(1.04); filter: brightness(1.05); }
@media (max-width: 900px) { .mosaic { grid-template-columns: repeat(2, 1fr); gap: 10px; } .mosaic a:first-child { grid-column: 1 / -1; aspect-ratio: 4 / 5; } }

/* portfolio tiles */
.ptiles { display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px; }
.ptile { position: relative; grid-column: span 4; aspect-ratio: 4 / 5; overflow: hidden; text-decoration: none; color: #f5f2f8; background: var(--bg2); }
.ptile.wide { grid-column: span 6; aspect-ratio: 16 / 11; }
.ptile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .8; filter: grayscale(.55) contrast(1.1); transition: transform 1.1s cubic-bezier(.2,.7,.2,1), opacity .5s, filter .6s; }
.ptile:hover img { transform: scale(1.06); opacity: 1; filter: none; }
.ptile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5,5,7,.88) 0%, rgba(5,5,7,0) 58%); pointer-events: none; }
.ptile .no { position: absolute; z-index: 1; top: 16px; left: 20px; font: italic 400 1rem var(--display); color: var(--silver); letter-spacing: .1em; }
.ptile span.t { position: absolute; z-index: 1; left: 22px; right: 22px; bottom: 20px; font: 400 clamp(1.5rem, 2.4vw, 2.1rem)/1.05 var(--display); }
.ptile small { display: block; margin-top: 8px; font: 500 .62rem var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--accent); }
@media (max-width: 900px) { .ptile, .ptile.wide { grid-column: span 6; aspect-ratio: 4 / 5; } }
@media (max-width: 560px) { .ptile, .ptile.wide { grid-column: span 12; aspect-ratio: 5 / 4; } }
.group-label { font: 500 .66rem var(--sans); letter-spacing: .34em; text-transform: uppercase; color: var(--muted); margin: 46px 0 16px; display: flex; align-items: center; gap: 16px; }
.group-label::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.group-label:first-child { margin-top: 0; }

/* trend forecasting */
.trend { position: relative; overflow: hidden; border-block: 1px solid var(--line); background: radial-gradient(900px 500px at 15% 20%, rgba(74,31,70,.55), transparent 65%), radial-gradient(700px 400px at 100% 100%, rgba(120,170,200,.14), transparent 60%), #08080b; }
.trend .wrap { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(30px, 6vw, 90px); align-items: center; }
.trend h2 { font-size: clamp(2.2rem, 5.2vw, 4.4rem); font-weight: 400; line-height: 1.02; }
.trend blockquote { margin: 0; padding-left: 26px; border-left: 1px solid var(--accent); font: italic 400 clamp(1.25rem, 2vw, 1.7rem)/1.45 var(--display); color: #ddd9e4; }
.trend p { color: var(--muted); }
.trend .links { margin-top: 28px; display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 860px) { .trend .wrap { grid-template-columns: 1fr; } }

/* about teaser */
.about-split { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 6vw, 90px); align-items: center; }
.about-split img { width: 100%; max-width: 480px; filter: grayscale(.4) contrast(1.08); border: 1px solid rgba(200,203,211,.18); outline: 1px solid rgba(200,203,211,.12); outline-offset: 12px; }
.about-split h2 { font-size: clamp(2rem, 4.2vw, 3.3rem); font-weight: 400; }
@media (max-width: 800px) { .about-split { grid-template-columns: 1fr; } .about-split img { max-width: 320px; } }

/* journal list */
.journal { list-style: none; margin: 0; padding: 0; }
.journal li { border-top: 1px solid var(--line); }
.journal li:last-child { border-bottom: 1px solid var(--line); }
.journal a { display: grid; grid-template-columns: 170px 1fr 30px; gap: 24px; align-items: baseline; padding: 24px 4px; text-decoration: none; transition: padding .3s, background .3s; }
.journal a:hover { padding-left: 16px; background: rgba(169,214,236,.04); }
.journal time { font: 500 .66rem var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--muted); }
.journal h3 { margin: 0; font-size: clamp(1.25rem, 2.2vw, 1.75rem); font-weight: 400; }
.journal p { margin: 6px 0 0; color: var(--muted); font-size: .92rem; }
.journal .arr { color: var(--accent); font-size: 1.3rem; }
@media (max-width: 700px) { .journal a { grid-template-columns: 1fr 24px; } .journal time { grid-column: 1 / -1; } }

/* portfolio / gallery pages */
.pf-hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(80px, 14vw, 190px) 0 clamp(44px, 6vw, 80px); border-bottom: 1px solid var(--line); }
.pf-hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--hero) center 30% / cover no-repeat; filter: grayscale(.5) contrast(1.1) brightness(.55); transform: scale(1.06); }
.pf-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, var(--bg) 2%, rgba(6,6,8,.55) 55%, rgba(6,6,8,.85) 100%), radial-gradient(800px 400px at 12% 100%, rgba(74,31,70,.6), transparent 70%); }
.pf-hero h1 { font-size: clamp(2.8rem, 8.4vw, 7rem); font-weight: 400; line-height: .98; letter-spacing: -.02em; margin: .12em 0 .22em; }
.pf-hero p { max-width: 40em; color: #c3bfcb; font-size: 1.1rem; }
.pf-meta { display: flex; gap: 22px; flex-wrap: wrap; margin-top: 22px; font: 500 .66rem var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--accent); }
.pf-meta span + span::before { content: "/"; margin-right: 22px; color: var(--muted); }
.pf-body { counter-reset: proj; padding-bottom: 30px; }
body.brand-gr .crumbs { color: var(--muted); letter-spacing: .26em; font-size: .64rem; }
body.brand-gr .subnav { margin: 30px 0 10px; gap: 10px; }
body.brand-gr .subnav a { border-color: rgba(200,203,211,.22); letter-spacing: .24em; font-size: .64rem; padding: 10px 20px; border-radius: 999px; transition: .25s; }
body.brand-gr .subnav a[aria-current], body.brand-gr .subnav a:hover { background: var(--accent); border-color: var(--accent); color: #050507; }
body.brand-gr .project { margin: 0 0 clamp(54px, 8vw, 100px); }
body.brand-gr .project h2 { font-size: clamp(1.7rem, 3.4vw, 2.7rem); font-weight: 400; display: flex; align-items: baseline; gap: 18px; margin: 0 0 .15em; padding-top: 30px; border-top: 1px solid var(--line); }
body.brand-gr .project h2::before { counter-increment: proj; content: counter(proj, decimal-leading-zero); font: italic 400 1rem var(--display); color: var(--accent); letter-spacing: .1em; }
body.brand-gr .project .credits { color: var(--muted); font-size: .84rem; letter-spacing: .06em; padding-left: 0; margin: 4px 0 0; }
body.brand-gr .gallery { column-width: 290px; column-gap: 18px; margin-top: 26px; }
body.brand-gr .gallery a { margin: 0 0 18px; background: var(--bg2); overflow: hidden; cursor: zoom-in; }
body.brand-gr .gallery img { transition: transform 1s cubic-bezier(.2,.7,.2,1), filter .5s; filter: brightness(.88) contrast(1.04); }
body.brand-gr .gallery a:hover img { transform: scale(1.035); filter: brightness(1.06); }
body.brand-gr .gallery a.video::after { background: rgba(5,5,7,.35); color: var(--accent); }
body.brand-gr h3.eyebrow { font: 500 .66rem var(--sans); letter-spacing: .34em; color: var(--accent); margin: 70px 0 -24px; }
.pf-next { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 20px 0 70px; }
.pf-next a { border: 1px solid var(--line); padding: 28px 30px; text-decoration: none; background: var(--card); transition: border-color .3s, background .3s; }
.pf-next a:hover { border-color: var(--accent); background: rgba(169,214,236,.04); }
.pf-next small { display: block; font: 500 .62rem var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--accent); margin-bottom: 8px; }
.pf-next b { font: 400 clamp(1.4rem, 2.6vw, 2.1rem)/1.1 var(--display); }
.pf-next .nx { text-align: right; }
.v1-link { text-align: center; margin: 0 0 60px; color: var(--muted); font-size: .85rem; letter-spacing: .08em; }

/* inner pages */
body.brand-gr .page-head { padding: clamp(60px, 9vw, 130px) 0 14px; }
body.brand-gr .page-head h1 { font-size: clamp(2.6rem, 7vw, 5.6rem); font-weight: 400; letter-spacing: -.02em; line-height: 1; }
body.brand-gr .page-head p { color: #aaa6b3; }
body.brand-gr .card { background: transparent; border-top: 1px solid var(--line); padding-top: 14px; }
body.brand-gr .card h3 { font-family: var(--display); font-weight: 400; font-size: 1.5rem; }
body.brand-gr .card .meta { color: var(--accent); }
body.brand-gr .card .thumb { background: var(--bg2); }
body.brand-gr .section.alt { background: var(--bg2); border-block: 1px solid var(--line); }
body.brand-gr .tile img { filter: grayscale(.5); } body.brand-gr .tile:hover img { filter: none; }
body.brand-gr .tile small { color: var(--accent); }
body.brand-gr .tile span { font-family: var(--display); font-weight: 400; }
body.brand-gr .switch-banner { background: linear-gradient(120deg, rgba(74,31,70,.35), rgba(13,13,17,.9)); border-color: rgba(200,203,211,.18); }
body.brand-gr .prose a { color: var(--accent); }
body.brand-gr .teaser-note { background: var(--bg2); border-left-color: var(--accent); }
body.brand-gr .pager span { border-color: var(--accent); color: var(--accent); }
body.brand-gr form.contact input, body.brand-gr form.contact textarea { background: #0d0d11; border-color: var(--line); }
body.brand-gr .site-footer { background: #040405; border-top: 1px solid var(--line); padding-top: 64px; }
body.brand-gr .site-footer .big { font: italic 400 clamp(2rem, 6vw, 4.6rem)/1 var(--display); color: #e6e2ea; margin: 0 0 34px; }
body.brand-gr .site-footer .big em { color: var(--accent); }

/* missing-image placeholder, dark version (the tag still names the file to find) */
body.brand-gr figure.ph { background: #101015; }
body.brand-gr figure.ph img { filter: brightness(.28) saturate(.5); }
body.brand-gr .ph-tag { background: rgba(5,5,7,.85); color: var(--accent); border: 1px solid rgba(169,214,236,.4); font-size: 10px; }

/* lightbox */
body.brand-gr .lb { background: rgba(4,4,6,.97); }
body.brand-gr .lb-cap { font-family: var(--display); font-style: italic; font-size: 1rem; letter-spacing: .02em; }
@media (prefers-reduced-motion: reduce) { .gr-hero-bg, .marquee-track { animation: none !important; } .js body.brand-gr .rv { opacity: 1; transform: none; } }

/* restored blog: reader comments, captions, galleries inside posts */
body.brand-gr .comments { max-width: 720px; margin: 70px auto 0; padding-top: 30px; border-top: 1px solid var(--line); }
body.brand-gr .comments h2 { font-size: 1.7rem; margin-bottom: 8px; }
body.brand-gr .comments ol { list-style: none; margin: 0; padding: 0; }
body.brand-gr .comments .children { margin: 4px 0 0 clamp(10px, 3vw, 30px); padding-left: 18px; border-left: 1px solid var(--line); }
body.brand-gr .comment { padding: 20px 0 6px; border-top: 1px solid var(--line); }
body.brand-gr .comments > ol > .comment:first-child { border-top: 0; }
body.brand-gr .c-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; }
body.brand-gr .c-meta strong { font-weight: 500; letter-spacing: .02em; }
body.brand-gr .c-meta span { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
body.brand-gr .c-body p { margin: .5em 0 .9em; color: #cfccd6; font-size: .98rem; }
body.brand-gr .prose figure { margin: 1.8em auto; }
body.brand-gr .prose figcaption { text-align: center; color: var(--muted); font-size: .88rem; margin-top: 10px; }
body.brand-gr .prose .gallery { column-width: 210px; column-gap: 12px; margin: 1.8em 0; }
body.brand-gr .prose .gallery a { margin: 0 0 12px; }
body.brand-gr .prose img { margin: 1.2em auto; }
body.brand-gr .prose .gallery img { margin: 0; }
body.brand-gr .post-head + .prose { margin-top: 10px; }

/* Contact (GR): title and links on the left, the form beside them starting at the same height as the title */
body.brand-gr .contact-page { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(26px, 5vw, 70px); align-items: start; --cp-top: clamp(40px, 6vw, 80px); }
body.brand-gr .contact-page .page-head { padding-top: var(--cp-top); padding-bottom: 6px; }
body.brand-gr .contact-page .contact-links { margin-top: 0; }
body.brand-gr .contact-page form.contact { margin-top: calc(var(--cp-top) + var(--cp-align, 36px)); max-width: none; }
@media (max-width: 800px) {
  body.brand-gr .contact-page { grid-template-columns: 1fr; }
  body.brand-gr .contact-page form.contact { margin-top: 30px; }
}
