
body{margin:0;background:#f7f6f9}
.site{--ground:#f7f6f9;--paper:#fdfcfe;--ink:#1f1a27;--muted:#5d5668;--rule:#e2dde8;--rule2:#c9c1d4;--pur:#734f96;--purfill:#734f96;--tint:#efe9f6;--mark:#734f96;--word:#734f96;--hdr:rgba(247,246,249,.88);--grad:0;
background:var(--ground);color:var(--ink);font-family:'Roboto Flex',system-ui,-apple-system,'Segoe UI',sans-serif;font-optical-sizing:auto;font-variation-settings:'GRAD' var(--grad);font-size:18px;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;transition:background-color .6s ease,color .6s ease}
.site.dark{--ground:#13101a;--paper:#1a1622;--ink:#ece8f2;--muted:#a79fb4;--rule:#2a2434;--rule2:#3d3548;--pur:#b39ad6;--tint:#211b2b;--mark:#a98bd0;--word:#ece8f2;--hdr:rgba(19,16,26,.88);--grad:-25}
.site *,.site *::before,.site *::after{box-sizing:border-box}
:where(.site) a{color:inherit;text-decoration:none}
:where(.site) button{font:inherit;color:inherit}
.site p,.site h1,.site h2,.site h3,.site figure{margin:0}
.site ::selection{background:var(--tint)}
.sr{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-80px;z-index:50;background:var(--purfill);color:#fff !important;padding:10px 14px;border-radius:4px;font-weight:600}
.skip:focus{top:12px}
.wrap{max-width:1440px;margin:0 auto;padding-left:64px;padding-right:64px}

/* type: nine sizes, nothing under 14 px, no capitals, tracking 0 */
.h1{font-size:clamp(36px,29px + 1.88vw,56px);font-weight:650;line-height:1.05;max-width:864px;text-wrap:balance}
.h2{font-size:clamp(26px,23.9px + .56vw,32px);font-weight:600;line-height:1.15;text-wrap:balance}
.h3{font-size:20px;font-weight:600;line-height:1.3;text-wrap:balance}
.lede{font-size:clamp(19px,18.3px + .19vw,21px);line-height:1.5;max-width:30em;text-wrap:pretty}
.body,.prose p{max-width:36em;text-wrap:pretty}
.prose{display:flex;flex-direction:column;gap:16px}
.small{font-size:15px;line-height:1.45}
.muted{color:var(--muted)}
.num,time{font-variant-numeric:tabular-nums}
.tlink{color:var(--pur);font-weight:600;font-size:16px;border-bottom:1px solid transparent;transition:border-color .2s}
.tlink:hover{border-bottom-color:currentColor}
.prose a{color:var(--pur);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
/* a fact still to come: muted, never purple */
.fill{color:var(--muted);font-size:.92em;font-weight:400;border-bottom:1px dashed var(--rule2);-webkit-box-decoration-break:clone;box-decoration-break:clone}
.links{display:flex;flex-direction:column;gap:8px;align-items:flex-start}

/* page frame */
.page-head{padding-top:64px}
.page-head .lede{margin-top:24px}
.page-head .ctas{margin-top:32px}
.page-head .links{margin-top:16px}
.toc{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:24px;font-size:15px;font-weight:500}
.toc a{color:var(--pur)}
.toc a:hover{text-decoration:underline;text-underline-offset:3px}
.sec{padding-top:96px}
.page-head + .sec{padding-top:64px}
.sec-last{padding-bottom:96px}

/* the one section head: a rule, then the H2, with an optional link on its baseline */
.sh{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding-top:24px;border-top:1px solid var(--rule2);margin-bottom:32px}
.sh-a{color:var(--pur);font-weight:600;font-size:16px;white-space:nowrap}
.sh-a:hover{text-decoration:underline;text-underline-offset:3px}
.sub{margin-top:48px}
.sub .h3{margin-bottom:8px}

/* grid patterns: text in columns 1-7 beside a figure in 9-12, the mirror, halves */
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:32px;row-gap:32px;align-items:start}
.split>.a,.split>.b{min-width:0}
.split>.a{grid-column:1 / 8}
.split>.b{grid-column:9 / 13}
.split.mirror>.a{grid-column:6 / 13;grid-row:1}
.split.mirror>.b{grid-column:1 / 5;grid-row:1}
.split.wide>.a{grid-column:1 / 9}
.split.wide>.b{grid-column:10 / 13}
.split.plate>.a{grid-column:7 / 13;grid-row:1}
.split.plate>.b{grid-column:1 / 6;grid-row:1}
.halves{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:32px;row-gap:32px;align-items:start}
.stick{position:sticky;top:104px}
.stack{display:flex;flex-direction:column;gap:16px}

/* buttons: on hover the face lifts and an outline stays where it was */
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:4px;font-weight:600;font-size:16px;line-height:1.2;cursor:pointer;white-space:nowrap;transition:transform .28s cubic-bezier(.2,.7,.2,1),background-color .3s,color .3s}
.btn::after{content:'';position:absolute;inset:-1px;border:1px solid var(--pur);border-radius:inherit;opacity:0;transition:transform .28s cubic-bezier(.2,.7,.2,1),opacity .2s;pointer-events:none}
.btn:hover{transform:translate(-2px,-2px)}
.btn:hover::after{opacity:1;transform:translate(4px,4px)}
.btn-solid{background:var(--purfill);color:#fff;border:1px solid var(--purfill)}
.btn-line{border:1px solid var(--ink);background:transparent;color:var(--ink)}
.btn-sm{min-height:40px;padding:0 16px;font-size:15px}
.btn:focus-visible,.fig:focus-visible,.gog:focus-visible,.lamp-knob:focus-visible,.nav a:focus-visible,.tile a:focus-visible{outline:2px solid var(--pur);outline-offset:4px}

/* rows: meta, then title (with an optional line under it), then venue, between hairlines */
.rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule2)}
.row{display:grid;grid-template-columns:192px minmax(0,7fr) minmax(0,3fr);column-gap:32px;row-gap:4px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--rule)}
.row-k{font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums}
.row-t{font-size:18px;font-weight:600;line-height:1.4}
.row-t a{color:var(--ink);border-bottom:1px solid var(--rule2)}
.row-t a:hover{color:var(--pur);border-bottom-color:currentColor}
.row-d{display:block;font-size:16px;font-weight:400;line-height:1.5;color:var(--muted);margin-top:4px}
.row-s{font-size:15px;color:var(--muted);line-height:1.45}
.row-s a{color:var(--pur);font-weight:600}
.rows.two .row{grid-template-columns:192px minmax(0,1fr)}
.rows.two .row-t,.rows.two .row-d{max-width:40em}
.line-t .rows.two .row{grid-template-columns:120px minmax(0,1fr)}

