:root{--bg: #0a0a0a;--bg-soft: #101010;--line: #232323;--text: #f2f2f2;--muted: #b8b8b8;--card: #131313;--hover: #1b1b1b}*{box-sizing:border-box}html,body,#root{height:100%}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:radial-gradient(1400px 700px at 50% -30%,rgba(255,255,255,.08),transparent 66%),linear-gradient(180deg,#0a0a0a,#080808);font-family:Manrope,Avenir Next,Segoe UI,sans-serif}.three-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;background:radial-gradient(900px 420px at 78% 58%,rgba(18,88,194,.16),transparent 70%),radial-gradient(760px 360px at 38% 86%,rgba(10,70,145,.13),transparent 76%),linear-gradient(90deg,#010207fc,#01040cfc 58%,#020816f7)}.three-bg canvas{width:100%!important;height:100%!important;display:block;opacity:.9}.single-scroll-page{display:flex;flex-direction:column;gap:18px;padding:14px 0 12px}.flow-section{position:relative;border:1px solid #1f1f1f;border-radius:20px;background:radial-gradient(1200px 280px at 8% -24%,rgba(255,255,255,.06),transparent 60%),linear-gradient(180deg,#0d0d0deb,#090909eb);box-shadow:0 16px 34px #0000004d,inset 0 1px #ffffff0f;overflow:hidden}.flow-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.07),transparent 30%)}.container{width:min(1220px,92%);margin:0 auto;position:relative;z-index:1}.header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:#080808d6;-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2)}.nav-wrap{width:min(1220px,92%);margin:0 auto;height:66px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{color:var(--text);text-decoration:none;font-family:Sora,Avenir Next,sans-serif;font-weight:700;letter-spacing:.01em;font-size:24px}.nav,.nav-right{display:flex;align-items:center;gap:12px}.nav a{color:var(--muted);text-decoration:none;padding:8px 12px;border-radius:10px;font-size:15px;font-weight:600;border:1px solid transparent;transition:color .22s ease,border-color .22s ease,background-color .22s ease}.nav a:hover{color:var(--text);border-color:#303030;background:#ffffff0a}.nav a.active{color:var(--text);border-color:#373737;background:#ffffff0f}.theme-switch{width:38px;height:38px;border-radius:12px;border:1px solid #3a3a3a;background:#ffffff0a;color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,transform .18s ease}.theme-switch:hover{border-color:#616161;background:#ffffff1a;transform:translateY(-1px)}.home-shell{position:relative;overflow:hidden;min-height:clamp(420px,calc(100vh - 250px),540px);padding:16px 20px 18px;display:flex;align-items:center}.home-intro{width:100%;max-width:1120px;margin:0 auto}.scroll-cue{position:absolute;left:50%;bottom:2px;width:34px;height:34px;transform:translate(-50%);border-radius:999px;border:1px solid #2e2e2e;background:#0a0a0a9e;color:#f0f0f0;display:grid;place-items:center;cursor:pointer;z-index:3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .18s ease,background-color .18s ease}.scroll-cue:hover{border-color:#575757;background:#101010d1}.scroll-cue-arrow{display:block;font-size:16px;line-height:1;animation:cue-bob 1.4s ease-in-out infinite}@keyframes cue-bob{0%,to{transform:translateY(-1px)}50%{transform:translateY(3px)}}.scroll-section{scroll-margin-top:104px}.section-shell{padding:14px 20px 20px}.section-title{margin:0 0 14px;font-family:Sora,Avenir Next,sans-serif;font-size:clamp(24px,3.6vw,36px);letter-spacing:-.02em;line-height:1.08}.media-title{margin-bottom:8px}.media-intro{margin:0 0 18px;color:#cfcfcf;font-size:15px;line-height:1.52}.artwork-section{margin-top:26px}.artwork-title{margin:0 0 12px;font-family:Sora,Avenir Next,sans-serif;font-size:clamp(20px,2.8vw,28px);letter-spacing:-.01em}.artwork-carousel{position:relative;border-radius:18px;border:1px solid #2c2c2c;overflow:hidden;background:linear-gradient(180deg,#0f0f0ff2,#0a0a0af2);box-shadow:0 20px 42px #00000061,inset 0 1px #ffffff0f}.artwork-track{display:flex;width:100%}.artwork-slide{margin:0;min-width:100%;position:relative}.artwork-slide img{width:100%;height:clamp(260px,36vw,440px);object-fit:cover;display:block;filter:saturate(1.06) contrast(1.02)}.artwork-slide:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000 42%,#000000b8 92%);pointer-events:none}.artwork-caption{position:absolute;left:16px;right:16px;bottom:32px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;color:#f6f6f6;font-weight:700;font-size:clamp(16px,2.2vw,22px)}.artwork-note{position:absolute;left:16px;right:16px;bottom:10px;z-index:2;margin:0;font-size:12px;color:#f5f5f5d1}.artwork-controls{position:absolute;top:12px;right:12px;z-index:3;display:flex;gap:8px}.artwork-controls button{width:34px;height:34px;border-radius:999px;border:1px solid #3f3f3f;background:#0a0a0a99;color:#f5f5f5;font-size:20px;line-height:1;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background-color .18s ease}.artwork-controls button:hover{transform:translateY(-1px);border-color:#656565;background:#141414cc}.artwork-dots{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:8px}.artwork-dots button{width:9px;height:9px;border-radius:999px;border:none;background:#ffffff57;cursor:pointer;transition:transform .17s ease,background-color .17s ease,width .17s ease}.artwork-dots button.active{width:24px;background:#f4f4f4}.about-layout{display:grid;grid-template-columns:1fr;gap:18px;align-items:start;position:relative;z-index:1}.about-content{min-width:0;width:100%}.portrait{position:relative;aspect-ratio:4 / 5;border-radius:22px;overflow:hidden;border:1px solid #2f2f2f;background:radial-gradient(380px 180px at 50% -20%,rgba(137,198,255,.12),transparent 70%),#111;box-shadow:0 24px 60px #00000073}.portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 75%}.about-title{margin:0;font-family:Sora,Avenir Next,sans-serif;font-size:clamp(28px,3.8vw,46px);line-height:1.04;letter-spacing:-.03em}.type-cursor{display:inline-block;margin-left:2px;animation:cursor-blink .9s steps(1,end) infinite}@keyframes cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.about-lead{margin:12px 0 0;font-size:clamp(20px,2.2vw,39px);line-height:1.2;color:#e1e1e1;max-width:1050px}.about-rule{margin:18px 0;width:100%;border-top:1px solid #2d2d2d}.about-short{max-width:none;font-size:16px;line-height:1.56;color:#d6d6d6}.about-short p{margin:0 0 18px}.about-carousel-wrap{position:relative;margin-top:6px;max-width:760px;width:100%;overflow:hidden;border-radius:14px;border:1px solid #2a2a2a;background:linear-gradient(180deg,#0f0f0feb,#0b0b0beb);box-shadow:inset 0 1px #ffffff0d}.about-carousel-wrap:before,.about-carousel-wrap:after{content:"";position:absolute;top:0;bottom:0;width:48px;z-index:2;pointer-events:none}.about-carousel-wrap:before{left:0;background:linear-gradient(90deg,rgba(11,11,11,.96),transparent)}.about-carousel-wrap:after{right:0;background:linear-gradient(270deg,rgba(11,11,11,.96),transparent)}.about-carousel-track{display:flex;width:max-content;gap:10px;padding:10px;animation:about-carousel-slide 30s linear infinite}.about-carousel-track.mobile{width:100%;animation:none;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.about-carousel-track.mobile::-webkit-scrollbar{display:none}.about-carousel-wrap:hover .about-carousel-track{animation-play-state:paused}.about-carousel-item{width:150px;aspect-ratio:4 / 3;border-radius:10px;overflow:hidden;border:1px solid #2f2f2f;background:#161616;flex-shrink:0;transition:transform .24s ease,border-color .24s ease,filter .24s ease}.about-carousel-item:hover{transform:translateY(-3px) scale(1.02);border-color:#4a4a4a;filter:brightness(1.06)}.about-carousel-item img{width:100%;height:100%;object-fit:cover;display:block}.about-socials{margin-top:14px;max-width:760px;display:flex;align-items:center;gap:36px}.about-social-link{color:#fff;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:color .19s ease,transform .19s ease}.about-social-link:hover{color:#8f8f8f;transform:translateY(-1px)}@media (max-width: 900px){.about-socials{margin-top:12px;gap:28px}}@keyframes about-carousel-slide{0%{transform:translate(0)}to{transform:translate(-50%)}}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.grid-item{grid-column:span 12}@media (min-width: 980px){.about-layout{grid-template-columns:minmax(180px,320px) 1fr;gap:34px}.grid-item.six{grid-column:span 6}}.card{grid-column:span 12;text-decoration:none;color:inherit;background:linear-gradient(180deg,#121212fa,#0d0d0dfa);border:1px solid #2b2b2b;border-radius:14px;padding:16px;transition:transform .22s ease,border-color .22s ease,background-color .22s ease}.card:hover{border-color:#474747;background:linear-gradient(180deg,#1b1b1b,#111)}.card h3{margin:0 0 10px;font-size:19px;font-family:Sora,Avenir Next,sans-serif}.card p{margin:0;color:#cacaca;line-height:1.5;font-size:15px}.project-description{margin:0}.project-reference{margin-top:10px!important;color:#b3b3b3!important;font-size:13px!important;line-height:1.55!important}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;color:#ededed;background:#ffffff0f;border:1px solid #333}.tags{display:flex;flex-wrap:wrap;gap:8px}.thumb{width:100%;aspect-ratio:16/9;border-radius:10px;background:#1e1e1e;overflow:hidden;border:1px solid #2e2e2e}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000c7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;z-index:1000}.modal{width:min(1100px,92%);background:#0f0f0f;border:1px solid #343434;border-radius:16px;overflow:hidden}.modal iframe,.modal video{width:100%;aspect-ratio:16/9;display:block}.footer{color:#8d8d8d;padding:30px 0 56px;border-top:1px solid #1f1f1f;margin-top:34px;font-size:14px;display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}.footer-meta{white-space:nowrap}.footer-links{display:flex;flex-wrap:wrap;gap:8px 14px}.link{color:#f4f4f4;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#6f6f6f}.link:hover{text-decoration-color:#fff}.experience-shell{padding:16px 20px 20px}.experience-section-title{margin-bottom:14px}.timeline{position:relative;display:flex;flex-direction:column;gap:26px;padding:10px 0}.timeline-rail{position:absolute;inset:0 auto 0 50%;width:2px;transform:translate(-50%)}.timeline-rail-bg{width:100%;height:100%;background:#2a2a2a}.timeline-rail-fill{position:absolute;inset:0 0 auto 0;height:100%;transform-origin:top;background:linear-gradient(180deg,#fff,#7a7a7a)}.timeline-item{position:relative;width:calc(50% - 36px)}.timeline-item.left{align-self:flex-start}.timeline-item.right{align-self:flex-end}.timeline-dot{position:absolute;top:24px;width:14px;height:14px;border-radius:999px;background:#f8f8f8;box-shadow:0 0 0 5px #ffffff1f}.timeline-item.left .timeline-dot{right:-43px}.timeline-item.right .timeline-dot{left:-43px}.timeline-card{background:linear-gradient(180deg,#181818fa,#0d0d0dfa);border:1px solid #343434;border-radius:14px;padding:16px 16px 14px;box-shadow:0 22px 44px #00000057;transition:border-color .22s ease,transform .22s ease}.timeline-card:hover{border-color:#565656;transform:translateY(-2px)}.timeline-period{margin:0 0 8px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#a7a7a7}.timeline-card h2{margin:0;font-size:clamp(20px,2.5vw,24px);line-height:1.15;letter-spacing:-.01em}.timeline-org{margin:0;font-size:15px;color:#e7e7e7;font-weight:600}.timeline-org-row{margin-top:10px;display:flex;align-items:center;gap:10px}.org-logo{width:28px;height:28px;border-radius:999px;border:1px solid #3a3a3a;background:#141414;object-fit:cover}.timeline-bullets{margin:12px 0 14px;padding-left:18px;color:#ccc;font-size:14px;line-height:1.5;display:grid;gap:7px}.timeline-bullets li{margin:0}@media (max-width: 900px){.nav-wrap{height:auto;padding:14px 0;flex-wrap:wrap}.brand{font-size:20px}.nav-right{width:100%;justify-content:space-between;gap:8px}.nav{flex-wrap:wrap;gap:8px}.nav a{padding:6px 10px;font-size:14px}.about-lead{font-size:clamp(21px,6vw,33px)}.about-layout{gap:12px}.about-title{font-size:clamp(24px,8vw,30px);line-height:1.08}.portrait{width:min(100%,236px);max-width:236px;margin:0 auto}.portrait img{opacity:1;visibility:visible;display:block;object-position:center 38%}.about-short{max-width:100%;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.about-short p{margin:0 0 12px}.about-carousel-wrap,.about-socials{max-width:100%}.about-carousel-item{width:118px}.about-carousel-track.mobile .about-carousel-item{width:min(64vw,210px);flex:0 0 auto;scroll-snap-align:start}.about-socials{justify-content:center;gap:22px;margin-top:10px}.artwork-section{margin-top:20px}.artwork-slide img{height:clamp(190px,48vw,260px)}.artwork-caption{bottom:26px;font-size:clamp(14px,4.4vw,18px)}.artwork-controls{top:8px;right:8px}.artwork-controls button{width:30px;height:30px;font-size:18px}.single-scroll-page{gap:14px;padding:10px 0 8px}.flow-section{border-radius:16px}.home-shell{min-height:auto;display:block;padding:12px 10px;overflow:visible}.home-intro{max-width:100%}.scroll-cue{bottom:0;width:32px;height:32px}.section-shell{padding:10px 12px 16px}.section-title{font-size:clamp(22px,6.2vw,30px)}.experience-shell{padding:10px 12px 16px}.experience-section-title{margin-bottom:16px}.timeline{gap:22px;padding-left:24px}.timeline-rail{left:6px;transform:none}.timeline-item{width:100%;align-self:flex-start}.timeline-dot{left:-25px;right:auto;top:20px;width:12px;height:12px}.timeline-item.left .timeline-dot,.timeline-item.right .timeline-dot{left:-25px;right:auto}.footer{align-items:flex-start;flex-direction:column}}:root[data-theme=light]{--bg: #f2f6fc;--bg-soft: #ffffff;--line: #d6e0ee;--text: #101927;--muted: #45546a;--card: #ffffff;--hover: #e9f0fb}:root[data-theme=light] body{background:radial-gradient(1400px 700px at 50% -30%,rgba(83,157,242,.2),transparent 66%),linear-gradient(180deg,#f4f8ff,#edf3fb)}:root[data-theme=light] .three-bg{background:radial-gradient(900px 420px at 78% 58%,rgba(118,195,255,.35),transparent 72%),radial-gradient(760px 360px at 38% 86%,rgba(96,178,255,.28),transparent 76%),linear-gradient(90deg,#e9f4fff5,#dfeefff2 58%,#d2e6fcf2)}:root[data-theme=light] .three-bg canvas{opacity:.8}:root[data-theme=light] .header{background:#f4f9ffe0}:root[data-theme=light] .flow-section{border-color:#d8e3f0;background:radial-gradient(1200px 280px at 8% -24%,rgba(67,143,233,.12),transparent 60%),linear-gradient(180deg,#fffffff5,#f7fbfff2);box-shadow:0 12px 28px #0f396b14,inset 0 1px #ffffffb3}:root[data-theme=light] .flow-section:before{background:linear-gradient(135deg,rgba(255,255,255,.56),transparent 35%)}:root[data-theme=light] .nav a:hover{border-color:#c2d0e2;background:#3a7ac714}:root[data-theme=light] .nav a.active{border-color:#adc0da;background:#3a7ac71f}:root[data-theme=light] .theme-switch{border-color:#b9c8db;background:#3e82d21a}:root[data-theme=light] .theme-switch:hover{border-color:#8eaad0;background:#3e82d22e}:root[data-theme=light] .scroll-cue{border-color:#c1cde0;background:#eff6ffdb;color:#0f1f35}:root[data-theme=light] .scroll-cue:hover{border-color:#9fb8d8;background:#e3effff5}:root[data-theme=light] .about-rule{border-top-color:#cfdae8}:root[data-theme=light] .about-short{color:#334357}:root[data-theme=light] .portrait{border-color:#cbdaec;background:radial-gradient(380px 180px at 50% -20%,rgba(103,173,255,.22),transparent 70%),#f2f7ff;box-shadow:0 18px 40px #1a427321}:root[data-theme=light] .about-carousel-wrap{border-color:#c9d8ea;background:linear-gradient(180deg,#fbfefff2,#f3f8fff2);box-shadow:inset 0 1px #fffc}:root[data-theme=light] .about-carousel-wrap:before{background:linear-gradient(90deg,rgba(244,250,255,.96),transparent)}:root[data-theme=light] .about-carousel-wrap:after{background:linear-gradient(270deg,rgba(244,250,255,.96),transparent)}:root[data-theme=light] .about-carousel-item{border-color:#cad9ea;background:#f0f6ff}:root[data-theme=light] .about-social-link{color:#0f1f35}:root[data-theme=light] .about-social-link:hover{color:#5f7188}:root[data-theme=light] .card{background:linear-gradient(180deg,#fcfefffa,#f4f8fffa);border-color:#ccd9ea}:root[data-theme=light] .card:hover{border-color:#aac0db;background:linear-gradient(180deg,#fff,#eef4ff)}:root[data-theme=light] .card p{color:#405269}:root[data-theme=light] .artwork-carousel{border-color:#cad8ea;background:linear-gradient(180deg,#fcfefffa,#f1f7fff5);box-shadow:0 16px 30px #1a40701a,inset 0 1px #ffffffd9}:root[data-theme=light] .artwork-slide:after{background:linear-gradient(180deg,#fff0 40%,#11233a8c 92%)}:root[data-theme=light] .artwork-caption{color:#f8fbff}:root[data-theme=light] .artwork-note{color:#f4f9ffde}:root[data-theme=light] .artwork-controls button{border-color:#aec4e0;background:#edf6ffd1;color:#1e3f67}:root[data-theme=light] .artwork-controls button:hover{border-color:#87a8cf;background:#deedfff2}:root[data-theme=light] .artwork-dots button{background:#21548e47}:root[data-theme=light] .artwork-dots button.active{background:#1f5fa8}:root[data-theme=light] .badge{color:#173255;border-color:#bfd0e7;background:#5892d624}:root[data-theme=light] .timeline-rail-bg{background:#cedbef}:root[data-theme=light] .timeline-rail-fill{background:linear-gradient(180deg,#60aef7,#2f7fd2)}:root[data-theme=light] .timeline-dot{background:#3b8ad9;box-shadow:0 0 0 5px #458edb33}:root[data-theme=light] .timeline-card{background:linear-gradient(180deg,#fdfefffa,#f5fafffa);border-color:#cad8ea;box-shadow:0 18px 32px #1744781a}:root[data-theme=light] .timeline-card:hover{border-color:#9eb9d7}:root[data-theme=light] .timeline-period{color:#5b6c82}:root[data-theme=light] .timeline-org{color:#253a57}:root[data-theme=light] .org-logo{border-color:#c4d5ea;background:#eef5ff}:root[data-theme=light] .timeline-bullets{color:#42556e}:root[data-theme=light] .footer{color:#4f6078;border-top-color:#cfdaea}:root[data-theme=light] .link{color:#173a62;text-decoration-color:#7ea2cb}
