:root{--cream: #F8F0E2;--peach: #F3CDB2;--sage: #CDD9BD;--rose: #E9BDB4;--butter: #F0DEAC;--ink: #4D4138;--coral: #DF4F26;--white: #FFFFFF;--ink-dim: rgba(77,65,56,.55);--r-sm: 10px;--r-md: 16px;--r-lg: 24px;--shadow: 0 2px 12px rgba(77,65,56,.1);--shadow-md: 0 4px 24px rgba(77,65,56,.15)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Roboto,system-ui,sans-serif;background:var(--cream);color:var(--ink);min-height:100vh}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600}h1{font-size:2rem;line-height:1.2}h2{font-size:1.4rem}h3{font-size:1.1rem}p{line-height:1.6;color:var(--ink-dim)}label{font-size:.85rem;font-weight:500;display:block;margin-bottom:4px}small{font-size:.78rem;color:var(--ink-dim)}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--r-sm);font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s,transform .1s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--coral);color:#fff}.btn-secondary{background:var(--peach);color:var(--ink)}.btn-outline{background:transparent;border:1.5px solid var(--ink);color:var(--ink)}.btn-ghost{background:transparent;color:var(--ink-dim);padding:8px 12px}.btn-sm{padding:6px 14px;font-size:.82rem}.btn-lg{padding:14px 28px;font-size:1rem}.btn-full{width:100%;justify-content:center}.btn-danger{background:var(--rose);color:var(--ink)}.field{margin-bottom:16px}input[type=text],input[type=email],input[type=password]{width:100%;padding:11px 14px;border-radius:var(--r-sm);border:1.5px solid var(--peach);background:#fff;font-family:inherit;font-size:.95rem;color:var(--ink);outline:none;transition:border-color .15s}input:focus{border-color:var(--coral)}input.code-input{font-family:DM Mono,monospace;font-size:1.8rem;text-align:center;letter-spacing:.2em;text-transform:uppercase;padding:14px}.card{background:#fff;border-radius:var(--r-md);padding:20px;box-shadow:var(--shadow)}nav{background:var(--cream);border-bottom:1px solid var(--peach);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.nav-logo{font-family:Fraunces,serif;font-size:1.4rem;font-weight:700;color:var(--coral);text-decoration:none}.nav-actions{display:flex;gap:8px;align-items:center}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-wrap{width:100%;max-width:400px}.auth-logo{font-family:Fraunces,serif;font-size:2.2rem;font-weight:700;color:var(--coral);text-align:center;margin-bottom:6px}.auth-sub{text-align:center;margin-bottom:28px}.auth-toggle{text-align:center;margin-top:16px;font-size:.88rem;color:var(--ink-dim)}.auth-toggle a{color:var(--coral);cursor:pointer;text-decoration:underline}.page-content{padding:24px;max-width:720px;margin:0 auto}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 32px}@media(max-width:600px){.home-actions{grid-template-columns:1fr}}.action-card{background:#fff;border-radius:var(--r-md);padding:24px;cursor:pointer;border:2px solid transparent;transition:border-color .15s,box-shadow .15s;text-align:center;box-shadow:var(--shadow)}.action-card:hover{border-color:var(--coral);box-shadow:var(--shadow-md)}.action-card .icon{font-size:2.4rem;margin-bottom:10px}.section-label{font-family:DM Mono,monospace;font-size:.78rem;font-weight:500;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}.pairing-list{display:flex;flex-direction:column;gap:10px}.pairing-item{background:#fff;border-radius:var(--r-sm);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow)}.pairing-name{font-weight:600}.pairing-code{font-family:DM Mono,monospace;font-size:.82rem;color:var(--ink-dim)}.pairing-actions{display:flex;gap:6px}.qr-wrap{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 0}.qr-frame{background:#fff;border-radius:var(--r-md);padding:20px;box-shadow:var(--shadow-md);border:3px solid var(--coral)}.qr-code-display{font-family:DM Mono,monospace;font-size:2rem;letter-spacing:.2em;color:var(--coral);font-weight:500}.join-wrap{max-width:380px;width:100%;text-align:center}.center-page{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:24px}.monitor-layout{display:grid;grid-template-columns:1fr 300px;gap:16px;padding:16px;flex:1}@media(max-width:768px){.monitor-layout{grid-template-columns:1fr}}.video-area{background:var(--ink);border-radius:var(--r-md);overflow:hidden;position:relative;min-height:320px;display:flex;align-items:center;justify-content:center}.video-area video{width:100%;height:100%;object-fit:cover;display:block}.video-placeholder{color:#fff6;font-size:.9rem;text-align:center;padding:32px}.video-badge{position:absolute;top:12px;left:12px;background:#0000008c;color:#fff;padding:4px 10px;border-radius:20px;font-size:.76rem;font-family:DM Mono,monospace}.sidebar{display:flex;flex-direction:column;gap:12px;overflow-y:auto}.status-bar{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:var(--r-sm);font-size:.85rem;font-weight:500}.status-bar.connected{background:var(--sage)}.status-bar.reconnecting{background:var(--butter)}.status-bar.offline{background:var(--rose)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--ink);flex-shrink:0}.sound-meter{display:flex;align-items:flex-end;gap:3px;height:36px}.sound-bar{width:7px;border-radius:3px;background:var(--sage);transition:height .08s;min-height:4px}.sound-bar.active{background:var(--coral)}.talk-btn{width:60px;height:60px;border-radius:50%;background:var(--coral);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:#fff;transition:transform .1s,background .1s;box-shadow:var(--shadow-md)}.talk-btn.active{background:var(--ink);transform:scale(1.1)}.talk-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}.event-log{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.event-item{font-family:DM Mono,monospace;font-size:.76rem;padding:4px 8px;border-radius:4px}.event-item.noise{background:var(--butter)}.event-item.motion{background:var(--sage)}.toast-wrap{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:var(--ink);color:#fff;padding:10px 20px;border-radius:var(--r-sm);font-size:.88rem;animation:fadein .2s ease}.toast.error{background:#c0392b}@keyframes fadein{0%{opacity:0}to{opacity:1}}.divider{border:none;border-top:1px solid var(--peach);margin:16px 0}.mono{font-family:DM Mono,monospace}:root{--boop-cycle: 2.6s;--boop-gap: 110px;--boop-size: 280px;--boop-paper: #F3E8D3;--boop-paper-deep: #EAD8B6;--boop-ink-deep: #211B14}.boop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;background:var(--boop-paper);display:flex;align-items:center;justify-content:center;overflow:hidden}.boop-overlay:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(var(--boop-paper-deep) 1.3px,transparent 1.4px);background-size:24px 24px;opacity:.55}.boop-stage{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:38px}.boop-widget{position:relative;width:var(--boop-size);height:var(--boop-size);isolation:isolate}.boop-shadow{position:absolute;left:50%;bottom:14px;transform:translate(-50%);width:62%;height:14px;border-radius:50%;background:#211b142e;filter:blur(6px);animation:boopShadow var(--boop-cycle) ease-in-out infinite;z-index:0}@keyframes boopShadow{0%,38%,to{transform:translate(-50%) scaleX(.85);opacity:.45}62%,78%{transform:translate(-50%) scaleX(1.05);opacity:.65}}.boop-half{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/boop-logo.png);background-repeat:no-repeat;background-position:center center;background-size:contain;z-index:2;transform-origin:center center;will-change:transform}.boop-dog{clip-path:inset(0 52.05% 0 0);animation:boopDog var(--boop-cycle) cubic-bezier(.55,.05,.25,1) infinite}.boop-cat{clip-path:inset(0 0 0 47.95%);animation:boopCat var(--boop-cycle) cubic-bezier(.55,.05,.25,1) infinite}@keyframes boopDog{0%,8%{transform:translate(0) rotate(0)}30%{transform:translate(calc(var(--boop-gap) * -.5)) rotate(-4deg)}44%{transform:translate(calc(var(--boop-gap) * -.5)) rotate(-3deg)}62%{transform:translate(6px) rotate(2deg)}68%{transform:translate(2px) rotate(1deg) scaleX(.97)}78%,to{transform:translate(0) rotate(0) scaleX(1)}}@keyframes boopCat{0%,8%{transform:translate(0) rotate(0)}30%{transform:translate(calc(var(--boop-gap) * .5)) rotate(5deg)}44%{transform:translate(calc(var(--boop-gap) * .5)) rotate(4deg)}62%{transform:translate(-6px) rotate(-2deg)}68%{transform:translate(-2px) rotate(-1deg) scaleX(.97)}78%,to{transform:translate(0) rotate(0) scaleX(1)}}.boop-spark{position:absolute;left:47.95%;top:50%;width:0;height:0;transform:translate(-50%,-58%);z-index:3;pointer-events:none}.boop-heart{position:absolute;left:-13px;top:-13px;width:26px;height:26px;color:var(--coral);transform:scale(0);transform-origin:center;animation:boopHeart var(--boop-cycle) ease-out infinite}@keyframes boopHeart{0%,60%{transform:scale(0) translateY(0);opacity:0}66%{transform:scale(1.25) translateY(-2px);opacity:1}74%{transform:scale(1) translateY(-10px);opacity:1}88%{transform:scale(.9) translateY(-26px);opacity:0}to{transform:scale(0) translateY(-26px);opacity:0}}.boop-ray{position:absolute;left:0;top:0;width:2px;height:14px;background:var(--coral);border-radius:1px;transform-origin:center 30px;transform:translate(-1px,-30px) rotate(var(--r)) scaleY(0);animation:boopRay var(--boop-cycle) ease-out infinite}@keyframes boopRay{0%,60%{transform:translate(-1px,-30px) rotate(var(--r)) scaleY(0);opacity:0}65%{transform:translate(-1px,-30px) rotate(var(--r)) scaleY(1);opacity:1}74%{transform:translate(-1px,-40px) rotate(var(--r)) scaleY(.7);opacity:.8}82%{transform:translate(-1px,-46px) rotate(var(--r)) scaleY(0);opacity:0}to{opacity:0}}.boop-word{position:absolute;left:47.95%;top:-6px;font-family:Fraunces,serif;font-style:italic;font-weight:800;font-size:30px;color:var(--coral);letter-spacing:-.01em;transform:translate(-50%,-100%) rotate(-7deg) scale(0);transform-origin:bottom center;text-shadow:2px 2px 0 var(--boop-ink-deep);animation:boopWord var(--boop-cycle) cubic-bezier(.2,1.4,.4,1) infinite;z-index:4;pointer-events:none}@keyframes boopWord{0%,60%{transform:translate(-50%,-100%) rotate(-7deg) scale(0);opacity:0}66%{transform:translate(-50%,-110%) rotate(-9deg) scale(1.1);opacity:1}74%{transform:translate(-50%,-118%) rotate(-7deg) scale(1);opacity:1}88%{transform:translate(-50%,-150%) rotate(-5deg) scale(.95);opacity:0}to{opacity:0}}.boop-caption{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.boop-ttl{font-family:Fraunces,serif;font-weight:600;font-style:italic;font-size:20px;color:var(--ink-dim)}.boop-ttl strong{font-style:normal;font-weight:800;color:var(--ink)}.boop-coral{font-style:italic;font-weight:500;color:var(--coral)}.boop-meter{display:flex;align-items:center;gap:10px;font-family:DM Mono,monospace;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}.boop-bar{display:block;width:160px;height:3px;background:var(--boop-paper-deep);border-radius:2px;overflow:hidden;position:relative}.boop-bar:after{content:"";position:absolute;top:0;bottom:0;left:0;width:35%;background:var(--coral);border-radius:2px;animation:boopFill var(--boop-cycle) cubic-bezier(.7,0,.3,1) infinite}@keyframes boopFill{0%{transform:translate(-110%);width:35%}62%{transform:translate(285%);width:35%}65%{transform:translate(0);width:100%}72%{transform:translate(0);width:100%}73%{transform:translate(-110%);width:35%}to{transform:translate(120%);width:35%}}.boop-dots:after{content:"";display:inline-block;width:0;animation:boopDots var(--boop-cycle) steps(4,end) infinite;overflow:hidden;vertical-align:bottom}@keyframes boopDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}to{content:""}}@media(prefers-reduced-motion:reduce){.boop-dog,.boop-cat,.boop-shadow,.boop-heart,.boop-ray,.boop-word,.boop-bar:after{animation:none}.boop-heart,.boop-ray,.boop-word{display:none}}
