:root{color-scheme:light;--ink: #4e3c2b;--muted: #7d6850;--line: rgba(105, 79, 50, .16);--panel: rgba(255, 248, 238, .84);--panel-strong: rgba(251, 241, 226, .96);--shadow: 0 18px 44px rgba(80, 55, 32, .12);--gold: #c5954f;--red: #b54a3d;--blue: #4f7db9;--green: #90b7a2}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:"Source Han Serif SC","Noto Serif SC",Songti SC,serif;color:var(--ink);background:radial-gradient(circle at top left,rgba(199,147,80,.2),transparent 24%),radial-gradient(circle at right 20% top 18%,rgba(120,158,168,.14),transparent 24%),linear-gradient(180deg,#f9f2e8,#f5ebdd 48%,#efe1ce);overflow-x:hidden}button{font:inherit}.app-shell{min-height:100vh;padding:28px;position:relative;isolation:isolate}.app-shell>*:not(.motion-field){position:relative;z-index:1}.motion-field{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.motion-aura,.motion-grid,.motion-sweep,.motion-rings{position:absolute;inset:0}.motion-aura{background:radial-gradient(circle at 18% 22%,color-mix(in srgb,var(--accent) 36%,transparent),transparent 26%),radial-gradient(circle at 78% 20%,rgba(79,125,185,.16),transparent 24%),radial-gradient(circle at 54% 72%,rgba(181,74,61,.12),transparent 28%);filter:blur(10px);animation:auraShift 10s ease-in-out infinite alternate}.motion-grid{background-image:linear-gradient(rgba(133,107,77,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(133,107,77,.05) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.65) 18%,rgba(0,0,0,.9) 100%);mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.65) 18%,rgba(0,0,0,.9) 100%);animation:gridFloat 18s linear infinite}.motion-sweep{inset:-20%;background:linear-gradient(115deg,transparent 42%,color-mix(in srgb,var(--accent) 18%,transparent) 50%,transparent 58%);filter:blur(2px)}.motion-sweep-a{animation:sweepAcross 2.8s cubic-bezier(.22,1,.36,1) both}.motion-sweep-b{transform:rotate(180deg);animation:sweepAcross 3.1s .18s cubic-bezier(.22,1,.36,1) both}.motion-rings span{position:absolute;left:50%;top:50%;width:18vw;aspect-ratio:1;transform:translate(-50%,-50%) scale(.4);border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 45%,rgba(255,255,255,.14));box-shadow:0 0 80px color-mix(in srgb,var(--accent) 18%,transparent);animation:dataRing 1.9s var(--delay) ease-out both}.app-header{display:grid;gap:18px;margin-bottom:18px}.eyebrow{margin:0 0 8px;color:#9b7651;font-size:12px;letter-spacing:.18em;text-transform:uppercase}.app-header h1,.panel-header h2,.sidebar-card h2,.sidebar-card h3,.summary-card h3,.silhouette-label strong{margin:0;font-weight:600}.app-header h1{font-size:clamp(28px,3vw,42px);line-height:1.1;max-width:12ch}.header-actions,.view-switch,.header-pills,.filter-bar,.filter-group,.fact-grid,.summary-list,.tag-row,.dashboard-footer,.route-stops{display:flex;flex-wrap:wrap;gap:10px}.header-actions{justify-content:space-between;align-items:center}.pill,.chip,.ghost-button,.view-switch button,.artifact-tabs button,.matrix-label,.route-stops span{border:1px solid var(--line);background:#fffbf5c7;color:var(--ink);border-radius:999px}.pill{padding:8px 14px;font-size:13px}.pill.strong{background:#f5e6cf;border-color:#9d6d3447}.ghost-button{padding:10px 16px;cursor:pointer}.view-switch button,.artifact-tabs button{padding:10px 16px;cursor:pointer;transition:.18s ease}.view-switch button.active,.artifact-tabs button.active,.chip.active,.matrix-label:hover,.ghost-button:hover{background:#4d3521;color:#fff4e5}.panel{border:1px solid rgba(118,91,60,.14);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;animation:panelLift .52s cubic-bezier(.22,1,.36,1) both}.filter-bar{align-items:center;justify-content:space-between;padding:14px 18px;margin-bottom:18px}.filter-group{align-items:center}.filter-group span{font-size:13px;color:var(--muted)}.chip{padding:8px 12px;cursor:pointer;border-color:color-mix(in srgb,var(--chip, rgba(105, 79, 50, .16)) 24%,var(--line))}.content-grid{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px;align-items:start}.sidebar{display:grid;gap:14px;position:sticky;top:28px}.sidebar-card,.summary-card{padding:18px}.sidebar-card.highlight{background:linear-gradient(135deg,#fffaf3eb,#f4e6cdeb),var(--panel-strong)}.sidebar-hero,.summary-image,.lab-preview,.hotspot-preview{overflow:hidden;border-radius:14px;border:1px solid rgba(118,91,60,.12);margin-bottom:14px}.sidebar-hero img,.lab-preview img{display:block;width:100%;height:auto}.summary-image{height:132px;background-position:center;background-size:cover}.hotspot-preview{height:148px;background-size:210%;background-repeat:no-repeat}.sidebar-card p,.summary-card p{margin:0;line-height:1.6}.sidebar-kicker,.mini-title{margin:0 0 10px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8c6f4f}.fact-grid{margin-top:14px}.fact-grid>div,.summary-list>div,.meta-line,.progress-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:8px 0;border-bottom:1px dashed rgba(118,91,60,.14)}.fact-grid>div:last-child,.summary-list>div:last-child,.meta-line:last-child{border-bottom:0}.fact-grid span,.summary-list span,.meta-line span,.small-note,.progress-row span{color:var(--muted);font-size:13px}.main-content,.workspace-stack,.chart-row,.dashboard-grid,.lab-layout,.breakdown-layout,.compass-layout{display:grid;gap:18px}.panel-header{display:flex;justify-content:space-between;gap:16px;align-items:end}.panel-header h2{font-size:28px}.panel-hint{max-width:38ch;color:var(--muted);font-size:14px;line-height:1.6}.compass-shell,.breakdown-shell,.lab-shell,.dashboard-shell{padding:22px}.compass-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:stretch}.compass-board{position:relative;min-height:540px;border-radius:20px;border:1px solid rgba(129,100,66,.16);background:radial-gradient(circle at center,#fff5e5eb,#f7ead6d6 42%,#eee1cde0);overflow:hidden}.compass-board:before,.compass-board:after{content:"";position:absolute;inset:10%;border-radius:50%;border:1px dashed rgba(138,106,72,.12);animation:orbitalSpin 26s linear infinite}.compass-board:after{inset:20%;border-style:solid;border-color:#8a6a4814;animation-direction:reverse;animation-duration:18s}.compass-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:126px;height:126px;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle,#fef7ec,#ead6b8);border:1px solid rgba(141,107,66,.24);box-shadow:0 0 0 14px #fff7eca8;z-index:2;animation:corePulse 4.2s ease-in-out infinite}.compass-lines{position:absolute;inset:0;width:100%;height:100%}.compass-lines line{stroke:#8769483d;stroke-width:.3}.dimension-node,.artifact-node,.hotspot,.swatch{transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease,background .18s ease}.dimension-node{position:absolute;transform:translate(-50%,-50%);padding:10px 14px;border-radius:999px;border:1px solid rgba(128,97,64,.18);background:#fffbf5f5;color:var(--ink);cursor:pointer;z-index:3}.dimension-node.active{background:#503721;color:#fff0dd;box-shadow:0 10px 24px #50372138;transform:translate(-50%,-50%) scale(1.08)}.group-label{position:absolute;transform:translate(-50%,-50%);padding:6px 10px;border-radius:999px;background:#fff5e4e6;border:1px dashed rgba(140,108,73,.3);font-size:12px;color:#8b6e4a;z-index:2}.artifact-node{position:absolute;transform:translate(-50%,-50%);min-width:112px;padding:12px 12px 10px;border-radius:16px;border:1px solid rgba(134,102,68,.16);background:linear-gradient(180deg,#fffcf6fa,#f7ead8eb);box-shadow:0 12px 24px #5b432d1f;cursor:pointer;text-align:left;z-index:4}.artifact-node-thumb{width:100%;height:54px;border-radius:10px;background-position:center;background-size:cover;margin-bottom:8px;box-shadow:inset 0 -24px 32px #170e081f}.artifact-node strong,.artifact-node span{display:block}.artifact-node strong{font-size:14px}.artifact-node span{margin-top:4px;color:var(--muted);font-size:12px}.artifact-node.selected{border-color:color-mix(in srgb,var(--accent) 50%,rgba(134,102,68,.16));box-shadow:0 16px 28px #5b432d2e,0 0 0 10px color-mix(in srgb,var(--accent) 10%,transparent);transform:translate(-50%,-50%) scale(1.08)}.artifact-node.muted,.matrix-row.muted{opacity:.36}.compass-side{display:grid;gap:18px}.summary-card.muted{background:#fffbf594}.chart-row{grid-template-columns:repeat(4,minmax(0,1fr))}.chart-panel{padding:14px 14px 6px;border-radius:16px;border:1px solid rgba(118,91,60,.12);background:#fffbf5bd;min-width:0}.chart-panel.full-width,.chart-panel.wide{grid-column:span 2}.chart-panel.stretch{height:100%}.chart{width:100%}.chart.medium{height:260px}.chart.tall{height:320px}.chart.short{height:210px}.artifact-tabs{display:flex;gap:10px;flex-wrap:wrap}.breakdown-layout{grid-template-columns:minmax(0,1.1fr) 360px;align-items:stretch}.artifact-stage{position:relative;border-radius:20px;border:1px solid rgba(118,91,60,.14);background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--accent) 26%,rgba(255,255,255,.22)) 0%,transparent 34%),linear-gradient(180deg,#fffbf4f0,#f3e4cce6);min-height:520px;display:grid;place-items:center;padding:24px;overflow:hidden}.artifact-stage:before{content:"";position:absolute;inset:-25%;background:conic-gradient(from 180deg,transparent 0 25%,color-mix(in srgb,var(--accent) 20%,transparent) 35%,transparent 45% 100%);filter:blur(12px);animation:stageSpin 14s linear infinite}.artifact-silhouette{position:relative;width:min(100%,520px);aspect-ratio:1 / 1;border-radius:28px;background:radial-gradient(circle at center,color-mix(in srgb,var(--accent) 34%,rgba(255,255,255,.8)),#fffaf2cc 26%,#eddfcbeb);box-shadow:inset 0 0 0 1px #80614029;animation:silhouetteFloat 6s ease-in-out infinite}.artifact-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(1.02) contrast(1.02)}.artifact-silhouette:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#fffaf314,#2b1a0c1f),radial-gradient(circle at 50% 38%,rgba(255,255,255,.1),transparent 32%);z-index:1}.silhouette-label{position:absolute;left:24px;bottom:24px;display:grid;gap:6px;z-index:3;padding:12px 14px;border-radius:14px;background:#fff9efc7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.silhouette-label span{color:var(--muted);font-size:13px}.hotspot{position:absolute;transform:translate(-50%,-50%);min-width:82px;padding:8px 10px;border-radius:999px;border:1px solid rgba(128,97,64,.2);background:#fffaf3f0;cursor:pointer;animation:hotspotBlink 2.4s ease-in-out infinite;z-index:4}.hotspot.active{background:#4d3521;color:#fff4e5;box-shadow:0 12px 24px #4e36223d;transform:translate(-50%,-50%) scale(1.1)}.breakdown-side{display:grid;gap:18px}.tag-row{margin-top:14px}.tag{padding:7px 10px;border-radius:999px;background:#f4e6ceb3;color:var(--muted);font-size:12px}.tag.active{background:#503721;color:#fff1df}.lab-layout{grid-template-columns:minmax(0,1fr) 320px}.note-card{display:grid;gap:16px}.lab-preview img{max-height:180px;object-fit:cover}.hover-note{padding:14px;border-radius:14px;background:#f7ebd6d1}.hover-note.muted{opacity:.76}.hover-note strong{display:block;margin-bottom:8px}.matrix-board{display:grid;gap:12px}.matrix-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:center}.matrix-label{padding:12px 14px;cursor:pointer}.matrix-swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.swatch{position:relative;min-height:82px;border-radius:16px;overflow:hidden;border:1px solid rgba(118,91,60,.14);background:linear-gradient(180deg,#fffcf7fa,#f6ebd9e6);cursor:pointer;text-align:left;padding:14px}.swatch:before{content:"";position:absolute;inset:auto 0 0;height:var(--fill);background:var(--swatch);opacity:.86}.swatch span,.swatch strong{position:relative;z-index:1;display:block}.swatch span{font-size:13px}.swatch strong{margin-top:8px}.swatch.active{box-shadow:inset 0 0 0 2px #4d3521;transform:translateY(-2px)}.fragment-rail{display:grid;gap:10px;margin-top:14px}.fragment-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;border-radius:14px;background:#fffbf5bd;border:1px solid rgba(118,91,60,.1)}.fragment-card.active{border-color:#5035213d;box-shadow:inset 0 0 0 1px #5035211f}.fragment-thumb{width:54px;height:54px;border-radius:10px;background-position:center;background-size:cover}.fragment-meta{display:grid;gap:4px}.fragment-meta strong{font-size:13px}.fragment-meta span,.fragment-badge{color:var(--muted);font-size:12px}.fragment-badge{min-width:38px;text-align:right}.main-content{animation:contentBloom .48s cubic-bezier(.22,1,.36,1) both}@keyframes auraShift{0%{transform:translateZ(0) scale(1);opacity:.88}to{transform:translate3d(1.5%,-2%,0) scale(1.08);opacity:1}}@keyframes gridFloat{0%{transform:translateY(0)}to{transform:translateY(42px)}}@keyframes sweepAcross{0%{transform:translate3d(-24%,-8%,0) rotate(-8deg);opacity:0}20%{opacity:1}to{transform:translate3d(24%,8%,0) rotate(-8deg);opacity:0}}@keyframes dataRing{0%{transform:translate(-50%,-50%) scale(.24);opacity:.7}to{transform:translate(-50%,-50%) scale(2.8);opacity:0}}@keyframes panelLift{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes orbitalSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes corePulse{0%,to{box-shadow:0 0 0 14px #fff7eca8;transform:translate(-50%,-50%) scale(1)}50%{box-shadow:0 0 0 24px #fff7ec3d,0 0 48px #c5954f33;transform:translate(-50%,-50%) scale(1.04)}}@keyframes stageSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes silhouetteFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes hotspotBlink{0%,to{box-shadow:0 0 #c5954f14}50%{box-shadow:0 0 0 10px #c5954f24}}@keyframes contentBloom{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.route-stops span{padding:8px 12px;font-size:13px}@media(max-width:1180px){.content-grid,.compass-layout,.breakdown-layout,.lab-layout,.dashboard-footer{grid-template-columns:1fr}.sidebar{position:static}.chart-row,.dashboard-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.app-shell{padding:14px}.header-actions,.panel-header,.filter-bar,.matrix-row,.chart-row,.dashboard-grid{grid-template-columns:1fr;display:grid}.view-switch,.filter-group{gap:8px}.compass-board{min-height:460px}.artifact-node{min-width:96px;padding:10px}.artifact-node-thumb{height:42px}.chart-panel.full-width,.chart-panel.wide{grid-column:span 1}.matrix-swatches{grid-template-columns:1fr}}
