/* twopalms.studio — tokens & layout faithful to twopalms Design System v1.0 */
:root{--gx:max(72px,calc((100vw - 1296px)/2))}
body{margin:0;background:#FFFFFF;font-family:'Inter','Helvetica Neue',Helvetica,Arial,sans-serif;color:#0A0A0A}
a{color:inherit;text-decoration:none}a:hover{color:#55554F}
html{scroll-behavior:smooth}
::selection{background:#00FF00;color:#0A0A0A}
.page{width:100%;background:#FFFFFF;overflow-x:clip}
.mono{font-family:'Martian Mono',monospace}
.lbl{font-family:'Martian Mono',monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#8A8A86;font-weight:500}
.lbld{font-family:'Martian Mono',monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#6E6E68;font-weight:500}
.disp{font-weight:550;letter-spacing:-.035em;line-height:1.05}
.body{font-size:15px;line-height:1.65;color:#55554F}
.fx{display:flex}.jc{justify-content:center}.jb{justify-content:space-between}.ac{align-items:center}
.gap8{gap:8px}.gap12{gap:12px}.gap16{gap:16px}.gap24{gap:24px}
.tc{text-align:center}.m0{margin:0}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}.mt16{margin-top:16px}
.livedot{width:7px;height:7px;border-radius:50%;background:#00E000;display:inline-block;box-shadow:0 0 8px rgba(0,224,0,.6);flex:none;animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 8px rgba(0,224,0,.6)}50%{box-shadow:0 0 14px rgba(0,224,0,.95)}}
.cursor{color:#00E000;animation:blink 1.1s steps(1) infinite;margin-left:2px}
@keyframes blink{50%{opacity:0}}
.sect{padding:110px var(--gx)}
.dark{background:#0C0C0B;color:#F5F5F3}
.dark .body{color:#A9A9A2}
.btnp{background:#0A0A0A;color:#fff;border:1px solid #0A0A0A;padding:14px 26px;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer}
.btnp:hover{background:#262626}
.btng{background:transparent;color:#0A0A0A;border:1px solid rgba(10,10,10,.35);padding:14px 26px;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer}
.btng:hover{border-color:#0A0A0A}
.glassbtn{background:rgba(255,255,255,.07);color:#F5F5F3;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:16px 32px;font-family:inherit;font-size:15px;font-weight:500;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),inset 0 -10px 20px rgba(255,255,255,.05),0 10px 30px rgba(0,0,0,.5);transition:background .25s ease-out,transform .25s ease-out}
.glassbtn:hover{background:rgba(255,255,255,.13);transform:translateY(-1px)}
.ghostd{background:transparent;color:#F5F5F3;border:none;font-family:inherit;font-size:15px;font-weight:500;cursor:pointer;border-bottom:1px solid rgba(245,245,243,.4);padding:0 0 3px;border-radius:0;transition:border-color .2s ease-out}
.ghostd:hover{border-color:#F5F5F3}
.navwrap{position:sticky;top:18px;z-index:50;padding:0 var(--gx);height:0;overflow:visible}
.nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:13px 26px;border-radius:999px;transition:box-shadow .3s ease-out}
.navhome{justify-self:start;grid-column:1}
.navlinks{grid-column:2}
.navright{justify-self:end;grid-column:3}
.nav a{font-size:14px;font-weight:500;color:#F5F5F3}.nav a:hover{opacity:.7}
.navcta{font-size:8.5px;letter-spacing:.1em;color:#F5F5F3;font-weight:400}
.gap10{gap:10px}
.navburger{display:none;width:34px;height:34px;background:transparent;border:none;cursor:pointer;padding:8px;flex-direction:column;justify-content:center;gap:6px}
.navburger span{display:block;height:1.5px;width:100%;background:#F5F5F3;transition:transform .25s ease-out,opacity .25s ease-out}
body[data-menu="open"] .navburger span:first-child{transform:translateY(3.75px) rotate(45deg)}
body[data-menu="open"] .navburger span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
.navmenu{display:none;flex-direction:column;gap:0;margin-top:10px;padding:10px 24px;border-radius:22px;background:rgba(14,14,13,.82);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 14px 34px rgba(0,0,0,.45);opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .22s ease-out,transform .22s ease-out}
.navmenu a{font-size:15px;font-weight:500;color:#F5F5F3;padding:13px 0;border-bottom:1px solid rgba(245,245,243,.1)}
.navmenu a:last-child{border-bottom:none}
.navmenucta{font-size:9px !important;letter-spacing:.12em;display:flex;align-items:center;gap:8px}
body[data-menu="open"] .navmenu{opacity:1;transform:none;pointer-events:auto}
body[data-nav="glass"] .nav{background:rgba(18,18,17,.4);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -8px 16px rgba(255,255,255,.04),0 10px 30px rgba(0,0,0,.35)}
body[data-nav="invert"] .nav{mix-blend-mode:difference;color:#fff}
body[data-nav="invert"] .nav .livedot{display:none}
.navlogo{height:22px;width:auto;display:block}
.marquee{overflow:hidden;padding:30px 0 10px;margin:0 calc(-1*var(--gx));-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mtrack{display:flex;width:max-content;animation:marq 48s linear infinite}
.marquee:hover .mtrack{animation-play-state:paused}
.mset{display:flex;gap:26px;padding-right:26px}
@keyframes marq{to{transform:translateX(-50%)}}
.tiltc{width:230px;height:300px;border-radius:18px;overflow:hidden;flex:none;box-shadow:0 24px 60px rgba(0,0,0,.55);position:relative;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);transform:rotate(var(--r,0deg)) translateY(var(--y,0px))}
.tiltc img,.tiltc video{width:100%;height:100%;object-fit:cover;display:block}
.reel{width:198px;height:352px;border-radius:14px;overflow:hidden;flex:none;position:relative;box-shadow:0 18px 44px rgba(0,0,0,.5);background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12)}
.statrow{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid rgba(10,10,10,.12)}
.stat{padding:34px 72px;border-right:1px solid rgba(10,10,10,.12)}
.statn{font-weight:550;letter-spacing:-.03em;font-size:34px}
.blocks{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.block{border:1px solid rgba(10,10,10,.14);padding:28px 24px;min-height:230px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .25s ease-out,box-shadow .25s ease-out,border-color .2s ease-out}
.block:hover{border-color:#0A0A0A}
.blockt{font-size:20px;font-weight:550;letter-spacing:-.02em}
.blockinner{display:flex;flex-direction:column;justify-content:flex-end;flex:1}
.blocklist{list-style:none;margin:18px 0 0;padding:14px 0 0;border-top:1px solid rgba(10,10,10,.08);display:flex;flex-direction:column;gap:9px}
.blocklist li{font-family:'Martian Mono',monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#55554F;opacity:.45;transition:opacity .5s ease-out}
.blocklist li:nth-child(2){transition-delay:.07s}
.blocklist li:nth-child(3){transition-delay:.14s}
.blocklist li:nth-child(4){transition-delay:.21s}
.block.decoded .blocklist li{opacity:1}
.wrap{flex-wrap:wrap}
.rx{margin-top:52px}
.rxchip{font-family:'Martian Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;background:transparent;border:1px solid rgba(245,245,243,.28);color:#F5F5F3;padding:11px 18px;font-weight:500;border-radius:999px;cursor:pointer;transition:border-color .2s ease-out,background .2s ease-out}
.rxchip::after{content:' +';color:#8A8A86}
.rxchip.active::after{content:' −';color:#F5F5F3}
.rxchip:hover{border-color:#F5F5F3}
.rxchip.active{border-color:#F5F5F3;background:rgba(255,255,255,.1)}
.rx:not(.touched) .rxchip{animation:rxpulse 3s ease-in-out infinite}
.rx:not(.touched) .rxchip:nth-child(2){animation-delay:.4s}
.rx:not(.touched) .rxchip:nth-child(3){animation-delay:.8s}
.rx:not(.touched) .rxchip:nth-child(4){animation-delay:1.2s}
.rx:not(.touched) .rxchip:nth-child(5){animation-delay:1.6s}
@keyframes rxpulse{0%,100%{border-color:rgba(245,245,243,.28)}50%{border-color:rgba(245,245,243,.75)}}
.fimg-blur{filter:blur(22px) saturate(.85);transform:scale(1.18)}
.fdecrypt{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;font-family:'Martian Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#55554F;background:rgba(255,255,255,.8);padding:4px 9px}
.rxpanel{margin-top:24px;border-radius:20px;padding:30px 34px;background:rgba(255,255,255,.05);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 14px 40px rgba(0,0,0,.4);animation:rxin .35s ease-out}
@keyframes rxin{from{opacity:0;transform:translateY(10px)}}
.rxpanel[hidden]{display:none}
.rxblocks{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.rxblock{font-family:'Martian Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;border:1px solid rgba(245,245,243,.35);color:#F5F5F3;padding:5px 11px;border-radius:999px}
.rxstep{display:grid;grid-template-columns:30px 1fr;gap:14px;align-items:baseline;padding:13px 0;border-bottom:1px solid rgba(245,245,243,.1)}
.rxstep:last-of-type{border-bottom:none}
.rxout{font-size:19px;font-weight:550;letter-spacing:-.02em;margin:10px 0 22px;max-width:560px}
@media (max-width:780px){
.rxpanel{padding:24px 20px}
}
.wcard{width:300px;flex:none;--fh:380px}
.wframe{height:var(--fh);border:1px solid rgba(10,10,10,.16);position:relative;overflow:hidden}
.wframe img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease-out}
.wcard:hover .wframe img:not(.wshot){transform:scale(1.03)}
.wsite{background:#EDEDEA}
.wshot{height:auto !important;object-fit:unset !important;transform:translateY(0);transition:transform 8s cubic-bezier(.3,.05,.3,1) !important}
.wcard:hover .wshot{transform:translateY(calc(-100% + var(--fh)))}
.wmeta{padding:12px 2px 8px;display:flex;justify-content:space-between;align-items:baseline}
.wpills{display:flex;gap:6px;flex-wrap:wrap;padding:0 2px}
.wpill{font-family:'Martian Mono',monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase;border:1px solid rgba(10,10,10,.22);color:#55554F;padding:4px 9px;border-radius:999px;font-weight:500}
@media (hover:none){
.wshot{animation:sitescroll 20s ease-in-out infinite alternate}
@keyframes sitescroll{from{transform:translateY(0)}to{transform:translateY(calc(-100% + var(--fh)))}}
}
@media (prefers-reduced-motion: reduce){
.wshot{animation:none !important;transition:none !important}
}
.rail{display:flex;gap:18px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:2px}
.rail::-webkit-scrollbar{display:none}
.navarr{width:44px;height:44px;border:1px solid rgba(10,10,10,.3);background:#fff;cursor:pointer;font-size:15px;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;transition:border-color .2s ease-out,transform .2s ease-out}
.navarr:hover{border-color:#0A0A0A;transform:translateY(-1px)}
.step{display:grid;grid-template-columns:180px 1fr 320px;gap:32px;padding:34px 0;border-top:1px solid rgba(245,245,243,.14);align-items:baseline}
.fcard{border:1px solid rgba(10,10,10,.14);padding:0;min-width:0;flex:1}
.fbody{padding:22px 24px}
.fimg{width:100%;height:100%;object-fit:cover;object-position:50% 22%;display:block;transition:transform .5s ease-out}
.fcard:hover .fimg{transform:scale(1.02)}
.fmeta-r{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.flink{color:#55554F}
.flink:hover{color:#0A0A0A}
.calbox{background:#FFFFFF;border-radius:14px;min-height:420px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#55554F}
.foot{padding:40px var(--gx);display:flex;justify-content:space-between;border-top:1px solid rgba(245,245,243,.12)}
.ph{background:repeating-linear-gradient(-45deg,#EDEDEA,#EDEDEA 6px,#E3E3DF 6px,#E3E3DF 12px);display:flex;align-items:center;justify-content:center;position:absolute;inset:0}
.phl{font-family:'Martian Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#8A8A86;background:rgba(255,255,255,.75);padding:3px 7px}
body[data-glass="on"] .block{border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(244,244,242,.55));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(10,10,10,.08);box-shadow:0 12px 32px rgba(0,0,0,.07),inset 0 1px 0 #fff}
body[data-glass="on"] .block:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(0,0,0,.1),inset 0 1px 0 #fff}
body[data-glass="on"] .wframe{border-radius:18px;overflow:hidden;border:1px solid rgba(10,10,10,.08);box-shadow:0 16px 40px rgba(0,0,0,.12)}
body[data-glass="on"] .fcard{border-radius:20px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(244,244,242,.55));border:1px solid rgba(10,10,10,.08);box-shadow:0 12px 32px rgba(0,0,0,.07),inset 0 1px 0 #fff;transition:transform .25s ease-out,box-shadow .25s ease-out}
body[data-glass="on"] .fcard:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(0,0,0,.1),inset 0 1px 0 #fff}
body[data-glass="on"] .navarr{border-radius:50%;box-shadow:0 4px 14px rgba(0,0,0,.08)}
body[data-glass="on"] .btnp{border-radius:999px}
body[data-glass="on"] .btng{border-radius:999px}
.ctalogo{height:56px;width:auto;display:block;margin:0 0 18px}
.footlogo{height:26px;width:auto;display:block}
.h1{font-size:76px}
.h2{font-size:44px}
.h2b{font-size:52px}
.h2m{font-size:56px}
.heropad{padding:130px var(--gx) 0}

/* ---- motion layer (additive, respects reduced motion) ---- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
.rv.on{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}
.rv-d2{transition-delay:.16s}
.rv-d3{transition-delay:.24s}
@media (prefers-reduced-motion: reduce){
html{scroll-behavior:auto}
.rv{opacity:1;transform:none;transition:none}
.mtrack{animation:none}
.marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
.livedot,.cursor{animation:none}
}

/* ---- responsive ---- */
@media (max-width:1180px){
:root{--gx:44px}
.h1{font-size:60px}
.h2{font-size:38px}
.h2b{font-size:44px}
.h2m{font-size:46px}
.blocks{grid-template-columns:1fr 1fr}
.block{min-height:190px}
.step{grid-template-columns:130px 1fr 260px;gap:24px}
.stat{padding:30px 44px}
}
@media (max-width:780px){
:root{--gx:20px}
.navwrap{padding:0 14px;top:12px}
.nav{padding:10px 16px}
.navlinks{display:none}
.navlogo{height:22px !important}
.navcta{display:none}
.navburger{display:flex}
.navmenu{display:flex}
.h1{font-size:40px}
.h2{font-size:30px}
.h2b{font-size:34px}
.h2m{font-size:36px}
.heropad{padding:104px 18px 0}
.marquee{padding:28px 0 8px}
.mset{gap:14px;padding-right:14px}
.tiltc{width:168px;height:220px}
.reel{width:148px;height:264px}
.statrow{grid-template-columns:1fr}
.stat{padding:26px 22px;border-right:none;border-bottom:1px solid rgba(10,10,10,.12)}
.stat:last-child{border-bottom:none}
.statn{font-size:28px}
.blocks{grid-template-columns:1fr}
.block{min-height:210px;gap:18px}
.rxrow{flex-direction:column;align-items:flex-start}
.whead{flex-wrap:wrap;gap:16px}
.wcard{width:240px;--fh:310px}
.step{grid-template-columns:1fr;gap:10px;padding:26px 0}
.frow{flex-direction:column}
.foot{flex-direction:column;gap:16px}
.ctalogo{height:44px}
.h2m{max-width:100%}
}
@media (max-width:400px){
.h1{font-size:34px}
.tiltc{width:148px;height:196px}
.glassbtn{padding:14px 24px;font-size:14px}
}
