@font-face{font-family:"Sora";font-style:normal;font-display:swap;font-weight:200 800;src:url(fonts/sora-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Sora";font-style:normal;font-display:swap;font-weight:200 800;src:url(fonts/sora-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Manrope";font-style:normal;font-display:swap;font-weight:200 800;src:url(fonts/manrope-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Manrope";font-style:normal;font-display:swap;font-weight:200 800;src:url(fonts/manrope-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-display:swap;font-weight:100 800;src:url(fonts/jetbrains-mono-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-display:swap;font-weight:100 800;src:url(fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Montserrat";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/montserrat-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Montserrat";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/montserrat-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Layout concept: the Dubai skyline is the spine of the page. One night field (the Group's ink), drawn in hairlines of desert gold that turn Gulf blue, as in the NEO Real Estate mark. Text sits flush left on a wide measure; glass panels and full pills come from the My NEO Group system. */
:root{
  color-scheme:dark;
  --bg:#03050c; --bg2:#070b16; --bg3:#0c1322;
  --ink:#f3f6fb; --soft:#c3cbd9; --dim:#8590a6;
  --gold:#dcb35c; --gold-hi:#f6e6b8; --gold-lo:#8f7430; --gulf:#4a97e0;
  --line:rgba(255,255,255,.09); --line2:rgba(255,255,255,.18);
  --glass:rgba(255,255,255,.035); --glass2:rgba(255,255,255,.06);
  --gline:rgba(220,179,92,.28); --gwash:rgba(220,179,92,.09); --halo:rgba(220,179,92,.07);
  --veil:rgba(3,5,12,.82); --shade:#000; --field:rgba(3,5,12,.6); --ring:rgba(220,179,92,.18);
  --ok:#9fdcc0; --warn:#f2b8a2; --onGold:#1a1405;
  --grad:linear-gradient(100deg,#f0cd78,#c2a866 34%,#7aa0ad 68%,#4a97e0);
  --display:"Sora",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --mark:"Montserrat","Sora",system-ui,sans-serif;
  --lattice:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56' fill='none' stroke='%23dcb35c' stroke-opacity='.55' stroke-width='.7'%3E%3Cpath d='M14 14h28v28H14zM28 8.2 47.8 28 28 47.8 8.2 28zM28 0v8.2M28 47.8V56M0 28h8.2M47.8 28H56M14 14 0 0M42 14 56 0M14 42 0 56M42 42l14 14'/%3E%3C/svg%3E");
  --pad:clamp(20px,5vw,80px); --max:1320px; --r:26px; --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
section[id]{scroll-margin-top:84px}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,canvas,svg{display:block;max-width:100%}
button,input,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
::selection{background:var(--gold);color:var(--onGold)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
main{overflow-x:clip}
#glow{position:fixed;left:0;top:0;z-index:0;width:680px;height:680px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,var(--halo),transparent 62%);transform:translate(-50%,-50%);opacity:0;transition:opacity .7s}
#prog{position:fixed;inset:0 0 auto 0;height:2px;background:var(--grad);transform-origin:0 50%;transform:scaleX(0);z-index:90;pointer-events:none}

/* type */
h1,h2,h3{font-family:var(--display);font-weight:300;letter-spacing:-.035em;line-height:1.04;text-wrap:balance;overflow-wrap:break-word}
h2{font-size:clamp(32px,4.4vw,60px)}
h1,h2,h3,p,li,dt,dd,label,small{min-width:0;max-width:100%}
.g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.kick{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;color:var(--gold)}
.kick::before{content:"";flex:none;width:7px;height:7px;transform:rotate(45deg);border:1px solid var(--gold)}
.lead{color:var(--soft);font-size:clamp(17px,1.4vw,20px);max-width:60ch}
.sh{display:flex;flex-direction:column;gap:18px;align-items:flex-start;margin-bottom:clamp(34px,4.4vw,58px)}
.sh .lead{margin-top:4px}
.nb{white-space:nowrap}
.tl{border-bottom:1px solid var(--gline);transition:border-color .25s,color .25s}
.tl:hover{border-color:var(--gold-hi);color:var(--gold-hi)}
.x{display:inline-block;width:.6em;height:.6em;margin-inline-start:.45em;vertical-align:baseline}

/* buttons */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 26px;border:1px solid transparent;border-radius:999px;background:linear-gradient(100deg,#f3d58a,#dcb35c 55%,#c79a45);color:var(--onGold);font-family:var(--body);font-weight:700;font-size:15px;line-height:1.3;cursor:pointer;white-space:nowrap;transition:transform .3s var(--ease),box-shadow .3s,background .3s,border-color .3s}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 40px -14px rgba(220,179,92,.55)}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 32%,rgba(255,255,255,.5) 50%,transparent 68%);transform:translateX(-120%);transition:transform .85s var(--ease)}
.btn:hover::after{transform:translateX(120%)}
.btn.ghost{background:var(--glass);color:var(--ink);border-color:var(--line2);font-weight:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.btn.ghost::after{display:none}
.btn.ghost:hover{background:var(--glass2);border-color:var(--gold);box-shadow:none}
.btn.sm{padding:10px 20px;font-size:14px}
.btn[disabled]{opacity:.6;cursor:progress;transform:none}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.cta .btn{white-space:normal;text-align:center}

/* reveal, from a visible resting state */
.js .rv{opacity:.45;transform:translateY(16px);transition:opacity .9s ease,transform .9s var(--ease)}
.js .rv.in{opacity:1;transform:none}

/* header */
.top{position:fixed;inset:0 0 auto 0;z-index:70;padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid transparent;transition:background .35s,border-color .35s}
.top.on{background:var(--veil);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-color:var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:18px;height:84px;transition:height .35s}
.top.on .bar{height:70px}
.brand{display:inline-flex;align-items:center;gap:12px;flex:none}
.brand img{width:47px;height:auto;flex:none}
.brand .wm{display:grid;gap:3px;font-family:var(--mark);line-height:1}
.brand .wm b{font-weight:800;font-size:16.5px;letter-spacing:.012em;white-space:nowrap}
.brand .wm i{font-style:normal;font-weight:600;font-size:9px;letter-spacing:.43em;color:var(--soft)}
.nav{display:flex;align-items:center;gap:2px;font-size:15px;font-weight:500}
.nav a{position:relative;padding:9px 13px;border-radius:999px;color:var(--soft);white-space:nowrap;transition:color .25s,background .25s}
.nav a:hover{color:var(--ink);background:var(--glass2)}
.nav a.cur{color:var(--gold-hi)}
.tools{display:flex;align-items:center;gap:10px;flex:none}
.tools .btn{flex:none}
.lang{position:relative}
.lang>button{display:inline-flex;align-items:center;gap:9px;height:42px;padding-inline:12px 14px;border:1px solid var(--line2);border-radius:999px;background:var(--glass);cursor:pointer;font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;transition:border-color .25s,background .25s}
.lang>button:hover,.lang>button[aria-expanded="true"]{border-color:var(--gold);background:var(--glass2)}
.cv{width:10px;height:6px;transition:transform .3s}
.lang>button[aria-expanded="true"] .cv{transform:rotate(180deg)}
.fl{flex:none;width:20px;height:15px;object-fit:cover;border-radius:2px}
.lmenu{position:absolute;inset-inline-end:0;top:calc(100% + 10px);z-index:5;min-width:210px;list-style:none;display:grid;gap:2px;padding:8px;border:1px solid var(--line2);border-radius:18px;background:var(--bg2);box-shadow:0 30px 70px -24px var(--shade)}
.lmenu a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:11px;font-size:14.5px;color:var(--soft);transition:background .25s,color .25s}
.lmenu a:hover{background:var(--glass2);color:var(--ink)}
.lmenu a.cur{color:var(--ink);background:var(--glass2)}
.lmenu a.cur::after{content:"";margin-inline-start:auto;width:7px;height:7px;transform:rotate(45deg);background:var(--gold)}
.burger{display:none;width:44px;height:42px;border:1px solid var(--line2);border-radius:999px;background:var(--glass);cursor:pointer;align-items:center;justify-content:center}
.burger span{display:block;width:16px;height:1.5px;background:var(--ink);box-shadow:0 5px 0 var(--ink),0 -5px 0 var(--ink)}

/* hero: the skyline */
.hero{position:relative;z-index:1;min-height:clamp(680px,100svh,980px);display:flex;align-items:flex-start;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(60% 46% at 68% 100%,rgba(220,179,92,.16),transparent 70%),radial-gradient(50% 60% at 96% 30%,rgba(74,151,224,.13),transparent 72%),radial-gradient(40% 50% at 0% 0%,rgba(74,151,224,.07),transparent 70%),linear-gradient(180deg,#03050c,#050914 60%,#070c18)}
#skyline{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.hero-in{position:relative;width:100%;padding-block:clamp(132px,17svh,176px) clamp(190px,25svh,250px)}
.hero h1{font-weight:200;font-size:clamp(40px,6vw,92px);line-height:1.02;letter-spacing:-.04em;margin-block:26px 28px;max-width:13em}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.hero h1 .ln>span{display:block}
.js .hero h1 .ln>span{animation:rise 1.15s var(--ease) both;animation-delay:var(--d,0s)}
.hero h1 .d2{--d:.12s}
@keyframes rise{from{transform:translateY(108%)}to{transform:none}}
.hero .lead{max-width:54ch;margin-bottom:34px;text-shadow:0 1px 24px var(--bg)}
.geo{position:absolute;inset:auto var(--pad) 26px auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 18px;font-family:var(--mono);font-size:12px;letter-spacing:.05em;color:var(--dim)}
.geo b{font-weight:500;color:var(--gold-hi)}
.geo span{display:inline-flex;align-items:center;gap:8px}
.geo .live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(220,179,92,.6);animation:ping 2.4s ease-out infinite}
@keyframes ping{to{box-shadow:0 0 0 9px rgba(220,179,92,0)}}

/* facts rail */
.rail{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line2);background:linear-gradient(180deg,var(--glass),transparent)}
.rail>div{display:grid;gap:8px;align-content:start;padding:28px 26px 30px;border-inline-start:1px solid var(--line);min-width:0}
.rail>div:first-child{border-inline-start:0;padding-inline-start:0}
.rail dt{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--gold)}
.rail dd{font-family:var(--display);font-weight:300;font-size:clamp(19px,1.7vw,23px);line-height:1.25;letter-spacing:-.02em}
.rail dd small{display:block;margin-top:8px;font-family:var(--body);font-size:13.5px;line-height:1.5;letter-spacing:0;color:var(--dim)}

/* sections */
.sec{position:relative;z-index:1;padding-block:clamp(72px,8.6vw,132px)}
.sec.deep{background:linear-gradient(180deg,transparent,var(--bg2) 14%,var(--bg2) 86%,transparent)}
.about{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(30px,6vw,96px);align-items:start}
.about>*{min-width:0}
.big{font-family:var(--display);font-weight:300;font-size:clamp(22px,2.2vw,31px);line-height:1.3;letter-spacing:-.03em;max-width:24em}
.prose{display:grid;gap:20px;color:var(--soft);max-width:62ch}
.prose a{color:var(--ink)}

/* focus: six typologies, drawn */
.types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.4vw,20px)}
.type{position:relative;display:grid;gap:14px;align-content:start;padding:22px 24px 28px;border:1px solid var(--line);border-radius:var(--r);background:radial-gradient(260px circle at var(--mx,50%) var(--my,-200px),var(--gwash),transparent 70%),var(--glass);min-width:0;overflow:hidden;transition:border-color .4s,transform .5s var(--ease),background-color .4s}
.type:hover,.type:focus-within{border-color:var(--gline);transform:translateY(-4px)}
.type canvas{width:100%;aspect-ratio:16/9;height:auto}
.type h3{font-size:clamp(22px,2vw,27px);letter-spacing:-.03em}
.type p{color:var(--soft);font-size:15.5px;line-height:1.6}

/* philosophy: three principles on one horizon */
.tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line2)}
.tri article{position:relative;display:grid;gap:16px;align-content:start;padding:38px clamp(18px,2.6vw,40px) 8px 0;min-width:0}
.tri article+article{padding-inline-start:clamp(18px,2.6vw,40px);border-inline-start:1px solid var(--line)}
.tri article::before{content:"";position:absolute;inset:-1px 0 auto 0;height:1px;background:var(--grad);transform:scaleX(0);transform-origin:0 50%;transition:transform .7s var(--ease)}
.tri article:hover::before{transform:scaleX(1)}
.tri h3{font-size:clamp(26px,2.7vw,38px)}
.tri p{color:var(--soft);max-width:36ch}

/* intelligence: the lens */
.lens{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center}
.lens>*{min-width:0}
.scope{position:relative;border:1px solid var(--line);border-radius:var(--r);background:radial-gradient(70% 60% at 50% 60%,rgba(74,151,224,.1),transparent 70%),var(--glass);overflow:hidden}
.scope canvas{width:100%;aspect-ratio:1;height:auto}
.scope .tag{position:absolute;inset:18px auto auto 20px;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--dim)}
.scope .tag b{font-weight:500;color:var(--gold-hi)}
.crit{list-style:none;display:grid;border-top:1px solid var(--line2)}
.crit button{position:relative;display:grid;gap:8px;width:100%;padding:20px 0 20px 0;background:none;border:0;border-bottom:1px solid var(--line);text-align:start;cursor:pointer;transition:padding .45s var(--ease)}
.crit button::before{content:"";position:absolute;inset:auto 0 -1px 0;height:1px;background:var(--grad);transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--ease)}
.crit b{display:flex;align-items:center;justify-content:space-between;gap:14px;font-family:var(--display);font-weight:300;font-size:clamp(22px,2.2vw,29px);line-height:1.1;letter-spacing:-.03em;color:var(--soft);transition:color .3s}
.crit b::after{content:"";flex:none;width:9px;height:9px;transform:rotate(45deg);border:1px solid var(--gold);transition:background .3s}
.crit span{color:var(--dim);font-size:15.5px;line-height:1.6;max-width:54ch;transition:color .3s}
.crit button.on{padding-inline-start:12px}
.crit button.on::before{transform:scaleX(1)}
.crit button.on b{color:var(--ink)}
.crit button.on b::after{background:var(--gold)}
.crit button.on span{color:var(--soft)}
.note{margin-top:26px;font-size:14.5px;line-height:1.6;color:var(--dim);max-width:58ch}
.note a{color:var(--soft)}

