/* Layout: four-column Swiss grid on white. Small text does the talking, one wordmark per page does the shouting. */
:root{
  --paper:#ffffff;
  --ink:#0b0b0b;
  --mute:#8a8a87;
  --rule:#e6e6e3;
  --cut:#ff3b12;
  --sans:"Inter Tight","Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --gut:clamp(16px,1.7vw,24px);
  --cols:minmax(0,1.3fr) minmax(0,1.7fr) minmax(0,1.2fr) minmax(0,1.5fr);
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%}
::selection{background:var(--ink);color:var(--paper)}
:focus-visible{outline:1.5px solid var(--ink);outline-offset:3px}
p{margin:0}
.page{padding-inline:var(--gut)}
.grid{display:grid;grid-template-columns:var(--cols);column-gap:var(--gut)}
.grid>*{min-width:0}
.mute{color:var(--mute)}
.span2{grid-column:2 / 4}
.span3{grid-column:2 / -1}
.end{justify-self:end;text-align:right}
.ul{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .35s}
.ul:hover,.ul.on{background-size:100% 1px}
.measure{max-width:44ch}

/* header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper);padding-block:14px}
header.top nav{display:flex;flex-direction:column;align-items:flex-start}
header.top .brand{font-weight:600;letter-spacing:-.02em}
header.top .brand sup{font-size:.6em;font-weight:500}
@media (max-width:760px){
  header.top .grid{grid-template-columns:1fr 1fr}
  header.top .clock{display:none}
  header.top nav.main{grid-column:2;justify-self:end;align-items:flex-end}
  header.top .side{display:none}
}

/* wordmark and page titles */
.wordmark{font-weight:600;font-size:16vw;line-height:.76;letter-spacing:-.06em;margin:0;white-space:nowrap;display:inline-flex;align-self:flex-start;width:max-content;align-items:flex-end;padding-top:.08em;overflow:hidden}
.wordmark .l{display:inline-block}
.wordmark sup{font-size:.13em;font-weight:500;letter-spacing:0;align-self:flex-end;margin:0 0 .02em .1em;line-height:1}
.fitwrap{display:flex;flex-direction:column}

/* hero */
.hero{min-height:calc(100svh - 60px);display:flex;flex-direction:column;justify-content:space-between;padding-block:clamp(48px,10vh,120px) 0}
.hero.sub{min-height:auto;padding-block:clamp(56px,12vh,140px) 0;gap:clamp(48px,8vw,110px)}
.hero-top{row-gap:24px;align-items:start}
.lede{font-size:clamp(15px,1.15vw,17px);max-width:32ch}
.lede b{font-weight:500}

/* sections */
section{padding-block:clamp(90px,13vw,180px) 0}
.statement{font-size:clamp(30px,4.1vw,60px);line-height:1.03;letter-spacing:-.045em;font-weight:500;margin:0;max-width:20ch;text-wrap:balance}
.statement .w{opacity:.14}
.big{font-size:clamp(28px,3.4vw,50px);line-height:1.02;letter-spacing:-.045em;font-weight:500;max-width:18ch;text-wrap:balance}
.stack{display:grid;gap:18px}
.stack-lg{display:grid;gap:clamp(22px,2.6vw,34px)}
.cols{row-gap:36px;align-items:start}
.cols ul{list-style:none;margin:0;padding:0}
.cols h3{font-size:15px;font-weight:400;margin:0 0 26px}
.cols li a{display:inline-block}
.nope li{transition:color .3s}
.nope li:hover{color:var(--mute);text-decoration:line-through;text-decoration-color:var(--cut);text-decoration-thickness:1.5px}
@media (max-width:760px){
  .grid.cols,.grid.two-sm{grid-template-columns:1fr 1fr}
  .span2,.span3{grid-column:1 / -1}
  .label-sm-hide{display:none}
}

/* index rows (services, work) */
.index{margin-top:clamp(36px,5vw,70px);border-top:1px solid var(--ink)}
.group{font-size:15px;padding-block:22px 10px;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:var(--cols);column-gap:var(--gut)}
.row{border-bottom:1px solid var(--rule)}
.row>button{all:unset;cursor:pointer;width:100%;display:grid;grid-template-columns:var(--cols);column-gap:var(--gut);align-items:baseline;padding-block:18px 16px;box-sizing:border-box}
.row>button:focus-visible{outline:1.5px solid var(--ink);outline-offset:-2px}
.row .no{font-size:15px;font-variant-numeric:tabular-nums}
.row .name{font-size:clamp(26px,3.2vw,48px);letter-spacing:-.045em;line-height:.98;font-weight:500;transition:transform .5s cubic-bezier(.2,.7,.1,1)}
.row .real{font-size:15px}
.row .pm{justify-self:end;font-size:15px;width:1em;text-align:center;transition:transform .35s}
.row>button:hover .name{transform:translateX(18px)}
.row.open .pm{transform:rotate(45deg)}
.detail{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s cubic-bezier(.2,.7,.1,1)}
.row.open .detail{grid-template-rows:1fr}
.detail>.in{overflow:hidden}
.detail .grid{padding-block:6px 30px;row-gap:18px}
.detail p{max-width:36ch}
.detail ul{list-style:none;margin:0;padding:0}
.detail h4{font-size:15px;font-weight:400;color:var(--mute);margin:0 0 6px}
@media (max-width:760px){
  .row>button,.group{grid-template-columns:2.4em 1fr auto}
  .row .real,.group .label-sm-hide{display:none}
  .detail .grid{grid-template-columns:1fr}
  .detail .grid>span:first-child{display:none}
}

/* simple list rows (work) */
.list{margin-top:clamp(36px,5vw,70px);border-top:1px solid var(--ink)}
.list .li{display:grid;grid-template-columns:var(--cols);column-gap:var(--gut);padding-block:16px 14px;border-bottom:1px solid var(--rule);align-items:baseline;transition:padding .4s cubic-bezier(.2,.7,.1,1)}
.list .li:hover{padding-left:14px}
.list .li strong{font-weight:500;font-size:clamp(20px,1.9vw,28px);letter-spacing:-.035em;line-height:1.05}
@media (max-width:760px){.list .li{grid-template-columns:1fr 1fr;row-gap:6px}.list .li strong{grid-column:1 / -1}}
.names{columns:4 180px;column-gap:var(--gut)}
.names li{list-style:none;padding:3px 0;break-inside:avoid}
.names{margin:0;padding:0}

