/* From the Bento artboard. */
body{margin:0;background:#000}
a{color:inherit;text-decoration:none}a:hover{color:inherit}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes ldOut{to{opacity:0;visibility:hidden}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes fadeOut{to{opacity:0}}
@keyframes scene{0%,100%{opacity:1}}
@keyframes tileIn{from{opacity:0;filter:blur(8px)}to{opacity:1;filter:none}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 0%,transparent)}}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:.25}}
/* 1 sketch */
.sk-p{fill:none;stroke:var(--text);stroke-width:13;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.4s cubic-bezier(.45,0,.25,1) .2s both}
/* 2 languages */
@keyframes wipe{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes rise{from{transform:translateY(60%);opacity:0;filter:blur(10px)}to{transform:none;opacity:1;filter:none}}
.lp{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;animation:wipe .34s cubic-bezier(.7,0,.2,1) both}
.lw{display:block;font-weight:700;letter-spacing:-.05em;white-space:nowrap;line-height:1;animation:rise .45s cubic-bezier(.2,.7,.1,1) both}
.lt{position:absolute;left:32px;top:28px;font-family:'Geist Mono',monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;opacity:.7}
.ll{display:inline-block;animation:rise .6s cubic-bezier(.2,.7,.1,1) both}
/* 3 wireframe */
@keyframes wfDraw{from{width:0;height:0}to{width:100%;height:100%}}
@keyframes wfSettle{to{border-color:var(--border)}}
@keyframes wfWin{0%,80%{opacity:1}100%{opacity:0}}
@keyframes lyr{0%{opacity:0;background:rgba(13,153,255,.45)}12%{opacity:1}55%{background:rgba(13,153,255,.25)}100%{opacity:1;background:transparent}}
@keyframes wfZoom{from{transform:translateY(24px) scale(.6)}to{transform:none}}
@keyframes chromeOut{to{opacity:0}}
@keyframes chromeL{to{transform:translateX(-100%);opacity:0}}
@keyframes chromeR{to{transform:translateX(100%);opacity:0}}
@keyframes chromeT{to{transform:translateY(-100%);opacity:0}}
.wf-cell{position:relative;min-height:0;min-width:0}
.wf-r{position:absolute;left:0;top:0;width:0;height:0;border-radius:var(--r);background:var(--tile);border:2px solid #0d99ff;box-sizing:border-box;animation:wfDraw .45s cubic-bezier(.4,0,.2,1) both,wfSettle .3s ease both}
.wf-w{position:absolute;opacity:0;animation:wfWin .6s ease none}
.wf-hd{width:12px;height:12px;background:#ffffff;border:2px solid #0d99ff;box-sizing:border-box}
.wf-in{position:absolute;inset:0;padding:28px;display:flex;flex-direction:column;gap:12px;opacity:0;animation:fade .4s ease both}
.wf-bar{display:block;height:12px;border-radius:6px;background:var(--tile2)}
.wf-ly{display:flex;align-items:center;gap:8px;height:28px;padding:0 10px;border-radius:4px;font-size:11px;color:#e6e6e6;opacity:0;animation:lyr 1.4s ease both}
.wf-frame{position:absolute;left:0;top:0;width:100vw;height:100vh;padding:24px;box-sizing:border-box;background:var(--bg);transform:translateY(24px) scale(.6);transform-origin:center;outline:2px solid rgba(255,255,255,.06);animation:wfZoom .75s cubic-bezier(.65,0,.35,1) 3s both}
/* 4 kinetic */
@keyframes conv{0%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1)}25%{opacity:1}100%{opacity:0;transform:translate(0,0) scale(.4)}}
@keyframes burst{0%{opacity:1;transform:translate(0,0) scale(.5)}100%{opacity:0;transform:translate(calc(var(--dx) * 1.8),calc(var(--dy) * 1.8)) scale(1)}}
@keyframes shape{0%{transform:translate(-50%,-50%) scale(0) rotate(0);border-radius:50%}18%{transform:translate(-50%,-50%) scale(1) rotate(0);border-radius:50%}55%{transform:translate(-50%,-50%) scale(3.2) rotate(90deg);border-radius:22%}78%{transform:translate(-50%,-50%) scale(3.6) rotate(180deg);border-radius:30%;background:transparent}88%{background:var(--accent)}100%{transform:translate(-50%,-50%) scale(40) rotate(225deg);border-radius:30%;background:var(--accent)}}
@keyframes slam{0%{opacity:0;transform:scale(1.6);letter-spacing:.2em;filter:blur(8px)}30%{opacity:1;transform:scale(1);letter-spacing:-.04em;filter:none}80%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.9)}}
@keyframes nameIn{0%{opacity:0;letter-spacing:.5em;filter:blur(10px)}100%{opacity:1;letter-spacing:-.03em;filter:none}}
.pt{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:4px;background:var(--text);opacity:0;animation:conv .9s cubic-bezier(.65,0,.35,1) both,burst .8s cubic-bezier(.2,.7,.1,1) 2.75s both}
.kshape{position:absolute;left:50%;top:50%;width:60px;height:60px;border:1.5px solid var(--accent);box-sizing:border-box;animation:shape 3.2s cubic-bezier(.65,0,.35,1) .55s both}
.kw{position:absolute;left:0;right:0;top:50%;margin-top:-56px;text-align:center;font-size:112px;line-height:112px;font-weight:800;opacity:0;animation:slam .5s cubic-bezier(.2,.7,.1,1) both}
.kname{animation:nameIn .9s cubic-bezier(.2,.7,.1,1) both}
/* 5 shapes */
@keyframes drop{0%{transform:translate(-50%,-70vh)}42%{transform:translate(-50%,-50%) scale(1.18,.78)}58%{transform:translate(-50%,calc(-50% - 12vh)) scale(.94,1.06)}72%{transform:translate(-50%,-50%) scale(1.08,.92)}84%{transform:translate(-50%,calc(-50% - 3vh)) scale(1)}100%{transform:translate(-50%,-50%) scale(1)}}
@keyframes spinPop{0%{transform:translate(-50%,-50%) rotate(0) scale(1)}70%{transform:translate(-50%,-50%) rotate(180deg) scale(1.25)}100%{transform:translate(-50%,-50%) rotate(220deg) scale(0);opacity:0}}
@keyframes burst2{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.3)}}
@keyframes tpop{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}
.shp{position:absolute;top:50%;width:14vmin;height:14vmin;animation:drop 1.1s cubic-bezier(.3,0,.3,1) both,spinPop .45s cubic-bezier(.6,0,.4,1) both}
.sp{position:absolute;top:50%;width:7px;height:7px;margin:-3px 0 0 -3px;border-radius:7px;opacity:0;animation:burst2 .9s cubic-bezier(.2,.7,.1,1) both}
.sh-t{border-radius:var(--r);background:var(--tile);border:1px solid var(--border);box-sizing:border-box;min-height:0;animation:tpop .6s cubic-bezier(.34,1.56,.64,1) both}
/* 6 type reel */
@keyframes wght{0%{font-weight:100;letter-spacing:.06em}100%{font-weight:900;letter-spacing:-.06em}}
@keyframes stretch{0%{transform:scaleX(2.6);filter:blur(10px);opacity:0}40%{opacity:1}100%{transform:scaleX(1);filter:none;opacity:1}}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes mqR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@keyframes dotGrow{0%{transform:translate(-50%,-50%) scale(0)}60%{transform:translate(-50%,-50%) scale(1)}100%{transform:translate(-50%,-50%) scale(30)}}
@keyframes fly{from{opacity:0;transform:translateY(80%) rotate(8deg);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
.sc{position:absolute;inset:0;opacity:0;overflow:hidden;animation-name:scene;animation-timing-function:linear;display:flex;align-items:center;justify-content:center}
.mq{white-space:nowrap;font-size:9vw;line-height:1.05;font-weight:800;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px var(--text)}
.fl{display:inline-block;animation:fly .55s cubic-bezier(.2,.7,.1,1) both}
.ldr{animation:ldOut .22s ease both}
.b-cols .b-in{animation-duration:.3s !important;animation-delay:0s !important}
/* site */
.b-in{animation:tileIn .7s cubic-bezier(.2,.7,.1,1) both}
.b-fade{animation:fade .5s ease both}
.b-film{transform-origin:left;animation:grow 60s linear both}
.b-dot{animation:pulse 2.4s ease-in-out infinite}
.b-colon{animation:blink 1s steps(1) infinite}
.b-t{transition:background-color .6s ease,color .6s ease,border-color .6s ease,transform .5s cubic-bezier(.2,.7,.1,1)}
.b-tile{border:1px solid transparent;border-radius:var(--r);background:var(--tile);box-sizing:border-box}
@keyframes curt{0%{clip-path:circle(0% at var(--wx) var(--wy));opacity:1}55%{clip-path:circle(150% at var(--wx) var(--wy));opacity:1}70%{opacity:1}100%{clip-path:circle(150% at var(--wx) var(--wy));opacity:0}}
@keyframes blurDip{0%{opacity:0}40%,55%{opacity:1}100%{opacity:0}}
@keyframes sweep{from{transform:translateY(-300vh)}to{transform:translateY(100vh)}}
.fx-curtain{position:fixed;inset:0;z-index:70;pointer-events:none;animation:curt 1s cubic-bezier(.65,0,.35,1) both}
.fx-blur{position:fixed;inset:0;z-index:70;pointer-events:none;backdrop-filter:blur(22px) saturate(1.2);-webkit-backdrop-filter:blur(22px);animation:blurDip .8s ease both}
@keyframes pInDown{0%{clip-path:inset(0 0 100% 0)}30%{clip-path:inset(0 0 0 0)}62%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(100% 0 0 0)}}
@keyframes pIn{0%{clip-path:inset(100% 0 0 0)}30%{clip-path:inset(0 0 0 0)}62%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 100% 0)}}
.fx-p{position:fixed;inset:0;z-index:70;pointer-events:none;display:flex;align-items:center;justify-content:center;animation:pIn 1s cubic-bezier(.7,0,.2,1) both}

