body{margin:0;padding:0;overflow:hidden;background:#000;font-family:monospace,sans-serif}.site-header{display:flex;width:100%;justify-content:space-between;position:absolute;top:0;left:0;z-index:100;padding:15px;box-sizing:border-box}@media (max-width: 768px) and (orientation: portrait){.site-header{flex-direction:column;gap:20px;padding:10px}.simulation-controls{order:1;width:100%;box-sizing:border-box}.author-info{order:2;width:100%;padding-top:0;text-align:center}.author-name{font-size:2.5rem}.control-group{flex-direction:column;align-items:flex-start;gap:.5rem;margin-bottom:12px}.control-label{min-width:auto;font-size:.8rem}.control-input{width:100%;max-width:300px}}.simulation-controls{display:none;color:#fff;background:#0000004d;padding:15px;border-radius:5px;flex-shrink:0}.simulation-controls fieldset{border:none;padding:0;margin:0}.simulation-controls legend{position:absolute;left:-9999px}.control-group{display:flex;gap:1rem;align-content:center;align-items:center;margin-bottom:6px;font-size:.7rem}.control-label{min-width:100px}.control-input{width:200px}.control-value{font-weight:700}.author-info{display:block;width:330px;font-family:Inter,sans-serif;color:#fff;padding-top:1rem;flex-shrink:0}.author-name{font-size:3rem;font-weight:700;margin:0;padding:0;letter-spacing:.05rem}.author-description{font-size:.8rem;margin:.5rem 0 0}.simulation-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1}a{color:#00d4ff;text-decoration:none;transition:color .3s ease,text-shadow .3s ease;position:relative}a:hover{color:#66e6ff;text-shadow:0 0 8px rgba(0,212,255,.4)}a:focus{outline:2px solid #00d4ff;outline-offset:2px;border-radius:2px}a[href^=http]:not([href*="nilsharrison.com"]):after,a[href^=https]:not([href*="nilsharrison.com"]):after{content:"↗";font-size:.75em;margin-left:.25em;opacity:.7;vertical-align:super;line-height:0}
