:root{--bg:#f1f1ef;--ink:#111;--muted:#555;--accent:#ff5c00;--pad:5vw;
--head:'Bricolage Grotesque',system-ui,sans-serif;--body:'Inter',system-ui,sans-serif}
*{margin:0;padding:0;box-sizing:border-box}
html,body{max-width:100%;overflow-x:clip}
@supports not (overflow:clip){html,body{overflow-x:hidden}}
body{font-family:var(--body);background:var(--bg);color:var(--ink)}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink);color:var(--bg)}

.nav{position:fixed;inset:0 0 auto;z-index:100;border-bottom:1px solid transparent;transition:background .4s,backdrop-filter .4s,border-color .4s}
.nav.scrolled{background:rgba(241,241,239,.8);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom-color:rgba(17,17,17,.08)}
.nav-in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;max-width:1600px;margin:auto;padding:1.1rem var(--pad)}
.logo{justify-self:start;font-weight:800;font-size:1.6rem;letter-spacing:-.02em}
.logo sup{font-size:.5em}
.nav-links{display:flex;gap:1.9rem;justify-self:center;font-size:.95rem;font-weight:500}
.nav-links a{opacity:.7;transition:opacity .2s}
.nav-links a:hover{opacity:1}
.nav-links a.on{opacity:1;color:var(--accent)}
.btn-cta{justify-self:end;display:inline-flex;align-items:center;gap:.6rem;background:var(--ink);color:#fff;padding:.9rem 1.6rem;border-radius:999px;font-weight:600;font-size:.95rem;transition:transform .3s}
.btn-cta svg{width:16px;height:16px;transition:transform .25s}
.btn-cta:hover svg{transform:translateX(4px)}
@media(max-width:800px){.nav-links{display:none}.nav-in{grid-template-columns:1fr auto}}

.cur-dot,.cur-ring{position:fixed;left:0;top:0;pointer-events:none;border-radius:50%;z-index:9999}
.cur-dot{width:6px;height:6px;background:var(--ink);transition:opacity .3s}
.cur-ring{width:38px;height:38px;border:1.5px solid var(--ink);display:flex;align-items:center;justify-content:center;transition:width .3s,height .3s,background .3s,border-color .3s}
.cur-ring-text{font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:transparent;transition:color .25s}
.cur-ring.hovered{background:rgba(127,127,127,.12);border-color:transparent}
.cur-ring.view{width:92px;height:92px;background:var(--accent);border-color:var(--accent)}
.cur-ring.view .cur-ring-text{color:#fff}
.cur-ring.view~.cur-dot{opacity:0}
@media(hover:none){.cur-dot,.cur-ring{display:none}}

.btn-solid{display:inline-flex;align-items:center;gap:.6rem;background:var(--accent);color:#0a0a0a;font-weight:700;padding:1rem 1.8rem;border-radius:999px;transition:transform .3s}
.btn-solid svg{width:16px;height:16px;transition:transform .25s}
.btn-solid:hover svg{transform:translateX(4px)}
.btn-solid.small{padding:.8rem 1.4rem;font-size:.9rem}
.btn-solid.big{padding:1.2rem 2.6rem;font-size:1.1rem}
.btn-ghost{display:inline-flex;align-items:center;padding:1rem 1.8rem;border:1.5px solid rgba(17,17,17,.35);border-radius:999px;font-weight:600;transition:background .3s,color .3s}
.btn-ghost:hover{background:var(--ink);color:#fff}

.rv{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}

.m-hero{position:relative;min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center;padding:8rem var(--pad) 4rem;overflow:hidden}
#mDots{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.m-hero-in{position:relative;z-index:2}
.m-kicker{display:block;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:1.4rem}
.m-title{font-family:var(--head);font-weight:800;font-size:clamp(2.8rem,7.5vw,6.6rem);line-height:1;letter-spacing:-.03em}
.line{display:block;overflow:hidden;padding:.06em 0}
.line>span{display:block;transform:translateY(110%);transition:transform 1.1s cubic-bezier(.19,1,.22,1)}
body.loaded .line>span{transform:translateY(0)}
.line:nth-child(2)>span{transition-delay:.12s}
.slot{display:inline-block;overflow:hidden;height:1.15em;vertical-align:bottom;color:var(--accent);text-align:left}
.slot-reel{display:block;will-change:transform}
.slot-reel span{display:block;height:1.15em;line-height:1.15}
.m-sub{margin:1.6rem 0 2.2rem;max-width:46ch;color:var(--muted);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.7}
.m-cta{display:flex;gap:1rem;flex-wrap:wrap}

.phone-wrap{position:relative;z-index:2;display:flex;justify-content:center;perspective:1200px}
.phone{position:relative;width:min(300px,70vw);aspect-ratio:9/18.5;border-radius:44px;border:8px solid #111;background:#0a0a0a;box-shadow:0 40px 90px rgba(0,0,0,.35);will-change:transform;transition:transform .2s ease-out}
.phone-notch{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:38%;height:22px;background:#111;border-radius:0 0 14px 14px;z-index:3}
.phone-screen{position:absolute;inset:8px;border-radius:34px;overflow:hidden;background:linear-gradient(165deg,#1c1c1e,#2c2c2e)}
.ui-scroll{position:absolute;inset:0;padding:44px 14px 60px;animation:uiScroll 9s linear infinite}
@keyframes uiScroll{from{transform:translateY(0)}to{transform:translateY(-50%)}}
.ui-block{margin-bottom:14px}
.ui-bar{display:block;height:10px;border-radius:6px;background:rgba(255,255,255,.28);margin-bottom:8px}
.w60{width:60%}.w40{width:40%}.w50{width:50%}.w70{width:70%}
.ui-card-big{height:110px;border-radius:14px;background:linear-gradient(140deg,rgba(255,92,0,.55),rgba(255,92,0,.15))}
.ui-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.ui-card{height:80px;border-radius:12px;background:rgba(255,255,255,.08);padding:12px}
.ui-list i{display:block;height:34px;border-radius:10px;background:rgba(255,255,255,.1);margin-bottom:8px}
.phone-tabbar{position:absolute;left:8px;right:8px;bottom:8px;height:46px;border-radius:0 0 30px 30px;background:rgba(20,20,20,.9);display:flex;align-items:center;justify-content:space-around;z-index:3}
.phone-tabbar i{width:20px;height:20px;border-radius:7px;background:rgba(255,255,255,.25)}
.phone-tabbar i.on{background:var(--accent)}
.chip-float{position:absolute;background:#fff;color:#111;font-weight:700;font-size:.78rem;padding:.5rem .9rem;border-radius:999px;box-shadow:0 12px 30px rgba(0,0,0,.18);animation:cf 6s ease-in-out infinite}
.cf1{top:8%;left:6%}.cf2{top:20%;right:4%;animation-delay:-1.5s}.cf3{bottom:24%;left:2%;animation-delay:-3s}.cf4{bottom:12%;right:8%;animation-delay:-4.5s}.cf5{top:46%;left:-2%;animation-delay:-2s}
@keyframes cf{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

.m-band{background:var(--ink);color:#fff;overflow:hidden;padding:1.1rem 0}
.m-band-track{display:flex;width:max-content;animation:mb 22s linear infinite;font-family:var(--head);font-weight:800;font-size:clamp(1.4rem,3vw,2.4rem);text-transform:uppercase;white-space:nowrap}
.m-band-track span:nth-child(2){color:transparent;-webkit-text-stroke:1px #fff}
@keyframes mb{to{transform:translateX(-50%)}}

.m-sec-tag{display:block;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:1.2rem}
.m-sec-tag.dark{color:rgba(255,255,255,.5)}
.m-h2{font-family:var(--head);font-weight:800;font-size:clamp(2rem,5vw,4rem);line-height:1.05;letter-spacing:-.02em;max-width:20ch;margin-bottom:3rem}
.m-h2.dark{color:#fff}

.m-numbers{background:var(--ink);color:#fff;padding:6rem var(--pad)}
.m-num-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.m-num strong{display:block;font-family:var(--head);font-weight:800;font-size:clamp(2.4rem,4.5vw,4rem);letter-spacing:-.03em}
.m-num span{display:block;margin-top:.6rem;color:rgba(255,255,255,.55);font-size:.9rem;line-height:1.5}
@media(max-width:900px){.m-num-grid{grid-template-columns:1fr 1fr}}

.m-chal{padding:7rem var(--pad);background:var(--bg)}
.ch-list{border-top:1px solid rgba(17,17,17,.15)}
.ch-row{border-bottom:1px solid rgba(17,17,17,.15)}
.ch-q{width:100%;display:flex;align-items:center;gap:1.4rem;background:none;border:none;cursor:pointer;text-align:left;padding:1.8rem 0;font-family:var(--head);font-weight:700;font-size:clamp(1.2rem,2.4vw,1.8rem);letter-spacing:-.01em;color:var(--ink)}
.ch-i{font-family:var(--body);font-weight:700;font-size:.85rem;color:var(--accent)}
.ch-x{margin-left:auto;font-size:1.6rem;font-weight:400;transition:transform .4s;color:var(--muted)}
.ch-row.open .ch-x{transform:rotate(45deg);color:var(--accent)}
.ch-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.65,0,.35,1)}
.ch-a>div{overflow:hidden}
.ch-a p{padding:0 0 1.8rem 3.2rem;max-width:70ch;color:var(--muted);line-height:1.7}
.ch-row.open .ch-a{grid-template-rows:1fr}

.m-prin{background:var(--ink);color:#fff;padding:7rem var(--pad)}
.prin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12)}
.prin-card{background:var(--ink);padding:2.6rem 2rem;transition:background .35s}
.prin-card:hover{background:#161616}
.prin-n{display:block;font-size:.85rem;font-weight:700;color:rgba(255,255,255,.4);margin-bottom:2.4rem;transition:color .35s}
.prin-card:hover .prin-n{color:var(--accent)}
.prin-card h3{font-family:var(--head);font-weight:700;font-size:1.3rem;margin-bottom:.8rem}
.prin-card p{color:rgba(255,255,255,.6);font-size:.92rem;line-height:1.6}
@media(max-width:900px){.prin-grid{grid-template-columns:1fr}}

.m-proc{padding:7rem var(--pad);background:var(--bg)}
.spine-wrap{position:relative;max-width:1100px;margin:0 auto;padding-left:2rem}
.spine{position:absolute;left:6px;top:0;bottom:0;width:2px;background:rgba(17,17,17,.12)}
.spine-fill{position:absolute;left:0;top:0;width:100%;height:0;background:var(--accent)}
.step{position:relative;display:grid;grid-template-columns:1fr 1.4fr;gap:3rem;padding:2.6rem 0;border-bottom:1px solid rgba(17,17,17,.1)}
.step-dot{position:absolute;left:-2rem;top:3.2rem;width:14px;height:14px;border-radius:50%;background:var(--bg);border:2px solid rgba(17,17,17,.3);transition:background .4s,border-color .4s,box-shadow .4s;margin-left:0}
.step.on .step-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 5px rgba(255,92,0,.18)}
.step-n{font-size:.85rem;font-weight:700;color:var(--muted)}
.step-l h3{font-family:var(--head);font-weight:700;font-size:clamp(1.3rem,2.4vw,1.9rem);margin-top:.4rem}
.step-r p{color:var(--muted);line-height:1.7;margin-bottom:1rem}
.step-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.step-chips i{font-style:normal;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(17,17,17,.2);border-radius:6px;padding:.4rem .7rem;color:#444}
@media(max-width:900px){.step{grid-template-columns:1fr;gap:1rem}}

.m-why{background:var(--ink);color:#fff;padding:7rem var(--pad)}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.inv-card{border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:2.4rem 2rem;transition:background .35s,color .35s,transform .35s}
.inv-card:hover{background:var(--bg);color:var(--ink);transform:translateY(-6px)}
.inv-card h3{font-family:var(--head);font-weight:700;font-size:1.25rem;margin-bottom:.8rem}
.inv-card p{font-size:.92rem;line-height:1.6;opacity:.75}
@media(max-width:900px){.why-grid{grid-template-columns:1fr}}

.m-cases{padding:7rem var(--pad);background:var(--bg)}
.case{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;margin-bottom:6rem}
.case-rev .case-media{order:2}
.case-media{position:relative;aspect-ratio:16/10;border-radius:16px;overflow:hidden;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.55);font-size:.8rem;letter-spacing:.14em;border:2px dashed rgba(255,255,255,.2);transition:transform .5s}
.case:hover .case-media{transform:scale(1.02)}
.cm-1{background:linear-gradient(160deg,#20242e,#07080d)}
.cm-2{background:linear-gradient(160deg,#e8e6e2,#8d877d);color:rgba(0,0,0,.45);border-color:rgba(0,0,0,.2)}
.case-tags{display:flex;gap:.6rem;margin-bottom:1.2rem}
.case-tags i{font-style:normal;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.case-info h3{font-family:var(--head);font-weight:700;font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.15;letter-spacing:-.02em;margin-bottom:1.6rem}
.case-meta{display:grid;grid-template-columns:1fr 1fr;gap:2rem;border-top:1px solid rgba(17,17,17,.15);padding-top:1.2rem;margin-bottom:1.4rem}
.case-meta span{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}
.case-meta p{font-size:.92rem;line-height:1.5}
.case-res{list-style:none;border-top:1px solid rgba(17,17,17,.15);padding-top:1.2rem;margin-bottom:1.8rem}
.case-res li{padding:.4rem 0 .4rem 1.4rem;position:relative;color:#333;font-size:.95rem}
.case-res li::before{content:'';position:absolute;left:0;top:1.05rem;width:7px;height:7px;border-radius:50%;background:var(--accent)}
@media(max-width:900px){.case,.case-rev{grid-template-columns:1fr}.case-rev .case-media{order:0}}

.m-cta-band{background:var(--ink);color:#fff;text-align:center;padding:8rem var(--pad)}
.m-cta-title{font-family:var(--head);font-weight:800;font-size:clamp(2.2rem,6vw,5rem);line-height:1.05;letter-spacing:-.03em;max-width:22ch;margin:0 auto}
.m-cta-title .cw{display:inline-block;opacity:0;transform:translateY(40px) rotate(4deg);transition:opacity .6s,transform .6s cubic-bezier(.2,.7,.2,1)}
.m-cta-title.in .cw{opacity:1;transform:none}
.m-cta-sub{margin:1.4rem 0 2.6rem;color:rgba(255,255,255,.6)}

.foot2{background:#0a0a0a;color:#e8e8e6;padding:4rem var(--pad) 2rem}
.f2-matrix{position:relative;height:30vh;min-height:200px}
#dotText{position:absolute;inset:0;width:100%;height:100%}
.f2-bottom{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding-top:1.5rem;color:#6f6f6d;font-size:.85rem;flex-wrap:wrap}
.f2-social{display:flex;gap:1.6rem}
.f2-social a{color:#bdbdbb;font-weight:600}.f2-social a:hover{color:#fff}
@media(max-width:900px){.m-hero{grid-template-columns:1fr;padding-top:7rem}.phone-wrap{margin-top:2rem}.f2-matrix{height:22vh}}

.m-chal-title,.m-chal h2{color:#0a0a0a !important}

.m-craft{position:relative;overflow:hidden}
.m-craft::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;
background:radial-gradient(620px 320px at var(--mx,50%) var(--my,0%),rgba(255,92,0,.12),transparent 70%)}
.m-craft:hover::before{opacity:1}
.m-craft-card{position:relative;overflow:hidden;will-change:transform;
transition:transform .5s cubic-bezier(.2,.7,.2,1),border-color .4s,background .4s}
.m-craft-card::after{content:'';position:absolute;left:0;top:0;height:2px;width:100%;
background:linear-gradient(90deg,var(--accent),transparent);
transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.m-craft-card:hover::after{transform:scaleX(1)}
.m-craft-card:hover{border-color:rgba(255,92,0,.45);background:#101010}
.m-craft-n{display:inline-block;transition:color .35s,transform .45s cubic-bezier(.34,1.56,.64,1)}
.m-craft-card:hover .m-craft-n{color:var(--accent);transform:translateY(-4px) scale(1.15)}
.m-craft-card h3,.m-craft-card p{transition:transform .45s cubic-bezier(.2,.7,.2,1),color .3s}
.m-craft-card:hover h3,.m-craft-card:hover p{transform:translateX(6px)}
.m-craft-card:hover p{color:rgba(255,255,255,.75)}

.rv{opacity:0;transform:translateY(34px);
transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}

.lm{display:inline-block;overflow:hidden;vertical-align:bottom}
.lm .w{display:inline-block;transform:translateY(110%);transition:transform .9s cubic-bezier(.19,1,.22,1)}
.in .lm .w{transform:translateY(0)}

.m-proc{position:relative}

.m-case-media{overflow:hidden}
.m-case-media img,.m-case-media .ph{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.m-case:hover .m-case-media img,.m-case:hover .m-case-media .ph{transform:scale(1.06)}

.m-stat.in strong{animation:mpop .7s cubic-bezier(.34,1.56,.64,1)}
@keyframes mpop{0%{transform:scale(.6);opacity:0}100%{transform:scale(1);opacity:1}}
.m-cta-btn svg{animation:mnudge 1.6s ease-in-out infinite}
@keyframes mnudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}

.proc::before,
.proc-wrap::before,
.proc-steps::before,
.proc-grid::before,
.proc-mid,
.proc-divider{display:none !important}

.m-proc::before{display:none !important}