:root{--paper:#f4ebd8;--raised:#fff9ed;--ink:#20231f;--muted:#5c6158;--blue:#1747a6;--blue-dark:#10357f;--coral:#c64332;--moss:#2d6b4e;--ochre:#8b5a12;--danger:#a52d29;--line:#b8ad98;--shadow:4px 4px 0 var(--ink);font-family:Avenir Next,Avenir,Inter,Segoe UI,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--paper);font-size:16px;line-height:1.55}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}.skip-link{position:fixed;top:-6rem;left:1rem;background:var(--ink);color:#fff;padding:.75rem 1rem;z-index:100}.skip-link:focus{top:1rem}a{color:var(--blue-dark);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--coral);outline-offset:3px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:1180px;margin:auto;padding:1rem 1.25rem;border-bottom:1.5px solid var(--ink)}.brand{display:flex;align-items:center;gap:.65rem;color:var(--ink);text-decoration:none;font:700 1.2rem Georgia,serif}.brand-mark{width:34px;height:34px;border:2px solid var(--ink);display:grid;place-items:center;background:var(--raised);box-shadow:2px 2px 0 var(--coral);font-family:system-ui}.header-tools{display:flex;align-items:center;gap:.75rem}.status-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .65rem;border:1.5px solid var(--ink);border-radius:999px;font-size:.8rem;font-weight:800;background:var(--raised)}.status-dot{width:.55rem;height:.55rem;background:var(--moss);border-radius:50%}.status-pill.offline .status-dot{background:var(--coral)}.small-link{font-size:.88rem;font-weight:700}.hero{max-width:1180px;margin:0 auto;padding:clamp(2.5rem,7vw,5.5rem) 1.25rem 4rem;display:grid;grid-template-columns:minmax(0,.88fr) minmax(340px,1.12fr);gap:clamp(2rem,6vw,5rem);align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--coral);font-weight:900;font-size:.78rem;margin:0 0 .8rem}.hero h1{font:700 clamp(3rem,6.5vw,5.4rem)/.94 Georgia,serif;letter-spacing:-.045em;max-width:10ch;margin:0}.hero-copy{font-size:1.16rem;max-width:56ch;margin:1.5rem 0}.trust-line{display:flex;gap:1rem;flex-wrap:wrap;margin:1.5rem 0 0;padding:0;list-style:none;color:var(--muted);font-weight:700;font-size:.9rem}.trust-line li:before{content:"✓";color:var(--moss);margin-right:.4rem}.hero-art{position:relative;transform:rotate(1deg)}.hero-art:before{content:"";position:absolute;inset:12px -10px -10px 12px;background:var(--coral);z-index:-1;border:2px solid var(--ink)}.hero-art img{display:block;width:100%;height:auto;border:2px solid var(--ink);background:var(--raised)}.art-note{font-size:.75rem;color:var(--muted);margin:.75rem 0 0}.route-wrap{border-block:2px solid var(--ink);background:#fff9ed8c}.route{max-width:1180px;margin:auto;display:flex;padding:0 1.25rem;list-style:none;overflow:auto}.route li{min-width:max-content;padding:.9rem 1.25rem .9rem 0;margin-right:1.5rem;font-weight:800;font-size:.88rem;letter-spacing:.02em}.route li:not(:last-child):after{content:"→";color:var(--coral);margin-left:1.5rem}.workspace{max-width:1180px;margin:auto;padding:4rem 1.25rem 6rem}.workspace-heading{display:flex;justify-content:space-between;gap:2rem;align-items:end;margin-bottom:2rem}.workspace h2{font:700 clamp(2.2rem,5vw,3.6rem)/1 Georgia,serif;margin:.2rem 0}.workspace-heading p{max-width:52ch;margin:0;color:var(--muted)}.work-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:2.5rem;align-items:start}.panel{min-width:0}.step-title{display:flex;align-items:center;gap:.8rem;font:700 1.5rem/1.1 Georgia,serif;margin:0 0 1rem}.step-number{display:grid;place-items:center;width:2rem;height:2rem;border:2px solid var(--ink);border-radius:50%;font:800 .9rem system-ui;background:var(--coral);color:#fff}.dropzone{position:relative;display:grid;place-items:center;text-align:center;min-height:230px;border:2px dashed var(--blue);padding:2rem;background:#fff9edb3;transition:transform .18s,background .18s}.dropzone.dragging{background:var(--raised);transform:translateY(-3px)}.dropzone input{position:absolute;width:1px;height:1px;opacity:.01}.dropzone label{cursor:pointer}.drop-icon{font:700 3rem Georgia,serif;color:var(--blue);display:block}.dropzone strong{display:block;font-size:1.15rem}.dropzone span{display:block;color:var(--muted);margin:.35rem}.file-card{border:2px solid var(--ink);background:var(--raised);padding:1rem;box-shadow:3px 3px 0 var(--blue);margin-top:1rem}.file-card strong{word-break:break-word}.file-stats{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;color:var(--muted);font-size:.88rem;margin-top:.35rem}.notice{border-left:5px solid var(--ochre);background:#fff3d8;padding:.8rem 1rem;margin:1rem 0}.notice.error{border-color:var(--danger);background:#fce6df}.notice.success{border-color:var(--moss);background:#e4f1e6}.notice p{margin:.15rem 0}.profile-bar{display:grid;grid-template-columns:1fr auto;gap:.75rem;margin-bottom:1rem}.profile-bar select{width:100%}.field{display:grid;gap:.35rem;margin-bottom:1rem}.field label,.field-label{font-weight:800;font-size:.88rem}.field small{color:var(--muted)}input,select,textarea{min-height:46px;border:1.5px solid var(--ink);border-radius:6px;background:var(--raised);padding:.65rem .75rem;width:100%}input:disabled,select:disabled{color:#74776f;background:#e6dfd0}.settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem 1rem}.check-field{display:flex;align-items:flex-start;gap:.7rem;margin:1rem 0}.check-field input{width:22px;height:22px;min-height:0;margin:.1rem 0}.check-field label{font-size:.9rem}.button-row{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.button{min-height:46px;border:2px solid var(--ink);border-radius:6px;padding:.65rem 1rem;background:var(--raised);font-weight:900;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.button:hover{transform:translateY(-1px)}.button:active{transform:translate(3px,3px)}.button.primary{background:var(--blue);color:#fff;box-shadow:3px 3px 0 var(--ink)}.button.danger{color:var(--danger);border-color:var(--danger)}.button.ghost{border-color:transparent;text-decoration:underline}.button[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none}.divider{border:0;border-top:1.5px solid var(--line);margin:2rem 0}.mapping-wrap{overflow:auto;border:1.5px solid var(--ink);background:var(--raised)}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:.7rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;background:#e9dfca}td input,td select{min-width:130px}td:first-child input{min-width:170px}.icon-button{width:44px;min-width:44px;height:44px;border:1.5px solid var(--danger);background:transparent;color:var(--danger);border-radius:6px;font-size:1.2rem}.empty-map{padding:2rem;text-align:center;color:var(--muted)}.review{margin-top:3rem;padding-top:3rem;border-top:3px double var(--ink)}.review-grid{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:2rem}.check-list,.change-list{list-style:none;padding:0;margin:0}.check-item{display:grid;grid-template-columns:1.5rem 1fr;gap:.6rem;padding:.85rem 0;border-bottom:1px solid var(--line)}.check-icon{font-weight:900}.check-item.error .check-icon{color:var(--danger)}.check-item.warning .check-icon{color:var(--ochre)}.check-item.pass .check-icon{color:var(--moss)}.check-item strong,.change-list strong{display:block}.check-item p,.change-list p{margin:.15rem 0;color:var(--muted);font-size:.9rem}.change-list li{padding:.85rem 0;border-bottom:1px solid var(--line)}.badge{display:inline-block;border:1px solid var(--ink);border-radius:999px;padding:.1rem .5rem;font-size:.74rem;font-weight:800;margin-top:.35rem}.preview{overflow:auto;max-height:390px;border:1.5px solid var(--ink);background:var(--raised)}.preview table{min-width:620px}.preview th{position:sticky;top:0}.download-panel{margin-top:2rem;padding:1.5rem;border:2px solid var(--moss);background:#e6f0e3;box-shadow:4px 4px 0 var(--moss)}.download-panel h3{font:700 1.6rem Georgia,serif;margin:0}.download-panel p{max-width:65ch}.pro{max-width:1180px;margin:0 auto 5rem;padding:0 1.25rem}.pro-card{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center;border:2px solid var(--ink);padding:clamp(1.25rem,4vw,2.5rem);background:var(--raised);box-shadow:6px 6px 0 var(--coral)}.pro h2{font:700 2rem Georgia,serif;margin:0}.pro p{margin:.5rem 0;max-width:65ch}.price{font:700 2rem Georgia,serif;white-space:nowrap}.restore{margin-top:1rem;display:flex;gap:.5rem}.restore input{max-width:390px}.site-footer{border-top:2px solid var(--ink);padding:2rem max(1.25rem,calc((100% - 1180px)/2));display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;color:var(--muted);font-size:.88rem}.site-footer nav{display:flex;gap:1rem}.toast{position:fixed;right:1rem;bottom:1rem;max-width:340px;background:var(--ink);color:#fff;padding:1rem;z-index:50;box-shadow:4px 4px 0 var(--coral)}.toast .button{margin-top:.5rem;color:var(--ink)}[hidden]{display:none!important}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:800px){.hero{grid-template-columns:1fr;padding-top:3rem}.hero h1{max-width:12ch}.hero-art{max-width:650px}.work-grid,.review-grid{grid-template-columns:1fr}.work-grid{gap:3rem}.pro-card{grid-template-columns:1fr}.workspace-heading{display:block}.header-tools .small-link{display:none}}@media(max-width:520px){.settings,.profile-bar{grid-template-columns:1fr}.hero{padding-inline:1rem}.hero-art{transform:none}.hero-art:before{inset:7px -5px -6px 7px}.workspace,.route{padding-inline:1rem}.restore{display:grid}.site-header{padding-inline:1rem}.status-pill{font-size:.72rem}.mapping-wrap{margin-inline:-1rem;border-inline:0}.pro{padding-inline:1rem}.button-row .button{flex:1 1 auto}.trust-line{display:grid;gap:.4rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.hero-art,.button:hover{transform:none}}:root{--coral: #b1382c}.dropzone input{inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.dropzone:has(input:focus-visible){outline:3px solid var(--coral);outline-offset:3px}
