@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Sans:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg: #EEEBE5;--bg-card: #F5F3EF;--text: #111111;--text-mid: #555555;--text-dim: #999999;--border: #D0CCC4;--orange: #FF6B00;--green: #39FF14;--dark: #1E1E1E;--dark-light: #2E2E2E;--font-display: "Space Grotesk", sans-serif;--font-body: "IBM Plex Sans", sans-serif;--font-mono: "IBM Plex Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{cursor:url(/cursor.svg?v=3) 0 0,auto!important}a,button,[role=button],input[type=submit],.retro-btn,a *,button *,[role=button] *{cursor:url(/cursor-pointer.svg?v=10) 4 0,pointer!important}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.6}body.os-desktop{overflow:hidden;height:100vh;width:100vw}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}@keyframes glitchIn{0%{clip-path:inset(0 0 100% 0)}20%{clip-path:inset(0 0 40% 0)}25%{clip-path:inset(60% 0 0 0)}30%{clip-path:inset(0 0 20% 0)}50%{clip-path:inset(30% 0 30% 0)}60%{clip-path:inset(0 0 0 0)}65%{clip-path:inset(50% 0 20% 0)}80%{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-40px) rotate(-1deg)}to{opacity:1;transform:translate(0) rotate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(40px) rotate(1deg)}to{opacity:1;transform:translate(0) rotate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}@keyframes floatBob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.5}}::view-transition-old(root){animation:vtFadeOut .2s ease-in forwards}::view-transition-new(root){animation:vtFadeIn .3s ease-out forwards}@keyframes vtFadeOut{to{opacity:0}}@keyframes vtFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transform:translateY(15px);transition:opacity .45s ease,transform .45s ease}.reveal.visible{opacity:1;transform:translateY(0)}.section-label{font-family:var(--font-mono);font-size:1rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.2em;margin-bottom:1.5rem;display:flex;align-items:center;gap:.6rem}.section-label:before{content:"";display:block;width:16px;height:2px;background:var(--orange)}section{padding:2.5rem}@media(max-width:768px){section{padding:2rem 1.5rem}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.desktop-icon{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border:1px solid transparent;border-radius:2px;user-select:none;z-index:5;transition:transform .15s ease}.desktop-icon:hover{transform:translateY(-2px)}.desktop-icon.selected{background:#ff6b001f;border-color:#ff6b004d}.desktop-icon-graphic{width:50px;height:50px;display:grid;grid-template-columns:repeat(10,5px);grid-template-rows:repeat(10,5px);image-rendering:pixelated}.desktop-icon-graphic div{width:5px;height:5px}.desktop-icon-label{font-family:var(--font-mono);font-size:.7rem;color:var(--text);text-align:center;max-width:80px;word-break:break-all;line-height:1.2}@media(max-width:768px){.desktop-icon{padding:10px}.desktop-icon-graphic{width:56px;height:56px;grid-template-columns:repeat(10,5.6px);grid-template-rows:repeat(10,5.6px)}.desktop-icon-graphic div{width:5.6px;height:5.6px}.desktop-icon-label{font-size:.65rem}}.desktop{position:fixed;inset:0;z-index:1;overflow:hidden}.landscape{position:absolute;inset:0;image-rendering:pixelated}.sky{position:absolute;top:0;left:0;right:0;height:65%;background:linear-gradient(to bottom,#87ceeb,#b8e0f6,#d4ecf7)}.pixel-sun{position:absolute;top:10%;right:15%;width:40px;height:40px;background:#ffe066;box-shadow:0 0 0 4px gold,0 0 0 8px #ffd7004d,0 0 40px #ffd70033;image-rendering:pixelated}.cloud{position:absolute;background:#ffffffd9;image-rendering:pixelated}.cloud:before,.cloud:after{content:"";position:absolute;background:#ffffffd9}.cloud-1{top:15%;left:10%;width:80px;height:16px}.cloud-1:before{width:48px;height:16px;top:-12px;left:16px}.cloud-1:after{width:32px;height:12px;top:-20px;left:28px}.cloud-2{top:22%;left:55%;width:60px;height:12px}.cloud-2:before{width:36px;height:12px;top:-10px;left:12px}.cloud-3{top:12%;left:40%;width:48px;height:10px}.cloud-3:before{width:28px;height:10px;top:-8px;left:10px}.hill{position:absolute;left:0;right:0;border-radius:50% 50% 0 0}.hill-far{bottom:30%;height:20%;background:#7db87d;opacity:.5}.hill-mid{bottom:28%;height:18%;background:#6aaf6a;left:-10%;right:-10%;opacity:.7}.hill-near{bottom:25%;height:15%;background:#5ca05c;left:-5%;right:-5%}.ground{position:absolute;bottom:0;left:0;right:0;height:35%;background:linear-gradient(to bottom,#5ca05c,#4a8f4a 30%,#3d7a3d)}.tree{position:absolute;width:20px;height:32px;image-rendering:pixelated}.tree:before{content:"";position:absolute;bottom:0;left:8px;width:4px;height:12px;background:#8b6b3d}.tree:after{content:"";position:absolute;top:0;left:0;width:20px;height:20px;background:#2d7a2d;border-radius:2px}.tree-1{bottom:34%;left:8%}.tree-2{bottom:36%;left:25%;height:40px}.tree-2:after{width:24px;height:26px;left:-2px}.tree-2:before{height:14px}.tree-3{bottom:33%;right:20%}.tree-4{bottom:35%;right:35%;height:36px}.tree-4:after{width:22px;height:24px;left:-1px;background:#267326}.tree-4:before{height:12px}.flower{position:absolute;width:4px;height:4px;image-rendering:pixelated}.flower:before{content:"";position:absolute;bottom:100%;left:0;width:4px;height:6px;background:#4a8f4a}.f1{bottom:30%;left:15%;background:#ff6b00}.f2{bottom:28%;left:45%;background:#ffe066}.f3{bottom:32%;right:30%;background:#ff6b00}.f4{bottom:26%;right:15%;background:#ffe066}.f5{bottom:29%;left:60%;background:#ff6b00}.duck{position:absolute;bottom:34%;left:200px;z-index:3;image-rendering:pixelated}.duck-frame{display:grid;grid-template-columns:repeat(8,6px);grid-template-rows:repeat(8,6px);image-rendering:pixelated;position:absolute;top:0;left:0}.duck-frame div{width:6px;height:6px}.duck-frame-2,.duck.frame-2 .duck-frame-1{opacity:0}.duck.frame-2 .duck-frame-2{opacity:1}.duck{width:48px;height:48px;position:absolute}.duck.idle .duck-frame{animation:duck-idle 1s steps(2) infinite}.duck.struggling{cursor:grabbing}.duck.struggling .duck-frame{animation:duck-struggle .12s steps(2) infinite}@keyframes duck-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@keyframes duck-struggle{0%{transform:rotate(-8deg) translate(-2px)}25%{transform:rotate(6deg) translate(2px)}50%{transform:rotate(-5deg) translate(-1px)}75%{transform:rotate(7deg) translate(1px)}}@keyframes duck-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes duck-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes duck-peck{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes duck-land{0%{transform:scaleY(.7) scaleX(1.2)}50%{transform:scaleY(1.1) scaleX(.9)}to{transform:scaleY(1) scaleX(1)}}@keyframes duck-sneeze{0%,to{transform:translate(0)}50%{transform:translate(15px) scaleX(1.2)}}@keyframes duck-wave{0%,to{transform:rotate(0)}50%{transform:rotate(-10deg)}}@keyframes duck-dizzy{to{transform:rotate(1080deg)}}@keyframes duck-angry{0%{transform:translate(-1px,-1px)}to{transform:translate(1px,1px)}}.duck-counter{position:fixed;top:12px;left:12px;z-index:7;font-family:var(--font-mono);font-size:.85rem;font-weight:500;color:#888;pointer-events:none}.desktop-nametag{position:absolute;bottom:80px;left:16px;z-index:3}.nametag-name{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:#fff;text-shadow:1px 1px 3px rgba(0,0,0,.5);display:block;letter-spacing:.05em}.nametag-desc{display:block;font-family:var(--font-body);font-size:.75rem;color:#ffffff80;text-shadow:1px 1px 2px rgba(0,0,0,.4);max-width:320px;line-height:1.5;margin-top:.4rem}.desktop-icon-label{color:#fff;text-shadow:1px 1px 3px rgba(0,0,0,.6)}@media(max-width:768px){.desktop-nametag{bottom:72px;left:10px}.nametag-name{font-size:.8rem}.pixel-sun{width:24px;height:24px}.cloud{transform:scale(.7)}.tree{transform:scale(.8)}}.os-window{position:absolute;display:none;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);box-shadow:0 8px 40px #0000001f;z-index:10;opacity:0;transform:scale(.95);transition:opacity .25s ease,transform .25s ease,top .35s cubic-bezier(.4,0,.2,1),left .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1),height .35s cubic-bezier(.4,0,.2,1);max-width:95vw;max-height:90vh}.os-window.open{display:flex;opacity:1;transform:scale(1)}.os-window.maximized{top:0!important;left:0!important;width:100vw!important;height:calc(100vh - 38px)!important;max-width:100vw;max-height:calc(100vh - 38px);border-radius:0}.os-window-titlebar{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--bg);user-select:none;flex-shrink:0}.os-window-titlebar--dark{background:var(--dark-light);border-color:#333}.os-window-btns{display:flex;gap:8px}.os-btn{width:14px;height:14px;border-radius:50%;border:none;padding:0;position:relative}.os-btn:after{content:"";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;font-size:10px;line-height:14px;text-align:center;color:#0009;font-weight:700}.os-window-btns:hover .os-btn:after{opacity:1}.os-btn--close{background:#ff5f57}.os-btn--close:after{content:"×";font-size:12px}.os-btn--minimize{background:#ffbd2e}.os-btn--minimize:after{content:"−";font-size:12px}.os-btn--maximize{background:#28c840}.os-btn--maximize:after{content:"+";font-size:11px}.os-window-title{flex:1;text-align:center;font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim);padding-right:40px}.os-window-body{flex:1;overflow-y:auto;padding:1.5rem;scrollbar-width:thin;scrollbar-color:var(--border) var(--bg)}.os-window-body--dark{background:var(--dark);color:#ccc;scrollbar-color:#444 #1a1a1a}.os-window-body::-webkit-scrollbar{width:12px}.os-window-body::-webkit-scrollbar-track{background:var(--bg);border-left:1px solid var(--border)}.os-window-body::-webkit-scrollbar-thumb{background:var(--border);border:2px solid var(--bg);min-height:40px}.os-window-body::-webkit-scrollbar-thumb:hover{background:#999}.os-window-body::-webkit-scrollbar-button{height:12px;background:var(--bg);border-left:1px solid var(--border)}.os-window-body--dark::-webkit-scrollbar-track{background:#1a1a1a;border-left:1px solid #333}.os-window-body--dark::-webkit-scrollbar-thumb{background:#444;border:2px solid #1a1a1a}.os-window-body--dark::-webkit-scrollbar-thumb:hover{background:#666}.os-window-body--dark::-webkit-scrollbar-button{background:#1a1a1a;border-left:1px solid #333}@media(max-width:768px){.os-window{display:none!important}}.mobile-panel{display:none;position:fixed;bottom:0;left:0;right:0;height:88vh;background:var(--bg-card);border-top:1px solid var(--border);border-radius:16px 16px 0 0;z-index:100;transform:translateY(100%);transition:transform .25s ease-out;flex-direction:column}.mobile-panel.open{display:flex;transform:translateY(0)}.mobile-panel-header{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0;position:relative}.mobile-panel-handle{width:36px;height:4px;background:var(--border);border-radius:2px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.mobile-panel-title{flex:1;font-family:var(--font-mono);font-size:.85rem;color:var(--text-dim);padding-top:6px}.mobile-panel-close{background:none;border:1px solid var(--border);width:44px;height:44px;font-size:1.2rem;color:var(--text);display:flex;align-items:center;justify-content:center}.mobile-panel-body{flex:1;overflow-y:auto;padding:1.5rem;-webkit-overflow-scrolling:touch}@media(min-width:769px){.mobile-panel{display:none!important}}.taskbar{position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--dark);border-top:2px solid var(--orange);display:flex;align-items:center;padding:0 .5rem;height:38px}.taskbar-tab{font-family:var(--font-mono);font-size:.78rem;color:#888;background:none;border:none;padding:6px 12px;border-right:1px solid #333;transition:background .15s,color .15s;white-space:nowrap}.taskbar-tab:hover{background:#333;color:#ccc}.taskbar-tab.active{background:#ff6b0026;color:var(--orange);border-bottom:2px solid var(--orange)}.taskbar-play{color:var(--green);margin-right:4px}.taskbar-divider{width:1px;height:20px;background:#444;margin:0 2px}.taskbar-spacer{flex:1}.taskbar-logoff{color:#aaa!important}.taskbar-logoff:hover{color:#ff5f57!important;background:#ff5f571a!important}.taskbar-clock{font-family:var(--font-mono);font-size:.78rem;color:#888;padding:0 10px}@media(max-width:768px){.taskbar{padding:2px;gap:1px}.taskbar-tab{font-size:.68rem;padding:10px 6px;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}.taskbar-clock,.taskbar-play,.taskbar-divider{display:none}}.lock-screen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center}.lock-overlay{position:absolute;inset:0;background:#0a0a0ad9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:opacity .4s ease}.lock-content{position:relative;z-index:1;text-align:center;transition:opacity .3s ease,transform .3s ease}.lock-avatar-pixel{width:80px;height:80px;margin:0 auto 1.2rem;display:grid;grid-template-columns:repeat(8,10px);grid-template-rows:repeat(8,10px);image-rendering:pixelated;border:2px solid #444;border-radius:4px;overflow:hidden;background:#333}.lock-avatar-pixel div{width:10px;height:10px}.lock-username{font-family:var(--font-mono);font-size:clamp(1rem,2vw,1.2rem);color:#ccc;letter-spacing:.05em;margin-bottom:1rem}.lock-field{width:200px;margin:0 auto 1.2rem;padding:8px 14px;background:#222;border:1px solid #444;text-align:left}.lock-dots{font-family:var(--font-mono);font-size:1.2rem;color:#888;letter-spacing:3px}.lock-button{font-family:var(--font-mono);font-size:.9rem;padding:10px 32px;background:var(--bg-card);border:2px solid;border-color:#FFF #888 #888 #FFF;color:var(--text);min-height:44px;min-width:120px;letter-spacing:.05em}.lock-button:active{border-color:#888 #FFF #FFF #888}.lock-screen.dismissing .lock-overlay{opacity:0}.lock-screen.dismissing .lock-content{opacity:0;transform:translateY(-20px)}.lock-screen.dismissing{pointer-events:none}.skip-lock .lock-screen{display:none!important}.pw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);height:calc(100% + 3rem);margin:-1.5rem}.pw-card{background:var(--bg-card);padding:1.5rem 2.5rem 0;transition:background .15s;display:flex;flex-direction:column;overflow:hidden}.pw-card:hover{background:var(--bg)}.pw-pixel-icon{display:grid;image-rendering:pixelated;margin-bottom:.5rem;height:40px;align-content:end}.pw-pixel-icon div{width:5px;height:5px}.pw-num{font-family:var(--font-mono);font-size:.85rem;color:var(--text-dim);display:block;margin-bottom:.5rem}.pw-title{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,3rem);font-weight:700;color:var(--text);letter-spacing:-.03em;margin-bottom:.6rem;line-height:1}.pw-hook{font-family:var(--font-body);font-size:.9rem;font-weight:300;color:var(--text-mid);line-height:1.5;margin-bottom:.8rem}.pw-hook-tagline{font-size:.95rem;color:var(--text);margin-bottom:.3rem}.pw-hook p{margin:0}.pw-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:.7rem}.pw-tags span{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;background:#ff6b00;color:#fff;border:none}.pw-location{font-family:var(--font-mono);font-size:.85rem;color:var(--text-dim);margin-bottom:.4rem}.pw-meta{font-family:var(--font-mono);font-size:.85rem;color:var(--text-dim);margin-bottom:.5rem}.pw-arrow{font-family:var(--font-mono);font-size:.85rem;color:var(--orange);font-weight:700}.pw-preview{margin-top:auto;overflow:hidden;flex:1;display:flex;align-items:center;padding-top:1rem}.pw-phone-wrap{width:100%;display:flex;justify-content:center;animation:pw-slide-up .6s cubic-bezier(.16,1,.3,1) forwards;animation-delay:.3s;opacity:0;perspective:600px}.pw-phone-wrap:has(.pw-phone){transform:translateY(60px);animation-name:pw-slide-up-phone}.pw-phone{width:60%;background:#1e1e1e;border-radius:20px 20px 0 0;border:5px solid #444;border-bottom:none;overflow:hidden;transition:transform .05s steps(1)}.pw-card:hover .pw-phone{transform:rotate(3deg)}@keyframes pw-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(-10px)}}@keyframes pw-slide-up-phone{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(60px)}}.pw-phone-notch{width:32px;height:3px;background:#444;border-radius:0 0 3px 3px;margin:0 auto}.pw-phone-screen{display:flex;align-items:center;justify-content:center;background:#1e1e1e}.pw-phone-screen span{font-family:var(--font-mono);font-size:.45rem;color:#555;text-transform:uppercase;letter-spacing:.08em}.pw-phone-img{width:100%;height:100%;object-fit:cover;display:block}.pw-browser{width:90%;background:#1e1e1e;border:2px solid #444;border-radius:6px;overflow:hidden;transition:transform .05s steps(1)}.pw-card:hover .pw-browser{transform:rotate(2deg)}.pw-bbar{padding:3px 5px;display:flex;align-items:center;gap:3px;border-bottom:1px solid #444}.pw-bdot{width:4px;height:4px;border-radius:50%;display:inline-block}.pw-burl{font-family:var(--font-mono);font-size:.45rem;color:#666;flex:1;text-align:center}.pw-bscreen{aspect-ratio:16 / 10;display:flex;align-items:center;justify-content:center;background:#1e1e1e}.pw-bscreen span{font-family:var(--font-mono);font-size:.5rem;color:#555;text-transform:uppercase;letter-spacing:.08em}.pw-browser-img{width:100%;height:100%;object-fit:cover;display:block}@media(max-width:768px){.pw-grid{grid-template-columns:1fr}}.aw[data-astro-cid-wpmthpc5]{font-family:var(--font-mono);font-size:.85rem;line-height:1.7}.aw-line[data-astro-cid-wpmthpc5]{display:flex;gap:.6rem;align-items:baseline;margin-bottom:.3rem}.aw-indent[data-astro-cid-wpmthpc5]{padding-left:1rem}.aw-ts[data-astro-cid-wpmthpc5]{color:#555;font-size:.7rem;flex-shrink:0;min-width:7ch}.aw-tag[data-astro-cid-wpmthpc5]{font-size:.65rem;font-weight:700;padding:1px 6px;flex-shrink:0;text-transform:uppercase}.aw-info[data-astro-cid-wpmthpc5]{background:#333;color:#aaa}.aw-ok[data-astro-cid-wpmthpc5]{background:var(--green);color:var(--dark)}.aw-warn[data-astro-cid-wpmthpc5]{background:var(--orange);color:#fff}.aw-log[data-astro-cid-wpmthpc5]{background:transparent;color:#555;border:1px solid #444}.aw-msg[data-astro-cid-wpmthpc5]{color:#ccc}.aw-hl[data-astro-cid-wpmthpc5]{color:var(--green);font-weight:600}.aw-accent[data-astro-cid-wpmthpc5]{color:var(--orange);font-weight:600}.aw-dim[data-astro-cid-wpmthpc5]{color:#555}.aw-dir[data-astro-cid-wpmthpc5]{color:var(--green);display:inline-block;min-width:16ch}.aw-archive[data-astro-cid-wpmthpc5]{padding:.3rem 0 .3rem 1rem;color:#bbb;font-size:.85rem}.aw-blink[data-astro-cid-wpmthpc5]{animation:blink 1s step-end infinite;color:var(--green)}.sw-grid[data-astro-cid-ycexot4y]{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border)}.sw-block[data-astro-cid-ycexot4y]{background:var(--bg-card);padding:1.2rem}.sw-cat[data-astro-cid-ycexot4y]{font-family:var(--font-display);font-size:1rem;text-transform:uppercase;letter-spacing:.1em;padding:3px 8px;font-weight:700;display:inline-block;margin-bottom:.6rem}li[data-astro-cid-ycexot4y]{font-family:var(--font-body);font-size:.9rem;font-weight:300;color:var(--text);padding:.2rem 0}@media(max-width:500px){.sw-grid[data-astro-cid-ycexot4y]{grid-template-columns:1fr}}.cw[data-astro-cid-hgil26gu]{font-family:var(--font-mono)}.cw-line[data-astro-cid-hgil26gu]{font-size:1rem;color:var(--text);margin-bottom:.5rem}.cw-line[data-astro-cid-hgil26gu] a[data-astro-cid-hgil26gu]{color:var(--text);border-bottom:1px solid var(--border);transition:border-color .2s}.cw-line[data-astro-cid-hgil26gu] a[data-astro-cid-hgil26gu]:hover{border-color:var(--orange)}.cw-location[data-astro-cid-hgil26gu]{font-size:.8rem;color:var(--text);margin:1rem 0 .4rem}.cw-status[data-astro-cid-hgil26gu]{font-size:1rem;color:var(--orange);margin-top:1rem}.proj-detail{display:flex;flex-direction:column;height:100%;margin:-1.5rem}.proj-nav{display:flex;background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0}.proj-nav-tab{font-family:var(--font-mono);font-size:.72rem;padding:10px 16px;color:var(--text-dim);background:none;border:none;border-bottom:2px solid transparent;border-right:1px solid var(--border)}.proj-nav-tab:hover{color:var(--text);background:var(--bg-card)}.proj-nav-tab.active{color:var(--text);background:var(--bg-card);border-bottom-color:var(--orange)}.proj-content{flex:1;overflow-y:auto;background:var(--bg-card);scrollbar-width:thin;scrollbar-color:var(--border) var(--bg)}.proj-content::-webkit-scrollbar{width:12px}.proj-content::-webkit-scrollbar-track{background:var(--bg);border-left:1px solid var(--border)}.proj-content::-webkit-scrollbar-thumb{background:var(--border);border:2px solid var(--bg);min-height:40px}.proj-content::-webkit-scrollbar-thumb:hover{background:#999}.proj-content::-webkit-scrollbar-button{height:12px;background:var(--bg);border-left:1px solid var(--border)}.props-main{display:grid;grid-template-columns:1fr auto 1fr;gap:0;height:100%}.props-gallery-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;border-left:1px solid var(--border);border-right:1px solid var(--border);padding:1.5rem 2rem;gap:1rem;overflow:hidden;width:280px;box-sizing:content-box}.gallery-preview{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0}.gallery-phone{width:200px}.gallery-browser{max-width:300px}.gallery-label{font-family:var(--font-mono);font-size:.6rem;color:var(--text-dim);margin-top:4px;display:block;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.gallery-filmstrip{display:flex;gap:10px;flex-shrink:0;justify-content:center}.gallery-thumb{width:60px;flex-shrink:0;border:1px solid var(--border);border-radius:0;overflow:hidden;cursor:pointer;background:var(--bg);padding:0;transition:border-color .15s,opacity .15s;opacity:.7;display:flex;flex-direction:column}.gallery-thumb:hover{border-color:var(--orange);opacity:1}.gallery-thumb-media{width:100%;height:60px;object-fit:cover;display:block;pointer-events:none}.gallery-thumb .gallery-label{padding:2px 4px;font-size:.5rem;border-top:1px solid var(--border);margin-top:0}.props-fields{min-width:0;padding:1.5rem 2rem;overflow-y:auto;display:flex;flex-direction:column}.props-file-header{margin-bottom:.3rem}.props-file-name{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:700;color:var(--text);letter-spacing:-.02em;line-height:1.1}.props-file-kind{font-family:var(--font-mono);font-size:.85rem;color:var(--text-dim);margin-top:.2rem}.props-divider{border:none;border-top:1px solid var(--border);margin:.7rem 0}.props-section-label{font-family:var(--font-mono);font-size:.8rem;font-weight:700;color:var(--text-dim);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.06em}.props-section-label:before{content:"▸ ";color:var(--text-dim)}.props-field{display:grid;grid-template-columns:100px 1fr;gap:10px;padding:4px 0;align-items:baseline}.props-key{font-family:var(--font-mono);font-size:.85rem;color:var(--text-dim);text-align:right}.props-value{font-family:var(--font-body);font-size:1rem;color:var(--text)}.props-tag{background:#ff6b00;color:#fff;font-family:var(--font-mono);font-size:.75rem;padding:2px 6px;display:inline-block;margin:1px 2px;text-transform:uppercase;letter-spacing:.06em;border:none}.props-link-btn{display:inline-block;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;padding:6px 14px;margin-top:auto;align-self:flex-end;background:var(--orange);color:#fff;text-decoration:none;border:none;cursor:pointer;transition:background .15s}.props-link-btn:hover{background:#e55e00}.props-stats-row{display:flex;gap:2rem;padding:.3rem 0}.props-stat{text-align:center}.props-stat-num{font-family:var(--font-display);font-size:1.8rem;font-weight:700;display:block;line-height:1;color:var(--text)}.props-stat-label{font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim);margin-top:.3rem;display:block;white-space:pre-line;line-height:1.2}.proj-bview--scroll{aspect-ratio:auto;height:100%}.proj-browser-pdf{width:100%;height:100%;display:block;border:none}.gallery-browser{display:flex;flex-direction:column;height:100%}.gallery-browser .proj-bview{flex:1;min-height:0}.gallery-browser .proj-bview--scroll{overflow:hidden}.props-main--expanded .props-gallery-panel{width:auto}.props-main--expanded .gallery-browser{max-width:none;width:100%}.gallery-thumb-pdf{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg);font-family:var(--font-mono);font-size:.6rem;font-weight:700;color:var(--text-dim);letter-spacing:.05em}.props-col3{padding:0;overflow-y:auto;position:relative}.props-col3--collapsible{transition:width .3s ease,min-width .3s ease;min-width:220px}.props-col3--collapsible.collapsed{min-width:0;width:28px;overflow:hidden}.props-col3--collapsible.collapsed .col3-inner{opacity:0;pointer-events:none}.props-col3--collapsible.collapsed .col3-toggle{transform:rotate(180deg)}.col3-inner{padding:1.5rem 2rem;transition:opacity .2s ease}.col3-toggle{position:absolute;top:0;left:0;z-index:1;width:28px;height:28px;background:var(--bg);border:1px solid var(--border);border-top:none;border-left:none;font-family:var(--font-mono);font-size:1rem;color:var(--orange);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .3s ease}.col3-toggle:hover{color:#e55e00}.props-desc{font-family:var(--font-body);font-size:.95rem;line-height:1.6;color:var(--text-mid);margin:0}.props-approach-item{margin-bottom:.6rem}.props-approach-label{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--orange);display:block;margin-bottom:.2rem}.props-approach-item p{font-family:var(--font-body);font-size:.85rem;color:var(--text-mid);line-height:1.5;margin:0}.props-feature-item{margin-bottom:.5rem}.props-feature-title{font-family:var(--font-display);font-size:.85rem;font-weight:700;color:var(--text);display:block;margin-bottom:.15rem}.props-feature-item p{font-family:var(--font-body);font-size:.8rem;color:var(--text-mid);line-height:1.5;margin:0}.proj-phone{width:240px;background:#1e1e1e;border-radius:26px;border:4px solid #444;overflow:hidden;margin:0 auto}.proj-phone-notch{width:45px;height:3px;background:#444;border-radius:0 0 4px 4px;margin:0 auto}.proj-phone-screen{aspect-ratio:9 / 19.5;overflow:hidden}.proj-phone--sm{width:180px;border-radius:20px;border-width:3px}.proj-browser{width:100%;border:1px solid #555;overflow:hidden;background:var(--dark)}.proj-browser--sm{max-width:320px}.proj-bbar{padding:3px 6px;display:flex;align-items:center;gap:4px;border-bottom:1px solid #555}.proj-bdots{display:flex;gap:3px}.proj-bdots span{width:4px;height:4px;border-radius:50%}.proj-burl{font-family:var(--font-mono);font-size:.55rem;color:#888;flex:1;text-align:center}.proj-bview{aspect-ratio:16 / 10;overflow:hidden}.proj-ph{width:100%;height:100%;background:var(--dark);display:flex;align-items:center;justify-content:center;aspect-ratio:9/16}.proj-browser .proj-ph{aspect-ratio:16/10}.proj-ph span{font-family:var(--font-mono);font-size:.65rem;color:#666;text-transform:uppercase;letter-spacing:.1em}.proj-phone-video,.proj-browser-video{width:100%;height:100%;object-fit:cover;display:block}@media(max-width:768px){.proj-nav{overflow-x:auto;-webkit-overflow-scrolling:touch}.proj-nav-tab{white-space:nowrap;min-height:44px;padding:8px 12px;font-size:.65rem}.props-main{grid-template-columns:1fr}.props-gallery-panel{border-left:none;border-right:none;border-bottom:1px solid var(--border);padding:1rem}.gallery-phone{width:140px}.gallery-browser{max-width:220px}.gallery-thumb{width:44px;height:44px}.props-fields{padding:1.2rem}.props-field{grid-template-columns:80px 1fr}.props-col3{border-left:none;border-top:1px solid var(--border)}.props-col3 .col3-inner{padding:1.2rem}.col3-toggle{display:none}.props-col3--collapsible{min-width:0}}.marquee-bar{position:fixed;bottom:32px;left:0;right:0;z-index:9998;overflow:hidden;background:#ff6b00;padding:6px 0}.marquee-inner{display:flex;white-space:nowrap;will-change:transform;animation:marqueeScroll 24s linear infinite}.marquee-inner span{font-family:var(--font-mono);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:#1e1e1e;padding-right:3rem}@keyframes marqueeScroll{0%{transform:translate(0)}to{transform:translate(-25%)}}.mp{padding:1rem 1.2rem;font-family:var(--font-mono);background:var(--bg-card)}.mp-title{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:var(--text);line-height:1.2}.mp-artist{font-size:.7rem;color:var(--text-dim);margin-bottom:.8rem}.mp-progress{display:flex;align-items:center;gap:8px;margin-bottom:.8rem}.mp-time{font-size:.6rem;color:var(--text-dim);min-width:28px;font-variant-numeric:tabular-nums}.mp-bar{flex:1;height:4px;background:var(--border)}.mp-bar-fill{height:100%;width:0%;background:#ff6b00;transition:width .4s linear}.mp-controls{display:flex;justify-content:center;align-items:center;gap:8px;margin-bottom:.8rem}.mp-btn{width:32px;height:32px;background:var(--bg);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;image-rendering:pixelated}.mp-btn:hover{border-color:#ff6b00}.mp-btn:active{background:var(--border)}.mp-btn--play{width:36px;height:36px;border-width:2px}.px-prev,.px-next,.px-play,.px-pause{display:grid;grid-template-columns:repeat(5,3px);grid-template-rows:repeat(5,3px);image-rendering:pixelated}.px-prev div,.px-next div,.px-play div,.px-pause div{width:3px;height:3px}.px-play div:nth-child(1){background:var(--text)}.px-play div:nth-child(6){background:var(--text)}.px-play div:nth-child(7){background:var(--text)}.px-play div:nth-child(11){background:var(--text)}.px-play div:nth-child(12){background:var(--text)}.px-play div:nth-child(13){background:var(--text)}.px-play div:nth-child(16){background:var(--text)}.px-play div:nth-child(17){background:var(--text)}.px-play div:nth-child(21){background:var(--text)}.px-pause div:nth-child(1){background:var(--text)}.px-pause div:nth-child(3){background:var(--text)}.px-pause div:nth-child(6){background:var(--text)}.px-pause div:nth-child(8){background:var(--text)}.px-pause div:nth-child(11){background:var(--text)}.px-pause div:nth-child(13){background:var(--text)}.px-pause div:nth-child(16){background:var(--text)}.px-pause div:nth-child(18){background:var(--text)}.px-pause div:nth-child(21){background:var(--text)}.px-pause div:nth-child(23){background:var(--text)}.px-prev div:nth-child(3){background:var(--text)}.px-prev div:nth-child(5){background:var(--text)}.px-prev div:nth-child(7){background:var(--text)}.px-prev div:nth-child(8){background:var(--text)}.px-prev div:nth-child(10){background:var(--text)}.px-prev div:nth-child(11){background:var(--text)}.px-prev div:nth-child(12){background:var(--text)}.px-prev div:nth-child(13){background:var(--text)}.px-prev div:nth-child(15){background:var(--text)}.px-prev div:nth-child(17){background:var(--text)}.px-prev div:nth-child(18){background:var(--text)}.px-prev div:nth-child(20){background:var(--text)}.px-prev div:nth-child(23){background:var(--text)}.px-prev div:nth-child(25){background:var(--text)}.px-next div:nth-child(1){background:var(--text)}.px-next div:nth-child(3){background:var(--text)}.px-next div:nth-child(6){background:var(--text)}.px-next div:nth-child(8){background:var(--text)}.px-next div:nth-child(9){background:var(--text)}.px-next div:nth-child(11){background:var(--text)}.px-next div:nth-child(13){background:var(--text)}.px-next div:nth-child(14){background:var(--text)}.px-next div:nth-child(15){background:var(--text)}.px-next div:nth-child(16){background:var(--text)}.px-next div:nth-child(18){background:var(--text)}.px-next div:nth-child(19){background:var(--text)}.px-next div:nth-child(21){background:var(--text)}.px-next div:nth-child(23){background:var(--text)}.mp-next{font-size:.65rem;color:var(--text-dim);border-top:1px solid var(--border);padding-top:.5rem}.mp-next-label{color:#ff6b00;font-weight:700}