/* edge: definitions */
.defs{display:grid;border-top:1px solid var(--line2)}
.defs>div{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:10px clamp(24px,5vw,80px);align-items:baseline;padding-block:28px;border-bottom:1px solid var(--line);transition:padding .4s var(--ease),background .4s}
.defs>div:hover{padding-inline:16px;background:var(--glass)}
.defs dt{font-family:var(--display);font-weight:300;font-size:clamp(23px,2.5vw,36px);line-height:1.1;letter-spacing:-.03em}
.defs dd{color:var(--soft);max-width:60ch}

/* markets: the globe */
.gl{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(28px,5vw,88px);align-items:center}
.gl>*{min-width:0}
.globe{position:relative;width:100%;max-width:600px;aspect-ratio:1;margin-inline:auto}
.globe canvas{width:100%;height:100%;cursor:grab;touch-action:pan-y}
.globe canvas.drag{cursor:grabbing}
.regions{list-style:none;display:grid;border-top:1px solid var(--line2)}
.regions button{display:grid;gap:6px;width:100%;padding:17px 0;background:none;border:0;border-bottom:1px solid var(--line);text-align:start;cursor:pointer;transition:padding .4s var(--ease)}
.regions b{display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:var(--display);font-weight:300;font-size:clamp(22px,2.2vw,29px);line-height:1.1;letter-spacing:-.03em;color:var(--soft);transition:color .3s}
.regions b::after{content:"";flex:none;width:9px;height:9px;transform:rotate(45deg);border:1px solid var(--gold);transition:background .3s}
.regions span{font-size:14.5px;line-height:1.5;color:var(--dim);transition:color .3s}
.regions button:hover,.regions button.on{padding-inline-start:12px}
.regions button:hover b,.regions button.on b{color:var(--ink)}
.regions button.on b::after{background:var(--gold)}
.regions button.on span{color:var(--soft)}