/* ruled items: a rule on top, no box */
.items{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px;row-gap:32px}
.items.i2{grid-template-columns:repeat(2,minmax(0,1fr))}
.item{display:flex;flex-direction:column;gap:8px;padding-top:16px;border-top:1px solid var(--rule2)}
.item p{font-size:16px;line-height:1.5;color:var(--muted)}
.item .tlink{margin-top:4px;align-self:flex-start}

/* key-value facts */
.kv{margin:0;padding:0;border-top:1px solid var(--rule2)}
.kv>div{display:grid;grid-template-columns:192px minmax(0,1fr);column-gap:32px;padding:12px 0;border-bottom:1px solid var(--rule);font-size:17px;line-height:1.5}
.kv dt{font-size:15px;color:var(--muted);padding-top:1px}
.kv dd{margin:0}
.kv.tight>div{grid-template-columns:128px minmax(0,1fr)}
.split.wide>.b .kv>div{grid-template-columns:minmax(0,1fr);row-gap:2px}

/* a remark beside the text: a purple rule on its left */
.note{border-left:2px solid var(--pur);padding:2px 0 2px 20px;max-width:36em;font-size:17px;line-height:1.55}
.note .h3{margin-bottom:4px}

/* stats */
.stats{display:flex;flex-wrap:wrap;gap:24px 64px}
.stat{display:flex;flex-direction:column;gap:4px}
.stat-v{font-size:48px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.stat-l{font-size:15px;color:var(--muted);line-height:1.4;max-width:14em}

/* header */
.hdr{position:sticky;top:0;z-index:20;background:var(--hdr);-webkit-backdrop-filter:saturate(1.2) blur(12px);backdrop-filter:saturate(1.2) blur(12px);border-bottom:1px solid var(--rule);transition:background-color .6s}
.hdr-in{display:flex;align-items:center;gap:32px;height:72px}
.brand{display:block;flex:none;padding:6px 0}
.lockup{position:relative;display:block;height:40px;aspect-ratio:1999 / 762}
.lockup svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.mk-front path{fill:var(--mark);transition:fill .6s}
.mk-wire path{fill:none;stroke:var(--mark);stroke-width:1;vector-effect:non-scaling-stroke}
.mk-wire .wf{stroke-width:1.25}
.mk-wire .we{stroke-opacity:.7}
.mk-wire .wb{stroke-opacity:.45}
.word path{fill:var(--word);transition:fill .6s}
.nav{display:flex;gap:28px;margin-left:auto;font-size:16px;font-weight:500}
.nav a{position:relative;padding:6px 0;color:var(--ink)}
.nav a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--pur);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav a:hover::after,.nav a.cur::after{transform:scaleX(1)}
.nav a.cur{color:var(--pur)}
.hdr-act{display:flex;align-items:center;gap:12px;margin-right:40px}
.gog{display:grid;place-items:center;width:44px;height:40px;padding:0;border:1px solid var(--rule2);border-radius:4px;background:transparent;cursor:pointer;perspective:120px;transition:border-color .25s}
.gog:hover{border-color:var(--pur)}
.gog-svg{width:30px;height:17px;overflow:visible;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.gog:hover .gog-svg{transform:rotateX(18deg) rotateY(-22deg) translateY(-1px)}
.gog-front,.gog-lens,.gog-strap{fill:none;stroke:var(--ink);stroke-width:1.3;vector-effect:non-scaling-stroke}
.gog-lens{stroke:var(--pur)}
.gog-back{fill:none;stroke:var(--pur);stroke-width:1;stroke-dasharray:2 2;opacity:0;transition:opacity .3s,transform .35s;vector-effect:non-scaling-stroke}
.gog:hover .gog-back{opacity:1;transform:translate(2px,1px)}
.menu-i{display:none;width:18px;height:12px;fill:none;stroke:currentColor;stroke-width:1.4}
.menu-btn{display:none;min-height:40px;padding:0 14px;border:1px solid var(--rule2);border-radius:4px;background:transparent;font-weight:600;font-size:15px;cursor:pointer}
.menu-panel{display:none}

/* the pull lamp: an eyeball sconce on the top of the screen, in the site's thin ink line; the rays show the lights are on */
.lamp{position:absolute;top:0;right:16px;width:64px;height:0}
.lamp-svg{position:absolute;left:0;top:0;width:64px;height:260px;overflow:visible;pointer-events:none}
.lamp .ln{fill:none;stroke:var(--ink);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.lamp .l-solid{fill:var(--ground)}
.lamp .rays path{fill:none;stroke:var(--pur);stroke-width:1.2;stroke-linecap:round;vector-effect:non-scaling-stroke}
.lamp .rays{transition:opacity .35s}
.cord{fill:none;stroke:var(--ink);stroke-width:1.2;stroke-linecap:round;vector-effect:non-scaling-stroke}
.knob{fill:var(--ground);stroke:var(--pur);stroke-width:1.3;vector-effect:non-scaling-stroke}
.knob-l{fill:none;stroke:var(--pur);stroke-width:1;vector-effect:non-scaling-stroke}
.lamp-zone{position:absolute}
.lamp-knob{position:absolute;width:32px;height:32px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;cursor:grab;touch-action:none;z-index:2}
.lamp-knob:active{cursor:grabbing}

/* drawings: no frame; hover turns the object, a click opens it */
.figw{display:flex;flex-direction:column;gap:8px;width:100%}
.fig{position:relative;display:block;width:100%;padding:0;margin:0;border:0;background:transparent;color:var(--ink);cursor:pointer;text-align:left}
.fig-svg{position:absolute;top:0;left:0;width:100%;height:100%;display:block;overflow:visible}
.fig-svg path{fill:none;stroke-linecap:round;stroke-linejoin:round}
/* two weights only: --w1 for the object's own edges, --w0 for hidden edges, guides and leaders */
.fig{--w1:1px;--w0:.5px}
.s-L0{stroke:var(--ink);stroke-opacity:.5;stroke-width:var(--w0)}
.s-A0{stroke:var(--pur);stroke-opacity:.6;stroke-width:var(--w0)}
.s-D{stroke:var(--ink);stroke-opacity:.8;stroke-width:var(--w0);stroke-dasharray:4 3}
.s-L1{stroke:var(--ink);stroke-width:var(--w1)}
.s-A1{stroke:var(--pur);stroke-width:var(--w1)}
.s-T{stroke:var(--ink);stroke-opacity:.6;stroke-width:var(--w0);stroke-dasharray:7 3 1.5 3}
.s-K{stroke:var(--ink);stroke-opacity:.8;stroke-width:var(--w0)}
.fig-svg .s-KD{fill:var(--ink);stroke:none}
.fig.nolab .s-K,.fig.nolab .s-KD{display:none}
.figcap{font-size:14px;color:var(--muted)}
.balloon{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;border:1px solid var(--ink);border-radius:50%;background:var(--ground);color:var(--ink);font-size:13px;font-weight:600;line-height:20px;text-align:center;font-variant-numeric:tabular-nums;pointer-events:none}
.legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;font-size:15px;line-height:1.4}
.legend li{display:flex;gap:10px;align-items:baseline;min-width:0}
.lg-n{flex:none;width:22px;height:22px;border:1px solid var(--ink);border-radius:50%;font-size:13px;font-weight:600;line-height:20px;text-align:center;font-variant-numeric:tabular-nums;transform:translateY(-1px)}
.lg-t{display:block;font-weight:600}
.lg-s{display:block;color:var(--muted)}
.plan text{font-family:inherit;font-size:22px;font-weight:500;fill:var(--muted)}
.plan .pl-s{font-weight:400}

/* home: the six lines in two groups, the featured story */
.hero{padding-top:64px}
.hero .lede{margin-top:24px}
.hero .ctas{margin-top:32px}
.strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;row-gap:56px;margin-top:64px}
.grp-h{font-size:15px;font-weight:600;color:var(--muted);padding-top:12px;margin-bottom:24px;border-top:1px solid var(--rule2)}
.grp-t{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px}
.tile{display:flex;flex-direction:column;gap:6px}
.tile .fig{max-width:200px;margin-bottom:10px}
.tile-t{font-size:18px;font-weight:600;line-height:1.3;color:var(--ink)}
.tile-t:hover{color:var(--pur)}
.tile p{font-size:15px;line-height:1.45;color:var(--muted)}
.study{display:flex;flex-direction:column;gap:16px;max-width:40em;padding-top:16px;border-top:1px solid var(--rule2)}
.study-l{margin:0;padding-left:1.2em;font-size:17px;line-height:1.5}
.study-l li{padding:2px 0}
.study .tlink{align-self:flex-start}
.study-after{display:flex;flex-direction:column;gap:16px;margin-top:48px;max-width:40em}
.study-after .tlink{align-self:flex-start}
.fold>summary{cursor:pointer;list-style:none;padding:16px 0;font-size:15px;font-weight:600;color:var(--pur);border-bottom:1px solid var(--rule)}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary::after{content:" ↓"}
.fold[open]>summary::after{content:" ↑"}
.photo{display:block;width:100%;height:auto}
.feat{display:grid;grid-template-columns:240px minmax(0,1fr);column-gap:32px;align-items:start;max-width:760px}
.feat-k{font-size:15px;color:var(--muted);margin-bottom:6px}
.feat .h3 a{color:var(--ink)}
.feat .h3 a:hover{color:var(--pur)}
.feat .body{margin-top:8px}

