:root{--bg: #0a1d37;--fg: #ffe0b5}*,*:before,*:after{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}body{overflow:hidden;background-color:var(--bg);color:var(--fg);font-family:Palatino Linotype,Book Antiqua,Garamond,Times New Roman,serif}#app{width:100%;height:100%}.landing{position:relative;width:100%;height:100%;overflow:hidden}.starfield{position:absolute;inset:0;z-index:0;pointer-events:none}.star-canvas{display:block;width:100%;height:100%}.star-fallback{position:absolute;width:2px;height:2px;border-radius:999px;transform:translate(-50%,-50%);background-color:#ffffffd1;box-shadow:0 0 4px #ffffff59}.sf-1{left:15%;top:35%}.sf-2{left:24%;top:43%}.sf-3{left:39%;top:46%}.landing-content{position:relative;z-index:1;width:100%;height:100%;display:grid;place-items:center;align-content:center;justify-items:center;gap:1rem;padding:1.5rem;text-align:center}.logo-stack{display:flex;flex-direction:column;align-items:center;gap:1.05rem}.logo{display:block;width:min(34vw,300px);max-width:100%;height:auto;object-fit:contain}.visitor-sequence{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.58rem;min-height:2.1rem;margin-top:.12rem;left:3rem}.visitor-star-canvas{display:block;width:1.85rem;height:1.85rem;opacity:0;transition:opacity .7s ease}.visitor-star-canvas.is-shooting{transition:none;filter:drop-shadow(0 0 12px rgba(255,255,255,.95)) drop-shadow(calc(var(--trail-x1, 0) * 1px) calc(var(--trail-y1, 0) * 1px) 6px rgba(190,220,255,.8)) drop-shadow(calc(var(--trail-x2, 0) * 1px) calc(var(--trail-y2, 0) * 1px) 12px rgba(150,190,255,.56))}.visitor-star-canvas.is-consumed{opacity:0}.visitor-text{margin:0;opacity:0;color:var(--fg);font-size:clamp(.9rem,1.02vw,1rem);letter-spacing:.09em;line-height:1.2;font-family:Trebuchet MS,Segoe UI,Tahoma,Verdana,sans-serif;transition:opacity .8s ease}.visitor-sequence.is-star-visible .visitor-star-canvas{opacity:.94}.visitor-sequence.is-star-visible .visitor-star-canvas.is-consumed{opacity:0}.visitor-sequence.is-text-visible .visitor-text{opacity:.9}.visitor-sequence.is-departing .visitor-text{opacity:0;transition-duration:.62s}.transmission-log{position:absolute;right:1.1rem;bottom:.95rem;z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:.26rem;opacity:0;pointer-events:none;transition:opacity .48s ease}.transmission-log.is-visible{opacity:.92;pointer-events:auto}.transmission-toggle{display:inline-flex;align-items:center;gap:.32rem;padding:.15rem .34rem;border:1px solid rgba(187,216,255,.16);border-radius:4px;background:#09182e3d;color:#c9e0ffbd;font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:.72rem;letter-spacing:.075em;line-height:1;cursor:pointer;transition:border-color .22s ease,color .22s ease,background-color .22s ease}.transmission-toggle:hover{border-color:#c4e2ff42;color:#d8ecffdb}.transmission-toggle:focus-visible{outline:1px solid rgba(214,236,255,.48);outline-offset:2px}.transmission-toggle.is-receiving{animation:transmission-receive .72s ease;border-color:#daeeff57;color:#e4f3ffeb}.transmission-icon{opacity:.78;transition:opacity .42s ease}.transmission-log.is-open .transmission-icon{opacity:0}.transmission-message{margin:0;min-height:1.1em;color:#cde4ffbd;font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:.72rem;letter-spacing:.055em;line-height:1.2;text-shadow:0 0 6px rgba(174,206,255,.18);opacity:0;transition:opacity .26s ease;white-space:nowrap}.transmission-message.is-visible{opacity:.86}@keyframes transmission-receive{0%,to{box-shadow:0 0 #bedcff00}45%{box-shadow:0 0 12px #bedcff52,0 0 24px #a0c8ff33}}.textline{margin:0;font-size:clamp(1rem,1.3vw,1.25rem);font-weight:500;letter-spacing:.12em;line-height:1.2;text-transform:uppercase;color:var(--fg);opacity:.9}@media(prefers-reduced-motion:reduce){.visitor-star-canvas,.visitor-text{transition-duration:.12s}.visitor-star-canvas.is-shooting{filter:drop-shadow(0 0 8px rgba(255,255,255,.45))}.transmission-log,.transmission-toggle,.transmission-icon,.transmission-message{transition-duration:.12s}.transmission-toggle.is-receiving{animation:none}}
