.landing-page-container{min-height:100svh;box-sizing:border-box;padding:clamp(.75rem,3vmin,2rem);display:flex;justify-content:center;align-items:center}.layers{position:fixed;inset:0;z-index:-1;overflow:hidden}.static-background{position:absolute;inset:0;background:url(/background.png) center / cover no-repeat}.particle{position:absolute;inset:0;background:url(/background.png) center / cover no-repeat;opacity:0;transform:scale(1);will-change:transform,opacity;animation:particle-expand 21s linear infinite}@keyframes particle-expand{0%{transform:scale(1);opacity:0}10%{transform:scale(1.05);opacity:.28}22%{transform:scale(1.11);opacity:.5}55%{transform:scale(1.275);opacity:.26}to{transform:scale(1.5);opacity:0}}.text-box{--frame-color: rgba(255, 255, 255, .98);--corner-pixel: 2px;--frame-border: calc(var(--corner-pixel) * 2);position:relative;isolation:isolate;box-sizing:border-box;display:flex;flex-direction:column;width:min(56vw,48rem);max-width:100%;max-height:86svh;padding:clamp(1rem,2.4vmin,1.85rem) clamp(1rem,2.8vmin,2.15rem);transform:translateY(clamp(-24px,-2vmin,0px));border:var(--frame-border) solid var(--frame-color);background:linear-gradient(#ffffff08,#fff0) top / 100% 3.75rem no-repeat,#000000db;box-shadow:inset 0 0 0 var(--corner-pixel) #9da2c4,0 18px 42px #00000073;color:#fff;font-family:IBM Plex Mono,monospace;text-align:center;overflow:visible}.text-box.view-projects{width:min(66vw,56rem);max-height:90svh}.text-box>:not(.text-box-frame){position:relative;z-index:1}.text-box-frame{position:absolute;inset:calc(var(--frame-border) / -2);pointer-events:none;z-index:2}.text-box-corner{position:absolute;width:0;height:0}.text-box-corner:before{content:"";position:absolute;top:calc(var(--corner-pixel) * -5);left:calc(var(--corner-pixel) * -5);width:calc(var(--corner-pixel) * 13);height:calc(var(--corner-pixel) * 13);background:var(--corner-sprite) 0 0 / 100% 100% no-repeat;image-rendering:pixelated}.text-box-corner.top-left{top:0;left:0}.text-box-corner.top-right{top:0;right:0;transform:scaleX(-1)}.text-box-corner.bottom-left{bottom:0;left:0;transform:scaleY(-1)}.text-box-corner.bottom-right{right:0;bottom:0;transform:scale(-1)}.text-box h1{flex-shrink:0;font-size:clamp(1.4rem,1rem + 2.2vmin,2.4rem);margin:0 0 .5rem}.text-box-nav{flex-shrink:0;display:flex;justify-content:center;align-items:center;gap:clamp(.7rem,1.6vmin,1.1rem);flex-wrap:wrap}.text-box-nav a{color:#fff;text-decoration:none;font-weight:500;font-size:clamp(.95rem,.8rem + .7vmin,1.25rem);cursor:pointer}.text-box-nav a:hover{color:#ff0}.text-box-nav a:focus-visible{outline:2px solid yellow;outline-offset:3px}.text-box-nav a.active{color:#ff0;text-decoration:underline;text-underline-offset:4px}.text-box-content{position:relative;min-height:0;overflow-y:auto;overflow-x:hidden;padding:.5rem;text-align:left;font-size:clamp(.95rem,.85rem + .55vmin,1.2rem);line-height:1.45;scrollbar-width:none;-ms-overflow-style:none;transition:opacity 90ms linear}.text-box-content::-webkit-scrollbar{display:none}.text-box-content.exiting{opacity:0;pointer-events:none}.tw-root.tw-suspended,.tw-hidden,.tw-veil{visibility:hidden}.tw-veil{display:contents}.project-display{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}.project-display h3{font-size:clamp(1.1rem,1rem + .8vmin,1.5rem);color:#ff0;margin:1.45rem 0 .7rem}.project-gallery{width:min(100%,calc(38svh * var(--stage-ratio, 1.5)),34rem);margin:.2rem auto .6rem;display:flex;flex-direction:column}.gallery-stage{position:relative;width:100%;aspect-ratio:var(--stage-ratio, 1.5);background:#050310;border:2px solid var(--frame-color);overflow:hidden}.gallery-stage:before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 0 var(--corner-pixel) #9da2c4,inset 0 0 30px #0000008c}.gallery-stage:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.05) 0 1px,transparent 1px 3px)}.gallery-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;animation:gallery-swap .16s steps(3)}@keyframes gallery-swap{0%{opacity:0}to{opacity:1}}.gallery-caption{min-height:1.5em;margin-top:.4rem;font-size:.82em;color:#9da2c4;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-caption:before{content:"* "}.gallery-thumbs{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem;margin-top:.55rem;padding-bottom:1.1rem}.gallery-thumb{position:relative;width:4.2rem;aspect-ratio:4 / 3;padding:0;border:2px solid rgba(255,255,255,.55);background:#000;cursor:pointer;opacity:.6;transition:opacity .15s,border-color .15s}.gallery-thumb img{display:block;width:100%;height:100%;object-fit:cover}.gallery-thumb:hover{opacity:.9;border-color:#ff0}.gallery-thumb:focus-visible{outline:2px solid yellow;outline-offset:2px}.gallery-thumb.active{opacity:1;border-color:#fff}.gallery-thumb.active:after{content:"*";position:absolute;left:50%;bottom:-1.15rem;transform:translate(-50%);color:#ff0;font-weight:700;font-size:1rem;line-height:1}.project-display p{line-height:1.45;max-width:100%;text-align:left}.project-display ul{text-align:left;max-width:92%;margin:0;padding-left:0;list-style:none}.project-display li{position:relative;padding-left:1.1em;margin-bottom:.5em;text-align:left}.project-display li:before{content:"*";position:absolute;left:0;top:0}.project-inline-link{color:#78aedc;text-decoration:underline;text-underline-offset:.14em;transition:color .2s}.project-inline-link:hover{color:#9ac7ea}.project-nav{display:flex;justify-content:center;align-items:center;gap:clamp(.6rem,2.4vmin,2rem);width:92%;margin-top:1rem;border-top:2px solid rgba(255,255,255,.4);padding-top:1rem}.project-nav button{font-family:IBM Plex Mono,monospace;font-size:clamp(.75rem,.65rem + .4vmin,.9rem);font-weight:700;color:#fff;background:none;border:none;padding:.5rem;cursor:pointer;transition:color .2s}.project-nav button:hover{color:#ff0}.project-nav button:disabled,.project-nav button:disabled:hover{color:#777;cursor:not-allowed}.project-native-select{font-family:IBM Plex Mono,monospace;font-size:clamp(.75rem,.65rem + .4vmin,.9rem);font-weight:700;color:#fff;background-color:#333;border:2px solid white;border-radius:4px;padding:.4rem;cursor:pointer;text-align:center;max-width:min(10rem,40vw);text-overflow:ellipsis}.project-native-select:hover{border-color:#ff0}.project-native-select option{font-weight:500;background-color:#000}@media(max-width:1120px){.text-box{width:min(86vw,46rem)}.text-box.view-projects{width:min(92vw,52rem)}}@media(max-width:700px){.landing-page-container{padding:.6rem}.text-box,.text-box.view-projects{--corner-pixel: 1px;width:100%;max-height:88svh;padding:.9rem .8rem;transform:none}.text-box h1{font-size:1.15rem;margin-bottom:.4rem}.text-box-nav a{font-size:.85rem}.project-gallery{width:min(100%,calc(30svh * var(--stage-ratio, 1.5)))}}@media(prefers-reduced-motion:reduce){.text-box-content{transition:none}.gallery-image{animation:none}.particle{animation:none;opacity:0}}#root{width:100%;height:100%}html,body,#root{margin:0;padding:0;width:100%;height:100%}body{background-color:#0a0618;color:#fff;font-family:IBM Plex Mono,monospace;overflow:hidden}