/* a story */
.story{display:flex;flex-direction:column;align-items:flex-start;gap:24px;padding-bottom:96px}
.story>.photo,.story>.prose{max-width:768px}
.story-k{font-size:15px;color:var(--muted)}
.split.arrive{margin-bottom:64px}
.split.arrive>.a{grid-column:1 / 7}
.split.arrive>.b{grid-column:8 / 13}
.arrive-photo{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.plate-photo{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;max-width:560px}
.photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;align-items:start;margin-top:48px}
.photos .photo{aspect-ratio:4/3;object-fit:cover}
.photos.pair{grid-template-columns:minmax(0,1.46fr) minmax(0,1fr)}
.photos.pair .photo{aspect-ratio:auto}

/* research */
.line-f{max-width:360px}
.split.line{padding-top:24px;border-top:1px solid var(--rule2)}
.line-t>.h2{margin-bottom:8px}
.line-g{font-size:15px;font-weight:600;color:var(--muted);margin-bottom:12px}
.line-t{display:flex;flex-direction:column;gap:24px}
.papers ul{list-style:none;margin:0;padding:0}
.papers-h{font-size:15px;font-weight:600;color:var(--muted);margin-bottom:4px}
.paper{display:flex;flex-direction:column;gap:2px;padding:12px 0;border-bottom:1px solid var(--rule)}
.paper:first-child{border-top:1px solid var(--rule)}
.paper-k{font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums}
.paper a{font-size:17px;font-weight:600;line-height:1.4;color:var(--ink);align-self:flex-start;border-bottom:1px solid var(--rule2)}
.paper a:hover{color:var(--pur);border-bottom-color:currentColor}
.paper-v{font-size:15px;color:var(--muted);line-height:1.45}
.finding{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:24px;align-items:start;max-width:36em}
.finding .stat-v{color:var(--pur)}
.finding p{font-size:16px;line-height:1.5}
.finding .small{margin-top:8px}

