:root {
    --brand: #4f46e5;
    --brand-dark: #3730a3;
    --ink: #111827;
    --muted: #64748b;
    --line: #e2e8f0;
    --surface: #ffffff;
    --soft: #f8fafc;
    --danger: #dc2626;
    --radius: 16px;
    --shadow: 0 18px 45px rgba(15, 23, 42, .08);
    --ease-out: cubic-bezier(.2,.8,.2,1);
    --duration-fast: 150ms;
    --duration-normal: 240ms;
}

html { scroll-behavior: smooth; }
body {
    color: var(--ink);
    background:
        radial-gradient(circle at 10% -10%, rgba(79, 70, 229, .15), transparent 32rem),
        linear-gradient(180deg, #f8faff 0, #f1f5f9 100%);
}
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid rgba(79, 70, 229, .42) !important; outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-hero {
    --spot-x: 70%;
    --spot-y: 10%;
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(240px, .55fr);
    gap: 2rem;
    align-items: center;
    margin-bottom: 1.25rem;
    padding: clamp(1.6rem, 4vw, 3.5rem);
    border: 1px solid rgba(255,255,255,.85);
    border-radius: 24px;
    background:
        radial-gradient(circle 240px at var(--spot-x) var(--spot-y), rgba(99,102,241,.16), transparent 70%),
        linear-gradient(135deg, rgba(255,255,255,.97), rgba(238,242,255,.92));
    box-shadow: var(--shadow);
}
.site-hero::after {
    content: "";
    position: absolute;
    width: 280px;
    height: 280px;
    right: -100px;
    top: -130px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(79,70,229,.3), rgba(45,212,191,.2));
    animation: heroOrb 10s ease-in-out infinite alternate;
}
.site-hero > div:first-child { position: relative; z-index: 2; }
.hero-kicker { display:flex; align-items:center; gap:.65rem; color: var(--brand); font-weight: 800; letter-spacing: .12em; font-size: .78rem; }
.hero-site-logo { display:block; width:40px; height:40px; padding:3px; border:1px solid rgba(199,210,254,.9); border-radius:12px; background:rgba(255,255,255,.75); object-fit:contain; box-shadow:0 7px 16px rgba(79,70,229,.12); }
.site-hero h1 { margin: .5rem 0 .8rem; font-size: clamp(2rem, 5vw, 3.7rem); line-height: 1.06; letter-spacing: -.045em; }
.hero-copy { max-width: 680px; color: #475569; line-height: 1.8; font-size: 1.02rem; }
.hero-trust { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.hero-trust span { display: inline-flex; align-items: center; gap: .45rem; padding: .38rem .65rem; border: 1px solid rgba(203,213,225,.8); border-radius: 999px; color: #475569; background: rgba(255,255,255,.68); font-size: .78rem; font-weight: 700; }
.hero-trust i { width: 7px; height: 7px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 4px rgba(34,197,94,.12); }
.hero-actions { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 1.35rem; }
.hero-action { position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: .72rem 1.15rem; border-radius: 12px; text-decoration: none; font-weight: 750; transition: transform var(--duration-fast) ease, box-shadow var(--duration-fast) ease, background-color var(--duration-fast) ease; }
.hero-action.primary { color: white; background: var(--brand); box-shadow: 0 10px 24px rgba(79,70,229,.25); }
.hero-action.secondary { color: var(--ink); border: 1px solid var(--line); background: white; }
.announcement-action { gap:.48rem; cursor:pointer; }
.announcement-action i { width:7px; height:7px; border-radius:50%; background:#f59e0b; box-shadow:0 0 0 4px rgba(245,158,11,.13); }
.hero-stats { position: relative; z-index: 1; display: grid; gap: .8rem; }
.hero-console { overflow: hidden; border: 1px solid rgba(15,23,42,.12); border-radius: 15px; color: #dbeafe; background: #111827; box-shadow: 0 18px 40px rgba(15,23,42,.2); transform: rotate(1deg); }
.console-bar { display: flex; align-items: center; gap: 6px; padding: .65rem .75rem; border-bottom: 1px solid rgba(255,255,255,.08); background: #0b1220; }
.console-bar span { width: 8px; height: 8px; border-radius: 50%; background: #fb7185; }
.console-bar span:nth-child(2) { background: #fbbf24; }
.console-bar span:nth-child(3) { background: #34d399; }
.console-bar em { margin-left: auto; color: #94a3b8; font-size: .68rem; font-style: normal; }
.console-body { padding: .9rem 1rem; font: 600 .72rem/1.8 ui-monospace, SFMono-Regular, Menlo, monospace; }
.console-body b { color: #818cf8; }
.console-success { color: #6ee7b7; }
.console-cursor { display: inline-block; width: 6px; height: 1em; margin-left: 4px; vertical-align: -.15em; background: #a5b4fc; animation: cursorBlink 1s steps(1) infinite; }
.hero-stat { padding: 1rem 1.1rem; border: 1px solid rgba(255,255,255,.9); border-radius: 14px; background: rgba(255,255,255,.72); }
.hero-stat strong { display: block; font-size: 1.45rem; }
.hero-stat span { color: var(--muted); font-size: .86rem; }

.panel, .list-panel { border-radius: var(--radius); border: 1px solid rgba(226,232,240,.9); box-shadow: var(--shadow); backdrop-filter: none; background: rgba(255,255,255,.94); }
.panel { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.5rem; }
.panel-header { margin: 0; }
.panel-header .section-title, .list-header .section-title { font-size: 1.45rem; }
.submit-area { display:flex; align-items:center; gap:.75rem; margin: 0; }
.daily-upload-quota { display:inline-flex; align-items:center; gap:.25rem; min-height:38px; padding:.45rem .7rem; border:1px solid #dbeafe; border-radius:10px; color:#475569; background:#f8fafc; font-size:.76rem; white-space:nowrap; }
.daily-upload-quota strong { color:#4f46e5; font-size:.94rem; }
.btn-submit { min-height: 46px; padding: .75rem 1.35rem; border-radius: 12px; background: var(--brand); box-shadow: none; font-size: .95rem; }
.btn-submit:hover { background: var(--brand-dark); box-shadow: 0 10px 22px rgba(79,70,229,.25); }
.rule-trigger-small, .type-btn, .btn-download, .btn-comment { min-height: 42px; border-radius: 10px; }
.rule-trigger-small { background: white; color: var(--danger); border-color: #fecaca; box-shadow: none; }
.search-input { min-height: 46px; border-radius: 12px; }
.type-btn { padding: .55rem 1.1rem; }
.type-btn.active { background: var(--brand); border-color: var(--brand); box-shadow: none; }
.script-table-scroll { overflow: visible; }
.script-item { padding: .75rem 0; }
.script-item:hover { background: #f8fafc; }
.modal-content { border-radius: 20px; box-shadow: 0 30px 70px rgba(15,23,42,.2); }
.close-btn { width: 44px; height: 44px; border-radius: 10px; }
.empty-state { border-radius: var(--radius); }
.filter-empty[hidden] { display: none; }
.filter-empty { display: grid; justify-items: center; gap: .45rem; margin-top: 1rem; padding: 2rem 1rem; }
.filter-empty > span:last-child { color: var(--muted); }
.empty-icon { font-size: 1.8rem; }

/* 网站公告 */
.announcement-modal { z-index:3200; padding:1rem; background:rgba(15,23,42,.58); backdrop-filter:blur(7px); }
.announcement-card { position:relative; overflow:hidden; width:min(520px,calc(100vw - 2rem)); padding:1.55rem; border:1px solid rgba(199,210,254,.9); border-radius:22px; background:linear-gradient(145deg,#fff,#f8faff); box-shadow:0 30px 80px rgba(15,23,42,.28); }
.announcement-card::before { content:""; position:absolute; right:-70px; top:-85px; width:190px; height:190px; border-radius:50%; background:radial-gradient(circle,rgba(99,102,241,.2),rgba(45,212,191,.06) 58%,transparent 60%); pointer-events:none; }
.announcement-card .modal-header { position:relative; align-items:flex-start; margin-left:3.45rem; }
.announcement-card .modal-header h3 { margin:.18rem 0 0; font-size:1.28rem; }
.announcement-kicker { color:#6366f1; font-size:.62rem; font-weight:850; letter-spacing:.12em; }
.announcement-mark { position:absolute; z-index:1; left:1.45rem; top:1.45rem; display:grid; place-items:center; width:44px; height:44px; border-radius:14px; background:#eef2ff; box-shadow:inset 0 0 0 1px #dbeafe; font-size:1.25rem; }
.announcement-copy { position:relative; margin:1.2rem 0; padding:1rem 1.05rem; border:1px solid #e8edf5; border-radius:14px; color:#475569; background:rgba(248,250,252,.82); font-size:.9rem; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; }
.announcement-confirm { width:100%; min-height:44px; border:0; border-radius:12px; color:white; background:linear-gradient(135deg,#6366f1,#4f46e5); box-shadow:0 10px 22px rgba(79,70,229,.22); font-weight:800; cursor:pointer; }

.reveal-item { opacity: 0; transform: translateY(14px); transition: opacity 480ms var(--ease-out) var(--reveal-delay,0ms), transform 480ms var(--ease-out) var(--reveal-delay,0ms); }
.reveal-item.is-visible { opacity: 1; transform: none; }
button, .hero-action { position: relative; overflow: hidden; }
.ui-ripple { position: absolute; width: 12px; height: 12px; margin: -6px; border-radius: 50%; pointer-events: none; background: rgba(255,255,255,.42); animation: ripple 520ms ease-out forwards; }
.scroll-progress { position: fixed; z-index: 2500; top: 0; left: 0; width: 100%; height: 3px; transform: scaleX(0); transform-origin: left; background: linear-gradient(90deg,#4f46e5,#22c55e); }
.to-top { position: fixed; z-index: 900; right: 1rem; bottom: 1rem; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.8); border-radius: 14px; color: white; background: rgba(79,70,229,.92); box-shadow: 0 12px 28px rgba(79,70,229,.28); opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity var(--duration-normal) ease, transform var(--duration-normal) ease; }
.to-top.show { opacity: 1; transform: none; pointer-events: auto; }

/* 底部信息区 */
.footer-disclaimer { position:relative; overflow:hidden; padding:clamp(1.35rem,3vw,2.2rem)!important; border:1px solid #334155!important; border-radius:20px!important; color:#cbd5e1; background:radial-gradient(circle at 90% 0,rgba(99,102,241,.22),transparent 25rem),linear-gradient(145deg,#172033,#0f172a)!important; box-shadow:0 24px 55px rgba(15,23,42,.18); }
.footer-disclaimer::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.18; background-image:linear-gradient(rgba(148,163,184,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.12) 1px,transparent 1px); background-size:32px 32px; mask-image:linear-gradient(to bottom,black,transparent 75%); }
.footer-top,.footer-cards,.footer-notice,.footer-bottom { position:relative; z-index:2; }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:1.2rem; border-bottom:1px solid rgba(148,163,184,.18); }
.footer-brand { display:flex; align-items:center; gap:.8rem; }.footer-logo{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(165,180,252,.35);border-radius:14px;color:#c7d2fe;background:rgba(99,102,241,.16);font:800 .9rem ui-monospace,monospace}.footer-brand strong{display:block;color:white;font-size:1.08rem}.footer-brand div span{display:block;margin-top:.22rem;color:#94a3b8;font-size:.78rem}
.footer-actions { display:flex; flex-wrap:wrap; gap:.5rem; }.footer-actions a{display:inline-flex;align-items:center;min-height:38px;padding:.45rem .75rem;border:1px solid rgba(148,163,184,.25);border-radius:10px;color:#cbd5e1!important;background:rgba(255,255,255,.035);font-size:.78rem;font-weight:700;transition:background 160ms ease,border-color 160ms ease,transform 160ms ease}.footer-actions a:hover{transform:translateY(-1px);border-color:#818cf8;background:rgba(99,102,241,.14)}
.footer-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; margin:1.15rem 0; }.footer-cards>div{display:grid;grid-template-columns:auto 1fr;column-gap:.65rem;align-items:center;padding:.85rem;border:1px solid rgba(148,163,184,.15);border-radius:13px;background:rgba(255,255,255,.035)}.footer-cards>div>span{grid-row:1/3;font-size:1.3rem}.footer-cards strong{color:#f8fafc;font-size:.84rem}.footer-cards small{margin-top:.18rem;color:#94a3b8;font-size:.7rem;line-height:1.45}
.footer-notice { display:grid; grid-template-columns:1.45fr 1fr; gap:1rem; padding:1rem; border:1px solid rgba(148,163,184,.15); border-radius:14px; background:rgba(2,6,23,.24); }.footer-notice p{margin:0!important;color:#b8c5d6;font-size:.78rem;line-height:1.75}.footer-notice strong{color:#f8fafc}.footer-notice a{color:#93c5fd!important}
.footer-bottom { display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;color:#64748b;font-size:.72rem}.footer-status{display:inline-flex;align-items:center;gap:.4rem}.footer-status i{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 0 4px rgba(52,211,153,.12)}
.footer-orbit { position:absolute; right:-42px; top:-48px; width:160px; height:160px; border:1px solid rgba(129,140,248,.18); border-radius:50%; animation:footerOrbit 18s linear infinite; }.footer-orbit::before{content:"";position:absolute;inset:28px;border:1px dashed rgba(45,212,191,.18);border-radius:50%}.footer-orbit i{position:absolute;width:7px;height:7px;border-radius:50%;background:#818cf8;box-shadow:0 0 14px #818cf8}.footer-orbit i:nth-child(1){left:18px;top:32px}.footer-orbit i:nth-child(2){right:9px;top:75px;background:#2dd4bf}.footer-orbit i:nth-child(3){left:72px;bottom:-3px;background:#f472b6}

/* 纯 CSS 电子宠物 */
.cyber-pet { --pet-shift-x:0px; --pet-shift-y:0px; --pet-eye-x:0px; --pet-eye-y:0px; --pet-user-x:0px; --pet-user-y:0px; --pet-roam-x:0px; --pet-roam-y:0px; position: fixed; z-index: 780; left: max(14px, env(safe-area-inset-left)); bottom: max(18px, calc(env(safe-area-inset-bottom) + 12px)); width: 92px; height: 108px; pointer-events: none; transform:translate3d(calc(var(--pet-shift-x) + var(--pet-user-x) + var(--pet-roam-x)),calc(var(--pet-shift-y) + var(--pet-user-y) + var(--pet-roam-y)),0); transition:transform 180ms ease-out,opacity 180ms ease; }
.cyber-pet.is-roaming { transition:transform 740ms cubic-bezier(.22,.68,.28,1),opacity 180ms ease; }
.cyber-pet.is-dragging { transition:none; }
.pet-character { position: absolute; left: 7px; bottom: 0; width: 76px; height: 78px; border: 0; border-radius: 42% 42% 38% 38%; color: white; background: linear-gradient(145deg,#6366f1,#4338ca 62%,#312e81); box-shadow: 0 15px 28px rgba(67,56,202,.28), inset 0 1px rgba(255,255,255,.35); pointer-events: auto; cursor: grab; touch-action:none; user-select:none; -webkit-user-select:none; overflow: visible; }
.cyber-pet.is-dragging .pet-character { cursor:grabbing; }
.pet-character::after { content:""; position:absolute; inset:5px; border:1px solid rgba(255,255,255,.2); border-radius:inherit; pointer-events:none; }
.pet-ear { position:absolute; z-index:-1; top:-14px; width:29px; height:34px; background:#5145cd; transform:rotate(45deg); border-radius:7px 15px 5px 15px; }
.pet-ear::after { content:""; position:absolute; inset:7px; border-radius:4px 10px 3px 10px; background:#c4b5fd; }
.pet-ear-left { left:7px; }
.pet-ear-right { right:7px; transform:rotate(45deg) scale(-1); }
.pet-face { position:absolute; left:12px; right:12px; top:17px; height:38px; border-radius:46%; background:linear-gradient(180deg,#eef2ff,#ddd6fe); }
.pet-eye { position:absolute; top:10px; width:12px; height:14px; border-radius:50%; background:#1e1b4b; overflow:hidden; animation:petBlink 5s infinite; }
.pet-eye i { position:absolute; left:4px; top:3px; width:4px; height:5px; border-radius:50%; background:white; transform:translate(var(--pet-eye-x),var(--pet-eye-y)); }
.pet-eye-left { left:10px; }.pet-eye-right { right:10px; }
.pet-cheek { position:absolute; top:25px; width:9px; height:5px; border-radius:50%; background:rgba(244,114,182,.42); }.pet-cheek-left{left:5px}.pet-cheek-right{right:5px}
.pet-mouth { position:absolute; left:50%; top:24px; width:10px; height:6px; margin-left:-5px; border-bottom:2px solid #4338ca; border-radius:0 0 10px 10px; }
.pet-body-mark { position:absolute; left:50%; bottom:6px; transform:translateX(-50%); color:#c4b5fd; font-size:14px; }
.pet-minimize { position:absolute; top:20px; right:-2px; width:24px; height:24px; min-height:0; padding:0; border:1px solid #cbd5e1; border-radius:50%; color:#475569; background:white; box-shadow:0 5px 12px rgba(15,23,42,.12); pointer-events:auto; font-weight:900; }
.pet-bubble { position:absolute; left:66px; bottom:70px; width:max-content; max-width:180px; padding:.6rem .75rem; border:1px solid #ddd6fe; border-radius:14px 14px 14px 4px; color:#3730a3; background:rgba(255,255,255,.96); box-shadow:0 12px 28px rgba(15,23,42,.12); font-size:.75rem; font-weight:700; line-height:1.45; opacity:0; transform:translateY(6px) scale(.96); transition:opacity 180ms ease,transform 180ms ease; pointer-events:none; }
.pet-bubble.show { opacity:1; transform:none; }
.cyber-pet.bubble-left .pet-bubble { left:auto; right:66px; border-radius:14px 14px 4px 14px; }
.pet-character.is-happy { animation:petHappy 620ms var(--ease-out); }
.pet-character.is-dancing { animation:petDance 850ms ease-in-out; }
.pet-character.is-rolling { animation:petRoll 760ms cubic-bezier(.3,.7,.3,1); }
.pet-character.is-jumping { animation:petJump 680ms var(--ease-out); }
.pet-character.is-roam-crouching { animation:petRoamCrouch 280ms cubic-bezier(.3,.7,.25,1) both; }
.pet-character.is-roam-hopping { animation:petRoamHop 780ms cubic-bezier(.2,.68,.25,1) both; }
.pet-character.is-happy .pet-mouth { height:9px; background:#fb7185; border:0; }
.pet-heart { position:absolute; left:37px; bottom:64px; color:#f472b6; font-size:18px; pointer-events:none; animation:petHeart 850ms ease-out forwards; }
.pet-soap-bubble { position:absolute; left:48px; bottom:55px; width:var(--bubble-size,14px); height:var(--bubble-size,14px); border:1px solid rgba(99,102,241,.45); border-radius:50%; background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.95) 0 15%,rgba(165,180,252,.35) 28%,rgba(45,212,191,.2) 58%,transparent 72%); box-shadow:inset -2px -2px 5px rgba(79,70,229,.14); pointer-events:none; animation:petBubbleFloat var(--bubble-duration,1200ms) ease-out forwards; }
.pet-restore { position:fixed; z-index:780; left:max(12px,env(safe-area-inset-left)); bottom:max(16px,calc(env(safe-area-inset-bottom) + 10px)); width:44px; height:44px; border:1px solid #c7d2fe; border-radius:14px; background:rgba(255,255,255,.95); box-shadow:0 12px 26px rgba(15,23,42,.14); }
body:has(.modal.active) .cyber-pet, body:has(.modal.active) .pet-restore { opacity:0; pointer-events:none; }

@keyframes heroOrb { to { transform: translate(-20px, 28px) scale(1.08); } }
@keyframes cursorBlink { 50% { opacity: 0; } }
@keyframes ripple { to { transform: scale(18); opacity: 0; } }
@keyframes petBlink { 0%,44%,48%,100%{transform:scaleY(1)} 46%{transform:scaleY(.12)} }
@keyframes petHappy { 35%{transform:translateY(-10px) rotate(-4deg)} 65%{transform:translateY(-4px) rotate(4deg)} }
@keyframes petDance { 20%{transform:translateX(-7px) rotate(-10deg)} 40%{transform:translateY(-8px) rotate(8deg)} 60%{transform:translateX(7px) rotate(12deg)} 80%{transform:translateY(-5px) rotate(-6deg)} }
@keyframes petRoll { 45%{transform:translateX(24px) rotate(190deg) scale(.9)} 100%{transform:translateX(0) rotate(360deg)} }
@keyframes petJump { 35%{transform:translateY(-28px) scaleX(.92) scaleY(1.08)} 65%{transform:translateY(-5px) scaleX(1.05) scaleY(.94)} }
@keyframes petRoamCrouch { 0%{transform:translateY(0) scale(1)} 72%{transform:translateY(7px) scaleX(1.13) scaleY(.84) rotate(-1deg)} 100%{transform:translateY(6px) scaleX(1.1) scaleY(.87)} }
@keyframes petRoamHop { 0%{transform:translateY(6px) scaleX(1.1) scaleY(.87)} 14%{transform:translateY(-5px) scaleX(.94) scaleY(1.08) rotate(2deg)} 48%{transform:translateY(-34px) scaleX(.97) scaleY(1.04) rotate(-3deg)} 70%{transform:translateY(-10px) scale(1.02) rotate(1deg)} 82%{transform:translateY(5px) scaleX(1.12) scaleY(.86)} 91%{transform:translateY(-5px) scaleX(.97) scaleY(1.05)} 100%{transform:translateY(0) scale(1)} }
@keyframes petHeart { to{transform:translate(var(--heart-x),-58px) scale(.6);opacity:0} }
@keyframes petBubbleFloat { to{transform:translate(var(--bubble-x,18px),-90px) scale(1.35);opacity:0} }
@keyframes footerOrbit { to{transform:rotate(360deg)} }

@media (max-width: 760px) {
    body { padding: .75rem; }
    .site-hero { grid-template-columns: 1fr; padding: 1.5rem; border-radius: 18px; }
    .hero-stats { grid-template-columns: 1fr 1fr; }
    .hero-actions { display:grid; grid-template-columns:1fr 1fr; }.hero-actions .hero-action{width:100%;padding-inline:.65rem}.hero-actions .announcement-action{grid-column:1 / -1}
    .hero-console { grid-column: 1 / -1; transform: none; }
    .panel { align-items: stretch; flex-direction: column; }
    .panel-header { align-items: center; }
    .submit-area { width:100%; justify-content:space-between; }.btn-submit { width: auto; flex:1; }
    .list-panel { padding: 1rem; }
    .list-header { align-items: flex-start; }
    .safety-tip { width: 100%; border-radius: 10px; padding: .7rem .85rem; }
    .filter-bar { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
    .search-input { grid-column: 1 / -1; min-width: 0; }
    /* 移动端保持 PC 同款五列，但全部压缩在屏幕内，不横向滑动。 */
    .list-panel, .script-table-scroll, .script-grid, .script-item, .script-row { min-width:0; max-width:100%; }
    .script-table-scroll { overflow:visible; margin:0; padding:0; }
    .script-header, .script-grid { min-width:0; width:100%; }
    .script-header { display:grid; margin-left:0; margin-right:0; padding:.55rem .25rem; width:100%; grid-template-columns:minmax(0,1fr) 68px 34px 34px 76px; gap:3px; border-radius:10px; font-size:.66rem; }
    .script-row { display:grid; grid-template-columns:minmax(0,1fr) 68px 34px 34px 76px; gap:3px; font-size:.7rem; }
    .script-grid { gap: 0; }
    .script-item { padding:.62rem .25rem; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
    .script-filename { grid-column:auto; min-width:0; padding:0; font-size:.7rem; line-height:1.35; word-break:break-all; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
    .script-time { font-size:.62rem; line-height:1.25; white-space:normal; text-align:center; }
    .script-time .date, .script-time .time { display:block; }
    .script-downloads::before, .script-comments::before { content: none; }
    .script-downloads, .script-comments { text-align: center; }
    .script-actions { grid-column:auto; display:grid; grid-template-columns:1fr; gap:3px; min-width:0; }
    .btn-download, .btn-comment { width:100%; min-width:0; min-height:32px; padding:0 2px; font-size:.64rem; border-radius:7px; }
    .cyber-pet { left:max(6px,env(safe-area-inset-left)); bottom:max(9px,calc(env(safe-area-inset-bottom) + 6px)); width:58px; height:69px; }
    .pet-character { left:5px; width:48px; height:50px; border-radius:42% 42% 38% 38%; }
    .pet-character::after{inset:4px}
    .pet-ear { top:-9px; width:18px; height:22px; border-radius:5px 11px 4px 11px; }.pet-ear::after{inset:5px}.pet-ear-left{left:5px}.pet-ear-right{right:5px}
    .pet-face{left:7px;right:7px;top:11px;height:25px}.pet-eye{top:6px;width:9px;height:11px}.pet-eye i{left:3px;top:2px;width:3px;height:4px}.pet-eye-left{left:7px}.pet-eye-right{right:7px}.pet-cheek{top:17px;width:7px;height:4px}.pet-cheek-left{left:4px}.pet-cheek-right{right:4px}.pet-mouth{top:16px;width:8px;height:5px;margin-left:-4px}.pet-body-mark{bottom:3px;font-size:9px}
    .pet-bubble { left:43px; bottom:47px; max-width:min(176px,calc(100vw - 68px)); padding:.5rem .62rem; font-size:.62rem; }
    .cyber-pet.bubble-left .pet-bubble{right:43px}
    .pet-minimize { top:11px; right:-1px; width:18px; height:18px; font-size:.72rem; }
    .footer-top,.footer-bottom { align-items:flex-start; flex-direction:column; }
    .footer-actions { width:100%; }.footer-actions a{flex:1;justify-content:center;min-width:calc(50% - .5rem)}
    .footer-cards { grid-template-columns:1fr; }
    .footer-notice { grid-template-columns:1fr; }
    .modal-content { width: calc(100% - 1rem); max-height: 92vh; padding: 1.25rem; border-radius: 16px; }
    .announcement-modal{padding:.65rem}.announcement-card{width:calc(100vw - 1.3rem);padding:1.15rem;border-radius:18px}.announcement-mark{left:1.15rem;top:1.15rem;width:38px;height:38px;border-radius:12px;font-size:1.05rem}.announcement-card .modal-header{margin-left:3rem}.announcement-card .modal-header h3{font-size:1.12rem}.announcement-copy{margin:.95rem 0;padding:.85rem;font-size:.82rem;line-height:1.7}.announcement-confirm{min-height:42px}
}

@media (max-width: 380px) {
    .list-panel { padding:.65rem .5rem; }
    .script-header, .script-row { grid-template-columns:minmax(0,1fr) 58px 28px 28px 66px; gap:2px; }
    .script-header { padding-inline:.15rem; font-size:.59rem; }
    .script-item { padding-inline:.15rem; }
    .script-filename { font-size:.63rem; }
    .script-time { font-size:.56rem; }
    .script-downloads, .script-comments { font-size:.62rem; }
    .btn-download, .btn-comment { min-height:30px; font-size:.58rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
    .reveal-item { opacity: 1 !important; transform: none !important; }
    .site-hero::after, .console-cursor, .pet-eye, .pet-character, .pet-heart, .pet-soap-bubble, .footer-orbit { animation:none!important; }
    .cyber-pet { transition-duration:.01ms!important; }
}
