/* MACaQ's forest palette, scoped to this article and its shared chrome. */
.research-document.csl-article{--forest-ink:#263c2d;--forest-accent:#286447;--forest-paper:#fafbf5;--forest-line:#dce5d3;--teaser-h:calc(100svh - var(--csl-header,64px) - var(--lab-dock-height,48px))}
.research-document.csl-article .research-page{--bg:#fafbf5;--panel:#f1f5e9;--text:#263c2d;--muted:#64715f;--line:#dce5d3;--peach:#286447;--peach-light:#7f9c69;background:#e7eddf url('./assets/teaser/jungle-cover.webp') center/cover fixed;color:var(--forest-ink)}
.research-document.csl-article .research-page #main{background:linear-gradient(#fafbf5f7,#f9fbf2fa);box-shadow:0 0 0 1px #d2ddca,-8px 0 36px #172a1c12,0 14px 44px #172a1c17}
.research-document.csl-article .article-index{padding:20px 16px;border:0;border-radius:12px;background:#e9efdf;backdrop-filter:none}
.research-document.csl-article .article-index .article-project,.research-document.csl-article .article-index nav a[aria-current],.research-document.csl-article .article-index nav a:hover,.research-document.csl-article .article-back-cue:hover{color:#286447}
.research-document.csl-article .article-index-marker{background:#527b47;box-shadow:0 0 12px #83a45c40}
.research-document.csl-article .article-index nav{border-color:#d7e1cd}
.research-document.csl-article .research-page .csl-shell .csl-desktop-nav a[aria-current]{color:#286447}
.research-document.csl-article .research-page .csl-shell .csl-desktop-nav a[aria-current]::after{background:#286447}
.research-document.csl-article .research-page .universal-showcase{background:linear-gradient(140deg,#f3f8e8,#e5efda);border-color:#c9d9bc;box-shadow:0 14px 36px #2c4a2010}
.research-document.csl-article .research-page .publication-title,.research-document.csl-article .research-page :is(.performance-heading,.method-heading,.integration-heading,.examples-heading) h2{color:#263c2d}
.research-document.csl-article .research-page :is(.publication-title,.performance-heading h2,.method-heading h2,.integration-heading h2,.examples-heading h2)>span:not(.title-sheen){color:#286447}
.research-document.csl-article .integration-window{background:#15221b;border-color:#3d5141;box-shadow:0 18px 40px -24px #17331f80,inset 0 1px 0 #fff1}
.research-document.csl-article .integration-titlebar{background:linear-gradient(115deg,#2c3f31,#25372b);border-color:#ffffff0c;color:#d9e5d5}
.research-document.csl-article :is(.integration-toolbar,.integration-step-tabs){background:#1e3025}
.research-document.csl-article .integration-window-footer{background:#18281e}
.research-document.csl-article .terminal-window-title svg{color:#a4be82}
.research-document.csl-article .integration-tab-logo{background:#364b3c}
.research-document.csl-article .integration-window:is(:hover,:focus-within){border-color:#7e9a68;box-shadow:0 24px 44px -24px #1c402a70,inset 0 1px 0 #fff2}
.research-document.csl-article .integration-window:is(:hover,:focus-within) .integration-titlebar{background:linear-gradient(115deg,#354e3c,#2e4535)}
.research-document.csl-article .perf-card,.research-document.csl-article .method-studio{background:#fffffb;border-color:#d9e3cf;box-shadow:0 8px 36px #20391e06}
.research-document.csl-article .method-visual{background:radial-gradient(ellipse at 85% 15%,#e8f0d8,transparent 65%),#f3f7eb}
.research-document.csl-article .reading-preview{background:transparent}
.research-document.csl-article .research-page [data-title-sheen]>.title-sheen{background-image:linear-gradient(110deg,transparent 35%,#d9edb908 39%,#dcedb72b 43%,#edf5cf66 47%,#fff6d6b0 50%,#edf5cf66 53%,#dcedb72b 57%,#d9edb908 61%,transparent 65%)}
/* Native scroll drives an opening in the canopy; nothing captures wheel/touch. */
.macaq-teaser-track{padding-bottom:var(--lab-dock-height,48px)}
.jungle-ready .macaq-teaser-track{position:relative;height:auto}
.jungle-ready .research-page .macaq-teaser{position:relative;top:auto;height:var(--teaser-h);opacity:1}
.jungle-ready .research-page #main{margin-top:0}
.jungle-ready .macaq-teaser-center{transform:translateY(var(--teaser-title-y,0px)) scale(var(--teaser-title-scale,1));opacity:var(--teaser-title-opacity,1);filter:blur(var(--teaser-title-blur,0px));transform-origin:center}
.jungle-ready .macaq-teaser-scroll{opacity:var(--teaser-hint-opacity,.86)}
.jungle-ready .macaq-teaser::after{background:linear-gradient(0deg,hsl(145 35% 8% / .28),transparent 50%);opacity:var(--teaser-title-opacity,1)}
.macaq-teaser-background{animation:canopy-breathe 22s ease-in-out infinite alternate;transform-origin:65% 44%;will-change:transform}
.macaq-teaser-word{display:inline-block;color:#fffbed;background:linear-gradient(108deg,#e7edcf 0%,#fff9e8 25%,#ffffff 43%,#fff0ae 49%,#ffffff 55%,#ecf3de 72%,#fff9e8 100%);background-size:260% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:jungle-title-light 6.5s ease-in-out infinite,jungle-title-glow 5s ease-in-out infinite alternate}
.macaq-teaser-atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:var(--teaser-title-opacity,1)}
.macaq-teaser-atmosphere i{position:absolute;width:3px;height:3px;border-radius:50%;background:#f1edbe;box-shadow:0 0 12px 3px #d4df9640;opacity:0;animation:canopy-mote 12s ease-in-out infinite;left:17%;top:60%}
.macaq-teaser-atmosphere i:nth-child(2){left:72%;top:31%;animation-delay:-4s;animation-duration:15s}
.macaq-teaser-atmosphere i:nth-child(3){left:42%;top:74%;animation-delay:-7s;animation-duration:17s}
.macaq-teaser-atmosphere i:nth-child(4){left:84%;top:67%;animation-delay:-2s;animation-duration:13s}
.macaq-teaser-atmosphere i:nth-child(5){left:27%;top:24%;animation-delay:-9s;animation-duration:16s}
.macaq-teaser-atmosphere i:nth-child(6){left:60%;top:18%;animation-delay:-6s;animation-duration:14s}
.macaq-teaser-atmosphere i:nth-child(7){left:55%;top:83%;animation-delay:-11s;animation-duration:18s}
.is-past-teaser :is(.macaq-teaser-background,.macaq-teaser-word,.macaq-teaser-atmosphere i){animation-play-state:paused}
@keyframes jungle-title-light{0%{background-position:100% 50%}100%{background-position:-100% 50%}}
@keyframes jungle-title-glow{from{text-shadow:0 0 20px #d6edb220}to{text-shadow:0 0 30px #f5e8b960,0 0 60px #b0d18530}}
@keyframes canopy-breathe{from{transform:scale(1.015) translate(-.2%,.2%)}to{transform:scale(1.065) translate(.3%,-.35%)}}
@keyframes canopy-mote{0%,100%{opacity:0;transform:translate(0,18px)}25%,65%{opacity:.55}80%{opacity:0;transform:translate(18px,-45px)}}
@media(max-width:1279px){.research-document.csl-article .article-index{border-radius:0 14px 14px 0}.research-document.csl-article .research-page #main{border-radius:0}}

.research-document.csl-article .research-page .publication-authors{color:#3e7157}

/* The reading area uses botanical line work, never the cover photograph. */
.research-document.csl-article .research-page{background-color:#e6ecde;background-image:linear-gradient(110deg,#e6eddf55,#f0f3e780),url('./assets/teaser/botanical-pattern.svg');background-size:cover,320px 420px;background-position:center,18px 0;background-attachment:fixed;color:var(--forest-ink)}
.research-document.csl-article .research-page #main{background:#fafbf5}
.macaq-teaser-center{flex-direction:column;align-items:center;gap:0}
.macaq-teaser-title{font-size:clamp(82px,15.5vw,252px);padding:.2em .28em .09em;line-height:1.12;overflow:visible}
.macaq-teaser-word{padding-right:.15em;margin-right:-.15em;overflow:visible}
.macaq-teaser-subtitle{max-width:90%;text-align:center;font:400 clamp(11px,1.2vw,17px)/1.6 var(--display);letter-spacing:.14em;color:#f4f2d9;opacity:.86;margin-top:12px;text-wrap:balance}
/* The article emerges through a field of mist, with no geometric aperture. */
.macaq-forest-light{position:absolute;inset:0;overflow:hidden;pointer-events:none;mix-blend-mode:screen;opacity:var(--teaser-title-opacity,1)}
.macaq-forest-light i{position:absolute;left:8%;top:-40%;width:14%;height:160%;background:linear-gradient(180deg,#fff4bf4d,#eaf8b624 40%,transparent 85%);transform:rotate(-30deg);transform-origin:50% 0;filter:blur(20px);animation:forest-ray 13s ease-in-out infinite alternate}
.macaq-forest-light i:nth-child(2){left:27%;width:5%;animation-delay:-7s;animation-duration:18s;opacity:.65}
.macaq-forest-light i:nth-child(3){left:56%;width:9%;animation-delay:-4s;animation-duration:15s;opacity:.5}
.macaq-forest-light i:nth-child(4){left:74%;width:4%;animation-delay:-10s;animation-duration:20s;opacity:.5}
.macaq-forest-light i:nth-child(5){left:94%;width:12%;animation-delay:-9s;animation-duration:16s;opacity:.35}
.macaq-forest-dapple{position:absolute;inset:-12%;pointer-events:none;background:radial-gradient(ellipse at 21% 16%,#ffffc230,transparent 20%),radial-gradient(ellipse at 68% 58%,#e1f1a61c,transparent 21%),radial-gradient(ellipse at var(--forest-gaze-x,47%) var(--forest-gaze-y,44%),#fff5c516,transparent 32%),repeating-conic-gradient(from 38deg at 18% -15%,transparent 0deg 11deg,#d3edaa0c 12deg 14deg,transparent 17deg 24deg);mix-blend-mode:screen;filter:blur(12px);animation:forest-dapple 11s ease-in-out infinite alternate;opacity:var(--teaser-title-opacity,1)}
.macaq-forest-frond{position:absolute;bottom:-28%;width:clamp(190px,28vw,510px);height:105%;object-fit:contain;pointer-events:none;opacity:calc(.38 * var(--teaser-title-opacity,1));filter:blur(1.5px);transform-origin:0 100%;animation:forest-frond-left 9s ease-in-out infinite alternate}
.macaq-forest-frond.is-left{left:-14%}
.macaq-forest-frond.is-right{right:-12%;bottom:14%;opacity:calc(.22 * var(--teaser-title-opacity,1));transform-origin:100% 0;animation:forest-frond-right 13s ease-in-out -4s infinite alternate}
.macaq-teaser-atmosphere i:nth-child(n+8){width:2px;height:2px;left:var(--mote-x);top:var(--mote-y);animation-delay:var(--mote-delay);animation-duration:var(--mote-duration)}
.is-past-teaser :is(.macaq-forest-light i,.macaq-forest-dapple,.macaq-forest-frond){animation-play-state:paused}
@keyframes forest-ray{from{transform:rotate(-31deg) translateX(-4%);opacity:.45}to{transform:rotate(-23deg) translateX(15%);opacity:.95}}
@keyframes forest-dapple{from{transform:translate(-1%,0) rotate(-1deg) scale(1);opacity:.65}to{transform:translate(1.5%,1%) rotate(1deg) scale(1.04);opacity:1}}
@keyframes forest-frond-left{from{transform:rotate(-5deg) translate(-2%,2%)}to{transform:rotate(3deg) translate(1%,-1%)}}
@keyframes forest-frond-right{from{transform:scaleX(-1) rotate(-8deg)}to{transform:scaleX(-1) rotate(1deg)}}
@media(max-width:600px){.macaq-teaser-title{font-size:23vw;padding-inline:.24em}.macaq-teaser-subtitle{font-size:11px;letter-spacing:.1em;max-width:290px;margin-top:8px}.macaq-forest-frond.is-left{left:-24%}.macaq-forest-frond.is-right{right:-24%}.macaq-forest-light i{width:25%;filter:blur(16px)}}
@media(max-height:500px) and (orientation:landscape){.macaq-teaser-title{font-size:min(18vw,42svh);padding-block:.12em .04em}.macaq-teaser-subtitle{font-size:10px;margin-top:0;letter-spacing:.1em}.macaq-forest-frond{bottom:-36%}}
@media(prefers-reduced-motion:reduce){.macaq-forest-light i,.macaq-forest-dapple,.macaq-forest-frond{animation:none}.macaq-forest-frond{display:none}}

/* End the cover completely before reading; no photographic layer survives. */
.is-past-teaser .macaq-teaser{visibility:hidden;pointer-events:none}
.research-document.csl-article .research-page{background-color:#c0d2ad;background-image:radial-gradient(ellipse 460px 650px at 5vw 70px,#fff8d6c9,transparent 88%),url('./assets/teaser/botanical-pattern.svg'),linear-gradient(180deg,#dce7c9,#bbd0aa 65%,#aac49a);background-size:auto,320px 420px,auto;background-repeat:no-repeat,repeat,no-repeat}
.research-document.csl-article .research-page #main{background:#fafbf5;isolation:isolate}
.macaq-teaser-subtitle{font:500 clamp(22px,2.5vw,36px)/1.25 var(--display);letter-spacing:-.025em;max-width:90%;opacity:.95;color:#eef3df;margin-top:10px}
.macaq-teaser-word{background-image:linear-gradient(108deg,#c6d6b1 0%,#d9e4c6 41%,#fff6c8 46%,#ffffff 49%,#ffffff 52%,#ffefad 55%,#d9e4c6 60%,#c6d6b1 100%);background-size:300% 100%;animation:jungle-title-light-clear 5.5s cubic-bezier(.3,0,.3,1) infinite,jungle-title-glow 5s ease-in-out infinite alternate}
@keyframes jungle-title-light-clear{0%{background-position:100% 50%}70%,100%{background-position:0% 50%}}
.macaq-teaser-atmosphere i:nth-child(n){width:var(--mote-size,2px);height:var(--mote-size,2px);left:var(--mote-x);top:var(--mote-y);animation-delay:var(--mote-delay);animation-duration:var(--mote-duration);box-shadow:0 0 9px 2px #d4df9650}
@keyframes canopy-mote{0%{opacity:0;transform:translate(-6px,40px)}20%{opacity:.35}42%{opacity:.85;transform:translate(10px,-18px)}68%{opacity:.45;transform:translate(-5px,-56px)}100%{opacity:0;transform:translate(18px,-100px)}}
@media(max-width:600px){.macaq-teaser-subtitle{font-size:20px;max-width:320px;letter-spacing:-.02em;line-height:1.3;margin-top:12px}}
@media(max-height:500px) and (orientation:landscape){.macaq-teaser-title{font-size:min(18vw,34svh)}.macaq-teaser-subtitle{font-size:17px;margin-top:2px}}
@media(prefers-reduced-motion:reduce){.macaq-teaser-word{animation:none}}

/* The entire cover is one composited layer, including both side margins.
   The complete Overview stays opaque and ready underneath throughout. */
.research-document.csl-article .research-page #main{position:relative;z-index:1;background:#fafbf5;opacity:1;filter:none;mask-image:none;-webkit-mask-image:none}
.jungle-ready .research-page .macaq-teaser{z-index:2}
.jungle-ready .macaq-teaser-background{filter:blur(var(--teaser-scene-blur,0px))}
.jungle-ready .macaq-teaser-center{transform:perspective(1000px) translateY(var(--teaser-title-y,0px)) scale(var(--teaser-title-scale,1));transform-origin:center}
@media(prefers-reduced-motion:reduce){.macaq-teaser-background{filter:none}}

.research-document.csl-article .article-index nav a{color:#52624b}
.research-document.csl-article .article-index .article-category{color:#637157}
.research-document.csl-article .article-index nav{border-color:#849b6f65}
@media(min-width:1280px){.research-document.csl-article .article-index{background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none}}

/* Compatibility is an editorial signature, part of the receding cover text. */
.macaq-teaser:has(.macaq-teaser-compatibility) .macaq-teaser-title{font-size:clamp(76px,min(15.5vw,25svh),230px);padding-block:.12em .04em}
.macaq-teaser-claim{display:flex;flex-wrap:wrap;justify-content:center;gap:5px .35em;max-width:95%;margin-top:20px;font:400 clamp(14px,1.4vw,20px)/1.5 var(--display);color:#f4f5e8;text-align:center;text-wrap:balance}
.macaq-teaser-claim span{white-space:nowrap}
.macaq-teaser-compatibility{display:flex;align-items:center;gap:22px;width:fit-content;max-width:100%;margin-top:28px;padding-top:17px;border-top:0;color:#ecf2df}
.macaq-teaser-compatibility-label{font:400 10px/1.5 var(--display);letter-spacing:.09em;text-transform:uppercase;opacity:.7}
.macaq-teaser-compatibility ul{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0;font:500 16px/1.4 var(--display);letter-spacing:-.015em}
.macaq-teaser-compatibility li{padding-inline:20px;white-space:nowrap}
.macaq-teaser-compatibility li:first-child{padding-left:0}
.macaq-teaser-compatibility li:last-child{padding-right:0}
.macaq-teaser-compatibility li+li{border-left:1px solid #edf3dc38}
@media(max-width:600px){.macaq-teaser:has(.macaq-teaser-compatibility) .macaq-teaser-title{font-size:23vw}.macaq-teaser-claim{font-size:14px;max-width:325px;margin-top:18px;row-gap:3px}.macaq-teaser-compatibility{flex-direction:column;gap:9px;margin-top:22px;padding-top:14px}.macaq-teaser-compatibility ul{font-size:15px}.macaq-teaser-compatibility li{padding-inline:18px}.macaq-teaser-compatibility-label{font-size:9px}}
@media(max-height:500px) and (orientation:landscape){.macaq-teaser:has(.macaq-teaser-compatibility) .macaq-teaser-title{font-size:min(13vw,20svh);padding-block:.08em .03em}.macaq-teaser-claim{font-size:11px;margin-top:6px}.macaq-teaser-compatibility{flex-direction:row;gap:16px;margin-top:10px;padding-top:8px}.macaq-teaser-compatibility-label{font-size:8px}.macaq-teaser-compatibility ul{font-size:12px}.macaq-teaser-compatibility li{padding-inline:14px}.macaq-teaser-center{padding-bottom:48px}}
@media(min-width:601px) and (min-height:501px) and (max-height:740px){.macaq-teaser:has(.macaq-teaser-compatibility) .macaq-teaser-title{font-size:min(14vw,22svh)}.macaq-teaser-subtitle{font-size:28px}.macaq-teaser-claim{font-size:16px;margin-top:12px}.macaq-teaser-compatibility{margin-top:18px;padding-top:12px}.macaq-teaser-compatibility ul{font-size:14px}.macaq-teaser-compatibility-label{font-size:9px}.macaq-teaser-center{padding-bottom:42px}.macaq-teaser-scroll{bottom:18px}}

.macaq-teaser-claim{flex-direction:column;align-items:center;gap:8px}
.macaq-teaser-scope{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:5px 12px;margin:0;font:inherit;color:inherit}
.macaq-teaser-scope strong{font-weight:500}
.macaq-teaser-scope>span{white-space:nowrap}
.macaq-teaser-scope i{font-style:normal;opacity:.55;padding-inline:3px}
.macaq-teaser-quality{margin:0;font:400 .86em/1.4 var(--display);color:#edf2dc;opacity:.86}
@media(max-width:600px){.macaq-teaser-claim{gap:8px;margin-top:16px}.macaq-teaser-scope{gap:5px 9px}.macaq-teaser-scope i{padding-inline:1px}.macaq-teaser-quality{font-size:13px}.macaq-teaser-compatibility{margin-top:18px}}
@media(max-height:500px) and (orientation:landscape){.macaq-teaser-claim{gap:3px}.macaq-teaser-scope{gap:3px 8px}.macaq-teaser-scope i{padding-inline:1px}.macaq-teaser-quality{font-size:10px}.macaq-teaser-compatibility{margin-top:7px;padding-top:5px}}

.macaq-acronym-part{text-decoration-line:underline;text-decoration-thickness:.055em;text-underline-offset:.14em;text-decoration-skip-ink:auto}

.macaq-teaser-emoji{display:inline-block;font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;font-size:.68em;font-weight:400;letter-spacing:normal;line-height:1.1;filter:drop-shadow(0 0 14px #e9e5ab20)}


.macaq-teaser-subtitle .macaq-teaser-emoji{font-size:1em;vertical-align:-.08em;margin-right:.3em}



.macaq-teaser-credit{position:absolute;top:clamp(24px,4svh,44px);left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:6px;margin:0;white-space:nowrap;font:400 12px/1.5 var(--display);letter-spacing:.02em;color:#eaf0dc;opacity:.85}
.macaq-teaser-credit a{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:#fff5d8;text-decoration:none;text-underline-offset:4px}
.macaq-teaser-credit img{display:block;filter:drop-shadow(0 1px 5px #172e1c40);transition:transform .25s}
.macaq-teaser-credit a:hover{text-decoration:underline}.macaq-teaser-credit a:hover img{transform:rotate(-8deg) scale(1.08)}
.macaq-teaser-credit a:focus-visible{outline:2px solid #fff5d8;outline-offset:4px;border-radius:3px}
@media(max-width:600px){.macaq-teaser-credit{top:24px;font-size:11px}.macaq-teaser-credit img{width:15px;height:15px}}
@media(max-height:500px) and (orientation:landscape){.macaq-teaser-credit{top:10px;font-size:9px}.macaq-teaser-credit img{width:13px;height:13px}}
@media(prefers-reduced-motion:reduce){.macaq-teaser-credit img{transition:none}.macaq-teaser-credit a:hover img{transform:none}}
.macaq-teaser,.macaq-teaser *{-webkit-user-select:none;user-select:none}
.macaq-teaser img{-webkit-user-drag:none}

.macaq-teaser-kicker{margin:0 0 4px;font:500 clamp(19px,calc(2.5vw - 5px),31px)/1.25 var(--display);letter-spacing:-.025em;color:#eef3df;opacity:.95}
@media(max-width:600px){.macaq-teaser-kicker{font-size:15px;margin-bottom:6px}}
@media(max-height:500px) and (orientation:landscape){.macaq-teaser-kicker{font-size:13px;margin-bottom:0}.macaq-teaser:has(.macaq-teaser-compatibility) .macaq-teaser-title{font-size:min(13vw,18svh)}}

@media(min-width:601px) and (min-height:501px) and (max-height:740px){.macaq-teaser-kicker{font-size:23px}.macaq-teaser:has(.macaq-teaser-compatibility) .macaq-teaser-title{font-size:min(14vw,19svh)}}

/* A quiet glass link catches the same warm light as the canopy. */
.macaq-teaser-github{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;gap:11px;min-height:44px;padding:11px 18px;margin-top:22px;border:1px solid #e5edcd52;border-radius:11px;background:linear-gradient(125deg,#d9e6b71c,#173a261a);backdrop-filter:blur(12px);color:#f7f4df;font:500 14px/1.3 var(--display);text-decoration:none;box-shadow:inset 0 1px 0 #fff9d91a,0 5px 22px #10261a12;overflow:hidden;transition:background .25s,border-color .25s,box-shadow .25s,transform .25s}
.macaq-teaser-github::before{content:'';position:absolute;inset:-80% -60%;z-index:-1;background:linear-gradient(108deg,transparent 40%,#fff3b62b 49%,transparent 58%);transform:translateX(-65%);animation:canopy-code-glint 8s ease-in-out infinite;pointer-events:none}
.macaq-teaser-github img{display:block;filter:brightness(0) invert(1);opacity:.94}
.macaq-teaser-github svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.65;transition:transform .25s,opacity .25s}
.macaq-teaser-github:hover{transform:translateY(-2px);background:#dce9c02b;border-color:#f2efbd9e;box-shadow:inset 0 1px 0 #fff9d92b,0 8px 26px #10261a26,0 0 22px #d5e5a410}
.macaq-teaser-github:hover svg{transform:translate(2px,-2px);opacity:1}
.macaq-teaser-github:focus-visible{outline:2px solid #fff2b8;outline-offset:5px}
@keyframes canopy-code-glint{0%,62%{transform:translateX(-65%)}90%,100%{transform:translateX(65%)}}
@media(max-width:600px){.macaq-teaser-github{margin-top:20px;min-height:44px;font-size:13px;padding:10px 16px;gap:9px}}
@media(min-width:601px) and (min-height:501px) and (max-height:740px){.macaq-teaser-github{margin-top:15px}}
@media(max-height:500px) and (orientation:landscape){.macaq-teaser-github{position:absolute;top:8px;right:20px;margin:0;min-height:34px;padding:7px 11px;font-size:11px;gap:7px}.macaq-teaser-github img{width:16px;height:16px}.macaq-teaser-github svg{width:13px;height:13px}}
@media(prefers-reduced-motion:reduce){.macaq-teaser-github,.macaq-teaser-github svg{transition:none}.macaq-teaser-github::before{animation:none;display:none}.macaq-teaser-github:hover,.macaq-teaser-github:hover svg{transform:none}}
@media(max-width:600px) and (min-height:501px) and (max-height:740px){.macaq-teaser-center{padding-bottom:82px}.macaq-teaser-github{margin-top:14px}.macaq-teaser-compatibility{margin-top:12px}}
@media(max-width:600px) and (min-height:501px) and (max-height:740px){.macaq-teaser-scroll{bottom:16px}}

/* Reserve separate rows for provenance, content and the scroll invitation. */
.research-page .macaq-teaser{grid-template-rows:auto minmax(0,1fr) auto;row-gap:clamp(12px,2svh,20px);padding-block:clamp(14px,2.5svh,28px) clamp(12px,2svh,22px)}
.macaq-teaser .macaq-teaser-credit{position:relative;inset:auto;transform:none;grid-row:1;margin:0;justify-self:center}
.macaq-teaser .macaq-teaser-center{grid-row:2;min-height:0;align-self:center;padding:0 6vw}
.macaq-teaser .macaq-teaser-scroll{position:relative;inset:auto;transform:none;grid-row:3;justify-self:center;align-self:end;margin:0;padding:6px 18px;min-height:44px;gap:6px}
.macaq-teaser .macaq-teaser-github{position:relative;inset:auto;margin-top:18px}
/* Keep scroll animation under one controller and avoid stacked GPU filters. */
.macaq-teaser-track,.research-page #main{overflow-anchor:none}
.jungle-ready .research-page .macaq-teaser-center{transform:translateY(var(--teaser-title-y,0px)) scale(var(--teaser-title-scale,1));filter:none}
.jungle-ready .research-page .macaq-teaser-background{filter:none}
.teaser-safe-compositing .macaq-teaser-word{color:#f8f5df;-webkit-text-fill-color:currentColor;background:none;filter:none;mask-image:none;-webkit-mask-image:none;animation:jungle-title-glow 5s ease-in-out infinite alternate}
.teaser-safe-compositing .macaq-forest-light,.teaser-safe-compositing .macaq-forest-dapple{mix-blend-mode:normal}
.teaser-safe-compositing .macaq-teaser-github{backdrop-filter:none;-webkit-backdrop-filter:none}
@media(max-height:740px) and (min-height:501px){
 .research-page .macaq-teaser{row-gap:12px;padding-block:14px 12px}
 .macaq-teaser .macaq-teaser-kicker{font-size:18px;margin-bottom:3px}
 .research-page .macaq-teaser .macaq-teaser-title{font-size:min(14vw,18svh);padding-block:.08em .03em}
 .macaq-teaser .macaq-teaser-subtitle{font-size:22px;margin-top:8px}
 .macaq-teaser .macaq-teaser-claim{font-size:14px;margin-top:10px}
 .macaq-teaser .macaq-teaser-compatibility{flex-direction:row;gap:12px;margin-top:12px;padding-top:0}
 .macaq-teaser .macaq-teaser-compatibility ul{font-size:13px}
 .macaq-teaser .macaq-teaser-compatibility-label{font-size:8px}
 .macaq-teaser .macaq-teaser-github{margin-top:12px;min-height:40px;padding:8px 15px}
}
@media(max-width:600px){
 .macaq-teaser .macaq-teaser-credit{font-size:11px}
 .macaq-teaser .macaq-teaser-kicker{font-size:15px}
 .macaq-teaser .macaq-teaser-subtitle{font-size:19px}
}
@media(max-width:600px) and (min-height:501px) and (max-height:740px){
 .research-page .macaq-teaser .macaq-teaser-title{font-size:min(21vw,14svh)}
 .macaq-teaser .macaq-teaser-subtitle{font-size:18px}
 .macaq-teaser .macaq-teaser-compatibility{gap:9px}
 .macaq-teaser .macaq-teaser-compatibility ul{font-size:12px}
 .macaq-teaser .macaq-teaser-compatibility li{padding-inline:12px}
 .macaq-teaser .macaq-teaser-compatibility li:first-child{padding-left:0}
 .macaq-teaser .macaq-teaser-compatibility li:last-child{padding-right:0}
}
@media(max-height:500px) and (orientation:landscape){
 .research-page .macaq-teaser{row-gap:6px;padding-block:8px}
 .macaq-teaser .macaq-teaser-credit{font-size:9px}
 .macaq-teaser .macaq-teaser-kicker{font-size:11px;margin-bottom:0}
 .research-page .macaq-teaser .macaq-teaser-title{font-size:min(13vw,12svh);padding-block:.05em .02em}
 .macaq-teaser .macaq-teaser-subtitle{font-size:14px;margin-top:2px}
 .macaq-teaser .macaq-teaser-claim{font-size:10px;margin-top:4px}
 .macaq-teaser .macaq-teaser-compatibility{gap:10px;margin-top:6px;padding-top:0}
 .macaq-teaser .macaq-teaser-compatibility ul{font-size:11px}
 .macaq-teaser .macaq-teaser-github{min-height:30px;margin-top:6px;padding:5px 10px;font-size:10px}
 .macaq-teaser .macaq-teaser-scroll{min-height:28px;gap:3px;padding-block:2px;font-size:9px}
 .macaq-teaser .macaq-teaser-scroll svg{width:13px;height:13px}
}
@media(prefers-reduced-motion:reduce){.teaser-safe-compositing .macaq-teaser-word{animation:none}}

/* Underline the acronym prefix without splitting words for readers or crawlers. */
.macaq-acronym-word{position:relative;display:inline-block;color:inherit!important}
.macaq-acronym-word::after{content:'';position:absolute;left:0;bottom:.04em;width:var(--acronym-width);height:.055em;min-height:1px;background:currentColor;pointer-events:none}

/* Canvas lettering preserves the HTML text and its exact layout dimensions. */
.macaq-teaser-word{position:relative}
.macaq-title-canvas{display:none;position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.macaq-title-baseline{display:inline-block;width:0;height:0;padding:0;margin:0;border:0;vertical-align:baseline}
.research-page .macaq-teaser-word.is-canvas-ready{color:transparent!important;-webkit-text-fill-color:transparent!important;background:none!important;text-shadow:none!important;filter:none!important;animation:none!important;mask-image:none!important;-webkit-mask-image:none!important}
.macaq-teaser-word.is-canvas-ready .macaq-title-canvas{display:block}

/* Keep mobile browser text inflation from changing the article's responsive
   composition. Browser zoom and the reader's font-size preferences still work. */
.research-document.csl-article{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* Let a short portrait viewport grow instead of clipping the cover's rows.
   This does not depend on a particular handset, user agent or pixel density. */
@media (max-width:600px) and (orientation:portrait),
       (max-width:1200px) and (orientation:portrait) and (hover:none) and (pointer:coarse) {
  .research-document.csl-article .research-page .macaq-teaser {
    height:auto;
    min-height:max(240px,calc(100svh - var(--csl-header,64px) - var(--lab-dock-height,48px)));
    grid-template-rows:auto minmax(min-content,1fr) auto;
  }
  .research-document.csl-article .macaq-teaser-credit {max-width:100%;flex-wrap:wrap;text-align:center}
  .research-document.csl-article .macaq-teaser-compatibility {flex-wrap:wrap;justify-content:center}
  .research-document.csl-article .macaq-teaser-compatibility ul {flex-wrap:wrap;justify-content:center;row-gap:8px}
}
/* A large portrait touch viewport needs the same reading order as a phone.
   Fine-pointer desktop compositions retain their existing dimensions. */
@media (min-width:901px) and (max-width:1200px) and (orientation:portrait) and (hover:none) and (pointer:coarse) {
  .research-document.csl-article .research-page .research-intro {display:block;min-height:0;padding-block:28px}
  .research-document.csl-article .paper-frontmatter {height:auto;grid-template-columns:minmax(0,1fr);gap:26px}
  .research-document.csl-article .research-page .paper-masthead {display:contents}
  .research-document.csl-article .publication-heading {grid-row:1;min-width:0}
  .research-document.csl-article .publication-introduction {grid-row:3;min-width:0}
  .research-document.csl-article .paper-frontmatter>.universal-showcase {grid-row:2;height:510px;min-width:0}
}
