:root{--bg:#dce4ec;--surface:#fff;--line:#cbd5df;--text:#25384b;--muted:#506374;--green:#365a45;--blue:#365c82;--gold:#d8bd85;--radius:16px;color-scheme:light;font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;font-size:15px;line-height:1.65;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.3;text-wrap:balance}p{text-wrap:pretty}a,button,summary{touch-action:manipulation;-webkit-tap-highlight-color:#365a4520}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #60876d;outline-offset:4px}button:disabled{cursor:default}section[id]{scroll-margin-top:20px}.num{font-variant-numeric:tabular-nums}.skip-link{position:absolute;left:16px;top:-100px;z-index:10;padding:12px 18px;background:#25384b;color:#fff;border-radius:8px}.skip-link:focus{top:12px}.page{width:min(1140px,100% - 48px);margin:auto;padding:0 0 20px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:baseline;gap:12px;min-width:0}.brand b{font-size:19px;font-weight:750;letter-spacing:.035em}.brand small{font-size:12px;color:var(--muted);white-space:nowrap}.author{display:flex;align-items:center;gap:12px;min-width:0}.author>img{display:block;width:44px;height:44px;border-radius:50%;outline:1px solid #00000014;outline-offset:3px}.author-name{display:block;font-size:13px;font-weight:650}.author-name:hover{color:var(--green)}.author-socials{display:flex;flex-wrap:wrap;gap:0 12px}.author-socials a{display:inline-flex;align-items:center;gap:5px;min-height:40px;min-width:40px;font-size:12px;color:var(--muted)}.author-socials a:hover{color:var(--text)}.author-socials svg{width:16px;height:16px}.intro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0 20px}.intro h1{font-size:32px;letter-spacing:.025em;font-weight:700}.intro>div>p{margin-top:7px;color:var(--muted);font-size:13px}.intro-note{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid var(--line);border-radius:7px;color:var(--muted);font-size:11px;white-space:nowrap}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:13px}.section-heading h2{font-size:14px;font-weight:650}.section-heading p{color:var(--muted);font-size:11px}.tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.tool-card{--card-bg:#dce8f3;--card-line:#b9ccdc;--card-text:#29435c;--card-muted:#4b6277;--card-accent:#365c82;--action-bg:#365c82;--action-text:#fff;--action-hover:#294b6e;display:flex;flex-direction:column;min-width:0;border:1px solid var(--card-line);border-radius:var(--radius);overflow:hidden;background:var(--card-bg);color:var(--card-text);box-shadow:0 3px 10px #23374b06}
.tool-card.trade{--card-bg:#e8efe5;--card-line:#b7cbb3;--card-text:#304c38;--card-muted:#526e59;--card-accent:#365a45;--action-bg:#365a45;--action-text:#f7fbf3;--action-hover:#284734}
.tool-card.chess{--card-bg:#172139;--card-line:#48445f;--card-text:#f1ece0;--card-muted:#b7c1d5;--card-accent:#dec58b;--action-bg:#c6b5e5;--action-text:#261f38;--action-hover:#dacbf0}
.tool-visual{position:relative;flex-shrink:0;height:152px;border-bottom:1px solid var(--card-line);overflow:hidden;background:var(--card-bg)}.tool-visual picture{display:block;width:100%;height:100%}.tool-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 40%}.tool-body{display:flex;flex:1;flex-direction:column;min-width:0;padding:21px}.card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;color:var(--card-muted);font-size:11px}.status{display:inline-flex;align-items:center;gap:6px;color:var(--card-accent);font-size:11px}.status.pending{color:#765823}.tool-body h3{font-size:23px;font-weight:700;letter-spacing:.015em}.tool-subtitle{display:block;margin-top:3px;font-size:12px;color:var(--card-muted)}.description{margin:13px 0 16px;color:var(--card-muted);font-size:13px;line-height:1.85}.tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0 0 19px;padding:0}.tags li{border:1px solid var(--card-line);border-radius:5px;padding:2px 7px;font-size:10px;color:var(--card-muted)}.card-action{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:10px 14px;margin-top:auto;border-radius:8px;background:var(--action-bg);color:var(--action-text);font-size:13px;font-weight:650}.card-action:hover{background:var(--action-hover)}.card-action:active{transform:translateY(1px)}.card-action svg{width:18px;height:18px;flex-shrink:0}.chess a:focus-visible{outline-color:#dec58b}.tool-note{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:19px 0 21px;color:var(--muted);font-size:11px}.tool-note a{color:var(--green);border-bottom:1px solid #8ba78b;padding-bottom:2px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding:16px 0;color:var(--muted);font-size:10px}.legal{display:flex;flex-wrap:wrap;gap:2px 14px}.legal a{display:inline-flex;align-items:center;gap:5px;min-height:32px}.legal a:hover{color:var(--text)}.legal img{width:14px;height:14px}.mobile-copy{display:none}
/* Trade detail: a light sage workspace, with a restrained illustration beside real copy. */
/* Trade page: one-third guide, two-thirds gallery. */
.trade-page{--bg:#e9efe6;--line:#bbcbb8;--text:#304b37;--muted:#536c58}
.trade-hero{padding:26px 0 24px}.trade-hero h1{font-size:36px;margin:9px 0 8px;letter-spacing:.015em}.trade-hero h1+p{font-size:16px}.hero-note{font-size:12px;color:var(--muted);margin-top:6px}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 18px;border:1px solid #365a45;border-radius:8px;background:#365a45;color:#f7fbf3;font-size:13px;font-weight:650}.button.secondary{background:#f7faf2;color:#365a45;border-color:#9aaf96}.button:disabled{background:#e3eade;color:#5a6d54;border-color:#b9cbb4;cursor:not-allowed}.button svg{width:17px;height:17px}.download-code{font-size:12px;margin-top:8px;color:var(--muted)}
.trade-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:stretch;gap:20px;margin-bottom:26px}
.trade-workspace .use-guide{--ll-text:#304b37;--ll-muted:#536c58;--ll-line:#bbcbb8;--ll-panel:#f7faf2;display:flex;flex-direction:column;max-width:none;min-width:0;margin:0;padding:22px;border:1px solid var(--line);border-radius:14px;background:#f7faf2}
.guide-kicker{font-size:10px;letter-spacing:.08em;color:var(--muted)}.guide-heading h2{font-size:24px;margin-top:3px;font-weight:650}.guide-steps{list-style:none;counter-reset:steps;display:grid;gap:16px;margin:21px 0 18px;padding:0}.guide-steps li{position:relative;padding-left:28px;counter-increment:steps}.guide-steps li::before{content:counter(steps,decimal-leading-zero);position:absolute;left:0;top:2px;font-size:11px;font-variant-numeric:tabular-nums;color:#627a63}.guide-steps h3{font-size:13px;line-height:1.5;font-weight:650}.guide-steps p{margin-top:4px;font-size:12px;line-height:1.7;color:var(--muted)}
.checksum{border-top:1px solid var(--line);padding-top:12px;margin-bottom:18px}.checksum>span{font-size:11px;font-weight:650;color:var(--muted)}.checksum code{display:block;min-height:32px;margin-top:6px;padding:6px 8px;border:1px solid #d7e0d2;border-radius:5px;background:#edf2e9;font:11px/1.65 ui-monospace,Consolas,monospace;overflow-wrap:anywhere}.guide-support{margin-top:auto}.guide-support .ll-support-panel{width:100%;padding:10px;gap:8px}.guide-support .ll-support-panel h2{font-size:16px}.guide-support .ll-qr-slot{width:104px;min-height:104px}
.trade-gallery{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:10px;border:1px solid #8da28b;border-radius:14px;background:#f7faf2;box-shadow:0 3px 12px #2c49310a}.gallery-stage{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid #bbcbb8;border-radius:7px;background:#1c2924}.gallery-slide{position:absolute;inset:0;margin:0}.gallery-slide[hidden]{display:none}.gallery-slide img{display:block;width:100%;height:100%;object-fit:contain}
.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px 0}.gallery-controls[hidden]{display:none}.gallery-controls button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:5px;border:1px solid #c3d0bd;border-radius:7px;background:transparent;color:#365a45;font-size:23px;cursor:pointer}.gallery-controls button:hover{background:#e3eade;border-color:#8da28b}.gallery-dots{display:flex;gap:6px}.gallery-dots button{font-size:11px}.gallery-dots button[aria-pressed="true"]{background:#365a45;color:#f7fbf3;border-color:#365a45}.gallery-state{position:absolute;left:1px;top:1px;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:740px){.trade-workspace{grid-template-columns:1fr;gap:14px}.trade-workspace .use-guide{padding:18px}.guide-heading h2{font-size:22px}.guide-steps{gap:14px;margin:17px 0}.trade-hero{padding:22px 0}.trade-hero h1{font-size:29px}.trade-hero h1+p{font-size:14px}.hero-actions .button{flex:1;padding:9px 12px;font-size:12px}.guide-support .ll-support-panel{max-width:360px}.trade-gallery{padding:8px}.gallery-controls{padding-top:6px}}
@media(max-width:1000px){.page{width:calc(100% - 40px)}.tools{gap:13px}.tool-visual{height:136px}.tool-body{padding:18px}.tool-body h3{font-size:21px}.trade-hero h1{font-size:32px}}
@media(max-width:740px){.page{width:calc(100% - 32px);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.masthead{flex-wrap:wrap;gap:9px;padding:13px 0}.brand b{font-size:17px}.brand small{font-size:11px}.author{width:100%;border-top:1px solid var(--line);padding-top:8px;gap:10px}.author>img{width:36px;height:36px}.author-name{font-size:12px}.author-socials{gap:0 16px}.author-socials a{min-height:44px;min-width:44px;font-size:11px}.intro{padding:18px 0 13px;gap:9px}.intro h1{font-size:27px;white-space:nowrap}.intro>div>p{display:none}.intro-note{padding:5px 7px;font-size:9px}.section-heading{margin-bottom:9px}.section-heading h2{font-size:12px}.section-heading p{display:none}.tools{grid-template-columns:1fr;gap:10px}.tool-card{display:grid;grid-template-columns:80px minmax(0,1fr);border-radius:12px;box-shadow:none}.tool-visual{height:100%;border-bottom:0;border-right:1px solid var(--card-line)}.tool-visual picture{position:absolute;inset:0}.tool-visual img{object-position:center}.tool-body{padding:11px 13px}.card-meta{font-size:10px;margin-bottom:4px}.status{font-size:10px}.tool-body h3{font-size:18px}.tool-subtitle,.tags{display:none}.description{font-size:11px;line-height:1.55;margin:5px 0 8px}.desktop-copy{display:none}.mobile-copy{display:inline}.card-action{min-height:44px;padding:8px 11px;font-size:12px;border-radius:7px}.card-action svg{width:16px;height:16px}.tool-note{font-size:10px;margin:13px 0 15px}.site-footer{display:block;font-size:10px;padding:12px 0}.legal{gap:0 9px;margin-top:5px}.legal a{min-height:30px}.trade-hero h1{font-size:29px}.trade-hero h1+p{font-size:14px;margin-top:10px}.hero-note{font-size:11px;margin-top:8px}.hero-actions{margin-top:16px}}
@media(max-width:360px){.page{width:calc(100% - 24px)}.intro h1{font-size:24px}.intro-note{font-size:8px;padding:5px}.tool-card{grid-template-columns:68px minmax(0,1fr)}.tool-body{padding:10px 11px}.tool-body h3{font-size:17px}.description{font-size:10px}.author-socials{gap:0 12px}.brand small{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}.card-action:active,.button:active{transform:none}}
@media(forced-colors:active){.tool-card,.card-action,.button{border:1px solid ButtonText}}
.card-action svg,.button svg{stroke-width:2}

/* One native link covers each card, including its illustration, with a keyboard focus frame. */
.tool-card{position:relative}
.card-action::after{content:"";position:absolute;inset:0}
.tool-card:focus-within{outline:3px solid var(--card-accent);outline-offset:3px}
.tool-card .card-action:focus-visible{outline:none}
.card-action:active{transform:none;background:var(--action-hover)}
/* Restore Audrey beside the desktop introduction; the phone source is inline. */
.trade-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);align-items:center;gap:30px}
.trade-hero-art{display:block;min-width:0;padding:7px;border:1px solid #b3c4ab;border-radius:14px;background:#f7faf2}
.trade-hero-art img{display:block;width:100%;height:auto;aspect-ratio:512/216;object-fit:cover;border-radius:7px;outline:1px solid #00000014;outline-offset:-1px}
@media(max-width:740px){
.trade-hero{grid-template-columns:1fr;gap:0}.trade-hero-art{display:none}
.trade-page .hero-actions>.button:not(.secondary){background:#52745b;border-color:#52745b;color:#f7fbf3;opacity:1}
}

/* A softer primary action stays distinct even while downloads are pending. */
.trade-page .hero-actions>.button:not(.secondary){background:#52745b;border-color:#52745b;color:#f7fbf3;opacity:1}
.trade-page .hero-actions>a.button:not(.secondary):hover{background:#44664d;border-color:#44664d}
/* Picture surfaces have only a static shadow; all remaining trim is pale gold. */
.trade-page{--line:#d7c59d}
.trade-page .trade-gallery{padding:0;border:0;background:transparent;box-shadow:none}
.trade-page .gallery-stage{border:0;outline:0;border-radius:12px}
.trade-page .gallery-picture-frame,.trade-page .trade-hero-art{display:block;min-width:0;padding:0;border:0;border-image:none;outline:0;border-radius:12px;overflow:hidden;background:transparent;box-shadow:0 8px 24px #00000014,0 2px 6px #0000000a}
.trade-page .trade-hero-art::before,.trade-page .trade-hero-art::after,.trade-page .trade-gallery::before,.trade-page .trade-gallery::after{content:none}
.trade-page .trade-hero-art img,.trade-page .gallery-slide img{border:0;outline:0;border-radius:0}
.trade-page .author>img{border:0;outline:0;box-shadow:0 2px 8px #00000014}
.trade-page .trade-workspace .use-guide{--ll-line:#d7c59d}
.trade-page .checksum code,.trade-page .gallery-controls button,.trade-page .hero-actions>.button{border-color:#d7c59d}
.trade-page .hero-actions>a.button:hover,.trade-page .gallery-controls button:hover{border-color:#c1ab79}
@media(max-width:740px){.trade-page .trade-hero-art{display:none}}
.trade-page .ll-support>summary:hover{border-color:#c1ab79}
/* One restrained lift per interaction; the stretched link stays untransformed. */
.home-page .tool-card{box-shadow:0 3px 8px #0000000a,0 10px 24px #0000000c;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
@media(hover:hover) and (pointer:fine){.home-page .tool-card:hover{transform:translateY(-3px);box-shadow:0 5px 12px #0000000e,0 18px 34px #00000016;border-color:var(--card-accent)}}
.home-page .tool-card:active{transform:translateY(1px);box-shadow:0 2px 5px #0000000e,0 5px 14px #00000010}
.home-page .tool-card:focus-within{border-color:var(--card-accent);box-shadow:0 4px 12px #0000000e,0 12px 26px #00000012}
@media(prefers-reduced-motion:reduce){.home-page .tool-card{transition:none}.home-page .tool-card:hover,.home-page .tool-card:active{transform:none}}
/* Interaction rims follow each tool's identity without changing its content colors. */
.home-page .tool-card{--card-rim:var(--card-accent)}
.home-page .tool-card.trade{--card-rim:#c6b079}
.home-page .tool-card.chess{--card-rim:#b29ada}
@media(hover:hover) and (pointer:fine){
.home-page .tool-card:hover{border-color:var(--card-rim)}
.home-page .tool-card.trade:hover{box-shadow:0 0 0 1px #c6b07970,0 5px 12px #0000000e,0 18px 34px #00000016}
.home-page .tool-card.chess:hover{box-shadow:0 0 0 1px #b29ada80,0 0 18px #b29ada22,0 18px 34px #00000016}
}
.home-page .tool-card:focus-within{border-color:var(--card-rim);outline-color:var(--card-rim)}
.home-page .tool-card.trade:focus-within{box-shadow:0 0 0 1px #c6b07970,0 12px 26px #00000012}
.home-page .tool-card.chess:focus-within{box-shadow:0 0 0 1px #b29ada80,0 0 18px #b29ada22,0 12px 26px #00000012}
.home-page .tool-card:active{border-color:var(--card-rim)}
/* Show the supplied backdrop directly, with no pale wash or dimming overlay. */
.home-page{--bg:#102031;--text:#f3f5f7;--muted:#d1d9e2;--green:#f0dfb8;--line:#ffffff35;position:relative;isolation:isolate;min-height:100vh;min-height:100svh;color:var(--text)}
.home-page::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:1;background:url("home-background-desktop.webp") center top/cover no-repeat}
.home-page .brand{align-items:center;gap:9px}
.home-page .brand-icon{display:block;flex:none;width:32px;height:32px;border-radius:8px;object-fit:contain}
@media(max-width:740px){.home-page::before{background-image:url("home-background-phone.webp")}.home-page .brand-icon{width:28px;height:28px;border-radius:7px}}
@media(forced-colors:active){.home-page::before{display:none}}
.home-page .intro,.home-page .section-heading,.home-page .tool-note{text-shadow:0 1px 3px #00000080}
.home-page .brand:focus-visible{outline-color:#f0dfb8}
.home-page .author>img{outline:0;border:1px solid #d7c59d}
/* Three brief mobile reveals run once; native links remain immediately usable. */
@keyframes home-card-enter{from{opacity:.92;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:740px) and (prefers-reduced-motion:no-preference){
.home-page .tool-card{animation:home-card-enter .24s ease-out 1 backwards}
.home-page .tool-card:nth-child(2){animation-delay:.04s}
.home-page .tool-card:nth-child(3){animation-delay:.08s}
.home-page .tool-card:active{animation:none;transform:translateY(2px);box-shadow:0 0 0 1px var(--card-rim),0 3px 12px #00000018}
.home-page .tool-card:focus-within{animation:none}
}
@media(prefers-reduced-motion:reduce){.home-page .tool-card{animation:none}}