/* people */
.director{display:flex;flex-direction:column;gap:6px;max-width:36em}
.roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px}
.person{padding:14px 0;border-top:1px solid var(--rule)}
.p-bare::before{content:"";display:block;aspect-ratio:1/1;margin-bottom:12px}
.p-photo{aspect-ratio:1/1;object-fit:cover;margin-bottom:12px}
.d-photo{width:224px;aspect-ratio:1/1;object-fit:cover;margin-bottom:12px}
.p-name{font-weight:600;font-size:17px;line-height:1.35}
.p-role{color:var(--muted);font-size:15px;line-height:1.4}
.site .group-h{font-size:15px;font-weight:600;margin:48px 0 8px}
.plain{list-style:none;margin:0;padding:0;columns:3;column-gap:32px;font-size:17px;line-height:1.5}
.plain li{break-inside:avoid;padding:6px 0}

/* join */
.jobs{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule2)}
.job{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,6fr) minmax(0,3fr);column-gap:32px;padding:24px 0;border-bottom:1px solid var(--rule)}
.job-m{font-size:15px;color:var(--muted);margin-top:4px}
.job-d{font-size:17px;line-height:1.55}

/* facilities */
.split.plate + .split.plate{margin-top:48px;padding-top:48px;border-top:1px solid var(--rule)}
/* tabs: one row of tabs over one panel at a time (Facilities instruments) */
.tablist{display:flex;flex-wrap:wrap;column-gap:32px;border-bottom:1px solid var(--rule);margin-bottom:40px}
.tab{appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;margin:0 0 -1px;padding:12px 0;font:inherit;font-size:17px;font-weight:600;color:var(--muted);cursor:pointer}
.tab:hover{color:var(--ink)}
.tab.on{color:var(--pur);border-bottom-color:var(--pur)}
.tab:focus-visible{outline:2px solid var(--pur);outline-offset:4px}
.tabp:not(.on){display:none}
.split.plate.tabp + .split.plate.tabp{margin-top:0;padding-top:0;border-top:0}
/* a link inside a sentence */
.ilink{color:var(--pur);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.lab-photo{display:block;width:100%;height:auto;max-width:960px}
.plate .fig{max-width:480px}
.addr{font-style:normal;font-size:17px;line-height:1.6}
.statement{border-left:2px solid var(--pur);padding-left:24px;max-width:46em;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.statement p{font-size:17px;line-height:1.6}
.copy{min-height:36px;padding:0 14px;border:1px solid var(--rule2);border-radius:4px;background:transparent;font-size:15px;font-weight:600;cursor:pointer}
.copy:hover{border-color:var(--pur);color:var(--pur)}

/* news: press kit */
.kit{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);column-gap:32px;align-items:end}
.kit figure{display:flex;flex-direction:column;gap:12px}
.kit-art{display:flex;align-items:center;justify-content:center;height:160px;border:1px solid var(--rule);border-radius:4px;padding:24px}
.kit-art svg{max-width:100%;max-height:100%}
.kit-art .lockup-flat{width:320px}
.kit-art .fm path{fill:var(--mark)}
.kit-art-m{height:112px;width:112px}
.kit-art-m .fm path,.kit-art-m path{fill:var(--mark)}
.swatch{display:block;height:160px;border-radius:4px;background:#734f96}

/* footer: a plain sitemap */
.ft{margin-top:0;padding:64px 0 32px;border-top:1px solid var(--rule2)}
.ft-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px;row-gap:32px}
.ft-h{font-size:14px;font-weight:600;margin-bottom:12px}
.ft-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:1.4;color:var(--muted)}
.ft-list a{color:var(--ink)}
.ft-list a:hover{color:var(--pur)}
.ft-logo{display:block;width:160px;margin-bottom:16px}
.lockup-flat{display:block;width:100%;height:auto}
.lockup-flat .fm path{fill:var(--mark)}.lockup-flat .fw path{fill:var(--word)}
.ft-addr{font-style:normal;font-size:15px;line-height:1.5;color:var(--muted)}
.ft-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 32px;margin-top:48px;padding-top:24px;border-top:1px solid var(--rule);font-size:14px;color:var(--muted)}
.ft-base a{color:var(--ink)}
.ft-base a:hover{color:var(--pur)}

