@font-face{font-family:Syne;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/syne-latin-700-normal-AF3Rs61n.woff2)format("woff2"),url(/assets/syne-latin-700-normal-Cd-_iCn5.woff)format("woff")}@font-face{font-family:Syne;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/syne-latin-800-normal-EehdNYzx.woff2)format("woff2"),url(/assets/syne-latin-800-normal-BuJcbPcX.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/manrope-latin-400-normal-PaqtzbVb.woff2)format("woff2"),url(/assets/manrope-latin-400-normal-8tf8FM3T.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/manrope-latin-500-normal-BYYD-dBL.woff2)format("woff2"),url(/assets/manrope-latin-500-normal-DMZssgOp.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-latin-600-normal-4f0koTD-.woff2)format("woff2"),url(/assets/manrope-latin-600-normal-BqgrALkZ.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--void:#050607;--carbon:#101214;--graphite:#303337;--ghost:#eceff2;--signal:#b5f745;--pulse:#f94044;--text:var(--ghost);--text-muted:#eceff2b3;--text-faint:#eceff28c;--line:#1c1f23;--line-strong:var(--graphite);--on-signal:var(--void);--font-display:"Syne", system-ui, sans-serif;--font-text:"Manrope", system-ui, sans-serif;--font-data:"JetBrains Mono", ui-monospace, monospace;--fs-display:clamp(32px, 6vw, 56px);--fs-h1:24px;--fs-h2:18px;--fs-body:15px;--fs-small:14px;--fs-data:12px;--tracking-display:-.02em;--tracking-label:.08em;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-6:24px;--s-8:32px;--s-12:48px;--gutter:16px;--radius-chip:2px;--radius:4px;--dur-fast:.12s;--dur-base:.15s;--dur-slow:.18s;--ease-out:cubic-bezier(.2, 0, 0, 1);--column-min:272px;--header-h:56px}@media (width>=1024px){:root{--gutter:32px}}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s;--dur-slow:0s}}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--void);color:var(--text);font-family:var(--font-text);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.5}#root{flex-direction:column;min-height:100dvh;display:flex}h1,h2,h3{font-family:var(--font-display);margin:0;line-height:1.2}h1{font-weight:800;font-size:var(--fs-h1);letter-spacing:var(--tracking-display)}h2,h3{font-weight:700;font-size:var(--fs-h2)}p{margin:0}a{color:inherit}img{max-width:100%;display:block}::selection{background:var(--signal);color:var(--on-signal)}:focus{outline:none}:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.display{font-family:var(--font-display);font-weight:800;font-size:var(--fs-display);letter-spacing:var(--tracking-display);line-height:1.05}.mono{font-family:var(--font-data);font-size:var(--fs-data);line-height:1.4}.label{font-family:var(--font-data);font-size:var(--fs-data);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-faint);font-weight:500}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--text);font:600 var(--fs-small) / 1 var(--font-text);cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--text-faint)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-signal{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}.btn-signal:hover{background:var(--ghost);border-color:var(--ghost)}.btn-danger{border-color:var(--pulse);color:var(--pulse)}.btn-danger:hover{background:var(--pulse);border-color:var(--pulse);color:var(--void)}.btn-ghost{color:var(--text-muted);border-color:#0000}.btn-ghost:hover{color:var(--text);border-color:#0000}.btn-block{width:100%}.field{gap:var(--s-2);display:grid}.field>span{font-family:var(--font-data);font-size:var(--fs-data);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-faint);font-weight:500}.input{width:100%;min-height:44px;padding:var(--s-3);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--void);color:var(--text);font:400 var(--fs-body) / 1.4 var(--font-text);transition:border-color var(--dur-fast) var(--ease-out)}.input::placeholder{color:var(--text-faint)}.input:hover{border-color:var(--text-faint)}.input:focus-visible{outline-offset:0;border-color:var(--signal)}textarea.input{resize:vertical;min-height:96px}select.input{appearance:none;padding-right:var(--s-8);background-image:linear-gradient(45deg, transparent 50%, var(--text-faint) 50%), linear-gradient(135deg, var(--text-faint) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px}.input[type=date]{font-family:var(--font-data);font-size:var(--fs-small)}.form-error{color:var(--pulse);font-size:var(--fs-small)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}}.app-header{z-index:10;justify-content:space-between;align-items:center;gap:var(--s-4);min-height:var(--header-h);padding:var(--s-2) var(--gutter);background:var(--void);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.app-header-start,.app-header-end{align-items:center;gap:var(--s-3);min-width:0;display:flex}.app-header-sep{color:var(--graphite);font-family:var(--font-data)}.app-header-title{flex:1;min-width:0}.app-header-end{margin-left:auto}.app-header-user{align-items:center;gap:var(--s-1);display:flex}.board-name{font-size:var(--fs-h2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-footer{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-6) var(--gutter);border-top:1px solid var(--line);flex-wrap:wrap;margin-top:auto;display:flex}.app-footer-brand{align-items:baseline;gap:var(--s-3);display:flex}.page{width:100%;max-width:1120px;padding:var(--s-8) var(--gutter) var(--s-12);gap:var(--s-12);align-content:start;margin:0 auto;display:grid}.empty-page{justify-items:start;gap:var(--s-6);padding-block:var(--s-12);display:grid}.section-head{justify-content:space-between;align-items:center;gap:var(--s-4);margin-bottom:var(--s-6);flex-wrap:wrap;display:flex}.inline-form{gap:var(--s-2);width:100%;max-width:440px;display:flex}.inline-form .input{flex:1;min-width:0}.auth{padding:var(--s-12) var(--gutter);flex:1;place-items:center;display:grid}.auth-panel{gap:var(--s-8);width:100%;max-width:380px;display:grid}.auth-title{font-weight:700;font-size:var(--fs-h1)}.auth-form{gap:var(--s-4);display:grid}.auth-note{font-size:var(--fs-small)}.invite-email{font-size:var(--fs-small);color:var(--text)}.board-list{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin:0;padding:0;list-style:none;display:grid}.board-tile{justify-content:space-between;gap:var(--s-6);min-height:112px;padding:var(--s-4);background:var(--carbon);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--dur-fast) var(--ease-out);flex-direction:column;text-decoration:none;display:flex}.board-tile:hover{border-color:var(--graphite)}.board-tile-meta{align-items:baseline;gap:var(--s-3);flex-wrap:wrap;display:flex}.board-tile-name{font-family:var(--font-display);font-weight:800;font-size:var(--fs-h2);letter-spacing:var(--tracking-display);line-height:1.2}.invitations{gap:var(--s-4);max-width:640px;display:grid}.invite-form{gap:var(--s-3);grid-template-columns:1fr;align-items:end;display:grid}.invite-form .btn,.inline-form .btn{min-height:44px}@media (width>=640px){.invite-form{grid-template-columns:2fr 1.4fr auto}.board-settings .invite-form{grid-template-columns:1fr auto}}.invite-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.invite-list li{align-items:center;gap:var(--s-2) var(--s-4);padding:var(--s-2) 0;border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.invite-list li>:first-child{word-break:break-all;flex:1}.dev-link{word-break:break-all}@media (width<=639px){.app-header{row-gap:var(--s-1);flex-wrap:wrap}.app-header-sep,.app-header-avatar{display:none}.app-header-title{padding-bottom:var(--s-1);flex-basis:100%;order:3}.app-header-end{gap:var(--s-1)}.app-header-user .btn{padding:0 var(--s-2)}}.logo-wrap{gap:var(--s-2);flex-direction:column;display:inline-flex}.logo-link{border-radius:var(--radius-chip);text-decoration:none}.logo{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ghost);white-space:nowrap;align-items:baseline;font-weight:800;line-height:1;display:inline-flex}.logo-sm{font-size:20px}.logo-md{font-size:36px}.logo-lg{font-size:clamp(40px,9vw,72px)}.logo-cursor{background:var(--signal);width:.5em;height:.11em;margin-left:.04em;display:inline-block}.logo-cursor.is-blinking{animation:1s step-end infinite cursor-blink}@keyframes cursor-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.logo-cursor.is-blinking{animation:none}}.signature{white-space:nowrap;align-items:baseline;gap:.5em;display:inline-flex}.signature-by{font-family:var(--font-data);font-size:var(--fs-data);color:var(--text-faint)}.signature-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:14px;font-weight:800}.signature-cursor{color:var(--signal)}.loading-screen{flex:1;place-items:center;min-height:100dvh;display:grid}.avatar{background:var(--graphite);color:var(--ghost);font-family:var(--font-display);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;font-weight:700;line-height:1;display:inline-grid}.date-chip{border-radius:var(--radius-chip);font-family:var(--font-data);font-size:var(--fs-data);white-space:nowrap;border:1px solid #0000;align-items:center;padding:2px 8px;line-height:1.4;display:inline-flex}.date-overdue{color:var(--pulse);border-color:var(--pulse)}.date-today{color:var(--on-signal);background:var(--signal);border-color:var(--signal)}.date-future{color:var(--ghost);border-color:var(--graphite)}.date-none{color:var(--text-faint);border-color:var(--line)}.date-done{color:var(--text-muted);padding-inline:0}.dialog{width:min(560px, calc(100vw - 2 * var(--gutter)));max-height:calc(100dvh - 2 * var(--s-8));border:1px solid var(--line);border-radius:var(--radius);background:var(--carbon);color:var(--text);padding:0;overflow:auto}.dialog[open]{animation:dialog-in var(--dur-base) var(--ease-out)}.dialog::backdrop{background:#050607cc}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)}}.dialog-body{gap:var(--s-6);padding:var(--s-6);display:grid}.dialog-header{justify-content:space-between;align-items:center;gap:var(--s-4);margin-bottom:calc(-1 * var(--s-2));display:flex}.dialog-close{min-width:40px;margin-left:auto;padding:0;font-size:22px}@media (width<=639px){.dialog{border:0;border-radius:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh}.dialog-body{padding:var(--s-4) var(--gutter) var(--s-8)}}.toasts{z-index:50;bottom:var(--s-6);gap:var(--s-2);width:max-content;max-width:calc(100vw - 2 * var(--gutter));pointer-events:none;display:grid;position:fixed;left:50%;transform:translate(-50%)}.toast{padding:var(--s-3) var(--s-4);background:var(--carbon);border:1px solid var(--graphite);border-radius:var(--radius);font-weight:500;font-size:var(--fs-small);animation:toast-in var(--dur-base) var(--ease-out)}.toast-error{border-color:var(--pulse)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.offline-bar{padding:var(--s-2) var(--gutter);background:var(--carbon);border-bottom:1px solid var(--pulse);color:var(--ghost);text-align:center}.confirm{gap:var(--s-3);padding:var(--s-4);border:1px solid var(--pulse);border-radius:var(--radius);display:grid}.confirm-actions{gap:var(--s-2);display:flex}.board{min-height:0;padding:var(--s-4) var(--gutter) var(--s-8);flex:1;display:flex}.columns{grid-template-columns:repeat(4, minmax(var(--column-min), 1fr));gap:var(--s-3);align-items:start;width:100%;min-width:0;display:grid;overflow-x:auto}@media (width<=1023px){.board{padding-inline:0}.columns{grid-template-columns:repeat(4, minmax(var(--column-min), 80vw));scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);padding-inline:var(--gutter);padding-bottom:var(--s-4);overflow-x:auto}.column{scroll-snap-align:start}}.column-tabs{display:none}@media (width<=639px){.column-tabs{gap:var(--s-1);padding:var(--s-2) var(--gutter);border-bottom:1px solid var(--line);scrollbar-width:none;display:flex;overflow-x:auto}.column-tab{align-items:center;gap:var(--s-2);min-height:44px;padding:0 var(--s-3);border-radius:var(--radius);color:var(--text-muted);font-family:var(--font-data);font-size:var(--fs-data);text-transform:uppercase;letter-spacing:var(--tracking-label);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;font-weight:500;display:inline-flex}.column-tab.is-active{color:var(--ghost);border-color:var(--graphite)}.board{padding-inline:var(--gutter)}.columns{padding:0;display:block;overflow:visible}.column:not(.is-active),.app-header-end .member-stack{display:none}}.column{gap:var(--s-3);padding:var(--s-4);background:var(--carbon);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;min-height:240px;display:flex}.column-head{align-items:center;gap:var(--s-2);display:flex}.column-label{font-family:var(--font-data);font-size:var(--fs-data);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ghost);font-weight:500}.column-count{font-family:var(--font-data);font-size:var(--fs-data);color:var(--text-faint);margin-left:auto}.column-marker{background:var(--graphite);border-radius:50%;flex:none;width:8px;height:8px}.column-doing .column-marker{background:var(--ghost)}.column-ready .column-marker{box-shadow:inset 0 0 0 1.5px var(--signal);background:0 0}.column-reviewed .column-marker{background:var(--signal)}.column-reviewed .column-label{color:var(--signal)}.card-list{gap:var(--s-2);border-radius:var(--radius);flex-direction:column;min-height:48px;margin:0;padding:0;list-style:none;display:flex}.column-empty{padding:var(--s-4) var(--s-1);font-size:var(--fs-small);color:var(--text-faint)}.column-add{min-height:36px;padding:0 var(--s-1);color:var(--text-faint);cursor:pointer;border-radius:var(--radius-chip);transition:color var(--dur-fast) var(--ease-out);background:0 0;border:0;align-self:flex-start}.column-add:hover{color:var(--ghost)}.composer{gap:var(--s-2);display:grid}.composer-input{min-height:64px;font-weight:600}.composer-actions{gap:var(--s-2);display:flex}.card-slot{border-radius:var(--radius);cursor:grab;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.card-slot:focus-visible{outline-offset:2px}.card{gap:var(--s-2);padding:var(--s-4);background:var(--void);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--dur-fast) var(--ease-out);display:grid}.card-slot:hover .card{border-color:var(--graphite)}.card-title{font-weight:600;font-size:var(--fs-body);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.card-desc{font-size:var(--fs-small);color:var(--text-muted);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card-meta{justify-content:space-between;align-items:center;gap:var(--s-2);margin-top:var(--s-1);display:flex}.card.is-closed .card-title{color:var(--text-muted)}.card-slot.is-placeholder .card{opacity:.3}.card.is-lifted{border-color:var(--signal);cursor:grabbing}.card-form{gap:var(--s-4);display:grid}.card-form-title{min-height:0;font-weight:600;font-size:var(--fs-h2);resize:none;line-height:1.35}.card-form-grid{gap:var(--s-4);display:grid}@media (width>=640px){.card-form-grid{grid-template-columns:repeat(3,1fr)}}.card-form-status{align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.card-form-actions{justify-content:space-between;gap:var(--s-2);padding-top:var(--s-4);border-top:1px solid var(--line);display:flex}.card-form-delete{color:var(--pulse)}.card-form-delete:hover{color:var(--pulse);border-color:var(--pulse)}.card-counters{margin-top:var(--s-1);padding-top:var(--s-2);border-top:1px solid var(--line);color:var(--text-faint)}.card-section{gap:var(--s-3);padding-top:var(--s-4);border-top:1px solid var(--line);display:grid}.link-list{gap:var(--s-1);margin:0;padding:0;list-style:none;display:grid}.link-list li{align-items:center;gap:var(--s-2);display:flex}.link-item{align-items:baseline;gap:var(--s-3);min-width:0;padding:var(--s-2) var(--s-3);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--dur-fast) var(--ease-out);flex:1;text-decoration:none;display:flex}.link-item:hover{border-color:var(--graphite)}.link-label{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.link-item .mono{flex:none;margin-left:auto}.link-remove{min-width:40px;padding:0;font-size:20px}.link-form{gap:var(--s-2);display:grid}@media (width>=640px){.link-form{grid-template-columns:2fr 1.2fr auto}}.link-form .btn{min-height:44px}.attachments{border-radius:var(--radius);transition:background-color var(--dur-fast) var(--ease-out)}.attachments.is-dragging{background:var(--void);outline:1px dashed var(--signal);outline-offset:4px}.thumb-grid{gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin:0;padding:0;list-style:none;display:grid}.thumb{aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--radius);background:var(--void);cursor:zoom-in;width:100%;transition:border-color var(--dur-fast) var(--ease-out);place-items:center;padding:0;display:grid;overflow:hidden}.thumb:hover{border-color:var(--graphite)}.thumb img{object-fit:cover;object-position:left top;width:100%;height:100%}.thumb-pending{cursor:default}.attach-actions{align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.viewer{gap:var(--s-4);display:grid}.viewer img{object-fit:contain;background:var(--void);border-radius:var(--radius);width:100%;height:auto;max-height:70dvh}.viewer-actions{justify-content:space-between;gap:var(--s-2);display:flex}.filter-bar{align-items:center;gap:var(--s-2);padding:var(--s-3) var(--gutter) 0;flex-wrap:wrap;display:flex}.filter .input{min-height:36px;padding-block:var(--s-1);font-size:var(--fs-small);background-color:var(--void)}.filter-bar.is-active .filter .input{border-color:var(--text-faint)}.filter-note{margin-left:var(--s-1)}@media (width<=639px){.filter{flex:1 1 calc(50% - var(--s-2))}}.card-slot.is-static{cursor:pointer}.overdue-badge{min-height:32px;padding:0 var(--s-2);border:1px solid var(--pulse);border-radius:var(--radius-chip);color:var(--pulse);cursor:pointer;white-space:nowrap;background:0 0}.overdue-badge[aria-pressed=true]{background:var(--pulse);color:var(--void)}.overdue-text{color:var(--pulse)}.label-list{gap:var(--s-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.label-chip{border:1px solid var(--line-strong);border-radius:var(--radius-chip);color:var(--text-muted);align-items:center;padding:1px 6px;font-size:11px;display:inline-flex}.label-toggle{min-height:32px;padding:0 var(--s-2);cursor:pointer;font-size:var(--fs-data);background:0 0}.label-toggle.is-on{border-color:var(--ghost);color:var(--ghost)}.comment-list{gap:var(--s-4);margin:0;padding:0;list-style:none;display:grid}.comment{gap:var(--s-3);display:flex}.comment-main{gap:var(--s-1);flex:1;min-width:0;display:grid}.comment-head{align-items:baseline;gap:var(--s-2);flex-wrap:wrap;display:flex}.comment-author{font-weight:600;font-size:var(--fs-small)}.comment-body{font-size:var(--fs-small);color:var(--text-muted);white-space:pre-wrap;overflow-wrap:anywhere}.comment-input{min-height:64px}.link-button{color:var(--text-faint);font:inherit;font-size:var(--fs-data);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;justify-self:start;padding:0;text-decoration:underline}.link-button:hover{color:var(--ghost)}.link-button.danger{color:var(--pulse)}.member-stack{cursor:pointer;background:0 0;border:0;border-radius:999px;padding:2px;display:inline-flex}.member-stack .avatar+.avatar{box-shadow:0 0 0 2px var(--void);margin-left:-6px}.board-settings{gap:var(--s-8);display:grid}.board-settings section{gap:var(--s-3);display:grid}.board-settings h2#inv-title{font-family:var(--font-data);font-size:var(--fs-data);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-faint);font-weight:500}.member-list{margin:0;padding:0;list-style:none}.member-list li{align-items:center;gap:var(--s-3);border-bottom:1px solid var(--line);min-height:48px;display:flex}.member-list li>span:nth-child(3){margin-left:auto}.danger-zone{padding-top:var(--s-4);border-top:1px solid var(--line)}
