:root {
  --agri-green: #245b45;
  --agri-green-2: #3d765d;
  --rice-gold: #d69b35;
  --rice-soft: #fbf2d8;
  --study-blue: #2f7188;
  --study-soft: #e8f4f5;
  --warm-white: #fbfaf5;
  --ink: #163229;
  --muted: #5f726a;
  --line: rgba(36, 91, 69, .15);
  --control-h: 82px;
  --font-sans: "Arial Unicode MS", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-display: var(--font-sans);
}

html, body { background: var(--warm-white); }
body.persona-rehearsal { color: var(--ink); }
.persona-rehearsal .deck { background:
  radial-gradient(circle at 8% 8%, rgba(214,155,53,.12), transparent 27%),
  radial-gradient(circle at 90% 18%, rgba(61,118,93,.10), transparent 30%),
  linear-gradient(135deg, #fffdf8 0%, #f5f7ef 100%); }
.persona-rehearsal .slide { padding: 50px 82px 124px; justify-content: flex-start; }
.persona-rehearsal .slide::before { content:""; position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(36,91,69,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(36,91,69,.025) 1px,transparent 1px); background-size:48px 48px; mask-image:linear-gradient(to bottom,black,transparent 75%); }

.section-tag { margin:0 0 10px; font-size:16px; font-weight:800; letter-spacing:.12em; color:var(--agri-green-2); }
.slide h2 { margin:0; font-size:52px; line-height:1.08; letter-spacing:-.035em; color:var(--ink); }
.slide-heading > p:last-child { margin:14px 0 0; font-size:23px; color:var(--muted); }

.cover-slide { flex-direction:row!important; align-items:center; justify-content:space-between!important; padding-bottom:110px!important; }
.cover-copy { width:57%; position:relative; z-index:2; }
.cover-copy h1 { margin:0; font-size:76px; line-height:1.03; letter-spacing:-.05em; color:var(--ink); }
.cover-copy h1 span { color:var(--agri-green-2); }
.cover-lede { margin:24px 0 0; font-size:27px; line-height:1.55; color:var(--muted); }
.cover-chips { display:flex; gap:12px; margin-top:28px; flex-wrap:wrap; }
.cover-chips span { padding:9px 16px; border-radius:999px; background:#fff; border:1px solid var(--line); font-size:16px; font-weight:700; box-shadow:0 8px 26px rgba(36,91,69,.06); }
.cover-visual { position:relative; width:41%; height:76vh; max-height:700px; }
.cover-orbit { position:absolute; border:1px solid rgba(36,91,69,.18); border-radius:50%; }
.orbit-one { width:450px;height:450px;right:10px;top:80px; }
.orbit-two { width:330px;height:330px;right:70px;top:140px;border-style:dashed; }
.mini-character { position:absolute; width:190px; height:280px; background-repeat:no-repeat; background-position:center; background-size:contain; filter:drop-shadow(0 18px 18px rgba(22,50,41,.12)); }
.mini-naiwa { background-image:url("assets/characters/naiwa-front.png"); left:6%; top:4%; transform:rotate(-4deg); }
.mini-niulai { background-image:url("assets/characters/niulai-front.png"); right:1%; top:2%; transform:rotate(4deg); }
.mini-mama { background-image:url("assets/characters/niulai-mama-front.png"); left:4%; bottom:0; transform:rotate(3deg); }
.mini-gaoya { background-image:url("assets/characters/gaoya-renshi-front.png"); right:3%; bottom:1%; transform:rotate(-3deg); }

.choose-slide { justify-content:center!important; }
.choose-slide .slide-heading { text-align:center; margin-bottom:38px; }
.project-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; width:min(1220px,88vw); margin:0 auto; }
.project-card { position:relative; min-height:360px; padding:42px; text-align:left; border:1px solid var(--line); border-radius:28px; background:rgba(255,255,255,.88); color:var(--ink); box-shadow:0 26px 70px rgba(27,62,48,.10); cursor:pointer; overflow:hidden; transition:.25s ease; font-family:inherit; }
.project-card:hover { transform:translateY(-7px); box-shadow:0 32px 80px rgba(27,62,48,.16); }
.project-card::after { content:""; position:absolute; width:280px;height:280px;border-radius:50%;right:-90px;bottom:-120px;background:var(--card-wash); }
.rice-card { --card-wash:rgba(214,155,53,.22); }
.study-card { --card-wash:rgba(47,113,136,.18); }
.project-no { display:block; font-size:17px; font-weight:900; letter-spacing:.14em; color:var(--muted); }
.project-icon { position:absolute; right:34px; top:28px; width:72px;height:72px;border-radius:22px;display:grid;place-items:center;font-size:30px;font-weight:900;background:var(--card-wash); }
.project-card strong { display:block; margin-top:52px; font-size:42px; letter-spacing:-.03em; }
.project-card small { display:block; margin-top:12px; font-size:20px; color:var(--muted); }
.project-card b { display:block; margin-top:58px; font-size:20px; color:var(--agri-green); }

.persona-header { display:flex; align-items:flex-end; justify-content:space-between; position:relative; z-index:2; }
.project-promise { padding:10px 17px; border:1px solid var(--line); background:rgba(255,255,255,.78); border-radius:999px; font-size:17px; font-weight:800; color:var(--agri-green-2); }
.persona-stage { height:calc(100vh - 248px); min-height:560px; max-height:720px; display:grid; grid-template-columns:minmax(430px, .9fr) minmax(560px,1.1fr); gap:56px; align-items:center; position:relative; z-index:2; }
.portrait-column { display:flex; flex-direction:column; align-items:center; justify-content:center; height:100%; }
.portrait-frame { position:relative; width:min(34vw,490px); height:min(61vh,650px); max-height:650px; overflow:hidden; background:transparent; border:0; box-shadow:none; }
.portrait-sheet { display:none; }
.character-3d { position:absolute; inset:-6%; width:112%; height:112%; border:0; background:transparent; z-index:1; }
.portrait-frame[data-role="naiwa"] { --portrait:url("assets/characters/naiwa-front.png"); }
.portrait-frame[data-role="niulai"] { --portrait:url("assets/characters/niulai-front.png"); }
.portrait-frame[data-role="mama"] { --portrait:url("assets/characters/niulai-mama-front.png"); }
.portrait-frame[data-role="gaoya"] { --portrait:url("assets/characters/gaoya-renshi-front.png"); }
.portrait-frame.zoomed { cursor:zoom-out; }
.portrait-frame.zoomed .hotspot { opacity:0; pointer-events:none; }
.hotspot { position:absolute; width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.93);box-shadow:0 0 0 7px rgba(214,155,53,.18),0 8px 24px rgba(22,50,41,.22);cursor:pointer;transition:.22s ease;z-index:3;font-family:inherit; }
.hotspot span { font-size:17px;font-weight:900;color:var(--agri-green); }
.hotspot:hover { transform:scale(1.16); background:var(--agri-green); }
.hotspot:hover span { color:#fff; }
.hs-head { left:45%; top:10%; }
.hs-eyes { left:55%; top:18%; }
.hs-ears { left:30%; top:20%; }
.hs-heart { left:48%; top:41%; }
.hs-hands { left:19%; top:51%; }
.hs-feet { left:50%; top:69%; }
.character-caption { display:none; }
.character-caption strong { display:block; font-size:25px; line-height:1.1; }
.character-caption span { display:block; margin-top:5px; font-size:16px; color:var(--muted); }
.info-column { min-height:500px; display:flex; align-items:center; }
.info-placeholder { width:100%; padding:44px; border-left:6px solid rgba(214,155,53,.55); }
.info-placeholder span { font-size:18px; color:var(--muted); }
.info-placeholder strong { display:block; margin-top:12px; font-size:38px; line-height:1.25; }
.info-placeholder p { font-size:22px; color:var(--agri-green-2); letter-spacing:.18em; }
.insight-panel { width:100%; padding:44px 48px; background:rgba(255,255,255,.9); border:1px solid var(--line); border-radius:30px; box-shadow:0 26px 70px rgba(22,50,41,.11); animation:panel-in .38s ease both; }
.insight-kicker { font-size:19px; font-weight:900; color:var(--rice-gold); letter-spacing:.08em; }
.study-persona-slide .insight-kicker { color:var(--study-blue); }
.insight-panel h3 { margin:18px 0 16px; font-size:39px; line-height:1.18; color:var(--ink); }
.insight-panel > p { margin:0; font-size:24px; line-height:1.65; color:var(--muted); }
.insight-proof { margin-top:30px; padding-top:22px; border-top:1px solid var(--line); }
.insight-proof span { display:block; font-size:16px; color:var(--muted); }
.insight-proof strong { display:block; margin-top:8px; font-size:23px; line-height:1.45; color:var(--agri-green); }
.role-dock { position:absolute; z-index:8; left:50%; bottom:92px; transform:translateX(-50%); width:min(1180px,88vw); min-height:78px; padding:10px 12px; display:flex; align-items:center; gap:10px; border-radius:24px; background:rgba(255,255,255,.94); border:1px solid var(--line); box-shadow:0 20px 45px rgba(22,50,41,.14); backdrop-filter:blur(16px); }
.dock-label { padding:0 14px; color:var(--muted); font-size:15px; font-weight:800; }
.role-button { flex:1; min-width:0; height:58px; border:1px solid transparent; border-radius:17px; background:transparent; display:grid; grid-template-columns:45px 1fr; grid-template-rows:1fr 1fr; column-gap:10px; align-items:center; text-align:left; font-family:inherit; color:var(--ink); cursor:pointer; padding:6px 12px; font-size:17px; font-weight:900; }
.role-button small { grid-column:2; font-size:13px; font-weight:600; color:var(--muted); }
.role-button.active { background:var(--rice-soft); border-color:rgba(214,155,53,.32); }
.study-persona-slide .role-button.active { background:var(--study-soft); border-color:rgba(47,113,136,.28); }
.role-thumb { grid-row:1/3; width:42px;height:42px;border-radius:50%;display:block;background-repeat:no-repeat;background-size:contain;background-position:center;background-color:#fff; }
.thumb-naiwa { background-image:url("assets/characters/naiwa-front.png"); }
.thumb-niulai { background-image:url("assets/characters/niulai-front.png"); }
.thumb-mama { background-image:url("assets/characters/niulai-mama-front.png"); }
.thumb-gaoya { background-image:url("assets/characters/gaoya-renshi-front.png"); }
.reset-view { height:52px;padding:0 20px;border:0;border-radius:15px;background:var(--agri-green);color:#fff;font-size:15px;font-weight:800;font-family:inherit;cursor:pointer; }
.role-audio-button { position:absolute; z-index:9; left:20px; top:52%; transform:translateY(-50%); min-width:104px; height:46px; padding:0 12px 0 9px; border:1px solid rgba(36,91,69,.14); border-radius:999px; background:rgba(255,255,255,.82); box-shadow:0 7px 20px rgba(22,50,41,.07); color:var(--agri-green); font-family:inherit; font-size:11px; font-weight:800; line-height:1.15; cursor:pointer; display:flex; flex-direction:row; align-items:center; justify-content:center; gap:7px; transition:background .2s ease,border-color .2s ease; }
.role-audio-button:hover { background:rgba(255,255,255,.98); border-color:rgba(36,91,69,.30); }
.role-audio-button.is-playing { background:rgba(223,236,226,.92); border-color:rgba(36,91,69,.23); }
.role-audio-button.needs-play { border-color:rgba(214,155,53,.28); }
.audio-icon { flex:0 0 auto; width:23px; height:23px; border-radius:50%; display:grid; place-items:center; background:rgba(36,91,69,.08); font-size:10px; padding-left:1px; }
.role-audio-button.is-playing .audio-icon { background:rgba(36,91,69,.12); }

.position-slide { justify-content:center!important; }
.position-heading { text-align:center; margin-bottom:34px; }
.position-flow { display:grid; grid-template-columns:repeat(3,1fr) 86px 1.55fr; gap:16px; align-items:stretch; width:min(1420px,92vw); margin:0 auto; }
.need-card { min-height:230px; padding:28px 24px; border-radius:24px; border:1px solid var(--line); background:rgba(255,255,255,.9); box-shadow:0 18px 45px rgba(22,50,41,.08); display:flex; flex-direction:column; justify-content:center; text-align:center; }
.need-card span { font-size:17px; font-weight:800; color:var(--rice-gold); }
.study-position .need-card span { color:var(--study-blue); }
.need-card strong { margin-top:14px; font-size:25px; line-height:1.4; }
.flow-arrow { display:grid;place-items:center;font-size:16px;font-weight:900;color:var(--muted);position:relative; }
.flow-arrow::after { content:"→"; position:absolute; font-size:38px; color:var(--agri-green-2); }
.enterprise-core { min-height:230px;padding:32px;border-radius:26px;background:var(--agri-green);color:#fff;box-shadow:0 28px 70px rgba(36,91,69,.26);display:flex;flex-direction:column;justify-content:center; }
.study-position .enterprise-core { background:var(--study-blue); }
.enterprise-core > span { font-size:15px;font-weight:900;letter-spacing:.12em;opacity:.78; }
.enterprise-core h3 { margin:12px 0; font-size:31px; color:#fff; }
.enterprise-core p { margin:0;font-size:19px;line-height:1.6;opacity:.9; }
.position-tags { display:flex;justify-content:center;gap:12px;margin-top:32px; }
.position-tags span { padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:16px;font-weight:800; }

.operation-slide { justify-content:center!important; }
.operation-heading { text-align:center; margin-bottom:34px; }
.operation-heading > p:last-child { margin:14px 0 0; font-size:21px; color:var(--muted); }
.operation-grid { width:min(1320px,90vw); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.operation-grid article { min-height:270px; padding:34px 32px; border:1px solid var(--line); border-radius:26px; background:rgba(255,255,255,.92); box-shadow:0 22px 54px rgba(22,50,41,.09); }
.operation-grid article > span { font-size:15px; font-weight:900; letter-spacing:.1em; color:var(--rice-gold); }
.study-operation .operation-grid article > span { color:var(--study-blue); }
.operation-grid h3 { margin:22px 0 14px; font-size:28px; line-height:1.2; color:var(--ink); }
.operation-grid p { margin:0; font-size:19px; line-height:1.65; color:var(--muted); }
.live-strategy { width:min(1320px,90vw); min-height:82px; margin:24px auto 0; padding:16px 22px; display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap; border-radius:24px; background:var(--agri-green); color:#fff; box-shadow:0 20px 48px rgba(36,91,69,.22); }
.live-strategy strong { margin-right:8px; font-size:19px; }
.live-strategy span { padding:8px 13px; border:1px solid rgba(255,255,255,.22); border-radius:999px; background:rgba(255,255,255,.11); font-size:15px; font-weight:800; }
.study-live { background:var(--study-blue); }

.closing-slide { justify-content:center!important; text-align:center; }
.closing-heading h2 { font-size:64px; line-height:1.08; }
.compare-band { margin:44px auto 0; width:min(1200px,88vw); display:grid; grid-template-columns:1fr 90px 1fr; align-items:center; }
.compare-band > div:not(.plus) { padding:30px;border-radius:26px;background:#fff;border:1px solid var(--line);box-shadow:0 20px 52px rgba(22,50,41,.09); }
.compare-band span { font-size:17px;font-weight:900;color:var(--muted); }
.compare-band strong { display:block;margin-top:8px;font-size:31px;color:var(--agri-green); }
.compare-band p { margin:7px 0 0;font-size:18px;color:var(--muted); }
.compare-band .plus { font-size:44px;color:var(--rice-gold); }
.closing-line { margin:34px 0 0;font-size:25px;font-weight:900;color:var(--ink); }

.bottom-controls { position:fixed; z-index:50; left:50%; bottom:12px; transform:translateX(-50%); width:min(1190px,94vw); height:66px; padding:8px 10px; display:flex; align-items:center; gap:7px; border-radius:22px; background:rgba(17,46,36,.94); box-shadow:0 18px 55px rgba(16,43,34,.30); backdrop-filter:blur(18px); }
.bottom-controls button { height:50px; padding:0 14px; display:flex;align-items:center;gap:8px;border:0;border-radius:14px;background:transparent;color:#f6fbf7;font-family:inherit;font-size:14px;font-weight:800;cursor:pointer;white-space:nowrap; }
.bottom-controls button:hover { background:rgba(255,255,255,.13); }
.bottom-controls button span { min-width:25px;height:25px;padding:0 4px;border-radius:7px;display:grid;place-items:center;background:rgba(255,255,255,.14);font-size:12px; }
.bottom-controls i { width:1px;height:28px;background:rgba(255,255,255,.18);margin:0 4px; }

body[data-preview="1"] .bottom-controls { display:none; }
@keyframes panel-in { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }

@media (max-width: 1100px) {
  .persona-rehearsal .slide { padding:40px 46px 120px; }
  .persona-stage { grid-template-columns:42% 58%;gap:28px; }
  .portrait-frame { width:38vw;height:58vh; }
  .info-placeholder,.insight-panel { padding:30px; }
  .insight-panel h3 { font-size:32px; }
  .insight-panel > p { font-size:20px; }
  .position-flow { grid-template-columns:repeat(3,1fr); }
  .flow-arrow { display:none; }
  .enterprise-core { grid-column:1/4; min-height:170px; }
  .operation-grid { gap:14px; }
  .operation-grid article { padding:26px 22px; }
  .bottom-controls button { padding:0 10px; }
  .role-audio-button { left:7px; min-width:92px; height:42px; padding:0 9px 0 7px; font-size:10px; }
  .audio-icon { width:21px; height:21px; font-size:9px; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
