@font-face {
	font-family: "WF Space";
	src: url("../fonts/SpaceGrotesk-Variable.ttf") format("truetype");
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
}

:root {
	--ink: #080808;
	--panel: #111111;
	--soft: #171717;
	--paper: #f4f1ea;
	--muted: #a9a7a1;
	--red: #f0182b;
	--gold: #ffcc35;
	--line: rgba(255,255,255,.13);
	--shell: min(1320px, calc(100vw - 64px));
	--ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--paper); font-family: "WF Space", "Helvetica Neue", Arial, sans-serif; font-size: 16px; line-height: 1.55; overflow-x: hidden; }
body.admin-bar .site-header { top: 32px; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.shell { width: var(--shell); margin-inline: auto; }
.screen-reader-text, .skip-link { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.skip-link:focus { width: auto; height: auto; clip: auto; z-index: 10000; background: white; color: black; padding: 12px; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; padding: 24px 0; transition: .35s ease; }
.site-header.is-scrolled { padding: 13px 0; background: rgba(8,8,8,.76); backdrop-filter: blur(18px); border-bottom: 1px solid var(--line); }
.site-header__inner { width: var(--shell); margin: auto; display: flex; align-items: center; justify-content: space-between; }
.brand { display: flex; align-items: baseline; gap: 9px; z-index: 2; }
.brand__mark { font-weight: 900; font-size: 25px; letter-spacing: -2px; }
.brand__mark span, .footer-brand span { color: var(--red); }
.brand__name { font-size: 10px; text-transform: uppercase; letter-spacing: .24em; font-weight: 700; }
.custom-logo { width: auto; max-height: 48px; max-width: 240px; display: block; }
.custom-logo-link { display: flex; }
.site-nav__list { display: flex; align-items: center; list-style: none; gap: clamp(24px, 3vw, 50px); margin: 0; padding: 0; }
.site-nav a { font-size: 13px; font-weight: 650; letter-spacing: .03em; position: relative; }
.site-nav a::after { content: ""; position: absolute; left: 0; bottom: -8px; width: 0; height: 2px; background: linear-gradient(90deg,var(--red),var(--gold)); transition: width .3s; }
.site-nav a:hover::after, .site-nav a:focus::after { width: 100%; }
.nav-toggle { display: none; border: 0; background: none; padding: 8px; z-index: 2; }

.hero { min-height: 100svh; display: flex; align-items: center; position: relative; overflow: hidden; isolation: isolate; background: radial-gradient(circle at 75% 50%, #25201a 0, #111 27%, #080808 62%); }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,8,8,.92) 0%,rgba(8,8,8,.5) 54%,rgba(8,8,8,.1)); z-index:-1; }
.hero__grid { position:absolute; inset:0; z-index:-2; opacity:.22; background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px); background-size:75px 75px; transform:perspective(500px) rotateX(62deg) scale(1.4) translateY(24%); transform-origin:bottom; }
.hero__orb { position:absolute; width:min(54vw,760px); aspect-ratio:1; right:-8%; top:12%; border-radius:50%; z-index:-2; transform:translateY(var(--parallax-y,0)); background:radial-gradient(circle at 34% 35%,#4e4a42 0,#211f1c 23%,#0d0d0d 64%); box-shadow:inset -40px -20px 100px #000,0 0 120px rgba(255,204,53,.08); }
.hero__orb::before { content:""; position:absolute; inset:-2px; border-radius:inherit; border:1px solid rgba(255,204,53,.22); filter:drop-shadow(0 0 8px var(--gold)); }
.hero__beam { position:absolute; z-index:-1; height:2px; width:70vw; transform:rotate(-32deg); filter:blur(.3px); opacity:.7; }
.hero__beam--red { right:-17%; top:43%; background:linear-gradient(90deg,transparent,var(--red),transparent); box-shadow:0 0 22px var(--red); }
.hero__beam--gold { right:-28%; top:60%; background:linear-gradient(90deg,transparent,var(--gold),transparent); box-shadow:0 0 18px var(--gold); }
.hero__content { padding-top:80px; }
.eyebrow { text-transform:uppercase; font-size:11px; letter-spacing:.25em; font-weight:750; color:#cbc9c3; margin:0 0 25px; }
.eyebrow span { width:52px; height:1px; background:var(--red); display:inline-block; vertical-align:middle; margin:0 13px; }
.hero h1 { font-size:clamp(58px,8.8vw,138px); line-height:.88; letter-spacing:-.067em; max-width:970px; margin:0; text-wrap:balance; }
.hero__lead { font-size:clamp(17px,1.5vw,23px); color:#d1cfc9; margin:32px 0 44px; }
.hero__actions { display:flex; gap:32px; align-items:center; }
.button { min-height:56px; display:inline-flex; align-items:center; justify-content:space-between; gap:28px; padding:0 23px; font-size:12px; letter-spacing:.08em; font-weight:800; text-transform:uppercase; border:1px solid rgba(255,255,255,.18); transition:.3s var(--ease); }
.button--primary { color:#080808; background:linear-gradient(110deg,var(--gold),#fff0a1); border-color:transparent; box-shadow:0 0 0 rgba(255,204,53,0); }
.button--primary:hover { transform:translateY(-3px); box-shadow:0 15px 45px rgba(255,204,53,.2); }
.text-link { font-size:12px; text-transform:uppercase; letter-spacing:.08em; font-weight:750; }
.text-link span { color:var(--red); margin-left:12px; }
.hero__index { position:absolute; right:4%; bottom:36px; display:flex; gap:8px; color:#777; font-size:11px; letter-spacing:.18em; }
.hero__index span:first-child { color:var(--paper); }
.scroll-cue { position:absolute; left:50%; bottom:26px; transform:translateX(-50%); text-transform:uppercase; letter-spacing:.2em; font-size:9px; color:#888; }
.scroll-cue span { display:block; height:36px; width:1px; background:linear-gradient(var(--red),transparent); margin:0 auto 9px; animation:scrollCue 1.8s infinite; }
@keyframes scrollCue { 0%{transform:scaleY(0);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} 51%{transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} }

.statement { padding:clamp(130px,18vw,260px) 0; background:var(--paper); color:var(--ink); position:relative; overflow:hidden; }
.statement::after { content:"W&F"; position:absolute; font-size:36vw; font-weight:900; color:rgba(0,0,0,.025); right:-5vw; bottom:-20vw; line-height:1; letter-spacing:-.1em; }
.statement__line { font-size:clamp(44px,7.2vw,108px); letter-spacing:-.06em; line-height:.95; margin:0; position:relative; z-index:1; }
.statement__line--accent { color:var(--red); margin-left:8vw; }
.statement__copy { max-width:650px; margin:65px 0 0 auto; font-size:clamp(18px,1.7vw,25px); position:relative; z-index:1; }

.services { padding:145px 0 100px; background:#0a0a0a; }
.services__intro h2, .section-heading h2 { font-size:clamp(45px,6vw,88px); letter-spacing:-.055em; line-height:.95; margin:0; }
.service-scene { width:var(--shell); margin:130px auto 220px; min-height:75vh; display:grid; grid-template-columns:1.12fr .88fr; align-items:center; gap:7vw; position:relative; }
.service-scene:nth-of-type(even) .service-scene__visual { order:2; }
.service-scene__visual { transform:translateY(var(--parallax-y,0)); }
.service-scene__content { position:relative; }
.service-scene__number { position:absolute; right:0; top:-45px; font-size:11px; letter-spacing:.15em; color:#777; }
.service-scene h3 { font-size:clamp(42px,5vw,72px); line-height:.96; letter-spacing:-.055em; margin:0 0 30px; }
.service-scene__content>p:not(.eyebrow) { color:#aaa; font-size:18px; max-width:550px; }
.service-scene ul { list-style:none; padding:20px 0 0; margin:35px 0 0; border-top:1px solid var(--line); }
.service-scene li { padding:9px 0; font-size:13px; letter-spacing:.04em; }
.service-scene li::before { content:"↗"; color:var(--gold); margin-right:13px; }
.visual { min-height:620px; background:#151515; position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:34px; box-shadow:0 40px 100px rgba(0,0,0,.45); }
.visual b { position:relative; z-index:3; font-size:12px; text-transform:uppercase; letter-spacing:.17em; }
.visual--strategy { background:radial-gradient(circle at 50% 45%,#382f1c,#121212 46%); }
.visual__ring { position:absolute; width:70%; aspect-ratio:1; border:1px solid rgba(255,204,53,.6); border-radius:50%; left:15%; top:12%; box-shadow:0 0 45px rgba(255,204,53,.12),inset 0 0 45px rgba(255,204,53,.08); }
.visual__ring::before,.visual__ring::after { content:""; position:absolute; border:1px solid rgba(255,255,255,.15); border-radius:50%; inset:14%; }
.visual__ring::after { inset:35%; background:var(--red); box-shadow:0 0 45px var(--red); border:0; }
.visual__pulse { position:absolute; inset:0; background:repeating-linear-gradient(90deg,transparent 0,transparent 60px,rgba(255,255,255,.035) 61px); }
.visual--camera { background:linear-gradient(145deg,#202020,#090909); }
.camera-lens { position:absolute; width:58%; aspect-ratio:1; border-radius:50%; left:21%; top:15%; background:radial-gradient(circle,#030303 0 13%,#281014 14% 20%,#080808 21% 36%,#292929 37% 41%,#090909 42%); box-shadow:0 0 0 2px #444,0 0 80px rgba(240,24,43,.18); }
.scan-line { position:absolute; inset:0; background:linear-gradient(transparent 48%,rgba(240,24,43,.5) 50%,transparent 52%); animation:scan 4s infinite linear; }
@keyframes scan { from{transform:translateY(-50%)} to{transform:translateY(50%)} }
.visual--event { background:radial-gradient(ellipse at bottom,#52101b 0,#170d10 36%,#090909 75%); }
.visual--event>span { position:absolute; top:-10%; width:2px; height:75%; background:linear-gradient(var(--gold),transparent); box-shadow:0 0 18px var(--gold); transform-origin:top; }
.visual--event>span:nth-child(1){left:23%;transform:rotate(21deg)} .visual--event>span:nth-child(2){left:50%;transform:rotate(-8deg);background:linear-gradient(var(--red),transparent);box-shadow:0 0 18px var(--red)} .visual--event>span:nth-child(3){right:18%;transform:rotate(-26deg)}

.capabilities { padding:160px 0 190px; background:var(--paper); color:var(--ink); }
.capabilities .eyebrow { color:#666; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:80px; }
.section-heading>p { max-width:270px; color:#676767; font-size:13px; }
.flip-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.flip-card { height:300px; padding:0; border:0; background:transparent; perspective:1000px; cursor:pointer; text-align:left; color:inherit; }
.flip-card__inner { display:block; width:100%; height:100%; position:relative; transform-style:preserve-3d; transition:transform .75s var(--ease); }
.flip-card:hover .flip-card__inner, .flip-card:focus .flip-card__inner, .flip-card.is-flipped .flip-card__inner { transform:rotateY(180deg); }
.flip-card__face { position:absolute; inset:0; padding:24px; backface-visibility:hidden; display:flex; flex-direction:column; border:1px solid #d5d1c8; background:#ebe7df; }
.flip-card__face small { font-size:10px; letter-spacing:.14em; color:#777; }
.flip-card__face strong { margin-top:auto; max-width:90%; font-size:clamp(19px,1.8vw,28px); line-height:1; letter-spacing:-.04em; }
.flip-card__face i { position:absolute; right:22px; top:18px; color:var(--red); font-style:normal; }
.flip-card__back { transform:rotateY(180deg); background:#111; color:var(--paper); border-color:#111; }
.flip-card__back strong { margin:30px 0 15px; color:var(--gold); }
.flip-card__back span { font-size:13px; color:#bbb; margin-top:auto; }
.marquee { overflow:hidden; padding:35px 0; border-block:1px solid var(--line); background:#0d0d0d; }
.marquee__track { width:max-content; animation:marquee 22s linear infinite; }
.marquee span { white-space:nowrap; font-size:clamp(35px,5vw,72px); font-weight:850; letter-spacing:-.03em; }
.marquee i { color:var(--red); padding:0 22px; font-style:normal; }
@keyframes marquee { to { transform:translateX(-50%); } }

.contact { min-height:92vh; display:flex; align-items:center; position:relative; overflow:hidden; background:radial-gradient(circle at 85% 75%,#3e0b13,transparent 34%),#090909; }
.contact__flare { position:absolute; width:70vw; height:2px; right:-20vw; top:55%; transform:rotate(-30deg); background:linear-gradient(90deg,transparent,var(--red),var(--gold),transparent); box-shadow:0 0 45px var(--red); }
.contact__inner { padding:130px 0 70px; position:relative; z-index:1; }
.contact h2 { font-size:clamp(50px,8vw,118px); line-height:.88; letter-spacing:-.065em; margin:0; }
.contact h2 em { font-style:normal; color:var(--gold); }
.contact__bottom { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-top:70px; padding-top:35px; border-top:1px solid var(--line); }
.contact__bottom p { max-width:570px; font-size:18px; color:#b5b3ad; }
.button--large { min-width:270px; }
.contact__meta { display:flex; flex-wrap:wrap; gap:25px 45px; margin-top:70px; font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:#858585; }
.site-footer { position:relative; background:#050505; border-top:1px solid var(--line); overflow:hidden; }
.site-footer__inner { padding:55px 0 35px; display:grid; grid-template-columns:1fr auto; gap:35px; align-items:start; }
.footer-brand { font-size:23px; font-weight:900; letter-spacing:-.04em; }
.footer-brand small { font-size:9px; letter-spacing:.18em; text-transform:uppercase; margin-left:8px; }
.site-footer p { font-size:12px; color:#777; }
.site-footer nav { display:flex; gap:28px; font-size:12px; }
.copyright { grid-column:1/-1; border-top:1px solid var(--line); padding-top:25px; margin:15px 0 0; }
.standard-page { padding:170px 0 100px; min-height:70vh; }
.standard-page h1 { font-size:clamp(45px,7vw,90px); letter-spacing:-.06em; }
.entry-content { max-width:820px; color:#ccc; }

[data-reveal], [data-word-reveal] { opacity:0; transform:translateY(35px); transition:opacity .85s var(--ease),transform .85s var(--ease); }
[data-word-reveal] { transform:translateY(60px); }
[data-reveal].is-visible, [data-word-reveal].is-visible { opacity:1; transform:none; }

@media (max-width: 900px) {
	:root { --shell:min(100% - 38px, 700px); }
	body.admin-bar .site-header { top:46px; }
	.nav-toggle { display:block; color:white; }
	.nav-toggle span:not(.screen-reader-text) { display:block; width:24px; height:1px; background:currentColor; margin:5px; }
	.site-nav { position:fixed; inset:0; background:#090909; display:grid; place-items:center; visibility:hidden; opacity:0; transition:.3s; }
	.site-nav.is-open { visibility:visible; opacity:1; }
	.site-nav__list { flex-direction:column; font-size:30px; }
	.site-nav a { font-size:28px; }
	.hero__orb { width:90vw; right:-45%; opacity:.75; }
	.hero__index { display:none; }
	.scroll-cue { left:auto; right:20px; transform:none; }
	.statement__line--accent { margin-left:0; }
	.service-scene { grid-template-columns:1fr; margin:100px auto 160px; gap:45px; }
	.service-scene:nth-of-type(even) .service-scene__visual { order:0; }
	.visual { min-height:480px; }
	.flip-grid { grid-template-columns:repeat(2,1fr); }
	.section-heading, .contact__bottom { align-items:flex-start; flex-direction:column; }
}

@media (max-width: 540px) {
	:root { --shell:calc(100% - 30px); }
	.hero h1 { font-size:55px; }
	.hero__actions { align-items:flex-start; flex-direction:column; }
	.statement { padding:110px 0; }
	.services { padding-top:100px; }
	.services__intro h2 { font-size:44px; }
	.visual { min-height:380px; }
	.service-scene h3 { font-size:42px; }
	.flip-grid { grid-template-columns:1fr; }
	.flip-card { height:240px; }
	.contact h2 { font-size:52px; }
	.contact__meta { flex-direction:column; }
	.site-footer__inner { grid-template-columns:1fr; }
	.copyright { grid-column:auto; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior:auto; }
	*,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
	[data-reveal],[data-word-reveal] { opacity:1; transform:none; }
}

/* Version 0.2 - cinematic interaction layer */
.ambient-canvas { position:absolute; inset:0; width:100%; height:100%; z-index:-1; opacity:.6; mix-blend-mode:screen; }
.hero .ambient-canvas { mask-image:linear-gradient(90deg,transparent 0,#000 35%,#000 100%); }
.hero__grid { animation:gridDrift 18s linear infinite; }
@keyframes gridDrift { 50%{ transform:perspective(500px) rotateX(62deg) scale(1.45) translate3d(2%,27%,0); } }
.hero__orb { animation:orbBreath 7s ease-in-out infinite alternate; }
@keyframes orbBreath { to{ box-shadow:inset -20px -10px 120px #000,0 0 180px rgba(255,204,53,.15); filter:brightness(1.18); } }
.hero__beam--red { animation:beamSweep 5s ease-in-out infinite alternate; }
.hero__beam--gold { animation:beamSweep 7s 1s ease-in-out infinite alternate-reverse; }
@keyframes beamSweep { to{ transform:rotate(-27deg) translateY(90px) scaleX(1.2); opacity:1; } }

.service-scene::before { content:""; position:absolute; inset:8% -6%; border:1px solid rgba(255,255,255,.06); transform:skewY(-3deg); pointer-events:none; }
.service-scene__visual { transform:translateY(var(--parallax-y,0)) perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition:transform .25s ease-out; will-change:transform; }
.service-scene__visual::after { content:""; position:absolute; inset:0; pointer-events:none; z-index:5; background:radial-gradient(circle at var(--light-x,50%) var(--light-y,50%),rgba(255,255,255,.18),transparent 30%); mix-blend-mode:overlay; }
.visual { isolation:isolate; }
.visual::after { content:""; position:absolute; inset:-30%; background:conic-gradient(from 30deg,transparent,rgba(255,204,53,.13),transparent 30%,rgba(240,24,43,.13),transparent 60%); animation:visualOrbit 12s linear infinite; z-index:-1; }
@keyframes visualOrbit { to{ transform:rotate(360deg); } }
.visual__ring { animation:ringFloat 5s ease-in-out infinite alternate; }
.visual__ring::before { animation:ringSpin 9s linear infinite; border-style:dashed; }
.visual__ring::after { animation:pulseCore 2.4s ease-in-out infinite alternate; }
@keyframes ringFloat { to{ transform:translateY(24px) scale(1.05); } }
@keyframes ringSpin { to{ transform:rotate(360deg); } }
@keyframes pulseCore { to{ transform:scale(.65); box-shadow:0 0 90px var(--red); } }
.camera-lens { animation:lensFocus 5s ease-in-out infinite alternate; }
@keyframes lensFocus { to{ transform:scale(1.08); filter:brightness(1.35); } }
.visual--event>span { animation:stageLight 3.7s ease-in-out infinite alternate; }
.visual--event>span:nth-child(2) { animation-delay:-1.2s; }
.visual--event>span:nth-child(3) { animation-delay:-2.1s; }
@keyframes stageLight { to{ transform:rotate(8deg) translateX(80px); opacity:.45; } }

.flip-card { height:360px; }
.flip-card__face { padding:0; border-color:#111; background:#111; overflow:hidden; color:#fff; }
.flip-card__image { position:absolute; inset:0; background-image:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.9)),url("../images/services-atlas-v1.webp"); background-size:400% 200%; background-position:var(--card-position); transition:filter .6s,transform 1.2s var(--ease); }
.flip-card__front .flip-card__image { filter:grayscale(1) contrast(1.12) brightness(.78); }
.flip-card:hover .flip-card__front .flip-card__image { transform:scale(1.07); }
.flip-card__front strong { position:relative; z-index:2; padding:27px; max-width:100%; font-size:clamp(23px,2vw,32px); text-shadow:0 2px 18px #000; }
.flip-card__face i { z-index:2; border:1px solid rgba(255,255,255,.4); border-radius:50%; width:36px; height:36px; display:grid; place-items:center; top:22px; }
.flip-card__back { padding:27px; background:#0a0a0a; }
.flip-card__back .flip-card__image { opacity:.36; filter:saturate(1.2) contrast(1.1); }
.flip-card__back::after { content:""; position:absolute; inset:0; background:linear-gradient(135deg,rgba(240,24,43,.7),transparent 45%,rgba(255,204,53,.34)); mix-blend-mode:screen; }
.flip-card__back small,.flip-card__back strong,.flip-card__copy,.flip-card__back i { position:relative; z-index:2; }
.flip-card__back strong { margin-top:auto; color:#fff; font-size:25px; }
.flip-card__copy { color:#e3e0da !important; }

.wf-form { margin-top:60px; padding:clamp(25px,4vw,55px); background:rgba(12,12,12,.78); border:1px solid var(--line); backdrop-filter:blur(18px); }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px 20px; }
.form-grid label { display:flex; flex-direction:column; gap:9px; }
.form-grid label>span { font-size:10px; text-transform:uppercase; letter-spacing:.15em; color:#999; font-weight:750; }
.form-grid__wide { grid-column:1/-1; }
.wf-form input,.wf-form select,.wf-form textarea { width:100%; color:#fff; background:transparent; border:0; border-bottom:1px solid #555; border-radius:0; padding:11px 0; outline:none; transition:border-color .25s,box-shadow .25s; }
.wf-form select { background:#111; }
.wf-form input:focus,.wf-form select:focus,.wf-form textarea:focus { border-color:var(--gold); box-shadow:0 1px var(--gold); }
.check { display:flex; gap:12px; margin:28px 0; color:#aaa; font-size:12px; }
.check input { width:18px; height:18px; accent-color:var(--red); flex:0 0 auto; }
.check a { color:#fff; text-decoration:underline; }
.form-actions { display:flex; align-items:center; gap:25px; }
.form-actions small { max-width:330px; color:#777; }
.hp-field { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.form-notice { padding:16px 18px; margin-bottom:28px; border-left:3px solid; font-size:13px; }
.form-notice--success { border-color:#64cc83; background:rgba(70,180,100,.12); }
.form-notice--error { border-color:var(--red); background:rgba(240,24,43,.12); }
.contact { min-height:auto; padding:70px 0; }
.contact__meta { padding-bottom:30px; }

.footer-grid { padding:80px 0 55px; display:grid; grid-template-columns:1.7fr repeat(3,1fr); gap:6vw; }
.footer-grid h2 { color:#777; font-size:10px; text-transform:uppercase; letter-spacing:.17em; margin:0 0 25px; }
.footer-grid>div:not(.footer-intro) { display:flex; flex-direction:column; gap:10px; font-size:12px; }
.footer-intro>p { max-width:410px; line-height:1.7; }
.footer-ticket { display:inline-flex; gap:35px; margin-top:18px; color:var(--gold); font-size:12px; text-transform:uppercase; letter-spacing:.1em; }
.footer-contact address { font-style:normal; color:#aaa; margin-bottom:10px; }
.memberships { display:flex; align-items:center; gap:12px; padding:25px 0; border-top:1px solid var(--line); }
.membership-mark { min-height:60px; display:flex; flex-direction:column; justify-content:center; padding:10px 18px; }
.membership-mark b { text-transform:uppercase; font-size:18px; }
.membership-mark span { font-size:8px; text-transform:uppercase; letter-spacing:.08em; }
.membership-mark--hwk { background:#e61958; color:white; }
.membership-mark--ihk { background:#d8e6f5; color:#00376c; }
.memberships>p { margin-left:auto; max-width:330px; font-size:9px; text-align:right; }
.footer-bottom { padding:22px 0 35px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }
.footer-bottom>div { display:flex; gap:24px; }
.footer-bottom a,.footer-bottom button { color:#777; font-size:10px; border:0; background:none; padding:0; cursor:pointer; }

.consent-layer { position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.64); backdrop-filter:blur(10px); }
.consent-layer[hidden] { display:none; }
.consent-panel { position:absolute; width:min(610px,calc(100% - 28px)); right:18px; bottom:18px; padding:34px; background:#f1eee7; color:#111; box-shadow:0 25px 100px rgba(0,0,0,.5); }
.consent-panel h2 { margin:0 0 15px; font-size:34px; letter-spacing:-.05em; }
.consent-panel>p { color:#56534e; font-size:13px; }
.consent-panel .eyebrow { color:#777; }
.consent-close { position:absolute; right:20px; top:15px; border:0; background:none; font-size:28px; cursor:pointer; }
.consent-option { display:flex; justify-content:space-between; gap:20px; padding:17px 0; border-top:1px solid #cbc7bd; }
.consent-option div { display:flex; flex-direction:column; }
.consent-option small { color:#777; }
.consent-option input { width:20px; accent-color:var(--red); }
.consent-actions { display:flex; gap:10px; margin:20px 0; }
.consent-actions .button { flex:1; min-height:48px; color:#111; border-color:#777; cursor:pointer; }
.consent-panel>a { font-size:11px; text-decoration:underline; }
.privacy-trigger { position:fixed; z-index:120; left:18px; bottom:18px; width:46px; height:46px; border:1px solid rgba(255,255,255,.25); border-radius:50%; color:#fff; background:rgba(8,8,8,.8); backdrop-filter:blur(12px); cursor:pointer; box-shadow:0 0 25px rgba(240,24,43,.22); }
.privacy-trigger span { color:var(--gold); }

.legal-page { padding:180px 0 120px; }
.legal-page>h1,.legal-heading h1 { font-size:clamp(58px,9vw,130px); letter-spacing:-.07em; line-height:.9; margin:0 0 100px; }
.legal-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:100px; }
.legal-heading h1 { margin:0; }
.legal-layout { display:grid; grid-template-columns:260px 1fr; gap:9vw; }
.legal-layout aside { position:sticky; top:120px; align-self:start; display:flex; flex-direction:column; gap:12px; font-size:12px; color:#888; }
.legal-layout aside button { align-self:flex-start; border:0; border-bottom:1px solid var(--gold); background:none; color:#fff; padding:0 0 4px; cursor:pointer; }
.legal-layout article { max-width:790px; }
.legal-layout section { padding:0 0 45px; margin:0 0 45px; border-bottom:1px solid var(--line); }
.legal-layout h2 { font-size:clamp(23px,2.5vw,34px); letter-spacing:-.035em; }
.legal-layout p { color:#aaa; }
.legal-layout a { color:var(--gold); }
.legal-note { padding:16px; border-left:2px solid var(--red); background:#151515; font-size:12px; }
.language-toggle { display:flex; border:1px solid var(--line); }
.language-toggle button { width:54px; height:42px; border:0; color:#888; background:transparent; cursor:pointer; }
.language-toggle button.is-active { color:#111; background:var(--gold); }
.ticket-hero { min-height:72vh; display:flex; align-items:end; position:relative; overflow:hidden; padding:160px 0 90px; background:radial-gradient(circle at 80% 40%,#48111a,#090909 55%); }
.ticket-hero h1 { font-size:clamp(70px,12vw,170px); line-height:.76; letter-spacing:-.08em; margin:0; }
.ticket-hero h1 em { color:var(--gold); font-style:normal; }
.ticket-hero p:last-child { max-width:530px; color:#aaa; margin-top:45px; }
.ticket-form-wrap { padding:90px 0 140px; }
.wf-form--light { margin:0; background:var(--paper); color:#111; }
.wf-form--light input,.wf-form--light select,.wf-form--light textarea { color:#111; border-color:#aaa; }
.wf-form--light select { background:var(--paper); }
.wf-form--light .check { color:#555; }
.wf-form--light .check a { color:#111; }

@media (max-width: 1000px) {
	.footer-grid { grid-template-columns:repeat(2,1fr); }
	.memberships { flex-wrap:wrap; }
	.memberships>p { width:100%; max-width:none; margin-left:0; text-align:left; }
}
@media (max-width: 700px) {
	.form-grid { grid-template-columns:1fr; }
	.form-grid__wide { grid-column:auto; }
	.form-actions,.consent-actions { align-items:stretch; flex-direction:column; }
	.footer-grid { grid-template-columns:1fr; }
	.footer-bottom { align-items:flex-start; flex-direction:column; gap:15px; }
	.memberships { align-items:stretch; flex-direction:column; }
	.legal-heading { align-items:flex-start; flex-direction:column; gap:35px; }
	.legal-heading,.legal-page>h1 { margin-bottom:65px; }
	.legal-layout { grid-template-columns:1fr; }
	.legal-layout aside { position:static; }
	.consent-panel { inset:auto 10px 10px; width:auto; max-height:calc(100vh - 20px); overflow:auto; padding:25px; }
}

/* Version 0.3 – kinetic service worlds, support portal and legal pages */
.brand > img,
.brand .custom-logo {
	display:block;
	width:auto;
	height:52px;
	max-width:min(245px,42vw);
	object-fit:contain;
	padding:5px 9px;
	background:rgba(245,243,238,.96);
	border-radius:2px;
}
.footer-logo {
	display:block;
	width:min(240px,80%);
	height:auto;
	margin-bottom:22px;
	padding:7px 11px;
	background:#f5f3ee;
	border-radius:2px;
	filter:drop-shadow(0 10px 30px rgba(255,255,255,.06));
}

.services {
	position:relative;
	isolation:isolate;
	background:
		radial-gradient(circle at 8% 28%,rgba(240,24,43,.1),transparent 22%),
		radial-gradient(circle at 90% 67%,rgba(255,204,53,.08),transparent 24%),
		#080808;
}
.services::before {
	content:"";
	position:absolute;
	inset:0;
	z-index:-1;
	opacity:.28;
	background-image:
		linear-gradient(30deg,transparent 48%,rgba(255,255,255,.055) 49%,transparent 50%),
		linear-gradient(150deg,transparent 48%,rgba(255,255,255,.035) 49%,transparent 50%);
	background-size:120px 210px;
	animation:serviceSurface 28s linear infinite;
}
@keyframes serviceSurface {
	to { background-position:240px 420px,-240px 420px; }
}
.service-scene {
	--scene-progress:0;
	--scene-shift:-7vw;
	--scene-skew:-5deg;
	--scene-copy-y:21px;
	--scene-clip-a:0%;
	--scene-clip-b:3%;
	--scene-grid-shift:-35px;
	min-height:92vh;
	margin-block:90px 180px;
}
.service-scene::before {
	inset:5% -7%;
	border-color:rgba(255,255,255,.09);
	transform:skewY(var(--scene-skew));
	background:linear-gradient(115deg,rgba(255,255,255,.015),transparent 42%,rgba(240,24,43,.025));
}
.service-scene::after {
	position:absolute;
	z-index:-1;
	left:-5vw;
	top:50%;
	font-size:clamp(90px,15vw,230px);
	font-weight:800;
	line-height:.7;
	letter-spacing:-.075em;
	color:transparent;
	-webkit-text-stroke:1px rgba(255,255,255,.07);
	transform:translate3d(var(--scene-shift),-50%,0);
	white-space:nowrap;
	pointer-events:none;
}
.service-scene--strategy::after { content:"STRATEGY"; }
.service-scene--building::after { content:"SYSTEMS"; }
.service-scene--event::after { content:"LIVE"; }
.service-scene__visual {
	position:relative;
	clip-path:polygon(
		var(--scene-clip-a) 0,
		100% var(--scene-clip-b),
		calc(100% - var(--scene-clip-a)) 100%,
		0 calc(100% - var(--scene-clip-b))
	);
}
.service-scene__visual::before {
	content:"";
	position:absolute;
	inset:-1px;
	z-index:6;
	border:1px solid rgba(255,255,255,.18);
	box-shadow:inset 0 0 80px rgba(0,0,0,.42);
	pointer-events:none;
}
.service-scene__content {
	transform:translate3d(0,var(--scene-copy-y),0);
}
.service-scene__number {
	display:none;
}
.visual b {
	padding:10px 13px;
	background:rgba(0,0,0,.56);
	border:1px solid rgba(255,255,255,.15);
	backdrop-filter:blur(8px);
}
.visual--strategy::before,
.visual--camera::before,
.visual--event::before {
	content:"";
	position:absolute;
	inset:0;
	z-index:2;
	background:repeating-linear-gradient(90deg,transparent 0 9%,rgba(255,255,255,.035) 9.2% 9.35%);
	transform:translateX(var(--scene-grid-shift));
	mix-blend-mode:screen;
}

.contact__meta {
	margin-top:32px;
	padding-bottom:0;
}
.contact__meta a {
	color:var(--gold);
}

.support-grid {
	display:grid;
	grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);
	gap:28px;
	padding:90px 0 145px;
	align-items:start;
}
.support-form-panel,
.remote-panel {
	min-width:0;
}
.support-panel-heading {
	margin-bottom:34px;
}
.support-panel-heading h2,
.remote-panel h2 {
	font-size:clamp(38px,4.2vw,64px);
	line-height:.94;
	letter-spacing:-.055em;
	margin:0 0 20px;
}
.support-panel-heading>p:last-child {
	color:#aaa;
	max-width:570px;
}
.support-form-panel .wf-form {
	margin:0;
}
.remote-panel {
	position:sticky;
	top:110px;
	overflow:hidden;
	padding:clamp(30px,4vw,52px);
	background:
		radial-gradient(circle at 100% 0,rgba(255,204,53,.17),transparent 32%),
		linear-gradient(145deg,#181818,#090909);
	border:1px solid rgba(255,255,255,.13);
	box-shadow:0 35px 100px rgba(0,0,0,.4);
}
.remote-panel__beam {
	position:absolute;
	width:120%;
	height:1px;
	top:27%;
	left:-10%;
	transform:rotate(-29deg);
	background:linear-gradient(90deg,transparent,var(--red),var(--gold),transparent);
	box-shadow:0 0 24px var(--red);
	animation:remoteBeam 5s ease-in-out infinite alternate;
}
@keyframes remoteBeam { to { transform:rotate(-22deg) translateY(90px); } }
.remote-panel>p:not(.eyebrow):not(.remote-note) {
	color:#aaa;
}
.remote-steps {
	margin:34px 0;
	border-top:1px solid var(--line);
}
.remote-steps>div {
	display:grid;
	grid-template-columns:42px 1fr;
	gap:15px;
	padding:18px 0;
	border-bottom:1px solid var(--line);
}
.remote-steps span {
	color:var(--gold);
	font-size:10px;
	letter-spacing:.15em;
}
.remote-steps p {
	margin:0;
	color:#ccc;
	font-size:13px;
}
.rustdesk-download {
	display:grid;
	grid-template-columns:52px 1fr auto;
	gap:15px;
	align-items:center;
	padding:17px;
	color:#090909;
	background:linear-gradient(110deg,var(--gold),#fff1a6);
	box-shadow:0 15px 55px rgba(255,204,53,.14);
	transition:.35s var(--ease);
}
.rustdesk-download:hover,
.rustdesk-download:focus {
	transform:translateY(-4px);
	box-shadow:0 20px 65px rgba(255,204,53,.25);
}
.rustdesk-download__icon {
	width:48px;
	height:48px;
	display:grid;
	place-items:center;
	border:1px solid rgba(0,0,0,.23);
	border-radius:50%;
}
.rustdesk-download svg {
	width:24px;
	fill:none;
	stroke:currentColor;
	stroke-width:1.8;
	stroke-linecap:round;
	stroke-linejoin:round;
}
.rustdesk-download span:nth-child(2) {
	display:flex;
	flex-direction:column;
}
.rustdesk-download small {
	font-size:8px;
	text-transform:uppercase;
	letter-spacing:.13em;
}
.rustdesk-download strong {
	font-size:14px;
}
.rustdesk-download i {
	font-style:normal;
}
.remote-note {
	margin:22px 0 0;
	color:#737373;
	font-size:10px;
	line-height:1.65;
}
.upload-field {
	padding:18px;
	border:1px dashed #999;
}
.upload-field input {
	border:0;
}
.upload-field small {
	color:#666;
}
.ticket-orbit {
	position:absolute;
	right:7vw;
	top:13%;
	width:min(38vw,520px);
	aspect-ratio:1;
	border:1px solid rgba(255,255,255,.1);
	border-radius:50%;
}
.ticket-orbit::before,
.ticket-orbit::after {
	content:"";
	position:absolute;
	inset:13%;
	border:1px dashed rgba(255,204,53,.28);
	border-radius:50%;
	animation:ringSpin 20s linear infinite;
}
.ticket-orbit::after {
	inset:34%;
	border-style:solid;
	border-color:rgba(240,24,43,.45);
	animation-direction:reverse;
	animation-duration:9s;
}
.ticket-orbit span {
	position:absolute;
	width:9px;
	height:9px;
	border-radius:50%;
	background:var(--gold);
	box-shadow:0 0 20px var(--gold);
}
.ticket-orbit span:nth-child(1) { left:8%; top:48%; }
.ticket-orbit span:nth-child(2) { right:17%; top:19%; background:var(--red); box-shadow:0 0 20px var(--red); }
.ticket-orbit span:nth-child(3) { right:25%; bottom:12%; }

.memberships {
	gap:28px;
}
.memberships>img {
	display:block;
	width:min(564px,55vw);
	height:auto;
	flex:0 0 auto;
	object-fit:contain;
}
.memberships>p {
	max-width:420px;
}
.legal-page--agb>h1 {
	max-width:980px;
}
.agb-part {
	padding-bottom:30px !important;
}
.agb-part>h2 {
	font-size:clamp(30px,3.4vw,48px);
	color:var(--gold);
	margin-bottom:50px;
}
.agb-clause {
	padding:0 0 32px;
	margin:0 0 32px;
	border-bottom:1px solid rgba(255,255,255,.08);
}
.agb-clause:last-child {
	border-bottom:0;
}
.agb-clause h3 {
	font-size:20px;
	margin:0 0 18px;
}
.agb-clause p {
	font-size:14px;
}

@media (max-width: 950px) {
	.support-grid {
		grid-template-columns:1fr;
	}
	.remote-panel {
		position:relative;
		top:auto;
	}
	.ticket-orbit {
		opacity:.45;
		right:-20vw;
		width:75vw;
	}
}
@media (max-width: 700px) {
	.brand > img,
	.brand .custom-logo {
		height:42px;
		max-width:190px;
	}
	.service-scene::after {
		font-size:28vw;
		top:22%;
	}
	.service-scene__content {
		transform:none;
	}
	.support-grid {
		padding-top:70px;
	}
	.memberships>img {
		width:min(564px,100%);
	}
}