/* group: the mashrabiya panel */
.panel{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start;padding:clamp(28px,4.6vw,68px);border:1px solid var(--line2);border-radius:calc(var(--r) + 6px);background:linear-gradient(150deg,var(--bg3),var(--bg2));overflow:hidden;isolation:isolate}
.panel::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;background-image:var(--lattice);background-size:56px 56px;-webkit-mask-image:radial-gradient(80% 90% at 100% 0%,#000,transparent 70%);mask-image:radial-gradient(80% 90% at 100% 0%,#000,transparent 70%)}
.panel>*{min-width:0}
.panel .sh{margin-bottom:22px}
.panel .prose{font-size:16.5px}
.net{list-style:none;display:grid;border-top:1px solid var(--line2)}
.net a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center;padding:17px 0;border-bottom:1px solid var(--line);transition:padding .4s var(--ease),border-color .3s}
.net b{font-family:var(--display);font-weight:400;font-size:19px;letter-spacing:-.02em;line-height:1.2}
.net span{grid-column:1;font-size:14px;line-height:1.5;color:var(--dim)}
.net svg{grid-column:2;grid-row:1/3;width:13px;height:13px;color:var(--gold);transition:transform .4s var(--ease)}
.net a:hover{padding-inline:10px;border-color:var(--gline)}
.net a:hover svg{transform:translate(3px,-3px)}

