/*
Theme Name: FrameGFX Portfolio
Theme URI: https://framegfx.com
Author: FrameGFX
Description: A fast, editable portfolio theme for graphic, motion and 3D work.
Version: 1.0.0
Text Domain: framegfx
*/

:root { --ink:#17131c; --paper:#fff; --muted:#cec4cd; --glass:rgba(255,255,255,.075); --line:rgba(255,255,255,.18); --plum:#342331; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--ink); }
body { margin:0; color:var(--paper); background:#17131c; font-family:Arial,Helvetica,sans-serif; font-size:16px; }
.site-background { position:fixed; z-index:0; inset:0; background:radial-gradient(circle at 12% 10%, rgba(105,63,90,.4), transparent 34%),radial-gradient(circle at 88% 42%, rgba(87,45,75,.31), transparent 33%),linear-gradient(120deg,#241a24 0%,#161219 48%,#251722 100%); }
.site-background:after { content:""; position:absolute; inset:0; opacity:.28; background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px); background-size:52px 52px; }
a { color:inherit; text-decoration:none; }
.site-header { position:absolute; z-index:10; top:0; right:0; left:0; border-bottom:1px solid rgba(255,255,255,.13); }
.intro-overlay { position:fixed; z-index:30; inset:0; pointer-events:none; background:transparent; }
.intro-video { position:fixed; left:0; top:0; width:2px; height:2px; opacity:.001; pointer-events:none; }
.intro-canvas { position:fixed; left:50%; top:50%; width:min(90vw,78svh,1000px); height:auto; aspect-ratio:16/9; transform:translate(-50%,-50%); opacity:0; }
.intro-overlay.has-video .intro-canvas { opacity:1; }
.intro-fallback.logo-window { position:fixed; left:0; top:0; opacity:0; }
.logo-window { display:block; position:relative; width:92px; aspect-ratio:1824 / 728; overflow:hidden; }
.logo-window img { position:absolute; display:block; width:112.280702%; max-width:none; height:auto; left:-6.140351%; top:-90.659341%; }
.intro-overlay.is-finished { display:none; }
.header-inner { min-height:94px; display:grid; align-items:center; grid-template-columns:1fr 120px 1fr; gap:20px; padding:0 56px; }
.site-menu ul { list-style:none; display:flex; gap:30px; margin:0; padding:0; }
.site-menu a,.social-placeholder { color:rgba(255,255,255,.88); font-size:14px; transition:opacity .25s ease; }
.site-menu a:hover { opacity:.62; }
.brand { justify-self:center; display:grid; place-items:center; width:92px; height:38px; opacity:0; }
.intro-complete .brand { opacity:1; }
.social-placeholder { justify-self:end; letter-spacing:.08em; word-spacing:15px; }
.portfolio-content { position:relative; z-index:1; overflow:hidden; transition:opacity .9s cubic-bezier(.22,.61,.36,1); }
.intro-pending .portfolio-content { opacity:0; visibility:hidden; pointer-events:none; }
body.intro-pending,body.intro-revealing { overflow:hidden; }
.intro-revealing .portfolio-content,.intro-complete .portfolio-content { opacity:1; visibility:visible; }
.section-shell { max-width:1440px; margin:0 auto; padding-right:56px; padding-left:56px; }
.hero { min-height:800px; display:flex; position:relative; flex-direction:column; justify-content:flex-end; padding-top:150px; padding-bottom:66px; }
.hero:after { content:none; }
.eyebrow,.section-kicker { margin:0 0 23px; font-size:11px; letter-spacing:.14em; color:var(--muted); font-weight:700; }
.hero-title { max-width:820px; position:relative; z-index:1; margin:0; font-size:clamp(68px,9.1vw,142px); font-weight:400; line-height:.84; letter-spacing:-.075em; }
.hero-title em { font-family:Georgia,serif; font-weight:400; }
.hero-meta { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; margin-top:clamp(90px,16vh,170px); color:rgba(255,255,255,.88); font-size:14px; }
.hero-meta .wp-block-button__link { padding:0; background:none!important; font-size:14px; }
.arrow-link:after { content:"↘"; display:inline-block; margin-left:17px; transition:transform .25s ease; }
.arrow-link:hover:after { transform:translate(3px,3px); }
.showreel,.projects,.about,.contact { padding-top:110px; padding-bottom:110px; }
.section-title { margin:0 0 39px; font-size:clamp(45px,5.2vw,76px); font-weight:400; line-height:.92; letter-spacing:-.065em; }
.showreel-card,.project-card { position:relative; overflow:hidden; border:1px solid var(--line); border-radius:24px; background:var(--glass); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px); }
.showreel-card { aspect-ratio:16/9; display:flex; flex-direction:column; justify-content:flex-end; padding:36px; background:linear-gradient(135deg,rgba(255,255,255,.09),rgba(255,255,255,.035)),radial-gradient(circle at 70% 22%,rgba(185,128,177,.22),transparent 25%),var(--glass); transition:transform .35s ease,background .35s ease; }
.showreel-card:hover,.project-card:hover { transform:scale(1.012); }
.showreel-card:before { content:""; width:58px; height:58px; border:1px solid rgba(255,255,255,.65); border-radius:50%; margin:auto; background:linear-gradient(90deg,transparent 45%,#fff 47%,#fff 54%,transparent 56%); }
.showreel-card:after,.project-card:after { content:""; position:absolute; z-index:2; inset:-1px; pointer-events:none; opacity:0; background:radial-gradient(360px circle at var(--pointer-x,50%) var(--pointer-y,50%),rgba(255,255,255,.22),rgba(255,255,255,.06) 22%,transparent 55%); transition:opacity .28s ease; }
.showreel-card.is-hovered:after,.project-card.is-hovered:after { opacity:1; }
.showreel-card h3 { margin:12px 0 0; font-size:25px; font-weight:400; }
.showreel-card p { margin:9px 0 0; color:var(--muted); max-width:440px; }
.work-grid.wp-block-group > .wp-block-group__inner-container { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.work-grid .project-card:last-child { grid-column:1 / -1; }
.project-card { min-height:460px; display:flex; flex-direction:column; justify-content:flex-end; padding:26px; transition:transform .35s ease,background .35s ease; }
.project-card:before { content:""; position:absolute; z-index:0; inset:0; background:var(--card-art,linear-gradient(130deg,#705468,#211724)); opacity:.92; transition:transform .5s ease; }
.project-card:hover:before { transform:scale(1.04); }
.project-card:nth-child(1) { --card-art:radial-gradient(circle at 28% 32%,#e7c2d8 0 9%,transparent 9.5%),linear-gradient(135deg,#844c78,#251624); }
.project-card:nth-child(2) { --card-art:linear-gradient(115deg,#271d34 0 31%,#a96599 31% 51%,#edc6dd 51% 61%,#281a2b 61%); }
.project-card:nth-child(3) { min-height:530px; --card-art:radial-gradient(ellipse at 50% 50%,#c69ec4 0 16%,#643d63 17% 35%,#261827 36%); }
.project-card > * { position:relative; z-index:3; }
.project-card .wp-block-heading { margin:8px 0 0; font-size:34px; letter-spacing:-.05em; font-weight:400; }
.project-card p { margin:0; color:#fff; font-size:14px; }
.project-card .project-note { color:rgba(255,255,255,.76); margin-top:10px; }
.about.wp-block-group > .wp-block-group__inner-container { display:block!important; }
.about.wp-block-group { border-top:1px solid rgba(255,255,255,.16); }
.about .section-title { margin:0; }
.about-copy { max-width:600px; font-size:clamp(17px,1.5vw,20px); line-height:1.65; letter-spacing:0; color:var(--muted); margin-top:28px; }
.about-copy p { margin:0; }
.skills { display:flex; flex-wrap:wrap; gap:10px; margin-top:38px!important; }
.skills span { display:inline-flex; flex:none; align-items:center; white-space:nowrap; border:1px solid var(--line); border-radius:999px; padding:10px 14px; color:var(--muted); font-size:14px; line-height:1.3; letter-spacing:0; }
.contact { min-height:560px; display:flex; flex-direction:column; justify-content:flex-end; border-top:1px solid rgba(255,255,255,.16); }
.contact .section-title { max-width:800px; font-size:clamp(45px,5.2vw,76px); }
.home .section-kicker,.editor-styles-wrapper .section-kicker { font-size:12px; line-height:1.4; letter-spacing:.14em; font-weight:700; margin:0 0 23px; }
.contact p { color:var(--muted); font-size:18px; }
.site-footer { padding:30px 56px; display:flex; justify-content:space-between; color:var(--muted); font-size:13px; border-top:1px solid rgba(255,255,255,.13); }
@media (max-width:700px) { .header-inner { min-height:80px; grid-template-columns:1fr 62px 1fr; padding:0 24px; } .site-menu ul { gap:13px; } .site-menu li:last-child { display:none; } .site-menu a,.social-placeholder { font-size:11px; } .social-placeholder { font-size:0; } .social-placeholder:after { content:"IG · Bē"; font-size:11px; } .brand-mark { transform:translateY(-26px) scale(.62); } .section-shell { padding-right:24px; padding-left:24px; } .hero { min-height:680px; padding-top:120px; padding-bottom:34px; } .hero:after { right:-30%; top:24%; width:92vw; } .hero-title { font-size:clamp(60px,18vw,82px); } .hero-meta { margin-top:auto; gap:20px; align-items:flex-end; } .hero-meta p { max-width:120px; line-height:1.3; } .showreel,.projects { padding-top:65px; padding-bottom:65px; } .about.wp-block-group { padding-top:60px; padding-bottom:60px; } .about.wp-block-group > .wp-block-group__inner-container { grid-template-columns:1fr; gap:28px; } .contact { min-height:480px; padding-top:60px; padding-bottom:60px; } .showreel-card { padding:21px; } .showreel-card h3 { font-size:19px; } .work-grid.wp-block-group > .wp-block-group__inner-container { grid-template-columns:1fr; gap:20px; } .work-grid .project-card:last-child { grid-column:auto; } .project-card,.project-card:nth-child(3) { min-height:340px; padding:20px; } .project-card .wp-block-heading { font-size:29px; } .site-footer { padding:24px; display:block; line-height:1.8; } }

@media (max-width:700px) { .brand,.brand .logo-window { width:62px; } }
/* Floating glass navigation and shared contact icons. */
.site-header { position:fixed; top:0; border:0; background:linear-gradient(180deg,rgba(31,22,33,.64),rgba(31,22,33,.27)); backdrop-filter:blur(24px) saturate(145%); -webkit-backdrop-filter:blur(24px) saturate(145%); box-shadow:0 12px 36px rgba(0,0,0,.07); }
body.admin-bar .site-header { top:32px; }
.site-menu { position:relative; justify-self:start; }
.site-menu a { display:inline-block; padding:16px 0; transform-origin:center; transition:transform .25s cubic-bezier(.2,.8,.2,1.2),color .25s; }
.nav-dot { position:absolute; bottom:4px; left:0; width:5px; height:5px; border-radius:50%; background:#fff; box-shadow:0 0 12px rgba(255,255,255,.65); opacity:0; transform:translateX(-18px); transition:transform .5s cubic-bezier(.2,.85,.25,1.12),opacity .3s ease; pointer-events:none; }
.site-menu a[aria-current="location"] { color:#fff; }
.brand .logo-window { transition:transform .25s cubic-bezier(.2,.8,.2,1.2); }
.header-socials { justify-self:end; }
.framegfx-socials.wp-block-social-links { display:flex; flex-wrap:wrap; align-items:center; gap:18px; padding:0; margin:0; list-style:none; }
.framegfx-socials.wp-block-social-links .wp-social-link { margin:0; padding:0; color:#fff; background:transparent; transition:none; }
.framegfx-socials.wp-block-social-links .wp-social-link a { display:flex; align-items:center; justify-content:center; padding:8px; color:inherit; border-radius:50%; transition:transform .25s cubic-bezier(.2,.8,.2,1.2),background .25s; }
.framegfx-socials svg { width:20px; height:20px; fill:currentColor; }
.contact .framegfx-socials { margin-top:24px; gap:16px; }
.contact .framegfx-socials .wp-social-link a { width:54px; height:54px; background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.035)); border:1px solid rgba(255,255,255,.15); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 8px 24px rgba(0,0,0,.12); }
.contact p a { text-underline-offset:6px; }
.hero-meta .wp-block-buttons { position:absolute; left:50%; bottom:-6px; transform:translateX(-50%); margin:0; }
.hero-meta .arrow-link .wp-block-button__link { display:grid; place-items:center; width:62px; height:62px; padding:0; border-radius:50%; font-size:0; background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.035))!important; border:1px solid rgba(255,255,255,.23); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 30px rgba(0,0,0,.15); transition:transform .25s ease,box-shadow .25s ease; }
.hero-meta .arrow-link:after { content:none; }
.hero-meta .arrow-link .wp-block-button__link:before { content:""; width:24px; height:24px; background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4v16M5 13l7 7 7-7' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4v16M5 13l7 7 7-7' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }
section[id] { scroll-margin-top:110px; }
#home { scroll-margin-top:0; }
@media (hover:hover) { .site-menu a:hover { opacity:1; transform:scale(1.08); } .brand:hover .logo-window { transform:scale(1.09); } .framegfx-socials.wp-block-social-links .wp-social-link:hover { transform:none; } .framegfx-socials.wp-block-social-links .wp-social-link a:hover { transform:scale(1.13); background:rgba(255,255,255,.1); } .hero-meta .arrow-link .wp-block-button__link:hover { transform:translateY(4px) scale(1.06); box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 14px 34px rgba(0,0,0,.22); } }
.site-header a:focus-visible,.contact a:focus-visible,.hero-meta a:focus-visible { outline:2px solid #fff; outline-offset:5px; }
@media (max-width:1000px) { .header-inner { padding:0 24px; gap:16px; grid-template-columns:1fr 92px 1fr; } .site-menu ul { gap:20px; } .framegfx-socials.wp-block-social-links { gap:6px; } }
@media (max-width:700px) { .header-inner { grid-template-columns:1fr 62px 1fr; min-height:100px; padding:12px 18px 10px; gap:6px 10px; } .brand { grid-column:2; grid-row:1; } .header-socials { grid-column:3; grid-row:1; } .site-menu { grid-column:1 / -1; grid-row:2; justify-self:center; } .site-menu ul { gap:28px; } .site-menu li:last-child { display:list-item; } .site-menu a { font-size:12px; padding:9px 0; } .nav-dot { bottom:0; } .header-socials .framegfx-socials { gap:1px; flex-wrap:nowrap; } .header-socials .wp-social-link a { padding:5px; } .header-socials svg { width:16px; height:16px; } .hero-meta { padding-bottom:88px; } .hero-meta .wp-block-buttons { bottom:0; } .hero-meta .arrow-link .wp-block-button__link { width:56px; height:56px; } section[id] { scroll-margin-top:115px; } }
@media (max-width:782px) { body.admin-bar .site-header { top:46px; } }
@media (prefers-reduced-motion:reduce) { .nav-dot,.site-menu a,.brand .logo-window,.framegfx-socials .wp-social-link a { transition:none!important; } }
/* Fade only the lower caption area, leaving the artwork above unobscured. */
.card-caption-shade { position:absolute!important; z-index:1!important; bottom:0; left:0; right:0; height:var(--caption-shade-height,170px); max-height:48%; pointer-events:none; background:linear-gradient(to bottom,transparent,rgba(12,8,17,.22) 38%,rgba(12,8,17,.66)); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); -webkit-mask-image:linear-gradient(to bottom,transparent,#000 60%); mask-image:linear-gradient(to bottom,transparent,#000 60%); }
.showreel-card h3,.showreel-card p { position:relative; z-index:3; }
.showreel-card h3,.project-card .wp-block-heading { text-shadow:0 2px 12px rgba(0,0,0,.28); }
.framegfx-contact-form { display:grid; gap:12px; max-width:740px; margin:6px 0 12px; }
.framegfx-contact-form label { font-size:13px; color:rgba(255,255,255,.8); }
.framegfx-contact-form input[type=email],.framegfx-contact-form textarea { width:100%; border:1px solid rgba(255,255,255,.19); border-radius:16px; background:linear-gradient(130deg,rgba(255,255,255,.085),rgba(255,255,255,.03)); color:#fff; padding:17px 20px; font:inherit; font-size:16px; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); box-shadow:inset 0 1px 0 rgba(255,255,255,.065); outline:none; transition:border-color .2s,box-shadow .2s; }
.framegfx-contact-form textarea { min-height:150px; resize:vertical; margin-bottom:8px; }
.framegfx-contact-form input::placeholder,.framegfx-contact-form textarea::placeholder { color:rgba(255,255,255,.4); }
.framegfx-contact-form input:focus,.framegfx-contact-form textarea:focus { border-color:rgba(255,255,255,.6); box-shadow:0 0 0 3px rgba(255,255,255,.07); }
.framegfx-contact-form label[for=contact-message] { margin-top:10px; }
.contact-actions { display:flex; align-items:center; gap:22px; }
.contact-actions button { flex-shrink:0; border:1px solid rgba(255,255,255,.24); border-radius:999px; padding:15px 22px; background:linear-gradient(130deg,rgba(255,255,255,.16),rgba(255,255,255,.05)); color:#fff; font:inherit; font-size:14px; cursor:pointer; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); transition:transform .2s,background .2s; }
.contact-actions button span { margin-left:18px; }
.contact-actions button:hover:not(:disabled) { transform:translateY(-2px); background:rgba(255,255,255,.18); }
.contact-actions button:disabled { opacity:.6; cursor:wait; }
.contact-actions button:focus-visible { outline:2px solid white; outline-offset:4px; }
.contact .contact-status { margin:0; font-size:13px; line-height:1.5; }
.contact-status[data-error=true] { color:#ffc5ce; }
.contact-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media(max-width:700px) { .contact-actions { align-items:flex-start; flex-direction:column; gap:12px; } }
/* Final spacing: a full first viewport and uninterrupted section transitions. */
.about.wp-block-group,.contact,.projects,.site-footer { border-top:0; border-bottom:0; }
.site-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.site-footer > span { flex:0 0 auto; white-space:nowrap; }
.contact .framegfx-socials { margin-top:34px; }
.hero { min-height:100vh; min-height:100svh; justify-content:center; padding-top:150px; padding-bottom:150px; }
.hero-meta { position:static; margin-top:0; padding-bottom:0; }
.hero-meta .wp-block-buttons { position:absolute; bottom:32px; left:50%; }
.showreel { padding-top:72px; }
@media(max-width:700px) { .hero { padding-top:140px; padding-bottom:140px; } .hero-meta .wp-block-buttons { bottom:max(24px,env(safe-area-inset-bottom)); } .showreel { padding-top:56px; } .contact .framegfx-socials { margin-top:30px; } }
/* Editable landing composition and a compact, masked client gallery. */
html { scroll-behavior:auto; }
.hero { padding-top:140px; padding-bottom:250px; }
.hero-layout,.hero-layout>.wp-block-group__inner-container { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:clamp(28px,5vw,80px); align-items:center; width:100%; }
.hero-layout:has(>.wp-block-group__inner-container) { display:block; }
.hero-copy,.hero-reel { min-width:0; }
.hero-layout .hero-title { font-size:clamp(58px,6.4vw,100px); }
.hero-layout .eyebrow { font-size:10px; letter-spacing:.12em; }
.hero-reel .section-title { font-size:20px; letter-spacing:-.035em; margin:0 0 16px; width:100%; text-align:center; }
.hero-reel .showreel-card { width:100%; min-height:240px; padding:24px; }
.hero-reel .showreel-card h3 { font-size:20px; }
.hero-reel .showreel-card p { font-size:12px; line-height:1.5; }
.hero-reel .showreel-card .section-kicker { font-size:12px; }
.clients-strip { position:absolute; width:min(72%,900px); bottom:126px; left:50%; transform:translateX(-50%); text-align:center; }
.clients-label { margin:0 0 18px; font-size:11px; font-weight:400; letter-spacing:.14em; color:rgba(255,255,255,.58); }
.clients-window { overflow:hidden; min-height:44px; width:100%; -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); }
.clients-track { display:flex; width:max-content; align-items:center; }
.client-logos.wp-block-gallery { display:flex!important; flex-wrap:nowrap!important; align-items:center; gap:var(--client-gap,48px)!important; width:max-content; margin:0!important; padding:0 var(--client-gap,48px) 0 0; }
.client-logos.wp-block-gallery figure.wp-block-image { flex:none!important; width:120px!important; height:44px; margin:0!important; display:flex; align-items:center; justify-content:center; }
.client-logos.wp-block-gallery figure.wp-block-image img { width:auto!important; height:auto!important; max-width:120px!important; max-height:38px!important; object-fit:contain!important; flex:none!important; opacity:.78; }
.client-logos figcaption { display:none; }
.clients-strip.is-static .clients-track { width:100%; justify-content:center; }
.clients-strip.is-static .client-logos { padding:0; justify-content:center; }
.clients-strip.is-empty .clients-window { min-height:32px; }
.clients-strip.is-empty { opacity:.55; }
@media(max-width:1000px) and (min-width:701px) { .hero-layout,.hero-layout>.wp-block-group__inner-container { gap:24px; grid-template-columns:1fr 1fr; } .hero-layout .hero-title { font-size:clamp(46px,7.4vw,74px); } .hero-reel .showreel-card { padding:18px; min-height:250px; } .hero-layout .eyebrow { font-size:8px; letter-spacing:.07em; } }
@media(max-width:700px) { .hero { padding-top:140px; padding-bottom:220px; } .hero-layout,.hero-layout>.wp-block-group__inner-container { grid-template-columns:1fr; gap:32px; } .hero-layout .hero-title { font-size:clamp(58px,16vw,84px); } .hero-reel .showreel-card { min-height:200px; } .hero-reel .section-title { font-size:17px; margin-bottom:12px; } .clients-strip { width:calc(100% - 48px); bottom:116px; } .client-logos.wp-block-gallery figure.wp-block-image { width:88px!important; } .client-logos.wp-block-gallery figure.wp-block-image img { max-width:88px!important; max-height:30px!important; } }
.editor-styles-wrapper .clients-strip { position:relative; width:100%; bottom:auto; left:auto; transform:none; margin-top:32px; opacity:1; }
.editor-styles-wrapper .client-logos.wp-block-gallery { width:100%; flex-wrap:wrap!important; min-height:80px; }
.editor-styles-wrapper .hero { min-height:0; padding:40px 24px; }
@media(prefers-reduced-motion:reduce) { .clients-window { overflow:visible; mask-image:none; -webkit-mask-image:none; } .clients-strip .clients-track { width:100%; } .clients-strip .client-logos.wp-block-gallery { flex-wrap:wrap!important; justify-content:center; width:100%; padding:0; } }
.clients-strip.is-static .client-logos.wp-block-gallery figure.wp-block-image { width:min(120px,18vw)!important; }
.clients-strip.is-static .client-logos.wp-block-gallery figure.wp-block-image img { max-width:100%!important; }

/* The landing arrow is deliberately compact and only present at the page origin. */
.hero-meta .wp-block-buttons { opacity:1; visibility:visible; transition:opacity .28s ease,transform .34s cubic-bezier(.2,.8,.2,1); }
.hero-meta .arrow-link .wp-block-button__link { width:54px; height:54px; }
.hero-meta .arrow-link .wp-block-button__link:before { width:21px; height:21px; }
.hero-meta .wp-block-buttons.is-scroll-hidden { opacity:0; visibility:hidden; pointer-events:none; transform:translateX(-50%) translateY(12px) scale(.9); }
@media(max-width:700px){.header-inner{grid-template-columns:62px minmax(0,1fr)}.header-inner .brand{grid-column:1;grid-row:1;justify-self:start}.header-inner .header-socials{grid-column:2;grid-row:1;justify-self:end}}
@media(max-width:700px) { .hero-meta .arrow-link .wp-block-button__link { width:48px; height:48px; } .hero-meta .arrow-link .wp-block-button__link:before { width:19px; height:19px; } }

/* Portrait reel: preserve the complete frame within the landing layout. */
.hero-reel:has(video){justify-self:center;width:min(100%,250px)}
.hero-reel .showreel-card:has(video){padding:8px;min-height:0;border-radius:24px;aspect-ratio:auto;display:block}
.hero-reel .showreel-card .wp-block-video{margin:0}
.hero-reel .showreel-card video{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:contain;border-radius:17px}
.hero-reel .showreel-card:has(video) .card-caption-shade{display:none}
@media(max-width:700px){.hero-reel:has(video){width:min(100%,210px)}}

.hero-reel .showreel-card:has(video):before{display:none}
.contact-privacy{font-size:12px!important;line-height:1.6!important;color:#bdb5c3!important;margin-top:18px!important}.contact-privacy a{text-decoration:underline;text-underline-offset:3px}.framegfx-contact-form .cf-turnstile{margin:8px 0 18px;max-width:100%}.privacy-policy main article{max-width:850px;margin-inline:auto}.privacy-policy main h2{font-size:26px;font-weight:400;margin:36px 0 14px}.privacy-policy main p{font-size:16px;line-height:1.75;color:#d8d2dc}.privacy-policy main a{text-decoration:underline;text-underline-offset:3px}