/* floating cursor note */
.peek{position:fixed;left:0;top:0;z-index:40;pointer-events:none;background:var(--ink);color:var(--paper);padding:10px 12px;font-size:14px;max-width:280px;opacity:0;transform:translate(-999px,-999px);transition:opacity .2s}
.peek small{display:block;color:#9a9a96;font-size:12px;margin-bottom:3px}
.peek.on{opacity:1}
@media (hover:none){.peek{display:none}}

/* horizontal ecosystem */
.hwrap{position:relative;margin-top:clamp(36px,5vw,70px);border-top:1px solid var(--ink)}
.htrack{display:flex;width:max-content}
.v{width:clamp(260px,24vw,340px);min-height:min(68vh,560px);border-right:1px solid var(--rule);padding:18px var(--gut) 22px 0;margin-right:var(--gut);display:flex;flex-direction:column;gap:14px;position:relative}
.v .top{display:flex;justify-content:space-between;font-size:14px;color:var(--mute);font-variant-numeric:tabular-nums}
.v h3{font-size:clamp(26px,2.5vw,38px);letter-spacing:-.045em;line-height:.98;font-weight:500;margin:0;overflow-wrap:anywhere;transition:transform .5s cubic-bezier(.2,.7,.1,1)}
.v:hover h3{transform:translateY(-4px)}
.v .need{margin-top:auto;padding-top:14px;border-top:1px solid var(--rule)}
.v .need small{display:block;color:var(--mute);font-size:13px;margin-bottom:2px}
.v .go{font-weight:500}
.v .go.off{color:var(--mute);font-weight:400}
.v.here{background:var(--ink);color:var(--paper);padding-left:16px}
.v.here .top,.v.here .need small{color:#9a9a96}
.v.here .need{border-color:#333}
.hbar{height:2px;background:var(--rule);margin-top:18px}
.hbar i{display:block;height:100%;background:var(--ink);transform:scaleX(0);transform-origin:left}
.filters{display:flex;flex-wrap:wrap;gap:6px 18px}
.filters button{all:unset;cursor:pointer;color:var(--mute);transition:color .25s}
.filters button[aria-pressed="true"]{color:var(--ink)}
.filters button[aria-pressed="true"]::before{content:"→ "}
.filters button:focus-visible{outline:1.5px solid var(--ink)}
@media (max-width:899px){
  .hscroll{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .v{scroll-snap-align:start;min-height:420px}
  .hbar{display:none}
}

/* home strip */
.strip{overflow-x:auto;margin-top:28px;border-block:1px solid var(--rule);scrollbar-width:none;cursor:grab}
.strip::-webkit-scrollbar{display:none}
.strip .in{display:flex;width:max-content;padding-block:16px}
.strip a{font-size:clamp(24px,2.6vw,40px);letter-spacing:-.04em;font-weight:500;padding-right:clamp(22px,2.6vw,40px);white-space:nowrap;transition:color .25s}
.strip a span{color:var(--mute);font-weight:400;font-size:.45em;letter-spacing:0;vertical-align:super;margin-left:4px}
.strip:hover a{color:var(--mute)}
.strip a:hover{color:var(--ink)}

/* decoder */
.phr{list-style:none;margin:0;padding:0}
.phr button{all:unset;cursor:pointer;display:block;padding:3px 0;color:var(--mute);transition:color .25s}
.phr button:hover,.phr button[aria-pressed="true"]{color:var(--ink)}
.phr button[aria-pressed="true"]::before{content:"→ "}
.phr button:focus-visible{outline:1.5px solid var(--ink)}
.said{margin:0 0 14px;text-decoration:line-through;text-decoration-color:var(--cut);text-decoration-thickness:1.5px;max-width:34ch}
.meant{font-size:clamp(26px,2.9vw,44px);letter-spacing:-.04em;line-height:1.02;font-weight:500;margin:0;min-height:2.1em;max-width:16ch}

/* prose (understanding, approach) */
.prose{display:grid;gap:1.1em;max-width:58ch;font-size:clamp(16px,1.2vw,18px);line-height:1.55}
.prose h2{font-size:clamp(24px,2.4vw,34px);letter-spacing:-.04em;line-height:1.05;font-weight:500;margin:1.2em 0 0}

/* cta */
.cta{display:inline-flex;gap:10px;align-items:center;margin-top:30px;padding:14px 20px;background:var(--ink);color:var(--paper);font-weight:500;transition:gap .3s}
.cta:hover{gap:18px}
.cta.line{background:transparent;color:var(--ink);padding:0;border-bottom:1px solid var(--ink)}

footer{padding-block:clamp(100px,14vw,180px) calc(18px + env(safe-area-inset-bottom,0px))}
footer .grid{margin-top:14px;row-gap:12px;align-items:end}
@media (max-width:760px){footer .grid{grid-template-columns:1fr 1fr}}

@media (prefers-reduced-motion:reduce){*{transition:none!important}.statement .w{opacity:1}}
[data-go]{cursor:pointer}

/* ---------- v3: motion, contact, overrides ---------- */
.prog{position:fixed;left:0;right:0;top:0;height:2px;z-index:60;pointer-events:none}
.prog i{display:block;height:100%;background:var(--ink);transform:scaleX(0);transform-origin:left}
.cur{position:fixed;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#fff;mix-blend-mode:difference;pointer-events:none;z-index:70;transition:width .3s,height .3s,margin .3s;display:none}
.cur.big{width:56px;height:56px;margin:-28px 0 0 -28px}
@media (hover:hover) and (pointer:fine){.cur{display:block}}
.wordmark .l{will-change:transform}
.sel{user-select:all;-webkit-user-select:all}

/* ventures: compact cards, no dead space */
.v{min-height:0;height:auto;gap:12px;padding-bottom:20px}
.v .go{margin-top:auto;padding-top:18px}
.htrack{align-items:stretch}
.v{min-height:clamp(260px,34vh,340px)}
.v:active{transform:scale(.985)}
.swipe{display:none}
@media (max-width:899px){.swipe{display:inline}.scrollside{display:none}.v{min-height:240px;width:78vw}}

/* not-for-you strike on scroll */
.nope li{text-decoration:none!important}
.nope li span{position:relative;display:inline}
.nope li span::after{content:"";position:absolute;left:-.04em;right:-.04em;top:55%;height:.07em;background:var(--cut);transform:scaleX(var(--s,0));transform-origin:left}
.nope li:hover span::after{--s:1;transition:transform .5s}

/* offerings list hover */
.oflist li{transition:transform .35s cubic-bezier(.2,.7,.1,1),color .3s;cursor:default}
.oflist li:hover{transform:translateX(10px)}
.oflist:hover li{color:var(--mute)}.oflist:hover li:hover{color:var(--ink)}

/* accordion lists stagger in */
.detail li{transition:transform .5s cubic-bezier(.2,.7,.1,1),opacity .5s}
.row:not(.open) .detail li{transform:translateY(8px);opacity:.3}
.row.open .detail li:nth-child(2){transition-delay:.05s}.row.open .detail li:nth-child(3){transition-delay:.1s}.row.open .detail li:nth-child(4){transition-delay:.15s}

/* contact form */
.cform{border-top:1px solid var(--ink)}
.fq{padding-block:26px 30px;border-bottom:1px solid var(--rule);row-gap:14px}
.fq.last{border-bottom:0}
.qn{font-variant-numeric:tabular-nums;color:var(--mute)}
.ql{font-size:clamp(24px,2.6vw,38px);letter-spacing:-.04em;line-height:1.02;font-weight:500}
.qh{margin-top:6px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chip{position:relative;cursor:pointer;user-select:none;-webkit-user-select:none}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;padding:11px 16px;border:1px solid var(--rule);font-size:15px;transition:background .25s,color .25s,border-color .25s,transform .25s}
.chip:hover span{border-color:var(--ink)}
.chip input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chip input:focus-visible+span{outline:1.5px solid var(--ink);outline-offset:2px}
.chip:active span{transform:scale(.95)}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px var(--gut)}
.fld{display:grid;gap:6px}
.fld.wide{grid-column:1 / -1}
.fld span{color:var(--mute)}
.fld input,.fld textarea{font:inherit;font-size:17px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--rule);padding:8px 0;border-radius:0;transition:border-color .3s;width:100%;resize:vertical}
.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--ink)}
.fld.bad input,.fld.bad textarea{border-color:var(--cut)}
@media (max-width:760px){.fields{grid-template-columns:1fr}.fq .qn{grid-column:1 / -1}}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.brief{border-left:2px solid var(--ink);padding-left:14px;margin-bottom:22px;max-width:52ch}
.brief #brief{font-size:clamp(18px,1.6vw,22px);letter-spacing:-.02em;margin-top:4px}
.brief.flash{animation:flash .5s}
@keyframes flash{from{border-color:var(--cut)}to{border-color:var(--ink)}}
.ferr{color:var(--cut);min-height:1.4em;margin-bottom:8px}
.send[disabled]{background:var(--mute);cursor:not-allowed}
.sent{padding-block:20px}

/* 404 block */
.e404{position:fixed;inset:0;z-index:90;overflow-y:auto;background:var(--paper);display:flex;align-items:center;justify-content:center;padding:calc(24px + env(safe-area-inset-top,0px)) var(--gut) calc(24px + env(safe-area-inset-bottom,0px))}
.e404-in{width:100%;display:grid;gap:clamp(8px,1.6vh,14px);margin:auto 0}
.e404-code{font-weight:600;font-size:min(42vw,46vh,560px);line-height:.78;letter-spacing:-.07em;color:var(--ink)}
.e404-t{font-size:clamp(22px,2.4vw,34px);letter-spacing:-.035em;font-weight:500}
.e404-d{max-width:44ch}
.e404 .cta{justify-self:start;margin-top:10px;border:0;font:inherit;font-weight:500;cursor:pointer}
.e404.shake .e404-code{animation:shake .5s}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-14px)}40%{transform:translateX(12px)}60%{transform:translateX(-8px)}80%{transform:translateX(5px)}}

