.project-effect-title{isolation:isolate;width:fit-content;max-width:100%;position:relative}.project-title-word{white-space:nowrap;display:inline-block}.project-letter{transition:transform .28s cubic-bezier(.2,.8,.2,1);display:inline-block;position:relative}.project-letter-face{z-index:1;position:relative}.neutral-project h1[data-title-effect=liquid]{--liquid-light:35%;color:#ffbc67;font-size:clamp(40px,3.25vw,46px);line-height:1.2}[data-title-effect=liquid] .project-title-words{background:radial-gradient(ellipse at var(--liquid-light) 12%,#ffe4b1 0%,#ffd08a 45%,#eea655 100%);color:#0000;transform-origin:50% 65%;-webkit-background-clip:text;background-clip:text;margin:-.08em -.06em;padding:.08em .06em;display:inline-block}[data-title-effect=liquid].is-title-active .project-title-words{background-image:radial-gradient(ellipse at var(--liquid-light) 25%,#ffe9be 0%,#ffd08a 50%,#eea655 100%)}[data-title-effect=depth]{--depth-x:1px;--depth-y:1px;color:#ffe08b}[data-title-effect=depth] .project-letter-face{text-shadow:calc(var(--depth-x)*1) calc(var(--depth-y)*1) #b76a1f,calc(var(--depth-x)*2) calc(var(--depth-y)*2) #92501b,calc(var(--depth-x)*3) calc(var(--depth-y)*3) #64341d,calc(var(--depth-x)*4) calc(var(--depth-y)*4) #140f22}[data-title-effect=shuffle] .project-letter{min-width:.3em}.title-phantom{pointer-events:none;opacity:0;color:#c5efdf;filter:blur(5px);z-index:-1;transition:opacity .24s,transform .6s,filter .6s;position:absolute;inset:0;transform:translate(0)}.is-title-active .title-phantom{opacity:.7;transform:translate(var(--ghost-x,6px),var(--ghost-y,-10px)) scale(1.04);filter:blur(3px)}[data-title-effect=phantom].is-title-active .project-letter-face{text-shadow:0 0 9px #a1dac45c}@media (prefers-reduced-motion:reduce){.project-letter{transition:none}}[data-title-effect=garden] .garden-letter{isolation:isolate;overflow:visible}.garden-letter .project-letter-face{z-index:1;position:relative}.garden-letter-back,.garden-letter-front{pointer-events:none;width:calc(100% + .2em);height:calc(100% + .06em);position:absolute;inset:-.04em -.1em -.02em;overflow:visible}.garden-letter-back{z-index:0}.garden-letter-front{z-index:2}.garden-letter-narrow .garden-letter-back,.garden-letter-narrow .garden-letter-front{width:calc(100% + .12em);inset-inline:-.06em}.garden-rest-stem,.garden-winding-vine{fill:none;stroke:#83a675;stroke-width:1.25px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.garden-rest-stem{opacity:.25;transition:opacity .2s}.garden-rest-leaves{fill:#8eaf7a;opacity:.64}.garden-winding-vine{opacity:0;stroke:#a1bb85;stroke-dasharray:100;stroke-dashoffset:100px;transition:stroke-dashoffset .22s ease-out,opacity .18s ease-out}.garden-growing-leaves{fill:#a1b887;opacity:0;transform-box:fill-box;transform-origin:50%;transition:transform .22s ease-out,opacity .18s ease-out;transform:scale(.5)}.garden-floret{opacity:0;transform-box:fill-box;transform-origin:50% 85%;transition:opacity .18s ease-out,transform .22s ease-out;transform:scale(.3)}.garden-open-petals{opacity:0;transform-box:fill-box;transform-origin:50% 80%;transition:transform .22s ease-out,opacity .18s ease-out;transform:scale(.2,.65)}.garden-closed-bud{fill:#cda5b4;opacity:1;transition:opacity .18s ease-out}.garden-sepals{fill:#6f946a}.garden-petal-shadow{fill:#be90a1}.garden-petal-light{fill:#e2bdc8}.garden-petal-cream{fill:#e7dfc9}.garden-petal-fold{fill:none;stroke:#a7798c;stroke-width:.8px;stroke-linecap:round}.garden-flower-heart{fill:#cab477}.is-title-active .garden-rest-stem{opacity:.5;transition-duration:.46s}.is-title-active .garden-winding-vine{opacity:.88;stroke-dashoffset:0;transition-duration:.68s,.2s;transition-timing-function:cubic-bezier(.25,.65,.3,1),ease}.is-title-active .garden-flower-twig{transition-delay:.1s}.is-title-active .garden-growing-leaves{opacity:.76;transition-duration:.46s,.3s;transition-delay:.12s;transform:scale(1)}.is-title-active .garden-floret{opacity:.95;transition-duration:.2s,.5s;transition-delay:.18s;transform:scale(.9)}.is-title-active .garden-open-petals{opacity:1;transition-duration:.56s,.28s;transition-delay:.26s;transform:scale(1)}.is-title-active .garden-closed-bud{opacity:0;transition-duration:.28s;transition-delay:.36s}@media (prefers-reduced-motion:reduce){.garden-rest-stem,.garden-winding-vine,.garden-growing-leaves,.garden-floret,.garden-open-petals,.garden-closed-bud{transition:none!important}.is-title-active .garden-rest-stem{opacity:.25}.is-title-active .garden-winding-vine{stroke-dashoffset:100px;opacity:0}.is-title-active .garden-growing-leaves{opacity:0}.is-title-active .garden-floret{opacity:.7;transform:scale(.6)}.is-title-active .garden-open-petals{opacity:0}.is-title-active .garden-closed-bud{opacity:1}}@media (prefers-reduced-motion:no-preference){[data-title-effect=garden].title-in-view .garden-rest-leaves{transform-box:fill-box;transform-origin:50% 80%;animation:4.6s ease-in-out infinite alternate garden-leaf-breeze;animation-delay:calc(var(--letter-index) * -310ms)}}@keyframes garden-leaf-breeze{0%{transform:rotate(-3deg)}to{transform:rotate(4deg)}}.neutral-project{--viewer-surface:var(--paper);--viewer-ink:var(--ink);--viewer-accent:var(--accent);--viewer-stage:var(--project-background);--viewer-stage-ink:var(--ink);--viewer-stage-accent:var(--accent)}#laserhawk-project{--viewer-surface:#21172d;--viewer-ink:#f5f0fa;--viewer-accent:#80ef82;--viewer-stage:#110d19;--viewer-stage-ink:#f5f0fa;--viewer-stage-accent:#80ef82}.neutral-project[data-project=clash-of-beasts]{--viewer-surface:#eee3c7;--viewer-ink:#263c43;--viewer-accent:#09688b;--viewer-stage:#102128;--viewer-stage-ink:#f8f5ec;--viewer-stage-accent:#8ddfe3}.neutral-project[data-project=capstone-thesis]{--viewer-stage-ink:#f1ffff;--viewer-stage-accent:#78dedb}#main .project-media-viewer{border:1px solid color-mix(in srgb,var(--viewer-ink) 18%,transparent);background:var(--viewer-surface);width:min(1600px,100vw - 48px);max-width:none;height:calc(100dvh - 48px);max-height:none;color:var(--viewer-ink);border-radius:8px;margin:auto;padding:0;font:400 16px/1.5 Arial,Helvetica,sans-serif;position:fixed;inset:0;overflow:hidden;box-shadow:0 24px 90px #0006}#main .project-media-viewer[open]{grid-template-rows:auto minmax(0,1fr) auto;display:grid}.project-media-viewer::backdrop{background:#07090cf0}#main .pmv-header{justify-content:space-between;align-items:center;gap:24px;padding:16px 20px;display:flex}#main .pmv-heading{min-width:0}#main .pmv-project{letter-spacing:.08em;text-transform:uppercase;color:var(--viewer-accent);font:600 11px/1.5 Arial,Helvetica,sans-serif;display:block}#main .pmv-heading h2{color:var(--viewer-ink);letter-spacing:normal;white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font:500 16px/1.5 Arial,Helvetica,sans-serif;overflow:hidden}#main .pmv-stage{overscroll-behavior:contain;background:var(--viewer-stage);touch-action:none;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--viewer-ink) 36%,transparent) transparent;min-height:0;position:relative;overflow:auto}#main .pmv-canvas{place-items:center;width:max-content;min-width:100%;height:max-content;min-height:100%;display:grid}#main .pmv-image{width:var(--pmv-width,1px);height:var(--pmv-height,1px);object-fit:contain;user-select:none;border:0;border-radius:0;max-width:none;max-height:none;margin:0;display:block}#main .pmv-footer{padding:12px 20px 16px}#main .pmv-caption{text-align:center;font-synthesis:style;max-width:90ch;color:var(--viewer-ink);max-height:4.5em;margin:0 auto 8px;font:italic 14px/1.5 Arial,Helvetica,sans-serif;overflow:auto}#main .pmv-controls{justify-content:space-between;align-items:center;gap:16px;display:flex}#main :is(.pmv-zoom,.pmv-navigation){align-items:center;gap:4px;display:flex}#main .pmv-button{width:44px;min-width:44px;height:44px;min-height:44px;color:var(--viewer-ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex:none;place-items:center;margin:0;padding:0;transition:background-color .14s,color .14s,transform .14s;display:inline-grid}#main .pmv-button svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px;display:block}#main .pmv-button:hover:not(:disabled){color:var(--viewer-accent);background:color-mix(in srgb,var(--viewer-accent) 10%,transparent)}#main .pmv-button:active:not(:disabled){transform:scale(.94)}#main .pmv-button:disabled{opacity:.28;cursor:default}#main :is(.pmv-count,.pmv-scale){text-align:center;font-variant-numeric:tabular-nums;min-width:48px;color:var(--viewer-ink);font:400 13px/1.5 Arial,Helvetica,sans-serif}#main .pmv-message{color:var(--viewer-stage-ink);background:var(--viewer-stage);flex-direction:column;justify-content:center;align-items:center;gap:16px;font:400 16px/1.5 Arial,sans-serif;display:flex;position:absolute;inset:0}#main .pmv-text-button{color:inherit;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:6px;padding:10px 16px}#main .project-media-viewer :focus-visible{outline:2px solid var(--viewer-accent);outline-offset:-3px;box-shadow:none}#main .project-media-viewer .pmv-stage:focus-visible,#main .project-media-viewer .pmv-text-button:focus-visible{outline-color:var(--viewer-stage-accent)}#main .project-media-viewer[data-input=pointer] :focus,#main .project-media-viewer :focus:not(:focus-visible){outline:none}#main .project-media-viewer [hidden]{display:none!important}.project-media-viewer[data-zoomed] .pmv-stage{cursor:grab}.project-media-viewer[data-panning] .pmv-stage{cursor:grabbing}#main :is([data-media-view],.clash-artwork-link,.cs-image-button[data-gallery]){cursor:zoom-in;position:relative}#main a[data-media-view]{border-radius:8px;display:block}#main .pmv-caption:empty{display:none}@media (width<=620px){#main .project-media-viewer{border-radius:8px;width:calc(100vw - 16px);height:calc(100dvh - 16px)}#main .pmv-header{gap:12px;padding:8px 10px}#main .pmv-project{font-size:10px}#main .pmv-heading h2{font-size:14px}#main .pmv-footer{padding:8px 10px max(8px,env(safe-area-inset-bottom))}#main .pmv-caption{text-align:left;font-size:13px}#main .pmv-controls{gap:4px}#main :is(.pmv-zoom,.pmv-navigation){gap:0}#main .pmv-scale{min-width:42px}#main .pmv-count{min-width:40px}}#main .neutral-media-section-portraits a[data-media-view]{width:fit-content;max-width:100%;margin-inline:auto}#main a[data-media-view].vaporwave-download-link{display:inline-flex}@media (width<=360px){#main .pmv-controls{flex-wrap:wrap;justify-content:center;gap:0 8px}}@media (prefers-reduced-motion:reduce){#main .pmv-button{transition:none}}.image-document-reader{width:100%;min-width:0;color:var(--ink);display:block}.document-controls{border:1px solid var(--line);background:color-mix(in srgb,var(--ink) 4%,transparent);border-radius:8px;grid-template-columns:minmax(140px,1fr) auto auto;align-items:center;gap:8px;margin-bottom:16px;padding:6px 8px;font:400 14px/1.4 Arial,Helvetica,sans-serif;display:grid}.document-controls[hidden],.document-controls [hidden]{display:none}.document-controls svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px;display:block}.document-contents{min-width:0;color:var(--ink);align-items:center;gap:10px;margin:0;padding:0 8px;display:flex;position:relative}.document-contents select{appearance:none;width:100%;min-width:0;min-height:44px;color:inherit;font:inherit;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;border-radius:4px;margin:0;padding:10px 24px 10px 0;display:block}.document-contents option{background:var(--paper);color:var(--ink)}.document-contents .document-select-chevron{pointer-events:none;width:16px;position:absolute;right:8px}.document-navigation{justify-content:center;align-items:center;gap:2px;display:flex}.document-view-controls{border-left:1px solid var(--line);align-items:center;gap:2px;padding-left:8px;display:flex}.document-controls button{min-width:44px;min-height:44px;color:var(--ink);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;gap:8px;margin:0;padding:10px;transition:background-color .14s,color .14s;display:inline-flex}.document-controls button:hover:not(:disabled):not([aria-disabled=true]){background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--accent)}.document-controls button:is(:disabled,[aria-disabled=true]){opacity:.35;cursor:default}.document-page-field{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted);align-items:center;gap:4px;display:flex}.document-controls .document-page-field input{border:0;border-bottom:1px solid var(--line);width:38px;min-width:0;min-height:44px;color:var(--ink);font:inherit;text-align:center;background:0 0;border-radius:0;margin:0;padding:8px 2px}.document-page-field>span:last-child{min-width:24px}.document-controls :is(button,input,select):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (width<=900px){.document-controls{grid-template-columns:minmax(0,1fr) auto}.document-contents{border-bottom:1px solid var(--line);grid-column:1/-1}.document-navigation{justify-content:flex-start}.document-view-controls{border:0;justify-content:flex-end;padding:0}}@media (width<=600px){.document-action-label{display:none}}@media (width<=360px){.document-controls{grid-template-columns:1fr}.document-navigation,.document-view-controls{justify-content:center}}@media (prefers-reduced-motion:reduce){.document-controls button{transition:none}}.document-book-holder{justify-content:center;align-items:flex-start;width:100%;min-width:0;display:flex}.document-book-stage{width:100%;min-width:0;aspect-ratio:var(--book-ratio);perspective:1800px;perspective-origin:50%;isolation:isolate;background:#eeeae2;border-radius:4px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:relative;overflow:clip;box-shadow:0 4px 12px #00000026,inset 0 1px #fff8}.document-book-page{background:#fff;min-width:0;height:100%;min-height:0;position:relative}.document-book-page[hidden]{display:none}.document-book-page[data-empty]{background:#eeeae2}.document-book-page img,.document-turn-face img{object-fit:contain;background:#fff;width:100%;height:100%;display:block}.document-book-spine{display:none}.document-book-stage[data-layout=spread] .document-book-spine{z-index:3;pointer-events:none;background:linear-gradient(90deg,#0000,#00000012 42%,#00000030 50%,#00000012 58%,#0000);width:16px;display:block;position:absolute;top:0;bottom:0;left:calc(50% - 8px)}.document-turn-leaf{z-index:5;width:100%;height:100%;transform-style:preserve-3d;pointer-events:none;will-change:transform;position:absolute;top:0}.document-book-stage[data-layout=spread] .document-turn-leaf{width:50%}.document-turn-leaf[data-direction=forward]{transform-origin:0;left:0}.document-book-stage[data-layout=spread] .document-turn-leaf[data-direction=forward]{left:50%}.document-turn-leaf[data-direction=backward]{transform-origin:100%;left:0}.document-turn-face{-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#fff;position:absolute;inset:0;overflow:hidden;box-shadow:0 0 1px #0005}.document-turn-back{transform:rotateY(180deg)}.document-turn-face:after{content:"";pointer-events:none;position:absolute;inset:0}.document-turn-leaf[data-direction=forward] .document-turn-front:after,.document-turn-leaf[data-direction=backward] .document-turn-back:after{background:linear-gradient(90deg,#00000028,#0000 32%,#fff1)}.document-turn-leaf[data-direction=backward] .document-turn-front:after,.document-turn-leaf[data-direction=forward] .document-turn-back:after{background:linear-gradient(270deg,#00000028,#0000 32%,#fff1)}.document-turn-shadow{z-index:4;pointer-events:none;opacity:0;background:#000;position:absolute;inset:0}.document-reader-footer{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-top:12px;display:flex}.image-document-reader .document-page-status{color:var(--muted);margin:0;font-size:.875rem;line-height:1.5}.document-static-spreads{gap:16px;min-width:0;margin-top:16px;display:grid}.image-document-reader:fullscreen{background:var(--paper);flex-direction:column;justify-content:center;padding:16px;display:flex;overflow:hidden}.image-document-reader:fullscreen .document-controls{flex:none}.image-document-reader:fullscreen .document-book-holder{min-height:0}.image-document-reader:fullscreen .document-reader-footer{flex:none}@media (prefers-reduced-motion:reduce){.document-turn-leaf,.document-turn-shadow{display:none}}.document-page-open{cursor:zoom-in;background:#fff;border:0;width:100%;height:100%;padding:0;display:block}.document-page-open:focus-visible{outline-offset:-4px;z-index:4;outline:3px solid #006bce;position:relative}.document-page-error{text-align:center;color:#202020;background:#fff;place-content:center;gap:12px;height:100%;padding:12px;font:14px/1.5 sans-serif;display:grid}.document-page-error button{color:#202020;cursor:pointer;background:#fff;border:1px solid #555;border-radius:8px;min-height:44px;padding:8px}.theme-project .site-shell{max-width:none;padding:0}.theme-project .site-header[data-menu-ready]~.site-shell{padding-top:var(--header-height)}.neutral-project{--project-background:var(--surface-muted);background:var(--project-background);width:100%;color:var(--ink);overflow-wrap:anywhere}.neutral-project :is(h1,h2,h3,p,dl,dd,figure){margin:0}.neutral-project h1{text-wrap:balance;margin-bottom:32px;font-size:2.25rem;font-weight:700;line-height:1.35}.neutral-project h2{margin-bottom:16px;font-size:1.375rem;font-weight:600;line-height:1.4}.neutral-project h3{margin-bottom:12px;font-size:1.25rem;font-weight:600;line-height:1.3}.neutral-project :is(p,dd,li){font-size:1rem;line-height:1.5}.neutral-project p{max-width:70ch}.neutral-project p+p{margin-top:12px}.neutral-project ul{max-width:70ch;margin:0;padding-left:20px}.neutral-project li{margin-bottom:4px;padding-left:2px}.neutral-project a{text-underline-offset:4px;text-decoration:underline}.neutral-project :focus-visible{outline:3px solid var(--ink);outline-offset:4px}.neutral-project-themed :is(h2,h3,.neutral-facts dt){color:var(--accent)}.neutral-project-themed :is(p,li){color:var(--muted)}.neutral-project-themed a{color:var(--accent)}.neutral-hero{isolation:isolate;background:var(--project-background);grid-template-rows:minmax(0,1fr) auto;width:100%;height:75vh;min-height:520px;display:grid;position:relative}.neutral-hero-visual{position:absolute;inset:0;overflow:hidden}.neutral-hero-art{z-index:0;position:absolute;inset:0;overflow:hidden}.neutral-hero-visual:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(to top,var(--project-background) 0%,var(--project-background) 12%,color-mix(in srgb,var(--project-background) 97%,transparent) 30%,color-mix(in srgb,var(--project-background) 76%,transparent) 57%,transparent 100%);position:absolute;inset:58% 0 0}.neutral-hero-brand{z-index:2;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.neutral-project-logo,.neutral-hero-brand>:is(svg,img){object-fit:contain;filter:drop-shadow(0 2px 5px #0006);width:clamp(17.5rem,49vw,43.75rem);max-width:80%;height:auto;max-height:min(38vh,282px);display:block}.neutral-facts{z-index:3;grid-area:2/1;justify-content:space-between;align-items:flex-start;gap:32px;width:calc(100% - 96px);max-width:1184px;display:flex;position:relative;margin:0 auto 16px!important}.neutral-facts>div{flex:0 auto;min-width:0;max-width:40%}.neutral-facts dt{margin-bottom:8px;font-weight:600}.neutral-role dd{text-wrap:balance}.neutral-context-line{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.neutral-context-organization{align-items:center;display:inline-flex}.neutral-context-organization a{align-items:center;min-height:44px;display:inline-flex}.neutral-context-organization img{object-fit:contain;width:auto;max-width:112px;height:auto;max-height:44px}.neutral-project-themed .neutral-context-ubisoft img{filter:brightness(0)invert()}.neutral-hero-plain{height:auto;min-height:0;padding-top:48px}.neutral-body{padding:24px 48px 48px}.neutral-sheet{background:var(--paper);border-radius:8px;max-width:1184px;margin:0 auto;padding:48px}.neutral-overview{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:48px;display:grid}.neutral-overview>*{min-width:0}.neutral-overview-copy{grid-area:1/1}.neutral-overview-media{grid-area:1/2}.neutral-project-compact .neutral-body{padding-top:48px}.neutral-academic-intro{margin-bottom:32px}.neutral-project .neutral-facts-compact{flex-flow:wrap;grid-area:auto;justify-content:flex-start;gap:16px 48px;width:100%;max-width:none;margin:0!important}.neutral-facts-compact>div{max-width:100%}.neutral-overview-interactive{row-gap:24px}.neutral-overview-interactive>.neutral-overview-media{grid-row:1/span 2}.neutral-overview-interactive>.neutral-supporting-video{grid-area:2/1}.neutral-project .neutral-overview-interactive .nine-icons-interactive{margin-top:0}.neutral-tools-section,.neutral-links-section{margin-top:24px}.neutral-overview-details{display:contents}.neutral-overview-no-media{grid-template-columns:minmax(0,1fr);row-gap:24px}.neutral-overview-no-media .neutral-overview-copy{grid-column:1}.neutral-overview-no-media .neutral-overview-media{grid-area:auto/1}.neutral-overview-no-media .neutral-links-section{margin-top:0}.neutral-overview-description-only .neutral-overview-description{grid-area:1/1/auto/-1}.neutral-document{width:100%;min-width:0;margin-top:32px}.neutral-info-section,.neutral-brief{margin-top:24px}.neutral-tools{flex-wrap:wrap;align-items:center;gap:12px;list-style:none;display:flex;padding:0!important}.neutral-project .neutral-tools li{flex:none;margin:0;padding:0}.neutral-tool{align-items:center;min-height:44px;font-size:.875rem;display:flex}.neutral-tool-mark{width:max(44px, calc(var(--mark-w,50px) * .85));height:44px;position:relative;overflow:hidden}.neutral-tool-mark img{left:calc(var(--mark-x,0px) * .85);top:calc(var(--mark-y,0px) * .85);width:calc(var(--mark-image-w,50px) * .85);height:calc(var(--mark-image-h,50px) * .85);object-fit:contain;max-width:none;position:absolute}.neutral-tool-miro{--mark-w:50.799px;--mark-image-w:63.034px;--mark-image-h:62.235px;--mark-x:-4.994px;--mark-y:-6.193px}.neutral-tool-photoshop{--mark-w:51.18px;--mark-image-w:49.18px;--mark-image-h:48px;--mark-x:1px;--mark-y:1px}.neutral-tool-confluence{--mark-w:51.901px;--mark-image-w:50.693px;--mark-image-h:50.693px;--mark-x:1px;--mark-y:-1.693px}.neutral-tool-excel{--mark-w:53.598px;--mark-image-w:107.946px;--mark-image-h:71.964px;--mark-x:-27.174px;--mark-y:-10.982px}.neutral-tool-unity{--mark-w:144px;--mark-image-w:187.78px;--mark-image-h:92.94px;--mark-x:-22px;--mark-y:-21.5px}.neutral-project-links{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.neutral-project-links .neutral-social-link{justify-content:center}.neutral-social-link img{width:32px;height:32px}.neutral-site-link{overflow-wrap:anywhere;min-width:0;max-width:100%}.neutral-project-link-icon{flex:none;align-items:center;min-width:44px;height:44px;display:flex}.neutral-project-link-icon img{object-fit:contain;width:auto;max-width:95.2px;height:auto;max-height:37.4px}.neutral-media{gap:24px;display:grid}.neutral-video-gallery~:is(.neutral-media,.project-screenshot-gallery){margin-top:24px}.neutral-media img{width:100%;height:auto}.neutral-media figcaption{margin-top:8px}.neutral-project .neutral-media-placeholder{border:1px dashed var(--line);color:var(--muted);padding:24px}.neutral-video-frame{isolation:isolate;aspect-ratio:16/9;border:1px solid var(--line);background:#100b17;position:relative;overflow:hidden}.neutral-video-frame :is(video,iframe){object-fit:contain;border:0;width:100%;height:100%;display:block}.neutral-video-frame iframe{position:absolute;inset:0}.neutral-video-frame iframe.video-source-loading{opacity:0}.neutral-video-play{color:#fff;cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;inset:0}.neutral-video-play>span{background:#100b17a6;border:1px solid;border-radius:50%;place-items:center;width:56px;height:56px;padding-left:3px;font-size:22px;display:grid}.neutral-video-play:hover{color:var(--accent)}.neutral-video-frame [hidden]{display:none}.neutral-project .project-video-credit{margin-top:8px}.neutral-video-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;margin-top:12px;display:grid}.neutral-project .neutral-video-choice{isolation:isolate;border:1px solid var(--line);color:#fff;text-align:center;background:#1a1225;place-items:center;width:100%;min-width:0;min-height:64px;padding:8px;text-decoration:none;display:grid;position:relative;overflow:hidden}.neutral-video-thumb{z-index:-2;display:block;position:absolute;inset:0}.neutral-video-thumb img{object-fit:cover;width:100%;height:100%}.neutral-video-choice:after{content:"";z-index:-1;pointer-events:none;background:#08051099;position:absolute;inset:0}.neutral-video-label{min-width:0;max-width:100%;font-size:.8125rem;font-style:italic;font-weight:500;line-height:1.35}.neutral-project .neutral-video-choice[aria-current=true]{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:0}.neutral-simple-contributions{scroll-margin-top:calc(var(--header-height) + 24px);margin-top:24px}.neutral-contributions{scroll-margin-top:calc(var(--header-height) + 24px);margin-top:48px}.neutral-prose{margin-top:24px}.neutral-back{max-width:1184px;margin:24px auto 0}.neutral-back a{align-items:center;min-height:44px;display:inline-flex}.neutral-media-grid figcaption{color:var(--muted);margin-top:8px;font-size:.875rem}.neutral-media-section{margin-top:32px}.neutral-media-copy{margin-bottom:24px}.neutral-media-grid{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));align-items:center;gap:24px;display:grid}.neutral-media-grid figure{min-width:0}.neutral-media-grid img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:280px;margin-inline:auto;display:block}.neutral-media-section-assets .neutral-media-grid figure{border-radius:var(--radius-media);background:0 0;place-items:center;min-height:0;padding:0;display:grid}.neutral-media-section-portraits .neutral-media-grid{grid-template-columns:repeat(var(--media-columns,4), minmax(0, 1fr));align-items:start;gap:16px}.neutral-media-section-portraits .neutral-media-grid img{object-fit:contain;width:auto;max-height:560px}.neutral-media-section-split{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:32px;display:grid}.neutral-media-section-split .neutral-media-grid img{width:100%;max-height:none}.neutral-media-section-frames .neutral-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.neutral-media-section-frames .neutral-media-grid img{width:100%;height:auto;max-height:none}@media (width<=1100px){.neutral-facts{gap:24px;width:calc(100% - 64px)}.neutral-body{padding:16px 32px 32px}.neutral-project-compact .neutral-body{padding-top:32px}.neutral-sheet{padding:32px}.neutral-overview{gap:32px}.neutral-project h1{font-size:2rem}}@media (width<=1020px){.neutral-overview{grid-template-columns:minmax(0,1fr)}.neutral-overview>*{grid-area:auto}.neutral-overview-interactive>:is(.neutral-overview-media,.neutral-supporting-video),.neutral-overview-no-media :is(.neutral-overview-description,.neutral-overview-details,.neutral-overview-media){grid-area:auto/1}}@media (width<=900px),(width>=901px) and (height<=700px){.neutral-hero{--hero-art-height:clamp(256px,58vw,448px);grid-template-rows:var(--hero-art-height) auto;gap:24px;height:auto;min-height:0;padding-bottom:12px}.neutral-hero-visual{height:var(--hero-art-height);grid-area:1/1;position:relative}.neutral-hero-visual:after{inset:64% 0 0}.neutral-hero-brand{bottom:12%}.neutral-project-logo,.neutral-hero-brand>:is(svg,img){width:min(70vw,600px);max-width:80%;max-height:56%}.neutral-facts{width:calc(100% - 48px);margin-bottom:0!important}.neutral-hero-plain{grid-template-rows:auto;padding-top:32px}.neutral-hero-plain .neutral-facts{grid-area:1/1}}@media (width<=900px){.neutral-facts{flex-direction:column;gap:16px}.neutral-facts>div{max-width:100%}}@media (width<=760px){.neutral-facts{flex-direction:column;gap:16px}.neutral-facts>div{max-width:100%}.neutral-facts dt{margin-bottom:4px}.neutral-body{padding:12px 16px 24px}.neutral-project-compact .neutral-body{padding-top:24px}.neutral-project .neutral-facts-compact{flex-direction:column;gap:16px}.neutral-sheet{border-radius:12px;padding:24px}.neutral-project h1{font-size:1.75rem}.neutral-video-options{grid-template-columns:repeat(2,minmax(0,1fr))}.neutral-project .neutral-video-choice{min-height:56px}.neutral-media-section-split{grid-template-columns:minmax(0,1fr);gap:16px}.neutral-media-section-portraits .neutral-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.neutral-media-section-frames .neutral-media-grid{grid-template-columns:minmax(0,1fr)}}.neutral-tool-canva{--mark-w:133.333px;--mark-image-w:133.333px;--mark-image-h:50px}.neutral-tool-rhino{--mark-w:62.6px;--mark-image-w:62.6px;--mark-image-h:50px}:is(#main.neutral-project,#laserhawk-project) :is(figcaption,.project-video-credit,.cs-image-caption,.clash-viewer-caption,.screenshot-viewer-caption,.pmv-caption),#main>.project-media-viewer .pmv-caption{font-synthesis:style;font-family:Arial,Helvetica,sans-serif;font-size:13px;font-style:italic;font-weight:400;line-height:1.5}.academic-overview{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:40px;display:grid}.academic-overview>*,.academic-evidence-grid>*{min-width:0}.academic-copy{gap:24px;display:grid}.academic-project .academic-copy .neutral-tools-section{margin-top:0}.academic-project .academic-credit{font-size:.875rem}.academic-final-images{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px;display:grid}.academic-final-images:has(>:only-child){grid-template-columns:minmax(0,1fr)}.academic-project figure{margin:0}.academic-project figure a[data-media-view]{width:fit-content;max-width:100%;margin-inline:auto;display:block}.academic-project figure img{width:auto;max-width:100%;height:auto;max-height:min(440px, calc(100svh - var(--header-clearance,88px) - 100px));margin-inline:auto;display:block}.academic-project .academic-video{margin-top:24px}.academic-video video{aspect-ratio:16/9;background:#fff;border:0;width:100%;height:auto;display:block}.academic-evidence,.academic-process{margin-top:40px}.academic-evidence-grid{grid-template-columns:repeat(var(--evidence-columns), minmax(0, 1fr));align-items:start;gap:24px;display:grid}.academic-project .academic-evidence img{max-height:300px}.academic-project .academic-poster img{width:100%;max-height:none}@media (width<=900px){.academic-overview{gap:24px}}@media (width<=760px){.academic-overview{grid-template-columns:minmax(0,1fr);gap:32px}.academic-copy{gap:24px}.academic-final-images{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.academic-final-images:has(>:only-child){grid-template-columns:minmax(0,1fr)}.academic-evidence,.academic-process{margin-top:32px}.academic-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}}@media (width<=480px){.academic-evidence-grid{grid-template-columns:minmax(0,1fr)}.academic-project .academic-evidence img{max-height:none}}
