:root{--bg:#efe4d2;--bg-deep:#e0d0b6;--surface:#f7efe2;--ink:#2c2416;--muted:#6a5a48;--pine:#3d4f3f;--pine-soft:#5a6e5c;--brass:#c4923a;--brass-soft:#ead4a4;--line:#d4c0a0;--danger:#8f3a32;--focus:#3d4f3f;--radius:16px;--radius-sm:10px;--touch:44px;--display:"Fraunces", Georgia, serif;--font:"Nunito", "Segoe UI", sans-serif;--pad:1.15rem;--nav:4.5rem;--shadow:0 14px 32px #2c24161f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;font-family:var(--font);color:var(--ink);background:var(--bg);margin:0}#root{min-height:100%}img{max-width:100%}a{color:var(--pine)}.skip-link{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus,.skip-link:focus-visible{z-index:100;clip:auto;background:var(--pine);color:#f7efe2;border-radius:var(--radius-sm);width:auto;height:auto;margin:0;padding:.6rem .9rem;position:fixed;top:.75rem;left:.75rem;overflow:visible}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{min-height:100dvh;padding-bottom:calc(var(--nav) + env(safe-area-inset-bottom));background:radial-gradient(1200px 400px at 10% -10%, #c4923a2e, transparent 55%), var(--bg)}.app-header{padding:.75rem var(--pad);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface) 88%, var(--bg))}.page{width:min(42rem,100%);padding:1.25rem var(--pad) 2rem;margin:0 auto}.page h1,.mkt-headline,.phase-card-title,.event-card-title,.board-tile-title{font-family:var(--display);letter-spacing:-.02em;font-weight:650}.lede,.muted,.task-detail,.task-why{color:var(--muted)}.kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--brass);margin:0 0 .25rem;font-size:.78rem;font-weight:700;display:block}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:1.25rem 0;padding:1rem 1.05rem}.stack{gap:.85rem;display:grid}.btn{min-height:var(--touch);font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.55rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}.btn-primary{background:var(--pine);color:#f7efe2}.btn-ghost{color:var(--pine);border-color:var(--line);background:0 0}.btn-block{width:100%}.field{gap:.35rem;display:grid}.field span{font-weight:700}.field input,.field select,.task-meta select{min-height:var(--touch);border-radius:var(--radius-sm);border:1px solid var(--line);font:inherit;color:var(--ink);background:#fffdf8;padding:.45rem .7rem}.field input::placeholder{color:#6a5a48;opacity:1}.field input::-webkit-input-placeholder{color:#6a5a48;opacity:1}.field input::-moz-placeholder{color:#6a5a48;opacity:1}.check-row{min-height:var(--touch);align-items:center;gap:.65rem;display:flex}.error{color:var(--danger)}.progress-line{font-weight:700}.board-grid,.phase-list,.event-list,.task-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.board-tile,.phase-card,.event-card,.task-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:inherit;gap:.35rem;padding:.95rem 1rem;text-decoration:none;display:grid}.task-card.is-done{opacity:.72}.event-script{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 80%, var(--brass-soft)), var(--surface));margin:1.25rem 0;padding:.85rem 1rem 1rem}.event-script h2{font-family:var(--display);margin:0 0 .25rem;font-size:1.25rem}.task-row{align-items:flex-start;gap:.7rem;display:flex}.task-check{flex:none;width:1.35rem;height:1.35rem;margin-top:.2rem}.task-title{font-weight:750}.task-meta{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.add-task{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 78%, var(--brass-soft)), var(--surface));border-color:color-mix(in srgb, var(--brass) 28%, var(--line));gap:.75rem;margin:1rem 0;display:grid}.add-task .btn{justify-self:start}.task-remove{min-width:var(--touch)}.bottom-nav{z-index:20;min-height:var(--nav);padding:.35rem .4rem calc(.35rem + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface) 92%, var(--pine));border-top:1px solid var(--line);justify-content:space-around;gap:.15rem;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{min-height:44px;color:var(--muted);border-radius:var(--radius-sm);flex:1;place-items:center;font-size:.78rem;font-weight:700;text-decoration:none;display:grid}.bottom-nav a.active{color:var(--pine);background:var(--brass-soft)}.brand-lockup{color:inherit;align-items:center;gap:.6rem;text-decoration:none;display:flex}.brand-mark{flex:none;width:2.25rem;height:2.25rem;display:block}.brand-mark svg{width:100%;height:100%;display:block}.brand-text{display:grid}.brand-name{font-family:var(--display);font-weight:700;line-height:1.1}.brand-kicker{color:var(--muted);font-size:.72rem}.auth-screen{align-content:end;min-height:100dvh;display:grid;position:relative}.auth-hero-media,.mkt-hero-scene{position:absolute;inset:0}.auth-hero-img,.mkt-hero-img{object-fit:cover;width:100%;height:100%}.auth-hero-shade,.mkt-hero-veil{background:linear-gradient(#2c241626,#2c2416c7);position:absolute;inset:0}.auth-compose,.mkt-hero-inner{z-index:1;padding:1.5rem var(--pad) 2rem;color:#f7efe2;position:relative}.auth-compose .brand-name,.mkt-brand-name{color:#f7efe2}.auth-support,.mkt-lede{color:#efe4d2}.auth-status{margin:0}.mkt-hero{align-items:end;min-height:100svh;display:grid;position:relative}.mkt-brand{align-items:center;gap:.7rem;display:flex}.mkt-brand-mark{flex:none;width:3rem;height:3rem;display:block}.mkt-brand-mark svg{width:100%;height:100%;display:block}.mkt-headline{margin:.6rem 0;font-size:clamp(1.7rem,5vw,2.4rem)}.mkt-section{padding:1.5rem var(--pad) 2rem;width:min(42rem,100%);margin:0 auto}.install-prompt{padding:.65rem var(--pad);border-bottom:1px solid var(--line);background:var(--brass-soft);flex-wrap:wrap;justify-content:space-between;gap:.6rem;display:flex}.toast-region{left:50%;bottom:calc(var(--nav) + .8rem);z-index:40;position:fixed;transform:translate(-50%)}.toast{background:var(--pine);color:#f7efe2;border-radius:999px;padding:.7rem 1rem}.photo-actions{flex-wrap:wrap;gap:.65rem;margin:1rem 0;display:flex}.photo-saving{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 80%, var(--brass-soft)), var(--surface));color:var(--pine);align-items:center;gap:.7rem;margin:0 0 1rem;padding:.75rem 1rem;font-weight:700;display:flex}.photo-spinner{border:3px solid var(--brass-soft);border-top-color:var(--pine);border-radius:50%;flex:0 0 1.35rem;width:1.35rem;height:1.35rem;animation:.7s linear infinite photo-spin;display:inline-block}.photo-tile-saving{cursor:default;place-items:center;min-height:9.5rem}@keyframes photo-spin{to{transform:rotate(360deg)}}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.photo-tile{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 86%, var(--brass-soft)), var(--surface));width:100%;min-height:9.5rem;color:inherit;font:inherit;text-align:left;cursor:pointer;gap:.4rem;padding:0;display:grid;overflow:hidden}.photo-tile img{object-fit:cover;width:100%;height:8.5rem;display:block}.photo-tile-caption{padding:0 .65rem .65rem;font-weight:700}.photo-dialog{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:min(36rem,100vw - 1.5rem);max-height:calc(100dvh - 2rem);color:var(--ink);padding:1rem;overflow:auto}.photo-dialog::backdrop{background:#2c24168c}.photo-dialog-img{object-fit:contain;border-radius:var(--radius-sm);background:var(--bg-deep);width:100%;max-height:min(70dvh,32rem);display:block}.photo-dialog-actions{flex-wrap:wrap;gap:.55rem;margin-top:.75rem;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
