:root{--paper:#e9e7e2;--surface:#f7f6f3;--surface-sunk:#e2dfd8;--ink:#22262a;--ink-soft:#464b50;--muted:#62676c;--line:#d8d5ce;--line-strong:#bfbbb2;--accent:#2e5244;--accent-hover:#213c32;--accent-soft:#dce6df;--sage:#5f7a57;--sage-soft:#e1e8dc;--ochre:#a57a22;--ochre-soft:#efe3c6;--blue:#34506b;--blue-soft:#dde5ec;--danger:#a3372a;--danger-soft:#f3dcd7;--radius:4px;--radius-sm:4px;--shadow:none;--display:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--sans:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"DM Mono", ui-monospace, "SF Mono", Menlo, monospace;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;margin:0;display:flex}[hidden]{display:none!important}img{max-width:100%;display:block}a{color:inherit;text-decoration-color:var(--line-strong);text-underline-offset:3px}a:hover{text-decoration-color:var(--accent)}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.03em;text-wrap:balance;margin:0;font-weight:800;line-height:1.1}h1{font-size:clamp(2rem,5vw,2.9rem)}h2{font-size:1.55rem}h3{font-size:1.2rem}p{margin:0}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:600}.muted{color:var(--muted)}.mono{font-family:var(--mono);letter-spacing:0;font-weight:400}.palette-strip{height:10px;display:flex}.palette-strip span{flex:1}.palette-strip.tall{border-radius:var(--radius);height:22px;overflow:hidden}.small{font-size:.85rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 20px}.site-header{z-index:30;backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#e9e7e2eb;position:sticky;top:0}.site-header .bar{align-items:center;gap:24px;height:64px;display:flex}.site-header .brand{font-family:var(--display);letter-spacing:-.03em;white-space:nowrap;font-size:1.1rem;font-weight:800;text-decoration:none}.site-header .brand span{font-family:var(--mono);letter-spacing:0;color:var(--accent);margin-right:2px;font-weight:500}.site-header nav{scrollbar-width:none;gap:4px;margin-left:auto;display:flex;overflow-x:auto}.site-header nav::-webkit-scrollbar{display:none}.site-header nav a{border-radius:var(--radius);color:var(--ink-soft);white-space:nowrap;padding:7px 12px;font-size:.92rem;text-decoration:none}.site-header nav a:hover{background:var(--surface-sunk);color:var(--ink)}.site-header nav a[aria-current=page]{background:var(--accent);color:var(--surface)}@media (width<=760px){.site-header .bar{flex-wrap:wrap;gap:8px;height:auto;padding-top:12px}.site-header nav{width:calc(100% + 40px);margin:0 -20px;padding:0 20px 10px}}main{flex:1;padding:36px 0 80px}@media (width<=760px){main{padding-top:24px}}.site-footer{border-top:1px solid var(--line);color:var(--muted);padding:20px 0 28px;font-size:.85rem}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.page-head .lede{color:var(--ink-soft);max-width:60ch;margin-top:8px}.stack{gap:var(--gap,16px);flex-direction:column;display:flex}.row{align-items:center;gap:var(--gap,10px);flex-wrap:wrap;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.grid{gap:var(--gap,20px);grid-template-columns:repeat(auto-fill, minmax(var(--min,260px), 1fr));display:grid}.grid.fill{grid-template-columns:repeat(auto-fit, minmax(var(--min,260px), 1fr))}.two-col{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:28px;display:grid}@media (width<=900px){.two-col{grid-template-columns:minmax(0,1fr)}}.section{margin-top:40px}.section>.spread:first-child{margin-bottom:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card-flat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.empty{border:1.5px dashed var(--line-strong);border-radius:var(--radius);text-align:center;color:var(--muted);padding:28px 20px}.notice{border-radius:var(--radius-sm);background:var(--danger-soft);color:#6e2419;border:1px solid #e3bfb7;margin-bottom:20px;padding:12px 16px}.btn{border-radius:var(--radius);border:1px solid var(--ink);background:var(--ink);color:var(--paper);font:500 .9rem/1.2 var(--sans);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:9px 16px;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn:hover{background:#000}.btn.secondary{color:var(--ink);border-color:var(--line-strong);background:0 0}.btn.secondary:hover{border-color:var(--ink)}.btn.ghost{color:var(--ink-soft);background:0 0;border-color:#0000;padding:6px 10px}.btn.ghost:hover{background:var(--surface-sunk);color:var(--ink)}.btn.danger{color:var(--danger);background:0 0;border-color:#0000;padding:6px 10px}.btn.danger:hover{background:#f6dfda}.btn.accent{background:var(--accent);border-color:var(--accent)}.btn.accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.small{padding:5px 11px;font-size:.82rem}label{color:var(--ink-soft);margin-bottom:5px;font-size:.8rem;font-weight:600;display:block}input[type=text],input[type=email],input[type=password],input[type=url],input[type=date],input[type=number],input[type=search],input:not([type]),select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;color:var(--ink);font:16px/1.4 var(--sans);appearance:none;background:#fff;padding:9px 12px}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=url]:focus,input[type=date]:focus,input[type=number]:focus,input[type=search]:focus,input:not([type]):focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%235d554c' stroke-width='1.6'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}textarea{resize:vertical;min-height:84px}input[type=color]{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#fff;width:52px;height:42px;padding:3px}input[type=file]{max-width:100%;font-size:.9rem}.fields{grid-template-columns:repeat(auto-fill, minmax(var(--min,180px), 1fr));gap:14px;display:grid}.fields .full{grid-column:1/-1}.form-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.chip{background:var(--surface-sunk);color:var(--ink-soft);white-space:nowrap;border-radius:3px;align-items:center;gap:5px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.chip.accent{background:var(--accent-soft);color:var(--accent)}.chip.alert{background:var(--danger-soft);color:#7a281d}.chip.blue{background:var(--blue-soft);color:var(--blue)}.chip.sage{background:var(--sage-soft);color:#3e4f36}.chip.ochre{background:var(--ochre-soft);color:#74551a}.chip.ink{background:var(--ink);color:var(--paper)}.chip.outline{border:1px solid var(--line-strong);background:0 0}.meter{background:var(--surface-sunk);border-radius:2px;height:8px;display:flex;overflow:hidden}.meter span{height:100%;display:block}.meter .spent{background:var(--ink)}.meter .committed{background:var(--accent);opacity:.55}.meter .progress{background:var(--sage)}.meter.over .committed{background:var(--danger);opacity:1}.stat .value{font-family:var(--display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:800;line-height:1.1}.stat .label{color:var(--muted);font-size:.85rem}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin-bottom:28px;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:.93rem;text-decoration:none}.tabs a:hover{color:var(--ink)}.tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.tabs a .count{color:var(--muted);margin-left:4px;font-size:.75rem}.filters{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:20px;display:flex}.filters>div{flex:140px;min-width:140px;max-width:220px}.filters select,.filters input{padding:7px 10px;font-size:.9rem}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.list>li,.list>.item{border-top:1px solid var(--line)}.list>li:first-child,.list>.item:first-child{border-top:0}.list,.list ul{margin:0;padding:0;list-style:none}.list-group-title{align-items:baseline;gap:10px;margin:28px 0 10px;display:flex}.list-group-title h3{font-size:1.1rem}.task{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:13px 16px;display:grid}.task .title{font-weight:500}.task.is-done .title{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line-strong)}.task .meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.task .notes{color:var(--ink-soft);white-space:pre-line;margin-top:6px;font-size:.87rem}.check{border-radius:var(--radius);border:1.5px solid var(--line-strong);cursor:pointer;color:#0000;background:#fff;place-items:center;width:22px;height:22px;margin-top:1px;padding:0;font-size:13px;display:grid}.check:hover{border-color:var(--sage);color:var(--sage)}.check.on{background:var(--sage);border-color:var(--sage);color:#fff}.check.doing{border-color:var(--ochre);background:conic-gradient(var(--ochre) 0 50%, #fff 50% 100%)}details.edit>summary{cursor:pointer;color:var(--muted);font-size:.8rem;list-style:none;display:inline-flex}details.edit>summary::-webkit-details-marker{display:none}details.edit>summary:hover{color:var(--ink)}details.edit[open]>summary{color:var(--ink);margin-bottom:12px}details.edit>.panel{border-radius:var(--radius-sm);background:var(--paper);border:1px solid var(--line);padding:16px}details.add>summary{cursor:pointer;list-style:none}details.add>summary::-webkit-details-marker{display:none}details.add[open]>summary{display:none}.room-card{flex-direction:column;text-decoration:none;transition:border-color .15s;display:flex;overflow:hidden}.room-card:hover{border-color:var(--accent)}.room-card .cover{aspect-ratio:4/3;background:var(--surface-sunk);position:relative;overflow:hidden}.room-card .cover img{object-fit:cover;width:100%;height:100%}.room-card .cover .placeholder{font-family:var(--display);letter-spacing:-.04em;color:var(--line-strong);place-items:center;font-size:2.6rem;font-weight:800;display:grid;position:absolute;inset:0}.room-card .cover .floor{position:absolute;top:10px;left:10px}.room-card .body{flex-direction:column;gap:10px;padding:14px 16px 16px;display:flex}.mood{columns:3 260px;column-gap:16px}.mood .tile{break-inside:avoid;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);margin-bottom:16px;position:relative;overflow:hidden}.mood .tile img{width:100%;height:auto}.mood .tile .swatch{aspect-ratio:1;align-items:flex-end;padding:12px;display:flex}.mood .tile .swatch code{color:var(--ink);background:#ffffffd9;border-radius:6px;padding:2px 6px;font-size:.8rem}.mood .tile .caption{color:var(--ink-soft);padding:10px 12px;font-size:.88rem}.mood .tile .tools{border-top:1px solid var(--line);background:var(--surface);flex-wrap:wrap;gap:2px;padding:6px;display:flex}.buy{padding:18px}.buy .head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.buy .options{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-top:16px;display:grid}.buy .option{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;flex-direction:column;display:flex;overflow:hidden}.buy .option.chosen{border-color:var(--sage);box-shadow:0 0 0 2px var(--sage-soft)}.buy .option .thumb{aspect-ratio:4/3;background:var(--surface-sunk)}.buy .option .thumb img{object-fit:cover;width:100%;height:100%}.buy .option .info{flex-direction:column;flex:1;gap:4px;padding:10px 12px;display:flex}.buy .option .price{font-family:var(--display);letter-spacing:-.02em;font-size:1.15rem;font-weight:800}.table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.table th,.table td{text-align:left;border-top:1px solid var(--line);padding:10px 12px}.table th{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-top:0;font-size:.75rem;font-weight:600}.table .num{text-align:right}.table tfoot td{border-top:2px solid var(--line-strong);font-weight:600}.table-wrap{overflow-x:auto}.planner{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:20px;display:grid}@media (width<=900px){.planner{grid-template-columns:minmax(0,1fr)}}.planner .canvas{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);touch-action:none;-webkit-user-select:none;user-select:none;padding:16px}.planner svg{width:100%;height:auto;max-height:72vh;display:block}.planner .palette{flex-wrap:wrap;gap:6px;display:flex}.plan-thumb svg{width:100%;height:auto;display:block}.row>details[open],.meta>details[open]{flex-basis:100%}.mood .tools details[open]{flex-basis:100%;margin-left:0}label>input,label>select,label>textarea{margin-top:5px;font-weight:400}.planner .canvas:focus{outline:none}.planner .canvas:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.home-hero{gap:22px;margin-bottom:32px;display:grid}.home-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 40px;display:flex}.key-facts{gap:32px;margin:0;display:flex}.key-facts div{gap:4px;display:grid}.key-facts dd{margin:0;font-size:1.05rem;font-weight:700}.phase-track{scroll-snap-type:x proximity;grid-auto-columns:minmax(128px,1fr);grid-auto-flow:column;gap:6px;margin:0;padding:0 0 4px;list-style:none;display:grid;overflow-x:auto}.phase-track li{scroll-snap-align:start;display:flex}.phase-track a{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex:1;align-content:start;gap:6px;padding:12px;text-decoration:none;transition:border-color .15s;display:grid}.phase-track a:hover{border-color:var(--accent)}.phase-track .bar{background:var(--surface-sunk);border-radius:2px;height:4px;overflow:hidden}.phase-track .bar i{background:var(--sage);height:100%;display:block}.phase-track .name{font-size:.9rem;font-weight:700;line-height:1.25}.phase-track .count{color:var(--muted);font-size:.78rem}.phase-track .past a{background:0 0}.phase-track .past a .name{color:var(--muted)}.phase-track .current a{background:var(--accent);border-color:var(--accent);color:var(--surface)}.phase-track .current a .bar{background:#f7f6f340}.phase-track .current a .bar i{background:var(--surface)}.phase-track .current a .count{color:#f7f6f3d9}
