:root{--color-primary:#1a1a1a;--color-secondary:#f5f5f5;--color-accent:#c9a962;--color-accent-hover:#dfc07a;--color-text:#fff;--color-text-muted:#fff;--font-display:"Helvetica Neue", Helvetica, Arial, sans-serif;--font-body:"Helvetica Neue", Helvetica, Arial, sans-serif;--transition-smooth:cubic-bezier(.4, 0, .2, 1);--touch-target-min:44px}*{box-sizing:border-box;margin:0;padding:0}html,body{width:1080px;height:1920px;font-family:var(--font-body);background:var(--color-primary);color:var(--color-text);touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;overflow:hidden}#app{width:100%;height:100%;position:relative;overflow:hidden}#canvas{width:100%;height:100%;display:block;position:absolute;top:0;left:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--color-accent);color:var(--color-primary);z-index:10000;transition:top .3s var(--transition-smooth);padding:16px 32px;font-size:18px;font-weight:600;text-decoration:none;position:absolute;top:-100px;left:50%;transform:translate(-50%)}.skip-link:focus{outline:3px solid var(--color-text);outline-offset:2px;top:20px}.loading-screen{background:var(--color-primary);z-index:9999;width:100%;height:100%;transition:opacity .5s var(--transition-smooth);justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}.loading-screen.hidden{opacity:0;pointer-events:none}.loading-content{text-align:center}.loading-spinner{border:3px solid var(--color-text-muted);border-top-color:var(--color-accent);border-radius:50%;width:60px;height:60px;margin:0 auto 24px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-family:var(--font-display);letter-spacing:4px;text-transform:uppercase;color:var(--color-text);font-size:28px}.video-container{z-index:1000;opacity:1;width:100%;height:100%;transition:opacity .3s var(--transition-smooth);background:#000000f2;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}.video-container.hidden{opacity:0;pointer-events:none}.video-container video{background:#000;max-width:100%;max-height:85%}.video-close-btn{width:64px;height:64px;min-width:var(--touch-target-min);min-height:var(--touch-target-min);border:2px solid var(--color-text);color:var(--color-text);cursor:pointer;transition:all .2s var(--transition-smooth);background:#ffffff1a;border-radius:50%;font-size:32px;position:absolute;top:40px;right:40px}.video-close-btn:hover,.video-close-btn:focus{background:var(--color-accent);border-color:var(--color-accent);transform:scale(1.1)}.video-close-btn:focus{outline:3px solid var(--color-text);outline-offset:4px}.video-controls{background:#000c;border-radius:40px;align-items:center;gap:24px;padding:20px 32px;display:flex;position:absolute;bottom:60px;left:50%;transform:translate(-50%)}.video-controls button{width:56px;height:56px;min-width:var(--touch-target-min);min-height:var(--touch-target-min);border:2px solid var(--color-text);color:var(--color-text);cursor:pointer;transition:all .2s var(--transition-smooth);background:0 0;border-radius:50%;font-size:20px}.video-controls button:hover,.video-controls button:focus{background:var(--color-accent);border-color:var(--color-accent)}.video-controls button:focus{outline:3px solid var(--color-text);outline-offset:2px}.video-progress{cursor:pointer;background:#fff3;border-radius:4px;width:400px;height:8px;position:relative}.video-progress-bar{background:var(--color-accent);border-radius:4px;width:0%;height:100%;transition:width .1s linear}.hidden{display:none!important}.a11y-toggle{width:64px;height:64px;min-width:var(--touch-target-min);min-height:var(--touch-target-min);border:2px solid var(--color-text);color:var(--color-text);cursor:pointer;z-index:100;transition:all .2s var(--transition-smooth);background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:40px;right:40px}.a11y-toggle:hover,.a11y-toggle:focus{background:var(--color-accent);border-color:var(--color-accent);transform:scale(1.1)}.a11y-toggle:focus{outline:3px solid var(--color-text);outline-offset:4px}body.high-contrast{--color-primary:#000;--color-secondary:#fff;--color-accent:#ff0;--color-accent-hover:#ff9;--color-text:#fff;--color-text-muted:#fff}body.high-contrast .a11y-toggle{background:var(--color-accent);color:#000}:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{body{background:#fff!important}#app,#canvas,.a11y-toggle,.loading-screen{display:none!important}}.webcam-permission-overlay{z-index:500;width:100%;height:100%;color:var(--color-text);text-align:center;background:#000000e6;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex;position:absolute;top:0;left:0}.webcam-permission-overlay h2{font-family:var(--font-display);color:var(--color-accent);margin-bottom:20px;font-size:36px}.webcam-permission-overlay p{max-width:600px;margin-bottom:30px;font-size:20px;line-height:1.6}.webcam-permission-overlay button{background:var(--color-accent);color:var(--color-primary);cursor:pointer;transition:all .2s var(--transition-smooth);border:none;border-radius:8px;padding:16px 48px;font-size:20px;font-weight:600}.webcam-permission-overlay button:hover{background:var(--color-accent-hover);transform:scale(1.05)}
