/* Shared campus palette, materials, typography and controls. */
body.teping-page{--red:var(--ios-action,#b85845);--red-dark:var(--ios-action-hover,#a34d3c);--red-soft:#fae9e0;--ink:#28443f;--muted:#7e8b83;--line:rgba(62,86,87,.1);--paper:#fffdfa;--radius:22px;--bg:#fff8ee;isolation:isolate;color:var(--ink);background:#fff8ee;font-size:14px}
.teping-page .site-header{height:76px;position:sticky;top:0;z-index:20;background:rgba(255,250,243,.86);border-color:var(--line);backdrop-filter:blur(22px) saturate(135%)}
.teping-page .brand{color:var(--ink);font-size:19px;font-weight:750;letter-spacing:-.4px}.teping-page .brand small{display:inline;margin-left:12px;padding-left:12px;border-left:1px solid var(--line);font-size:11px;font-weight:400;letter-spacing:0;color:#71837a}.teping-page .nav-shell{gap:40px}.teping-page .nav-pages{gap:25px;font-weight:500}.teping-page .auth-nav{gap:10px}.teping-page .auth-avatar{background:#e9efe7;color:#526c60}.teping-page .auth-name{color:#50675c}.teping-page .hero{padding:39px 0 29px}.teping-page .hero h1{font-size:37px;letter-spacing:-1.5px;line-height:1.5;font-weight:750}.teping-page .hero .eyebrow{font-size:10px;letter-spacing:1.7px;color:#718077}.teping-page .hero h1 em{color:var(--red)}.teping-page .hero p{color:#718278;font-size:13px}.teping-page .hero-stat{border-color:var(--line);padding:0 23px}.teping-page .hero-stat b{font-size:27px;font-weight:700;color:var(--ink)}.teping-page .hero-stat span{color:#86928a}.community-strip{display:flex;gap:9px;align-items:center;margin-bottom:23px;font-size:12px;color:#819083}.community-strip>span:first-child{color:#c3906d}.community-strip-end{margin-left:auto;font-size:11px;color:#9ca59c}.teping-page .toolbar{gap:18px}.teping-page .category-tab{border-radius:12px;color:#6e8278;font-weight:500;padding:10px 15px}.teping-page .category-tab.active{background:#416d78;color:#fff;box-shadow:0 4px 12px #416d7812}.teping-page .category-tab:not(.active):hover{background:#e8efeb;color:#37594b}.teping-page .search-box{height:42px;background:#fffdfa;border-color:var(--line);border-radius:13px}.teping-page .search-box input{background:none;border:0;box-shadow:none;color:var(--ink)}.teping-page .panel{background:rgba(255,253,249,.96);border:1px solid #fff;box-shadow:0 6px 24px #2b3e410b,0 1px 3px #2b3e4105}.teping-page .panel-heading{border-color:var(--line);padding:22px 24px}.teping-page .panel-heading h2{font-weight:650;color:var(--ink)}.teping-page .panel-heading h2:before{background:#bc795e;border-radius:3px;height:14px}.teping-page .sort-tabs{background:#f1f1eb;border-radius:10px;padding:4px}.teping-page .sort-tabs button{border-radius:7px;padding:5px 10px;font-size:11px;color:#879188}.teping-page .sort-tabs button.active{color:#49685a;background:#fffdfa}.teping-page .rank-row{border-color:#edf0e9;padding-top:23px;padding-bottom:23px}.teping-page .rank-row:hover{background:#fbf5eb}.teping-page .rank-index{color:#bdc6bb;font-size:21px}.teping-page .rank-index.top{color:#b58169}.teping-page .rank-copy h3{font-size:17px;font-weight:650;color:var(--ink)}.teping-page .category-label{color:#8b988e}.teping-page .rank-subtitle{font-size:12px;color:#89968e}.teping-page .mini-tags span{font-size:10px;border-radius:6px;color:#778b7b;background:#edf1e8;padding:3px 8px}.teping-page .rank-score strong{font-weight:750;color:var(--red)}.teping-page .rank-score .unrated{font-weight:550;color:#8e9b8f;font-size:15px}.teping-page .rank-score p{font-size:11px;color:#97a197}.teping-page .cover{border-radius:11px}.teping-page .cover img{width:100%;height:100%;object-fit:cover;display:block}.teping-page .featured-card{background:linear-gradient(135deg,#e3ece0,#f4eddb);border:1px solid #fdf9f0;color:var(--ink)}.teping-page .featured-card h2{font-size:24px;font-weight:600;line-height:1.7;letter-spacing:1px}.teping-page .featured-card .eyebrow{color:#7f9180;font-size:9px}.teping-page .featured-card p{color:#8b9887;font-size:11px}.teping-page .featured-card .red-line{background:#c7967c}.teping-page .featured-card:after{color:#406c4220;opacity:.35}.teping-page .side-card h2{font-weight:650}.teping-page .trending-row h3{font-size:12px;font-weight:550}.teping-page .trending-row b{font-size:17px}.teping-page .detail-hero{background:linear-gradient(115deg,#fffdfa 45%,#f4efe2);border-color:#fff}.teping-page .detail-hero h1{color:var(--ink);font-weight:700}.teping-page .detail-description{color:#7c8d80}.teping-page .summary-heading h2,.teping-page .my-rating h2{font-weight:650}.teping-page .big-score{font-weight:750}.teping-page .distribution-fill{background:#e0c4b5}.teping-page .distribution-track{background:#f0f1ea}.teping-page .distribution-tooltip{background:#3d5c50}.teping-page .opinion-tag{border-radius:9px;background:#f1f3ec;border-color:#e8ece1;color:#718473}.teping-page .opinion-tag b{color:#9aa596}.teping-page .opinion-tag.chosen{background:#fae9e0;border-color:#e8cabb;color:#aa664e}.teping-page .button{border-radius:12px;min-height:40px;font-weight:550}.teping-page .primary{background:var(--red);color:#fff}.teping-page .secondary{background:#e8f0f2;color:#416d78}.teping-page .secondary:hover{background:#dce8ed}.teping-page .composer{border-color:#e7ebe1;border-radius:16px;background:#f4f4ef}.teping-page .composer textarea{background:none;border:0;box-shadow:none;color:var(--ink)}.teping-page textarea{border-radius:12px;background:#f6f6f0;border-color:var(--line)}.teping-page .comment.brightest{background:linear-gradient(180deg,#fbf2e4,#fffdfa)}.teping-page .comment-body{color:#607165;font-size:13px}.teping-page .comment-author{color:#45614f}.teping-page .comment-avatar{background:#e5ece1;color:#7b9277}.teping-page .comment-score{border-radius:7px}.teping-page .like-button{border-radius:9px;border-color:#e6eae1;background:#fafbf5;color:#8a9b89;min-height:32px}.teping-page .like-button.liked{background:#fae9e0;color:#ae664b;border-color:#ecd3c5}.teping-page .comment-date,.teping-page .comment-footer>span{color:#9ba899}.comments-more{display:flex;justify-content:center;padding:0 18px 20px}.comments-more:has(button[hidden]){display:none}.teping-page .modal{background:#fffdfa;border-radius:25px;box-shadow:0 24px 100px #263f3433}.teping-page .modal::backdrop{background:#2b45384d;backdrop-filter:blur(5px)}.teping-page .modal h2{color:var(--ink);font-weight:650}.teping-page .modal-symbol{border-radius:16px;background:#fae3d9;color:#b85845;font-style:normal;font-size:23px}.teping-page .toast{background:#375649ef;border-radius:14px}.teping-page .site-footer{color:#9ba696;border-color:var(--line)}.teping-page .site-footer b{color:#768875}.teping-page .breadcrumb a{color:#6d8272}.teping-page .form-error{color:#b55340}
@media(max-width:1080px){.teping-page .brand small{display:none}.teping-page .hero h1{font-size:33px}.teping-page .hero-stat{padding:0 16px}}
@media(max-width:800px){.teping-page .hero{padding:28px 0 24px}.teping-page .brand{font-size:18px}.teping-page .panel-heading{padding:20px}.teping-page .hero h1{font-size:33px}.teping-page .community-strip-end{display:none}}
@media(max-width:520px){.teping-page .site-header{height:66px}.teping-page .nav-shell{gap:24px}.teping-page .brand{font-size:17px}.teping-page .hero{padding:27px 3px 20px}.teping-page .hero h1{font-size:28px;letter-spacing:-1.2px}.teping-page .hero p{font-size:11px;line-height:1.8}.teping-page .hero .eyebrow{font-size:8px;letter-spacing:1px}.community-strip{font-size:10px;margin-bottom:18px}.teping-page .category-tab{padding:9px 10px;font-size:11px;border-radius:10px}.teping-page .panel{border-radius:18px}.teping-page .panel-heading{padding:18px 14px}.teping-page .rank-row{padding:18px 13px;gap:10px}.teping-page .rank-index{font-size:17px}.teping-page .rank-copy h3{font-size:13px}.teping-page .rank-subtitle{font-size:10px}.teping-page .mini-tags span{font-size:8px;padding:2px 5px}.teping-page .rank-score p{font-size:9px}.teping-page .rank-score .unrated{font-size:12px}.teping-page .cover{border-radius:9px}.teping-page .comment-body{font-size:12px}.teping-page .comment-date{font-size:9px}.teping-page .sort-tabs button{font-size:9px;padding:5px 7px}.teping-page .button{min-height:39px}.teping-page .detail-hero{padding:19px 15px}.teping-page .my-rating>p{font-size:11px}.teping-page .detail-description{font-size:11px}.teping-page .opinion-tag{font-size:10px}.teping-page .modal{padding:27px 22px;border-radius:22px}}