/* colour explorations */
@keyframes hueCycle{0%,100%{background-color:#2997ff}16%{background-color:#bf5af2}33%{background-color:#30d158}50%{background-color:#ff375f}66%{background-color:#ffd60a}83%{background-color:#64d2ff}}
.cm-glow .b-spot::after{background:radial-gradient(380px circle at var(--x,50%) var(--y,50%),color-mix(in srgb,var(--tc) 38%,transparent),transparent 65%)}
.ed-on [contenteditable="true"]{outline:1.5px dashed var(--accent);outline-offset:4px;border-radius:4px;cursor:text}
.ed-on [contenteditable="true"]:focus{outline-style:solid}
.gs-on .b-thumb{filter:grayscale(1) contrast(1.05);transition:filter .6s ease,transform 1s cubic-bezier(.2,.7,.1,1)}
.gs-on .b-case:hover .b-thumb,.gs-on .b-case:focus-visible .b-thumb{filter:grayscale(0) contrast(1)}
@keyframes mIn{from{opacity:0;transform:translateY(28px) scale(.975);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes mOut{from{opacity:1;transform:none;filter:none}to{opacity:0;transform:translateY(28px) scale(.975);filter:blur(6px)}}
@keyframes ovIn{from{opacity:0}to{opacity:1}}
@keyframes ovOut{from{opacity:1}to{opacity:0}}
@keyframes csRise{from{opacity:0;transform:translateY(56px)}to{opacity:1;transform:none}}
.m-in{animation:mIn .55s cubic-bezier(.2,.7,.1,1) both}
.m-out{animation:mOut .42s cubic-bezier(.5,0,.75,0) both}
.ov-in{animation:ovIn .45s ease both}
.ov-out{animation:ovOut .42s ease both}
.cs-rise{animation:csRise .85s cubic-bezier(.2,.7,.1,1) both}
.cs-grid{grid-column:span 2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:16px;min-height:0;min-width:0}
.cs-grid > :not(.cs-cell),.cs-grid > :not(.cs-cell) > :not(.cs-cell){display:contents}
.cs-cell{display:flex;min-height:0;min-width:0}
.cs-cell > .b-case{flex:1 1 auto;min-width:0}
#cs-article > :not(.blk),#cs-article > :not(.blk) > :not(.blk){display:contents}
.st-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:24px}
.st-meta > :not(.st-mi),.st-grid > :not(.st-gi),.st-sg > :not(.st-si),.st-steps > :not(.st-step),.st-two > :not(.st-col){display:contents}
.st-h{margin:0}
.st-quote{margin:0;padding:8px 0 8px 28px;border-left:2px solid var(--accent);font-size:28px;line-height:1.35;letter-spacing:-.02em;max-width:820px}
.st-fig{margin:0}
.st-fig .cs-img{min-height:120px;overflow:hidden}
.st-cap{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:13px;color:var(--muted)}
.st-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 32px}
.st-gh{margin:0 0 8px;font-size:20px;font-weight:600;letter-spacing:-.015em}
.st-gp{margin:0;font-size:16px;line-height:1.6;color:var(--muted)}
.st-stats{padding:40px;border-radius:var(--ir);background:var(--tile2)}
.st-sg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px;margin-top:8px}
.st-sn{margin:0;font-size:40px;line-height:1;font-weight:600;letter-spacing:-.03em}
.st-sl{margin:8px 0 0;font-size:14px;line-height:1.45;color:var(--muted)}
.st-note{margin:24px 0 0;font-size:12px;color:var(--muted)}
.st-tag{display:inline-block;margin:0 8px 8px 0;padding:8px 12px;border-radius:var(--ir);background:var(--tile2);font-size:14px;line-height:1.3}
.st-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.st-step{padding:20px;border-radius:var(--ir);background:var(--tile2)}
.st-stn{margin:0 0 18px;font-family:'Geist Mono',monospace;font-size:11px;color:var(--accentInk)}
.st-sth{margin:0;font-size:17px;font-weight:600}
.st-stp{margin:6px 0 0;font-size:13px;color:var(--muted)}
.st-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.st-li{margin:0;padding:12px 0;border-top:1px solid var(--border);font-size:16px;line-height:1.5;color:var(--muted)}
@container modal (max-width:900px){.st-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.st-sg{grid-template-columns:repeat(2,minmax(0,1fr))}.st-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container modal (max-width:560px){.st-grid,.st-two,.st-steps{grid-template-columns:minmax(0,1fr)}.st-stats{padding:24px}.st-sn{font-size:32px}}
.pn-ic{min-width:28px;height:28px;padding:0 8px;border:0;border-radius:8px;background:var(--tile);color:var(--text);font:inherit;font-size:12px;cursor:pointer}
.pn-ic:disabled{opacity:.3;cursor:default}
.pn-ic-w{min-width:48px}
.cc-txt{padding:14px 0 0}
.cc-eye{margin:0 0 6px;font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accentInk)}
.cc-title{font-size:17px;font-weight:600;letter-spacing:-.01em;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-top:10px;min-height:26px}
.cc-tags{min-width:0;line-height:0}
.cc-year{flex-shrink:0;padding-top:6px;font-family:'Geist Mono',monospace;font-size:12px;line-height:1.2;color:var(--muted)}
.cc-ind-dot{display:inline-flex;align-items:center;gap:7px;margin:0 10px 6px 0;height:26px;vertical-align:top;font-size:12px;line-height:1;color:var(--text)}
.cc-ind-dot::before{content:'';width:6px;height:6px;border-radius:6px;background:var(--accent)}
.cc-line{display:inline-block;padding-top:5px;font-size:13px;line-height:1.3;color:var(--muted);white-space:normal}
.cc-img-tag{position:absolute;top:12px;left:12px;z-index:2;padding:6px 10px;border-radius:var(--ir);background:rgba(0,0,0,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#ffffff;font-size:11px;font-weight:500;letter-spacing:.02em}
.b-tag{display:inline-block;margin:0 6px 6px 0;padding:5px 10px;border-radius:var(--ir);background:var(--tile2);color:var(--muted);font-size:12px;line-height:1.2;white-space:nowrap}
.b-tag-i{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1px var(--borderHi)}
.b-chip{display:inline-block;margin:0 6px 6px 0;padding:5px 9px;border-radius:999px;background:rgba(0,0,0,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#ffffff;font-size:11px;line-height:1.2;white-space:nowrap}
.b-chip-i{background:rgba(255,255,255,.92);color:#000000;font-weight:500}
.gm-wrap{column-count:3;column-gap:16px}
@container modal (max-width:900px){.gm-wrap{column-count:2}}
@container modal (max-width:560px){.gm-wrap{column-count:1}}
.gm{break-inside:avoid;margin:0 0 16px;border-radius:var(--ir);overflow:hidden;background:var(--tile2);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px}
.gm img{display:block;width:100%;height:auto}
.gf-wrap{overflow-x:auto;overflow-y:hidden;white-space:nowrap;scroll-snap-type:x mandatory;height:calc(100vh - 48px - 73px - 150px);min-height:300px;margin-top:8px;padding-bottom:8px}
.gf{display:inline-flex;vertical-align:top;height:100%;margin-right:16px;border-radius:var(--ir);overflow:hidden;background:var(--tile2);align-items:center;justify-content:center;color:var(--muted);font-size:13px;scroll-snap-align:center}
.gf img{display:block;height:100%;width:auto}
.ab-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px;align-items:center;padding:8px 0 24px}
@container modal (max-width:820px){.ab-grid{grid-template-columns:minmax(0,1fr);gap:24px}}
.pn-in{width:100%;box-sizing:border-box;min-height:34px;padding:0 10px;border-radius:10px;border:1px solid var(--border);background:var(--tile);color:var(--text);font:inherit;font-size:12px}
.ph-scrim{position:absolute;left:0;right:0;bottom:0;height:45%;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.55) 100%);pointer-events:none}
.ph-link{position:absolute;left:var(--ip);bottom:calc(var(--ip) - 12px);margin:0;color:rgba(255,255,255,.82)}
.b-photo:hover .ph-link{color:#ffffff}
.b-photo:hover .ph-link .ab-more-a{transform:translateX(4px)}
.ab-stage{--abTxt:340px;position:relative;flex:1 1 auto;min-height:260px;margin-top:16px}
.ab-face{position:absolute;inset:0;display:flex;flex-direction:column}
.ab-front{justify-content:flex-end}
.ab-back{gap:18px;overflow:visible;justify-content:flex-end}
.ab-show{opacity:1;visibility:visible;transition:opacity .45s ease .05s,visibility 0s}
.abf-hide{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility 0s linear .3s}
.abb-hide{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility 0s linear .3s}
.ab-instant .ab-face{transition:none}
@keyframes abPop{0%{opacity:0;transform:translateY(60px) rotate(-7deg) scale(.55)}60%{opacity:1}100%{opacity:1;transform:none}}
@keyframes abRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ab-hit{position:relative;padding-right:8px;min-height:var(--abTxt);box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start}
.ab-more{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:10px;padding:0;border:0;background:none;font:inherit;font-size:15px;font-weight:400;line-height:1;color:var(--muted);cursor:pointer;transition:color .3s}
.ab-more:hover{color:var(--text)}
.ab-more-t{display:inline-block;line-height:1}
.ab-more-a{display:inline-flex;align-items:center;line-height:1;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
.ab-more:hover .ab-more-a{transform:translateX(4px)}
.ab-less:hover .ab-more-a{transform:translateX(-4px)}
.ab-peek{position:absolute;right:0;bottom:-4px;width:112px;height:134px;padding:8px 8px 30px;box-sizing:border-box;border:0;border-radius:4px;background:#fbfaf6;box-shadow:0 1px 2px rgba(0,0,0,.25),0 18px 40px rgba(0,0,0,.4);transform:translateY(40px) rotate(14deg) scale(.55);transform-origin:80% 100%;opacity:0;pointer-events:none;cursor:pointer;transition:transform .65s cubic-bezier(.34,1.56,.64,1),opacity .3s ease}
.ab-peek-img{display:block;width:100%;height:100%;border-radius:2px;background-color:#d9d9de !important}
.ab-peek{z-index:4}
.ab-hit:hover .ab-peek,.ab-more:focus-visible ~ .ab-peek{transform:translateY(-10px) rotate(-6deg) scale(1);opacity:1;pointer-events:auto}
.ab-shared.pol-on .ab-pol{opacity:1;transform:rotate(-3deg);transition:transform .7s cubic-bezier(.34,1.56,.64,1),opacity .35s ease}
.ab-shared{position:absolute;left:0;right:0;top:0;bottom:var(--abTxt);z-index:2;display:flex;align-items:center;justify-content:center;container-type:size;pointer-events:none}
.ab-shared.pol-on{pointer-events:auto}
@container site (max-width:1000px){
.ab-shared{left:auto;right:0;top:0;bottom:0;width:40%}
.ab-hit{max-width:58%}
}
@container site (max-width:620px){
.ab-shared.pol-on:not(.pol-about) .ab-pol{opacity:0;transform:translateY(36px) rotate(7deg) scale(.82);transition:transform .45s cubic-bezier(.4,0,.2,1),opacity .3s ease}
.ab-shared.pol-on:not(.pol-about){pointer-events:none}
.ab-shared{left:0;right:0;width:auto;top:0;bottom:var(--abTxt)}
.ab-hit{max-width:none}
}
.ab-pol{margin:0;width:min(88cqw,calc(90cqh * 0.822),340px);height:auto;aspect-ratio:88/107;opacity:0;transform:translateY(36px) rotate(7deg) scale(.82);transition:transform .45s cubic-bezier(.4,0,.2,1),opacity .3s ease;padding:4.5% 4.5% 0;box-sizing:border-box;background:#fbfaf6;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.25),0 24px 60px rgba(0,0,0,.45);display:flex;flex-direction:column;transform-origin:50% 100%}
.ab-pol-img{flex:1 1 auto;min-height:0;border-radius:2px;display:flex;align-items:center;justify-content:center;background-color:#d9d9de !important}
.ab-pol-cap{flex:none;padding:10px 4px 14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:'Caveat',cursive;font-size:22px;line-height:1;color:#2b2b2e;text-align:center}
@keyframes abPol{0%{opacity:0;transform:translate(30%,40%) rotate(14deg) scale(.3)}60%{opacity:1}100%{opacity:1;transform:rotate(-3deg)}}
.ab-back.ab-show .ab-pop{animation:abPol .8s cubic-bezier(.34,1.56,.64,1) both}
.ab-back.ab-closing .ab-pop,.ab-back.ab-closing.ab-show .ab-pop{animation:abPolOut .48s cubic-bezier(.5,0,.75,0) both}
.ab-back.ab-closing .ab-fadeout{opacity:0;transition:opacity .3s ease}
@keyframes abPolOut{0%{opacity:1;transform:rotate(-3deg)}100%{opacity:0;transform:translate(34%,46%) rotate(12deg) scale(.3)}}
.ab-cover{position:absolute;inset:0;z-index:3;margin:0;padding:0;border:0;background:none;cursor:pointer;border-radius:8px}
.ab-hit:hover .ab-more{color:var(--text)}
.ab-hit:hover .ab-more .ab-more-a{transform:translateX(4px)}
.ab-hit-back:hover .ab-less .ab-more-a{transform:translateX(-4px)}
.ab-hit-back{padding-right:8px}
@keyframes flipHalf{0%{transform:perspective(1600px) rotateY(0)}50%{transform:perspective(1600px) rotateY(90deg)}100%{transform:perspective(1600px) rotateY(0)}}
.ab-flip{animation:flipHalf .76s cubic-bezier(.6,0,.4,1) both !important}
@keyframes teDip{0%{filter:none;transform:none;opacity:1}42%{filter:blur(7px) saturate(.8);transform:scale(.985);opacity:.55}100%{filter:none;transform:none;opacity:1}}
.te-on .b-cq{animation:teDip .9s cubic-bezier(.45,0,.2,1) both}
.tf-on,.tf-on *{transition:background-color .8s cubic-bezier(.4,0,.2,1),color .8s cubic-bezier(.4,0,.2,1),border-color .8s cubic-bezier(.4,0,.2,1),box-shadow .8s ease,fill .8s ease !important}
.te-on,.te-on *{transition:background-color .6s ease,color .6s ease,border-color .6s ease,box-shadow .6s ease !important}
.gm{position:relative}
.gm-cap{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.7) 100%);color:#ffffff;font-size:13px;line-height:1.4;text-align:left;opacity:0;transform:translateY(8px);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.7,.1,1)}
.gm:hover .gm-cap,.gf:hover .gm-cap{opacity:1;transform:none}
.gf{position:relative}
.pn{position:fixed;top:12px;right:12px;bottom:12px;width:340px;max-width:calc(100vw - 24px);z-index:60;background:var(--tile);border:1px solid var(--borderHi);border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.35);overflow-y:auto;padding:20px 18px 28px;box-sizing:border-box;transition:transform .45s cubic-bezier(.2,.7,.1,1),opacity .3s;color:var(--text)}
.pn-off{transform:translateX(calc(100% + 24px));opacity:0;pointer-events:none}
.pn-h{margin:22px 0 10px;font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pn-row{display:flex;flex-wrap:wrap;gap:6px}
.pn-b{min-height:34px;padding:0 12px;border-radius:999px;border:0;font:inherit;font-size:12px;cursor:pointer;white-space:nowrap;transition:background-color .25s,color .25s}
.pn-sw{width:32px;height:32px;border:0;background:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.pn-case{padding:12px;border-radius:14px;background:var(--tile2);margin-bottom:8px}
.pn-up{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:999px;background:var(--tile);color:var(--text);font-size:12px;cursor:pointer}
.pn-up:hover{background:var(--inv);color:var(--invText)}
.pn-x{min-height:34px;padding:0 10px;border:0;border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:12px;cursor:pointer}
.pn-x:hover{color:var(--text)}
.pn-th{display:inline-block;width:64px;height:48px;border-radius:10px;background:var(--tile2) center/cover no-repeat;margin:0 6px 6px 0;vertical-align:top;position:relative}
.pn-th button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:22px;border:0;background:var(--inv);color:var(--invText);font-size:12px;line-height:22px;padding:0;cursor:pointer}
.pn-fab{position:fixed;right:20px;bottom:20px;z-index:61;width:48px;height:48px;border-radius:48px;border:1px solid var(--borderHi);background:var(--tile);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.g-th{display:inline-block;width:72px;height:54px;margin:0 8px 8px 0;border-radius:max(calc(var(--r) / 2),0px);border:0;padding:0;cursor:pointer;vertical-align:top;font:inherit;font-size:11px;color:var(--muted)}
.b-range{width:110px;accent-color:var(--text);cursor:pointer;height:28px;margin:0}
.fx-sweep{position:fixed;left:0;right:0;top:0;height:300vh;z-index:70;pointer-events:none;animation:sweep 1.1s cubic-bezier(.65,0,.35,1) both}
.b-g{border-radius:var(--r);background:var(--tile2);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;min-height:0;transition:transform .5s cubic-bezier(.2,.7,.1,1)}
.b-g:hover{transform:scale(1.015)}
.b-photo-cta{position:absolute;left:50%;top:50%;transform:translate(-50%,-30%);opacity:0;transition:opacity .3s,transform .45s cubic-bezier(.34,1.56,.64,1);background:rgba(0,0,0,.45);backdrop-filter:blur(12px);color:#fff;font-size:13px;padding:10px 16px;border-radius:999px;white-space:nowrap}
.b-photo:hover .b-photo-cta{opacity:1;transform:translate(-50%,-50%)}
.cs-img{border-radius:var(--r);background:var(--tile2);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px}
.cs-h{margin:0 0 14px;font-size:28px;font-weight:600;letter-spacing:-.02em}
.cs-p{margin:0;font-size:18px;line-height:1.7;color:var(--muted);max-width:720px}
.cs-k{margin:0 0 8px;font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.cs-more{background:none;border:0;padding:0 2px;min-height:44px;font:inherit;font-size:15px;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:color .3s}
.cs-more:hover{color:var(--text)}
.cs-more span{display:inline-block;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
.cs-more:hover span{transform:translateY(3px)}
.cs-more[data-dir="right"]:hover span{transform:translateX(3px)}

.b-spot{position:relative;overflow:hidden}
.b-spot::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(340px circle at var(--x,50%) var(--y,50%),var(--spot),transparent 65%);opacity:0;transition:opacity .35s}
.b-spot::after{display:none !important}
.b-case{display:flex;flex-direction:column;cursor:pointer;padding:var(--ip);margin:0;font:inherit;text-align:left;color:var(--text)}
.b-img{position:relative;flex:1 1 0;min-height:0;border-radius:var(--ir);overflow:hidden}
.b-thumb{position:absolute;inset:0;transition:transform 1s cubic-bezier(.2,.7,.1,1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:rgba(255,255,255,.6)}
.b-case:hover .b-thumb{transform:scale(1.06)}
.b-play{position:absolute;left:50%;top:50%;width:60px;height:60px;border-radius:60px;background:rgba(255,255,255,.2);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;color:#fff;transform:translate(-50%,-50%) scale(.6);opacity:0;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .3s}
.b-case:hover .b-play{transform:translate(-50%,-50%) scale(1);opacity:1}
.b-arrow{display:inline-block;transition:transform .4s cubic-bezier(.2,.7,.1,1),opacity .3s;opacity:.4}
.b-case:hover .b-arrow{transform:translateX(5px);opacity:1}
.b-photo-img{position:absolute;inset:0;transition:transform 1.2s cubic-bezier(.2,.7,.1,1)}
.b-photo:hover .b-photo-img{transform:scale(1.04)}
.b-dots{opacity:.55;transition:opacity .3s}
.b-photo:hover .b-dots{opacity:1}
.b-pb,.b-pf{transition:transform .6s cubic-bezier(.34,1.56,.64,1)}
.b-cv:hover .b-pb{transform:rotate(-9deg) translate(-10px,-4px)}
.b-cv:hover .b-pf{transform:translateY(-12px) rotate(1.5deg)}
.b-ic{width:44px;height:44px;border-radius:44px;border:0;background:var(--tile2);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font:inherit;transition:background-color .3s,color .3s,transform .4s cubic-bezier(.34,1.56,.64,1)}
.b-ic:hover{background:var(--inv);color:var(--invText);transform:translateY(-2px) scale(1.06)}
.b-knob{transition:transform .55s cubic-bezier(.34,1.56,.64,1),background-color .6s}
.b-ico{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:opacity .4s,transform .55s cubic-bezier(.34,1.56,.64,1)}
.b-pick{min-height:34px;padding:0 12px;border-radius:999px;border:0;font:inherit;font-size:12px;cursor:pointer;white-space:nowrap;transition:background-color .3s,color .3s}
.b-cols{display:grid;grid-template-columns:1.15fr 1fr 1fr .8fr;gap:16px;height:min(calc(100vh - 48px),900px);min-height:720px}
.b-col{display:flex;flex-direction:column;gap:16px;min-height:0;min-width:0}
.s-intro{flex:1 1 0}.s-now{flex:0 0 190px}.s-case{flex:1 1 0}.s-photo{flex:1 1 0}.s-pill{flex:0 0 max(72px,calc(var(--r) * 2 + 16px))}.s-cv{flex:0 0 240px}.s-link{flex:0 0 80px}
.b-read{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
@media (max-width:1000px){
.b-read{grid-template-columns:minmax(0,1fr)}.kw{font-size:64px;line-height:64px;margin-top:-32px}
}
.b-cq{container-type:inline-size;container-name:site;position:relative;margin:0 auto}
.b-cq{max-width:min(100%,1440px) !important}
div:has(> .b-cq){display:flex;flex-direction:column;justify-content:center}
.s-intro{container-type:inline-size}
.b-name{font-size:clamp(28px,11cqi,42px) !important;overflow-wrap:break-word}
@container site (max-width:1000px){
.b-cols{grid-template-columns:repeat(2,minmax(0,1fr));height:auto;min-height:0}
.b-cols .b-col{display:contents}
.b-cols .s-intro{grid-column:1/-1;order:1;min-height:470px}
.b-cols .s-pill{grid-column:1/-1;order:2;height:max(72px,calc(var(--r) * 2 + 16px))}
.b-cols .cs-grid{grid-column:1/-1;order:3;grid-auto-rows:minmax(340px,auto)}
.b-cols .s-case{min-height:340px}
.b-cols .cs-cell{min-height:340px}
.b-cols .s-photo{order:7;min-height:340px}
.b-cols .s-cv{order:8;min-height:340px}
.b-cols .s-link{grid-column:1/-1;order:9;min-height:80px}
}
@container site (max-width:620px){
.b-cols{grid-template-columns:minmax(0,1fr)}
.b-cols .s-photo,.b-cols .s-cv{grid-column:1/-1}
.b-cols .s-intro{min-height:440px;transition:min-height .55s cubic-bezier(.2,.7,.1,1)}
.b-cols .s-intro.is-about{min-height:780px}
@media (max-width:620px){.b-cols .s-intro.is-about{min-height:900px}}
.b-cols .s-case{min-height:300px}
.b-cols .cs-grid{grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(300px,auto)}
.b-cols .cs-cell{grid-column:auto !important;min-height:300px}
}
.b-handle{position:absolute;top:50%;right:-22px;transform:translateY(-50%);width:16px;height:72px;border-radius:16px;background:var(--tile2);border:1px solid var(--borderHi);cursor:ew-resize;display:flex;align-items:center;justify-content:center;touch-action:none;padding:0}
.b-handle span{display:block;width:2px;height:24px;border-radius:2px;background:var(--muted)}

sc-if,sc-for{display:contents}
