:root{--bg:#f3f4f1;--ink:#161816;--ink-2:#4a4f4a;--muted:#7a807a;--green:#1f7a5c;--green-d:#17604a;--green-l:#d8efe6;--sand:#e8c9a0;--paper:#f3efe7;--line:#e2ddd2;--radius:18px}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,Segoe UI,sans-serif;font-size:15px;line-height:1.7}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit}.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 20px}.muted{color:var(--muted)}.small{font-size:13px}.link{color:var(--green)}.link:hover{text-decoration:underline}.topbar{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#f3f4f1e0;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;height:60px;display:flex}.brand{letter-spacing:.02em;align-items:center;gap:8px;font-weight:700;display:flex}.brand-mark{background:var(--green-l);border-radius:10px;place-items:center;width:32px;height:32px;font-size:17px;display:grid}.nav{gap:4px;display:flex}.nav a{color:var(--ink-2);border-radius:999px;padding:6px 12px;font-size:14px}.nav a:hover{background:var(--paper)}.nav a.active{background:var(--green-l);color:var(--green-d);font-weight:600}.main{min-height:calc(100vh - 200px);padding-top:32px;padding-bottom:64px}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:7px 16px;font-size:14px;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-d)}.btn-primary[data-state=ok]{background:var(--green-l);color:var(--green-d);border-color:var(--green)}.btn-primary[data-state=fail]{background:var(--sand);color:var(--ink)}.btn-ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn-ghost:hover{background:var(--paper);border-color:var(--sand)}.btn-lg{padding:11px 22px;font-size:15px}.hero{max-width:760px;padding:40px 0 24px}.eyebrow{background:var(--green-l);color:var(--green-d);border-radius:999px;margin:0 0 14px;padding:3px 12px;font-size:13px;font-weight:600;display:inline-block}.hero h1{letter-spacing:.01em;margin:0 0 16px;font-size:clamp(28px,5vw,44px);line-height:1.25}.lead{color:var(--ink-2);margin:0 0 28px;font-size:17px}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.section{margin-top:56px}.section-head{justify-content:space-between;align-items:baseline;display:flex}.section-title{margin:0 0 18px;font-size:20px}.group-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.group-card{gap:14px;padding:14px;transition:border-color .15s,transform .15s;display:flex}.group-card:hover{border-color:var(--sand);transform:translateY(-2px)}.group-card img{object-fit:cover;background:#fff;border-radius:12px;flex-shrink:0;width:84px;height:84px}.group-name{font-weight:700}.group-desc{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 0;font-size:13px;line-height:1.6;display:-webkit-box;overflow:hidden}.page-head h1{margin:0;font-size:28px}.page-head p{margin:4px 0 0}.toolbar{flex-direction:column;gap:14px;margin:24px 0 8px;display:flex}.search{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:10px;max-width:560px;padding:0 18px;display:flex}.search:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}.search input{height:44px;color:var(--ink);background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:15px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--paper);color:var(--ink-2);cursor:pointer;border-radius:999px;padding:5px 13px;font-size:13.5px}.chip:hover{border-color:var(--sand)}.chip.on{background:var(--green);border-color:var(--green);color:#fff}.chip-n{opacity:.65;margin-left:2px;font-size:12px}.group-intro{background:var(--green-l);color:var(--green-d);border-radius:14px;margin:16px 0 0;padding:12px 16px;font-size:14px}.result-count{min-height:1em;margin:10px 0 14px;font-size:13px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (width>=640px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=960px){.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}}@media (width>=1200px){.grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.style-card{flex-direction:column;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.style-card:hover{border-color:var(--sand);transform:translateY(-3px);box-shadow:0 10px 24px -16px #16181659}.thumb{padding:10px 10px 0}.thumb img{aspect-ratio:1;object-fit:cover;background:#fff;border-radius:12px;width:100%;height:auto}.card-body{padding:10px 14px 14px}.card-id{color:var(--green);letter-spacing:.03em;font-size:12px;font-weight:600}.card-group{color:var(--muted);font-weight:400}.card-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:14px;line-height:1.45;display:-webkit-box;overflow:hidden}.crumbs{color:var(--muted);margin-bottom:18px;font-size:13px}.crumbs a:hover{color:var(--green)}.detail-main{grid-template-columns:1fr;gap:28px;display:grid}@media (width>=960px){.detail-main{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;gap:40px}.detail-media{position:sticky;top:84px}}.detail-media{padding:14px}.detail-media img{background:#fff;border-radius:12px;width:100%}.detail-id{align-items:center;gap:10px;display:flex}.tag{background:var(--green-l);color:var(--green-d);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700;display:inline-block}.detail-name{margin:10px 0 4px;font-size:clamp(24px,3.4vw,32px);line-height:1.25}.block{margin-top:26px}.block h3{margin:0 0 10px;font-size:15px}.traits{background:var(--paper);border:1px solid var(--line);color:var(--ink-2);border-radius:14px;margin:0;padding:14px 16px}.mode-switch{gap:8px;display:flex}.theme-input{color:var(--ink-2);flex-direction:column;gap:6px;margin:8px 0 16px;font-size:13px;display:flex}.theme-input input{border:1px solid var(--line);height:42px;color:var(--ink);background:#fff;border-radius:12px;outline:0;padding:0 14px;font-size:15px}.theme-input input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}.prompt{border:1px solid var(--line);background:#fff;border-radius:14px;margin-bottom:12px;padding:12px 14px}.prompt-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:14px;display:flex}.prompt-text{white-space:pre-wrap;word-break:break-word;color:var(--ink-2);max-height:260px;margin:0;font-family:inherit;font-size:14px;line-height:1.7;overflow:auto}.ref-block{border:1px solid var(--sand);background:#fbf4ea;border-radius:14px;padding:16px}.ref-link{align-items:center;gap:14px;display:flex}.ref-link img{border-radius:10px;width:120px}.source{color:var(--muted);margin-top:22px;font-size:13px}.source summary{cursor:pointer}.pager{justify-content:space-between;margin-top:28px;display:flex}.prose{max-width:760px;padding:28px 32px}.prose h1{margin-top:0;font-size:26px}.prose h2{margin-top:28px;font-size:18px}.prose a{color:var(--green);text-underline-offset:3px;text-decoration:underline}.state{text-align:center;color:var(--muted);padding:60px 0}.footer{border-top:1px solid var(--line);color:var(--ink-2);padding:26px 0 34px;font-size:13px}.footer p{margin:0 0 6px}.footer a{color:var(--green)}@media (width<=640px){.wrap{padding:0 14px}.main{padding-top:20px}.grid{gap:12px}.thumb{padding:8px 8px 0}.card-body{padding:8px 10px 12px}.card-name{font-size:13px}.prose{padding:20px}.nav a{padding:6px 9px}.chips{scrollbar-width:none;flex-wrap:nowrap;margin:0 -14px;padding:2px 14px 6px;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{flex-shrink:0}}.thumb{position:relative}.fav{z-index:2;border:1px solid var(--line);width:34px;height:34px;color:var(--muted);cursor:pointer;background:#ffffffe6;border-radius:999px;justify-content:center;align-items:center;gap:6px;transition:transform .1s,color .15s;display:inline-flex;position:absolute;top:16px;right:16px}.fav svg{fill:none;stroke:currentColor;stroke-width:1.8px}.fav:hover,.fav.on{color:#c0563f}.fav.on svg{fill:currentColor}.fav:active{transform:scale(.9)}.fav-big{width:auto;height:auto;color:var(--ink-2);padding:6px 14px;font-size:14px;position:static}@media (width<=640px){.fav{width:30px;height:30px;top:12px;right:12px}}.layout-card .thumb img{aspect-ratio:3/4;object-fit:cover;object-position:top}.grid.masonry{columns:2;column-gap:12px;display:block}.grid.masonry>*{break-inside:avoid;margin-bottom:12px;display:flex}@media (width>=640px){.grid.masonry{columns:3;column-gap:16px}.grid.masonry>*{margin-bottom:16px}}@media (width>=960px){.grid.masonry{columns:4;column-gap:20px}.grid.masonry>*{margin-bottom:20px}}@media (width>=1200px){.grid.masonry{columns:5}}.keywords{flex-wrap:wrap;gap:6px;display:flex}.kw{border:1px solid var(--line);color:var(--ink-2);background:#fff;border-radius:999px;padding:2px 10px;font-size:12.5px}.actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.badge-ext{border:1px solid var(--sand);color:#8a5a22;vertical-align:2px;background:#fbf4ea;border-radius:999px;margin-left:6px;padding:0 8px;font-size:11.5px;font-weight:500;display:inline-block}.swatch-card{flex-direction:column;display:flex;overflow:hidden}.swatch-card .thumb img{aspect-ratio:3/4;object-fit:cover}.tone-card .thumb img{aspect-ratio:1}.swatch-card .card-body{flex-direction:column;flex:1;gap:6px;display:flex}.swatch-card .quote{color:var(--muted);font-size:12.5px;line-height:1.5}.swatch-card .btns{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.swatch-card .btn{padding:4px 11px;font-size:12.5px}.cat-title{align-items:baseline;gap:8px;margin:30px 0 12px;font-size:16px;display:flex}.builder{grid-template-columns:1fr;gap:24px;margin-top:22px;display:grid}@media (width>=960px){.builder{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;gap:36px}.builder-out{position:sticky;top:84px}}.builder-form{flex-direction:column;gap:16px;padding:20px;display:flex}.field{color:var(--ink-2);flex-direction:column;gap:6px;font-size:13px;display:flex}.field-label{color:var(--ink);justify-content:space-between;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.field select,.field input[type=text]{border:1px solid var(--line);height:42px;color:var(--ink);background:#fff;border-radius:12px;outline:0;width:100%;min-width:0;padding:0 12px;font-size:14.5px}.field select:focus,.field input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}.pick-preview{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:6px;display:flex}.pick-preview img{object-fit:cover;border-radius:8px;flex-shrink:0;width:52px;height:52px}.pick-preview a{color:var(--green);font-size:12.5px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.check{color:var(--ink-2);cursor:pointer;align-items:center;gap:6px;font-size:13.5px;display:inline-flex}.tone-chips .chip{padding:4px 10px;font-size:12.5px}.note{background:var(--green-l);color:var(--green-d);border-radius:12px;margin:0 0 12px;padding:10px 14px;font-size:13px}.note.warn{color:#7a4f1c;border:1px solid var(--sand);background:#fbf4ea}.builder-out .prompt-text{max-height:340px}.empty{text-align:center;color:var(--muted);padding:40px 20px}.fav-section+.fav-section{margin-top:36px}@media (width<=900px){.topbar-inner{flex-direction:column;align-items:stretch;gap:2px;height:auto;padding-top:8px;padding-bottom:6px}.nav{scrollbar-width:none;margin:0 -14px;padding:0 14px;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav a{flex-shrink:0;font-size:13.5px}}.btn-soft{background:var(--green-l);color:var(--green-d)}.btn-soft:hover{background:#c6e6d9}@media (width<=640px){.chips.tone-chips{flex-wrap:wrap;margin:0;padding:0;overflow:visible}}.fav-big{white-space:nowrap;flex-shrink:0}