/* VR: the goggles come down; the page becomes what most headsets make of the web, a flat panel in a room, flanked by two notes on why that falls short */
.room,.vrbar,.gogfx,.vrnote{display:none}
.site.vr{position:fixed;inset:0;overflow:hidden;background:#0c0a11;--hdr:rgba(246,245,248,.92)}
.site.vr.dark{--hdr:rgba(19,16,26,.92)}
.site.vr .room{display:block;position:absolute;inset:0;animation:roomin 1.1s ease .35s both}
.room svg{width:100%;height:100%}
.room-grid{fill:none;stroke:#8a6bb3;stroke-opacity:.3;stroke-width:1;vector-effect:non-scaling-stroke}
.room-wall{fill:none;stroke:#b39ad6;stroke-opacity:.55;stroke-width:1.2;vector-effect:non-scaling-stroke}
.room-t{font-size:14px;font-weight:600;fill:#b39ad6;opacity:.8}
.screen{position:relative;transition:transform 1s cubic-bezier(.2,.7,.2,1) .25s,box-shadow 1s ease .25s,border-radius 1s}
.site.vr .screen{position:absolute;inset:0;overflow-y:auto;background:var(--ground);border-radius:12px;transform:perspective(2400px) translateY(-3%) scale(.58) rotateX(1.5deg);transform-origin:50% 44%;box-shadow:0 0 0 2px #b39ad6,0 30px 140px rgba(140,104,190,.45)}
.site.vr .vrbar{display:flex;position:absolute;left:50%;bottom:28px;transform:translateX(-50%);gap:16px;align-items:center;z-index:30;animation:roomin .6s ease 1s both}
.vrbar .btn{background:#734f96;color:#fff;border-color:#734f96}
.vrbar .vr-soft{background:transparent;color:#ece8f2;border-color:#b39ad6}
.vrbar .vr-soft:hover{background:rgba(179,154,214,.16)}
.site.vr.soft .screen{filter:blur(1.6px)}
.site.vr .vrnote{display:flex;flex-direction:column;gap:12px;position:absolute;top:50%;transform:translateY(-50%);width:250px;padding:20px 20px 22px;box-sizing:border-box;background:rgba(12,10,17,.82);border:1px solid rgba(179,154,214,.32);border-radius:4px;z-index:20;color:#ece8f2;animation:roomin .8s ease 1.1s both}
.vrnote-l{left:max(16px,calc(21vw - 274px))}
.vrnote-r{right:max(16px,calc(21vw - 274px))}
.vrnote::before{content:'';display:block;width:28px;height:1px;background:#b39ad6}
.vrn-k{font-size:14px;font-weight:600;color:#b39ad6}
.vrn-h{font-size:23px;line-height:1.22;font-weight:600}
.vrn-b{font-size:15px;line-height:1.55;color:#c9c1d4}
.vrn-a{font-size:15px;color:#ece8f2;text-decoration:underline;text-decoration-color:#b39ad6;text-underline-offset:4px}
.vrn-s{font-size:12.5px;line-height:1.45;color:#8f86a0}
@media (max-width:1300px){.site.vr .screen{transform:perspective(2400px) translateY(-3%) scale(.5) rotateX(1.5deg)}.site.vr .vrnote{width:210px}.vrn-h{font-size:20px}.vrn-b{font-size:14px}.vrnote-l{left:max(16px,calc(25vw - 234px))}.vrnote-r{right:max(16px,calc(25vw - 234px))}}
@media (max-width:1000px){.room-t{display:none}.site.vr .screen{transform:perspective(2400px) translateY(-12%) scale(.62) rotateX(1.5deg)}.site.vr .vrnote-l{display:none}.site.vr .vrnote-r{top:auto;bottom:84px;left:16px;right:16px;width:auto;transform:none;gap:6px}.vrnote-r::before,.vrnote-r .vrn-b,.vrnote-r .vrn-s{display:none}.vrn-h{font-size:18px}.site.vr .vrbar{bottom:20px;width:calc(100% - 32px);justify-content:center;flex-wrap:wrap;gap:10px}}
.site.vr .gogfx{display:block;position:absolute;left:50%;top:50%;width:min(92vw,1100px);z-index:40;pointer-events:none;animation:don 1.15s cubic-bezier(.5,0,.3,1) both}
.gogfx svg{width:100%;height:auto;overflow:visible}
.gogfx path{fill:none;stroke:#b39ad6;stroke-width:2;vector-effect:non-scaling-stroke}
@keyframes don{0%{transform:translate(-50%,-160%) scale(.5) rotateX(30deg);opacity:1}45%{transform:translate(-50%,-50%) scale(1);opacity:1}100%{transform:translate(-50%,-50%) scale(4.2);opacity:0}}
@keyframes roomin{from{opacity:0}to{opacity:1}}




@media (prefers-reduced-motion: reduce){.site *,.site *::before,.site *::after{transition-duration:.01s !important;animation-duration:.01s !important;animation-delay:0s !important}}
@media (max-width:1240px){.nav{gap:20px;font-size:15px}.hdr-in{gap:24px}}
@media (max-width:1100px){
.nav{display:none}.menu-btn{display:inline-flex;align-items:center}.hdr-act{margin-left:auto}
.site.menu-open .menu-panel{display:block;border-top:1px solid var(--rule);background:var(--ground)}
.menu-in{display:flex;flex-direction:column;padding-top:12px;padding-bottom:20px}
.menu-in a{font-weight:600;font-size:26px;padding:10px 0;border-bottom:1px solid var(--rule)}
.menu-in a.cur{color:var(--pur)}
.strip{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:1000px){
.wrap{padding-left:24px;padding-right:24px}
.split>.a,.split>.b,.split.mirror>.a,.split.mirror>.b,.split.wide>.a,.split.wide>.b,.split.plate>.a,.split.plate>.b,.split.arrive>.a,.split.arrive>.b{grid-column:1 / -1;grid-row:auto}
.halves,.items,.items.i2,.kit,.ft-grid,.photos,.photos.pair{grid-template-columns:minmax(0,1fr)}
.photos{row-gap:32px}
.roster{grid-template-columns:repeat(2,minmax(0,1fr))}
.plain{columns:2}
.job{grid-template-columns:minmax(0,1fr);row-gap:8px}
.row,.rows.two .row,.line-t .rows.two .row{grid-template-columns:minmax(0,1fr)}
.stick{position:static}
.lamp{right:8px}.hdr-act{margin-right:56px}
.sec{padding-top:72px}
.fig{max-height:200px}.line-f,.plate .fig{max-width:300px}
}
@media (max-width:640px){
.wrap{padding-left:16px;padding-right:16px}
body,.site{font-size:17px}.h3{font-size:18px}
.hdr-in{height:64px;gap:10px}.lockup{height:30px}.hdr-act{gap:6px;margin-right:44px}.btn-sm{padding:0 10px}
.menu-btn{width:38px;padding:0;justify-content:center}.menu-l{display:none}.menu-i{display:block}.gog{width:38px}.lamp{right:2px}
.grp-t{column-gap:16px}.tile p{display:none}.tile-t{font-size:16px}
.feat{grid-template-columns:120px minmax(0,1fr);column-gap:16px}
.roster{grid-template-columns:minmax(0,1fr)}.p-bare::before{display:none}.plain{columns:1}
.kv>div,.kv.tight>div{grid-template-columns:minmax(0,1fr);row-gap:2px}
.legend{grid-template-columns:minmax(0,1fr)}
.stat-v{font-size:36px}
.finding{grid-template-columns:minmax(0,1fr);row-gap:12px}
.sec-last{padding-bottom:72px}
.ft-base{flex-direction:column}
}
