@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;700&family=Zen+Maru+Gothic:wght@400;700&display=swap');
:root{--bg:#fff7fb;--text:#342a38;--muted:#806f7f;--card:rgba(255,255,255,.68);--line:rgba(123,77,119,.14);--accent:#d77caf;--accent2:#9a8de3;--shadow:0 18px 60px rgba(91,55,95,.12)}
[data-theme=dark]{--bg:#11101a;--text:#f7eff8;--muted:#b9aabd;--card:rgba(29,27,42,.72);--line:rgba(255,255,255,.09);--accent:#e39bc3;--accent2:#a99ef2;--shadow:0 18px 60px rgba(0,0,0,.3)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 80% 10%,rgba(219,166,215,.22),transparent 30%),var(--bg);color:var(--text);font-family:"Noto Sans TC","Zen Maru Gothic",sans-serif;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;color:inherit}.topbar{height:64px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand{background:none;font-weight:700;font-size:17px}.top-actions{display:flex;gap:8px}.top-actions button,.sidebar button{background:transparent;padding:10px 12px;border-radius:12px}.top-actions button:hover,.sidebar button:hover,.sidebar .active{background:rgba(215,124,175,.12)}.layout{display:grid;grid-template-columns:220px 1fr;max-width:1380px;margin:auto}.sidebar{padding:28px 16px;border-right:1px solid var(--line);min-height:calc(100vh - 64px)}.sidebar nav{display:grid;gap:6px}.sidebar button{text-align:left}.side-card{margin-top:30px;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--card);font-size:13px}.side-card small{color:var(--muted)}main{padding:32px;min-width:0}.page{display:none;animation:fade .35s ease}.page.active{display:block}@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.glass{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(18px);border-radius:28px}.hero{min-height:470px;padding:42px;display:grid;grid-template-columns:1fr 1fr;gap:30px;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;inset:auto -10% -45% 35%;height:400px;background:radial-gradient(circle,var(--accent2),transparent 65%);opacity:.18}.hero-art{display:grid;place-items:center;position:relative}.orb{width:240px;height:300px;border-radius:48% 52% 44% 56%;display:grid;place-items:center;font-size:80px;background:linear-gradient(145deg,rgba(255,255,255,.75),rgba(215,124,175,.2));box-shadow:0 30px 100px rgba(215,124,175,.25);transform:rotate(-4deg);animation:float 5s ease-in-out infinite}@keyframes float{50%{transform:translateY(-12px) rotate(3deg)}}.stars{position:absolute;font-size:28px;letter-spacing:16px;animation:twinkle 2.5s infinite alternate}@keyframes twinkle{to{opacity:.35;transform:scale(.94)}}.hero-copy{align-self:center;position:relative}.eyebrow{font-size:11px;letter-spacing:2.5px;color:var(--accent);font-weight:700}.hero h1{font-size:clamp(38px,5vw,68px);line-height:1.05;margin:15px 0}.hero h1 em{color:var(--accent);font-style:normal}.hero p{color:var(--muted);line-height:1.9;max-width:540px}.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:white;padding:11px 17px;border-radius:13px;box-shadow:0 8px 24px rgba(180,110,170,.2)}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.stat{padding:22px}.stat span,.stat small{display:block;color:var(--muted)}.stat strong{display:block;font-size:34px;margin:5px 0}.section-head{display:flex;justify-content:space-between;align-items:end;margin:42px 0 18px}.section-head h2{margin:5px 0;font-size:30px}.cards{display:grid;gap:14px}.card{padding:20px;border-radius:20px;border:1px solid var(--line);background:var(--card)}.card h3{margin:0 0 8px}.card p{white-space:pre-wrap;color:var(--muted);line-height:1.8}.meta{font-size:12px;color:var(--muted)}.tags{color:var(--accent);font-size:12px}.actions{display:flex;gap:8px;margin-top:14px}.ghost{padding:8px 11px;border-radius:10px;background:rgba(128,111,127,.1)}.search,.form input,.form textarea,.form select,.modal input,.modal textarea,.modal select{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--text);padding:12px;border-radius:12px;outline:none}.search{margin-bottom:16px}.form{padding:24px;display:grid;gap:16px;max-width:760px}.form label,.modal label{display:grid;gap:7px;font-size:13px;color:var(--muted)}.timeline{display:grid;gap:14px;margin-top:22px}.timeline .card{border-left:3px solid var(--accent)}.fav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.fav{overflow:hidden}.fav img{width:100%;height:170px;object-fit:cover;background:linear-gradient(135deg,rgba(215,124,175,.25),rgba(154,141,227,.2))}.fav .body{padding:16px}.gallery-empty,.about{padding:60px;text-align:center}.gallery-empty div,.avatar{font-size:60px}.cursor-star{position:fixed;pointer-events:none;z-index:100;font-size:14px;animation:star .8s ease-out forwards}@keyframes star{to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(160deg) scale(.2)}}.petal{position:fixed;top:-30px;z-index:5;pointer-events:none;animation:fall linear forwards;opacity:.7}@keyframes fall{to{transform:translate3d(var(--x),110vh,0) rotate(540deg)}}dialog{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:24px;padding:0;box-shadow:0 30px 100px rgba(0,0,0,.3);width:min(600px,92vw)}dialog::backdrop{background:rgba(20,12,25,.5);backdrop-filter:blur(5px)}.modal{padding:28px;display:grid;gap:15px;position:relative}.modal h2{margin:0}.close{position:absolute;right:18px;top:14px;background:transparent;font-size:26px}.modal .primary{margin-top:5px}
@media(max-width:800px){.layout{display:block}.sidebar{position:fixed;z-index:30;bottom:0;left:0;right:0;min-height:auto;padding:7px 8px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(18px);border:0;border-top:1px solid var(--line)}.sidebar nav{display:grid;grid-template-columns:repeat(6,1fr)}.sidebar button{font-size:11px;text-align:center;padding:9px 2px}.sidebar button{font-size:0}.sidebar button::first-letter{font-size:18px}.side-card{display:none}main{padding:18px;padding-bottom:90px}.hero{grid-template-columns:1fr;min-height:0;padding:25px}.hero-art{order:0;min-height:240px}.orb{width:170px;height:210px;font-size:60px}.hero h1{font-size:42px}.grid3{gap:8px}.stat{padding:14px}.stat strong{font-size:26px}.stat small{font-size:10px}.section-head{margin-top:30px}.topbar{padding:0 14px}.brand span{display:none}}
