@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Noto+Sans+SC:wght@400;500;700&display=swap";:root{color:#f2f5f7;background:#c6c7c4;color-scheme:dark;font-family:Manrope,Noto Sans SC,ui-sans-serif,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #07121f;--warm: #f4f0e8;--muted: #aebbc7;--indigo: #9ca8ff;--teal: #77d7c3;--coral: #f0a16f;--shadow: rgba(5, 14, 25, .32)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:#c6c7c4}button,a{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}#canvas-host,#canvas-host canvas{position:fixed;inset:0;z-index:0;width:100%;height:100%;display:block}#portfolio-ui{position:fixed;inset:0;z-index:1;overflow:hidden;pointer-events:none}#portfolio-ui:before{position:absolute;inset:0;content:"";pointer-events:none;background:linear-gradient(90deg,rgba(5,16,28,.34),transparent 42%),linear-gradient(0deg,rgba(7,18,31,.38),transparent 31%)}#portfolio-ui:after{position:absolute;right:5vw;top:11vh;width:18rem;height:18rem;content:"";border:1px solid rgba(156,168,255,.13);border-radius:50%;opacity:.55;transform:rotate(18deg) scaleY(.52);pointer-events:none}.portfolio-header{position:absolute;z-index:5;inset:0 0 auto;display:flex;align-items:center;gap:clamp(1.3rem,4vw,4rem);min-height:5.2rem;padding:0 clamp(1.2rem,4vw,4.8rem);border-bottom:1px solid rgba(11,31,48,.18);background:#eff2ef3d;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);pointer-events:auto}.portfolio-brand{display:flex;align-items:baseline;gap:.75rem;min-width:max-content}.brand-mark{color:var(--ink);font-size:clamp(1.55rem,2.4vw,2rem);font-weight:800;letter-spacing:-.12em;line-height:1}.brand-dot{color:var(--coral)}.brand-caption,.portfolio-nav,.scene-status,.module-kicker,.portfolio-footer-hint,.ui-action{font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.09em;text-transform:uppercase}.brand-caption{color:#08142294;font-size:.58rem;letter-spacing:.14em}.intro-typewriter{display:inline-flex;align-items:baseline;min-width:min(24rem,34vw);color:var(--ink);font:.66rem DM Mono,ui-monospace,monospace;letter-spacing:.045em;white-space:nowrap}.intro-typewriter[hidden]{display:none}.typewriter-cursor{display:inline-block;margin-left:.08rem;color:var(--coral);animation:cursor-blink .9s steps(1,end) infinite}.portfolio-nav{display:flex;align-items:center;gap:clamp(.8rem,2.4vw,2.2rem);margin-left:auto}.portfolio-nav button{border:0;background:transparent;cursor:pointer}.portfolio-nav button{position:relative;padding:.7rem 0;color:#08142294;font-size:.66rem;transition:color .18s ease,transform .18s ease}.portfolio-nav button:after{position:absolute;right:0;bottom:.3rem;left:0;height:2px;content:"";background:var(--indigo);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.portfolio-nav button:hover,.portfolio-nav button.is-active{color:var(--ink);transform:translateY(-1px)}.portfolio-nav button.is-active:after{transform:scaleX(1)}.scene-status{min-width:8.6rem;color:#0814228a;font-size:.56rem;text-align:right;transition:color .18s ease}.scene-status:before{display:inline-block;width:.45rem;height:.45rem;margin-right:.45rem;content:"";border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px #77d7c324}.scene-status.is-busy:before{background:var(--coral);box-shadow:0 0 0 4px #f0a16f24}.scene-status[data-tone=error]:before{background:#d96c70}.module-panel{position:absolute;top:6.2rem;right:clamp(1.2rem,5.2vw,6rem);bottom:clamp(4.9rem,9vh,7.2rem);width:min(31rem,calc(100vw - 9rem));overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:clamp(1.35rem,2.5vw,2.2rem);border:1px solid rgba(232,244,248,.3);border-radius:1rem;background:linear-gradient(135deg,#091828d6,#0d1e30ab);box-shadow:0 1.7rem 4rem var(--shadow),inset 0 1px #ffffff1a;-webkit-backdrop-filter:blur(18px) saturate(1.12);backdrop-filter:blur(18px) saturate(1.12);pointer-events:auto;transform:translateY(0);transition:border-color .24s ease,transform .24s ease,opacity .24s ease}.module-panel.is-closeup-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translate(1.3rem)}.module-panel::-webkit-scrollbar,.experience-timeline::-webkit-scrollbar{width:.35rem}.module-panel::-webkit-scrollbar-thumb,.experience-timeline::-webkit-scrollbar-thumb{background:#9ca8ff61;border-radius:999px}.module-panel.is-updating{border-color:#9ca8ff8c;transform:translateY(-.18rem)}.panel-index{display:flex;align-items:center;gap:.6rem;margin-bottom:clamp(1.2rem,3vh,2rem);color:#eef4f794;font:.58rem DM Mono,ui-monospace,monospace;letter-spacing:.1em}.index-line{width:2.5rem;height:1px;background:linear-gradient(90deg,var(--coral),transparent)}.project-top-controls{display:inline-flex;align-items:center;gap:.32rem;margin-left:auto;padding:.18rem .22rem .18rem .42rem;border:1px solid rgba(156,168,255,.26);border-radius:999px;background:#9ca8ff0f}.project-top-controls[hidden]{display:none}.project-top-action{display:grid;place-items:center;width:1.45rem;height:1.35rem;padding:0;border:0;border-radius:999px;background:transparent;color:#d2d7ff;cursor:pointer;font:.78rem/1 DM Mono,ui-monospace,monospace;transition:background .18s ease,color .18s ease,transform .18s ease}.project-top-action:hover,.project-top-action:focus-visible{background:#f0a16f33;color:#ffd1b0;outline:none;transform:translateY(-1px)}.project-top-count{min-width:2.7rem;color:#eef4f78f;font-size:.5rem;text-align:center}.module-kicker{margin:0 0 .8rem;color:var(--teal);font-size:.61rem}.intro-manifesto{display:grid;gap:.1rem;margin:0 0 1.45rem;padding:.85rem 0 1rem;border-top:1px solid rgba(240,161,111,.42);border-bottom:1px solid rgba(232,244,248,.14);overflow:hidden}.intro-manifesto[hidden]{display:none}.intro-manifesto-line{display:block;color:#f5efe4f5;font:500 clamp(1.05rem,1.7vw,1.45rem)/1.2 "DM Mono",ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.045em;opacity:0;transform:translateY(.65rem)}.intro-manifesto-line:first-letter{color:var(--coral)}.intro-manifesto.is-playing .intro-manifesto-line{animation:manifesto-line-in .62s cubic-bezier(.2,.8,.2,1) both}.intro-manifesto.is-playing .intro-manifesto-line:nth-child(2){animation-delay:.1s}.intro-manifesto.is-playing .intro-manifesto-line:nth-child(3){animation-delay:.2s}.intro-manifesto.is-playing .intro-manifesto-line:nth-child(4){animation-delay:.3s}.intro-manifesto.is-exiting{animation:manifesto-exit .46s cubic-bezier(.4,0,1,1) both}.module-panel.is-manifesto-active #module-title,.module-panel.is-manifesto-active #module-subtitle,.module-panel.is-manifesto-active #module-body,.module-panel.is-manifesto-active #module-timeline,.module-panel.is-manifesto-active #module-tags,.module-panel.is-manifesto-active #module-actions{opacity:0;pointer-events:none;transform:translateY(.45rem)}.module-panel.is-manifesto-revealed #module-title,.module-panel.is-manifesto-revealed #module-subtitle,.module-panel.is-manifesto-revealed #module-body,.module-panel.is-manifesto-revealed #module-timeline,.module-panel.is-manifesto-revealed #module-tags,.module-panel.is-manifesto-revealed #module-actions{animation:intro-content-reveal .62s cubic-bezier(.2,.8,.2,1) both}.module-panel.is-manifesto-revealed #module-subtitle{animation-delay:70ms}.module-panel.is-manifesto-revealed #module-body{animation-delay:.13s}.module-panel.is-manifesto-revealed #module-timeline{animation-delay:.19s}.module-panel.is-manifesto-revealed #module-tags{animation-delay:.25s}.module-panel.is-manifesto-revealed #module-actions{animation-delay:.31s}.module-panel h1{max-width:11ch;margin:0;color:var(--warm);font-size:clamp(2.25rem,4.2vw,4.8rem);font-weight:700;line-height:.94;letter-spacing:-.085em}.module-subtitle{max-width:32rem;margin:1rem 0 0;color:#d8e0e3;font-size:clamp(.94rem,1.45vw,1.16rem);line-height:1.5}.module-body{max-width:31rem;margin-top:1.15rem;color:var(--muted);font-size:.86rem;line-height:1.7}.module-body p{margin:0}.module-body p+p{margin-top:.45rem}.module-detail,.project-detail{color:#d8e0e39e;font-size:.72rem}.module-action-hint{color:#d8e0e38c;font:.58rem/1.5 DM Mono,ui-monospace,monospace;letter-spacing:.035em}.tech-stack-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:1.25rem}.tech-stack-grid[hidden]{display:none}.tech-stack-card{min-width:0;padding:.7rem;border:1px solid rgba(232,244,248,.14);background:#ffffff0a}.tech-stack-label{margin:0 0 .5rem;color:#b8e4dcc2;font:.52rem DM Mono,ui-monospace,monospace;letter-spacing:.08em}.tech-stack-items{display:flex;flex-wrap:wrap;gap:.28rem}.tech-stack-items span{padding:.23rem .3rem;border:1px solid rgba(156,168,255,.25);color:#f2f5f7cc;font-size:.61rem;line-height:1.25}.project-media-heading{display:flex;align-items:center;gap:.55rem;color:#b8e4dcb8;font:.56rem DM Mono,ui-monospace,monospace;letter-spacing:.1em}.project-detail-content{margin-top:.9rem;color:#d8e0e3b8;font-size:.74rem;line-height:1.65}.project-detail-content h3,.project-detail-content h4{margin:1.15rem 0 .35rem;color:var(--warm);font-size:.78rem;line-height:1.35}.project-detail-content h3:first-child{margin-top:0}.project-detail-content p{margin:.5rem 0}.project-detail-content ul{margin:.4rem 0 .7rem;padding-left:1.1rem}.project-detail-content li{margin:.24rem 0;padding-left:.1rem}.project-detail-content strong{color:var(--warm);font-weight:600}.project-detail-content code{padding:.08rem .22rem;border:1px solid rgba(119,215,195,.2);background:#77d7c314;color:#b8e4dc;font:.68rem DM Mono,ui-monospace,monospace}.project-detail-content pre{overflow-x:auto;margin:.7rem 0;padding:.7rem;border:1px solid rgba(232,244,248,.14);background:#040d1699;color:#d8e0e3;font:.64rem/1.55 DM Mono,ui-monospace,monospace}.project-detail-content pre code{padding:0;border:0;background:transparent;color:inherit}.project-inline-link{color:#b8e4dc;text-decoration:underline;text-decoration-color:#77d7c36b;text-underline-offset:.15em}.project-detail-content figure{margin:.8rem 0}.project-detail-content figure img{display:block;width:100%;max-height:13rem;border:1px solid rgba(232,244,248,.18);background:#0b1219;object-fit:cover}.project-detail-content figcaption{margin-top:.3rem;color:#d8e0e380;font-size:.62rem}.project-detail-loading{color:#d8e0e380;font:.62rem DM Mono,ui-monospace,monospace}.project-media{margin-top:1rem}.project-media-heading{margin-bottom:.55rem}.project-demo{display:block;width:100%;max-height:12rem;border:1px solid rgba(232,244,248,.2);background:#0b1219;object-fit:cover}.creativity-showcase{margin-top:1.45rem}.creativity-showcase[hidden]{display:none}.creativity-showcase-heading{display:flex;align-items:center;gap:.55rem;margin-bottom:.65rem;color:#b8e4dcb8;font:.56rem DM Mono,ui-monospace,monospace;letter-spacing:.1em}.creativity-showcase-list{display:grid;gap:.65rem}.creativity-entry{display:grid;grid-template-columns:5.8rem 1fr;gap:.75rem;padding:.56rem;border:1px solid rgba(232,244,248,.14);background:#ffffff0b;cursor:pointer;outline:none;transition:border-color .18s ease,background .18s ease,transform .18s ease}.creativity-entry:hover,.creativity-entry:focus-visible,.creativity-entry.is-selected{border-color:#77d7c3ad;background:#77d7c31a;transform:translate(-.16rem)}.creativity-entry-cover{width:5.8rem;height:6.7rem;object-fit:cover;object-position:center;border:1px solid rgba(255,255,255,.16);background:#0d1721}.creativity-entry-copy{min-width:0}.creativity-entry-index{margin:0;color:var(--coral);font:.55rem DM Mono,ui-monospace,monospace;letter-spacing:.08em}.creativity-entry h2{margin:.2rem 0 0;color:var(--warm);font-size:.94rem;line-height:1.15;letter-spacing:-.04em}.creativity-entry-copy>p:not(.creativity-entry-index){display:-webkit-box;overflow:hidden;margin:.35rem 0 0;color:#d8e0e3a6;font-size:.67rem;line-height:1.48;-webkit-box-orient:vertical;-webkit-line-clamp:3}.creativity-entry-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.45rem}.creativity-entry-tags span{padding:.2rem .28rem;border:1px solid rgba(156,168,255,.3);color:#c8ceff;font:.5rem DM Mono,ui-monospace,monospace}.creativity-entry-open{margin-top:.52rem;padding:.25rem 0;border:0;border-bottom:1px solid rgba(240,161,111,.55);background:transparent;color:#ffd1b0;cursor:pointer;font:.54rem DM Mono,ui-monospace,monospace;letter-spacing:.04em}.creativity-experience{position:fixed;z-index:2;top:5.2rem;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:.65rem;padding:clamp(.9rem,2vw,1.6rem) clamp(1.2rem,4vw,4.8rem) 1.4rem;background:linear-gradient(180deg,#07121fad,#07121feb);pointer-events:auto;animation:closeup-experience-in .46s cubic-bezier(.2,.8,.2,1) both}.creativity-experience[hidden]{display:none}.experience-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.4rem}.experience-kicker{margin:0;color:var(--teal);font:.56rem DM Mono,ui-monospace,monospace;letter-spacing:.11em}.experience-title{margin:.18rem 0 0;color:var(--warm);font-size:.92rem;font-weight:600}.experience-exit{display:inline-flex;align-items:center;gap:.65rem;min-height:2.4rem;padding:.58rem .82rem;border:1px solid rgba(240,161,111,.64);background:#f0a16f1f;color:#ffd1b0;cursor:pointer;font:.58rem DM Mono,ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;transition:background .18s ease,transform .18s ease}.experience-exit:hover,.experience-exit:focus-visible{background:#f0a16f42;outline:none;transform:translateY(-1px)}.experience-frame{flex:1;min-height:0;overflow:hidden;border:1px solid rgba(232,244,248,.22);background:#0b1219;box-shadow:0 1.5rem 4rem #02080f61}.experience-frame iframe{display:block;width:100%;height:100%;border:0;background:#0b1219}.experience-timeline{max-height:min(34vh,22rem);overflow-y:auto;margin-top:1.55rem;padding:.2rem .55rem .15rem 0;overscroll-behavior:contain}.experience-timeline[hidden]{display:none}.timeline-heading{display:flex;align-items:center;gap:.55rem;margin-bottom:.75rem;color:#b8e4dcb8;font:.56rem DM Mono,ui-monospace,monospace;letter-spacing:.1em}.timeline-rule{width:1.9rem;height:1px;background:var(--coral);opacity:.8}.experience-timeline ol{display:grid;gap:.05rem;margin:0;padding:0;list-style:none}.experience-item{display:grid;grid-template-columns:5.9rem 1fr;gap:.85rem;padding:.78rem .2rem .84rem 0;border-top:1px solid rgba(232,244,248,.12);animation:timeline-reveal .52s cubic-bezier(.2,.8,.2,1) both}.experience-item time{color:var(--coral);font:.58rem DM Mono,ui-monospace,monospace;letter-spacing:.02em}.experience-item strong{display:block;color:#e7eef0;font-size:.76rem;font-weight:600;line-height:1.4}.experience-item p{margin:.25rem 0 0;color:#d8e0e3a3;font-size:.69rem;line-height:1.55}.experience-item:nth-child(2){animation-delay:55ms}.experience-item:nth-child(3){animation-delay:.11s}.experience-item:nth-child(4){animation-delay:165ms}.experience-item:nth-child(5){animation-delay:.22s}.experience-item:nth-child(6){animation-delay:275ms}.experience-item:nth-child(7){animation-delay:.33s}.interests-certificates{margin-top:1.45rem}.interests-certificates[hidden]{display:none}.interests-certificates-heading{display:flex;align-items:center;gap:.55rem;margin-bottom:.65rem;color:#b8e4dcb8;font:.56rem DM Mono,ui-monospace,monospace;letter-spacing:.1em}.interests-certificates-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.interest-certificate{min-width:0;overflow:hidden;border:1px solid rgba(232,244,248,.16);background:#ffffff0d}.interest-certificate-photo,.interest-certificate-image{display:block;width:100%;aspect-ratio:1.48}.interest-certificate-photo{object-fit:contain;background:#101820}.interest-certificate-image{object-fit:cover;background:#f5f2e9;border-top:1px solid rgba(232,244,248,.12)}.interest-certificate-copy{padding:.52rem .58rem .62rem}.interest-certificate-copy h2{margin:0;color:var(--warm);font-size:.72rem;line-height:1.25}.interest-certificate-copy p{margin:.28rem 0 0;color:#d8e0e394;font:.52rem/1.45 DM Mono,ui-monospace,monospace}.module-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.25rem}.module-tags span{padding:.34rem .48rem;border:1px solid rgba(119,215,195,.28);color:#b8e4dc;font:.56rem DM Mono,ui-monospace,monospace;letter-spacing:.06em}.module-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:1.45rem}.ui-action{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-height:2.7rem;padding:.72rem .92rem;border:1px solid rgba(240,161,111,.62);background:transparent;color:#ffd1b0;cursor:pointer;font-size:.61rem;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.ui-action:hover{border-color:var(--coral);background:#f0a16f26;transform:translateY(-1px)}.ui-action-primary{background:var(--coral);color:#102031;font-weight:600}.ui-action-primary:hover{background:#ffc095;color:#102031}.ui-action-secondary{border-color:#9ca8ff6b;color:#d2d7ff}.project-links{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.55rem}.social-links{position:absolute;left:clamp(1.2rem,4.5vw,5rem);bottom:clamp(1.5rem,4.5vh,3rem);display:flex;gap:.55rem;pointer-events:auto}.social-link{display:grid;place-items:center;width:2.35rem;height:2.35rem;border:1px solid rgba(8,20,34,.25);border-radius:50%;color:#0814229e;background:#f5f7f529;transition:color .18s ease,border-color .18s ease,background .18s ease,transform .18s ease}.social-link:hover,.social-link:focus-visible{border-color:var(--indigo);color:var(--ink);background:#9ca8ff33;outline:none;transform:translateY(-2px)}.social-link svg{width:1rem;height:1rem}.portfolio-footer-hint{position:absolute;right:clamp(1.2rem,4.5vw,5rem);bottom:1.9rem;display:flex;align-items:center;gap:.65rem;color:#08142285;font-size:.55rem;pointer-events:none}.scroll-glyph{display:grid;place-items:center;width:1.45rem;height:1.45rem;border:1px solid rgba(8,20,34,.25);border-radius:50%;color:var(--coral);font-size:.9rem}#ui-status{max-width:18rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.debug-only{display:none}html.debug-mode .debug-only{display:block}html.debug-mode #debug-panel{position:fixed;z-index:4;top:1rem;left:1rem;width:min(430px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto;padding:1rem;border:1px solid rgba(255,255,255,.22);border-radius:.9rem;background:#0c161feb;box-shadow:0 1rem 3rem #00000042;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:auto}html.debug-mode #debug-panel[hidden]{display:block}html.debug-mode #portfolio-ui{z-index:2}.panel-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.eyebrow,.group-label,dt{margin:0;color:#aeb7bd;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase}html.debug-mode #debug-panel h1{margin:.4rem 0 0;font-size:1.1rem}.badge{padding:.3rem .5rem;border-radius:999px;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase}.badge.pending{color:#e3c982;background:#e3c9821f}.badge.success{color:#a8e4bc;background:#50c07826}.badge.error{color:#ffb4a9;background:#dc46372e}.control-group{margin-top:1rem}.button-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;margin-top:.45rem}.button-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}html.debug-mode #debug-panel button{min-height:2rem;border:1px solid rgba(255,255,255,.16);border-radius:.45rem;color:#f5f7f8;background:#ffffff14;cursor:pointer;font-size:.72rem}.control-row{display:flex;gap:.4rem;margin-top:.4rem}.control-row>button{flex:1}.npr-group,.dof-group{padding-top:.7rem;border-top:1px solid rgba(255,255,255,.12)}.npr-toggles{margin-top:.4rem}.npr-sliders{display:grid;gap:.4rem;margin-top:.6rem}.npr-sliders label{display:grid;grid-template-columns:6.5rem minmax(0,1fr) 3rem;gap:.45rem;align-items:center;color:#cbd2d5;font-size:.65rem}.npr-sliders input{width:100%;accent-color:#c9a987}.npr-sliders output,dd{color:#f2f5f6;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.65rem;text-align:right}.debug-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem .8rem;margin:1rem 0 0;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.12)}.debug-grid>div{min-width:0}dd{margin:.2rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status{min-height:1rem;margin:.8rem 0 0;color:#c6ced3;font-size:.68rem}.plane-debug{max-height:12rem;overflow:auto;margin-top:.6rem;padding:.6rem;background:#0003;font-size:.6rem;white-space:pre-wrap}.capture-mode #portfolio-ui{display:none}@keyframes cursor-blink{0%,45%{opacity:1}46%,to{opacity:.18}}@keyframes manifesto-line-in{0%{opacity:0;transform:translateY(.65rem)}to{opacity:1;transform:translateY(0)}}@keyframes manifesto-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.35rem)}}@keyframes intro-content-reveal{0%{opacity:0;transform:translateY(.45rem)}to{opacity:1;transform:translateY(0)}}@keyframes timeline-reveal{0%{opacity:0;transform:translate(.55rem)}to{opacity:1;transform:translate(0)}}@keyframes closeup-experience-in{0%{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.portfolio-header{gap:1rem;padding-inline:1.2rem}.brand-caption,.scene-status{display:none}.portfolio-nav{gap:1rem}.module-panel{top:6rem;right:1.2rem;bottom:4.8rem;width:min(31rem,calc(100vw - 4.5rem))}.creativity-experience{top:5.2rem;padding-inline:1.2rem}.social-links{left:1.2rem}.portfolio-footer-hint{right:1.2rem}}@media(max-width:620px){.portfolio-header{min-height:4.4rem}.portfolio-nav{gap:.55rem;overflow-x:auto;scrollbar-width:none}.portfolio-nav::-webkit-scrollbar{display:none}.portfolio-nav button{font-size:.56rem}.module-panel{top:calc(4.4rem + .7rem);right:1rem;bottom:4.2rem;width:auto;max-height:none;overflow:auto;padding:1.15rem}.module-panel h1{font-size:clamp(2.1rem,12vw,3.2rem)}.project-demo{max-height:10rem}.tech-stack-grid,.interests-certificates-grid{grid-template-columns:1fr}.creativity-entry{grid-template-columns:4.8rem 1fr}.creativity-entry-cover{width:4.8rem;height:6rem}.creativity-experience{top:4.4rem;padding:.7rem .8rem .85rem}.experience-toolbar{align-items:flex-start}.experience-title{max-width:13rem;font-size:.78rem}.experience-exit{min-height:2.15rem;padding:.48rem .58rem;font-size:.5rem}.social-links{left:1.2rem;bottom:1.45rem}.portfolio-footer-hint{right:auto;left:5.7rem;bottom:1.45rem}#ui-status{display:none}}@media(max-width:620px){.module-panel{top:auto;right:.75rem;bottom:4.1rem;left:.75rem;width:auto;max-height:42vh;padding:.9rem;border-radius:.85rem;background:linear-gradient(135deg,#091828bd,#0d1e308f);-webkit-backdrop-filter:blur(10px) saturate(1.04);backdrop-filter:blur(10px) saturate(1.04)}.module-panel h1{font-size:clamp(1.85rem,10vw,2.8rem)}.module-body{max-height:8.5rem;overflow-y:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
