:root{--red:#e32017;--blue:#004b87;--yellow:#ffd100;--paper:#f4f1ea;--ink:#111;--line:6px;--font-display:"Archivo","Helvetica Neue",Arial,sans-serif;--font-mono:"JetBrains Mono","Courier New",monospace;--duration-fast:0.3s;--duration-medium:0.5s;--duration-slow:0.9s}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#111;background-color:var(--ink);color:#f4f1ea;color:var(--paper);font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);overflow-x:hidden}.App{min-height:100dvh;position:relative;width:100%}a{color:inherit;text-decoration-thickness:2px;text-underline-offset:3px}code{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.9em}@keyframes fade-in{0%{opacity:0}}@keyframes fade-scale-in{0%{opacity:0;transform:scale(.98)}}.art-view,.composition-view{animation:fade-in .5s ease backwards}.tile__body{animation:fade-in .2s ease backwards}.tile__label-inner{animation:fade-in .22s ease .32s backwards}.lightbox{animation:fade-in .2s ease backwards}.lightbox__image{animation:fade-scale-in .2s ease backwards}.btn{background:#0000;border:2px solid;color:inherit;cursor:pointer;font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.8rem;font-weight:700;letter-spacing:.08em;padding:.75rem 1.1rem;text-transform:uppercase;transition:background-color .3s,color .3s;transition:background-color var(--duration-fast),color var(--duration-fast)}.btn--solid{background:#111;background:var(--btn-bg,var(--ink));border-color:#111;border-color:var(--btn-bg,var(--ink));color:#f4f1ea;color:var(--btn-fg,var(--paper))}.btn--solid:hover{background:#e32017;background:var(--red);border-color:#e32017;border-color:var(--red);color:#f4f1ea;color:var(--paper)}.btn--ghost:hover:not(:disabled){background:#f4f1ea;background:var(--btn-fg,var(--paper));color:#111;color:var(--btn-bg,var(--ink))}.btn:disabled{cursor:default;opacity:.35}.muted{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;opacity:.7}.display{font-weight:900;letter-spacing:-.045em;line-height:.88}.display,.prose{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display)}.prose{font-size:1.05rem;line-height:1.65;max-width:62ch}.prose+.prose{margin-top:1rem}.piet-grid{grid-gap:2px;aspect-ratio:var(--cols) /var(--rows);background:#000;display:grid;gap:2px;grid-template-columns:repeat(var(--cols),1fr);grid-template-rows:repeat(var(--rows),1fr);position:relative;width:100%}.piet-cell{transition:background-color .9s ease,opacity .2s ease,transform .9s cubic-bezier(.65,0,.35,1);transition:background-color var(--duration-slow) ease,opacity .2s ease,transform var(--duration-slow) cubic-bezier(.65,0,.35,1)}.piet-grid--intro .piet-cell{animation:cell-in .3s ease-in-out backwards;animation:cell-in var(--duration-fast) ease-in-out backwards}@keyframes cell-in{0%{opacity:0;transform:scale(.6)}}.piet-cell.is-dim{opacity:.22}.piet-trail{height:100%;inset:0;overflow:visible;pointer-events:none;position:absolute;width:100%}.piet-trail polyline{fill:none;stroke:#fff;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px rgba(0,0,0,.9))}.piet-trail circle{fill:#fff;filter:drop-shadow(0 0 3px rgba(0,0,0,.9))}.studio-grid .piet-cell.is-dim{filter:grayscale(.85) brightness(1.2);opacity:1}.studio-grid .piet-trail polyline{stroke:#111;stroke:var(--ink)}.studio-grid .piet-trail circle,.studio-grid .piet-trail polyline{filter:drop-shadow(0 0 2px #F4F1EA);filter:drop-shadow(0 0 2px var(--paper))}.studio-grid .piet-trail circle{fill:#111;fill:var(--ink)}.piet-grid--paintable{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none}.piet-readout{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono)}.piet-readout__stdout{align-items:baseline;display:flex;flex-wrap:wrap;font-size:clamp(1.25rem,2.6vw,2rem);font-weight:700;gap:.6rem;min-height:1.4em;word-break:break-all}.piet-readout__prompt{font-size:.7rem;font-weight:400;letter-spacing:.08em;opacity:.5}.piet-readout__caret{animation:caret .8s steps(1) infinite;background:currentColor;display:inline-block;height:1em;margin-left:-.45rem;transform:translateY(.12em);width:.55em}@keyframes caret{50%{opacity:0}}.piet-readout__regs{grid-gap:.4rem 1.5rem;display:grid;gap:.4rem 1.5rem;grid-template-columns:repeat(4,auto);justify-content:start;margin-top:1rem}.piet-readout__regs dt{font-size:.65rem;letter-spacing:.1em;opacity:.5;text-transform:uppercase}.piet-readout__regs dd{font-feature-settings:"tnum";font-size:.9rem;font-variant-numeric:tabular-nums;white-space:nowrap}.piet-readout__stack{grid-column:1/-1}.piet-readout__stack dd{white-space:normal}.piet-readout--compact .piet-readout__stdout{font-size:1.15rem}.art-view{--btn-bg:var(--paper);--btn-fg:var(--ink);background:#0b0b0b;display:grid;min-height:100dvh;padding:2rem;place-items:center;width:100%}.art-stage{grid-gap:clamp(2rem,5vw,4.5rem);align-items:center;display:grid;gap:clamp(2rem,5vw,4.5rem);grid-template-columns:auto minmax(18rem,27rem)}.art-canvas{outline:none;width:min(78dvh,54vw)}.art-canvas.is-idle .art-grid{transition:transform .5s ease;transition:transform var(--duration-medium) ease}.art-canvas.is-idle:focus-visible .art-grid,.art-canvas.is-idle:hover .art-grid{transform:scale(1.015)}.art-canvas:focus-visible{outline:2px solid #ffd100;outline:2px solid var(--yellow);outline-offset:6px}.art-view.is-folded .art-grid{background:#111;background:var(--ink)}.art-view.is-folded .art-grid .piet-cell{transform:scale(.9)}.art-caption{color:#f4f1ea;color:var(--paper)}.art-eyebrow{font-size:.75rem;letter-spacing:.06em;opacity:.7;text-transform:uppercase}.art-title{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3.4rem);font-weight:900;letter-spacing:-.035em;line-height:1;margin:.6rem 0 .4rem}.art-credit{font-size:.8rem;margin-bottom:2rem;opacity:.6}.art-panel{animation:fade-in .3s ease backwards}.art-lede{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:1.1rem;line-height:1.55;margin-bottom:1.5rem;max-width:28ch}.art-actions{display:flex;flex-wrap:wrap;gap:.75rem}.art-actions--after{animation:fade-in .4s ease .6s backwards;margin-top:1.25rem}.art-fold-note{font-size:.8rem;margin-top:1.5rem;opacity:0;transition:opacity .5s ease;transition:opacity var(--duration-medium) ease}.art-fold-note.is-visible{opacity:.7}.art-more{font-size:.75rem;margin-top:2rem;opacity:.6}.composition-view{background:#111;background:var(--ink);height:100dvh;padding:6px;padding:var(--line);width:100%}.composition{--tile-pad:clamp(0.9rem,1.8vw,1.6rem);grid-gap:6px;grid-gap:var(--line);container-type:size;display:grid;gap:6px;gap:var(--line);height:100%;width:100%}.color-block,.tile{will-change:transform}.tile{--min-w:calc((100cqw - var(--col-gaps)*var(--line))*var(--fw, 1) + var(--span-col-gaps, 0)*var(--line));--min-h:calc((100cqh - var(--row-gaps)*var(--line))*var(--fh, 1) + var(--span-row-gaps, 0)*var(--line));background:#f4f1ea;background:var(--paper);color:#111;color:var(--ink);contain:layout paint;min-height:0;min-width:0;overflow:hidden;position:relative}.tile--red{background:#e32017;background:var(--red)}.tile--blue,.tile--red{--btn-bg:var(--paper);--btn-fg:var(--ink);color:#f4f1ea;color:var(--paper)}.tile--blue{background:#004b87;background:var(--blue)}.tile--yellow{background:#ffd100;background:var(--yellow)}.tile--closed{align-items:flex-end;cursor:pointer;display:flex;outline:none;padding:var(--tile-pad)}.tile--closed:after{background:currentColor;bottom:0;content:"";height:6px;height:var(--line);left:0;position:absolute;transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.65,0,.35,1);transition:transform var(--duration-medium) cubic-bezier(.65,0,.35,1);width:100%;z-index:2}.tile--closed:focus-visible:after,.tile--closed:hover:after{transform:scaleX(1)}.tile__label{min-width:0;position:relative;z-index:1}.tile--closed:not(.is-narrow):not(.is-short) .tile__label{flex:none;width:calc(var(--min-w) - var(--tile-pad)*2)}.tile__label-inner{display:flex;flex-direction:column;gap:.4rem}.tile-backdrop{inset:0;position:absolute}.tile-backdrop__image{display:block;height:100%;object-fit:cover;width:100%}.tile-backdrop:after{background:linear-gradient(0deg,#111111e0,#11111140 60%,#1110);content:"";inset:0;position:absolute}.tile--closed.has-backdrop{color:#f4f1ea;color:var(--paper)}.tile__title{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:clamp(1.35rem,2.3vw,2.1rem);font-weight:800;letter-spacing:-.02em;line-height:1}.tile__blurb{font-size:.75rem;opacity:.7}.tile--closed.is-narrow,.tile--closed.is-short{align-items:center;justify-content:center;padding:.5rem}.tile--closed.is-narrow .tile__label-inner{transform:rotate(180deg);writing-mode:vertical-rl}.tile--closed.is-narrow .tile__title,.tile--closed.is-short .tile__title{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}.tile--closed.is-narrow.is-short .tile__label-inner{transform:none;writing-mode:horizontal-tb}.tile__body{display:flex;flex-direction:column;inset:0;position:absolute}.tile__header{grid-gap:.75rem 1rem;align-items:end;border-bottom:6px solid #111;border-bottom:var(--line) solid var(--ink);display:grid;gap:.75rem 1rem;grid-template-columns:minmax(0,1fr) auto;padding:1.25rem 1.5rem .9rem}.tile__index{display:flex;gap:.25rem 1.1rem;grid-column:1/-1;overflow-x:auto;scrollbar-width:none}.tile__index::-webkit-scrollbar{display:none}.tile__index-link{background:none;border:none;color:inherit;cursor:pointer;flex:none;font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.08em;opacity:.6;padding:.15rem 0;text-transform:uppercase;transition:opacity .3s;transition:opacity var(--duration-fast)}.tile__index-link:focus-visible,.tile__index-link:hover{opacity:1;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.tile__heading{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:clamp(2rem,5vw,4rem);font-weight:900;letter-spacing:-.045em;line-height:.9}.tile__close{background:#111;background:var(--ink);border:none;color:#f4f1ea;color:var(--paper);cursor:pointer;flex:none;font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:1.5rem;height:2.75rem;line-height:1;opacity:0;pointer-events:none;transition:opacity .2s ease,background-color .3s;transition:opacity .2s ease,background-color var(--duration-fast);width:2.75rem}.tile__close:hover{background:#004b87;background:var(--blue)}.tile__close.is-ready{opacity:1;pointer-events:auto}.tile--red .tile__close:hover{background:#ffd100;background:var(--yellow);color:#111;color:var(--ink)}.tile__content{flex:1 1;overflow:auto;overscroll-behavior:contain;padding:1.5rem}.color-block{border:none;cursor:pointer;min-height:0;min-width:0;overflow:hidden;position:relative;transition:filter .3s;transition:filter var(--duration-fast)}.color-block:hover{filter:brightness(1.1)}.color-block:after{bottom:.5rem;content:attr(data-hint);font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.65rem;font-weight:700;left:.6rem;letter-spacing:.08em;opacity:0;position:absolute;text-transform:uppercase;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease;white-space:nowrap}.color-block:focus-visible:after,.color-block:hover:after{opacity:1;transform:none}.color-block:after{line-height:1.4;text-align:left;white-space:pre}.color-block.is-narrow:not(.is-short):after{bottom:.6rem;left:50%;transform:translateX(-50%) rotate(180deg) translateX(-4px);writing-mode:vertical-rl}.color-block.is-narrow:not(.is-short):focus-visible:after,.color-block.is-narrow:not(.is-short):hover:after{transform:translateX(-50%) rotate(180deg)}.color-block.is-narrow.is-short:after{bottom:50%;font-size:.8rem;left:50%;transform:translate(-50%,50%) scale(.9)}.color-block.is-narrow.is-short:focus-visible:after,.color-block.is-narrow.is-short:hover:after{transform:translate(-50%,50%)}.about-preview{display:flex;flex-direction:column;gap:1.1rem}.about-preview__name{font-size:clamp(1.8rem,min(calc((var(--min-w) - 2*var(--tile-pad))*.23),calc(var(--min-h)*.55 - var(--tile-pad)*2*.55 - 2.475rem)),7rem)}.about-preview__name span{display:block}.interest-chips{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none}.chip{border:2px solid #111;border:2px solid var(--ink);font-size:.7rem;font-weight:700;letter-spacing:.08em;padding:.3rem .55rem;text-transform:uppercase}.chip--red{background:#e32017;background:var(--red)}.chip--blue,.chip--red{color:#f4f1ea;color:var(--paper)}.chip--blue{background:#004b87;background:var(--blue)}.chip--yellow{background:#ffd100;background:var(--yellow)}.about-intro{margin-bottom:2.25rem;max-width:46rem}.about-intro__lede{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:clamp(1.6rem,3.2vw,2.6rem);font-weight:900;letter-spacing:-.03em;line-height:1.1;margin-bottom:1.1rem}.interest-grid{grid-gap:6px;grid-gap:var(--line);background:#111;background:var(--ink);border:6px solid #111;border:var(--line) solid var(--ink);display:grid;gap:6px;gap:var(--line);grid-template-columns:2fr 1fr 1.4fr 1fr;margin-bottom:2rem;max-width:60rem}.interest{background:#f4f1ea;background:var(--paper);display:flex;flex-direction:column;justify-content:space-between;min-height:10rem;padding:1rem}.interest--red{background:#e32017;background:var(--red)}.interest--blue,.interest--red{color:#f4f1ea;color:var(--paper)}.interest--blue{background:#004b87;background:var(--blue)}.interest--yellow{background:#ffd100;background:var(--yellow)}.interest__index{font-size:.7rem;opacity:.7}.interest__label{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:clamp(1.1rem,2vw,1.6rem);font-weight:800;letter-spacing:-.02em}.about .muted{margin-top:2rem}.project-grid{grid-gap:6px;grid-gap:var(--line);background:#111;background:var(--ink);border:6px solid #111;border:var(--line) solid var(--ink);display:grid;gap:6px;gap:var(--line);grid-auto-flow:dense;grid-auto-rows:9.5rem;grid-template-columns:repeat(auto-fill,minmax(min(11rem,45%),1fr));margin-top:1rem}.project-card{background:#f4f1ea;background:var(--paper);color:#111;color:var(--ink);display:flex;flex-direction:column;gap:.35rem;min-width:0;overflow:hidden;padding:1rem;text-decoration:none;transition:box-shadow .3s;transition:box-shadow var(--duration-fast)}.project-card:hover{box-shadow:inset 0 0 0 4px #111;box-shadow:inset 0 0 0 4px var(--ink)}.project-card--lg{grid-column:span 2;grid-row:span 2}.project-card--md{grid-row:span 2}.project-card--red{background:#e32017;background:var(--red);color:#f4f1ea;color:var(--paper)}.project-card--blue{background:#004b87;background:var(--blue);color:#f4f1ea;color:var(--paper)}.project-card--yellow{background:#ffd100;background:var(--yellow)}.project-card__meta,.project-card__year{font-size:.68rem;letter-spacing:.06em;opacity:.75}.project-card__meta{margin-top:auto}.project-card__name{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:1.1rem;font-weight:800;letter-spacing:-.01em;line-height:1.1;overflow-wrap:anywhere}.project-card--lg .project-card__name{font-size:clamp(1.5rem,3vw,2.4rem);letter-spacing:-.03em}.project-card__desc{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:.85rem;line-height:1.4;opacity:.85;overflow:hidden}.project-card--ghost{animation:ghost 1.2s ease-in-out infinite alternate}@keyframes ghost{0%{opacity:.35}to{opacity:.8}}.studio{grid-gap:1.5rem;align-items:start;display:grid;gap:1.5rem;grid-template-columns:minmax(0,1fr) minmax(16rem,24rem)}.studio__canvas{max-width:min(100%,62dvh)}.studio__tools{display:flex;flex-direction:column;gap:1rem}.studio__hint{line-height:1.6}.palette{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(6,1fr)}.swatch{align-items:flex-end;aspect-ratio:1.25;background:var(--swatch);border:2px solid #111;border:2px solid var(--ink);cursor:pointer;display:flex;min-width:0;padding:2px}.swatch.is-selected{outline:3px solid #111;outline:3px solid var(--ink);outline-offset:2px}.swatch__op{background:#f4f1eae0;color:#111;color:var(--ink);font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.55rem;line-height:1.2;max-width:100%;overflow:hidden;padding:0 2px;text-overflow:ellipsis;white-space:nowrap}.swatch__op:empty{display:none}.studio__actions{display:flex;flex-wrap:wrap;gap:.5rem}.contact-blocks{grid-gap:6px;grid-gap:var(--line);background:#111;background:var(--ink);border:6px solid #111;border:var(--line) solid var(--ink);display:grid;gap:6px;gap:var(--line);list-style:none;margin-top:1.25rem;max-width:48rem}.contact-block{align-items:flex-end;background:#f4f1ea;background:var(--paper);color:#111;color:var(--ink);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;min-height:8rem;padding:1.25rem 1.5rem;text-decoration:none;transition:background-color .3s,color .3s;transition:background-color var(--duration-fast),color var(--duration-fast)}.contact-block--red{background:#e32017;background:var(--red);color:#f4f1ea;color:var(--paper)}.contact-block--blue{background:#004b87;background:var(--blue);color:#f4f1ea;color:var(--paper)}.contact-block--yellow{background:#ffd100;background:var(--yellow)}.contact-block:hover{background:#111;background:var(--ink);color:#f4f1ea;color:var(--paper)}.contact-block__label{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);font-weight:900;letter-spacing:-.04em;line-height:1}.contact-block__handle{font-size:.85rem}.post-lead{grid-gap:6px;grid-gap:var(--line);background:#111;background:var(--ink);border:6px solid #111;border:var(--line) solid var(--ink);color:#111;color:var(--ink);display:grid;gap:6px;gap:var(--line);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);margin:1rem 0 2rem;max-width:64rem;text-decoration:none}.post-lead__image{display:block;height:100%;min-height:14rem;object-fit:cover;width:100%}.post-lead__text{background:#ffd100;background:var(--yellow);display:flex;flex-direction:column;gap:.6rem;padding:1.5rem}.post-lead:not(:has(img)){grid-template-columns:1fr}.post-lead__title{font-size:clamp(1.6rem,3vw,2.6rem);font-weight:900;letter-spacing:-.03em;line-height:1.02}.post-lead__subtitle,.post-lead__title{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display)}.post-lead__subtitle{line-height:1.5}.post-date{font-size:.7rem;letter-spacing:.06em;opacity:.7;text-transform:uppercase}.post-list{border-top:6px solid #111;border-top:var(--line) solid var(--ink);list-style:none;max-width:64rem}.post-row{grid-gap:1rem;align-items:baseline;border-bottom:2px solid #111;border-bottom:2px solid var(--ink);color:#111;color:var(--ink);display:grid;gap:1rem;grid-template-columns:8rem minmax(0,1fr) auto;padding:1rem 0;text-decoration:none}.post-row__title{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.post-row__arrow{transition:transform .3s;transition:transform var(--duration-fast)}.post-row:hover .post-row__arrow{transform:translate(3px,-3px)}.post-row:hover .post-row__title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.poster-wall{grid-gap:1.5rem 1rem;display:grid;gap:1.5rem 1rem;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));list-style:none;margin-top:1rem}.poster{color:inherit;display:flex;flex-direction:column;gap:.5rem;text-decoration:none}.poster__frame{aspect-ratio:2/3;background:#111;background:var(--ink);border:6px solid #111;border:var(--line) solid var(--ink);overflow:hidden}.poster__frame img{display:block;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.65,0,.35,1);transition:transform var(--duration-medium) cubic-bezier(.65,0,.35,1);width:100%}.poster:hover .poster__frame img{transform:scale(1.04)}.poster__fallback{color:#f4f1ea;color:var(--paper);display:grid;font-weight:800;height:100%;padding:.5rem;place-items:center;text-align:center}.poster__fallback,.poster__title{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display)}.poster__title{font-size:.95rem;font-weight:700;line-height:1.2}.poster__year{font-weight:400;opacity:.7}.poster__line{display:flex;font-size:.72rem;gap:.5rem}.poster__stars{color:#ffd100;color:var(--yellow);letter-spacing:.05em}.poster__date{margin-left:auto;opacity:.7}.review{grid-gap:1.75rem;align-items:start;display:grid;gap:1.75rem;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr);margin:1.25rem 0 2.5rem;max-width:64rem}.review__poster{border:6px solid #111;border:var(--line) solid var(--ink);display:block;position:sticky;top:0}.review__poster img{aspect-ratio:2/3;display:block;object-fit:cover;width:100%}.review__title{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:clamp(1.6rem,3.2vw,2.6rem);font-weight:900;letter-spacing:-.03em;line-height:1;margin:.4rem 0 .35rem}.review__stars{color:#ffd100;color:var(--yellow);font-size:1.1rem;letter-spacing:.08em;margin-bottom:1rem}.review__paragraph{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:1.05rem;line-height:1.65;max-width:62ch}.review__paragraph+.review__paragraph{margin-top:.9rem}.review__spoilers summary{border:2px solid;cursor:pointer;display:inline-block;font-size:.8rem;margin-bottom:1rem;padding:.6rem .9rem}.review__link{display:inline-block;font-size:.8rem;margin-top:1.25rem}.photo-grid{grid-gap:6px;grid-gap:var(--line);border:6px solid #111;border:var(--line) solid var(--ink);display:grid;gap:6px;gap:var(--line);grid-auto-flow:dense;grid-auto-rows:13rem;grid-template-columns:repeat(auto-fill,minmax(min(13rem,45%),1fr))}.photo,.photo-grid{background:#111;background:var(--ink)}.photo{border:none;cursor:zoom-in;min-width:0;overflow:hidden;padding:0;position:relative}.photo img{display:block;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.65,0,.35,1);transition:transform var(--duration-medium) cubic-bezier(.65,0,.35,1);width:100%}.photo:hover img{transform:scale(1.03)}.photo--hero{grid-row:span 2}.photo--hero,.photo--wide{grid-column:span 2}.photo--tall{grid-row:span 2}.photo__caption{background:#f4f1ea;background:var(--paper);bottom:0;color:#111;color:var(--ink);font-size:.68rem;left:0;opacity:0;padding:.35rem .55rem;position:absolute;transform:translateY(100%);transition:opacity .3s,transform .3s;transition:opacity var(--duration-fast),transform var(--duration-fast)}.photo:focus-visible .photo__caption,.photo:hover .photo__caption{opacity:1;transform:none}.lightbox{background:#0b0b0bf5;display:grid;grid-template-rows:minmax(0,1fr) auto;inset:0;padding:1.5rem 1.5rem 0;place-items:center;position:fixed;z-index:2000}.lightbox__image{border:6px solid #f4f1ea;border:var(--line) solid var(--paper);height:auto;max-height:100%;max-width:100%;object-fit:contain;width:auto}.lightbox__bar{align-items:center;color:#f4f1ea;color:var(--paper);display:flex;gap:.5rem;padding:1rem 0 1.25rem;width:100%}.lightbox__caption{display:flex;flex:1 1;font-size:.8rem;gap:1rem;justify-content:center}.lightbox__count{opacity:.6}.lightbox__nav{background:#0000;border:2px solid #f4f1ea;border:2px solid var(--paper);color:#f4f1ea;color:var(--paper);cursor:pointer;font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:1.1rem;height:2.75rem;width:2.75rem}.lightbox__nav:hover{background:#f4f1ea;background:var(--paper);color:#111;color:var(--ink)}.now-list{border-top:6px solid #111;border-top:var(--line) solid var(--ink);margin-bottom:1.5rem;max-width:52rem}.now-list__row{grid-gap:1rem;border-bottom:2px solid #111;border-bottom:2px solid var(--ink);display:grid;gap:1rem;grid-template-columns:9rem minmax(0,1fr);padding:1rem 0}.now-list dt{font-size:.72rem;letter-spacing:.08em;padding-top:.3rem;text-transform:uppercase}.now-list dd{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:1.1rem;line-height:1.55}.about-top.has-portrait{grid-gap:2rem;align-items:start;display:grid;gap:2rem;grid-template-columns:minmax(0,1fr) minmax(10rem,15rem)}.about-portrait{aspect-ratio:4/5;border:6px solid #111;border:var(--line) solid var(--ink);display:block;object-fit:cover;width:100%}.about-part{margin-top:2.25rem;max-width:60rem}.about-heading{border-bottom:6px solid #111;border-bottom:var(--line) solid var(--ink);font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.1em;margin-bottom:1rem;padding-bottom:.5rem;text-transform:uppercase}.lately{grid-gap:6px;grid-gap:var(--line);background:#111;background:var(--ink);border:6px solid #111;border:var(--line) solid var(--ink);display:grid;gap:6px;gap:var(--line);grid-template-columns:repeat(auto-fit,minmax(min(13rem,100%),1fr))}.lately__card{background:#f4f1ea;background:var(--paper);color:#111;color:var(--ink);display:flex;flex-direction:column;gap:.35rem;min-height:8rem;padding:1rem 1.1rem;text-decoration:none;transition:box-shadow .3s;transition:box-shadow var(--duration-fast)}.lately__card:hover{box-shadow:inset 0 0 0 4px #111;box-shadow:inset 0 0 0 4px var(--ink)}.lately__card--yellow{background:#ffd100;background:var(--yellow)}.lately__card--blue{background:#004b87;background:var(--blue);color:#f4f1ea;color:var(--paper)}.lately__card--blue:hover{box-shadow:inset 0 0 0 4px #f4f1ea;box-shadow:inset 0 0 0 4px var(--paper)}.lately__label{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;opacity:.75;text-transform:uppercase}.lately__title{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:1.2rem;font-weight:800;letter-spacing:-.01em;line-height:1.15}.lately__detail{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.72rem;margin-top:auto;opacity:.8}.about .now-list{margin-top:1.25rem;max-width:none}.timeline{list-style:none}.timeline__row{grid-gap:1rem;border-bottom:2px solid #111;border-bottom:2px solid var(--ink);display:grid;gap:1rem;grid-template-columns:8rem minmax(0,1fr);padding:.85rem 0}.timeline__when{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.75rem;padding-top:.2rem}.timeline__what{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:1.05rem;line-height:1.4}.timeline__detail{display:block;font-size:.9rem;opacity:.7}.elsewhere{grid-gap:.5rem 1.5rem;display:grid;gap:.5rem 1.5rem;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));list-style:none}.elsewhere a{border-top:2px solid #111;border-top:2px solid var(--ink);display:flex;flex-direction:column;gap:.15rem;padding-top:.5rem;text-decoration:none}.elsewhere__label{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:1.1rem;font-weight:800}.elsewhere__handle{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.72rem;opacity:.75}.elsewhere a:hover .elsewhere__label{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.about-hello{margin-top:2.25rem}.quizzing{max-width:60rem}.quizzing__intro:first-child{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:800;letter-spacing:-.02em;line-height:1.25}.quizzing__part{margin-top:2.25rem}.quiz-cards{grid-gap:6px;grid-gap:var(--line);background:#111;background:var(--ink);border:6px solid #111;border:var(--line) solid var(--ink);display:grid;gap:6px;gap:var(--line);grid-template-columns:repeat(auto-fit,minmax(min(18rem,100%),1fr))}.quiz-card{--btn-bg:var(--ink);--btn-fg:var(--paper);background:#f4f1ea;background:var(--paper);color:#111;color:var(--ink);display:flex;flex-direction:column;gap:.75rem;padding:1.1rem}.quiz-card .btn{align-self:flex-start}.quiz-card__number{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.7rem;opacity:.7}.quiz-card__question{font-size:1.15rem;font-weight:700;line-height:1.35}.quiz-card__answer,.quiz-card__question{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display)}.quiz-card__answer{animation:fade-in .3s ease backwards;line-height:1.5}.quiz-card__answer strong{display:block;font-size:1.2rem;font-weight:800}.uses{grid-gap:2rem 3rem;display:grid;gap:2rem 3rem;grid-template-columns:repeat(auto-fill,minmax(min(20rem,100%),1fr));max-width:72rem}.uses-group__title{align-items:center;border-bottom:6px solid #111;border-bottom:var(--line) solid var(--ink);display:flex;font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:1.5rem;font-weight:900;gap:.6rem;letter-spacing:-.02em;padding-bottom:.6rem}.uses-group__mark{flex:none;height:.9rem;width:.9rem}.uses-group__mark--red{background:#e32017;background:var(--red)}.uses-group__mark--blue{background:#004b87;background:var(--blue)}.uses-group__mark--yellow{background:#ffd100;background:var(--yellow)}.uses-group__mark--ink{background:#111;background:var(--ink)}.uses-list{list-style:none}.uses-item{border-bottom:2px solid #111;border-bottom:2px solid var(--ink);display:flex;flex-direction:column;gap:.15rem;padding:.8rem 0}.uses-item__name{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:1.05rem;font-weight:700}a.uses-item__name{text-decoration:none}a.uses-item__name:after{content:" ↗";font-size:.8em;opacity:.5}a.uses-item__name:hover{text-decoration:underline}.uses-item__note{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:.92rem;line-height:1.45;opacity:.75}.inspiration{max-width:62rem}.inspiration__lede{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.4rem);font-weight:900;letter-spacing:-.03em;line-height:1.1;margin-bottom:1.25rem;max-width:30ch}.chapter{border-top:6px solid #111;border-top:var(--line) solid var(--ink);margin-top:2.75rem;padding-top:1.25rem}.chapter__title{align-items:center;display:flex;font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-size:clamp(1.4rem,2.6vw,2rem);font-weight:900;gap:.75rem;letter-spacing:-.02em;margin-bottom:1rem}.chapter__mark{display:grid;flex:none;font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.75rem;height:2.4rem;letter-spacing:.04em;place-items:center;width:2.4rem}.chapter__mark--red{background:#e32017;background:var(--red);color:#f4f1ea;color:var(--paper)}.chapter__mark--blue{background:#004b87;background:var(--blue);color:#f4f1ea;color:var(--paper)}.chapter__mark--yellow{background:#ffd100;background:var(--yellow);color:#111;color:var(--ink)}.chapter__mark--ink{background:#111;background:var(--ink);color:#f4f1ea;color:var(--paper)}.chapter__mark--paper{background:#f4f1ea;background:var(--paper);box-shadow:inset 0 0 0 2px #111;box-shadow:inset 0 0 0 2px var(--ink);color:#111;color:var(--ink)}.insp-figure{margin:1.5rem 0 .5rem}.insp-figure figcaption{margin-top:.6rem}.insp-vocab{grid-gap:6px;grid-gap:var(--line);background:#111;background:var(--ink);border:6px solid #111;border:var(--line) solid var(--ink);display:grid;gap:6px;gap:var(--line);grid-template-columns:2fr 1fr 1.4fr 3fr .25fr;height:4.5rem;max-width:34rem}.insp-ops{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(6,minmax(0,1fr));max-width:40rem}.insp-ops__cell{align-items:flex-end;aspect-ratio:1.6;border:2px solid #111;border:2px solid var(--ink);display:flex;min-width:0;padding:3px}.insp-ops__cell span{background:#f4f1eae6;color:#111;color:var(--ink);font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.62rem;max-width:100%;overflow:hidden;padding:0 3px;text-overflow:ellipsis;white-space:nowrap}.insp-fold{grid-gap:1rem;align-items:center;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);max-width:40rem}.insp-fold__arrow{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:1.5rem}.insp-fold__grid--folded{background:#111;background:var(--ink);gap:6px;gap:var(--line);padding:6px;padding:var(--line)}.insp-map{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(6,minmax(0,1fr));max-width:40rem}.insp-map__pair{border:2px solid #111;border:2px solid var(--ink);display:grid;grid-template-rows:1fr 1fr;height:3.5rem}.insp-map__pair span+span{border-top:2px solid #111;border-top:2px solid var(--ink)}.insp-system>div{grid-gap:1rem;border-bottom:2px solid #111;border-bottom:2px solid var(--ink);display:grid;gap:1rem;grid-template-columns:9rem minmax(0,1fr);padding:1rem 0}.insp-system dt{font-size:.72rem;letter-spacing:.08em;padding-top:.3rem;text-transform:uppercase}.insp-swatches{grid-gap:.5rem;display:grid;gap:.5rem;list-style:none}.insp-swatches li{align-items:center;display:flex;flex-wrap:wrap;font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);gap:.6rem}.insp-swatches__chip{border:2px solid #111;border:2px solid var(--ink);flex:none;height:1.6rem;width:1.6rem}.insp-type--display{font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-family:var(--font-display);font-weight:900;letter-spacing:-.02em}.insp-type--mono{font-family:JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.92em}.insp-credits{margin-top:1rem}@media (max-width:1024px){.studio{grid-template-columns:1fr}.studio__canvas{max-width:min(100%,28rem)}}@media (max-width:768px){:root{--line:4px}.art-view{padding:1.5rem 1rem 2rem;place-items:start center}.art-stage{gap:1.5rem;grid-template-columns:1fr}.art-canvas{justify-self:center;width:min(92vw,58dvh)}.art-credit{margin-bottom:1.25rem}.about-preview{gap:.75rem}.tile--closed.is-short{justify-content:flex-start;padding:0 .75rem}.tile--closed.is-short .tile__title{font-size:.62rem}.tile__header{padding:.9rem 1rem .7rem}.tile__close{height:2.25rem;width:2.25rem}.tile__content{padding:1rem}.interest-grid{grid-template-columns:1fr 1fr}.interest{min-height:6.5rem}.contact-block{min-height:6rem;padding:1rem}.post-lead{grid-template-columns:1fr}.post-lead__image{max-height:14rem;min-height:10rem}.post-row{gap:.25rem 1rem;grid-template-columns:minmax(0,1fr) auto}.post-row .post-date{grid-column:1/-1}.now-list__row{gap:.25rem}.about-top.has-portrait,.now-list__row{grid-template-columns:1fr}.about-portrait{max-width:16rem}.timeline__row{gap:.25rem;grid-template-columns:1fr}.insp-system>div{gap:.4rem;grid-template-columns:1fr}.insp-map,.insp-ops{grid-template-columns:repeat(3,minmax(0,1fr))}.poster-wall{grid-template-columns:repeat(auto-fill,minmax(7rem,1fr))}.review{gap:1rem;grid-template-columns:1fr}.review__poster{position:static;width:9rem}.lightbox{padding:1rem .75rem 0}}@media (prefers-reduced-motion:reduce){.photo img,.piet-cell,.poster__frame img,.tile--closed:after{transition:none}.piet-grid--intro .piet-cell,.piet-readout__caret,.project-card--ghost{animation:none}}:root{--cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Ccircle cx='8' cy='8' r='5' fill='%23111' stroke='%23F4F1EA' stroke-width='2'/%3E%3C/svg%3E") 8 8,auto}@media (hover:hover) and (pointer:fine){html{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Ccircle cx='8' cy='8' r='5' fill='%23111' stroke='%23F4F1EA' stroke-width='2'/%3E%3C/svg%3E") 8 8,auto;cursor:var(--cursor)}body,body *,body :after,body :before{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Ccircle cx='8' cy='8' r='5' fill='%23111' stroke='%23F4F1EA' stroke-width='2'/%3E%3C/svg%3E") 8 8,auto!important;cursor:var(--cursor)!important}}.error-boundary{align-items:center;background:#111;background:var(--ink);display:flex;justify-content:center;min-height:100vh;padding:2rem;width:100vw}.error-content{background:#ffffff0d;border:2px solid #ffffff1a;border-radius:8px;max-width:600px;padding:2rem;text-align:center}.error-content h1{color:#e32017;color:var(--red);font-size:2rem;margin-bottom:1rem}.error-content p{font-size:1rem;line-height:1.6;margin-bottom:2rem}.error-content details{background:#0000004d;border-radius:4px;cursor:pointer;margin:2rem 0;padding:1rem;text-align:left}.error-content summary{font-weight:700;margin-bottom:.5rem;-webkit-user-select:none;user-select:none}.error-content pre{word-wrap:break-word;color:#ffd100;color:var(--yellow);font-size:.875rem;overflow-x:auto;white-space:pre-wrap}:focus-visible{outline:2px solid #ffd100;outline:2px solid var(--yellow);outline-offset:2px}
/*# sourceMappingURL=main.1170fc46.css.map*/