:root{--ink:#151619;--ink2:#1c1d21;--ink3:#24262b;--paper:#1c1d21;--paper2:#212227;--line:#2e3036;--text:#e8eae7;--muted:#9aa09a;--green:#5cc08d;--gold:#e8eae7;--amber:#c89a6a;--blue:#7fb0c4;--violet:#a892cf;--red:#e0776a;--shadow:none;--tile:#26282d;--tile2:#191a1d;--field:#24262b;--ui:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}html{background:var(--ink);scroll-behavior:smooth;color-scheme:dark}body{margin:0;color:var(--text);font-family:var(--ui),system-ui,sans-serif;background:var(--ink);min-height:100vh}button,input,select{font:inherit}button,select{cursor:pointer}.hidden{display:none!important}
.masthead{height:76px;display:flex;align-items:center;gap:32px;padding:0 4vw;border-bottom:1px solid var(--line);background:var(--dusk);backdrop-filter:blur(16px);position:sticky;top:0;z-index:80}.brand{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none;min-width:230px}.brand-mark{width:38px;height:44px;display:grid;place-items:center;background:var(--paper);color:var(--ink);font:750 24px var(--ui),serif;border-radius:50% 50% 45% 45%;box-shadow:inset 0 -5px 0 var(--gold)}.brand strong{font:650 20px var(--ui),serif;display:block}.brand small{display:block;color:var(--muted);font:12px var(--ui),monospace;text-transform: none;letter-spacing: 0;margin-top:2px}.tabs{display:flex;align-self:stretch}.tab{border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);padding:0 16px;font-size:13px;font-weight:700}.tab:hover,.tab.active{color:var(--text)}.tab.active{border-color:var(--gold)}.quiet-button{border:1px solid var(--line);background:transparent;color:var(--text);border-radius:8px;padding:8px 12px;font-size:12px;font-weight:700}.quiet-button:hover{border-color:var(--gold);color:var(--gold)}#exportPlan{margin-left:auto}
main{width:min(1120px,92vw);margin:0 auto;padding:32px 0 72px}.view{display:none}.view.active{display:block}.eyebrow{display:block;color:var(--muted);font:600 12px var(--ui),sans-serif;letter-spacing:.02em;margin-bottom:8px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--ui),serif}h1{font-size:clamp(30px,3.4vw,42px);line-height:1.08;letter-spacing:-.02em}h2{font-size:24px}h3{font-size:20px}p{color:var(--muted);line-height:1.65}code{font-family:var(--ui),monospace;color:var(--gold)}
.goal-board{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);gap:6vw;align-items:end;padding:42px 0 46px;border-bottom:1px solid var(--line)}.goal-copy p{max-width:700px;margin-top:24px;font-size:14px}.goal-controls{background:var(--paper);color:var(--text);padding:16px;box-shadow:none;border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:1fr 140px;gap:12px}.field{display:block;position:relative}.field>span,.sample-form label,.mini-field{font:500 12px var(--ui),monospace;text-transform: none;letter-spacing: 0}.field>span{display:block;margin:0 0 8px}.field input,.sample-form input,.sample-form select,.mini-field input{width:100%;border:1px solid var(--line);background:var(--field);color:var(--text);padding:12px 12px;border-radius:4px;outline:none;font-size:16px}.field input:focus,.sample-form input:focus,.sample-form select:focus{border-color:var(--water);box-shadow:0 0 0 2px transparent}.quantity-field input{text-align:right;font-family:var(--ui),monospace}.presets{grid-column:1/-1;display:flex;gap:8px}.presets button{flex:1;border:1px solid var(--line);background:transparent;color:var(--ink);padding:8px;border-radius:4px;font:500 12px var(--ui),monospace;text-transform: none}.presets button:hover{background:var(--ink);color:var(--text)}
.suggest{position:absolute;left:0;right:0;top:68px;background:var(--slate);border:1px solid var(--line);z-index:100;max-height:360px;overflow:auto;box-shadow:var(--shadow)}.sg{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line)}.sg:hover{background:var(--ink3)}.sg-name{font-weight:700}.sg .sub{font:12px var(--ui),monospace;color:var(--muted);text-transform: none}
.item-art{width:26px;height:26px;display:inline-grid;place-items:center;flex:0 0 auto;overflow:hidden;vertical-align:middle}.item-art img{display:block;max-width:90%;max-height:90%;object-fit:contain;image-rendering:auto}.item-art.small{width:30px;height:30px}.item-art.goal-art{width:78px;height:78px;border-radius:8px;background:linear-gradient(160deg,var(--tile),var(--tile2));box-shadow:inset 0 0 0 5px transparent}.item-art.table-art{width:38px;height:38px}.item-art.tree-art{width:23px;height:23px;border-radius:4px;margin-right:8px;vertical-align:middle}.item-art.meal-art{width:52px;height:52px}.missing-art{font:700 14px var(--ui),monospace;color:var(--muted)}
.empty-state{min-height:290px;display:flex;justify-content:center;align-items:center;gap:24px;color:var(--muted)}.empty-state strong,.empty-state span{display:block}.empty-state strong{color:var(--text);font:650 20px var(--ui),serif;margin-bottom:4px}.empty-compass{font-size:40px;color:var(--gold);animation:compass 9s linear infinite}@keyframes compass{to{}}.notice{padding:16px 16px;margin:16px 0;border-left:3px solid var(--red);background:color-mix(in srgb, var(--red) 12%, var(--dusk));color:var(--red)}
.goal-header{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:32px 0 24px}.goal-identity{display:flex;align-items:center;gap:16px}.goal-title h2{font-size:clamp(32px,4vw,50px)}.goal-title p{font:12px var(--ui),monospace;margin-top:8px}.goal-yield{text-align:right}.goal-yield strong{font:650 24px var(--ui),serif;display:block;color:var(--gold)}.goal-yield span{font:12px var(--ui),monospace;color:var(--muted);text-transform: none}.resource-trail{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));border:1px solid var(--line);background:var(--ink2);box-shadow:var(--shadow);margin-bottom:52px}.trail-stop{padding:16px 16px;border-right:1px solid var(--line);min-height:98px;position:relative}.trail-stop:last-child{border-right:0}.trail-stop:not(:last-child):after{content:'›';position:absolute;right:-7px;top:36px;background:var(--ink2);color:var(--gold);z-index:2}.trail-stop span{font:500 12px var(--ui),monospace;color:var(--muted);text-transform: none;letter-spacing: 0}.trail-stop strong{display:block;font:650 20px var(--ui),serif;margin-top:8px;overflow-wrap:anywhere}.trail-stop small{color:var(--muted);font-size:12px}.trail-stop.violet strong{color:var(--violet)}.trail-stop.amber strong{color:var(--amber)}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:0 0 16px}.section-heading>p{max-width:500px;text-align:right;font-size:12px}.section-heading.compact{align-items:center}.route-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:32px}.route-card{background:var(--ink2);border:1px solid var(--line);padding:24px;min-height:255px;position:relative;overflow:hidden}.route-card:before{content:'';position:absolute;inset:0 auto 0 0;width:3px;background:var(--green)}.verdict-route:before{background:var(--gold)}.market-route:before{background:var(--violet)}.grind-route:before{background:var(--amber)}.route-card .route-label{font:500 12px var(--ui),monospace;text-transform: none;letter-spacing: 0;color:var(--muted)}.route-card h3{margin:8px 0 16px}.route-metric{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:12px}.route-metric span{color:var(--muted)}.route-metric span small{display:block;font-size:12px;margin-top:3px}.route-metric b{font-family:var(--ui),monospace;text-align:right}.route-note,.verdict{font-size:12px;margin-top:16px}.verdict{font-size:13px;margin:0 0 16px}.verdict b{color:var(--gold)}
.covered-strip{display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(90deg,color-mix(in srgb, var(--sage) 12%, transparent),color-mix(in srgb, var(--sage) 12%, transparent));border:1px solid color-mix(in srgb, var(--sage) 50%, var(--line));padding:16px 24px;margin-bottom:16px}.covered-strip strong{font:650 20px var(--ui),serif}.covered-strip p{font-size:12px;margin-top:4px}.mini-check{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap}.mini-check input{accent-color:var(--green)}
.make-buy,.workbench,.tree-card,.assumption-card,.source-list,.acorn-lab{background:var(--slate);border:1px solid var(--line);padding:24px;margin-bottom:16px}.decision-list{border-top:1px solid var(--line)}.decision-row{display:grid;grid-template-columns:34px minmax(180px,1fr) minmax(220px,1fr) 180px;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--line)}.decision-row strong,.decision-row small{display:block}.decision-row small{color:var(--muted);font-size:12px;margin-top:4px}.decision-cost{text-align:right;font:12px var(--ui),monospace}.decision-row select,.route-select{background:var(--ink);border:1px solid var(--line);color:var(--text);border-radius:4px;padding:8px;font-size:12px}.workbench-actions{display:flex;align-items:center;gap:12px;color:var(--muted);font:12px var(--ui),monospace}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}#ingTable{min-width:1050px}th{font:500 12px var(--ui),monospace;text-transform: none;letter-spacing: 0;color:var(--muted);text-align:left;padding:12px;border-bottom:1px solid var(--line)}td{padding:12px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tr:hover td{background:transparent}.num{text-align:right;font-family:var(--ui),monospace;white-space:nowrap}.owned{width:92px;padding:8px 8px;text-align:right;color:var(--text);background:var(--ink);border:1px solid var(--line);border-radius:4px;font-family:var(--ui),monospace}.owned:focus{outline:2px solid var(--lantern)}.item-cell{display:flex;align-items:center;gap:12px;min-width:160px}.item-cell b,.item-cell small{display:block}.item-cell small{color:var(--muted);font-size:12px;margin-top:2px}.route-select{min-width:84px;margin-right:8px}.route-choice{display:inline-block;padding:3px 8px;border:1px solid currentColor;border-radius:4px;font:500 12px var(--ui),monospace;white-space:nowrap}.route-choice.trade{color:var(--violet)}.route-choice.explore,.route-choice.acorn{color:var(--amber)}.route-choice.crop,.route-choice.covered{color:var(--green)}.route-choice.fish{color:var(--blue)}.route-choice.vendor{color:var(--gold)}.route-choice.unknown{color:var(--red)}.route-choice.owned{color:var(--muted)}.route-detail{color:var(--muted);font-size:12px}.gold-eq{display:block;color:var(--gold);font:12px var(--ui),monospace;margin-top:4px}.route-covered td{opacity:.68}.tree details details{margin-left:24px}.tree summary{cursor:pointer;padding:8px;border-left:1px solid var(--line);display:flex;align-items:center}.tree summary:hover{background:transparent}.node-amt{color:var(--gold);font-family:var(--ui),monospace;margin-right:8px}.node-kind{color:var(--muted);font:12px var(--ui),monospace;margin-left:8px;text-transform: none}.leaf{padding:8px 8px 8px 24px;font-size:12px;display:flex;align-items:center}.cyclic{color:var(--red)}
.page-intro{padding:38px 0 32px;border-bottom:1px solid var(--line)}.page-intro p{max-width:760px;margin-top:16px}.setup-heading{display:flex;justify-content:space-between;align-items:end;padding:24px 0 16px}.setup-heading>div:last-child{display:flex;gap:8px}.profile-score{font:500 12px var(--ui),monospace;color:var(--muted)}.profile-score b{color:var(--gold)}.perk-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:38px}.perk-group{border:1px solid var(--line);background:var(--ink2)}.perk-group h2{font:650 20px var(--ui),serif;padding:16px 16px;border-bottom:1px solid var(--line)}.perk-row{display:grid;grid-template-columns:36px 1fr;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);cursor:pointer}.perk-row:last-child{border-bottom:0}.perk-row:hover{background:transparent}.perk-row>input,.meal-card>input,.inline-toggle input{appearance:none;width:30px;height:18px;border-radius:8px;background:var(--line-strong);position:relative;cursor:pointer}.perk-row>input:after,.meal-card>input:after,.inline-toggle input:after{content:'';position:absolute;width:12px;height:12px;border-radius:50%;background:var(--chalk);left:3px;top:3px;transition:.18s}.perk-row>input:checked,.meal-card>input:checked,.inline-toggle input:checked{background:var(--green)}.perk-row>input:checked:after,.meal-card>input:checked:after,.inline-toggle input:checked:after{left:15px}.perk-row strong{font-size:12px;display:block}.perk-row small{display:block;color:var(--gold);font:12px var(--ui),monospace;margin-top:2px}.perk-row p{font-size:12px;margin-top:8px}.setup-section{margin-top:12px}.infra-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:42px}.infra-card{border:1px solid var(--line);background:var(--ink2);padding:16px}.infra-title{display:flex;align-items:center;gap:12px;margin-bottom:12px}.infra-title h3{font-size:20px}.infra-card>p{font-size:12px;min-height:72px}.infra-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.inline-toggle{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.inline-toggle input{width:26px;height:16px}.inline-toggle input:after{width:10px;height:10px}.inline-toggle input:checked:after{left:13px}.mini-field{display:block;color:var(--muted);font-size:12px}.mini-field input{margin-top:4px;padding:8px;background:var(--ink);color:var(--text);border-color:var(--line);font:12px var(--ui),monospace}
.meal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:42px}.meal-card{display:grid;grid-template-columns:32px 52px 1fr;gap:12px;align-items:start;border:1px solid var(--line);background:var(--ink2);padding:16px;cursor:pointer}.meal-card.active{border-color:color-mix(in srgb, var(--sage) 50%, var(--line));box-shadow:inset 3px 0 var(--green)}.meal-card>input{margin-top:16px}.meal-card span>small,.meal-card span>strong,.meal-card span>b{display:block}.meal-card span>small{color:var(--gold);font:12px var(--ui),monospace;text-transform: none}.meal-card span>strong{font:650 16px var(--ui),serif;margin:2px 0 4px}.meal-card span>b{font-size:12px}.meal-card p{font-size:12px;margin-top:4px}
.acorn-lab{margin-bottom:16px}.sample-form{display:grid;grid-template-columns:1.4fr 1fr .8fr .8fr auto;gap:8px;align-items:end;background:var(--paper);color:var(--ink);padding:16px;margin-bottom:12px}.sample-form label{display:block}.sample-form input,.sample-form select{margin-top:8px;padding:8px;font-size:12px}.sample-form button{border:0;background:var(--ink);color:var(--text);padding:12px 16px;border-radius:4px;font-weight:700}.sample-list{border:1px solid var(--line)}.sample-row{display:flex;justify-content:space-between;align-items:center;padding:12px 12px;border-bottom:1px solid var(--line)}.sample-row:last-child{border-bottom:0}.sample-row b,.sample-row small{display:block}.sample-row small{color:var(--muted);font-size:12px;margin-top:3px}.sample-row button{border:0;background:transparent;color:var(--red);font-size:12px}.empty-samples{padding:16px;color:var(--muted);font-size:12px}
.assumption-note{font-size:12px;margin:-4px 0 16px}.assumption-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.assumption-row{background:var(--ink2);padding:16px;display:grid;grid-template-columns:1fr 100px;gap:12px;align-items:center}.assumption-row.unverified{box-shadow:inset 3px 0 var(--amber)}.assumption-row strong{font-size:12px}.assumption-row small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.assumption-row input{width:100%;background:var(--ink);color:var(--text);border:1px solid var(--line);padding:8px;text-align:right;font-family:var(--ui),monospace}
.data-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.data-card{background:var(--paper);color:var(--ink);padding:24px}.data-card span{font:500 12px var(--ui),monospace;text-transform: none}.data-card strong{display:block;font:650 32px var(--ui),serif;margin-top:8px}.source-list h2{margin-bottom:16px}.source-list ol{list-style:none;padding:0;margin:0;counter-reset:s}.source-list li{counter-increment:s;display:grid;grid-template-columns:36px 1fr 1fr;padding:12px 0;border-top:1px solid var(--line);font-size:12px}.source-list li:before{content:counter(s,decimal-leading-zero);font:12px var(--ui),monospace;color:var(--gold)}.source-list li span{color:var(--muted)}.footer{color:var(--muted);font-size:12px;line-height:1.7;margin-top:24px}
@media(max-width:1120px){.resource-trail{grid-template-columns:repeat(4,1fr)}.trail-stop:nth-child(4){border-right:0}.perk-groups,.infra-grid,.meal-grid{grid-template-columns:repeat(2,1fr)}.decision-row{grid-template-columns:34px 1fr 1fr}.decision-row select{grid-column:2/4}.sample-form{grid-template-columns:1fr 1fr 1fr 1fr}.sample-form button{grid-column:1/-1}}
@media(max-width:820px){.goal-board{grid-template-columns:1fr}.goal-controls{max-width:680px}.route-grid,.perk-groups,.infra-grid,.meal-grid{grid-template-columns:1fr}.data-summary{grid-template-columns:repeat(2,1fr)}.infra-card>p{min-height:0}.covered-strip{align-items:flex-start;flex-direction:column}.section-heading{align-items:flex-start;flex-direction:column}.section-heading>p{text-align:left}.setup-heading{align-items:flex-start;gap:16px;flex-direction:column}}
@media(max-width:620px){.masthead{padding:0 12px;gap:4px}.brand{min-width:0}.brand small{display:none}.brand strong{font-size:16px}.tabs{margin-left:auto}.tab{padding:0 8px;font-size:12px}#exportPlan{display:none}main{width:min(94vw,620px);padding-top:16px}.goal-board{padding-top:24px}.goal-controls{grid-template-columns:1fr;box-shadow:none;}.presets{grid-column:1}.goal-header{align-items:flex-start;flex-direction:column}.goal-identity{align-items:flex-start}.item-art.goal-art{width:60px;height:60px}.goal-yield{text-align:left}.resource-trail{grid-template-columns:repeat(2,1fr)}.trail-stop:nth-child(even){border-right:0}.workbench-actions{align-items:flex-start;flex-wrap:wrap}.decision-row{grid-template-columns:34px 1fr}.decision-cost,.decision-row select{grid-column:2;text-align:left}.sample-form{grid-template-columns:1fr 1fr}.sample-form button{grid-column:1/-1}.assumption-grid{grid-template-columns:1fr}.source-list li{grid-template-columns:32px 1fr}.source-list li span{grid-column:2}h1{font-size:40px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Lantern Ledger release polish */
html{color-scheme:dark;scroll-behavior:smooth}
button,a,input,select{touch-action:manipulation}
h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}
.skip-link{position:fixed;left:12px;top:10px;z-index:1000;transform:translateY(-160%);padding:12px 16px;background:var(--paper);color:var(--ink);font-weight:800;text-decoration:none}
.skip-link:focus{transform:translateY(0)}
.brand-logo{width:44px;height:44px;display:block;object-fit:contain;filter:drop-shadow(0 5px 10px color-mix(in srgb, var(--dusk) 90%, transparent))}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--lantern);outline-offset:3px}
@media(max-width:760px){.masthead{gap:12px}.brand small{display:none}.brand-logo{width:38px;height:38px}.tabs{overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto}}

/* Fallback tile for items with no artwork: the item's initial, not a "?" */
.missing-art{font:650 14px var(--ui),serif;color:var(--muted);letter-spacing:.02em;opacity:.75}
.missing-art.tree-art{font-size:12px}
.missing-art.table-art{font-size:13px}
