:root{--ink:#1c1712;--paper:#f3ece1;--paper-2:#ebe2d4;--muted:#6f6558;--line:#d8cbb8;--accent:#b5471d;--accent-ink:#fff7ef;--card:#fffdf8;--elevated:#fffaf3;--danger:#9b2c14;--shadow:0 18px 40px #1c171214;--shadow-hover:0 22px 48px #1c171224;--backdrop:#1c17127a;--ease:.18s ease;--sans:"Figtree", system-ui, sans-serif;--serif:"Fraunces", Georgia, serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);background:radial-gradient(980px 460px at 8% -12%, #ffe4b8 0%, transparent 58%), radial-gradient(820px 420px at 98% 4%, #f0d3bc 0%, transparent 52%), radial-gradient(760px 520px at 50% 110%, #e6d2b6 0%, transparent 48%), var(--paper);font-family:var(--sans);margin:0;font-size:16px;line-height:1.5}body:before,body:after{content:"";pointer-events:none;z-index:0;position:fixed;inset:0}body:before{background-image:linear-gradient(#1c17120a 1px,#0000 1px),linear-gradient(90deg,#1c17120a 1px,#0000 1px);background-size:52px 52px;-webkit-mask-image:radial-gradient(80% 65% at 50% 18%,#000 15%,#0000 78%);mask-image:radial-gradient(80% 65% at 50% 18%,#000 15%,#0000 78%)}body:after{opacity:.22;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E")}#root{z-index:1;position:relative}button,input{font:inherit}a{color:inherit}img{max-width:100%;display:block}.page{width:min(1120px,100% - 32px);margin:0 auto;padding:28px 0 88px}.masthead{justify-content:space-between;align-items:center;gap:16px;margin-bottom:40px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-mark{flex-shrink:0;display:block}.wordmark{font-family:var(--serif);letter-spacing:-.03em;margin:0;font-size:24px;font-weight:500}.tagline{color:var(--muted);text-align:right;max-width:22rem;margin:0;font-size:14px}.hero{margin-bottom:8px}.hero h1{font-family:var(--serif);letter-spacing:-.035em;margin:0 0 10px;font-size:clamp(40px,7vw,68px);font-weight:500;line-height:1.02}.hero-line{font-family:var(--serif);color:var(--muted);letter-spacing:-.02em;max-width:28rem;margin:0 0 28px;font-size:clamp(18px,2.4vw,24px);font-style:italic;font-weight:500}.composer{background:var(--elevated);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:24px;padding:26px}.lede{color:var(--muted);max-width:42rem;margin:0 0 14px}.chips{flex-wrap:wrap;gap:8px;margin:0 0 20px;padding:0;list-style:none;display:flex}.chips li{border:1px solid var(--line);background:var(--card);color:var(--ink);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600}.row{gap:10px;display:flex}.row input{border:1px solid var(--line);min-width:0;height:54px;color:var(--ink);transition:border-color var(--ease), box-shadow var(--ease);background:#fff;border-radius:14px;flex:1;padding:0 16px}.row input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, white);outline:none}.row button{background:var(--accent);height:54px;color:var(--accent-ink);cursor:pointer;transition:transform var(--ease), filter var(--ease), box-shadow var(--ease);border:0;border-radius:14px;padding:0 22px;font-weight:600}.row button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.row button:disabled{opacity:.6;cursor:wait}.extract-short{display:none}.loader{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.loader-line{font-family:var(--serif);letter-spacing:-.02em;min-height:1.4em;margin:0 0 16px;font-size:22px}.loader-steps{gap:10px;margin:0;padding:0;list-style:none;display:grid}.loader-steps li{color:var(--muted);align-items:flex-start;gap:10px;font-size:14px;display:flex}.loader-steps li.active{color:var(--ink);font-weight:600}.loader-steps li.done{color:var(--ink)}.mark{border:1.5px solid var(--line);background:0 0;border-radius:999px;flex-shrink:0;width:10px;height:10px;margin-top:5px}.done .mark{background:var(--ink);border-color:var(--ink)}.active .mark{border-color:var(--accent);background:var(--accent);animation:1.2s ease-in-out infinite pulse}.step-copy{flex:1;gap:6px;display:grid}.step-bar{background:var(--line);border-radius:99px;height:2px;display:block;overflow:hidden}.step-bar:after{content:"";background:var(--accent);width:42%;height:100%;animation:1.2s ease-in-out infinite bar;display:block}.loader-hint{color:var(--muted);margin:16px 0 0;font-size:13px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes bar{0%{transform:translate(-120%)}to{transform:translate(280%)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.status{color:var(--muted);margin:14px 0 0;font-size:14px}.status.error{color:var(--danger)}.guide{margin-top:48px}.guide-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;padding-bottom:22px;display:flex}.guide-head h2{font-family:var(--serif);letter-spacing:-.035em;margin:6px 0 0;font-size:clamp(40px,6vw,64px);font-weight:500;line-height:1.02}.standfirst{max-width:36rem;font-family:var(--serif);color:var(--muted);letter-spacing:-.015em;margin:12px 0 0;font-size:clamp(17px,2vw,20px);font-style:italic}.meta{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:10px 0 0;font-size:14px;font-weight:600}.guide-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.ghost,.route{white-space:nowrap;cursor:pointer;height:42px;transition:transform var(--ease), box-shadow var(--ease), background var(--ease), color var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.ghost{border:1px solid var(--line);background:var(--card);color:var(--ink)}.ghost:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.route{background:var(--ink);color:var(--paper);border:0}.route:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.empty-guide{border:1px dashed var(--line);background:color-mix(in srgb, var(--card) 70%, transparent);color:var(--muted);text-align:center;border-radius:20px;margin:0;padding:36px 24px}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.skeleton-grid{margin-top:36px}.card{background:var(--card);border:1px solid var(--line);min-height:100%;transition:transform var(--ease), box-shadow var(--ease);border-radius:20px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 8px 20px #1c17120a}.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px)}.card.skeleton{pointer-events:none}.card.skeleton:hover{transform:none;box-shadow:0 8px 20px #1c17120a}.photo{aspect-ratio:4/3;background:linear-gradient(#1c171209 1px, transparent 1px), linear-gradient(90deg, #1c171209 1px, transparent 1px), var(--paper-2);background-size:22px 22px,22px 22px,auto;position:relative;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%;transition:transform .28s}.card:hover .photo img{transform:scale(1.06)}.photo.missing{place-items:center;display:grid}.photo-fallback{font-family:var(--serif);letter-spacing:-.03em;color:color-mix(in srgb, var(--ink) 45%, var(--paper-2));font-size:42px}.photo-chip{background:color-mix(in srgb, var(--card) 88%, transparent);max-width:calc(100% - 24px);color:var(--ink);letter-spacing:.06em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;margin:0;padding:5px 10px;font-size:11px;font-weight:600;position:absolute;bottom:12px;left:12px}.body{flex-direction:column;flex:1;gap:8px;padding:16px 16px 18px;display:flex}.kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0;font-size:12px;font-weight:600}.body h3{font-family:var(--serif);letter-spacing:-.025em;margin:0;font-size:22px;font-weight:500;line-height:1.15}.tip{color:var(--muted);margin:0;font-size:14px}.credit{color:var(--ink);margin:0;font-size:12px}.credit a{color:inherit;text-underline-offset:2px;text-decoration:underline}.actions{gap:8px;margin-top:auto;padding-top:10px;display:flex}.actions a,.actions button{text-align:center;border:1px solid var(--line);color:inherit;cursor:pointer;transition:transform var(--ease), filter var(--ease), background var(--ease);background:#fff;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 8px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.actions a:hover,.actions button:hover{transform:translateY(-1px)}.actions a.book,.actions button.book{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.actions a.book:hover,.actions button.book:hover{filter:brightness(1.06)}.actions a.uber{background:var(--ink);color:var(--paper);border-color:var(--ink)}.skel-line{background:linear-gradient(90deg, var(--paper-2) 0%, var(--elevated) 45%, var(--paper-2) 90%);background-size:200% 100%;border-radius:99px;height:12px;animation:1.4s ease-in-out infinite shimmer;display:block}.skel-kicker{width:38%;height:10px}.skel-title{width:72%;height:18px}.skel-short{width:54%}.modal-backdrop{z-index:20;background:var(--backdrop);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--elevated);border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow-hover);border-radius:20px;padding:22px 22px 20px}.modal h3{font-family:var(--serif);letter-spacing:-.025em;margin:6px 0 0;font-size:24px;font-weight:500}.dates{gap:12px;margin-top:16px;display:grid}.dates label{gap:6px;font-size:13px;font-weight:600;display:grid}.dates input{border:1px solid var(--line);height:46px;color:var(--ink);font:inherit;transition:border-color var(--ease), box-shadow var(--ease);background:#fff;border-radius:12px;padding:0 12px}.dates input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, white);outline:none}.modal-actions{gap:8px;margin-top:4px;display:grid}.modal-actions button{border:1px solid var(--line);cursor:pointer;min-height:46px;transition:filter var(--ease), transform var(--ease);background:#fff;border-radius:12px;padding:11px 14px;font-weight:600;line-height:1.25}.modal-actions button.book{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.modal-actions button:hover:not(:disabled){transform:translateY(-1px)}.modal-actions button:disabled{opacity:.6;cursor:wait}.home-band{gap:40px;margin-top:40px;display:grid}.sample{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:24px;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);display:grid;overflow:hidden}.sample-photo{background:linear-gradient(#1c17120a 1px, transparent 1px), linear-gradient(90deg, #1c17120a 1px, transparent 1px), var(--paper-2);background-size:22px 22px,22px 22px,auto;min-height:280px;position:relative}.sample-photo img{object-fit:cover;width:100%;height:100%}.sample-photo.missing{color:var(--muted);font-family:var(--serif);place-items:center;font-size:28px;display:grid}.sample-chip{background:color-mix(in srgb, var(--card) 90%, transparent);letter-spacing:.06em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:6px;padding:6px 11px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;top:16px;left:16px}.sample-body{flex-direction:column;justify-content:center;padding:28px 28px 26px;display:flex}.sample-body h2{font-family:var(--serif);letter-spacing:-.03em;margin:6px 0 0;font-size:clamp(26px,3vw,34px);font-weight:500;line-height:1.1}.sample-lede{color:var(--muted);max-width:28rem;margin:12px 0 0}.sample-body .credit{margin-top:12px}.sample-actions{gap:10px;margin-top:20px;display:flex}.sample-actions button{border:1px solid var(--line);cursor:pointer;height:46px;transition:transform var(--ease), filter var(--ease), box-shadow var(--ease);background:#fff;border-radius:12px;padding:0 16px;font-weight:600}.sample-actions button:hover:not(:disabled){transform:translateY(-1px)}.sample-actions button.book{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.sample-actions button.book:hover:not(:disabled){filter:brightness(1.06)}.sample-actions button:disabled{opacity:.6;cursor:wait}.how h2,.faq-block h2{font-family:var(--serif);letter-spacing:-.03em;margin:6px 0 0;font-size:clamp(28px,4vw,36px);font-weight:500}.how-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0 0;padding:0;list-style:none;display:grid}.how-card{border:1px solid var(--line);background:var(--card);border-radius:20px;padding:22px 20px 20px;box-shadow:0 8px 20px #1c17120a}.how-num{color:var(--accent);font-family:var(--serif);letter-spacing:.08em;margin-bottom:18px;font-size:15px;font-weight:600;display:block}.how-card h3{font-family:var(--serif);letter-spacing:-.025em;margin:0;font-size:24px;font-weight:500}.how-card p{color:var(--muted);margin:10px 0 0}.faq-block{padding-top:4px}.faq{border-top:1px solid var(--line);margin-top:18px}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:16px 2px;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";border-right:1.6px solid var(--ink);border-bottom:1.6px solid var(--ink);width:8px;height:8px;transition:transform var(--ease);flex-shrink:0;transform:rotate(45deg)}.faq details[open] summary:after{transform:rotate(225deg)}.faq details p{color:var(--muted);max-width:44rem;margin:0 0 16px}.disclosure{border-top:1px solid var(--line);color:var(--muted);margin-top:48px;padding-top:22px;font-size:13px}.disclosure p{margin:0 0 6px}@media (width<=720px){.page{width:min(1120px,100% - 24px);padding-top:20px}.masthead,.guide-head,.sample-actions,.guide-actions{flex-direction:column;align-items:stretch}.tagline,.guide-actions{text-align:left}.hero h1{font-size:clamp(34px,11vw,48px)}.composer{padding:20px}.row{gap:8px}.row input,.row button{border-radius:12px;height:48px}.row button{flex-shrink:0;width:auto;padding:0 16px}.extract-long{display:none}.extract-short{display:inline}.sample-actions button,.ghost,.route{width:100%}.sample,.how-grid{grid-template-columns:1fr}.sample-photo{min-height:220px}.sample-body{padding:22px 20px 20px}.guide-head{align-items:stretch}.grid{gap:16px}}