/* client ledger: names as running text, logo only on demand */
.lf{margin-top:8px}
.ledger{font-size:clamp(20px,2vw,30px);line-height:1.32;letter-spacing:-.035em;font-weight:500;max-width:62ch;margin-top:18px}
.ledger .sep{color:var(--rule);font-weight:400}
.ledger .cl{all:unset;display:inline;transition:color .35s}
.ledger .cl.has{cursor:pointer;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:color .35s,background-size .35s}
.ledger .cl.has:hover,.ledger .cl.has.on{background-size:100% 1px}
.ledger .cl.has:focus-visible{outline:1.5px solid var(--ink);outline-offset:2px}
.ledger .cl.dim{color:var(--rule)}
.ledger:hover .cl:not(:hover):not(.dim){color:var(--mute)}
.lpeek{position:fixed;left:0;top:0;z-index:80;pointer-events:none;width:150px;height:72px;background:var(--paper);border:1px solid var(--ink);display:flex;align-items:center;justify-content:center;padding:10px;opacity:0;transform:translate(-999px,-999px) scale(.9);transition:opacity .2s}
.lpeek.on{opacity:1}
.lpeek img{max-width:100%;max-height:100%;object-fit:contain}

/* homepage logo slot: one quiet window, one brand at a time */
.slot{display:inline-flex;flex-direction:column;align-items:flex-end;gap:10px}
.slot-win{display:block;width:150px;height:60px;overflow:hidden;border-bottom:1px solid var(--rule);padding-bottom:8px;transition:border-color .3s}
.slot:hover .slot-win{border-color:var(--ink)}
.slot-win img{display:block;width:100%;height:100%;object-fit:contain;object-position:right center;filter:grayscale(1);opacity:.5;transition:filter .4s,opacity .4s}
.slot:hover .slot-win img{filter:none;opacity:1}
.slot-n{color:var(--mute);font-variant-numeric:tabular-nums}
@media (max-width:760px){.slot{align-items:flex-start;margin-top:24px}.slot-win img{object-position:left center}.grid>.end:has(.slot){justify-self:start;grid-column:1 / -1}}

