*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #020204;--bg-secondary: rgba(10, 10, 15, .75);--bg-secondary-solid: rgba(10, 10, 15, .85);--bg-overlay: rgba(2, 2, 4, .3);--bg-gradient: radial-gradient(circle at center, transparent 50%, #000000 150%);--text-primary: #fff;--text-secondary: #b0b0b0;--text-tertiary: #888;--text-quaternary: #666;--border-primary: rgba(255, 255, 255, .1);--border-secondary: rgba(255, 255, 255, .2);--hover-bg: rgba(255, 255, 255, .05);--active-bg: rgba(255, 255, 255, .1);--fog-color: #020204}body.light-mode{--bg-primary: #f5f5f7;--bg-secondary: rgba(255, 255, 255, .85);--bg-secondary-solid: rgba(255, 255, 255, .95);--bg-overlay: rgba(200, 200, 200, .3);--bg-gradient: radial-gradient(circle at center, transparent 50%, #e0e0e0 150%);--text-primary: #1d1d1f;--text-secondary: #424245;--text-tertiary: #6e6e73;--text-quaternary: #86868b;--border-primary: rgba(0, 0, 0, .1);--border-secondary: rgba(0, 0, 0, .2);--hover-bg: rgba(0, 0, 0, .03);--active-bg: rgba(0, 0, 0, .08);--fog-color: #f5f5f7}body{background-color:var(--bg-primary);color:var(--text-secondary);font-family:Courier New,Courier,monospace;overflow:hidden;height:100vh;width:100vw;transition:background-color .3s ease,color .3s ease}#canvas-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1}.ui-layer{position:relative;z-index:100;pointer-events:none;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:2rem;background:var(--bg-gradient)}header{display:flex;justify-content:flex-end;align-items:flex-start;pointer-events:auto}nav{position:fixed;top:2rem;right:2rem;z-index:10;pointer-events:auto}.logo-area{position:fixed;top:2rem;left:2rem;pointer-events:auto;opacity:0;transition:opacity .6s ease}.logo-area.loaded{opacity:1}h1{font-size:2.5rem;font-weight:100;letter-spacing:-.02em;text-transform:uppercase;color:var(--text-primary);cursor:pointer;text-shadow:0 0 20px rgba(255,255,255,.3);transition:color .3s ease}body.light-mode h1{text-shadow:0 0 10px rgba(0,0,0,.1)}.subtitle{font-size:1rem;color:var(--text-secondary);margin-top:.5rem;white-space:nowrap;line-height:1.5;text-shadow:0 0 8px rgba(176,176,176,.2);transition:color .3s ease}body.light-mode .subtitle{text-shadow:0 0 4px rgba(0,0,0,.05)}nav ul{list-style:none;text-align:right}nav li{margin-bottom:.8rem}nav a{color:var(--text-secondary);text-decoration:none;font-size:1rem;text-transform:uppercase;letter-spacing:.1em;transition:all .3s;border-bottom:1px solid transparent;cursor:pointer;text-shadow:0 0 8px rgba(176,176,176,.2)}body.light-mode nav a{text-shadow:0 0 4px rgba(0,0,0,.05)}nav a:before{content:"";opacity:0;margin-right:0;transition:all .3s ease}nav a:hover:before,nav a.active:before{content:"→";opacity:1;margin-right:.3em}nav a:hover,nav a.active{color:var(--text-primary);border-bottom:1px solid var(--text-primary);text-shadow:0 0 16px var(--text-primary)}body.light-mode nav a:hover,body.light-mode nav a.active{text-shadow:0 0 12px rgba(0,0,0,.3)}.data-display{position:absolute;bottom:2rem;left:2rem;font-size:.7rem;color:var(--text-quaternary);line-height:1.6;opacity:0;transition:opacity 1s ease,color .3s ease;max-height:calc(100vh - 8rem);overflow-y:auto}.data-display.loaded{opacity:1}.value{color:var(--text-primary);transition:color .3s ease}@keyframes subtlePulse{0%,to{opacity:.4}50%{opacity:1}}.invert-reality{cursor:pointer;opacity:.5;transition:opacity .3s ease,text-shadow .3s ease;pointer-events:auto}.invert-reality.pulse{animation:subtlePulse 2.5s ease-in-out infinite}.invert-reality:hover{opacity:1;text-shadow:0 0 10px var(--text-primary);animation:none}body.light-mode .invert-reality:hover{text-shadow:0 0 8px rgba(0,0,0,.3)}#loader{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg-primary);z-index:100;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:opacity 1s ease,background-color .3s ease}.loader-text{animation:blink .2s infinite;color:var(--text-primary)}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}.works-panel{position:fixed;top:0;left:0;width:100%;height:100%;z-index:20;pointer-events:none;opacity:0;transition:opacity .3s ease}.works-panel.active{pointer-events:auto;opacity:1}.works-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--bg-overlay);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);cursor:pointer}.works-content{position:absolute;top:0;right:0;width:min(1200px,90vw);height:100%;background:var(--bg-secondary);border-left:1px solid var(--border-primary);overflow-y:auto;padding:2rem;transform:translate(100%);transition:transform .4s cubic-bezier(.4,0,.2,1),background .3s ease;z-index:22}.works-panel.active .works-content{transform:translate(0)}.works-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-primary)}.works-header h2{font-size:1.5rem;font-weight:100;text-transform:uppercase;letter-spacing:.1em;color:var(--text-primary);transition:color .3s ease}.close-btn{background:none;border:none;color:var(--text-tertiary);font-size:1.5rem;cursor:pointer;padding:.5rem;line-height:1;transition:color .3s}.close-btn:hover{color:var(--text-primary)}.works-filters{display:flex;gap:.5rem;margin-bottom:2rem;flex-wrap:wrap}.filter-btn{background:var(--hover-bg);border:1px solid var(--border-primary);color:var(--text-tertiary);padding:.5rem 1rem;font-size:.75rem;font-family:Courier New,Courier,monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:all .3s}.filter-btn:hover{border-color:var(--border-secondary);color:var(--text-secondary)}.filter-btn.active{background:var(--active-bg);border-color:var(--text-primary);color:var(--text-primary)}.works-list{display:flex;flex-direction:column;gap:1rem}.work-year-group{margin-bottom:1rem}.work-year-header{font-size:1.2rem;color:var(--text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-primary);transition:color .3s ease}.work-item{background:#80808005;border:1px solid var(--border-primary);padding:1rem;transition:all .3s;cursor:pointer}body.light-mode .work-item{background:#00000003}.work-item:hover{background:var(--hover-bg);border-color:var(--border-secondary)}.work-item.expanded{background:var(--hover-bg);cursor:default}.work-item.auto-expand{cursor:default}.work-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.work-item-main{display:flex;gap:1rem;flex:1}.work-cover-art{width:120px;height:120px;flex-shrink:0;background:var(--hover-bg);border:1px solid var(--border-primary);overflow:hidden}.work-cover-art img{width:100%;height:100%;object-fit:cover;display:block}.work-item-info{flex:1}.work-item-title{font-size:1rem;color:var(--text-primary);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em;transition:color .3s ease}.work-item-meta{font-size:.75rem;color:var(--text-tertiary);display:flex;gap:.5rem;align-items:center;transition:color .3s ease}.work-item-description{font-size:.75rem;color:var(--text-secondary);margin-top:.25rem;font-style:italic;transition:color .3s ease}.work-tag{display:inline-block;padding:.125rem .5rem;background:var(--active-bg);border-radius:2px;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em}.work-expand-icon{color:var(--text-tertiary);font-size:.75rem;transition:transform .3s,color .3s ease;flex-shrink:0}.work-item.expanded .work-expand-icon{transform:rotate(90deg)}.work-details{max-height:0;overflow:hidden;transition:max-height .4s ease}.work-item.expanded .work-details{max-height:2000px}.work-details-inner{padding-top:1rem;margin-top:1rem;border-top:1px solid var(--border-primary)}.platform-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid var(--border-primary);position:relative}.platform-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-quaternary);padding:.75rem 1.5rem;font-size:.75rem;font-family:Courier New,Courier,monospace;text-transform:uppercase;letter-spacing:.15em;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);flex:1;text-align:center;position:relative;margin-bottom:-1px}.platform-tab:hover{color:var(--text-secondary);background:var(--hover-bg)}.platform-tab.active{color:var(--text-primary);border-bottom-color:var(--text-tertiary);background:#80808008}body.light-mode .platform-tab.active{background:#00000005}.platform-tab:disabled{opacity:.3;cursor:not-allowed}.player-container{position:relative;width:100%;min-height:152px}.player-container.av-player{min-height:0;aspect-ratio:16 / 9}.player-content{display:none}.player-content.active{display:block}.player-content iframe{width:100%;border:none;border-radius:4px}.av-player .player-content{position:relative;width:100%;height:100%}.av-player iframe{position:absolute;top:0;left:0;width:100%;height:100%}.contact-panel{position:fixed;top:0;left:0;width:100%;height:100%;z-index:20;pointer-events:none;opacity:0;transition:opacity .3s ease}.contact-panel.active{pointer-events:auto;opacity:1}.contact-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--bg-overlay);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);cursor:pointer}.contact-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(600px,90vw);max-height:80vh;background:var(--bg-secondary-solid);border:1px solid var(--border-secondary);overflow-y:auto;padding:2rem;opacity:0;transform:translate(-50%,-50%) scale(.95);transition:all .4s cubic-bezier(.4,0,.2,1);box-sizing:border-box}.contact-content::-webkit-scrollbar{width:0px;background:transparent}.contact-content{scrollbar-width:none;-ms-overflow-style:none}.contact-panel.active .contact-content{opacity:1;transform:translate(-50%,-50%) scale(1)}.contact-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-primary)}.contact-header h2{font-size:1.5rem;font-weight:100;text-transform:uppercase;letter-spacing:.1em;color:var(--text-primary);transition:color .3s ease}.contact-body{display:flex;flex-direction:column;gap:2rem}.contact-intro{color:var(--text-secondary);font-size:.9rem;line-height:1.8;transition:color .3s ease}.contact-intro p{margin-bottom:.75rem}.contact-intro p:last-child{margin-bottom:0}.contact-methods{display:flex;flex-direction:column;gap:1.5rem}.contact-item{display:flex;align-items:center;gap:1.25rem}.contact-icon{min-width:35px;display:flex;align-items:center;justify-content:center}.email-icon svg,.instagram-icon svg{width:22px;height:22px;color:var(--text-quaternary);transition:color .3s}.contact-item:hover .email-icon svg,.contact-item:hover .instagram-icon svg{color:var(--text-tertiary)}.contact-value-row{display:flex;align-items:center;gap:1rem;flex:1}.contact-link{color:var(--text-primary);text-decoration:none;font-size:1.1rem;border-bottom:1px solid transparent;transition:all .3s;text-shadow:0 0 10px rgba(255,255,255,.3)}body.light-mode .contact-link{text-shadow:0 0 8px rgba(0,0,0,.1)}.contact-link:hover{border-bottom:1px solid var(--text-primary);text-shadow:0 0 15px rgba(255,255,255,.5)}body.light-mode .contact-link:hover{text-shadow:0 0 10px rgba(0,0,0,.15)}.email-link{cursor:pointer;position:relative}.email-link:before{content:"Click to copy";position:absolute;bottom:-20px;left:0;font-size:.65rem;color:var(--text-quaternary);opacity:0;transition:opacity .3s;font-family:Courier New,Courier,monospace;text-transform:uppercase;letter-spacing:.05em;pointer-events:none}.email-link:hover:before{opacity:1}.copy-toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%) translateY(100px);background:#4caf50f2;color:#fff;padding:1rem 1.5rem;border-radius:4px;font-size:.85rem;font-family:Courier New,Courier,monospace;text-transform:uppercase;letter-spacing:.1em;opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1000;pointer-events:none;box-shadow:0 4px 12px #0000004d}.copy-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.copy-btn{background:var(--hover-bg);border:1px solid var(--border-secondary);color:var(--text-tertiary);padding:.5rem .75rem;font-size:1rem;cursor:pointer;transition:all .3s;position:relative;min-width:45px;height:36px}.copy-btn:hover{border-color:var(--border-secondary);background:var(--active-bg);color:var(--text-secondary)}.copy-btn.copied{border-color:#4caf50;background:#4caf501a}.copy-icon{display:inline-block;transition:opacity .2s}.copy-feedback{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.7rem;color:#4caf50;opacity:0;transition:opacity .2s;white-space:nowrap;font-family:Courier New,Courier,monospace;text-transform:uppercase;letter-spacing:.05em}.copy-btn.copied .copy-icon{opacity:0}.copy-btn.copied .copy-feedback{opacity:1}@media (max-width: 768px){.works-content{width:100vw;padding:1.5rem;transform:translate(0);left:0;right:auto;border-left:none}.works-panel{background:var(--bg-secondary)}.works-backdrop{display:none}body.panel-open #canvas-container,body.panel-open #touch-hint,body.panel-open .ui-layer,body.panel-open nav{display:none!important}.works-header h2{font-size:1.2rem}.contact-content{width:100vw;max-height:100vh;padding:1.5rem;position:absolute;top:0;left:0;transform:none;border:none;border-radius:0}.contact-panel.active .contact-content{transform:none}.contact-panel{background:var(--bg-secondary)}.contact-backdrop{display:none}.contact-header h2{font-size:1.2rem}.contact-link{font-size:.9rem;word-break:break-word}.email-link:before{font-size:.6rem}.contact-icon{min-width:28px}.email-icon svg,.instagram-icon svg{width:20px;height:20px}.contact-item{flex-direction:column;align-items:flex-start;gap:.75rem}.contact-value-row{width:100%}.data-display{font-size:.6rem;line-height:1.4;bottom:1rem;left:1rem;max-height:calc(100vh - 4rem)}.logo-area{top:1rem;left:1rem}h1{font-size:1.8rem}.subtitle{font-size:.8rem}nav{top:auto;bottom:1rem;right:1rem;left:auto}nav ul{flex-direction:column;align-items:flex-end;gap:.5rem}}.performance-description{font-size:.85rem;color:var(--text-secondary);line-height:1.6;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-primary);transition:color .3s ease}.performance-gallery{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.performance-image{width:100%;border:1px solid var(--border-primary);background:#80808005;overflow:visible}body.light-mode .performance-image{background:#00000003}.performance-image img{width:100%;height:auto;display:block;transition:transform .3s ease}.performance-image:hover img{transform:scale(1.02)}@media (max-width: 768px){.performance-gallery{grid-template-columns:1fr}.performance-gallery .performance-image:first-child,.performance-gallery .performance-image:nth-child(2),.performance-gallery .performance-image:nth-child(3){grid-column:1;grid-row:auto}}.touch-hint{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);display:none;flex-direction:column;align-items:center;gap:1rem;color:var(--text-primary);font-size:1rem;font-family:Courier New,monospace;text-transform:uppercase;letter-spacing:.2em;z-index:100;pointer-events:none;animation:touchHintFade 3s ease-in-out infinite}.touch-hint svg{width:48px;height:48px;opacity:.8}@keyframes touchHintFade{0%,to{opacity:.3}50%{opacity:1}}@media (max-width: 768px){.touch-hint{display:flex}.touch-hint.hidden{display:none}}
