:root{--accent: #C24712;--deep: #0B5D3F;--deep-veil: rgba(9, 74, 50, .86);--peach: #FFD9B8;--link: #0E7A52;--cream: #FFF8EC;--ink: #14281D}*{margin:0;padding:0;box-sizing:border-box}html,body{overflow:hidden;height:100%}body{font-family:Space Grotesk,Arial,sans-serif;color:var(--ink)}.webgl{position:fixed;top:0;right:0;bottom:0;left:0;outline:none;background:linear-gradient(0deg,#fdf9ec 45%,#83dae2);transition:background .6s}body.dark .webgl{background:linear-gradient(0deg,#162f3b 50%,#060f18)}#loadingscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--deep-veil);color:var(--cream);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:center;transition:opacity .9s ease,visibility .9s ease,transform .9s ease}#loadingscreen.hidden{opacity:0;visibility:hidden;transform:translateY(-28px)}#loader-wrapper{max-width:720px;padding:32px}#loader-logo{font-weight:700;font-size:15px;line-height:1.15;letter-spacing:.5px;color:var(--peach);margin-bottom:42px;animation:rise .7s .05s ease both}#loader-wrapper .title{font-size:14px;font-weight:600;letter-spacing:1.5px;margin-bottom:18px;color:var(--peach);animation:rise .7s .15s ease both}#loader-wrapper h1{font-size:clamp(26px,4vw,44px);font-weight:600;line-height:1.25;animation:rise .7s .28s ease both}#loader-wrapper p.sub{margin-top:16px;opacity:.75;font-size:15px;animation:rise .7s .42s ease both}#loader-action{min-height:92px;animation:rise .7s .56s ease both}#progress{margin-top:40px;max-width:380px}#loading{font-size:13px;letter-spacing:1px;font-variant-numeric:tabular-nums}#progress-bar-track{margin-top:10px;height:3px;background:#fff8ec38;border-radius:2px}#progress-bar{height:100%;width:0%;background:var(--peach);border-radius:2px;transition:width .2s}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.button{display:inline-block;border:none;cursor:pointer;font-family:inherit;font-weight:600;font-size:15px;padding:13px 24px;border-radius:28px;transition:transform .15s,box-shadow .15s}.button:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0003}.button.cta{background:var(--accent);color:#fff;margin-top:32px;display:none;align-items:center;gap:10px}.button.cta .arrow{display:inline-block;transition:transform .2s}.button.cta:hover .arrow{transform:translate(5px)}.button.primary{background:var(--accent);color:#fff;margin-top:14px}#logo{position:fixed;top:26px;left:28px;z-index:20;font-weight:700;font-size:15px;line-height:1.15;letter-spacing:.5px}nav{position:fixed;top:26px;right:28px;z-index:40}#menuToggle{position:relative}#menuBtn{position:relative;z-index:3;display:block;background:none;border:0;padding:0;cursor:pointer}#menuBtn span{display:block;width:26px;height:3px;margin-bottom:5px;background:var(--ink);border-radius:2px;position:relative;z-index:2;transform-origin:5px 1px;transition:transform .3s,opacity .3s,background .3s}#menuToggle.open #menuBtn span{background:var(--cream)}#menuToggle.open #menuBtn span:nth-of-type(1){transform:rotate(45deg)}#menuToggle.open #menuBtn span:nth-of-type(2){opacity:0}#menuToggle.open #menuBtn span:nth-of-type(3){transform:rotate(-45deg)}#menu{position:absolute;right:-28px;top:-26px;width:min(320px,84vw);height:100vh;height:100dvh;padding:96px 36px;list-style:none;background:var(--deep);color:var(--cream);transform:translate(105%);transition:transform .35s ease}#menuToggle.open #menu{transform:none}#menu a{display:block;padding:12px 0;font-size:22px;font-weight:600;color:inherit;text-decoration:none;opacity:.9}#menu a:hover{opacity:1;color:var(--peach)}#menu a.active{text-decoration:underline;text-underline-offset:6px}.button-round{position:fixed;right:28px;z-index:20;bottom:calc(28px + env(safe-area-inset-bottom,0px));width:52px;height:52px;border-radius:50%;border:0;padding:0;font-family:inherit;background:var(--ink);color:var(--cream);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:22px;-webkit-user-select:none;user-select:none;transition:background .3s,color .3s}#povBtn{bottom:calc(92px + env(safe-area-inset-bottom,0px));font-size:24px}body.pov #povBtn{background:var(--accent)}#switch input,#switch #sun,body.dark #switch #moon{display:none}body.dark #switch #sun{display:block}body.dark #switch.button-round{background:var(--cream);color:var(--ink)}#instructions{position:fixed;width:100%;text-align:center;z-index:10;bottom:calc(7% + env(safe-area-inset-bottom,0px));padding:0 96px;font-size:15px;font-weight:500;letter-spacing:.6px;transition:opacity .5s}#instructions .drag-dot{display:inline-block;width:34px;height:4px;border-radius:3px;background:currentColor;opacity:.5;margin-bottom:8px;animation:draghint 2.2s ease-in-out infinite}@keyframes draghint{0%,to{transform:translate(-22px)}50%{transform:translate(22px)}}#instructions.hidden{opacity:0;pointer-events:none}.popup{position:fixed;top:11%;left:50%;transform:translate(-50%) translateY(8px);z-index:10;opacity:0;visibility:hidden;transition:opacity .45s,transform .45s,visibility .45s;text-align:center;width:min(700px,90vw)}.popup.visible{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.popup.sign p{font-size:clamp(19px,2.4vw,27px);font-weight:500;line-height:1.45}.popup.sign a{color:var(--link);font-weight:600}body.dark .popup.sign a{color:var(--peach)}.popup.project{width:min(540px,92vw)}.popup.project .content{display:flex;gap:18px;align-items:center;text-align:left;background:#fffcf5f0;border-radius:18px;padding:18px;box-shadow:0 12px 40px #0a281938;color:var(--ink)}.popup.project .thumbnail{width:130px;height:92px;border-radius:12px;flex:none;background:linear-gradient(135deg,var(--deep),var(--accent))}.popup.project .projecttitle{font-size:19px;font-weight:700}.popup.project .subtitle{font-size:14px;opacity:.7;margin-top:4px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#fffdf7;color:var(--ink);display:none;overflow-y:auto}.modal.open{display:block}.modal .header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;position:sticky;top:0;background:#fffdf7}.modal .header .title{font-size:22px;font-weight:700}.modal .close{position:static;width:44px;height:44px;font-size:18px}.modal-content-wrapper{max-width:860px;margin:0 auto;padding:24px 32px 80px}.modal-subtitle{font-size:clamp(22px,3vw,34px);font-weight:600;line-height:1.3;margin-bottom:28px}.media-placeholder{width:100%;aspect-ratio:16/9;border-radius:16px;background:linear-gradient(135deg,var(--deep),var(--accent));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;letter-spacing:1px;text-align:center;padding:20px}.modal p.desc{margin-top:24px;line-height:1.65;opacity:.85}.modal .tags{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px}.modal .tag{font-size:12px;font-weight:600;padding:6px 12px;border-radius:14px;background:#0e7a521f;color:var(--link)}#errorscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:var(--deep);color:var(--cream);display:flex;align-items:center;justify-content:center}#errorscreen>div{max-width:640px;padding:32px}#errorscreen h1{font-size:clamp(22px,3.5vw,36px);font-weight:600;line-height:1.3}#errorscreen p{margin-top:16px;line-height:1.6;opacity:.85}#errorscreen a{color:var(--peach);font-weight:600}.linklike{background:none;border:0;padding:0;font:inherit;cursor:pointer;color:var(--peach);font-weight:600;text-decoration:underline}#load-error{margin-top:36px;max-width:520px}#load-error .retry{background:var(--accent);color:#fff;margin-top:24px}#load-error p{opacity:.85;line-height:1.6}#load-error code{font-family:inherit;color:var(--peach)}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}body.dark,body.dark #logo,body.dark #instructions,body.dark .popup.sign{color:var(--cream)}body.dark #logo{text-shadow:0 1px 10px rgba(0,0,0,.55)}body.dark #menuToggle:not(.open) #menuBtn span{background:var(--cream)}
