@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/caveat-latin-400-normal-D6LQsQ_v.woff2)format("woff2")}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/caveat-latin-600-normal-zlTlWIYU.woff2)format("woff2")}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:optional;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:optional;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2")}:root{--color-bg:#fdfbf7;--color-surface:#fff;--color-primary:#c67b5c;--color-primary-hover:#a15419;--color-text:#2d2d2d;--color-text-muted:#6b6358;--color-border:#e8dfd1;--color-cream:#f5f0e1;--color-error:#d4483b;--color-success:#3f6128;--shadow-card:0 4px 20px #2d2d2d14;--shadow-hard:3px 3px 0 var(--color-text);--shadow-lifted:0 8px 28px #2d2d2d1f;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--radius-organic:24px 28px 32px 28px;--transition-fast:.15s ease-out;--transition-normal:.2s ease-out;--transition-slow:.3s ease-out}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{color:var(--color-text);background:var(--color-bg);font-family:Nunito,sans-serif;font-size:16px}body{background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23E8DFD1' fill-opacity='0.12'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"),linear-gradient(160deg,#fdfbf7 0%,#f5f0e1 100%);min-height:100dvh}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input:focus-visible{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #c67b5c33}textarea:focus-visible{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #c67b5c33}.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}.loading-shell{background:var(--color-bg);justify-content:center;align-items:center;min-height:100dvh;display:flex}.loading-shell__spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite loading-shell-spin}@keyframes loading-shell-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading-shell__spinner{border-top-color:var(--color-border);animation:none}*,:before,:after{transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}}.btn{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;min-height:44px;transition:background var(--transition-fast), transform var(--transition-fast);border:none;padding:.625rem 1.25rem;font-family:Nunito,sans-serif;font-size:1rem;font-weight:700}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:hover:not(:disabled){background:var(--color-primary-hover)}.btn--hero{padding:.75rem 1.5rem}.btn--inline{white-space:nowrap;font-size:.875rem}.btn--ghost{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-height:36px;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast);justify-content:center;align-items:center;gap:.5rem;padding:.375rem 1rem;font-family:Nunito,sans-serif;font-size:.875rem;font-weight:600;display:inline-flex}.btn--ghost:hover:not(:disabled){background:var(--color-cream)}.btn--ghost:active:not(:disabled){transform:scale(.97)}.btn--icon{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);width:36px;height:36px;min-height:0;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.btn--icon:hover:not(:disabled){background:var(--color-cream);color:var(--color-primary-hover)}.btn--icon>svg{flex:none;width:18px;height:18px}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.5rem}@keyframes wobble{0%,to{transform:rotate(0)}25%{transform:rotate(1.5deg)}75%{transform:rotate(-1.5deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.room-code-entry{flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:2rem;display:flex}.room-code-entry h1{color:var(--color-primary);margin-bottom:2rem;font-family:Caveat,cursive;font-size:3.5rem;font-weight:600}.room-code-entry form{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-card);flex-direction:column;gap:1rem;padding:2rem;display:flex}.room-code-input{text-align:center;letter-spacing:.2em;border:2px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);text-transform:uppercase;transition:border-color var(--transition-fast);padding:.75rem 1rem;font-family:JetBrains Mono,monospace;font-size:2rem;font-weight:700}.room-code-input:focus{border-style:solid;border-color:var(--color-primary)}.room-code-entry>form input:not(.room-code-input){border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);min-height:44px;transition:border-color var(--transition-fast);padding:.75rem 1rem;font-family:Nunito,sans-serif;font-size:1rem}.room-code-entry .error{color:var(--color-error);text-align:center;font-size:.875rem}.room-code-entry__tabs{margin-bottom:1.5rem}.room-code-entry__host{flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:360px;display:flex}.room-code-entry__auth{flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.room-code-entry__auth-note{color:var(--color-text-muted);font-size:.8rem}.create-jar{text-align:center;width:100%;max-width:360px}.create-jar h2{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:.875rem;font-weight:600}.create-jar form{gap:.5rem;display:flex}.create-jar input{border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:44px;color:var(--color-text);transition:border-color var(--transition-fast);flex:1;padding:.625rem 1rem;font-family:Nunito,sans-serif;font-size:1rem}.template-browser{text-align:center;width:100%;max-width:360px;margin-top:.5rem}.template-browser__toggle{color:var(--color-primary);cursor:pointer;text-underline-offset:2px;transition:color var(--transition-fast);background:0 0;border:none;font-family:Nunito,sans-serif;font-size:.8rem;font-weight:600;text-decoration:underline}.template-browser__toggle:hover{color:var(--color-primary-hover)}.template-browser__list{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.template-browser__loading,.template-browser__empty{color:var(--color-text-muted);font-size:.8rem}.template-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:box-shadow var(--transition-fast);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.template-card:hover{box-shadow:var(--shadow-card)}.template-card__name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.875rem;font-weight:600;overflow:hidden}.template-card__clone{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;cursor:pointer;min-height:36px;transition:background var(--transition-fast), transform var(--transition-fast);border:none;padding:.375rem .75rem;font-family:Nunito,sans-serif;font-size:.75rem;font-weight:700}.template-card__clone:hover:not(:disabled){background:var(--color-primary-hover)}.template-card__clone:active:not(:disabled){transform:scale(.97)}.template-card__clone:disabled{opacity:.5;cursor:not-allowed}.auth-buttons{flex-direction:column;gap:.5rem;width:100%;max-width:360px;display:flex}.auth-button{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:44px;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast);padding:.75rem 1rem;font-family:Nunito,sans-serif;font-size:.875rem;font-weight:600}.auth-button:hover{background:var(--color-cream)}.auth-button:active{transform:scale(.97)}.auth-button--anonymous{color:var(--color-text-muted);border-style:dashed;font-style:italic}.viewer-notice{color:var(--color-text-muted);text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);cursor:pointer;width:100%;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);padding:1rem;font-family:Nunito,sans-serif;font-size:.875rem;font-weight:600}.viewer-notice:hover{background:var(--color-cream);color:var(--color-text);border-color:var(--color-primary)}.pull-history{position:relative}.pull-history__toggle{padding:.375rem .75rem;font-size:.8rem}.pull-history__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:300px;max-height:400px;box-shadow:var(--shadow-lifted);z-index:100;margin-top:.5rem;padding:.75rem;position:absolute;top:100%;right:0;overflow-y:auto}.pull-history__empty{color:var(--color-text-muted);text-align:center;padding:1rem 0;font-size:.8rem}.pull-history__list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.pull-history__entry{border-bottom:1px solid var(--color-cream);flex-direction:column;padding:.5rem;display:flex}.pull-history__text{color:var(--color-text);font-family:Caveat,cursive;font-size:1.1rem}.pull-history__meta{color:var(--color-text-muted);font-size:.7rem}.pull-history__clear{border:1px solid var(--color-border);cursor:pointer;color:var(--color-error);width:100%;transition:background var(--transition-fast);background:0 0;border-radius:6px;margin-top:.5rem;padding:.375rem .75rem;font-family:Nunito,sans-serif;font-size:.75rem}.pull-history__clear:hover{background:#d4483b0f}.empty-state{color:var(--color-primary);text-align:center;padding:1rem;font-family:Caveat,cursive;font-size:1.25rem}.room-view{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}main:has(.room-view){flex-direction:column;height:100dvh;display:flex}.room-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.room-code{color:#fff;letter-spacing:.12em;background:var(--color-primary-hover);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--transition-fast);border:none;padding:.25rem .75rem;font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:700;position:relative}.room-code:hover{background:var(--color-primary)}.room-code__copied{letter-spacing:normal;color:#fff;background:var(--color-success);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;z-index:10;padding:.15rem .5rem;font-family:Nunito,sans-serif;font-size:.7rem;font-weight:700;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.room-actions{gap:.5rem;margin-left:auto;display:flex}.room-actions--collapsed{gap:0}.room-header-menu{position:relative}.room-header-menu__toggle{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);width:40px;height:40px;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.room-header-menu__toggle:hover{background:var(--color-cream);color:var(--color-primary-hover)}.room-header-menu__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:180px;box-shadow:var(--shadow-lifted);z-index:200;animation:jar-drawer-in var(--transition-fast) ease-out;flex-direction:column;gap:.25rem;padding:.5rem;display:flex;position:absolute;top:calc(100% + .5rem);right:0}:where(.room-header-menu__panel)>button{text-align:left;justify-content:flex-start;width:100%}:where(.room-header-menu__panel) .btn--ghost{text-align:left;justify-content:flex-start;width:100%}:where(.room-header-menu__panel) .btn--icon{text-align:left;justify-content:flex-start;width:100%}:where(.room-header-menu__panel) .btn--icon{border-radius:var(--radius-sm);width:100%;height:auto;min-height:36px;color:var(--color-text);gap:.5rem;padding:.375rem .75rem;font-family:Nunito,sans-serif;font-size:.875rem;font-weight:600}:where(.room-header-menu__panel) .btn--icon:after{content:attr(title)}:where(.room-header-menu__panel) .pull-history{width:100%}:where(.room-header-menu__panel) .pull-history__toggle{text-align:left;justify-content:flex-start;width:100%}:where(.room-header-menu__panel) .pull-history__panel{width:100%;max-height:50vh;box-shadow:none;margin-top:.25rem;position:static}.room-members{border-bottom:1px solid var(--color-border);padding:.75rem 1.5rem}.room-members h2{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.5rem;font-size:.75rem;font-weight:600}.room-members ul{flex-wrap:wrap;gap:.75rem;max-height:100px;list-style:none;display:flex;overflow-y:auto}.room-members li{color:var(--color-text);font-size:.875rem;font-weight:600}.room-scene{flex-direction:column;flex:1;align-items:center;gap:24px;min-height:0;padding:1.5rem;display:flex;position:relative;overflow-y:auto}.jar{transition:transform var(--transition-normal);flex-direction:column;align-items:center;display:flex}.jar:hover{animation:.4s ease-in-out wobble}.jar--highlighted{transform:scale(1.05)}.jar__body{cursor:pointer;transition:transform var(--transition-fast);background:0 0;border:none;padding:0;position:relative}.jar__body:hover:not(:disabled){transform:translateY(-3px)}.jar__body:disabled{opacity:.6;cursor:not-allowed}.jar__svg-wrap{justify-content:center;align-items:center;width:200px;height:240px;display:flex;position:relative}.jar__custom-image{object-fit:contain;filter:drop-shadow(0 6px 12px #2d2d2d26);will-change:transform;max-width:200px;max-height:240px}.default-jar-svg{filter:drop-shadow(0 6px 12px #2d2d2d26);width:100%;height:100%;transition:transform var(--transition-fast);will-change:transform}.jar__body:hover:not(:disabled) .default-jar-svg{transform:rotate(-1deg)}.jar__count{color:var(--color-primary);pointer-events:none;text-shadow:0 1px #ffffffb3;padding:0 .15em;font-family:Caveat,cursive;font-size:3rem;font-weight:600;line-height:1;position:absolute;top:58%;left:50%;transform:translate(-50%,-50%)}.jar__label{color:var(--color-primary);margin-top:.25rem;font-family:Caveat,cursive;font-size:1.1rem}.note-form{background:repeating-linear-gradient(transparent, transparent 31px, var(--color-border) 31px, var(--color-border) 32px), var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:380px;box-shadow:var(--shadow-card);flex-direction:column;gap:.75rem;padding:1.5rem;display:flex}.note-form__text{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);resize:vertical;min-height:96px;color:var(--color-text);z-index:1;padding:.75rem;font-family:Caveat,cursive;font-size:1.4rem;line-height:32px;position:relative}.note-form__text::placeholder{color:#8a7f71;font-family:Caveat,cursive}.note-form__text:focus{border-color:var(--color-primary);outline:none}.note-form__url{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-height:40px;color:var(--color-text);z-index:1;padding:.5rem .75rem;font-family:Nunito,sans-serif;font-size:.875rem;position:relative}.note-form__url::placeholder{color:#b5a997}.note-form__url:focus{border-color:var(--color-primary);outline:none}.note-form__submit{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;min-height:44px;transition:background var(--transition-fast), transform var(--transition-fast);border:none;padding:.75rem 1rem;font-family:Nunito,sans-serif;font-size:.875rem;font-weight:700}.note-form__submit:hover:not(:disabled){background:var(--color-primary-hover)}.note-form__submit:active:not(:disabled){transform:scale(.97)}.note-form__submit:disabled{opacity:.5;cursor:not-allowed}.note-form--sticky{background:#fef9c3;border-color:#e0d47a}.note-form--sticky .note-form__text{color:#4a3a00}.note-form--index_card{background:linear-gradient(90deg,#0000 30px,#f8a2a2 30px 31px,#0000 31px),repeating-linear-gradient(#0000,#0000 31px,#dbe7f3 31px 32px),#fff;border-color:#e6e9ef;padding-left:2.75rem}.note-form--napkin{background:repeating-linear-gradient(45deg,#d4483b0d 0 2px,#0000 2px 14px),#fee2e2;border-color:#f0b4b4}.note-form--napkin .note-form__text{color:var(--color-text)}.note-form--parchment{box-shadow:var(--shadow-card), inset 0 0 20px #7052291a;background:linear-gradient(135deg,#f5efdc 0%,#e8dcc1 60%,#dac8a2 100%);border-color:#7052294d}.note-form--parchment .note-form__text{color:#4a3a1e}.note-form--fortune_cookie{box-shadow:var(--shadow-card);background:#fef3c7;border-color:#e5d5a5}.note-form--fortune_cookie .note-form__text{text-align:left;color:#6b4423;font-family:Nunito,sans-serif;font-size:1rem;font-style:italic;line-height:1.5}.note-form--fortune_cookie .note-form__text::placeholder{font-family:Nunito,sans-serif;font-style:italic}.sealed-stack{flex-direction:column;align-items:center;gap:.5rem;margin:1rem 0;display:flex}.sealed-stack__cards{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.sealed-card{animation:fadeInUp var(--transition-slow) ease-out both;animation-delay:calc(var(--i) * 80ms);transform-origin:bottom}.sealed-card:nth-child(odd){transform:rotate(-3deg)}.sealed-card:nth-child(2n){transform:rotate(2deg)}.sealed-card:nth-child(3n){transform:rotate(-1deg)translateY(-2px)}.sealed-card__svg{filter:drop-shadow(0 3px 6px #2d2d2d2e);width:56px;height:64px}.sealed-stack__label{color:var(--color-text-muted);margin:0;font-family:Caveat,cursive;font-size:1.1rem}.sealed-stack__label strong{color:var(--color-primary);font-weight:600}.pulled-notes{flex-wrap:wrap;justify-content:center;gap:1rem;width:100%;max-width:800px;display:flex}.pulled-note{border-radius:var(--radius-sm);min-width:180px;max-width:260px;box-shadow:var(--shadow-hard);animation:fadeInUp var(--transition-slow) ease-out both;background:#fff8ee;border:none;padding:1rem 1.25rem;font-family:Caveat,cursive;transform:rotate(-1.5deg)}.pulled-note:nth-child(2n){transform:rotate(1.5deg)}.pulled-note:nth-child(3n+3){transform:rotate(-.5deg)}.pulled-note__text{color:var(--color-text);overflow-wrap:anywhere;max-height:8em;margin-bottom:.5rem;font-size:1.4rem;line-height:1.35;overflow-y:auto}.pulled-note--sticky{background:#fef9c3}.pulled-note--index_card{box-shadow:var(--shadow-hard), inset 0 0 0 1px #e6e9ef;background-color:#fff;background-image:linear-gradient(90deg,#0000 22px,#f8a2a2 22px 23px,#0000 23px),repeating-linear-gradient(#0000,#0000 26px,#dbe7f3 26px 27px);border-radius:4px;padding-left:2rem}.pulled-note--napkin{border-radius:var(--radius-md);clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),96% 100%,4% calc(100% - 6px),0 100%);background-color:#fee2e2;background-image:repeating-linear-gradient(45deg,#d4483b0f 0 2px,#0000 2px 14px)}.pulled-note--parchment{box-shadow:var(--shadow-hard), inset 0 0 20px #70522926;background:linear-gradient(135deg,#f5efdc 0%,#e8dcc1 60%,#dac8a2 100%);border-top:1px solid #7052292e;border-bottom:1px solid #7052292e;border-radius:2px;font-family:Caveat,cursive}.pulled-note--parchment .pulled-note__text{color:#4a3a1e}.pulled-note--fortune_cookie{min-width:180px;max-width:240px;box-shadow:var(--shadow-hard), inset 0 0 0 1px #e5d5a5;background:#fef3c7;border-radius:2px;padding:.75rem 1.25rem;font-family:Nunito,sans-serif;font-style:italic;transform:rotate(-.5deg)}.pulled-note--fortune_cookie .pulled-note__text{text-align:center;color:#6b4423;font-family:Nunito,sans-serif;font-size:1rem;font-style:italic;line-height:1.5}.pulled-note--fortune_cookie .pulled-note__text:before{content:"“ "}.pulled-note--fortune_cookie .pulled-note__text:after{content:" ”"}.pulled-note__url{color:var(--color-primary-hover);word-break:break-all;text-underline-offset:2px;margin-bottom:.5rem;font-family:Nunito,sans-serif;font-size:.75rem;text-decoration:underline;display:block}.pulled-note__pulled-by,.pulled-note__author{color:var(--color-text-muted);margin-bottom:.25rem;font-family:Nunito,sans-serif;font-size:.7rem;font-style:italic}.pulled-note__actions{gap:.5rem;display:flex}.pulled-note__actions button{border:1px solid var(--color-border);min-height:32px;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast);background:#ffffffb3;border-radius:6px;padding:.375rem .75rem;font-family:Nunito,sans-serif;font-size:.75rem;font-weight:600}.pulled-note__actions button:hover{background:var(--color-surface);border-color:var(--color-primary)}.pulled-note__actions button:active{transform:scale(.97)}.draggable-pulled-note{-webkit-user-select:none;user-select:none;z-index:1;position:relative}.draggable-pulled-note--dragging{z-index:100}.draggable-pulled-note--peer-dragging{z-index:50;box-shadow:0 8px 18px #c67b5c66}.discard-bin{width:68px;height:80px;color:var(--color-text-muted);opacity:.55;transition:color var(--transition-fast), opacity var(--transition-fast), transform var(--transition-fast);z-index:10;pointer-events:none;position:fixed;bottom:1.5rem;right:1.5rem}.discard-bin--highlighted{color:var(--color-error);opacity:1;transform:scale(1.15)}.discard-bin__icon{filter:drop-shadow(0 2px 3px #2d2d2d26);width:100%;height:100%;display:block}.cursor{transition:left 50ms linear,top 50ms linear}.sound-toggle[aria-pressed=true]{color:var(--color-error)}.install-prompt{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);box-shadow:var(--shadow-lifted);z-index:300;max-width:calc(100vw - 2rem);animation:fadeInUp var(--transition-slow) ease-out;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.install-prompt__text{color:var(--color-text);font-size:.875rem}.install-prompt__actions{gap:.375rem;display:flex}.install-prompt__btn{border-radius:var(--radius-pill);background:var(--color-primary-hover);color:#fff;cursor:pointer;min-height:32px;transition:background var(--transition-fast);border:none;padding:.375rem .875rem;font-family:Nunito,sans-serif;font-size:.8rem;font-weight:700}.install-prompt__btn:hover{background:#7a3e0f}.install-prompt__btn--secondary{color:var(--color-text-muted);border:1px solid var(--color-border);background:0 0}.install-prompt__btn--secondary:hover{background:var(--color-cream);color:var(--color-text)}@media (max-width:640px){.install-prompt{border-radius:var(--radius-md);flex-direction:column;gap:.5rem;padding:.75rem;bottom:5.5rem}}.connection-status{text-align:center;color:#a03c00;background:#fff3e0;border-bottom:2px solid #ff9800;padding:.75rem;font-size:.875rem;font-weight:600}@media (max-width:640px){.room-code-entry h1{font-size:2.5rem}.room-code-entry form{max-width:100%;padding:1.5rem}.room-header{flex-wrap:nowrap;gap:.5rem;padding:.5rem .75rem}:where(.room-header) .room-jar-name{text-overflow:ellipsis;white-space:nowrap;max-width:40vw;overflow:hidden}.room-actions--collapsed{margin-left:auto}.room-scene{gap:16px;padding:1rem}.jar__svg-wrap{width:160px;height:190px}.jar__count{font-size:2.4rem}.pulled-notes{gap:.75rem}.pulled-note{min-width:140px}.note-form{max-width:100%}.discard-bin{width:54px;height:64px;bottom:1rem;right:1rem}.draggable-pulled-note{touch-action:auto}}.note-style-picker{flex-wrap:wrap;gap:.5rem;padding:.25rem 0 .5rem;display:flex}.note-style-tile{border:2px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);cursor:pointer;width:72px;height:84px;transition:border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:.5rem;display:flex}.note-style-tile:hover{border-color:var(--color-primary)}.note-style-tile:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.note-style-tile--selected{border-color:var(--color-primary);box-shadow:var(--shadow-card)}.note-style-tile__sample{color:var(--color-text);font-family:Caveat,cursive;font-size:1.5rem;line-height:1}.note-style-tile__label{color:var(--color-text-muted);font-family:Nunito,sans-serif;font-size:.7rem}.note-style-tile--sticky{background:#fef9c3}.note-style-tile--index_card{background:repeating-linear-gradient(#fff, #fff 10px, var(--color-border) 10px, var(--color-border) 11px)}.note-style-tile--napkin{background:#fee2e2}.note-style-tile--parchment{background:linear-gradient(135deg,#f5f0e1,#e8dcc1)}.note-style-tile--fortune_cookie{background:#fef3c7;font-style:italic}.jar-settings-scrim{z-index:900;background:#2d2d2d73;animation:.2s ease-out jar-scrim-in;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes jar-scrim-in{0%{opacity:0}to{opacity:1}}.jar-settings-drawer{background:var(--color-bg);width:400px;max-width:100vw;box-shadow:var(--shadow-lifted);z-index:1000;flex-direction:column;animation:.25s ease-out jar-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes jar-drawer-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.jar-settings-drawer__header{border-bottom:1px solid var(--color-border);background:var(--color-surface);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.jar-settings-drawer__title{color:var(--color-text);margin:0;font-family:Caveat,cursive;font-size:1.75rem}.jar-settings-drawer__close{width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-pill);transition:background var(--transition-fast);background:0 0;border:none;font-size:1.5rem;line-height:1}.jar-settings-drawer__close:hover{background:var(--color-cream);color:var(--color-text)}.jar-settings-drawer__body{flex:1;padding:16px 24px 32px;overflow-y:auto}.jar-settings-section{border-bottom:1px solid var(--color-border);flex-direction:column;gap:20px;padding:24px 0;display:flex}.jar-settings-section:first-child{padding-top:8px}.jar-settings-section:last-child{border-bottom:none;padding-bottom:8px}.jar-settings-section__title{color:var(--color-primary);margin:0;font-family:Caveat,cursive;font-size:1.5rem;font-weight:600;line-height:1}.jar-settings-field{flex-direction:column;gap:8px;margin:0;display:flex}.jar-settings-field__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;font-weight:600;line-height:1}.jar-settings-field__hint{color:var(--color-text-muted);font-size:.8125rem;line-height:1.4}.jar-settings-field input[type=text],.jar-settings-field input[type=url]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-height:40px;color:var(--color-text);transition:border-color var(--transition-fast);padding:10px 12px;font-family:Nunito,sans-serif;font-size:.9375rem}.jar-settings-field input:focus{border-color:var(--color-primary);outline:none}.jar-settings-field input[type=range]{width:100%;accent-color:var(--color-primary)}.jar-settings-field-group{flex-direction:column;gap:8px;margin-top:4px;display:flex}.jar-settings-toggle{color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:10px;padding:4px 0;font-size:.9375rem;display:flex}.jar-settings-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer;margin-top:3px}.jar-settings-toggle>span{flex-direction:column;gap:2px;display:flex}.jar-settings-toggle__hint{color:var(--color-text-muted);font-size:.8125rem;line-height:1.35}.segmented-control{background:var(--color-cream);border-radius:var(--radius-pill);border:1px solid var(--color-border);gap:0;width:-moz-fit-content;width:fit-content;padding:3px;display:inline-flex}.segmented-control__option{min-height:32px;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-pill);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;padding:.375rem .875rem;font-family:Nunito,sans-serif;font-size:.85rem}.segmented-control__option:hover:not(.segmented-control__option--selected){color:var(--color-text)}.segmented-control__option--selected{background:var(--color-surface);color:var(--color-primary-hover);box-shadow:var(--shadow-card);font-weight:600}.segmented-control__option:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.bulk-import{flex-direction:column;gap:.5rem;display:flex}.bulk-import__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.bulk-import__textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);resize:vertical;padding:.6rem .75rem;font-family:Nunito,sans-serif;font-size:.9rem;line-height:1.5}.bulk-import__textarea:focus{border-color:var(--color-primary);outline:none}.bulk-import__footer{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.bulk-import__count{color:var(--color-text-muted);font-size:.8rem}.bulk-import__count--over{color:var(--color-error)}.bulk-import__submit{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;min-height:36px;transition:background var(--transition-fast);border:none;padding:.5rem 1rem;font-family:Nunito,sans-serif;font-size:.85rem;font-weight:700}.bulk-import__submit:hover:not(:disabled){background:var(--color-primary-hover)}.bulk-import__submit:disabled{opacity:.5;cursor:not-allowed}.bulk-import__feedback{color:var(--color-success);margin:.25rem 0 0;font-size:.85rem}@media (max-width:640px){.jar-settings-drawer{width:100%}}@media (prefers-reduced-motion:reduce){.jar-settings-scrim,.jar-settings-drawer{animation:none}}.top-bar{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 1.5rem;display:flex}.top-bar__brand{color:var(--color-primary);font-family:Caveat,cursive;font-size:1.5rem;font-weight:600}.top-bar__user{align-items:center;gap:.5rem;display:flex}.top-bar__avatar{border-radius:50%}.top-bar__name{color:var(--color-text);font-size:.875rem;font-weight:600}.top-bar__button{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;padding:.25rem .625rem;font-family:Nunito,sans-serif;font-size:.75rem}.top-bar__button:hover{background:var(--color-cream);color:var(--color-text)}.top-bar__button--primary{background:var(--color-primary-hover);color:var(--color-surface);border-color:var(--color-primary-hover)}.top-bar__button--primary:hover{background:var(--color-primary-hover);color:var(--color-surface);filter:brightness(1.1)}.sign-in-modal{z-index:200;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.sign-in-modal__backdrop{background:#2d2d2d73;position:absolute;top:0;bottom:0;left:0;right:0}.sign-in-modal__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:400px;padding:1.5rem;position:relative;box-shadow:0 12px 32px #0000002e}.sign-in-modal__header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.sign-in-modal__header h2{margin:0;font-size:1.125rem}.sign-in-modal__close{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted);background:0 0;padding:.25rem .625rem;font-family:Nunito,sans-serif;font-size:.75rem}.sign-in-modal__note{color:var(--color-text-muted);margin:0 0 1rem;font-size:.875rem}.my-jars-drawer{z-index:100;justify-content:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.my-jars-drawer__backdrop{background:#2d2d2d4d;position:absolute;top:0;bottom:0;left:0;right:0}.my-jars-drawer__panel{background:var(--color-surface);width:min(420px,100%);height:100%;box-shadow:var(--shadow-lifted);padding:1.25rem;position:relative;overflow-y:auto}.my-jars-drawer__header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.my-jars-drawer__header h2{color:var(--color-primary);font-family:Caveat,cursive;font-size:1.75rem}.my-jars-drawer__close{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted);background:0 0;padding:.25rem .625rem;font-family:Nunito,sans-serif;font-size:.75rem}.my-jars-drawer__section+.my-jars-drawer__section{margin-top:1.5rem}.my-jars-drawer__section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 .75rem;font-size:.875rem;font-weight:700}.my-jars-drawer__list{flex-direction:column;gap:.75rem;list-style:none;display:flex}.my-jars-drawer__jar{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);padding:.75rem}.my-jars-drawer__jar-name{color:var(--color-text);margin-bottom:.5rem;font-weight:700}.my-jars-drawer__rooms{flex-direction:column;gap:.375rem;list-style:none;display:flex}.my-jars-drawer__room{align-items:center;gap:.5rem;display:flex}.my-jars-drawer__code{color:#fff;background:var(--color-primary);letter-spacing:.12em;border-radius:var(--radius-pill);cursor:pointer;transition:background var(--transition-fast);border:none;padding:.15rem .5rem;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:700;position:relative}.my-jars-drawer__code:hover{background:var(--color-primary-hover)}.my-jars-drawer__action-row{justify-content:flex-end;display:flex}.my-jars-drawer__action{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;cursor:pointer;border:none;margin-left:auto;padding:.25rem .625rem;font-family:Nunito,sans-serif;font-size:.75rem}.my-jars-drawer__action:hover{background:var(--color-primary-hover)}.my-jars-drawer__empty,.my-jars-drawer__loading,.my-jars-drawer__error{color:var(--color-text-muted);font-size:.875rem}.my-jars-drawer__error{color:var(--color-error)}.room-jar-name{color:var(--color-text);font-family:Caveat,cursive;font-size:1.375rem;font-weight:600}.error-toast{z-index:2000;background:var(--color-error);color:#fff;border-radius:var(--radius-md);max-width:min(480px,100vw - 2rem);box-shadow:var(--shadow-lifted);cursor:pointer;align-items:center;gap:.75rem;padding:.75rem 1rem;font-family:Nunito,sans-serif;font-size:.95rem;animation:.2s ease-out fadeInUp;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.error-toast__text{flex:1}.error-toast__close{color:#fff;cursor:pointer;background:#ffffff2e;border:none;border-radius:50%;width:24px;height:24px;font-size:1rem;line-height:1}.error-toast__close:hover{background:#ffffff4d}.error-boundary{background:var(--color-bg);justify-content:center;align-items:center;min-height:100dvh;padding:2rem;display:flex}.error-boundary__card{background:var(--color-surface);border-radius:var(--radius-lg);max-width:420px;box-shadow:var(--shadow-card);text-align:center;padding:2rem}.error-boundary__title{color:var(--color-primary);margin-bottom:.75rem;font-family:Caveat,cursive;font-size:2rem}.error-boundary__message{color:var(--color-text-muted);margin-bottom:1.5rem;font-family:Nunito,sans-serif}.my-jars-drawer__jar-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.my-jars-drawer__delete{color:var(--color-error);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid;padding:.25rem .625rem;font-family:Nunito,sans-serif;font-size:.75rem;font-weight:600}.my-jars-drawer__delete:hover{background:var(--color-error);color:#fff}.jar-settings-reset-actions{gap:.5rem;margin-top:.5rem;display:flex}.jar-settings-reset-actions__btn{border-radius:var(--radius-md);transition:background var(--transition-fast), border-color var(--transition-fast);padding:.5rem 1rem}.jar-settings-reset-actions__btn:hover:not(:disabled){border-color:var(--color-primary)}.jar-settings-reset-actions__btn:disabled{opacity:.4;cursor:not-allowed}.jar-settings-reset-actions__btn--danger{color:var(--color-error);border-color:currentColor}.jar-settings-reset-actions__btn--danger:hover:not(:disabled){background:var(--color-error);color:#fff;border-color:var(--color-error)}
