*,*:before,*:after{box-sizing:border-box}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-body);font-size:var(--text-body);color:var(--color-text-content);background-color:var(--color-bg);line-height:1.45;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}a{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2{color:var(--color-text-title);letter-spacing:var(--title-letter-spacing)}h1{font-size:var(--text-h1);font-weight:600}h2{font-size:var(--text-h2);font-weight:500}.app-layout{max-width:var(--max-width);margin:0 auto;padding:var(--page-padding);display:flex;flex-direction:column;gap:var(--section-gap)}.switcher-btn{background:var(--color-button-bg);color:var(--color-button-text);border:var(--stroke-width) solid var(--color-stroke);border-radius:var(--radius-default);padding:var(--control-padding);font-size:var(--text-caption);font-weight:500;transition:opacity .15s ease}.switcher-btn:hover{opacity:.85}.switcher-btn.is-active{outline:none;background:var(--color-bg)}.switcher-row,.main-content-switcher{display:flex;flex-wrap:wrap;gap:0}.upper-container{display:flex;flex-direction:column;gap:0;border:var(--stroke-width) solid var(--color-stroke);background:var(--color-bg);overflow:hidden}.site-header{display:flex;flex-direction:column;align-items:stretch;width:100%;border-bottom:var(--stroke-width) solid var(--color-stroke);background:var(--color-bg);box-sizing:border-box}.site-header-title{width:100%;min-width:0;margin:0;padding:var(--content-padding);border-right:none;border-bottom:var(--stroke-width) solid var(--color-stroke);font-size:var(--text-h1);font-weight:600;line-height:1.25;letter-spacing:var(--title-letter-spacing);color:var(--color-text-title);box-sizing:border-box}.site-header__actions{display:flex;flex-wrap:nowrap;align-items:stretch;width:100%;min-height:var(--projects-bar-height)}.site-header__actions .switcher-btn{display:inline-flex;align-items:center;justify-content:center;flex:1 1 auto;min-width:0;white-space:nowrap;border-radius:0;border:none;border-left:var(--stroke-width) solid var(--color-stroke)}.site-header__actions .switcher-btn:first-child{border-left:none}.site-header__actions .switcher-btn:last-child{flex:0 0 auto;min-width:3.75rem}.upper-container__body{display:flex;flex-direction:column;gap:0;min-width:0;flex:1}.upper-playground-col{display:flex;flex-direction:column;gap:0;min-width:0}.playground-canvas-slot{display:flex;min-width:0}.upper-right-content{display:grid;grid-template-columns:minmax(0,30%) minmax(0,1fr);align-items:stretch;gap:0;min-width:0;border-top:var(--stroke-width) solid var(--color-stroke)}.profile-panel{display:flex;min-width:0;min-height:0;border-right:var(--stroke-width) solid var(--color-stroke)}.profile-panel .portfolio-div{flex:1;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;padding:var(--content-padding)}.playground-div{position:relative;display:flex;width:100%;aspect-ratio:3 / 2;min-height:unset;padding:0;border:none;border-radius:var(--radius-default);overflow:hidden;background:var(--color-surface)}.playground-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;background:var(--color-bg);color:var(--color-text-content);font-size:var(--text-body);pointer-events:none}.playground-loading--error{color:var(--color-text-title)}.playground-loading__spinner{width:1.5rem;height:1.5rem;border:2px solid var(--color-stroke);border-top-color:transparent;border-radius:50%;animation:playground-spin .75s linear infinite}.playground-loading__label{letter-spacing:.06em}@keyframes playground-spin{to{transform:rotate(360deg)}}.playground-div canvas{display:block;width:100%!important;height:100%!important;min-height:unset;margin:0;padding:0}.playground-div .react-p5-wrapper{flex:1;width:100%;height:100%;min-height:unset;margin:0;padding:0;line-height:0}@media(min-width:768px){.playground-canvas-slot{flex:1 1 0;min-height:0;align-items:center;justify-content:center;container-type:size}.upper-playground-col .playground-div{flex:0 0 auto;width:min(100cqw,100cqh);max-width:100%;max-height:100%;aspect-ratio:1 / 1;height:auto}.upper-playground-col .playground-div canvas,.upper-playground-col .playground-div .react-p5-wrapper{min-height:0;height:100%!important}}.digital-perceptual-slider{display:flex;justify-content:center;align-items:center;padding:var(--content-padding);border-top:var(--stroke-width) solid var(--color-stroke)}.digital-perceptual-slider__control{display:flex;align-items:center;gap:.6rem;width:min(50vw,100%);max-width:50vw}.digital-perceptual-slider__label{flex-shrink:0;font-size:var(--text-caption);color:var(--color-text-content);text-transform:lowercase}.digital-perceptual-slider__input{flex:1;min-width:0;margin:0;padding:0;height:1px;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.digital-perceptual-slider__input::-webkit-slider-runnable-track{height:var(--stroke-width);background:var(--color-stroke);border:none;border-radius:0}.digital-perceptual-slider__input::-webkit-slider-thumb{-webkit-appearance:none;width:.75rem;height:.75rem;margin-top:calc((var(--stroke-width) - .75rem) / 2);border-radius:50%;background:var(--color-stroke);border:none;cursor:pointer}.digital-perceptual-slider__input::-moz-range-track{height:var(--stroke-width);background:var(--color-stroke);border:none;border-radius:0}.digital-perceptual-slider__input::-moz-range-progress{background:transparent}.digital-perceptual-slider__input::-moz-range-thumb{width:.75rem;height:.75rem;border-radius:50%;background:var(--color-stroke);border:none;cursor:pointer}.virtual-terminal{border-top:var(--stroke-width) solid var(--color-stroke);background:var(--color-bg);padding:var(--control-padding)}.virtual-terminal__viewport{--terminal-line-height: 1.35;min-height:calc(4 * var(--terminal-line-height) * 1em);max-height:calc(4 * var(--terminal-line-height) * 1em);overflow:hidden}.virtual-terminal__scroll{display:flex;flex-direction:column;justify-content:flex-end;min-height:100%}.virtual-terminal__line{margin:0;font-family:var(--font-mono);font-size:var(--text-caption);line-height:var(--terminal-line-height);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.virtual-terminal__time{color:var(--color-text-content);opacity:.72;margin-right:.45em}.virtual-terminal__message{color:var(--color-text-title)}.virtual-terminal__line--active{min-height:calc(var(--terminal-line-height) * 1em)}.virtual-terminal__cursor{display:inline-block;margin-left:.05em;opacity:0}.virtual-terminal__cursor.is-visible{opacity:1}.description-div{display:flex;flex-direction:column;justify-content:flex-start;min-width:0;min-height:0;padding:var(--content-padding);align-self:stretch}.description-div__body{margin-top:.35rem;color:var(--color-text-content);white-space:pre-wrap}.portfolio-div{display:flex;align-items:center;justify-content:center}.portfolio-portrait{flex-shrink:0;width:100%;display:flex;justify-content:center}.portfolio-portrait__image{width:min(100%,7.5rem);height:auto;aspect-ratio:1;border-radius:var(--radius-portrait);object-fit:cover;display:block;background:var(--color-surface-muted)}.portfolio-div__links{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.75rem}.portfolio-div__link{display:inline-flex;align-items:center;transition:opacity .15s ease}.portfolio-div__link:hover{opacity:.75}.portfolio-div__link img{width:var(--icon-size);height:var(--icon-size)}.projects-heading{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:0;min-height:var(--projects-bar-height);padding:0;background:var(--color-button-bg);border:var(--stroke-width) solid var(--color-stroke);border-radius:var(--radius-default)}.projects-heading__label{position:absolute;left:50%;transform:translate(-50%);font-size:var(--text-h2);font-weight:500;color:var(--color-text-title);letter-spacing:var(--projects-title-letter-spacing);padding:0 .4rem;text-align:center;white-space:nowrap;pointer-events:none}.project-filters-dropdown{position:relative;flex-shrink:0;height:100%;border-left:var(--stroke-width) solid var(--color-stroke)}.project-filters-dropdown__trigger{font-size:var(--text-caption);height:100%;min-height:var(--projects-bar-height);border:none;border-radius:0}.project-filters-dropdown__badge{margin-left:.35rem;opacity:.85;font-size:.85em}.project-filters-dropdown__menu{position:absolute;top:100%;right:0;z-index:20;min-width:11rem;margin:0;padding:0;list-style:none;background:var(--color-surface);border:var(--stroke-width) solid var(--color-stroke);border-radius:var(--radius-default);box-shadow:none}.project-filters-dropdown__option{display:flex;align-items:center;gap:.4rem;padding:.35rem .5rem;font-size:var(--text-caption);color:var(--color-text-content);cursor:pointer;white-space:nowrap;border-bottom:var(--stroke-width) solid var(--color-stroke)}.project-filters-dropdown__option:last-child{border-bottom:none}.project-filters-dropdown__swatch{width:.5rem;height:.5rem;border-radius:var(--radius-default);flex-shrink:0}.project-filters-dropdown__label{flex:1}.project-filters-dropdown__option:hover{background:var(--color-bg)}.project-filters-dropdown__option input{flex-shrink:0}.project-filters-dropdown__option--publications .project-filters-dropdown__swatch{background-color:var(--tag-color-publications)}.project-filters-dropdown__option--publications .project-filters-dropdown__label{color:var(--tag-color-publications)}.project-filters-dropdown__option--publications input{accent-color:var(--tag-color-publications)}.project-filters-dropdown__option--firstAuthors .project-filters-dropdown__swatch{background-color:var(--tag-color-firstAuthors)}.project-filters-dropdown__option--firstAuthors .project-filters-dropdown__label{color:var(--tag-color-firstAuthors)}.project-filters-dropdown__option--firstAuthors input{accent-color:var(--tag-color-firstAuthors)}.project-filters-dropdown__option--artworks .project-filters-dropdown__swatch{background-color:var(--tag-color-artworks)}.project-filters-dropdown__option--artworks .project-filters-dropdown__label{color:var(--tag-color-artworks)}.project-filters-dropdown__option--artworks input{accent-color:var(--tag-color-artworks)}.project-filters-dropdown__option--competitions .project-filters-dropdown__swatch{background-color:var(--tag-color-competitions)}.project-filters-dropdown__option--competitions .project-filters-dropdown__label{color:var(--tag-color-competitions)}.project-filters-dropdown__option--competitions input{accent-color:var(--tag-color-competitions)}.project-filters-dropdown__option--others .project-filters-dropdown__swatch{background-color:var(--tag-color-others)}.project-filters-dropdown__option--others .project-filters-dropdown__label{color:var(--tag-color-others)}.project-filters-dropdown__option--others input{accent-color:var(--tag-color-others)}.downward-container{display:flex;flex-direction:column;gap:var(--card-gap)}.project-list{display:flex;flex-direction:column;gap:var(--card-gap);padding:var(--card-padding);border:var(--stroke-width) solid var(--color-stroke);background:var(--color-bg)}.project-card{display:flex;flex-direction:column;gap:var(--card-gap);padding:var(--card-padding);background:var(--color-surface);border-radius:var(--radius-default);border:var(--stroke-width) solid var(--color-stroke)}.project-card__media{width:100%;aspect-ratio:var(--project-image-aspect-ratio);background:var(--color-bg);border-radius:var(--radius-default);overflow:hidden;cursor:pointer}.project-card__media img{width:100%;height:100%;object-fit:cover}.project-card__content{padding:0}.project-card__meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;margin-bottom:.35rem}.project-card__year{font-size:var(--text-h2);font-weight:500;color:var(--color-text-title)}.project-card__types{display:flex;flex-wrap:wrap;gap:.25rem}.project-card__type-tag{font-size:var(--text-caption);border-radius:var(--radius-default);padding:.1rem .35rem;border:var(--stroke-width) solid transparent}.project-card__type-tag--publications{background-color:var(--tag-color-publications);border-color:var(--tag-color-publications);color:#1a1a1a}.project-card__type-tag--firstAuthors{background-color:var(--tag-color-firstAuthors);border-color:var(--tag-color-firstAuthors);color:#1a1a1a}.project-card__type-tag--artworks{background-color:var(--tag-color-artworks);border-color:var(--tag-color-artworks);color:#efefef}.project-card__type-tag--competitions{background-color:var(--tag-color-competitions);border-color:var(--tag-color-competitions);color:#1a1a1a}.project-card__type-tag--others{background-color:var(--tag-color-others);border-color:var(--tag-color-others);color:#efefef}.project-card__body{color:var(--color-text-content);white-space:pre-wrap;margin-bottom:.35rem}.project-card__refs{display:flex;flex-direction:column;gap:.2rem}.project-card__ref-link{font-size:var(--text-caption);color:var(--color-text-content);text-decoration:underline;text-underline-offset:2px}.project-card__ref-link:hover{color:var(--color-text-title)}.sparkle-text__char{color:inherit}.project-list__empty{color:var(--color-text-content);font-size:var(--text-caption);text-align:center;padding:.75rem}@media(min-width:768px){.site-header{flex-direction:row;flex-wrap:nowrap;min-height:var(--projects-bar-height)}.site-header-title{flex:1 1 auto;width:auto;padding:var(--control-padding);border-right:var(--stroke-width) solid var(--color-stroke);border-bottom:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-header__actions{flex:0 0 auto;width:auto;min-height:unset}.site-header__actions .switcher-btn{flex:0 0 auto;min-width:unset}.site-header__actions .switcher-btn:last-child{min-width:unset}.upper-container__body{display:grid;grid-template-columns:var(--playground-column-ratio) minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:stretch;height:var(--upper-section-min-height);min-height:var(--upper-section-min-height);max-height:var(--upper-section-min-height)}.upper-playground-col{grid-column:1;grid-row:1;height:100%;max-height:var(--upper-section-min-height);min-height:0;border-right:var(--stroke-width) solid var(--color-stroke)}.upper-playground-col .digital-perceptual-slider,.upper-playground-col .virtual-terminal{flex-shrink:0}.upper-right-content{grid-column:2;grid-row:1;border-top:none;min-height:0;height:100%}.portfolio-portrait__image{width:min(100%,9.5rem)}}
