@font-face{font-family:Grumbofont;src:url(/assets/portfolio/Grumbofont-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#050403}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}html.ios-safari-landscape{height:auto;min-height:300vh;overflow-x:hidden;overflow-y:auto}html.ios-safari-landscape body{height:300vh;min-height:300vh;overflow:visible}html.ios-safari-landscape body:before,html.ios-safari-landscape body:after{content:"";display:block;height:100vh;pointer-events:none;visibility:hidden}.fullscreen-pillar-hint{position:fixed;top:0;bottom:0;z-index:30;display:flex;box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 8px;color:#fffaf0;font-family:Grumbofont,Georgia,Times New Roman,serif;font-size:clamp(19px,4vh,28px);font-weight:700;line-height:1.15;letter-spacing:.03em;text-align:center;text-shadow:0 2px 3px #000,0 0 6px #000;pointer-events:none;-webkit-user-select:none;user-select:none}.fullscreen-pillar-hint[hidden]{display:none}.fullscreen-pillar-hint--left{left:0;padding-left:max(8px,env(safe-area-inset-left))}.fullscreen-pillar-hint--right{right:0;padding-right:max(8px,env(safe-area-inset-right))}.fullscreen-pillar-hint--click{cursor:pointer;pointer-events:auto;touch-action:manipulation}.fullscreen-pillar-hint__text{max-width:100%}.fullscreen-pillar-hint__button{display:block;width:min(110px,75%);margin:8px 0 0;padding:0;border:0;background:transparent;cursor:pointer}.fullscreen-pillar-hint__button[hidden],.fullscreen-pillar-hint__swipe[hidden]{display:none}.fullscreen-pillar-hint__button:focus-visible{outline:2px solid #fffaf0;outline-offset:4px}.fullscreen-pillar-hint__button img{display:block;width:100%;height:auto}.fullscreen-pillar-hint__swipe{order:-1;display:block;width:min(68px,45%);height:auto;margin-bottom:6px}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}.scene-view{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;background:#050403;color:#f9f4e8;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-user-select:none;user-select:none;cursor:none}.scene-view--custom-cursor-disabled{cursor:auto}.scene-view__stage{position:absolute;overflow:visible}.scene-view--view-transition .scene-view__stage{view-transition-name:scene-stage;contain:paint}:root.scene-view-transition-active,:root.scene-view-transition-active body,:root.scene-view-transition-active *{cursor:none!important}.scene-view--view-transition,.scene-view--view-transition *,.scene-view__stage--transitioning,.scene-view__stage--transitioning *{cursor:none!important}.scene-view--view-transition .embedded-page,.scene-view--view-transition .embedded-page__frame,.scene-view__stage--transitioning .embedded-page,.scene-view__stage--transitioning .embedded-page__frame{pointer-events:none}.scene-view--view-transition .scene-cursor,.scene-view__stage--transitioning~.scene-cursor{display:none}:root.scene-view-transition-active::view-transition,:root.scene-view-transition-active::view-transition-group(scene-stage),:root.scene-view-transition-active::view-transition-image-pair(scene-stage),:root.scene-view-transition-active::view-transition-old(scene-stage),:root.scene-view-transition-active::view-transition-new(scene-stage){cursor:none!important}:root.scene-view-transition-active::view-transition-group(scene-stage),:root.scene-view-transition-active::view-transition-image-pair(scene-stage),:root.scene-view-transition-active::view-transition-old(scene-stage),:root.scene-view-transition-active::view-transition-new(scene-stage){animation-duration:var(--scene-transition-duration, .5s);animation-timing-function:linear;animation-fill-mode:both;mix-blend-mode:normal}:root.scene-view-transition-active::view-transition-image-pair(scene-stage){isolation:isolate}:root.scene-view-transition-active::view-transition-old(scene-stage),:root.scene-view-transition-active::view-transition-new(scene-stage){animation-name:scene-view-transition-hold}:root.scene-view-transition-active::view-transition-old(scene-stage){z-index:2;opacity:1;clip-path:var(--scene-transition-clip, none);-webkit-clip-path:var(--scene-transition-clip, none)}:root.scene-view-transition-active::view-transition-new(scene-stage){z-index:1;opacity:1}@keyframes scene-view-transition-hold{0%{opacity:1}to{opacity:1}}.scene-view__scene-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.scene-view__scene-layer--active{z-index:1}.scene-view__scene-layer--transition{z-index:4;pointer-events:none}.scene-view__scene-layer[hidden]{display:none}.scene-view__background,.scene-view__layer,.scene-view__sprite,.scene-view__animated-sprite,.scene-view__transient-sprite,.scene-view__transient-sprite-image,.embedded-page,.mobile-hotspots,.hotspot-debug{position:absolute}.mobile-hotspots{top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.mobile-hotspots--locked{pointer-events:all}.scene-view--view-transition .mobile-hotspots{visibility:hidden}.mobile-hotspot__region{fill:#000;stroke:#eee;stroke-width:2.5px;vector-effect:non-scaling-stroke}.mobile-hotspot__arrow{fill:none;stroke:#eee;stroke-width:6px;stroke-linecap:square;stroke-linejoin:miter;vector-effect:non-scaling-stroke}.mobile-hotspot__tutorial{color:#eee;pointer-events:none}.mobile-hotspot__tutorial-fallback{fill:currentColor;font-family:monospace;font-size:24px;text-anchor:middle;dominant-baseline:central}.scene-view__background{top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;object-fit:fill;pointer-events:none}.scene-view__layers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.scene-view__elements{position:absolute;top:0;right:0;bottom:0;left:0}.scene-view__shared-embedded-pages{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.scene-view__layer,.scene-view__sprite,.scene-view__animated-sprite,.scene-view__transient-sprite,.scene-view__transient-sprite-image{display:block;pointer-events:none}.scene-view__animated-sprite,.scene-view__transient-sprite{overflow:hidden}.scene-view__animated-sprite-image,.scene-view__transient-sprite-image{position:absolute;left:0;top:0;display:block;max-width:none;-webkit-user-select:none;user-select:none;pointer-events:none}.scene-view__transient-sprite-image{width:100%;height:100%}.embedded-page{overflow:visible;background:#0e0e0e;pointer-events:auto;cursor:auto}.embedded-page--passive{pointer-events:none}.embedded-page__frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;background:#0e0e0e;cursor:auto;transform-origin:0 0}.embedded-page--passive .embedded-page__frame{pointer-events:none}.embedded-page__glass{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(115deg,#ffffff29,#fff0 32%),repeating-linear-gradient(0deg,#ffffff0a,#ffffff0a 1px,#0000,#0000 5px);mix-blend-mode:screen}.hotspot-debug{top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.hotspot-debug__shape{fill:#36d39929;stroke:#36d399;stroke-width:4px;vector-effect:non-scaling-stroke}.hotspot-debug__monitor{fill:#60a5fa1f;stroke:#60a5fa;stroke-width:4px;vector-effect:non-scaling-stroke}.scene-prompt{position:absolute;left:50%;bottom:clamp(14px,2.4vh,28px);z-index:8;max-width:88vw;transform:translate(-50%);padding:calc(12px * var(--scene-prompt-ui-scale, 1)) calc(18px * var(--scene-prompt-ui-scale, 1));border:calc(2px * var(--scene-prompt-ui-scale, 1)) solid rgba(0,0,0,.7);color:#fffaf0;background:#000000b3;line-height:0;text-align:center;pointer-events:none}.scene-prompt[hidden]{display:none}.scene-portrait-message{position:absolute;left:50%;z-index:7;transform:translate(-50%,-50%);color:#fffaf0;text-align:center;pointer-events:none}.scene-portrait-message[hidden]{display:none}.scene-portrait-message__bitmap-text{margin:0 auto}.scene-portrait-message__bitmap-text--subtext{margin-top:8px}.scene-prompt__bitmap-text{margin:0 auto;transform:translateY(calc(-6px * var(--scene-prompt-ui-scale, 1)));transform-origin:50% 100%}.scene-cursor{position:absolute;left:0;top:0;z-index:20;pointer-events:none;image-rendering:pixelated;transform-origin:0 0;-webkit-user-select:none;user-select:none}.scene-cursor[hidden]{display:none}.bitmap-text{position:relative;display:block;image-rendering:pixelated;line-height:0;white-space:pre}.bitmap-text__glyph{position:absolute;overflow:hidden;background-repeat:no-repeat;image-rendering:pixelated}.bitmap-text__glyph--typewriter{opacity:0;animation:bitmap-text-reveal 0s forwards}@keyframes bitmap-text-reveal{to{opacity:1}}
