*{margin:0;padding:0;box-sizing:border-box}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}body{background:#fff;color:#000;font-family:Figtree,system-ui,sans-serif;overflow-x:hidden;padding:0 4rem;min-height:100vh}main{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center}#hero{height:auto;padding:3rem 0 2rem;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}#projects{padding:1.5rem 0 4rem;overflow:visible;width:100%}#svg-container{width:min(35vw,200px);height:min(35vw,200px);cursor:grab;user-select:none;-webkit-user-select:none;transform-origin:center center}#svg-container:active{cursor:grabbing}#logo{width:100%;height:100%;overflow:visible}.svg-piece{transform-origin:136.5px 136.5px}#tagline{max-width:600px;margin:2rem auto 0;text-align:center;font-size:1.4rem;line-height:1.6}#tagline .highlight{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:300;font-size:1.7rem;display:inline-flex;transform:scaleY(1.3);transform-origin:0 100%;vertical-align:baseline;position:relative;top:.15em;padding-bottom:2px}#tagline .highlight:after{content:"";position:absolute;left:0;bottom:0;height:10px;width:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 12'%3E%3Cpath d='M0 7 Q5 2 10 5 Q15 8 20 4 Q25 0 30 5 Q35 10 40 6' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' opacity='0.85'/%3E%3Cpath d='M1 8 Q6 4 11 6 Q16 9 21 5 Q26 1 31 5.5 Q36 10 39 7' fill='none' stroke='black' stroke-width='1' stroke-linecap='round' opacity='0.4'/%3E%3C/svg%3E");background-repeat:repeat-x;background-size:28px 10px;transition:width .4s ease}#tagline .highlight:hover:after{width:100%}.bento-grid{display:flex;gap:1rem;max-width:640px;margin:0 auto;overflow:visible;align-items:flex-start}.bento-column{flex:1;display:flex;flex-direction:column;gap:1rem}.bento-card{border-radius:42px;overflow:hidden;text-decoration:none;color:#000;background:#e0e0e0;display:flex;align-items:center;justify-content:center;position:relative;font-family:Cormorant Garamond,serif;font-style:italic;font-weight:300;font-size:2rem;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 2px 8px #0000000f,0 12px 32px #0000001a}.bento-card video{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;transition:filter .3s ease}.bento-card:hover video{filter:blur(12px)}.card-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:1;font-family:Cormorant Garamond,serif;font-style:italic;font-weight:300;font-size:2rem;color:#fff;transform:scaleY(1.3);transform-origin:center center;padding-bottom:4px}.bento-card:hover .card-label{opacity:1;background:#00000040}.card-label:after{content:"";position:absolute;left:50%;transform:translate(-50%);bottom:calc(50% - 1.2em);height:10px;width:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 12'%3E%3Cpath d='M0 7 Q5 2 10 5 Q15 8 20 4 Q25 0 30 5 Q35 10 40 6' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' opacity='0.85'/%3E%3Cpath d='M1 8 Q6 4 11 6 Q16 9 21 5 Q26 1 31 5.5 Q36 10 39 7' fill='none' stroke='white' stroke-width='1' stroke-linecap='round' opacity='0.4'/%3E%3C/svg%3E");background-repeat:repeat-x;background-size:28px 10px;transition:width .4s ease .1s}.bento-card:hover .card-label:after{width:40%}.bento-portrait{aspect-ratio:9 / 19.5}.bento-landscape{aspect-ratio:16 / 10}.bento-square{aspect-ratio:1 / 1}.bento-card:hover{transform:scale(.95) rotate(-2deg)}.experiments-card{background:#fff;position:relative}#lissajous-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;transition:filter .3s ease}.experiments-card:hover #lissajous-canvas{filter:blur(12px)}#contact{width:100%;max-width:480px;margin:0 auto;padding:2rem 0 4rem;text-align:center;position:relative;z-index:0}#contact-tagline{font-size:1.4rem;line-height:1.6;margin-bottom:1.5rem}#contact-tagline .highlight{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:300;font-size:1.7rem;display:inline-flex;transform:scaleY(1.3);transform-origin:0 100%;vertical-align:baseline;position:relative;top:.15em;padding-bottom:2px}#contact-tagline .highlight:after{content:"";position:absolute;left:0;bottom:0;height:10px;width:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 12'%3E%3Cpath d='M0 7 Q5 2 10 5 Q15 8 20 4 Q25 0 30 5 Q35 10 40 6' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' opacity='0.85'/%3E%3Cpath d='M1 8 Q6 4 11 6 Q16 9 21 5 Q26 1 31 5.5 Q36 10 39 7' fill='none' stroke='black' stroke-width='1' stroke-linecap='round' opacity='0.4'/%3E%3C/svg%3E");background-repeat:repeat-x;background-size:28px 10px;transition:width .4s ease}#contact-tagline .highlight:hover:after{width:100%}#contact-form{display:flex;flex-direction:column;gap:.75rem}#contact-message{width:100%;padding:1.25rem 1.5rem;border:2px solid #e0e0e0;border-radius:24px;font-family:Figtree,system-ui,sans-serif;font-size:1rem;line-height:1.5;resize:vertical;outline:none;transition:border-color .3s ease;background:#fff}#contact-message:focus{border-color:#000}#contact-message::placeholder,#contact-email::placeholder{color:#aaa}#contact-email{width:100%;padding:.9rem 1.5rem;border:2px solid #e0e0e0;border-radius:999px;font-family:Figtree,system-ui,sans-serif;font-size:1rem;outline:none;transition:border-color .3s ease;background:#fff}#contact-email:focus{border-color:#000}#contact-send{align-self:center;padding:.75rem 2rem;border:2px solid #000;border-radius:999px;background:#000;color:#fff;font-family:Figtree,system-ui,sans-serif;font-size:1rem;cursor:pointer;transition:background .3s ease,color .3s ease}#contact-send:hover{background:#fff;color:#000}@keyframes balloon-away-left{0%{transform:translateY(0) translate(0) rotate(0);opacity:1}10%{transform:translateY(-11vh) translate(10px) rotate(1.5deg);opacity:1}20%{transform:translateY(-22vh) translate(-12px) rotate(-2deg);opacity:.95}30%{transform:translateY(-33vh) translate(16px) rotate(3deg);opacity:.85}40%{transform:translateY(-44vh) translate(-8px) rotate(-1.5deg);opacity:.7}50%{transform:translateY(-55vh) translate(20px) rotate(4deg);opacity:.55}60%{transform:translateY(-66vh) translate(-14px) rotate(-2.5deg);opacity:.4}70%{transform:translateY(-77vh) translate(12px) rotate(2deg);opacity:.25}80%{transform:translateY(-88vh) translate(-6px) rotate(-1deg);opacity:.12}to{transform:translateY(-115vh) translate(18px) rotate(3deg);opacity:0}}@keyframes balloon-away-right{0%{transform:translateY(0) translate(0) rotate(0);opacity:1}10%{transform:translateY(-11vh) translate(-12px) rotate(-1.5deg);opacity:1}20%{transform:translateY(-22vh) translate(14px) rotate(2.5deg);opacity:.95}30%{transform:translateY(-33vh) translate(-18px) rotate(-3deg);opacity:.85}40%{transform:translateY(-44vh) translate(10px) rotate(1.5deg);opacity:.7}50%{transform:translateY(-55vh) translate(-22px) rotate(-4deg);opacity:.55}60%{transform:translateY(-66vh) translate(16px) rotate(2.5deg);opacity:.4}70%{transform:translateY(-77vh) translate(-10px) rotate(-2deg);opacity:.25}80%{transform:translateY(-88vh) translate(8px) rotate(1deg);opacity:.12}to{transform:translateY(-115vh) translate(-14px) rotate(-2deg);opacity:0}}@keyframes balloon-away-center{0%{transform:translateY(0) translate(0) rotate(0);opacity:1}10%{transform:translateY(-11vh) translate(-8px) rotate(-1deg);opacity:1}20%{transform:translateY(-22vh) translate(10px) rotate(2deg);opacity:.95}30%{transform:translateY(-33vh) translate(-14px) rotate(-2.5deg);opacity:.85}40%{transform:translateY(-44vh) translate(6px) rotate(1deg);opacity:.7}50%{transform:translateY(-55vh) translate(-16px) rotate(-3deg);opacity:.55}60%{transform:translateY(-66vh) translate(12px) rotate(2deg);opacity:.4}70%{transform:translateY(-77vh) translate(-8px) rotate(-1.5deg);opacity:.25}80%{transform:translateY(-88vh) translate(10px) rotate(1deg);opacity:.12}to{transform:translateY(-115vh) translate(-10px) rotate(-1.5deg);opacity:0}}.fly-away-1{animation:balloon-away-left 3s linear forwards}.fly-away-2{animation:balloon-away-right 3s linear forwards}.fly-away-3{animation:balloon-away-center 2.8s linear forwards}@media(max-width:768px){body{padding:0 1.5rem}.bento-grid,.bento-column{gap:.75rem}.bento-card{border-radius:36px}}
