
/* Layout: Mori's structure. Full-bleed photo hero, 12-column text sections, hairline image grids, one tinted band, centered call to action. */
@font-face{font-family:"Public Sans";src:url(public-sans-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{--ink:#0B1530;--mute:#46516B;--ice:#DFE7F2;--ice2:#F1F5FA;--line:#0B153019;--yellow:#FFD23F;--white:#fff;--sans:"Public Sans",Helvetica,Arial,sans-serif;--gl:max(24px,env(safe-area-inset-left,0px));--gr:max(24px,env(safe-area-inset-right,0px))}
*{box-sizing:border-box}
html{color-scheme:light}
body{margin:0;background:var(--white);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:700;letter-spacing:-.018em;text-wrap:balance}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.w{max-width:1200px;margin-inline:auto;padding-left:var(--gl);padding-right:var(--gr)}
.lab{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.s{border-bottom:1px solid var(--line);padding-block:clamp(64px,8vw,96px)}
.s h2{font-size:clamp(1.9rem,3vw,2.3rem);line-height:1.15}
.two{display:grid;grid-template-columns:repeat(12,1fr);gap:48px}
.two>.a{grid-column:span 5;display:flex;flex-direction:column;gap:14px}
.two>.b{grid-column:span 7;display:flex;flex-direction:column;gap:18px;font-size:1.12rem;color:var(--mute)}
.top{display:flex;flex-direction:column;gap:14px;margin-bottom:clamp(36px,4vw,48px);max-width:760px}
.btn{display:inline-block;padding:14px 26px;font-size:.92rem;font-weight:600;text-decoration:none;text-align:center;border:1px solid var(--ink);background:var(--ink);color:#fff}
.btn:hover{background:#26335a}
.btn.wh{background:#fff;color:var(--ink);border-color:#fff}.btn.wh:hover{background:var(--yellow);border-color:var(--yellow)}
.btn.ln{background:transparent;color:var(--ink)}.btn.ln:hover{background:var(--ice)}
/* header */
header{position:fixed;inset:0 0 auto;z-index:50;color:#fff;transition:background .25s,color .25s;padding-top:env(safe-area-inset-top,0px)}
header.on{background:#fff;color:var(--ink);box-shadow:0 1px 0 var(--line)}
.bar{height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:1.2rem;letter-spacing:-.01em}
.brand img{width:34px;height:34px}
nav{display:flex;align-items:center;gap:28px;font-size:.93rem;font-weight:500}
nav a{text-decoration:none}nav a:hover{text-decoration:underline;text-underline-offset:5px}
.ham{display:none;position:relative}
.ham summary{list-style:none;cursor:pointer;width:32px;height:24px;display:flex;flex-direction:column;justify-content:space-between;padding:4px 0}
.ham summary::-webkit-details-marker{display:none}
.ham summary i{display:block;height:2px;background:currentColor}
.hm{position:absolute;right:0;top:36px;width:230px;background:#fff;color:var(--ink);padding:10px 18px;box-shadow:0 16px 40px #0b153033;display:flex;flex-direction:column}
.hm a{padding:10px 0;text-decoration:none;font-weight:500;border-bottom:1px solid var(--line)}.hm a:last-child{border:0}
/* hero */
.hero{position:relative;color:#fff;border-bottom:1px solid var(--line);background:#2b3648}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b153080 0,#0b153040 45%,#0b153000 72%),linear-gradient(180deg,#0b153059 0,#0b153000 60%)}
.hero .w{position:relative;z-index:2;padding-top:clamp(130px,16vh,170px);padding-bottom:48px;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.hero h1{font-size:clamp(2.5rem,5vw,4rem);line-height:1.08;max-width:15em;letter-spacing:-.025em;text-shadow:0 1px 24px #0b153059}
.hero p{font-size:clamp(1.05rem,1.4vw,1.2rem);max-width:33em;line-height:1.55;text-shadow:0 1px 16px #0b153080}
.hero.home{min-height:max(640px,min(100vh,900px))}
.hero.in{min-height:max(460px,min(68vh,620px))}
/* hairline grids */
.g{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.g>*{background:#fff;min-width:0}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g5{grid-template-columns:repeat(5,1fr)}
.card{display:flex;flex-direction:column;text-decoration:none}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.card div{padding:clamp(22px,2.6vw,32px);display:flex;flex-direction:column;gap:8px}
.card h3{font-size:1.25rem}.card p{color:var(--mute);font-size:1rem}
.card span{margin-top:10px;font-size:.92rem;font-weight:600}
.card:hover span{text-decoration:underline;text-underline-offset:4px}
.c{padding:clamp(22px,2.4vw,30px);display:flex;flex-direction:column;gap:8px}
.c h3{font-size:1.08rem;line-height:1.25}.c p{color:var(--mute);font-size:.97rem;line-height:1.5}
.c img{width:44px;height:44px;margin-bottom:6px}
.wide{width:100%}
.shot{border:1px solid var(--line);width:100%}
.cap{margin-top:12px;font-size:.84rem;color:var(--mute)}
.band{background:var(--ice)}
.band .two>.b{color:var(--ink)}
.phones{display:grid;gap:clamp(16px,3vw,36px);align-items:start}
.phones.p3{grid-template-columns:repeat(3,1fr);max-width:960px;margin-inline:auto}
.phones.p4{grid-template-columns:repeat(4,1fr)}
figure{margin:0;display:flex;flex-direction:column;gap:12px;min-width:0}
figcaption{font-size:.95rem;color:var(--mute);line-height:1.4}figcaption b{display:block;color:var(--ink);font-size:1.05rem}
.logos{display:grid;grid-template-columns:repeat(3,1fr)}
.logos>div{padding:30px 24px;display:flex;align-items:center;justify-content:center;gap:16px}
.logos img{max-height:84px;width:auto}
.logos .u img{max-height:62px}
.ctr{text-align:center}.ctr .w{display:flex;flex-direction:column;align-items:center;gap:18px}
.ctr p{color:var(--mute);font-size:1.12rem;max-width:32em}
.btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:6px}
dl{margin:0}.tk dl div{display:grid;grid-template-columns:100px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:.97rem}
.tk dt{color:var(--mute)}.tk dd{margin:0;font-weight:500}
.tk h3{font-size:1.3rem;margin:4px 0 12px}
.tk .c.o{background:var(--ice2)}.tk .c.o dd{font-weight:400;color:var(--mute)}
.conv{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:center}
.talk{display:flex;flex-direction:column;gap:12px;font-size:1.1rem;line-height:1.4}
.talk p{max-width:82%;padding:13px 17px;border-radius:16px}
.talk .ag{background:var(--ice);border-bottom-left-radius:3px;align-self:flex-start}
.talk .me{background:var(--ink);color:#fff;border-bottom-right-radius:3px;align-self:flex-end}
.talk small{display:block;font-size:.76rem;font-weight:600;opacity:.7;margin-bottom:2px}
.mail{font-weight:600;overflow-wrap:anywhere}
footer{padding-block:34px;font-size:.88rem;color:var(--mute);padding-bottom:max(34px,env(safe-area-inset-bottom,0px))}
footer .w{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between}
footer .brand{color:var(--ink);font-size:1.05rem}footer .brand img{width:26px;height:26px}
.fl{display:flex;flex-wrap:wrap;gap:8px 20px}.fl a{text-decoration:none}.fl a:hover{text-decoration:underline}
.fine{flex-basis:100%;font-size:.78rem}
@media (max-width:900px){
 nav{display:none}.ham{display:block}
 .conv{grid-template-columns:1fr}.conv>img{max-width:min(300px,100%);margin-inline:auto}
 .two{grid-template-columns:1fr;gap:18px}.two>.a,.two>.b{grid-column:auto}
 .g3,.g4,.g5{grid-template-columns:repeat(2,1fr)}
 .phones.p4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:620px){
 body{font-size:16px}
 .g2,.g3,.g4,.g5{grid-template-columns:1fr}
 .phones.p3{grid-template-columns:1fr;max-width:300px;margin-inline:auto}
 .phones.p4{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-inline:calc(-1*var(--gl)) calc(-1*var(--gr));padding-inline:var(--gl) var(--gr);scroll-padding-inline:var(--gl)}
 .phones.p4::-webkit-scrollbar{display:none}
 .phones.p4>figure{flex:0 0 min(76vw,300px);scroll-snap-align:start}
 .phones.p4:after{content:"";flex:0 0 1px}
 .swipe2{display:block}
 .logos{grid-template-columns:1fr}
 .hero.home{min-height:max(600px,min(100vh,900px))}
 .hero:after{background:linear-gradient(180deg,#0b153099 0,#0b153073 50%,#0b153000 72%)}
 .btns,.btns .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){header{transition:none}}

/* kraft tickets, after the pitch deck */
.tix{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px);max-width:1040px;margin-inline:auto;padding-block:18px}
.tkt{position:relative;background:#E4E1D8;color:#4B4A42;border-radius:10px;padding:26px 30px 28px;transform:rotate(-1.6deg);box-shadow:0 18px 40px #0b153022;min-width:0}
.tkt.ok{background:#fff;color:var(--ink);transform:rotate(1.2deg);border-top:7px solid var(--ink);box-shadow:0 24px 70px 10px #ffd23f73,0 18px 40px #0b153022}
.tkt small{display:flex;justify-content:space-between;gap:12px;font-size:.78rem;letter-spacing:.03em;text-transform:uppercase}
.tkt h3{font-size:clamp(1.2rem,1.9vw,1.5rem);margin-top:4px;color:inherit}
.perf{position:relative;border-top:2px dashed #0b153033;margin:16px -30px 14px}
.perf:before,.perf:after{content:"";position:absolute;top:-14px;width:26px;height:26px;border-radius:50%;background:var(--ice)}
.perf:before{left:-13px}.perf:after{right:-13px}
.tkt dl div{display:grid;grid-template-columns:96px 1fr;gap:10px;padding:6px 0;font-size:.98rem}
.tkt dt{font-size:.82rem;letter-spacing:.03em;text-transform:uppercase;opacity:.75;padding-top:2px}
.tkt dd{margin:0}.tkt dd b{font-weight:700}
.tkt i.nil{display:inline-block;width:18px;height:1px;background:currentColor;vertical-align:middle}
.stamp{position:absolute;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border-radius:6px}
.stamp.no{right:24px;top:47%;color:#CF4F3E;border:3px solid #CF4F3E;padding:7px 16px;font-size:1.15rem;transform:rotate(-9deg)}
.stamp.go{right:-10px;top:-24px;background:#fff;color:var(--ink);border:2.5px solid var(--ink);padding:5px 14px;font-size:.84rem;transform:rotate(5deg)}
.stat strong{font-size:clamp(2.2rem,3.4vw,2.9rem);font-weight:700;letter-spacing:-.025em;line-height:1.05}
.stat small{font-size:.8rem;color:var(--mute);line-height:1.4;margin-top:6px}
.ex{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,32px);align-items:stretch}
.exc{padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:6px;background:#EFF1F4;color:#646D7F}
.exc.me{background:var(--yellow);color:var(--ink);box-shadow:0 22px 50px #ffd23f66}
.exc small{font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.exc h3{font-size:clamp(1.4rem,2.2vw,1.8rem);color:inherit;margin-bottom:10px}
.exc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.exc li{display:grid;grid-template-columns:30px 1fr;padding:12px 0;border-top:1px solid #0b15301f;font-size:1.04rem;line-height:1.35}
.exc.me li{font-weight:600}.exc li b{font-weight:700}
.qs{display:grid;grid-template-columns:1fr 1fr;background:var(--ice);border-bottom:1px solid var(--line)}
.qs>div{padding:clamp(48px,7vw,88px) clamp(24px,5vw,72px);display:flex;flex-direction:column;gap:16px;justify-content:center}
.qs>img{width:100%;height:100%;min-height:340px;object-fit:cover}
.qs h2{font-size:clamp(2.1rem,3.6vw,3rem);line-height:1.08;font-weight:700;letter-spacing:-.02em}
.qs em{font-style:normal;background:linear-gradient(transparent 62%,var(--yellow) 62%)}
.chips{display:flex;flex-wrap:wrap;gap:10px}.chips span{border:1px solid var(--ink);padding:7px 14px;font-size:.93rem;font-weight:600;background:#fff}
.tx{display:flex;flex-direction:column;gap:18px;font-size:1.12rem;color:var(--mute)}
.tx h2{color:var(--ink);font-size:clamp(1.9rem,3vw,2.3rem);line-height:1.15}
.conv.rev{grid-template-columns:minmax(0,1fr) minmax(0,340px)}
.fl2{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;color:var(--ink);font-size:1.02rem}
.fl2 li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line)}.fl2 li span{color:var(--mute)}
.qq small{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.qq p{color:var(--ink);font-size:1.12rem;line-height:1.35;font-weight:500}
.rt{display:grid;grid-template-columns:1fr auto;border-top:1px solid #0b153033;font-size:1.04rem}
.rt>*{padding:13px 0;border-bottom:1px solid #0b153033}.rt b{font-weight:700;text-align:right;padding-left:16px}
.flow{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.flow li{background:var(--ice);padding:14px 12px;font-weight:600;font-size:.95rem;text-align:center;position:relative}
.more{display:inline-block;margin-top:22px;font-weight:600;text-underline-offset:4px}
@media (max-width:900px){.ex,.qs{grid-template-columns:1fr}.conv.rev{grid-template-columns:1fr}.conv.rev>img{order:-1}.flow{grid-template-columns:repeat(3,1fr)}}
@media (max-width:620px){.flow{grid-template-columns:repeat(2,1fr)}}
.dd{position:relative;padding-block:14px}
.car{display:inline-block;width:7px;height:7px;margin:0 2px 3px 8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg)}
.ddm{display:none;position:absolute;left:-18px;top:100%;min-width:190px;background:#fff;color:var(--ink);box-shadow:0 16px 40px #0b153033;flex-direction:column;padding:8px 0}
.dd.open .ddm{display:flex}
@media (hover:hover){.dd:hover .ddm,.dd:focus-within .ddm{display:flex}}
.ddm a{padding:9px 18px;white-space:nowrap}.ddm a:hover{background:var(--ice);text-decoration:none}
.hm a.sub{padding-left:16px;font-weight:400;color:var(--mute)}
.hero .uph{position:absolute;left:auto;top:auto;right:max(4vw,calc((100vw - 1200px)/2 + 40px));bottom:-150px;width:300px;height:auto;z-index:2;filter:drop-shadow(0 24px 40px #0b153080)}
.hero.in{overflow:hidden}
.qs.in{margin-top:clamp(20px,3vw,32px);border:0}
.qs.in>div{padding:clamp(32px,4vw,56px)}
.qs.in>img{min-height:280px}
@media (max-width:1180px){.hero .uph{display:none}}
.shotw{overflow-x:auto;-webkit-overflow-scrolling:touch}
.swipe{display:none}.swipe2{display:none;margin-top:14px;font-size:.84rem;color:var(--mute)}
@media (max-width:760px){.swipe{display:inline}}
@media (max-width:620px){.swipe2{display:block}}
@media (min-width:621px) and (max-width:900px){.g3>:last-child:nth-child(odd),.g5>:last-child:nth-child(odd){grid-column:1/-1}}
@media (max-width:760px){.shotw .shot{width:820px;max-width:none}}
.bigc{display:flex;justify-content:center;margin-top:clamp(36px,5vw,56px)}
.btn.big{background:var(--yellow);border-color:var(--yellow);color:var(--ink);font-size:clamp(1.1rem,1.6vw,1.3rem);font-weight:700;padding:20px 48px;box-shadow:0 14px 34px #ffd23f73}
.btn.big:hover{background:#ffc400;border-color:#ffc400}
@media (max-width:620px){.btn.big{width:100%}}
.wy svg{width:42px;height:42px;margin-bottom:8px}
.pv{background:#0A1626;border-radius:14%/6.7%;padding:2.7%;box-shadow:inset 0 0 0 2px #2A3C52;min-width:0}
.pv video{display:block;width:100%;height:auto;aspect-ratio:388/842;border-radius:12%/5.5%;background:#F4F6F7}
.pv.demo{border-radius:9%/5.6%;padding:2.7%}.pv.demo video{aspect-ratio:448/712;border-radius:7%/4.4%;background:#000}
.pvw{min-width:0}
@media (max-width:900px){.conv>.pv,.conv>.pvw{width:100%;max-width:min(300px,100%);margin-inline:auto}.conv.rev>.pv{order:-1}}
.asks{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:center}
.side{display:flex;flex-direction:column;gap:clamp(20px,3vw,32px)}
.qq{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);padding:clamp(20px,2.4vw,28px)}
@media (max-width:900px){.asks{grid-template-columns:1fr 1fr}.asks>.pv{grid-column:1/-1;grid-row:1;width:100%;max-width:300px;margin-inline:auto}}
@media (max-width:620px){.asks{grid-template-columns:1fr}}
.band .talk .ag{background:#fff}
.tx .talk p{color:var(--ink)}.tx .talk .me{color:#fff}
/* comparison */
.vs{display:grid;grid-template-columns:repeat(3,1fr) 1.25fr;gap:14px;align-items:stretch}
.vc{background:#EFF1F4;color:#7E8798;padding:26px 22px;display:flex;flex-direction:column;gap:16px;min-width:0}
.vc svg.ic{width:42px;height:42px}
.vc h3{font-size:1.08rem;color:#646D7F}
.vc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;font-size:.92rem}
.vc li{display:grid;grid-template-columns:20px 1fr;gap:9px;line-height:1.3}
.vc li svg{width:18px;height:18px;margin-top:1px}
.vc.me{background:var(--yellow);color:var(--ink);padding:36px 28px;margin-block:-14px;box-shadow:0 22px 50px #ffd23f66}
.vc.me h3{color:var(--ink);font-size:1.5rem}
.vc.me ul{font-size:1.03rem;font-weight:600}
.pic{width:100%;height:clamp(240px,34vw,460px);object-fit:cover}
@media (max-width:900px){.vs{grid-template-columns:repeat(3,1fr)}.vc.me{grid-column:1/-1;grid-row:1;margin:0 0 4px}}
@media (max-width:760px){.tix{grid-template-columns:1fr;gap:48px}.tkt,.tkt.ok{transform:none}.stamp.go{right:10px}}
@media (max-width:620px){.vs{grid-template-columns:1fr}.stamp.no{top:43%;bottom:auto;right:16px;font-size:1rem}}
