html,body{touch-action:manipulation}:root{background:#fff}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden;background:#fff}*,*:before,*:after{box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.app-shell{position:relative;width:100vw;height:100vh;overflow:hidden;font-family:Poppins,sans-serif;background-color:#fff;background-image:radial-gradient(ellipse 55% 40% at 10% 8%,rgba(199,125,255,.09) 0%,transparent 70%),radial-gradient(ellipse 50% 38% at 90% 90%,rgba(77,150,255,.09) 0%,transparent 70%),radial-gradient(ellipse 45% 35% at 82% 6%,rgba(255,59,107,.07) 0%,transparent 70%),radial-gradient(circle,rgba(0,0,0,.13) 1px,transparent 1px);background-size:auto,auto,auto,28px 28px}.main-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;will-change:transform;transform:translateZ(0)}.blob-touch-zone{position:absolute;inset:0;z-index:2;touch-action:none}.hero-content{position:relative;z-index:3;width:100%;height:100%;padding:clamp(1.5rem,3vw,3rem);display:flex;flex-direction:column;pointer-events:none}.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.hero-title{font-size:clamp(3rem,7vw,6.5rem);font-weight:700;letter-spacing:-.08em;line-height:.88;opacity:0;pointer-events:none;white-space:nowrap}.hero-body{flex:1;overflow:hidden;margin-top:clamp(2rem,4vw,3.5rem);pointer-events:none}.hero-body__scroll{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:5rem;pointer-events:auto;scrollbar-width:none;-ms-overflow-style:none}.hero-body__scroll::-webkit-scrollbar{display:none}.projects-wrapper{position:relative;pointer-events:auto;align-self:flex-start}.projects-link{display:flex;align-items:center;gap:6px;pointer-events:auto;background:none;border:0;padding:.5rem;margin:-.5rem;color:#111;font:inherit;font-size:clamp(.7rem,1vw,.9rem);font-weight:700;letter-spacing:.28em;cursor:pointer;transition:color .18s ease,transform .18s ease}.projects-link:hover,.projects-link:active{color:#7c3aed;transform:translateY(-2px)}.projects-link--open{color:#7c3aed}.projects-chevron{display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;transition:transform .22s cubic-bezier(.4,0,.2,1);flex-shrink:0;margin-top:1px}.projects-link--open .projects-chevron{transform:rotate(180deg)}.site-footer{position:fixed;bottom:clamp(1.5rem,3vw,2.5rem);left:clamp(1.5rem,3vw,2.5rem);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);z-index:4;pointer-events:auto}.site-footer__home{background:none;border:0;padding:.5rem;margin:-.5rem;color:#0000004d;font-family:Poppins,sans-serif;font-size:.62rem;font-weight:500;letter-spacing:.14em;cursor:pointer;transition:color .18s ease,transform .18s ease}.site-footer__home:hover,.site-footer__home:active{color:#7c3aed;transform:translateY(-2px)}.socials{position:fixed;bottom:clamp(1.5rem,3vw,2.5rem);right:clamp(1.5rem,3vw,2.5rem);padding-bottom:env(safe-area-inset-bottom,0px);padding-right:env(safe-area-inset-right,0px);z-index:4;display:flex;align-items:center;gap:clamp(1.1rem,1.8vw,1.5rem);pointer-events:auto}.socials a{width:clamp(1.75rem,2.4vw,2.1rem);height:clamp(1.75rem,2.4vw,2.1rem);color:#111;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:.5rem;margin:-.5rem;transition:color .18s ease,transform .18s ease}.socials svg{width:100%;height:100%;fill:currentColor;display:block}.socials a:hover,.socials a:active{color:#7c3aed;transform:translateY(-2px)}@media(max-width:760px){.hero-content{padding-bottom:5rem}}.dropdown{position:absolute;top:calc(100% + 10px);right:0;background:#0d0d0df5;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden;min-width:180px;opacity:0;transform:translateY(-10px) scale(.96);pointer-events:none;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1);z-index:20;box-shadow:0 8px 32px #00000047,0 2px 8px #0000002e,inset 0 1px #ffffff0f}.dropdown--open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.dropdown__item{position:relative;display:block;width:100%;padding:.78rem 1.25rem;background:none;border:0;outline:none;color:#e8e8e8;font-family:Poppins,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.22em;text-align:left;cursor:pointer;transition:color .16s ease;overflow:hidden;--gx: 50%;--gy: 50%}.dropdown__item+.dropdown__item{border-top:1px solid rgba(255,255,255,.055)}.dropdown__item:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 120% at var(--gx) var(--gy),rgba(124,58,237,.28) 0%,rgba(77,150,255,.12) 40%,transparent 70%);opacity:0;transition:opacity .16s ease;pointer-events:none}.dropdown__item:after{content:"";position:absolute;left:0;top:18%;bottom:18%;width:2px;background:#7c3aed;border-radius:0 2px 2px 0;opacity:0;transform:scaleY(0);transform-origin:center;transition:opacity .16s ease,transform .2s cubic-bezier(.34,1.56,.64,1)}.dropdown__item:hover{color:#7c3aed}.dropdown__item:hover:before{opacity:1}.dropdown__item:hover:after{opacity:1;transform:scaleY(1)}.dropdown__item:active{color:#9a5fff}.project-card{display:flex;flex-direction:column;gap:1.1rem;max-width:520px}.project-tagline{margin:0;font-size:clamp(.95rem,1.8vw,1.15rem);font-weight:500;color:#111;line-height:1.5;letter-spacing:-.01em}.project-tags{display:flex;flex-wrap:wrap;gap:.45rem}.project-tags span{display:inline-flex;align-items:center;padding:.28rem .75rem;border-radius:999px;border:1.5px solid rgba(0,0,0,.12);font-size:.62rem;font-weight:700;letter-spacing:.18em;color:#444;background:#fff9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-transform:uppercase}.project-status{display:inline-flex;align-items:center;gap:.45rem;font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.project-status--wip{color:#b45309}.project-status--wip .status-dot{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b2e;animation:pulse 2s ease infinite}.project-status--soon{color:#5b21b6}.project-status--soon .status-dot{background:#7c3aed;box-shadow:0 0 0 3px #7c3aed2e}.project-status--live{color:#065f46}.project-status--live .status-dot{background:#10b981;box-shadow:0 0 0 3px #10b9812e;animation:pulse 2s ease infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #f59e0b2e}50%{box-shadow:0 0 0 6px #f59e0b14}}.project-description{margin:0;font-size:clamp(.82rem,1.4vw,.92rem);color:#00000085;line-height:1.7;max-width:440px}
