@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600&family=Playfair+Display:wght@400;500;600&display=swap");:root{--ink:#2c2cd6;--ink-dark:#1a1a86;--text:#1f1f28;--muted:#5b5f78;--surface:#f7f7fb;--line:rgba(46,52,102,.2);--dark:#0b0b12}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Manrope,sans-serif;color:var(--text);background:var(--surface);min-height:100vh;overflow:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit}.app{display:flex;justify-content:flex-end;height:100vh;width:100%;position:relative;transition:background .4s ease}.visual{position:fixed;overflow:hidden;z-index:0;width:100%}.visual,.visual-surface{inset:0;pointer-events:none}.visual-surface{position:absolute;background:radial-gradient(circle at 20% 20%,#2a2a4b,#0b0b12 70%)}.webgl{width:100%;height:100%;display:block}.visual-surface:after,.webgl{position:absolute;inset:0;pointer-events:none}.visual-surface:after{content:"";background:radial-gradient(circle at 30% 60%,rgba(255,180,200,.25),transparent 60%);opacity:.8;transition:opacity .4s ease,background .4s ease}.app[data-theme=one] .visual-surface:after{background:radial-gradient(circle at 30% 60%,rgba(255,180,200,.35),transparent 60%)}.app[data-theme=two] .visual-surface:after{background:radial-gradient(circle at 30% 60%,rgba(140,120,255,.28),transparent 60%)}.app[data-theme=three] .visual-surface:after{background:radial-gradient(circle at 30% 60%,rgba(120,220,210,.3),transparent 60%)}.visual-overlay{position:relative;z-index:2;padding:32px 40px;color:#f1eef9;display:flex;justify-content:space-between;align-items:flex-start;width:100%}.menu-trigger-container,.visual-overlay{pointer-events:auto}.menu-trigger{width:44px;height:44px;border-radius:50%;background:#fff;border:none;display:flex;align-items:center;justify-content:center;color:#000;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.1);transition:transform .3s ease,box-shadow .3s ease,background .3s ease,color .3s ease}.menu-trigger:hover{background:var(--ink);color:#fff;box-shadow:0 6px 20px rgba(44,44,214,.3)}.info-trigger-container{position:absolute;left:40px;bottom:32px;z-index:10;pointer-events:auto}.info-trigger{width:44px;height:44px;border-radius:50%;background:#fff;border:none;display:flex;align-items:center;justify-content:center;color:#000;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.1);transition:transform .3s ease,box-shadow .3s ease,background .3s ease,color .3s ease}.info-trigger:hover{background:var(--ink);color:#fff;box-shadow:0 6px 20px rgba(44,44,214,.3)}.about-overlay{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;padding:32px 40px;background:transparent}.about-header{width:100%}.about-content,.about-header{display:flex;justify-content:center}.about-content{flex:1 1;align-items:center;text-align:center;color:#fff}.about-inner{max-width:900px;padding:0 20px}.about-kicker{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:hsla(0,0%,100%,.6);display:block;margin-bottom:24px}.about-title{font-family:Playfair Display,serif;font-size:clamp(2rem,5vw,4rem);line-height:1.1;margin-bottom:64px}.about-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:60px;gap:60px;text-align:left}.about-col h3{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:hsla(0,0%,100%,.5);margin-bottom:16px}.about-col p{font-size:16px;line-height:1.6;color:hsla(0,0%,100%,.8)}.menu-overlay{position:fixed;inset:0;background:#fff;z-index:100;display:flex;flex-direction:column;padding:32px 40px}.menu-header{display:flex;justify-content:flex-end}.menu-close{width:54px;height:54px;border-radius:50%;background:var(--ink);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .3s ease}.menu-close:hover{transform:scale(1.1)}.menu-nav{flex:1 1;display:flex;align-items:center;padding-left:40px}.menu-section{display:flex;flex-direction:column;gap:24px}.menu-kicker{font-size:12px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}.menu-links{display:flex;flex-direction:column;gap:12px}.menu-link{font-family:Playfair Display,serif;font-size:clamp(3rem,8vw,6rem);background:transparent;border:none;color:var(--ink);cursor:pointer;text-align:left;line-height:1.1;display:flex;align-items:center;gap:0;transition:opacity .3s ease}.menu-arrow{font-family:Manrope,sans-serif;font-size:.5em;opacity:0;transform:translateX(-15px);width:0;transition:none}.menu-text{transition:transform .7s cubic-bezier(.16,1,.3,1)}.menu-link:hover .menu-arrow{opacity:1;transform:translateX(0);width:1.2em;transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1)}.menu-link:hover .menu-text{transform:translateX(10px)}.menu-link.disabled{opacity:.3;cursor:default}.menu-link.disabled:hover .menu-text{transform:none}.menu-footer{display:flex;gap:80px;padding-left:40px;padding-bottom:40px}.menu-footer-col{display:flex;flex-direction:column;gap:12px}.menu-footer-col span{font-size:11px;letter-spacing:.15em;color:var(--muted);text-transform:uppercase}.menu-socials{display:flex;gap:20px}.menu-socials a{font-size:14px;color:var(--ink);font-weight:500}.content{background:#fff;border-left:1px solid rgba(20,20,40,.08);z-index:10;width:min(560px,45vw);height:100vh;margin-left:auto;margin-right:0;box-shadow:-10px 0 50px rgba(0,0,0,.1);overflow-y:auto}.content,.content-inner{position:relative;display:flex;flex-direction:column}.content-inner{padding:48px 48px 120px;gap:28px}.top-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;text-transform:uppercase;letter-spacing:.22em;color:var(--muted)}.kicker{font-weight:600}.kicker,h1{color:var(--ink)}h1{font-family:Playfair Display,serif;font-size:clamp(2.2rem,3.2vw,3.6rem);line-height:1.05}.meta{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.divider{height:1px;background:var(--line)}.note{display:flex;flex-direction:column;gap:16px;color:var(--ink-dark);font-size:16px;line-height:1.7}.link{background:transparent;border:none;font-size:14px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-align:left}.emotion,.link{color:var(--ink)}.emotion{display:flex;gap:16px;align-items:center;background:linear-gradient(90deg,rgba(64,92,255,.08),rgba(64,92,255,0));padding:12px 16px;border-radius:12px;font-size:13px}.emotion .tag{font-weight:600;text-transform:uppercase;letter-spacing:.12em}.project-list{display:grid;grid-gap:0;gap:0}.project-card{display:flex;flex-direction:column;width:100%;text-align:left;border:none;background:transparent;cursor:pointer;position:relative;transition:transform .4s ease;padding-top:24px;padding-bottom:24px;border-bottom:1px solid var(--line)}.project-card:first-child{padding-top:0}.project-info{padding:0;position:relative;z-index:2}.project-card:before{content:"";position:absolute;left:-20px;right:-20px;bottom:0;height:100%;background:transparent;opacity:0;transition:opacity .4s ease,background .4s ease;pointer-events:none;z-index:0}.project-card:hover:before{opacity:1}.project-card[data-theme=one]:hover:before{background:linear-gradient(0deg,rgba(255,120,160,.1) 0,transparent 60%)}.project-card[data-theme=two]:hover:before{background:linear-gradient(0deg,rgba(100,80,255,.1) 0,transparent 60%)}.project-card[data-theme=three]:hover:before{background:linear-gradient(0deg,rgba(80,220,200,.1) 0,transparent 60%)}.project-info h2{font-family:Playfair Display,serif;color:var(--ink-dark);font-size:2rem;line-height:1.2}.project-info p{color:var(--muted);margin-top:10px;font-size:1.1rem;line-height:1.4}.project-action{margin-top:16px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);font-weight:600;display:flex;align-items:center;position:relative}.project-action .arrow{position:absolute;left:0;opacity:0;transform:translateX(-10px);transition:opacity .3s ease,transform .3s ease}.project-action .text{transform:translateX(0);transition:transform .3s ease}.project-card:hover .project-action .arrow{opacity:1;transform:translateX(0)}.project-card:hover .project-action .text{transform:translateX(18px)}.project-card:hover .project-info h2{color:var(--ink)}.content-footer{margin-top:40px;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.footer-links{display:flex;gap:16px}.modal{position:fixed;inset:0;display:grid;align-items:end;pointer-events:none;z-index:30}.modal.is-open{pointer-events:auto}.modal-backdrop{position:absolute;inset:0;background:rgba(10,10,18,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .75s cubic-bezier(.22,.8,.22,1)}.modal.is-open .modal-backdrop{opacity:1}.modal-card{position:absolute;left:0;right:0;bottom:0;margin:0;width:100vw;border-radius:24px 24px 0 0;overflow:hidden;box-shadow:0 -30px 80px rgba(10,10,18,.45);transform:translateY(100%);transform-origin:50% 100%;transition:transform .75s cubic-bezier(.22,.8,.22,1),height .7s cubic-bezier(.25,.8,.25,1),max-height .7s cubic-bezier(.25,.8,.25,1),border-radius .7s ease;height:calc(100vh - 200px);max-height:calc(100vh - 200px);display:grid;opacity:1;will-change:transform,height,opacity}.app[data-theme=one] .modal-card{background:linear-gradient(135deg,#fff5f7,#ffe0e6)}.app[data-theme=two] .modal-card{background:linear-gradient(135deg,#f3f0ff,#e0e6ff)}.app[data-theme=three] .modal-card{background:linear-gradient(135deg,#eefaf8,#d0f5f0)}.modal.is-open .modal-card{transform:translateY(0)}.app.modal-expanded .modal-card{height:100vh;max-height:100vh;border-radius:0}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:8px 28px;border-bottom:1px solid rgba(20,20,40,.08);gap:16px;background:transparent}.modal-header-left{display:flex;flex-wrap:wrap;gap:12px}.chip{font-size:9px;letter-spacing:.16em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:rgba(64,92,255,.12);color:var(--ink)}.chip.outline{background:transparent;border:1px solid rgba(64,92,255,.3)}.modal-header-right{display:flex;align-items:center;gap:10px}.reaction{font-size:9px;color:var(--muted);margin-right:8px;letter-spacing:.08em;text-transform:uppercase}.icon-btn{width:28px;height:28px;border-radius:50%;border:1px solid rgba(20,20,40,.12);background:#fff;cursor:pointer;color:var(--ink);display:flex;align-items:center;justify-content:center;transition:transform .2s ease,box-shadow .2s ease,background .4s ease,color .4s ease}.icon-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(20,20,40,.12)}.icon-btn.solid{background:var(--ink);color:#fff;border:none}.modal-body{padding:48px 64px 80px;overflow-y:auto;background:transparent}.modal-content-wrap{display:block}.modal-media-img{float:right;width:48%;margin-left:48px;margin-bottom:24px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.1)}.modal-text{display:block}.modal-title{font-family:Playfair Display,serif;color:var(--ink);font-size:clamp(2.4rem,4vw,3.6rem);margin-bottom:12px}.modal-tags{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:24px}.modal-desc{color:var(--ink-dark);margin-bottom:24px}.modal-desc,.modal-paragraph{line-height:1.25;font-size:3.2rem}.modal-paragraph{color:var(--muted);margin-bottom:20px}.modal-cta{display:inline-block;margin-top:12px;border:none;background:transparent;color:var(--ink);font-size:14px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}.projects-trigger-wrap{position:fixed;left:50%;bottom:48px;transform:translateX(-50%);z-index:10;transition:transform .6s cubic-bezier(.22,1,.36,1),opacity .6s ease}.app.projects-visible .projects-trigger-wrap{opacity:0;transform:translateX(-50%) translateY(40px);pointer-events:none}.projects-trigger{width:64px;height:64px;border-radius:50%;border:1px solid rgba(0,0,0,.05);background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.1);transition:background .5s cubic-bezier(.23,1,.32,1),color .5s cubic-bezier(.23,1,.32,1),box-shadow .5s ease}.projects-trigger:hover{background:var(--ink);color:#fff;box-shadow:0 15px 40px rgba(44,44,214,.3)}.content-close-wrap{position:-webkit-sticky;position:sticky;bottom:40px;margin-top:auto;margin-right:24px;align-self:flex-end;z-index:50;pointer-events:auto}.content-close{width:64px;height:64px;border-radius:50%;border:none;background:var(--ink);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease,background .3s ease;box-shadow:0 10px 30px rgba(44,44,214,.3)}.content-close:hover{transform:scale(1.05);background:var(--ink-dark);box-shadow:0 15px 40px rgba(44,44,214,.45)}@media (max-width:980px){.modal-media-img{float:none;width:100%;margin-left:0;margin-bottom:32px;border-radius:12px}.modal-body{padding:32px 24px}.about-grid{grid-template-columns:1fr;gap:32px}}