/* Independent Graph Cube case study; shared site tokens remain in portfolio.css. */
.tulifang-page{background:#f7f5ef;color:#203f35;font-family:var(--sans)}
.tulifang-page h1,.tulifang-page h2,.tulifang-page h3{font-family:var(--sans);letter-spacing:-.035em}
.tulifang-page h2{font-size:clamp(26px,2.5vw,36px);font-weight:600;line-height:1.5}
.tulifang-page h3{font-weight:600}
.tulifang-page p{overflow-wrap:break-word}
.tulifang-page .case-wrap{width:min(100%,1240px);margin-inline:auto;padding-inline:48px}
.tulifang-page section{padding-block:88px;border-top:1px solid #dcded4;scroll-margin-top:0}
.tulifang-page .case-nav{background:rgba(247,245,239,.96);border-bottom:1px solid #dcded4;backdrop-filter:blur(16px)}
.tulifang-page .case-nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.tulifang-page .case-back{display:inline-flex;align-items:center;gap:12px;min-height:70px;font-size:13px;font-weight:500;color:#203f35;white-space:nowrap}
.tulifang-page .case-back>span{font-size:20px}
.tulifang-page .case-nav-links{display:flex;align-items:center;gap:30px}
.tulifang-page .case-nav-links a{display:flex;align-items:center;min-height:70px;font-size:12px;color:#536159;white-space:nowrap}
.tulifang-page .case-nav-links a:hover{color:#203f35}
.tulifang-page .case-kicker{font-size:12px;line-height:1.8;font-weight:500;letter-spacing:.08em;color:#627463}
.tulifang-page .case-hero{padding:65px 0 0}
.tulifang-page .case-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:48px}
.tulifang-page .case-hero-copy{padding-block:10px}
.tulifang-page h1{margin-top:19px;font-size:clamp(48px,4.7vw,66px);font-weight:600;line-height:1.12}
.tulifang-page h1>span{display:block;margin-top:12px;font-size:.53em;line-height:1.2;letter-spacing:-.04em;font-weight:500}
.tulifang-page .case-subtitle{margin-top:23px;font-size:20px;line-height:1.6;font-weight:500;letter-spacing:-.035em}
.tulifang-page .case-intro{max-width:470px;margin-top:21px;font-size:14px;line-height:2.05;color:#536159}
.tulifang-page .case-awards{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.tulifang-page .case-award{display:inline-flex;align-items:center;gap:10px;min-height:43px;padding:8px 13px;border:1px solid #d7c7a9;border-radius:4px;color:#695330;font-size:12px;background:#f2ebdb}
.tulifang-page .case-award:hover{background:#ebe1cc;text-decoration:none}
.tulifang-page .award-mark{font-size:17px;color:#977345}
.tulifang-page .case-award>span:last-child{margin-left:7px}
.tulifang-page .case-hero-figure{min-width:0;align-self:center}
.tulifang-page .case-hero-figure img{width:100%;height:auto}
.tulifang-page .case-hero-figure figcaption{margin-top:13px;padding-inline:2px;text-align:right;font-size:10px;line-height:1.8;color:#68726a}
.tulifang-page .case-facts{display:grid;grid-template-columns:.8fr 1fr 1fr;gap:30px;margin-top:48px;padding:26px 0 30px;border-top:1px solid #dcded4}
.tulifang-page .case-facts>div{display:flex;gap:17px;align-items:baseline}
.tulifang-page .case-facts dt{flex:none;font-size:11px;color:#68726a}
.tulifang-page .case-facts dd{font-size:13px;font-weight:500}
.tulifang-page .case-section-heading{display:grid;grid-template-columns:180px minmax(0,1fr);gap:40px;align-items:start;margin-bottom:42px}
.tulifang-page .case-section-heading>.case-kicker{padding-top:10px}
.tulifang-page .case-lead{max-width:800px;margin-top:18px;font-size:14px;line-height:2.05;color:#536159}
.tulifang-page .relation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:49px}
.tulifang-page .relation-grid article{padding-top:22px;border-top:1px solid #b8c5b5}
.tulifang-page .relation-term{margin-bottom:12px;color:#8a6a3f;font-size:12px}
.tulifang-page .relation-grid h3{font-size:18px;line-height:1.6}
.tulifang-page .relation-grid article>p:last-child{margin-top:12px;font-size:13px;line-height:1.95;color:#536159}
.tulifang-page .case-capabilities{background:#203f35;color:#f7f5ef;border-top:0}
.tulifang-page .case-capabilities .case-kicker{color:#c5d2bf}
.tulifang-page .case-capabilities .case-lead{color:#ced8cd}
.tulifang-page .workflow{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:47px;border-top:1px solid #657c67;border-bottom:1px solid #657c67}
.tulifang-page .workflow li{position:relative;padding:28px 27px 26px 0}
.tulifang-page .workflow li+li{padding-left:27px;border-left:1px solid #526e59}
.tulifang-page .workflow h3{font-size:23px;line-height:1.5;color:#f7f5ef}
.tulifang-page .workflow li:not(:last-child)::after{content:"→";position:absolute;top:30px;right:23px;color:#b4c8ad;font-size:19px}
.tulifang-page .workflow p{margin-top:13px;min-height:78px;font-size:13px;line-height:1.95;color:#d3dbcf}
.tulifang-page .workflow li>span{display:block;margin-top:18px;font-size:10px;line-height:1.8;letter-spacing:.05em;color:#c9b88e}
.tulifang-page .scenario-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:46px}
.tulifang-page .scenario{padding:29px 30px 25px;background:#29493d;border:1px solid #4c6755}
.tulifang-page .scenario-label{color:#d8c79e;font-size:11px;margin-bottom:9px}
.tulifang-page .scenario h3{font-size:21px;line-height:1.65}
.tulifang-page .scenario>p:not(.scenario-label){margin-top:15px;font-size:13px;line-height:2;color:#d6ddd2}
.tulifang-page .scenario-output{display:flex;align-items:baseline;gap:18px;margin-top:24px;padding-top:16px;border-top:1px solid #526d58}
.tulifang-page .scenario-output>span{flex:none;color:#b9cbb4;font-size:10px}
.tulifang-page .scenario-output>p{font-size:11px;line-height:1.8;color:#e4e8db}
.tulifang-page .case-review-note{margin-top:22px;font-size:11px;line-height:1.9;color:#c5d3bd}
.tulifang-page .case-technology{background:#fffefa}
.tulifang-page .technology-list{margin-top:46px}
.tulifang-page .technology-layer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:70px;padding:31px 0;border-top:1px solid #dcded4}
.tulifang-page .technology-layer:last-child{padding-bottom:0}
.tulifang-page .technology-name>span{display:block;margin-bottom:10px;font-size:11px;color:#8a6a3f}
.tulifang-page .technology-name h3{font-size:23px;line-height:1.6}
.tulifang-page .technology-description>p:first-child{font-size:13px;line-height:2;color:#536159}
.tulifang-page .technology-terms{margin-top:15px;font-size:11px;line-height:1.9;color:#7c6d55}
.tulifang-page .case-sources{background:#eeece4}
.tulifang-page .source-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;margin-top:47px;align-items:start}
.tulifang-page .award-panel{min-height:317px;border-left:3px solid #b49162;padding:7px 0 8px 32px}
.tulifang-page .award-symbol{display:block;color:#a7834e;font-size:30px;line-height:1;margin-bottom:22px}
.tulifang-page .award-panel>p{color:#68726a;font-size:12px;margin-bottom:13px}
.tulifang-page .award-panel h3{font-size:24px;line-height:1.5;color:#203f35;font-weight:500}
.tulifang-page .award-panel h3+h3{margin-top:20px}
.tulifang-page .award-caption{display:block;margin-top:25px;font-size:11px;color:#68726a}
.tulifang-page .source-list{list-style:none;border-top:1px solid #c9cdbf}
.tulifang-page .source-list li{border-bottom:1px solid #c9cdbf}
.tulifang-page .source-list a{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:19px 0;color:#203f35}
.tulifang-page .source-list a:hover{text-decoration:none}
.tulifang-page .source-list a:hover h3{text-decoration:underline;text-underline-offset:5px}
.tulifang-page .source-org{font-size:10px;color:#68726a;line-height:1.8}
.tulifang-page .source-list h3{margin-top:5px;font-size:15px;line-height:1.8}
.tulifang-page .source-list p{margin-top:5px;font-size:11px;line-height:1.9;color:#536159}
.tulifang-page .source-arrow{flex:none;font-size:23px;font-weight:400;color:#7f926e}
.tulifang-page .case-materials{margin-top:38px;font-size:11px;line-height:1.9;color:#68726a}
.tulifang-page .case-footer{padding:36px 0;background:#203f35;color:#f7f5ef}
.tulifang-page .case-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.tulifang-page .case-footer p{font-size:17px;font-weight:500}
.tulifang-page .case-footer p>span{margin-left:9px;font-size:13px;font-weight:400;color:#cbd8c6}
.tulifang-page .case-footer small{display:block;margin-top:5px;font-size:10px;font-weight:400;color:#bfceb9}
.tulifang-page .case-footer a{display:inline-flex;align-items:center;gap:20px;min-height:44px;font-size:12px;color:#f7f5ef}

@media(max-width:1000px){
  .tulifang-page .case-wrap{padding-inline:32px}
  .tulifang-page .case-hero{padding-top:45px}
  .tulifang-page .case-hero-grid{gap:29px;grid-template-columns:1fr 1fr}
  .tulifang-page .case-subtitle{font-size:17px}
  .tulifang-page .case-intro{font-size:13px}
  .tulifang-page .case-facts{gap:18px}
  .tulifang-page .case-facts>div{display:block}
  .tulifang-page .case-facts dd{margin-top:6px;font-size:12px}
  .tulifang-page .case-section-heading{grid-template-columns:120px minmax(0,1fr);gap:30px}
  .tulifang-page .relation-grid{gap:22px}
  .tulifang-page .relation-grid h3{font-size:16px}
  .tulifang-page .workflow li{padding-right:20px}
  .tulifang-page .workflow li+li{padding-left:20px}
  .tulifang-page .workflow li:not(:last-child)::after{right:17px}
  .tulifang-page .workflow p{min-height:103px;font-size:12px}
  .tulifang-page .scenario{padding:24px}
  .tulifang-page .scenario h3{font-size:19px}
  .tulifang-page .scenario-output{display:block}
  .tulifang-page .scenario-output>p{margin-top:5px}
  .tulifang-page .technology-layer{gap:40px}
  .tulifang-page .technology-name h3{font-size:21px}
  .tulifang-page .source-layout{gap:40px}
}

@media(max-width:700px){
  .tulifang-page .case-wrap{padding-inline:24px}
  .tulifang-page section{padding-block:54px}
  .tulifang-page .case-nav-inner{display:block;padding-top:5px}
  .tulifang-page .case-back{min-height:37px;font-size:11px;gap:8px}
  .tulifang-page .case-back>span{font-size:18px}
  .tulifang-page .case-nav-links{justify-content:space-between;gap:16px}
  .tulifang-page .case-nav-links a{min-height:44px;font-size:11px}
  .tulifang-page .case-hero{padding-top:35px}
  .tulifang-page .case-hero-grid{grid-template-columns:1fr;gap:29px}
  .tulifang-page .case-hero-copy{padding:0}
  .tulifang-page .case-kicker{font-size:11px}
  .tulifang-page h1{font-size:52px;margin-top:16px}
  .tulifang-page h1>span{font-size:29px;margin-top:8px}
  .tulifang-page .case-subtitle{font-size:18px;margin-top:21px}
  .tulifang-page .case-intro{margin-top:17px;font-size:13px;line-height:2}
  .tulifang-page .case-awards{margin-top:21px;gap:8px}
  .tulifang-page .case-award{font-size:11px;min-height:44px}
  .tulifang-page .case-hero-figure{width:100%;max-width:520px;justify-self:center}
  .tulifang-page .case-hero-figure figcaption{font-size:9px;text-align:left;margin-top:10px}
  .tulifang-page .case-facts{grid-template-columns:1fr;gap:12px;margin-top:27px;padding-block:22px}
  .tulifang-page .case-facts>div{display:flex;gap:18px;align-items:baseline}
  .tulifang-page .case-facts dt{width:57px;font-size:10px}
  .tulifang-page .case-facts dd{margin-top:0;font-size:12px}
  .tulifang-page .case-section-heading{grid-template-columns:1fr;gap:13px;margin-bottom:28px}
  .tulifang-page .case-section-heading>.case-kicker{padding-top:0}
  .tulifang-page h2{font-size:26px;line-height:1.5}
  .tulifang-page .case-lead{font-size:13px;line-height:2;margin-top:15px}
  .tulifang-page .relation-grid{grid-template-columns:1fr;gap:25px;margin-top:30px}
  .tulifang-page .relation-grid article{padding-top:18px}
  .tulifang-page .relation-term{margin-bottom:7px;font-size:11px}
  .tulifang-page .relation-grid h3{font-size:18px}
  .tulifang-page .relation-grid article>p:last-child{margin-top:8px;font-size:12px}
  .tulifang-page .workflow{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:30px}
  .tulifang-page .workflow li{padding:21px 20px 21px 0}
  .tulifang-page .workflow li+li{padding-left:20px}
  .tulifang-page .workflow li:nth-child(3){padding-left:0;border-left:0}
  .tulifang-page .workflow li:nth-child(n+3){border-top:1px solid #526e59}
  .tulifang-page .workflow li:nth-child(2)::after{display:none}
  .tulifang-page .workflow li:not(:last-child)::after{top:23px;right:19px;font-size:17px}
  .tulifang-page .workflow h3{font-size:21px}
  .tulifang-page .workflow p{min-height:0;margin-top:10px;font-size:12px}
  .tulifang-page .workflow li>span{margin-top:13px;font-size:9px}
  .tulifang-page .scenario-grid{grid-template-columns:1fr;gap:19px;margin-top:30px}
  .tulifang-page .scenario{padding:23px 22px}
  .tulifang-page .scenario h3{font-size:20px}
  .tulifang-page .scenario>p:not(.scenario-label){font-size:12px;margin-top:12px}
  .tulifang-page .scenario-output{margin-top:20px}
  .tulifang-page .case-review-note{font-size:10px;margin-top:18px}
  .tulifang-page .technology-list{margin-top:30px}
  .tulifang-page .technology-layer{grid-template-columns:1fr;gap:15px;padding-block:24px}
  .tulifang-page .technology-name>span{margin-bottom:7px;font-size:10px}
  .tulifang-page .technology-name h3{font-size:21px}
  .tulifang-page .technology-description>p:first-child{font-size:12px}
  .tulifang-page .technology-terms{margin-top:12px;font-size:10px}
  .tulifang-page .source-layout{grid-template-columns:1fr;gap:32px;margin-top:31px}
  .tulifang-page .award-panel{min-height:0;padding-left:23px;position:relative}
  .tulifang-page .award-symbol{position:absolute;right:9px;top:12px;font-size:35px}
  .tulifang-page .award-panel>p{font-size:11px;margin-bottom:9px}
  .tulifang-page .award-panel h3{font-size:22px}
  .tulifang-page .award-caption{font-size:10px;margin-top:15px}
  .tulifang-page .source-list a{padding-block:17px;gap:18px}
  .tulifang-page .source-list h3{font-size:14px}
  .tulifang-page .source-list p{font-size:10px}
  .tulifang-page .case-materials{font-size:10px;margin-top:27px}
  .tulifang-page .case-footer{padding-block:28px}
  .tulifang-page .case-footer-inner{align-items:flex-start;gap:17px}
  .tulifang-page .case-footer p{font-size:16px}
  .tulifang-page .case-footer p>span{display:block;margin:3px 0 0;font-size:11px}
  .tulifang-page .case-footer small{font-size:9px;margin-top:8px}
  .tulifang-page .case-footer a{font-size:11px;gap:9px;white-space:nowrap}
}

@media(max-width:370px){
  .tulifang-page .case-wrap{padding-inline:19px}
  .tulifang-page .case-nav-links{gap:12px}
  .tulifang-page h1{font-size:47px}
  .tulifang-page .case-subtitle{font-size:16px}
  .tulifang-page h2{font-size:24px}
  .tulifang-page .workflow li{padding-right:15px}
  .tulifang-page .workflow li+li{padding-left:15px}
  .tulifang-page .workflow li:nth-child(3){padding-left:0}
  .tulifang-page .workflow p{font-size:11px}
  .tulifang-page .scenario{padding:22px 19px}
  .tulifang-page .scenario h3{font-size:18px}
}

@media print{
  .tulifang-page{background:#fff;color:#203f35}
  .tulifang-page .case-nav{display:none}
  .tulifang-page .case-wrap{width:100%;padding-inline:0}
  .tulifang-page .case-hero{padding-top:0}
  .tulifang-page section{padding-block:30px}
  .tulifang-page .case-capabilities,.tulifang-page .case-footer{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .tulifang-page .relation-grid article,.tulifang-page .scenario,.tulifang-page .technology-layer,.tulifang-page .source-list li{break-inside:avoid}
}