/* questions and answers */
.faq{border-top:1px solid var(--line2);max-width:1040px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px 0;list-style:none;cursor:pointer;font-family:var(--display);font-weight:300;font-size:clamp(20px,2vw,27px);line-height:1.2;letter-spacing:-.03em;color:var(--soft);transition:color .3s,padding .4s var(--ease)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:9px;height:9px;transform:rotate(45deg);border:1px solid var(--gold);transition:background .3s}
.faq summary:hover,.faq details[open] summary{color:var(--ink);padding-inline-start:12px}
.faq details[open] summary::after{background:var(--gold)}
.faq details p{color:var(--soft);max-width:72ch;padding:0 0 28px 12px}
.faq details p a{color:var(--ink)}

/* contact */
.fwrap{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(30px,6vw,96px);align-items:start}
.fwrap>*{min-width:0}
.fwrap .sh{margin-bottom:22px}
.where{display:grid;gap:4px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line2);font-size:15.5px;color:var(--soft)}
.where b{font-family:var(--mono);font-weight:400;font-size:12px;letter-spacing:.06em;color:var(--gold)}
.fwrap .cap{margin-top:22px;font-size:14px;color:var(--dim);max-width:46ch}
.form{display:grid;gap:22px;padding:clamp(24px,3.4vw,46px);border:1px solid var(--line2);border-radius:var(--r);background:linear-gradient(160deg,var(--bg3),var(--bg2))}
.form .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px}
.fld{display:grid;gap:8px;min-width:0}
.fld label{font-size:14px;font-weight:500;color:var(--soft)}
.fld label i{font-style:normal;color:var(--gold)}
.fld input,.fld textarea{width:100%;min-width:0;padding:14px 16px;border:1px solid var(--line2);border-radius:14px;background:var(--field);font-size:16px;line-height:1.4;transition:border-color .25s,box-shadow .25s}
.fld textarea{min-height:132px;resize:vertical}
.fld input:focus,.fld textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 4px var(--ring)}
.fld .err{font-size:13px;color:var(--warn)}
.fld.bad input,.fld.bad textarea{border-color:var(--warn)}
.consent{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;align-items:start;font-size:14px;color:var(--dim)}
.consent input{width:18px;height:18px;margin-top:3px;accent-color:var(--gold)}
.consent.bad{color:var(--warn)}
.fend{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.fmsg{font-size:14.5px;line-height:1.5;color:var(--ok);max-width:46ch}
.fmsg.err{color:var(--warn)}
.fmsg.wait{color:var(--soft)}
.hp{position:absolute!important;inset-inline-start:-9999px;width:1px;height:1px;opacity:0}

/* footer */
footer{position:relative;z-index:1;border-top:1px solid var(--line2);padding-block:clamp(54px,7vw,92px) 30px;background:var(--bg2)}
.fg{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:clamp(26px,4vw,56px)}
.fg>div{min-width:0}
.fg .brand img{width:54px}
.fg .brand .wm b{font-size:19px}
.fg .brand .wm i{font-size:10.5px}
.fg p{color:var(--dim);font-size:15px;max-width:40ch;margin-top:22px}
.fg p a{color:var(--soft)}
.fg h4{font-family:var(--mono);font-weight:400;font-size:12px;letter-spacing:.06em;color:var(--gold);margin-bottom:16px}
.fg ul{list-style:none;display:grid;gap:10px;font-size:15px;color:var(--soft)}
.fg ul a{transition:color .25s}
.fg ul a:hover{color:var(--gold-hi)}
.disc{margin-top:clamp(36px,5vw,58px);padding-top:22px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.6;color:var(--dim);max-width:118ch}
.legalrow{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 30px;margin-top:22px;font-size:13px;color:var(--dim)}
.legalrow nav{display:flex;flex-wrap:wrap;gap:6px 22px}
.legalrow a:hover{color:var(--ink)}

/* legal sheets */
dialog.legal{width:min(780px,calc(100% - 32px));max-height:min(86svh,920px);margin:auto;padding:0;border:1px solid var(--line2);border-radius:var(--r);background:var(--bg2);color:var(--ink)}
dialog.legal::backdrop{background:rgba(2,3,8,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.legal .hd{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px clamp(20px,4vw,34px);background:var(--bg2);border-bottom:1px solid var(--line)}
.legal .hd h2{font-size:clamp(24px,3vw,32px)}
.legal .hd button{flex:none;width:42px;height:42px;border:1px solid var(--line2);border-radius:50%;background:transparent;cursor:pointer;font-size:20px;line-height:1}
.legal .hd button:hover{background:var(--glass2)}
.legal .bd{display:grid;gap:12px;padding:26px clamp(20px,4vw,34px) 36px;color:var(--soft);font-size:15.5px}
.legal .bd h3{font-family:var(--body);font-weight:700;font-size:15px;letter-spacing:0;line-height:1.4;color:var(--ink);margin-top:14px}
.legal .bd .upd{font-family:var(--mono);font-size:12px;color:var(--dim)}

/* privacy notice */
.ck{position:fixed;z-index:80;inset:auto 16px calc(16px + env(safe-area-inset-bottom,0px)) auto;width:min(540px,calc(100% - 32px));display:flex;align-items:center;gap:18px;padding:16px 18px 16px 22px;border:1px solid var(--line2);border-radius:22px;background:var(--bg3);box-shadow:0 30px 70px -30px var(--shade);font-size:14px;line-height:1.5;color:var(--soft)}
.ck b{color:var(--ink);font-weight:700}
.ck .btn{flex:none}
.ck a{color:var(--ink)}
.skip{position:fixed;inset:10px auto auto 10px;z-index:200;padding:10px 16px;border-radius:999px;background:var(--gold);color:var(--onGold);font-size:14px;font-weight:700;transform:translateY(-220%);transition:transform .2s}
.skip:focus{transform:none}

.nf{position:relative;z-index:1;min-height:100svh;display:grid;align-content:center;justify-items:start;gap:30px;padding-block:120px 80px}
.nf h1{font-weight:200;font-size:clamp(44px,7vw,96px)}
.nf .list{display:grid;gap:14px;color:var(--soft);border-top:1px solid var(--line2);padding-top:28px;max-width:74ch}
.nf .list b{color:var(--ink);font-weight:700}
.nf .list a{color:var(--ink)}

/* longer words: German and the Romance languages keep the headline on two lines where the screen allows */
html:lang(de) .hero h1{font-size:clamp(32px,4.9vw,76px);max-width:16em}
html:lang(fr) .hero h1,html:lang(it) .hero h1,html:lang(es) .hero h1{font-size:clamp(36px,5.5vw,86px);max-width:14em}
html:lang(de) h2{font-size:clamp(29px,4vw,56px);hyphens:auto}
html:lang(de) .tri h3,html:lang(de) .defs dt{hyphens:auto}
/* Chinese: system faces, no negative tracking */
html:lang(zh-Hans){--display:"Sora","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei","Noto Sans SC","Source Han Sans SC",system-ui,sans-serif;--body:"Manrope","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei","Noto Sans SC","Source Han Sans SC",system-ui,sans-serif;--mono:"JetBrains Mono","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei","Noto Sans SC",monospace}
html:lang(zh-Hans) h1,html:lang(zh-Hans) h2,html:lang(zh-Hans) h3,html:lang(zh-Hans) .big,html:lang(zh-Hans) .rail dd,html:lang(zh-Hans) .crit b,html:lang(zh-Hans) .regions b,html:lang(zh-Hans) .defs dt,html:lang(zh-Hans) .faq summary,html:lang(zh-Hans) .net b{letter-spacing:0;line-height:1.25}
html:lang(zh-Hans) .hero h1{font-weight:300;font-size:clamp(40px,6.4vw,96px);line-height:1.14}
html:lang(zh-Hans) body{line-height:1.8}
html:lang(zh-Hans) .kick,html:lang(zh-Hans) .rail dt,html:lang(zh-Hans) .fg h4,html:lang(zh-Hans) .where b{letter-spacing:.1em}

/* responsive */
@media (max-width:1260px){
  .nav{display:none}
  .burger{display:inline-flex}
  .nav.open{display:flex;position:absolute;inset-inline:0;top:100%;flex-direction:column;align-items:stretch;gap:0;padding:10px var(--pad) 22px;background:var(--bg2);border-bottom:1px solid var(--line2)}
  .nav.open a{padding:15px 4px;font-size:17px;border-radius:0;border-bottom:1px solid var(--line)}
  .types{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fg{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .about,.lens,.gl,.panel,.fwrap{grid-template-columns:minmax(0,1fr)}
  .rail{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rail>div:nth-child(3){border-inline-start:0;padding-inline-start:0}
  .rail>div:nth-child(n+3){border-top:1px solid var(--line)}
  .tri{grid-template-columns:minmax(0,1fr);border-top:0}
  .tri article,.tri article+article{padding:28px 0 26px;border-inline-start:0;border-top:1px solid var(--line2)}
  .hero{min-height:0}
  .hero-in{padding-block:140px 330px}
  .globe{max-width:420px}
  .scope{max-width:520px}
  .geo{inset-inline:var(--pad);justify-content:flex-start}
}
@media (max-width:560px){
  body{font-size:16.5px}
  .brand img{width:40px}
  .brand .wm b{font-size:14px}
  .brand .wm i{font-size:8px;letter-spacing:.4em}
  .tools .btn{display:none}
  .rail,.types,.fg,.form .row{grid-template-columns:minmax(0,1fr)}
  .rail>div{border-inline-start:0;padding-inline:0}
  .rail>div+div{border-top:1px solid var(--line)}
  .defs>div{grid-template-columns:minmax(0,1fr)}
  .hero-in{padding-block:124px 320px}
  .ck{gap:12px;padding:12px 12px 12px 16px;border-radius:18px;font-size:12.5px;line-height:1.45}
}
@media (max-width:380px){
  .brand .wm b{font-size:12.5px}
  .lang>button{padding-inline:11px}
  .lang>button>span{display:none}
  .brand{gap:9px}
  .brand img{width:36px}
  .tools{gap:7px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv{opacity:1;transform:none}
}
