:root{color-scheme:light;--canvas:#f7e7cc;--surface:#fdf8ed;--raised:#fff9ef;--border:#e6d7c1;--text:#252b28;--muted:#56605f;--button:#ebd7c3;--hover:#f0dfcf;--success:#315934}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-width:320px;min-height:100vh;color:var(--text);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;background:radial-gradient(ellipse at 10% 4%,#fff9efaa,transparent 58%),linear-gradient(130deg,#fcefd7 0%,var(--canvas) 58%,#f3ddb9 100%);position:relative}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:url('/linen-weave.svg') repeat;opacity:.32;pointer-events:none}
button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
button:focus-visible{outline:3px solid #8a724f;outline-offset:4px}
svg{stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.site-header{height:104px;max-width:1280px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 48px}
.brand{display:flex;align-items:center;gap:11px;font-size:17px;font-weight:600;letter-spacing:.03em}
.brand-mark{display:grid;place-items:center;width:37px;height:37px;border:1px solid #ddc9ae;border-radius:12px;background:#fff9ef70;color:#705b42}
.brand-mark svg{height:23px;width:23px}
.header-note{font-size:12px;display:flex;gap:9px;align-items:center;color:var(--muted)}
.quiet-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8d9f7e;flex-shrink:0}
main{max-width:780px;margin:37px auto 30px;padding:0 24px}
.intro{text-align:center;margin-bottom:34px}
.eyebrow{font-size:10px;letter-spacing:.21em;color:#786c5c;font-weight:600}
h1{font-size:40px;line-height:1.35;margin:15px 0 12px;font-weight:600;letter-spacing:.015em}
.intro>p{font-size:15px;line-height:1.8;margin:0;color:var(--muted)}
.address-card{background:linear-gradient(135deg,#fffaf2 0%,var(--surface) 70%);border:1px solid #fffdf5;box-shadow:0 12px 40px #6a4f2309,0 2px 8px #6a4f2304;border-radius:24px;overflow:hidden}
.card-topline{display:flex;align-items:center;justify-content:space-between;padding:23px 30px 0}
.country-tag{font-size:12px;display:flex;align-items:center;gap:9px;color:#5c625b}
.country-tag>span{font-size:9px;font-weight:700;letter-spacing:.04em;border:1px solid #dfd1be;border-radius:5px;padding:4px 5px;color:#74634e;background:#f6eddf}
.result-status{font-size:11px;color:#7a7b71}
.result-status.generated{color:var(--success);padding:5px 10px;background:#e5eed8b0;border-radius:20px}
.empty-state{padding:35px 20px 34px;text-align:center;min-height:308px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.empty-icon{display:grid;place-items:center;width:74px;height:74px;border:1px solid #eadbc6;border-radius:23px;color:#a08b70;background:linear-gradient(145deg,#f8efdf,#f4e8d7);margin-bottom:20px}
.empty-icon svg{width:43px;height:43px;stroke-width:1.2}
.empty-state h2{font-size:19px;font-weight:500;margin:0 0 9px;letter-spacing:.02em}
.empty-state p{font-size:13px;color:#6e746c;margin:0;line-height:1.8}
.address-result{padding:29px 34px 20px;min-height:308px}
.address-heading{font-size:10px;letter-spacing:.18em;color:#88785f;font-weight:600;margin-bottom:12px}
.address-result h2{font-size:27px;line-height:1.4;letter-spacing:-.025em;font-weight:550;margin:0 0 5px;overflow-wrap:anywhere;font-family:Inter,"Segoe UI",sans-serif}
.city-line{font-size:18px;line-height:1.6;margin:0;color:#515c55}
.country-line{font-size:12px;line-height:1.7;color:#7a8077;margin:1px 0 24px}
.address-fields{margin:0;display:grid;grid-template-columns:1.3fr 1.3fr 1fr 1.1fr;gap:12px;padding:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.address-fields>div{min-width:0}
dt{color:#797d73;font-size:9px;letter-spacing:.04em;line-height:1.6;margin-bottom:6px}
dd{margin:0;font-size:13px;line-height:1.6;overflow-wrap:anywhere;color:#414c43;font-weight:500}
.address-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:12px}
.result-caption{display:flex;align-items:center;gap:6px;font-size:10px;color:#757c71}
.result-caption .quiet-dot{width:5px;height:5px}
.copy-button{display:flex;align-items:center;gap:6px;padding:7px 8px;background:transparent;border:0;color:#596257;font-size:11px;border-radius:7px}
.copy-button:hover{background:#f1e5d4}
.copy-button svg{width:13px;height:13px;stroke-width:1.4}
.action-area{padding:23px 34px 20px;background:#f5ecde70;border-top:1px solid #eee3d2;text-align:center}
.generate-button{width:100%;border:1px solid #d8bfa6;background:linear-gradient(#ffffff24,#8a724f05),var(--button);color:#382c1b;display:flex;align-items:center;justify-content:center;gap:12px;border-radius:12px;height:53px;font-size:15px;font-weight:550;letter-spacing:.025em;box-shadow:0 2px 3px #76573504;transition:background .15s,transform .15s}
.generate-button:hover:enabled{background:var(--hover);transform:translateY(-1px)}
.generate-button:active:enabled{transform:translateY(0)}
.generate-button:disabled{cursor:wait;color:#796b5b;background:#efe2d3}
.generate-button svg{height:20px;width:20px;stroke-width:1.5}
.generate-button.loading svg{animation:spin 1.1s linear infinite}
.message{font-size:11px;line-height:1.8;min-height:20px;color:#737b70;margin:12px 0 0}
.message.error{color:#963f31}
.data-note{text-align:center;font-size:11px;color:#73796c;margin:20px 0 19px;line-height:1.9}
.page-footer{display:flex;align-items:center;justify-content:center;gap:10px;font-size:10px;color:#7c8175;line-height:1.7;flex-wrap:wrap}
.footer-divider{color:#a99b88}
.page-footer a{color:inherit;text-decoration:underline;text-underline-offset:3px}
@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1600px){main{margin-top:65px}}
@media(max-width:600px){.site-header{height:83px;padding:0 23px}.brand{font-size:15px}.header-note{font-size:10px;gap:5px}main{margin-top:24px;padding:0 17px}.intro{margin-bottom:25px}h1{font-size:30px;line-height:1.5;margin-top:12px}.intro>p{font-size:12px}.eyebrow{font-size:8px;letter-spacing:.17em}.address-card{border-radius:20px}.card-topline{padding:20px 21px 0}.empty-state{min-height:300px;padding:30px 16px}.empty-state h2{font-size:17px}.empty-state p{font-size:12px}.address-result{padding:25px 23px 19px;min-height:300px}.address-result h2{font-size:24px}.city-line{font-size:16px}.address-fields{grid-template-columns:1fr 1fr;gap:15px 20px}.country-line{margin-bottom:20px}.action-area{padding:21px 22px 18px}.generate-button{height:51px}.data-note{font-size:10px}.address-bottom{margin-top:15px}.result-caption{font-size:9px}.copy-button{font-size:10px;padding-right:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