/* ---------- phone layout ---------- */
.wordmark{padding:.08em 0 .07em}
.menu-btn{display:none}
.mnav{position:fixed;inset:0;z-index:55;background:var(--paper);padding:calc(76px + env(safe-area-inset-top,0px)) var(--gut) calc(28px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;justify-content:space-between;overflow-y:auto}
.mnav nav{display:flex;flex-direction:column;gap:2px}
.mnav a{font-size:clamp(34px,10vw,48px);font-weight:500;letter-spacing:-.045em;line-height:1.08}
.mnav a.on{color:var(--mute)}
@media (max-width:760px){
  body{font-size:16px}
  header.top{padding-block:12px;z-index:60}
  header.top .grid{display:flex;justify-content:space-between;align-items:center}
  header.top .clock,header.top nav.main,header.top nav.side{display:none}
  .menu-btn{all:unset;display:inline-block;font:inherit;font-weight:500;cursor:pointer;padding:6px 0}
  .menu-btn:focus-visible{outline:1.5px solid var(--ink)}

  .grid,.grid.cols,.grid.two-sm,.group,.list .li{grid-template-columns:1fr!important;row-gap:12px}
  .grid>*,.span2,.span3,[style*="grid-column"]{grid-column:auto!important}
  .end,.lede.end{justify-self:start!important;text-align:left!important}
  footer .grid{grid-template-columns:1fr!important}

  .hero{min-height:0;padding-block:40px 0;gap:48px}
  .hero.sub{padding-block:40px 0;gap:40px}
  .hero-top{row-gap:12px}
  .lede{max-width:none;font-size:16px}
  .lede.mute.span2{max-width:40ch}
  section{padding-block:72px 0}
  section>.grid>span:first-child,.cols>span:first-child{color:var(--mute);font-size:14px}

  .statement{font-size:clamp(30px,9.4vw,40px);max-width:none}
  .big,.close .big{font-size:clamp(26px,7.6vw,34px);max-width:none}
  .nope.big li{font-size:clamp(24px,7vw,32px)}
  .measure{max-width:none}
  .cols h3{margin:6px 0 12px;color:var(--mute)}
  .oflist li{padding:3px 0}

  .index{margin-top:28px}
  .group{padding-block:22px 8px}
  .group>span:first-child,.group>span:nth-child(3){display:none}
  .row>button{grid-template-columns:2.2em 1fr 1.2em!important;padding-block:16px 14px}
  .row .name{font-size:clamp(22px,6.6vw,30px)}
  .row>button:hover .name{transform:none}
  .detail .grid{padding-block:0 24px}
  .detail .grid>span:first-child{display:none}

  .list .li{padding-block:14px}
  .list .li:hover{padding-left:0}
  .list .li strong{font-size:22px}
  .names{columns:2}
  .ledger{font-size:19px;line-height:1.4}

  .hwrap{margin-top:24px}
  .v{width:80vw;min-height:230px;padding-right:16px}
  .v h3{font-size:28px}
  .filters{gap:8px 16px}

  .phr button{padding:6px 0}
  .meant{font-size:clamp(26px,7.6vw,34px);min-height:0}

  .fq{padding-block:22px 24px;row-gap:8px}
  .qn{font-size:14px}
  .ql{font-size:clamp(24px,7vw,30px)}
  .chips{gap:6px;margin-top:14px}
  .chip span{padding:10px 13px;font-size:15px}
  .fields{grid-template-columns:1fr;gap:16px}
  .fld input,.fld textarea{font-size:16px}
  .send{width:100%;justify-content:center}
  .cta{padding:15px 20px}

  .prose{font-size:16px}
  .prose h2{font-size:24px}
  .slot{align-items:flex-start}
  .slot-win img{object-position:left center}
  .e404-t{font-size:24px}
}
@media (min-width:761px){.mnav{display:none!important}}
@media (max-width:760px){
  .group{display:flex!important;justify-content:space-between;align-items:baseline}
  .send,.e404 .cta{font:inherit;font-weight:500;font-size:16px}
}
.send{font:inherit;font-weight:500}

/* ---------- v5: bands, huge statement, accent, cards, sticky bar ---------- */
.dark{background:var(--ink);color:var(--paper);margin-inline:calc(-1 * var(--gut));padding:clamp(80px,11vw,150px) var(--gut);margin-top:clamp(90px,13vw,180px)}
.dark .mute,.dark h3.mute{color:#8d8d89}
.dark .cta.line{color:var(--paper);border-color:var(--paper)}
.dark+section{padding-top:clamp(90px,13vw,180px)}
.end-band{margin-bottom:0}
main>.view>section.end-band:last-child+*,main>section.end-band:last-child{margin-bottom:0}
footer{background:var(--paper)}

.huge{display:flex;flex-direction:column;gap:.02em}
.hw{display:block;align-self:flex-start;width:max-content;white-space:nowrap;font-weight:600;letter-spacing:-.06em;line-height:.82;font-size:16vw}
.hw.red{color:var(--cut)}
.band-foot{margin-top:clamp(36px,5vw,64px);row-gap:10px}
.band-foot .lede{font-size:clamp(18px,1.6vw,24px);max-width:34ch;letter-spacing:-.02em}

.glinks{margin-top:clamp(28px,4vw,48px);border-top:1px solid var(--ink)}
.gl{display:grid;grid-template-columns:3.2em 1fr auto;align-items:baseline;padding:16px 0 14px;border-bottom:1px solid var(--rule);font-size:clamp(28px,3.6vw,54px);font-weight:500;letter-spacing:-.045em;line-height:1}
.gl-n{font-size:15px;letter-spacing:0;color:var(--mute);font-variant-numeric:tabular-nums}
.gl-t{transition:transform .5s cubic-bezier(.2,.7,.1,1),color .3s}
.gl-a{font-size:.6em;transition:transform .4s,color .3s}
.gl:hover .gl-t{transform:translateX(14px);color:var(--cut)}
.gl:hover .gl-a{transform:translateX(6px);color:var(--cut)}

.dark .nope li{border:0}
.decor{margin-top:clamp(24px,3vw,40px);color:var(--cut);font-size:clamp(30px,4.4vw,64px);font-weight:500;letter-spacing:-.045em;line-height:1}

/* one accent: red-orange */
.cta:not(.line){background:var(--cut);color:#fff}
.cta:not(.line):hover{background:var(--ink)}
.dark .cta:not(.line):hover{background:var(--paper);color:var(--ink)}
.prog i{background:var(--cut)}
.mnav a.on{color:var(--cut)}
.e404-code{color:var(--cut)}
.send[disabled]{background:var(--mute)!important;color:#fff}

/* services: lie line */
.group{display:flex!important;justify-content:space-between;align-items:baseline}
.row{position:relative}
.lie{margin:0}
.lie s{text-decoration-color:var(--cut);text-decoration-thickness:2px;font-weight:500;letter-spacing:-.02em}
.index .row .lie{display:none;padding:0 0 10px calc(var(--gut) + (100% - 3 * var(--gut)) * 1.3 / 5.7);font-size:18px}
.index .row.open .lie{display:block}

/* sticky contact bar (phones) */
.stick{display:none}
@media (max-width:760px){
  .stick{display:flex;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:50;justify-content:space-between;align-items:center;background:var(--ink);color:var(--paper);padding:16px 18px;font-weight:500;transform:translateY(160%);transition:transform .45s cubic-bezier(.2,.7,.1,1)}
  .stick.show{transform:none}
  .stick span:last-child{color:var(--cut);font-size:20px}
  body[data-view="contact"] .stick{display:none!important}
  footer{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}

  .dark{padding-block:72px;margin-top:72px}
  .dark+section{padding-top:72px}
  .band-foot .lede{font-size:20px}
  .gl{grid-template-columns:2.4em 1fr auto;font-size:clamp(24px,7.4vw,32px);padding:14px 0 12px}
  .decor{font-size:clamp(28px,8vw,36px)}

  /* services become swipeable cards */
  .sgroup{margin-bottom:8px}
  .srows{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin-inline:calc(-1 * var(--gut));padding:4px var(--gut) 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .srows::-webkit-scrollbar{display:none}
  .srows .row{flex:0 0 84vw;scroll-snap-align:start;border:1px solid var(--ink);min-height:300px;display:flex;flex-direction:column;background:var(--paper)}
  .srows .row>button{display:flex!important;flex-direction:column;align-items:flex-start;gap:10px;padding:18px 18px 10px;width:100%}
  .srows .row .no{font-size:48px;font-weight:600;letter-spacing:-.05em;color:var(--ink);line-height:.9}
  .srows .row .name{font-size:28px}
  .srows .row .real{display:block!important;font-size:14px}
  .srows .row .pm{position:absolute;top:18px;right:18px;font-size:22px}
  .index .srows .row .lie{display:block;padding:4px 18px 18px;font-size:18px;margin-top:auto}
  .srows .row .detail .grid{padding:0 18px 18px}
  .srows .row.open{border-color:var(--cut)}
  .index{border-top:0}
  .group{border-bottom:0;padding-block:20px 6px}
}
.dark .nope.big{max-width:none}
@media (max-width:760px){
  .sgroup .group>span:first-child{display:inline!important;font-weight:500}
  .srows{scroll-padding-inline:var(--gut)}
}

/* ---------- overheard: characters talking ---------- */
.overheard .talk{display:grid;grid-template-columns:clamp(72px,8vw,110px) minmax(0,1fr) clamp(72px,8vw,110px);align-items:end;gap:clamp(10px,2vw,28px);max-width:860px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.peep{margin:0;align-self:end;transition:transform .35s cubic-bezier(.2,.7,.1,1)}
.peep img{display:block;width:100%;height:auto}
.peep.b img{transform:scaleX(-1)}
.peep.on{transform:translateY(-6px) rotate(-2deg)}
.peep.b.on{transform:translateY(-6px) rotate(2deg)}
.bubbles{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;min-height:clamp(150px,16vw,180px);padding-bottom:6px;overflow:hidden}
.bub{margin:0;display:flex}
.bub span{display:inline-block;max-width:88%;padding:10px 14px;border:1.5px solid var(--ink);border-radius:18px;font-size:clamp(15px,1.25vw,18px);line-height:1.3;letter-spacing:-.01em;background:var(--paper)}
.bub.a span{border-bottom-left-radius:4px}
.bub.b{justify-content:flex-end}
.bub.b span{background:var(--ink);color:var(--paper);border-bottom-right-radius:4px}
.bub.old span{opacity:.35}
.bub.typing span{letter-spacing:.2em;padding-block:6px}
.bub.typing i{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin:0 2px;animation:dot 1s infinite}
.bub.typing i:nth-child(2){animation-delay:.15s}.bub.typing i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,60%,100%{opacity:.2;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.talk-hint{margin-top:10px;font-size:13px}
@media (hover:hover){.talk-hint{visibility:hidden}}
@media (max-width:760px){
  .overheard .talk{grid-template-columns:62px minmax(0,1fr) 62px;gap:8px}
  .bubbles{min-height:168px}
  .bub span{font-size:15px;max-width:96%;padding:9px 12px}
}
.overheard .talk{grid-template-columns:clamp(96px,10vw,150px) minmax(0,1fr) clamp(96px,10vw,150px);max-width:960px}
.bub span{font-size:clamp(16px,1.35vw,20px)}
.bubbles{min-height:clamp(170px,17vw,210px)}
@media (max-width:760px){
  .overheard .talk{grid-template-columns:84px minmax(0,1fr) 84px;gap:6px}
  .bubbles{min-height:186px}
}

/* ---------- the cast: crowds everywhere ---------- */
.crowd{--h:200px;display:flex;justify-content:space-between;align-items:flex-end;height:var(--h);margin-bottom:-.15vw;position:relative;z-index:2}
.grp{display:flex;align-items:flex-end;height:100%}
.cp{position:relative;margin:0 calc(var(--h) * -.06);height:100%;transform-origin:50% 100%;animation:sway 5s ease-in-out infinite;-webkit-tap-highlight-color:transparent}
.grp .cp:nth-child(2){animation-delay:-1.7s}.grp .cp:nth-child(3){animation-delay:-3.1s}
.cp img{display:block;height:100%;width:auto;max-width:none}
.cp.flip img{transform:scaleX(-1)}
@keyframes sway{0%,100%{transform:rotate(0)}50%{transform:rotate(1deg)}}
.cp.talking{animation:chatter .32s ease-in-out infinite alternate}
@keyframes chatter{from{transform:translateY(0) rotate(-1.2deg)}to{transform:translateY(-2px) rotate(1.2deg)}}
.chat{position:absolute;top:2%;right:-4%;width:22px;height:22px;opacity:0;transition:opacity .2s}
.cp.flip .chat{right:auto;left:-4%;transform:scaleX(-1)}
.chat b{position:absolute;left:0;height:2.5px;width:11px;border-radius:2px;background:var(--ink);transform-origin:0 50%}
.chat b:nth-child(1){top:2px;transform:rotate(-35deg)}
.chat b:nth-child(2){top:10px;width:13px}
.chat b:nth-child(3){top:18px;transform:rotate(35deg)}
.dark .chat b{background:var(--paper)}
.cp.talking .chat{opacity:1;animation:blink .5s steps(2) infinite}
@keyframes blink{50%{opacity:.25}}
.say{position:absolute;left:50%;bottom:100%;transform:translate(-50%,6px) scale(.9);transform-origin:50% 100%;white-space:nowrap;background:var(--paper);color:var(--ink);border:1.5px solid var(--ink);border-radius:14px;padding:6px 11px;font-size:14px;font-weight:500;letter-spacing:-.01em;opacity:0;pointer-events:none;transition:opacity .25s,transform .3s cubic-bezier(.2,.9,.3,1.4)}
.cp.saying .say{opacity:1;transform:translate(-50%,-6px) scale(1)}
.crowd .grp:first-child .cp:first-child .say{left:0;transform:translate(0,6px) scale(.9);transform-origin:0 100%}
.crowd .grp:first-child .cp:first-child.saying .say{transform:translate(0,-6px) scale(1)}
.crowd .grp:last-child .cp:last-child .say{left:auto;right:0;transform:translate(0,6px) scale(.9);transform-origin:100% 100%}
.crowd .grp:last-child .cp:last-child.saying .say{transform:translate(0,-6px) scale(1)}
.c-hero{--h:clamp(160px,27vh,270px)}
.c-title{--h:clamp(110px,17vh,190px);justify-content:flex-end;gap:5vw}
.c-foot{--h:clamp(90px,13vh,150px)}
.c-band{--h:clamp(150px,19vw,240px);justify-content:flex-end;margin-top:clamp(30px,4vw,56px);margin-bottom:calc(-1 * clamp(80px,11vw,150px))}
.hero{gap:clamp(24px,4vh,48px)}
@media (max-width:760px){
  .c-hero{--h:150px}
  .c-title{--h:112px;justify-content:space-between}
  .c-foot{--h:96px}
  .c-band{--h:150px;margin-bottom:-72px}
  .crowd .grp:nth-child(n+3){display:none}
  .c-title .grp:nth-child(n+3){display:none}
  .say{font-size:13px;padding:5px 9px}
}
@media (prefers-reduced-motion:reduce){.cp,.cp.talking{animation:none}}

/* ---------- v7: hero crowd fills the gap, equal-size talkers ---------- */
.c-fill{height:100%;min-height:0;justify-content:space-between;overflow-x:clip;margin-bottom:-.3vw}
.c-fill .grp{flex:0 0 auto}
@media (min-width:761px){
  .hero.home{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(240px,1fr) auto;height:calc(100svh - 92px);min-height:640px;padding-block:clamp(28px,5vh,64px) 0;gap:clamp(14px,2.5vh,28px)}
}
@media (max-width:760px){
  .hero.home{gap:20px;padding-top:28px}
  .c-fill{height:230px}
}
.overheard .talk{grid-template-columns:auto minmax(0,1fr) auto;--ph:clamp(220px,20vw,290px)}
.overheard .peep img{height:var(--ph);width:auto;max-width:none}
.overheard .bubbles{min-height:calc(var(--ph) * .78)}
@media (max-width:760px){
  .overheard .talk{grid-template-columns:auto minmax(0,1fr) auto;--ph:168px;gap:6px}
}

.c-fill{align-items:flex-end}.c-fill .grp{height:auto;align-items:flex-end}.c-fill .cp img{height:100%}

/* ---------- the back room ---------- */
.door{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:8px 14px;border:1px solid var(--ink);border-radius:999px;font-weight:500;letter-spacing:-.01em;transition:background .3s,color .3s,gap .3s}
.door:hover{background:var(--ink);color:var(--paper);gap:12px}
.door-k{font-size:12px;opacity:.6}
.gate{min-height:calc(100svh - 92px);display:flex;align-items:center;margin-inline:calc(-1 * var(--gut));padding:60px var(--gut);background:var(--ink);color:var(--paper)}
.gate-in{display:grid;gap:18px;width:100%;max-width:560px}
.gate .mute{color:#8d8d89}
.gate-t{font-size:clamp(48px,9vw,120px);font-weight:600;letter-spacing:-.06em;line-height:.85}
.gate-f{display:grid;gap:8px}
.gate-row{display:flex;gap:8px}
.gate-row input{flex:1;min-width:0;font:inherit;font-size:18px;color:var(--paper);background:transparent;border:0;border-bottom:1.5px solid #555;padding:12px 0;border-radius:0;transition:border-color .3s}
.gate-row input:focus{outline:none;border-color:var(--paper)}
.gate-row .cta{margin:0;border:0;font:inherit;font-weight:500;cursor:pointer}
.gate-err{color:var(--cut);min-height:1.4em}
.gate.shake .gate-in{animation:shake .45s}
.engine{margin-top:clamp(28px,4vw,48px);border:1px solid var(--ink);background:#f6f5f0}
.engine iframe{display:block;width:100%;height:min(1100px,88svh);border:0}
.engine-alt{margin-top:12px;font-size:14px}
@media (max-width:760px){.engine iframe{height:86svh}.gate-row{flex-direction:column}.gate-row .cta{justify-content:center}}
.glink{margin-left:10px;color:var(--mute);font-weight:400}

/* ================= The Planner ================= */
.pl-hero .lede b{font-weight:600}
.pl-bar{height:6px;background:#2a2a28;border-radius:9px;overflow:hidden;margin-top:12px}
.pl-bar i{display:block;height:100%;width:0;background:var(--cut);border-radius:9px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.pl-bar.sm{height:4px;background:var(--rule);margin-top:8px}
.pl-prog{font-size:clamp(17px,1.5vw,22px);letter-spacing:-.02em}
.pl-prog b{font-weight:600}
#finder,#studio{scroll-margin-top:70px}
.pf-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gut);align-items:end}
.pf-q{font:inherit;font-size:18px;color:var(--paper);background:transparent;border:0;border-bottom:1.5px solid #555;padding:10px 0;width:100%;border-radius:0}
.pf-q:focus{outline:none;border-color:var(--paper)}
.pf-q::placeholder{color:#777}
.pchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:22px}
.pc{font:inherit;font-size:13px;padding:7px 12px;border:1px solid #444;border-radius:999px;background:transparent;color:#cfcfca;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.pc:hover{border-color:var(--paper);color:var(--paper)}
.pc.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.ptiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:1px;margin-top:28px;background:#2b2b29;border:1px solid #2b2b29}
.pt-tile{position:relative;display:grid;align-content:space-between;gap:26px;min-height:132px;padding:14px;text-align:left;font:inherit;color:var(--paper);background:var(--ink);border:0;cursor:pointer;overflow:hidden;transition:background .3s,color .3s}
.pt-tile::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--cut);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.pt-tile:hover,.pt-tile.cur{background:var(--paper);color:var(--ink)}
.pt-tile:hover::after,.pt-tile.cur::after{transform:scaleX(1)}
.pt-no{font-size:44px;font-weight:600;letter-spacing:-.06em;line-height:.8}
.pt-t{font-weight:500;letter-spacing:-.01em;line-height:1.15}
.pt-c{font-size:12px;color:#8d8d89;margin-top:-20px}
.pt-dot{position:absolute;top:14px;right:14px;width:9px;height:9px;border-radius:50%;border:1.5px solid #666}
.pt-tile[data-st=started] .pt-dot{border-color:var(--cut);background:linear-gradient(90deg,var(--cut) 50%,transparent 50%)}
.pt-tile[data-st=done] .pt-dot{border-color:var(--cut);background:var(--cut)}
.pf-key{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:13px;color:#8d8d89}
.pf-key i{display:inline-block;width:9px;height:9px;border-radius:50%;border:1.5px solid #666;margin-right:6px;vertical-align:-1px}
.pf-key .s{border-color:var(--cut);background:linear-gradient(90deg,var(--cut) 50%,transparent 50%)}
.pf-key .d{border-color:var(--cut);background:var(--cut)}

/* studio */
.st-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--ink)}
.st-nav{display:flex;gap:6px;flex-wrap:wrap}
.ub{font:inherit;font-size:13px;font-weight:500;padding:8px 13px;border:1px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;transition:background .25s,color .25s}
.ub:hover{background:var(--ink);color:var(--paper)}
.st-head{display:flex;align-items:flex-end;gap:clamp(12px,2vw,28px);margin:clamp(28px,4vw,56px) 0 clamp(28px,4vw,48px)}
.st-no{font-size:clamp(96px,17vw,240px);font-weight:600;letter-spacing:-.075em;line-height:.74;color:var(--cut)}
.st-t{margin:0;font-size:clamp(30px,4.4vw,64px);font-weight:500;letter-spacing:-.05em;line-height:.95;max-width:12ch;outline:none}
.st-t .mute{display:block;font-size:14px;letter-spacing:0;font-weight:400;margin-bottom:10px}
.st-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:clamp(24px,4vw,64px);align-items:start}
.st-teach{position:sticky;top:76px}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--rule);padding-bottom:10px}
.tab{font:inherit;font-size:14px;padding:7px 12px;border:0;border-radius:999px;background:transparent;color:var(--mute);cursor:pointer;transition:background .25s,color .25s}
.tab:hover{color:var(--ink)}
.tab[aria-selected=true]{background:var(--ink);color:var(--paper)}
.tpanel{padding:22px 0 26px;min-height:150px}
.tw{font-size:clamp(17px,1.35vw,21px);line-height:1.35;letter-spacing:-.015em}
.tpanel .mute+.tw{margin-top:10px}
.steps{margin:0;padding:0;list-style:none;counter-reset:s;display:grid;gap:12px}
.steps li{counter-increment:s;display:grid;grid-template-columns:28px 1fr;gap:8px;line-height:1.4}
.steps li::before{content:counter(s,decimal-leading-zero);font-size:12px;font-weight:600;color:var(--cut);padding-top:2px}
.avoid{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.avoid li{display:grid;grid-template-columns:22px 1fr;gap:6px}
.avoid li::before{content:"✕";color:var(--cut);font-weight:600}
.pro{background:var(--ink);color:var(--paper);padding:18px 20px;display:grid;gap:6px}
.pro span{font-size:12px;color:var(--cut);font-weight:600}
.pro p{font-size:16px;line-height:1.35}
.vsoon{margin-top:16px;font-size:13px}
.vsoon i{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid var(--rule);border-radius:50%;font-size:8px;font-style:normal;margin-right:6px}
.vid{margin-top:16px;aspect-ratio:16/9;background:#000}
.vid iframe{width:100%;height:100%;border:0;display:block}
.st-tool{border:1px solid var(--ink);padding:clamp(16px,2vw,26px)}
.st-th{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.saved{font-size:12px;color:var(--mute);opacity:0;transition:opacity .3s}
.saved.on{opacity:1}
.saved::before{content:"✓ ";color:var(--cut)}
.st-f{display:flex;flex-wrap:wrap;gap:16px 14px}
.fl{flex:1 1 100%;display:grid;gap:6px;min-width:0}
.fl.half{flex:1 1 calc(50% - 7px)}
.fl-l{font-size:13px;font-weight:500;color:#3d3d3b}
.st-f input[type=text],.st-f input[type=number],.st-f input[type=date],.st-f textarea,.st-f select{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#f6f6f3;border:1px solid transparent;border-radius:0;padding:11px 12px;transition:border-color .2s,background .2s;-webkit-appearance:none;appearance:none}
.st-f select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px}
.st-f textarea{resize:vertical;min-height:84px;line-height:1.4}
.st-f input:focus,.st-f textarea:focus,.st-f select:focus{outline:none;background:#fff;border-color:var(--ink)}
.affix{display:flex;align-items:stretch}
.affix i{display:grid;place-items:center;padding:0 10px;background:var(--ink);color:var(--paper);font-style:normal;font-size:13px;font-weight:500}
.affix input{flex:1;min-width:0}
.sug{display:flex;flex-wrap:wrap;gap:5px}
.sg{font:inherit;font-size:12px;padding:5px 9px;border:1px dashed #bdbdb8;border-radius:999px;background:transparent;color:#4a4a48;cursor:pointer;transition:border-color .2s,background .2s}
.sg:hover{border-style:solid;border-color:var(--ink);background:var(--ink);color:var(--paper)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.ch{font:inherit;font-size:14px;padding:8px 13px;border:1px solid #cfcfca;border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.ch:hover{border-color:var(--ink)}
.ch[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ch.nope{animation:shake .45s}
.rg-row{display:flex;align-items:center;gap:12px}
.rg input[type=range]{flex:1;accent-color:var(--cut);height:28px}
.rg output{min-width:28px;text-align:right;font-weight:600;font-size:18px}
.rg output.unset{color:var(--mute)}
.rg.unset input[type=range]{accent-color:#c9c9c4}
.ptab.long td:last-child{min-width:280px}
.col{display:flex;align-items:center;gap:10px}
.col input[type=color]{width:52px;height:44px;padding:0;border:1px solid var(--ink);background:none;cursor:pointer}
.col code{font-size:13px;color:var(--mute)}
.cks{display:grid;gap:6px}
.ck{display:flex;gap:10px;align-items:center}
.ck input[type=checkbox],.ptab input[type=checkbox]{width:20px;height:20px;accent-color:var(--cut);flex:none}
.ck input[type=text]{flex:1}
.tb{gap:10px}
.gen{display:grid;gap:8px;margin-bottom:6px}
.gen .mute{font-size:13px}
.cta.sm{margin-top:0;padding:11px 15px;font-size:14px;border:0;font-family:inherit;cursor:pointer;justify-self:start}
.tblw{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.ptab{border-collapse:collapse;width:100%;min-width:540px;font-size:14px}
.ptab th{font-size:12px;font-weight:500;text-align:left;padding:6px 6px 8px;color:#3d3d3b;border-bottom:1px solid var(--ink)}
.ptab tbody th{font-size:13px;font-weight:500;color:var(--ink);border-bottom:1px solid var(--rule);white-space:nowrap;padding-right:10px}
.ptab td{padding:3px 2px;border-bottom:1px solid var(--rule)}
.ptab td.tc{text-align:center}
.st-f .ptab input[type=text],.st-f .ptab input[type=number],.st-f .ptab input[type=date],.st-f .ptab select{font-size:14px;padding:8px;background:transparent}
.st-f .ptab input:focus,.st-f .ptab select:focus{background:#f6f6f3}
.ptab.long{min-width:620px}
.st-out{margin-top:22px;background:#f6f6f3;padding:clamp(16px,2vw,24px);display:grid;gap:16px}
.op{font-size:13px;color:var(--mute)}
.ot{font-size:13px;font-weight:600;letter-spacing:-.005em}
.ok{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ok li{display:flex;gap:8px;align-items:baseline;line-height:1.35;flex-wrap:wrap}
.ok li>i{font-style:normal;font-weight:700;flex:none;width:16px}
.ok li.y>i{color:#1f8a4c}
.ok li.x>i{color:var(--cut)}
.osg{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.os{background:var(--paper);padding:12px;display:grid;gap:4px}
.os span{font-size:12px}
.os b{font-size:20px;font-weight:600;letter-spacing:-.03em}
.os.hi b{font-size:28px;color:var(--cut)}
.st-out>.os{justify-self:start;min-width:180px}
.ob{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ob li{display:grid;grid-template-columns:minmax(0,38%) 1fr auto;gap:10px;align-items:center;font-size:14px}
.ob li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ob li i{height:10px;background:var(--ink);width:var(--w);transform-origin:left;animation:barin .7s cubic-bezier(.2,.8,.2,1)}
.ob li:first-child i{background:var(--cut)}
.ob li b{font-weight:600;font-size:13px}
@keyframes barin{from{transform:scaleX(0)}}
.sent{font-size:17px;line-height:1.4;letter-spacing:-.01em}
.sent b{font-weight:600}
.pre{white-space:pre-wrap;font:inherit;font-size:15px;line-height:1.45;margin:0;background:var(--paper);padding:14px;border:1px solid var(--rule)}
.card{background:var(--paper);padding:16px;border:1px solid var(--rule);display:grid;gap:6px}
.card-n{font-size:20px;font-weight:600;letter-spacing:-.03em;line-height:1.1}
.bcard{background:var(--c1);color:#fff;padding:22px;display:grid;gap:8px;position:relative;overflow:hidden}
.bcard .mute{color:rgba(255,255,255,.7)}
.bcard .sw{display:flex;gap:6px}
.bcard .sw i{width:26px;height:26px;border-radius:50%;border:1.5px solid rgba(255,255,255,.6)}
.bcard .sw i:nth-child(1){background:var(--c1)}
.bcard .sw i:nth-child(2){background:var(--c2)}
.bcard .sw i:nth-child(3){background:var(--c3)}
.bc-t{font-size:clamp(24px,2.6vw,34px);font-weight:600;letter-spacing:-.04em;line-height:1;color:var(--c2);mix-blend-mode:normal}
.bmc{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(3,34px);gap:3px;max-width:340px}
.bmc span{display:grid;place-items:center;font-size:12px;font-weight:600;border:1px solid #cfcfca;background:var(--paper);color:var(--mute)}
.bmc span.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.bmc .b-part{grid-area:1/1/3/2}.bmc .b-act{grid-area:1/2/2/3}.bmc .b-res{grid-area:2/2/3/3}.bmc .b-val{grid-area:1/3/3/4}.bmc .b-rel{grid-area:1/4/2/5}.bmc .b-chan{grid-area:2/4/3/5}.bmc .b-seg{grid-area:1/5/3/6}.bmc .b-cost{grid-area:3/1/4/3}.bmc .b-rev{grid-area:3/3/4/6}
.tmr{display:flex;align-items:center;gap:14px}
.tmr b{font-size:28px;font-weight:600;letter-spacing:-.04em;color:var(--cut)}
.mgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
.mgrid span{text-align:center;padding:8px 0;font-size:12px;border:1px solid #cfcfca;background:var(--paper)}
.mgrid span.d{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.mgrid span.now{outline:2px solid var(--cut);outline-offset:-2px}
.otab{border-collapse:collapse;width:100%;font-size:14px;background:var(--paper)}
.otab th,.otab td{padding:8px;text-align:left;border-bottom:1px solid var(--rule)}
.otab th{font-size:12px;font-weight:500;color:var(--mute)}
.otab tr.best td{background:var(--ink);color:var(--paper);font-weight:600}
.otab tr.loss td{color:var(--cut)}
.tows{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.tows li{background:var(--paper);padding:12px 14px;border-left:3px solid var(--ink);line-height:1.4}
.tows li:first-child{border-color:var(--cut)}
.tag{display:inline-block;font-size:11px;font-weight:600;padding:2px 7px;background:var(--ink);color:var(--paper);margin-right:8px;vertical-align:1px}
.persona{grid-template-columns:auto 1fr;align-items:center;gap:14px}
.av{width:54px;height:54px;border-radius:50%;background:var(--cut);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:600}
.pdl{display:grid;grid-template-columns:max-content 1fr;gap:8px 14px;margin:0}
.pdl dt{font-size:12px;color:var(--mute);padding-top:2px}
.pdl dd{margin:0}
.cmp2{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}
.cmp2>span{font-weight:600;color:var(--cut)}
.cmp{background:var(--paper);padding:14px;border:1px solid var(--rule);display:grid;gap:4px}
.radar{width:100%;max-width:420px;justify-self:center;overflow:visible}
.radar .rg{fill:none;stroke:#d6d6d2;stroke-width:1}
.radar .rg.o{stroke:var(--ink)}
.radar .ax{stroke:#d6d6d2}
.radar .dt{fill:rgba(255,59,18,.22);stroke:var(--cut);stroke-width:2;transition:all .4s}
.radar .dp{fill:var(--cut)}
.radar text{font-size:10.5px;fill:var(--ink);font-family:var(--sans)}
.nl{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--rule)}
.nl li{display:grid;grid-template-columns:1fr auto 20px;gap:10px;background:var(--paper);padding:10px 12px;align-items:center}
.nl li span{font-size:13px;color:var(--mute)}
.nl li i{font-style:normal;color:#1f8a4c;font-weight:700}
.nl li:first-child{border-left:3px solid var(--cut)}
.hnav{display:flex;align-items:center;gap:12px}
.hab{border-collapse:collapse;font-size:12px;background:var(--paper)}
.hab th{font-weight:500;padding:4px 2px;color:var(--mute);min-width:24px}
.hab th.now{color:var(--cut);font-weight:700}
.hab tbody th{text-align:left;color:var(--ink);white-space:nowrap;padding-right:10px;max-width:160px;overflow:hidden;text-overflow:ellipsis;position:sticky;left:0;background:var(--paper)}
.hab td{padding:2px;text-align:center}
.hd{width:22px;height:22px;border:1.5px solid #c9c9c4;background:transparent;transform:rotate(45deg) scale(.72);cursor:pointer;transition:background .15s,border-color .15s;padding:0}
.hd:hover{border-color:var(--ink)}
.hd[aria-pressed=true]{background:var(--cut);border-color:var(--cut)}
.hab .stk{font-weight:700;color:var(--cut);padding-left:8px}
.st-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}

/* order of operations */
.po-row{display:grid;grid-template-columns:60px minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr);gap:var(--gut);padding:22px 0;border-top:1px solid var(--rule);align-items:start}
.po-row:last-child{border-bottom:1px solid var(--rule)}
.po-n{font-size:32px;font-weight:600;letter-spacing:-.05em;line-height:.9;color:var(--cut)}
.po-t{font-size:20px;font-weight:500;letter-spacing:-.03em}
.po-ss{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.po-s{font:inherit;font-size:15px;padding:0;border:0;background-color:transparent;color:inherit;cursor:pointer;text-align:left}
.po-d{font-size:14px;justify-self:end;text-align:right}

/* my planner */
.mine{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px}
.mine .ub{border-color:var(--paper);color:var(--paper);font-size:14px;padding:10px 16px}
.mine .ub:hover{background:var(--paper);color:var(--ink)}
.mine .ub.prim{background:var(--cut);border-color:var(--cut)}
.series{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:clamp(28px,4vw,48px)}
.series a{background:var(--paper);padding:20px;display:grid;gap:30px;align-content:space-between;min-height:180px;transition:background .3s,color .3s}
.series a:hover{background:var(--ink);color:var(--paper)}
.series b{font-size:20px;font-weight:500;letter-spacing:-.03em;line-height:1.05}
.series span{font-size:14px}
.series a:hover .mute{color:#aaa}

/* print */
#plPrint{display:none}
@media print{
  body.pl-printing *{visibility:hidden!important}
  body.pl-printing #plPrint,body.pl-printing #plPrint *{visibility:visible!important}
  body.pl-printing #plPrint{display:block!important;position:absolute;left:0;top:0;width:100%;color:#000;font-family:var(--sans)}
  body.pl-printing .cur,body.pl-printing .stick{display:none!important}
  #plPrint .pp{page-break-after:always;padding:0 4mm}
  #plPrint h2{font-size:26px;letter-spacing:-.03em;margin:0 0 14px;border-bottom:2px solid #000;padding-bottom:8px}
  #plPrint h3{font-size:12px;margin:14px 0 4px;color:#555}
  #plPrint p,#plPrint li{font-size:13px;line-height:1.45}
  #plPrint table{border-collapse:collapse;width:100%;font-size:12px}
  #plPrint th,#plPrint td{border:1px solid #999;padding:4px 6px;text-align:left}
  #plPrint .pp-b{font-weight:600;margin-bottom:10px}
  #plPrint .pp-f{font-size:10px;color:#777}
}

@media (max-width:980px){
  .st-grid{grid-template-columns:1fr}
  .st-teach{position:static}
  .po-row{grid-template-columns:44px 1fr}
  .po-ss,.po-d{grid-column:2}
  .po-d{justify-self:start;text-align:left}
}
@media (max-width:760px){
  .pf-top{grid-template-columns:1fr}
  .ptiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pt-tile{min-height:116px;padding:12px;gap:20px}
  .pt-no{font-size:36px}
  .pt-t{font-size:14px}
  .st-head{flex-direction:column;align-items:flex-start;gap:8px}
  .st-no{font-size:110px}
  .st-t{font-size:clamp(30px,9vw,40px);max-width:none}
  .fl.half{flex-basis:100%}
  .st-tool{margin-inline:calc(-1 * var(--gut));border-left:0;border-right:0;padding-inline:var(--gut)}
  .st-out{margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut)}
  .ob li{grid-template-columns:minmax(0,42%) 1fr auto}
  .cmp2{grid-template-columns:1fr}
  .cmp2>span{justify-self:center}
}
