*{padding:0;margin:0;box-sizing:border-box}:root{--canvas-vh: 100dvh;--section-vh: 100dvh}html{scroll-snap-type:y mandatory;scroll-padding-top:0px;scroll-behavior:smooth;overflow-y:scroll;overflow-x:clip}body{background:linear-gradient(to bottom,#09051d,#1f2b4a);color:#fff;font-family:DynaPuff,system-ui;font-optical-sizing:auto;font-weight:400;font-style:normal;font-variation-settings:"wdth" 100;min-height:var(--section-vh);overflow-x:clip}html.loading-scroll-lock,body.loading-scroll-lock{overflow:hidden!important;overscroll-behavior:none;touch-action:none}a{text-decoration:none;color:#fff}.container{max-width:1536px;padding-left:16px;padding-right:16px;margin-left:auto;margin-right:auto;pointer-events:none}.gesture{position:fixed;width:100dvw;height:var(--canvas-vh);z-index:1;pointer-events:none;touch-action:pan-y}section{height:var(--section-vh);scroll-snap-align:center;pointer-events:none}@keyframes pulseRing{0%{box-shadow:0 0 #e7e77c66}70%{box-shadow:0 0 0 10px #e7e77c00}to{box-shadow:0 0 #e7e77c00}}@keyframes barBounce1{0%,to{height:3px}50%{height:12px}}@keyframes barBounce2{0%,to{height:8px}50%{height:4px}}@keyframes barBounce3{0%,to{height:5px}50%{height:14px}}.music-toggle{position:fixed;top:20px;right:20px;width:46px;height:46px;background:#ffffff14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);color:#ffffffd9;display:flex;align-items:center;justify-content:center;border-radius:14px;cursor:pointer;z-index:1000;transition:background .3s ease,border-color .3s ease;font:inherit;padding:0}.music-toggle:hover{background:#ffffff24;border-color:#ffffff40}.music-toggle.is-playing{animation:pulseRing 2s ease infinite;border-color:#e7e77c59}.music-toggle-icon{display:flex;align-items:center;justify-content:center}.music-bars{position:absolute;bottom:4px;right:4px;display:flex;align-items:flex-end;gap:2px;height:14px}.music-bar{width:2px;background:#e7e77ccc;border-radius:1px}.music-bar:nth-child(1){animation:barBounce1 .8s ease-in-out infinite}.music-bar:nth-child(2){animation:barBounce2 .7s ease-in-out infinite .15s}.music-bar:nth-child(3){animation:barBounce3 .9s ease-in-out infinite .3s}@media (max-width: 768px){:root{--canvas-vh: 100lvh;--section-vh: 100svh}html{scroll-snap-type:y mandatory;scroll-padding-top:0px}section{height:var(--section-vh);min-height:var(--section-vh);scroll-snap-align:center;scroll-snap-stop:always}section#portfolio{scroll-snap-align:center}.music-toggle{top:auto;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));width:44px;height:44px}}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.loading-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;overflow:hidden;background:#09051d}.loading-landing-title{position:absolute;top:5%;left:16px;right:16px;margin:0;font-size:92px;color:#e7e77c;font-weight:700;text-shadow:4px 4px 8px rgba(0,0,0,.8);text-align:center;white-space:nowrap;pointer-events:none}.loading-status{position:absolute;left:16px;right:16px;bottom:calc(6% + env(safe-area-inset-bottom,0px));width:min(100%,420px);margin-left:auto;margin-right:auto;display:grid;gap:10px}.loading-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.loading-progress-label,.progress-text{color:#ffffffe0;font-size:1rem;line-height:1;letter-spacing:.08em;font-weight:600}.loading-progress-label{text-transform:uppercase}.progress-text{min-width:3.5ch;text-align:right}.progress-bar{width:100%;height:6px;overflow:hidden;border-radius:999px;background:#fff3}.progress-fill{height:100%;border-radius:999px;background:#e7e77c}@media (max-width: 1024px){.loading-landing-title{font-size:80px;top:6%}}@media (max-width: 820px){.loading-landing-title{top:8%;font-size:66px;white-space:normal}.loading-status{bottom:calc(8% + env(safe-area-inset-bottom,0px))}}@media (max-width: 640px){.loading-landing-title{top:10%;font-size:52px}.loading-status{left:24px;right:24px;width:min(100%,360px);bottom:calc(10% + env(safe-area-inset-bottom,0px));gap:12px}.loading-progress-label,.progress-text{font-size:1.02rem}}@media (max-width: 480px){.loading-landing-title{top:12%;font-size:46px}.loading-status{left:26px;right:26px;width:auto;bottom:calc(12% + env(safe-area-inset-bottom,0px))}.loading-progress-label,.progress-text{font-size:.98rem}}
