/* Tetris homepage, project well and journal. */
.well-gap.has-egg{border-color:#bca0ff35;background:#a880ff09}.well-gap .gap-egg{display:block;width:48%;height:64%;margin:auto;pointer-events:none;filter:drop-shadow(0 0 8px #a18dff66);animation:egg-appear .4s ease-out}.well-gap.has-egg:hover,.well-gap.has-egg:focus-visible{background:#a880ff16;border-color:#c3afff99}@keyframes egg-appear{from{opacity:0;transform:scale(.65) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media(prefers-reduced-motion:reduce){.well-gap .gap-egg{animation:none}}
.well-gap{position:absolute;z-index:1;width:var(--cell);height:var(--cell);padding:0;border:1px solid transparent;border-radius:0;background:transparent;color:#9bc8ef;cursor:pointer;transition:background .18s,border-color .18s}.well-gap span{opacity:0;font:clamp(18px,calc(var(--cell) * .26),30px) var(--mono);transition:opacity .18s}.well-gap:hover,.well-gap:focus-visible{background:#589aff0c;border:1px dashed #589aff65;outline:none}.well-gap:hover span,.well-gap:focus-visible span{opacity:.8}.well-gap:active{background:#589aff22}.gap-keyboard-help{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.gap-pop{position:fixed;z-index:90;left:0;top:0;bottom:auto;transform:none;width:min(410px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:24px 25px 20px;background:#0b1929;border:1px solid #589aff70;border-top:2px solid #8fc6ff;box-shadow:0 14px 65px #0009,0 0 35px #589aff12;text-align:left}.gap-pop[hidden]{display:none}.gap-pop-label{display:block;padding-right:35px;font:9px var(--mono);letter-spacing:.14em;color:#8fc6ff}.gap-pop p{font:18px/1.55 var(--sans);color:#e6eff9;margin:16px 0}.gap-pop small{font:10px/1.5 var(--mono);color:#849ab3}.gap-pop button{position:absolute;right:10px;top:8px;width:44px;height:44px;padding:0;background:transparent;border:0;color:#abc4de;font-size:25px}.gap-pop button:hover{color:#fff}.gap-pop button:focus-visible{outline:2px solid #8fc6ff;outline-offset:-4px}
@media(prefers-reduced-motion:reduce){.well-gap,.well-gap span{transition:none}}
.tetris-homepage{background:radial-gradient(ellipse at 55% 25%,#0b1f331f,transparent 55%),var(--bg)}.tetris-homepage .work-section{padding-top:45px;padding-bottom:68px}.tetris-homepage .section-heading{margin-bottom:30px}.tetris-homepage .work-controls{margin-bottom:22px}.tetris-homepage .filters{gap:10px}.tetris-homepage .filter{font-size:12px;padding:10px 18px;border-radius:3px}.tetris-homepage .filter.active{background:#589aff1b;box-shadow:inset 0 -2px #79bcff;color:#9dceff}
.well-toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:15px}.well-toolbar p{font:11px var(--mono);color:#91adca}.well-toolbar>div{display:flex;align-items:center;gap:20px}.well-toolbar button,.stack-list-link{font:10px var(--mono);padding:7px 0;color:#b7cbe0}.well-toolbar button:hover,.stack-list-link:hover{color:#fff}.well-toolbar button[aria-pressed=true]{color:#ffb36b}.well-toolbar [hidden]{display:none}
.well-layout{display:grid;grid-template-columns:minmax(0,1fr)230px;gap:32px;align-items:start}.well-frame{border:1px solid #518ab260;position:relative;box-shadow:0 0 45px #356db508,0 15px 50px #0004;background:#07101d}.well-lip{height:44px;display:flex;align-items:center;gap:16px;padding:0 16px;background:linear-gradient(90deg,#14324c,#0b1726);border-bottom:1px solid #5389b169;font:8px var(--mono);letter-spacing:.1em;color:#83a2bd}.well-lip strong{font-size:10px;color:#d2e8ff;font-weight:400;letter-spacing:0}.well-lamp{margin-left:auto;width:5px;height:5px;border-radius:50%;background:#89d4ff;box-shadow:0 0 12px #63bdff}.well-ruler{position:absolute;top:44px;left:-25px;width:20px;font:7px var(--mono);color:#45607e}.well-ruler span{position:absolute;right:0;padding-top:5px}
.tetris-well{--cell:100px;position:relative;width:100%;overflow:hidden;visibility:hidden;background-image:linear-gradient(#5a95bd0b 1px,transparent 1px),linear-gradient(90deg,#5a95bd0b 1px,transparent 1px),radial-gradient(ellipse at 50% 0,#142c455c,transparent 55%);background-size:var(--cell) var(--cell),var(--cell) var(--cell),100% 100%}.tetris-ready .tetris-well{visibility:visible}.tetris-well::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;box-shadow:inset 10px 0 24px #0004,inset -10px 0 24px #0004}
.well-piece{position:absolute;display:block;margin:0;padding:0;color:var(--piece-color);clip-path:var(--piece-clip);z-index:2;transition:opacity .3s,filter .3s;filter:drop-shadow(0 0 9px color-mix(in srgb,var(--piece-color) 8%,transparent));-webkit-tap-highlight-color:transparent}.well-piece:focus-visible{outline:none}.well-piece.is-dim{opacity:.23;filter:saturate(.23)}.well-piece:focus-visible{opacity:1;filter:brightness(1.25);z-index:4}.well-piece.is-match .piece-outline,.well-piece:focus-visible .piece-outline{stroke-opacity:1;stroke-width:4}.well-piece:focus-visible .tile-cell{fill:color-mix(in srgb,var(--piece-color) 18%,transparent)}.piece-surface{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.tile-cell{fill:color-mix(in srgb,var(--piece-color) 5%,transparent);stroke:var(--piece-color);stroke-opacity:.25;stroke-width:1}.tile-bevel{stroke:var(--piece-color);stroke-opacity:.18;stroke-width:1;fill:none}.piece-outline{fill:none;stroke:var(--piece-color);stroke-width:2.5;stroke-opacity:.65;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:stroke-opacity .2s}.piece-emblem{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:.68}.piece-emblem svg{width:67%;height:67%;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--piece-color) 25%,transparent))}.piece-copy{position:absolute;display:flex;align-items:center;padding:calc(var(--cell) * .09) calc(var(--cell) * .15);pointer-events:none;text-shadow:0 2px 10px #030811}.piece-copy>span{display:flex;flex-direction:column;justify-content:center;min-width:0}.piece-kind{font:clamp(6px,calc(var(--cell) * .072),9px) var(--mono);letter-spacing:.09em;line-height:1.4;opacity:.75;white-space:nowrap}.piece-copy strong{font-family:var(--display);font-size:clamp(14px,calc(var(--cell) * .195),23px);font-weight:500;line-height:1.08;letter-spacing:-.04em;color:#edf5ff;margin:5px 0 6px;text-wrap:balance}.piece-action{font:clamp(6px,calc(var(--cell) * .073),9px) var(--mono);letter-spacing:.06em;line-height:1.3}.piece-action b{margin-left:6px;font-weight:400}.piece-copy-wide{gap:calc(var(--cell) * .18)}.inline-emblem{width:calc(var(--cell) * .54);height:calc(var(--cell) * .54);flex:none;opacity:.7}.piece-copy-wide strong{font-size:clamp(16px,calc(var(--cell) * .22),26px)}.newest-piece{z-index:3}.landing-ghost{position:absolute;pointer-events:none;opacity:.34;transition:opacity .2s;z-index:1}.landing-ghost .piece-outline{stroke-dasharray:5 6}.landing-ghost.landed{opacity:0}.well-floor{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-top:3px solid #577f9e77;background:#0a1929;color:#6e93b2;font:8px var(--mono);letter-spacing:.12em}
.well-sidebar{position:sticky;top:35px;padding-top:3px}.well-inspector{border-top:2px solid var(--selected-color,#589aff);padding-top:23px;min-height:350px}.inspector-top{display:flex;gap:14px;align-items:center;color:var(--selected-color);font:8px var(--mono);letter-spacing:.1em;margin-bottom:23px}.inspector-top svg{width:38px;height:38px;flex:none}.well-inspector h3{font-size:31px;line-height:1.12;margin-bottom:20px}.well-inspector>p{font-size:13px;line-height:1.85}.inspector-go{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:26px;font-size:12px;color:var(--selected-color,#8dc3ff);padding:12px 0;border-block:1px solid #ffffff13}.inspector-notes{display:block;margin-top:15px;color:#a4b7cb;font-size:11px}.well-help{font-size:11px;line-height:1.8;margin:22px 0;color:#768ba5}.well-key{border-top:1px solid var(--line);padding-top:20px;display:flex;flex-direction:column;gap:12px;font:9px var(--mono);color:#809bb6}.well-key>span{display:flex;gap:10px;align-items:center}.well-key i{width:8px;height:8px;display:block;border:1px solid #7898b2}.key-demo{background:#8ac9ff}.journal-pointer{display:flex;justify-content:space-between;font:11px var(--sans);color:#a9c5df;border-top:1px solid var(--line);margin-top:26px;padding-top:19px}.stack-directory{margin-top:24px;background:#0b1828;border-radius:0}.stack-directory summary{color:#adc7e0}.stack-directory:target{outline:1px solid #589aff80}.stack-directory>div{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;padding-top:16px}.stack-directory a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 0;border-top:1px solid #ffffff0c;font-size:12px;transition:opacity .3s}.stack-directory small{font:8px var(--mono);color:#8da5bd;white-space:nowrap}.stack-directory .is-dim{opacity:.4}.stack-directory .is-dim:hover,.stack-directory .is-dim:focus-visible{opacity:1}
.journal-section{border-block:1px solid var(--line);background:radial-gradient(ellipse at 0 20%,#23305144,transparent 65%)}.journal-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:60px}.journal-plans{display:grid;grid-template-columns:1fr 1fr;gap:32px}.journal-plans article{border-top:1px solid #5584aa50;padding-top:20px}.journal-plans article>span,.journal-post>span{font:9px var(--mono);letter-spacing:.1em;color:#79a1c6}.journal-plans h3,.journal-post h3{font-size:26px;line-height:1.2;margin:18px 0}.journal-plans p,.journal-post p{font-size:13px;line-height:1.85}.journal-plans .journal-status{grid-column:1/-1;color:#7790aa;font:10px var(--mono);padding-top:6px}.substack-space{border-left:1px solid #ffffff13;padding-left:35px;position:relative}.substack-space h3{font-size:32px;margin-bottom:17px}.substack-space p{font-size:13px;line-height:1.85;max-width:300px}.substack-space .eyebrow{margin-bottom:14px}.substack-mark{position:absolute;right:0;top:-15px;font:50px var(--mono);color:#ffb36b70}.coming-label{display:inline-block;border:1px dashed #7c8eab60;padding:9px 12px;font:9px var(--mono);color:#94a7bd;margin:23px 0}.substack-space>.text-link{display:block;font-size:11px;margin-top:8px}.journal-post{display:block;padding:22px 0;margin-bottom:28px;border-block:1px solid var(--line)}.journal-post>span:last-child{display:block;margin-top:18px;color:#95bdde}
@media(min-width:1600px){.tetris-homepage .well-layout{grid-template-columns:minmax(0,1fr)270px;gap:45px}}
@media(max-width:1100px){.well-layout{grid-template-columns:minmax(0,1fr)200px;gap:25px}.well-inspector h3{font-size:27px}.well-inspector>p{font-size:12px}.tetris-homepage nav{gap:18px}.tetris-homepage .nav-guide{display:none}.journal-layout{gap:30px}.journal-plans{gap:24px}}
@media(max-width:850px){.well-layout{grid-template-columns:1fr}.well-sidebar{position:static;display:grid;grid-template-columns:1.5fr 1fr;gap:10px 28px;padding-top:15px}.well-inspector{grid-row:span 3;min-height:0;padding-top:17px}.well-inspector h3{font-size:26px}.inspector-top{margin-bottom:13px}.well-help{margin-top:0}.well-key{padding-top:12px}.journal-pointer{margin-top:0}.journal-layout{grid-template-columns:1fr}.substack-space{padding:25px 0 0;border-left:0;border-top:1px solid var(--line)}.substack-mark{top:15px}.substack-space p{max-width:500px}}
@media(max-width:760px){.tetris-homepage .work-section{padding:36px 6% 45px}.tetris-homepage .filters{gap:7px}.tetris-homepage .filter{font-size:10px;padding:9px 12px}.well-toolbar{flex-wrap:wrap;gap:5px}.well-toolbar p{font-size:9px}.well-toolbar>div{gap:20px}.well-toolbar button,.stack-list-link{font-size:9px}.well-lip{height:40px;padding-inline:10px;gap:12px}.well-lip strong{font-size:9px}.well-lip>span:first-child{font-size:7px}.well-ruler{left:-19px;top:40px;font-size:6px}.well-frame{margin-left:8px}.well-floor{font-size:7px;padding-inline:10px}.well-sidebar{gap:10px 18px}.well-inspector>p{font-size:11px}.inspector-go{font-size:11px}.well-help{font-size:10px}.well-key{font-size:8px}.journal-pointer{font-size:10px}.stack-directory>div{grid-template-columns:1fr}.stack-directory a{font-size:11px}.journal-plans{gap:22px}.journal-plans h3{font-size:24px}.journal-plans p{font-size:12px}.tetris-homepage .journal-section .section-heading h2{font-size:40px}}
@media(max-width:400px){.piece-copy{padding-inline:calc(var(--cell) * .11)}.piece-kind{font-size:6px;letter-spacing:.02em}.piece-copy strong{font-size:14px;margin:4px 0}.piece-action{font-size:6px}.well-sidebar{display:block}.well-help{margin-top:25px}.well-key{flex-direction:row;flex-wrap:wrap}.journal-pointer{margin-top:20px}.journal-plans{grid-template-columns:1fr}.journal-plans .journal-status{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.well-piece,.piece-outline,.landing-ghost,.stack-directory a{transition:none!important}}

.contact-gap:hover,.contact-gap:focus-visible{background:#73d8cb0c;border-color:#73d8cb65;color:#9be6db}.gap-pop small:empty{display:none}
.contact-dialog{width:min(480px,calc(100vw - 28px));padding:32px}.contact-dialog h2{font-size:36px;margin-bottom:24px}.contact-dialog .eyebrow{margin-bottom:12px}.contact-dialog label{display:block;color:#c5d8ea;font-size:12px;margin:18px 0 8px}.contact-dialog input,.contact-dialog textarea{display:block;width:100%;padding:12px;border:1px solid #589aff45;border-radius:3px;background:#071321;color:#e8f1fc;font:14px/1.5 var(--sans)}.contact-dialog textarea{resize:vertical;min-height:110px;max-height:35dvh}.contact-dialog input:focus,.contact-dialog textarea:focus{outline:2px solid #8fc6ff;outline-offset:2px}.contact-dialog .contact-privacy{font-size:11px;line-height:1.65;margin:18px 0;color:#95acc5}.contact-privacy a{color:#a8d6ff;text-decoration:underline;text-underline-offset:3px}.contact-dialog .button{font-size:12px;min-height:44px}.contact-dialog .button:disabled{opacity:.5;cursor:not-allowed}.contact-dialog .contact-status{font-size:12px;line-height:1.65;margin-top:15px;color:#9fe0cd}.contact-status[data-error="true"]{color:#ffb69e}.contact-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

/* The well leads; the compact brain sits above the selected project. */
.tetris-homepage .work-section{padding-top:26px;padding-bottom:56px}
.tetris-homepage .well-layout{grid-template-columns:minmax(0,1fr)300px;gap:34px}
.well-main{min-width:0}
.homepage-intro{font-size:14px;line-height:1.65;color:#acbfd4;margin:0 0 22px;max-width:720px}
.tetris-homepage .work-controls{gap:16px;margin-bottom:18px}
.tetris-homepage .well-sidebar{position:sticky;top:18px;display:block;padding-top:0}
.brain-panel{margin:0 0 26px}
.tetris-homepage .sidebar-brain{max-width:none;width:100%;margin:0;aspect-ratio:680/620;justify-self:auto}
.sidebar-brain .brain-controls{opacity:1;left:50%;bottom:1%;gap:6px}
.sidebar-brain .brain-help{display:inline;font-size:7px}
.brain-topics{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}
.brain-topics .constellation-node{position:static;display:flex;align-items:center;justify-content:space-between;gap:5px;padding:9px 8px;font-size:9px;letter-spacing:.035em;box-shadow:none}
.brain-topics .constellation-node span{font-size:6px;opacity:.65}
.tetris-homepage .well-inspector{min-height:0;padding-top:18px}
.tetris-homepage .well-inspector h3{font-size:29px}
.tetris-homepage .inspector-top{margin-bottom:16px}
.tetris-homepage .well-sidebar .journey-banner{margin:0 0 24px;padding:18px;flex-direction:column;align-items:start;gap:16px}
.tetris-homepage .well-sidebar .journey-banner[hidden]{display:none}
.well-piece.waiting-drop{visibility:hidden;pointer-events:none}
@media(min-width:1600px){.tetris-homepage .well-layout{grid-template-columns:minmax(0,1fr)320px;gap:40px}}
@media(max-width:1100px){.tetris-homepage .well-layout{grid-template-columns:minmax(0,1fr)240px;gap:26px}.tetris-homepage .work-controls{flex-wrap:wrap}.brain-topics .constellation-node{font-size:8px;padding:8px 6px}.brain-topics .constellation-node span{display:none}}
@media(max-width:850px){.tetris-homepage .well-layout{grid-template-columns:minmax(0,1fr)}.tetris-homepage .well-sidebar{position:static;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 28px;padding-top:14px}.brain-panel{grid-column:1;grid-row:1 / span 4;margin:0}.tetris-homepage .well-inspector{grid-column:2;grid-row:auto}.tetris-homepage .well-sidebar>p,.tetris-homepage .well-sidebar>.well-key,.tetris-homepage .well-sidebar>.journal-pointer,.tetris-homepage .well-sidebar>.journey-banner{grid-column:2}.brain-topics .constellation-node{font-size:9px}.tetris-homepage .well-help{margin:0}.tetris-homepage .journal-pointer{margin:0}}
@media(max-width:760px){.tetris-homepage .work-section{padding:20px 6% 40px}.homepage-intro{font-size:13px;margin-bottom:17px}.tetris-homepage .work-controls{flex-direction:row;align-items:center;gap:12px}.tetris-homepage .well-toolbar{gap:10px;margin-bottom:12px}.tetris-homepage .well-toolbar>div{gap:15px}.tetris-homepage .well-sidebar{display:block}.brain-panel{max-width:360px;margin:0 auto 28px}.tetris-homepage .well-help{margin:20px 0}.tetris-homepage .journal-pointer{margin-top:22px}}

/* Keep the homepage to the well and its sidebar. */
.well-quote{grid-column:1/-1;margin:0;color:var(--cyan);font-size:12px;font-style:italic;line-height:1.8;text-align:center}.well-quote p{margin:0;color:inherit}.well-quote cite{font:inherit}
.well-sidebar .stack-directory{margin:24px 0 0}.well-sidebar .stack-directory>div{grid-template-columns:1fr}.well-sidebar .stack-directory a{align-items:flex-start;flex-direction:column;gap:5px}.well-privacy{display:inline-block;margin-top:18px;font:10px var(--mono);color:var(--muted)}.well-privacy:hover{color:var(--cyan)}

/* Unfinished entries retain their shape and position, but have no destination. */
.well-piece.is-unavailable,.well-piece.is-unavailable:hover,.well-piece.is-unavailable:focus-visible{opacity:.78;filter:grayscale(1);cursor:default;z-index:2}.well-piece.is-unavailable.is-dim{opacity:.58}.well-piece.is-unavailable .piece-outline{stroke-width:2.5;stroke-opacity:.65}.stack-directory .is-unavailable,.stack-directory .is-unavailable:hover{color:#aeb9c6;opacity:.85;cursor:default}

/* Fit the desktop collection beneath the controls, without repacking its eight columns. */
@media(min-width:1200px){
  .tetris-homepage .well-layout{grid-template-columns:minmax(0,clamp(384px,calc((100dvh - 380px) * var(--well-aspect,.7273)),680px)) 320px;gap:40px;justify-content:center}
  .well-toolbar{flex-wrap:wrap;gap:4px 15px}
  .well-toolbar>div{gap:15px}
  .piece-kind,.piece-action{display:none}
  .piece-copy strong,.piece-copy-wide strong{font-size:14px;line-height:1.15;margin:0}
}

/* Phones use native one-tap links; hover treatment belongs to a mouse. */
@media(hover:hover) and (pointer:fine){.well-piece:not(.is-unavailable):hover{opacity:1;filter:brightness(1.25);z-index:4}.well-piece:not(.is-unavailable):hover .piece-outline{stroke-opacity:1;stroke-width:4}}

/* A still of the existing brain avoids loading WebGL on the collection page. */
.brain-still{display:block;width:100%;height:auto;aspect-ratio:680/620}
