
:root{--ink:#1C1A17;--mu:#6B655C;--ac:#2E6A4E;--line:#E6EBE4;--band:#F6F7F4;--pale:#EDF5EA;--stone:#F1EEE7;--serif:'Newsreader',Georgia,serif;--sans:'Instrument Sans','Helvetica Neue',Arial,sans-serif;--mono:'IBM Plex Mono',ui-monospace,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit}
.wrap{max-width:1440px;margin:0 auto;padding:0 80px}
.mono,.label{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.label{color:var(--ac);display:block;margin-bottom:14px}
.mono-svg{font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:500;letter-spacing:.06em}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;margin:0;color:var(--ink)}
h1{font-size:clamp(40px,5.2vw,68px);line-height:1.04}
h2{font-size:clamp(30px,3.2vw,44px);line-height:1.1}
h3{font-size:25px;line-height:1.15}
p{margin:0}.muted{color:var(--mu)}
.btn{display:inline-flex;align-items:center;padding:14px 22px;border-radius:999px;font-size:15px;font-weight:500;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:var(--sans)}
.btn.dark{background:var(--ink);color:#fff}.btn.line{border-color:#D5DDD2;color:var(--ink);background:#fff}.btn.green{background:var(--ac);color:#fff}
.btn:hover{opacity:.88}
/* bar */
.bar{background:var(--stone);border-bottom:1px solid #E4DFD4;font-size:14px}
.bar .wrap{display:flex;align-items:center;justify-content:center;gap:14px;min-height:44px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px;text-align:center}
.bar .pill{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--ink);color:#fff}
.bar a{font-weight:600;text-underline-offset:3px}
/* nav */
.nav{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:10}
.nav .wrap{height:84px;display:flex;align-items:center;justify-content:space-between}
.brand{font-family:var(--serif);font-size:24px;text-decoration:none}
.links{display:flex;align-items:center;gap:32px;font-size:15px;font-weight:500}
.links a{text-decoration:none}.links a:not(.btn):hover{color:var(--ac)}
/* sections */
section{padding:96px 0}
.band{background:var(--band);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
.hero{padding:44px 0 56px}.hero h1{font-size:clamp(38px,3.9vw,56px);line-height:1.06}.hero .lead strong{color:var(--ink);font-weight:500}
.hero .copy{grid-column:1 / span 7;display:flex;flex-direction:column;gap:22px;align-self:center}
.hero .lead{font-size:18px;line-height:1.58;color:var(--mu);max-width:640px}
.hero .fig{grid-column:8 / span 5;align-self:center}
.actions{display:flex;gap:12px;flex-wrap:wrap}
.pattern .copy{grid-column:1 / span 5;display:flex;flex-direction:column;gap:18px;align-self:center}
.pattern .fig{grid-column:7 / span 6;background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px;align-self:center}
.pattern .note{font-size:14px;color:var(--mu);border-left:2px solid var(--ac);padding-left:14px}
.head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:end;margin-bottom:40px}
.head .h{grid-column:1 / span 7}.head .side{grid-column:9 / span 4;font-size:15px;color:var(--mu)}
.thesis .tree{font-family:var(--serif);font-size:22px;line-height:1.45;color:var(--ink);max-width:820px;margin:0 0 36px}
.figure{border:1px solid var(--line);border-radius:20px;padding:12px;background:#fff}
svg{display:block;width:100%;height:auto}.venn-v,.hero-m,.loop-m{display:none}
/* ladder */
.ladder{position:relative;border-top:1px solid var(--line)}
.ladder .axis{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);color:var(--mu)}
.rung{display:grid;grid-template-columns:44px 230px 1fr 320px;align-items:center;column-gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}
.rung .dot{width:13px;height:13px;border-radius:50%;background:var(--ac);margin-left:15px}
.rung.off{opacity:.45}.rung.off .dot{background:#fff;border:1.3px solid var(--ac)}
.cite{margin-top:18px;font-size:13px;color:var(--mu)}.cite a{text-underline-offset:3px}.rung .n{font-family:var(--serif);font-size:24px}.rung .d{font-size:15px;color:var(--mu)}.rung .w{font-size:14px;font-weight:600;color:var(--ac);text-align:right}
/* work */
.scales{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.scale-h{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:14px}
.scale-h .n{font-size:15px;font-weight:600}
.tile{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;display:flex;flex-direction:column}
.tile-empty{display:flex;align-items:center;justify-content:center;border:1px dashed #CFD8CB;border-radius:16px;color:var(--mu);min-height:200px}.tile .art{height:132px;background:var(--pale);border-bottom:1px solid var(--line)}
.tile .body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.tile .meta{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tile .kind{font-size:12px;font-weight:600;color:var(--mu)}
.status{padding:4px 10px;border-radius:999px;background:#EAF3EC;color:var(--ac);font-size:12px;font-weight:600;white-space:nowrap}
.tile p{font-size:15px;line-height:1.6;color:var(--mu)}
.tile .foot{margin-top:auto;padding-top:10px;border-top:1px dashed var(--line);display:flex;justify-content:space-between;align-items:center;font-size:14px}
.tile .foot .mono{font-size:11px;color:var(--mu)}
/* map */
.areas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.area{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.area .i{font-family:var(--mono);font-size:11px;color:var(--ac)}
.area .t{font-size:14px;font-weight:600;line-height:1.35}
.sw{display:flex;gap:5px}.sw span{width:15px;height:22px;border-radius:3px}
.mapcta{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:32px;flex-wrap:wrap}
/* about */
.about .h{grid-column:1 / span 5}.about .txt{grid-column:7 / span 6;display:flex;flex-direction:column;gap:18px;color:#34322D}
.creds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin-top:56px;padding-top:28px;border-top:1px solid var(--line);font-size:15px;line-height:1.45}
.creds b{font-weight:600;display:block}.creds span{color:var(--mu)}
/* waitlist */
.join{border-radius:24px;padding:56px;background:radial-gradient(ellipse at 18% 30%,#E6EFA8 0,rgba(230,239,168,.6) 10%,transparent 34%),radial-gradient(ellipse at 60% 70%,#BFDDC4 0,transparent 36%),radial-gradient(ellipse at 88% 25%,#CFE6DF 0,transparent 36%),linear-gradient(160deg,#EDF5EA,#C9DFC9);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center}
.join .t{grid-column:1 / span 6;display:flex;flex-direction:column;gap:14px}.join .t p{color:#3E4A40}
.join form{grid-column:8 / span 5;display:flex;flex-direction:column;gap:10px}
.join .row{display:flex;gap:10px}
.join input[type=email]{flex:1;min-width:0;height:52px;border-radius:999px;border:1px solid rgba(28,26,23,.12);background:rgba(255,255,255,.92);padding:0 22px;font:inherit;font-size:16px;color:var(--ink)}
.join input:focus{outline:2px solid var(--ac);outline-offset:2px}
.join .small{font-size:13px;color:#3E4A40}
.join .ok{display:none;font-family:var(--serif);font-size:22px}
footer{padding:48px 0;background:var(--band);border-top:1px solid var(--line);font-size:14px;color:var(--mu)}
footer .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
footer .brand{color:var(--ink);font-size:22px}
@media (max-width:1100px){.hero .copy,.hero .fig,.pattern .copy,.pattern .fig{grid-column:1 / -1}.hero .fig{margin:40px auto 0;max-width:520px;width:100%}.pattern .fig{margin-top:32px;max-width:640px}.venn-h{display:none}.venn-v{display:block;max-width:420px;margin:0 auto}.rung{grid-template-columns:36px 180px 1fr}.rung .w{grid-column:2 / span 2;text-align:left}.scales{grid-template-columns:1fr 1fr}.areas{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:600px){.hero-d,.loop-d{display:none}.hero-m,.loop-m{display:block}.loop-m{max-width:360px;margin:0 auto}}
@media (max-width:860px){
.wrap{padding:0 20px}section{padding:64px 0}.hero{padding:40px 0 56px}
.links a:not(.btn){display:none}
.hero .copy,.hero .fig,.pattern .copy,.pattern .fig,.head .h,.head .side,.about .h,.about .txt,.join .t,.join form{grid-column:1 / -1}
.hero .fig{margin:32px auto 0;max-width:460px}.pattern .fig{margin-top:28px}.head .side{margin-top:16px}.about .txt{margin-top:20px}
.join{padding:32px 24px}.join form{margin-top:24px}.join .row{flex-direction:column}
.scales{grid-template-columns:1fr}.areas{grid-template-columns:1fr 1fr}.creds{grid-template-columns:1fr 1fr}
.rung{grid-template-columns:28px 1fr}.rung .d,.rung .w{grid-column:2}
.ladder .axis span:last-child{display:none}
.scales>*:nth-child(1){order:1}.scales>*:nth-child(4){order:2}.scales>*:nth-child(7){order:3}.scales>*:nth-child(2){order:4}.scales>*:nth-child(5){order:5}.scales>*:nth-child(8){order:6}.scales>*:nth-child(3){order:7}.scales>*:nth-child(6){order:8}.scales>*:nth-child(9){order:9}.scale-h{margin-top:16px}.tile-empty{display:none}
}

a.area{text-decoration:none;color:inherit}a.area:hover{border-color:var(--ac)}
.joinsec{padding-top:24px}

.prose .lens-note{font-size:15px;color:var(--mu);font-style:italic;margin-top:-6px;padding-left:14px;border-left:2px solid var(--line)}

.row-link .pd{display:block;margin-top:6px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--mu);text-transform:none}

/* ---------- multi-page additions ---------- */
.menu-btn{display:none;background:none;border:1px solid #D5DDD2;border-radius:999px;padding:9px 16px;font:inherit;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer}
.links a[aria-current="page"]:not(.btn){color:var(--ac)}
.links a.btn[aria-current="page"]{color:#fff;box-shadow:0 0 0 2px var(--bg,#fff),0 0 0 3px var(--ac)}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:12px;z-index:50;background:#fff;padding:8px 12px;border-radius:8px}
.page-hero{padding:64px 0 64px;border-bottom:1px solid var(--line)}
.page-hero.band{border-top:0}
.crumb{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mu);margin-bottom:28px;display:flex;gap:8px;flex-wrap:wrap}
.crumb a{text-decoration:none}.crumb a:hover{color:var(--ac)}
.page-hero h1{max-width:960px}
.page-hero .lead{font-size:20px;line-height:1.55;color:var(--mu);max-width:700px;margin-top:22px}
.page-hero .actions{margin-top:30px}
.hero-split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center}
.hero-split .copy{grid-column:1 / span 7}.hero-split .fig{grid-column:8 / span 5}
.prose{max-width:720px;font-size:19px;line-height:1.72;color:#2A2824}
.prose.center{margin:0 auto}
.prose p+p,.prose p+ul,.prose ul+p{margin-top:1.1em}
.prose h2{font-size:32px;margin:1.8em 0 .6em}
.prose h3{margin:1.6em 0 .5em}
.prose ul{padding-left:1.1em;margin:0}.prose li+li{margin-top:.4em}
.prose a{text-underline-offset:3px;color:var(--ac)}
.pullq{font-family:var(--serif);font-size:clamp(24px,2.6vw,32px);line-height:1.3;color:var(--ac);border-left:2px solid var(--ac);padding-left:24px;margin:1.6em 0!important}
.lede-q{font-family:var(--serif);font-size:clamp(24px,2.6vw,32px);line-height:1.3;color:var(--ink);max-width:820px}
.fig-block{margin:56px auto;max-width:1080px}
.fig-block figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mu);margin-top:12px}
.fig-block .figure{overflow:hidden}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cols{display:grid;gap:24px}.cols.c2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.box{border:1px solid var(--line);border-radius:16px;background:#fff;padding:26px 26px 28px;display:flex;flex-direction:column;gap:10px}
.box .k{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ac)}
.box h3{font-size:24px}.box p{font-size:15.5px;line-height:1.6;color:var(--mu)}
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
.split .l{grid-column:1 / span 4}.split .r{grid-column:6 / span 7}
.rows{border-top:1px solid var(--line)}
.row-link{display:grid;grid-template-columns:160px 1fr 32px;column-gap:24px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none}
.row-link .f{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ac)}
.row-link .t{font-family:var(--serif);font-size:25px;line-height:1.2}
.row-link .d{display:block;font-family:var(--sans);font-size:15px;color:var(--mu);margin-top:6px;line-height:1.55}
.row-link .a{color:var(--mu);text-align:right}
.row-link:hover .t{color:var(--ac)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.chip{border:1px solid #D5DDD2;background:#fff;border-radius:999px;padding:8px 16px;font:inherit;font-size:14px;cursor:pointer;color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.ocards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ocard{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:190px;padding:18px 18px 20px;border:1px solid var(--line);border-radius:14px;text-decoration:none;background:radial-gradient(circle at 80% 15%,#E6EFA8 0,transparent 42%),radial-gradient(circle at 15% 90%,#CFE6DF 0,transparent 50%),#F6F9F4;overflow:hidden}
.ocard .no{font-family:var(--mono);font-size:11px;color:var(--ac);letter-spacing:.06em}
.ocard .nm{font-family:var(--serif);font-size:25px;line-height:1.1}
.ocard .dm{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mu);margin-top:6px}
.ocard .lit{position:absolute;top:18px;right:18px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ac)}
.ocard:hover{border-color:var(--ac)}
.ocard.waiting{background:#fff;border-style:dashed;border-color:#D5DDD2}
.ocard.waiting .nm{color:#4A4740}
.map-controls{display:flex;justify-content:space-between;align-items:center;gap:16px 24px;flex-wrap:wrap;margin-bottom:8px}
.legend{display:flex;gap:18px;font-size:13px;color:var(--mu)}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:14px;height:18px;border-radius:3px;display:inline-block}
.legend .l1{background:radial-gradient(circle at 70% 20%,#E6EFA8,transparent 60%),#DDEEDD;border:1px solid var(--line)}
.legend .l2{background:#fff;border:1px dashed #C9D2C5}
.map-note{margin:16px 0 0;font-size:14px}
.sys-line{font-family:var(--serif);font-size:20px;line-height:1.4;color:var(--ink);margin:-6px 0 22px;max-width:760px}
.area-block{padding:40px 0;border-top:1px solid var(--line)}
.area-block .ah{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:22px;flex-wrap:wrap}
.area-block .ah a{text-decoration:none}.area-block .ah a:hover{color:var(--ac)}
.area-block .i{font-family:var(--mono);font-size:12px;color:var(--ac);margin-right:12px}
.sys-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sys{display:block;border:1px solid var(--line);border-radius:14px;padding:18px 20px;text-decoration:none;background:#fff}
.sys b{font-weight:600;display:block}.sys span{font-size:14.5px;color:var(--mu);display:block;margin-top:4px}.sys:hover{border-color:var(--ac)}
/* card page */
.cardpage{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:start}
.cardpage .face{grid-column:1 / span 4;position:sticky;top:110px}
.cardpage .txt{grid-column:6 / span 7}
.face-card{aspect-ratio:5 / 7.4;border-radius:20px;border:1px solid var(--line);padding:14px;background:radial-gradient(circle at 75% 20%,#E6EFA8 0,rgba(230,239,168,.5) 18%,transparent 45%),radial-gradient(circle at 25% 80%,#BFDDC4 0,transparent 55%),linear-gradient(170deg,#F4F8F1,#DCEBDC)}
.face-card .in{height:100%;border:1px solid rgba(46,106,78,.45);border-radius:12px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;padding:26px 18px}
.face-card .no{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--ac)}
.face-card .nm{font-family:var(--serif);font-size:34px;line-height:1.05}
.face-card .dm{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mu)}
.face-card svg{width:70px;margin:0 auto}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin-top:24px;font-size:14.5px}
.facts dt{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mu)}.facts dd{margin:4px 0 0}
.facts a{text-underline-offset:3px}
.rule{font-family:var(--serif);font-size:clamp(24px,2.4vw,30px);line-height:1.35}
.echo{font-size:16px;color:var(--mu);border-left:2px solid var(--line);padding-left:18px}
.foryou{background:var(--pale);border-radius:18px;padding:28px 30px}
.foryou p{font-family:var(--serif);font-size:24px;line-height:1.35;margin-top:8px}
.pager{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:26px;border-top:1px solid var(--line);font-size:15px}
.pager a{text-decoration:none;font-weight:500}.pager a:hover{color:var(--ac)}
.stack{display:flex;flex-direction:column;gap:28px}
/* case studies */
.meta-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15px}
.meta-grid dt{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mu)}.meta-grid dd{margin:6px 0 0}
.shots{display:grid;gap:20px}.shots.s2{grid-template-columns:1fr 1fr}.shots.s3{grid-template-columns:repeat(3,minmax(0,1fr))}.shots.s1{grid-template-columns:1fr}
.deck-art{padding:14px;overflow:hidden}.deck-art .face-card .nm{font-size:clamp(17px,2.2vw,26px);margin-top:14px!important}.deck-art .face-card .in{padding:16px 10px}.deck-art .face-card svg{width:46px}
.shot{margin:0}.shot .frame{border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--band)}
.shot img{display:block;width:100%;height:auto}
.shot figcaption{font-size:13px;color:var(--mu);margin-top:8px}
.shot.missing .frame{aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(135deg,#F6F9F4 0 14px,#EEF4EB 14px 28px)}
.shot.missing .frame::after{content:attr(data-alt);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mu);padding:16px;text-align:center}
.shot.missing img{display:none}
.phones-panel{margin:20px 0 0;background:var(--band);border:1px solid var(--line);border-radius:14px;padding:56px 32px 44px;display:flex;justify-content:center;align-items:flex-start;gap:72px;flex-wrap:wrap}
.ph-item{width:250px;display:flex;flex-direction:column;gap:18px}
.ph-item:nth-child(2){margin-top:48px}
.phone{position:relative;width:100%;aspect-ratio:71.6 / 147.6;background:#131A17;border-radius:42px;padding:9px;box-shadow:0 28px 50px rgba(28,40,20,.22)}
.phone .notch{position:absolute;top:9px;left:50%;transform:translateX(-50%);width:42%;height:22px;background:#131A17;border-radius:0 0 14px 14px;z-index:2;pointer-events:none}
.phone .scr{width:100%;height:100%;border-radius:33px;overflow:hidden;display:flex;align-items:center}
.phone .scr.scroll{display:block;overflow-y:auto;padding-top:26px;scrollbar-width:none}
.phone .scr.scroll::-webkit-scrollbar{display:none}
.phone video{display:block;width:100%;height:auto}
.phone .vid-wrap{position:relative;background:#203931;isolation:isolate}
.phone .vid-wrap::before{content:"";position:absolute;inset:-24px;background:var(--poster) center/cover no-repeat;filter:blur(16px) brightness(.8);z-index:-1}
.phone .vid-wrap video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent}
.vid-wrap .play{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:0 0 12%;gap:10px;background:transparent;border:0;cursor:pointer;color:#fff;font:500 13px/1 var(--sans,Helvetica,sans-serif);letter-spacing:.02em}
.vid-wrap .play .ic{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(0,0,0,.28);position:relative;transition:transform .2s ease}
.vid-wrap .play .ic::after{content:"";position:absolute;left:52%;top:50%;transform:translate(-40%,-50%);border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent #2E6A4E}
.vid-wrap .play .tx{background:rgba(19,26,23,.6);padding:7px 12px;border-radius:999px}
.vid-wrap .play:hover .ic,.vid-wrap .play:focus-visible .ic{transform:scale(1.07)}
.vid-wrap .play:focus-visible{outline:2px solid #fff;outline-offset:-6px;border-radius:33px}
.vid-wrap.playing .play{display:none}
@media (max-width:860px){.vid-wrap .play{padding-bottom:7%;gap:7px}.vid-wrap .play .ic{width:44px;height:44px}.vid-wrap .play .ic::after{border-width:8px 0 8px 13px}.vid-wrap .play .tx{font-size:11px;padding:5px 9px}}

.phone img{display:block;width:100%;height:auto}
.phone .scr.article{display:flex;flex-direction:column;align-items:stretch;background:#fff;padding-top:30px}
.phone .article .mast{padding:4px 18px 10px;border-bottom:1px solid #E5E5E5}.phone .article .mast img{width:78%;margin:0 auto}
.phone .article .ph-photo{width:100%;flex:1 1 auto;min-height:0;object-fit:cover;object-position:50% 30%}
.phone .article .art-txt{padding:14px 16px 22px}
.phone .article h4{font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:19px;line-height:1.15;margin:0 0 10px;color:#111}
.phone .article p{font-family:Georgia,'Times New Roman',serif;font-size:12.5px;line-height:1.45;color:#333;margin:0}
.ph-item figcaption{font-size:13px;color:var(--mu);line-height:1.5}
@media (max-width:860px){.phones-panel{gap:16px;padding:32px 14px 28px;flex-wrap:nowrap}.ph-item{width:46%;max-width:220px}.ph-item:nth-child(2){margin-top:32px}.phone{border-radius:30px;padding:6px}.phone .scr{border-radius:24px}.phone .notch{top:6px;height:15px}.phone .scr.scroll{padding-top:18px}.ph-item figcaption{font-size:12px}.phone .scr.article{padding-top:20px}.phone .article h4{font-size:13px;margin-bottom:6px}.phone .article p{font-size:9px}.phone .article .art-txt{padding:9px 10px 14px}.phone .article .mast{padding:2px 10px 6px}}
.shot video{display:block;width:100%;height:auto;background:#000}
.shot.dark .frame{background:#000;border-color:#000}
.shot.dark.missing .frame::after{color:#9A9A9A}
.principles{counter-reset:p;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.principles .box .k::before{counter-increment:p;content:"0" counter(p) " · "}
/* tables */
.ladder3{border-top:1px solid var(--line)}
.l3{display:grid;grid-template-columns:200px repeat(3,minmax(0,1fr));column-gap:24px;padding:20px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.l3 .h{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mu)}
.l3 b{font-family:var(--serif);font-weight:400;font-size:22px}
.l3 .m{display:none;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ac)}
/* forms */
.formcard{border:1px solid var(--line);border-radius:20px;padding:32px;background:#fff;display:flex;flex-direction:column;gap:16px}
.formcard label{font-size:14px;font-weight:500;display:block;margin-bottom:6px}
.formcard input,.formcard textarea,.formcard select{width:100%;border:1px solid #D5DDD2;border-radius:12px;padding:13px 16px;font:inherit;font-size:16px;color:var(--ink);background:#fff}
.formcard textarea{min-height:150px;resize:vertical}
.formcard input:focus,.formcard textarea:focus,.formcard select:focus{outline:2px solid var(--ac);outline-offset:1px}
/* pull a card */
.pull-ui{display:flex;flex-direction:column;gap:22px}
.q-input{width:100%;max-width:560px;border:1px solid #D5DDD2;border-radius:999px;padding:14px 22px;font:inherit;font-size:16px}
.spread{display:grid;gap:20px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px}
.spread.one{grid-template-columns:minmax(0,340px)}
.slot{display:flex;flex-direction:column;gap:12px}
.slot .pos{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mu);min-height:30px}
.flip{appearance:none;border:0;padding:0;background:none;cursor:pointer;perspective:1200px;width:100%;aspect-ratio:5 / 7.4;text-align:inherit;font:inherit;color:inherit}
.flip .inner{position:relative;width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}
.flip.on .inner{transform:rotateY(180deg)}
.flip .side{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.flip .back{border-radius:20px;background:linear-gradient(160deg,#2E6A4E,#1F4A37);padding:14px}
.flip .back .in{height:100%;border:1px solid rgba(255,255,255,.35);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#EAF3EC;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;text-align:center}
.flip .front{transform:rotateY(180deg)}
.flip .face-card{height:100%;aspect-ratio:auto}
.reading{border-top:1px solid var(--line);padding-top:18px;font-size:15.5px;display:none}
.reading.on{display:block}
.reading p{margin-top:8px}.reading .rq{font-family:var(--serif);font-size:20px;line-height:1.35;color:var(--ink)}
.notice{font-size:14px;color:var(--mu);background:var(--band);border:1px solid var(--line);border-radius:12px;padding:14px 18px}
footer .cols4{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:32px;width:100%}
footer .fh{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-bottom:10px;display:block}
footer .cols4 a{display:block;text-decoration:none;padding:3px 0}footer .cols4 a:hover{color:var(--ac)}
footer .ack{margin-top:32px;padding-top:24px;border-top:1px solid var(--line);font-size:13px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;width:100%}
footer .ack p{max-width:760px}
@media (max-width:1100px){
.hero-split .copy,.hero-split .fig{grid-column:1 / -1}.hero-split .fig{margin:40px auto 0;max-width:480px;width:100%}
.cols.c4,.ocards{grid-template-columns:repeat(3,minmax(0,1fr))}
.principles{grid-template-columns:1fr 1fr}
.meta-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.l3{grid-template-columns:150px repeat(3,minmax(0,1fr))}
footer .cols4{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
.menu-btn{display:inline-flex}
.links{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:4px 20px 20px;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(28,26,23,.06)}
.links.open{display:flex}
.links a:not(.btn){display:block;padding:14px 0;border-bottom:1px solid var(--line)}
.links .btn{margin-top:16px;justify-content:center}
.nav .wrap{height:68px}
.page-hero{padding:40px 0 44px}.page-hero .lead{font-size:18px}
.prose{font-size:17.5px}
.cols.c2,.cols.c3{grid-template-columns:1fr}.cols.c4,.ocards{grid-template-columns:1fr 1fr}
.split .l,.split .r{grid-column:1 / -1}.split .r{margin-top:18px}
.row-link{grid-template-columns:1fr 24px}.row-link .f{grid-column:1 / -1;margin-bottom:6px}.row-link .t{font-size:22px}
.cardpage .face,.cardpage .txt{grid-column:1 / -1}.cardpage .face{position:static;max-width:300px;margin:0 auto 40px;width:100%}
.sys-list{grid-template-columns:1fr}
.meta-grid{grid-template-columns:1fr 1fr}
.shots.s2,.shots.s3{grid-template-columns:1fr}
.principles{grid-template-columns:1fr}
.l3{grid-template-columns:1fr;row-gap:12px}.l3.head{display:none}.l3 .m{display:block;margin-bottom:2px}
.spread{grid-template-columns:1fr;max-width:340px}
.fig-block .scroll-x svg{min-width:640px}
footer .cols4{grid-template-columns:1fr}
.formcard{padding:22px}
.ocard{min-height:160px}.ocard .nm{font-size:21px}
}
@media (max-width:420px){.cols.c4,.ocards{grid-template-columns:1fr 1fr;gap:10px}.ocard{padding:14px;gap:18px}.ocard .nm{font-size:19px}.ocard .lit{display:none}}
