@import"https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&family=Noto+Sans+TC:wght@300;400;500&display=swap";.home-container{min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:40px 20px}.hero-section{text-align:center;z-index:10;opacity:0;transform:translateY(30px);transition:all 1s cubic-bezier(.4,0,.2,1);max-width:1200px;width:100%}.hero-section.visible{opacity:1;transform:translateY(0)}.hero-content{margin-bottom:80px;position:relative}.hero-ornament{font-size:2rem;color:var(--accent-color);margin:20px 0;animation:pulse 3s ease-in-out infinite;opacity:.6}@keyframes pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.hero-title{margin:0;display:flex;flex-direction:column;gap:10px}.title-line{font-size:1.5rem;font-weight:400;color:var(--text-color);opacity:.8;letter-spacing:.3em;text-transform:uppercase}.title-main{font-size:4.5rem;font-weight:700;background:linear-gradient(135deg,var(--accent-color) 0%,var(--text-color) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:titleGlow 4s ease-in-out infinite;position:relative}@keyframes titleGlow{0%,to{filter:brightness(1) drop-shadow(0 0 20px transparent)}50%{filter:brightness(1.3) drop-shadow(0 0 30px var(--accent-color))}}.hero-subtitle{font-size:1.4rem;color:var(--text-color);opacity:.9;margin-top:25px;font-weight:300;letter-spacing:.05em;line-height:1.8}.nav-cards{display:grid;grid-template-columns:repeat(4,minmax(200px,1fr));gap:30px;max-width:1200px;margin:0 auto}.nav-card{background:var(--card-bg);border-radius:20px;padding:40px 30px;cursor:pointer;position:relative;overflow:hidden;transition:all .5s cubic-bezier(.4,0,.2,1);border:2px solid transparent;box-shadow:0 10px 30px var(--shadow-color),0 5px 15px #0000000d;text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;min-height:260px}.card-shine{position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);transform:rotate(45deg);transition:all .6s ease;pointer-events:none}.nav-card:hover .card-shine{left:50%;top:50%}.nav-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 0%,var(--accent-color) 100%);opacity:0;transition:opacity .5s ease;z-index:0}.nav-card:hover{transform:translateY(-12px) scale(1.03);border-color:var(--accent-color);box-shadow:0 20px 60px #b0896866,0 10px 30px var(--shadow-color)}.nav-card:hover:before{opacity:.15}.nav-card-icon{font-size:3.5rem;margin-bottom:25px;filter:grayscale(.2);transition:all .4s ease;position:relative;z-index:1}.nav-card:hover .nav-card-icon{filter:grayscale(0);transform:scale(1.25) rotate(8deg);text-shadow:0 0 20px var(--accent-color)}.nav-card h3{margin:0 0 15px;font-size:1.8rem;color:var(--accent-color);position:relative;z-index:1;transition:all .3s ease}.nav-card:hover h3{transform:scale(1.05);text-shadow:0 0 15px var(--accent-color)}.nav-card p{margin:0;color:var(--text-color);opacity:.85;line-height:1.7;position:relative;z-index:1;font-size:1.05rem}@media(max-width:1024px){.title-main{font-size:3.5rem}.nav-cards{grid-template-columns:repeat(2,minmax(220px,1fr));gap:30px}}@media(max-width:768px){.home-container{padding:30px 15px}.hero-content{margin-bottom:50px}.title-main{font-size:2.8rem}.title-line{font-size:1.1rem;letter-spacing:.2em}.hero-subtitle{font-size:1.1rem}.nav-cards{grid-template-columns:1fr;gap:25px}.nav-card{padding:32px 24px;min-height:auto}.nav-card-icon{font-size:3rem}}@media(max-width:480px){.title-main{font-size:2.2rem}.title-line{font-size:.9rem}.hero-subtitle{font-size:1rem}.hero-ornament{font-size:1.5rem}}.character-deck-page{animation:deckFadeIn .8s ease-out}@keyframes deckFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.character-deck-page h1{position:relative;display:inline-block;left:50%;transform:translate(-50%);padding-bottom:20px;animation:titleGlowPulse 3s ease-in-out infinite}@keyframes titleGlowPulse{0%,to{text-shadow:0 0 10px var(--accent-color)}50%{text-shadow:0 0 20px var(--accent-color),0 0 30px var(--accent-color)}}.character-disclaimer{text-align:center;font-size:.95rem;line-height:1.6;max-width:720px;margin:0 auto 40px;padding:12px 18px;border-radius:12px;background:#ffffff14;backdrop-filter:blur(3px) saturate(120%);-webkit-backdrop-filter:blur(3px) saturate(120%);color:var(--text-color);font-style:italic;box-shadow:0 2px 8px #00000026}@media(prefers-color-scheme:light){.character-disclaimer{background:#fff3}}.character-deck-page h1:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:80%;height:2px;background:linear-gradient(to right,transparent,var(--accent-color),transparent)}.character-deck-page h1:before,.character-deck-page h1:after{position:absolute;top:50%;transform:translateY(-50%);color:var(--accent-color);font-size:1.2rem;opacity:.5;animation:symbolFloat 3s ease-in-out infinite}.character-deck-page h1:before{content:"✦";left:-35px}.character-deck-page h1:after{content:"✦";right:-35px;animation-delay:1.5s}.character-deck-page .card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:32px;row-gap:60px;animation:gridSlideIn 1s ease-out .3s backwards;perspective:2000px;max-width:1240px;margin:0 auto}@media(max-width:1200px){.character-deck-page .card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.character-deck-page .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.character-deck-page .card-grid{grid-template-columns:1fr}}@keyframes gridSlideIn{0%{opacity:0;transform:translateY(40px) rotateX(10deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}.deck-stats{text-align:center;margin-bottom:30px;padding:20px;background:var(--card-bg);border-radius:15px;box-shadow:0 5px 20px var(--shadow-color);animation:statsFadeIn 1s ease-out .5s backwards}@keyframes statsFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.deck-stats p{margin:0;font-size:1.1rem;color:var(--text-color);opacity:.8}.deck-stats strong{color:var(--accent-color);font-size:1.3rem;font-family:Cinzel,serif}.deck-filters{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:30px 0;animation:filterSlideIn 1s ease-out .4s backwards}@keyframes filterSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.filter-tag{background:var(--card-bg);color:var(--text-color);padding:10px 22px;border-radius:25px;border:2px solid transparent;font-family:Noto Sans TC,sans-serif;font-size:.95rem;cursor:pointer;transition:all .3s ease;box-shadow:0 3px 10px var(--shadow-color)}.filter-tag:hover{transform:translateY(-3px);box-shadow:0 6px 20px var(--accent-color)}.filter-tag.active{background:var(--accent-color);color:var(--bg-color);border-color:var(--accent-color);box-shadow:0 0 20px var(--accent-color)}.deck-empty{text-align:center;padding:100px 20px;color:var(--text-color);opacity:.6}.deck-empty-icon{font-size:5rem;margin-bottom:20px;opacity:.3;animation:emptyFloat 3s ease-in-out infinite}@keyframes emptyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.deck-empty h3{font-size:1.8rem;margin-bottom:10px;color:var(--accent-color)}.deck-empty p{font-size:1.1rem;margin:0}@media(max-width:768px){.character-deck-page h1{font-size:2rem}.character-deck-page h1:before,.character-deck-page h1:after{display:none}.deck-filters{gap:8px}.filter-tag{padding:8px 18px;font-size:.85rem}}.tag-filter-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:16px 0 8px;flex-wrap:wrap}.tag-filter-left{display:flex;gap:8px;flex-wrap:wrap}.tag-chip{position:relative;display:inline-block;padding:6px 12px;border-radius:12px;font-size:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:color-mix(in oklab,var(--accent-color),transparent 70%);border:1px solid color-mix(in oklab,var(--accent-color),#000 40%);color:#fff;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:transform .15s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease}.tag-chip.active{background-color:var(--accent-color);color:var(--bg-color);box-shadow:0 0 18px color-mix(in oklab,var(--accent-color),transparent 60%);border-color:var(--accent-color)}.mode-switch{display:inline-flex;border:1px solid color-mix(in oklab,var(--accent-color),#000 70%);border-radius:999px;overflow:hidden;background:color-mix(in oklab,var(--accent-color),transparent 85%);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mode-switch label{padding:6px 12px;font-size:12px;cursor:pointer;color:#fff}.mode-switch input{display:none}.mode-switch label.on{background:var(--accent-color);color:var(--bg-color);font-weight:600}.tag-clear{padding:6px 12px;border-radius:10px;border:1px solid color-mix(in oklab,var(--accent-color),#000 40%);background:color-mix(in oklab,var(--accent-color),transparent 80%);color:#fff;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background-color .2s ease}.tag-clear:hover{transform:translateY(-2px);box-shadow:0 5px 15px var(--shadow-color)}.tag-clear:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.tag-stats{font-size:12px;opacity:.7;margin-bottom:40px}.pagination{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:50px;padding-bottom:30px;position:relative;z-index:10}.page-btn{background-color:var(--card-bg);color:var(--text-color);border:1px solid var(--shadow-color);width:40px;height:40px;border-radius:50%;font-family:Cinzel,serif;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s ease;display:flex;justify-content:center;align-items:center;box-shadow:0 2px 5px var(--shadow-color)}.page-btn:hover:not(:disabled){background-color:var(--accent-color);color:var(--bg-color);transform:translateY(-2px);box-shadow:0 5px 15px var(--accent-color)}.page-btn.active{background-color:var(--accent-color);color:var(--bg-color);border-color:var(--accent-color);box-shadow:0 0 15px var(--accent-color);cursor:default;pointer-events:none}.page-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}@media(prefers-color-scheme:dark){.page-btn{border-color:#ffffff1a}}.tarot-card-wrapper{transition:transform .4s cubic-bezier(.25,.8,.25,1)}.tarot-card-wrapper:hover{transform:rotate(0) scale(1.05)!important;z-index:10;filter:drop-shadow(0 0 15px var(--accent-color))}.tarot-card{width:280px;height:490px;background-color:transparent;perspective:1500px}.card-inner{position:relative;width:100%;height:100%;transition:transform .9s cubic-bezier(.2,.7,.2,1.05);transform-style:preserve-3d;will-change:transform}.tarot-card-wrapper:hover .card-inner{transform:rotateY(180deg)}.card-front,.card-back{position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;background-color:var(--card-bg);color:var(--text-color);border-radius:18px;box-shadow:0 5px 20px var(--shadow-color);overflow:hidden;display:flex;flex-direction:column}.card-front{transform:rotateY(0)}.card-image-fullscreen{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:1;border-radius:18px}.card-front-content{position:relative;z-index:2;width:100%;height:100%;padding:20px;background:linear-gradient(180deg,#000000b3,#0000 30% 70%,#000c);display:flex;flex-direction:column}.card-tags{margin-bottom:0}.tag{display:inline-block;background-color:color-mix(in oklab,var(--accent-color),transparent 70%);border:1px solid color-mix(in oklab,var(--accent-color),#000 40%);color:#fff;padding:4px 10px;border-radius:12px;font-size:.8rem;margin-right:5px;margin-bottom:5px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.card-content-spacer{flex-grow:1}.card-bottom-content{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.card-name{font-size:2rem;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.7);display:inline-block;padding:8px 12px;margin:0;border-radius:12px;color:#fff;background:#ffffff1a;backdrop-filter:blur(1px) saturate(100%);-webkit-backdrop-filter:blur(1px) saturate(100%);border:none;box-shadow:none;text-shadow:0 1px 3px rgba(0,0,0,.45)}.card-one-liner{font-size:1rem;font-style:italic;display:inline-block;padding:8px 12px;margin:0;border-radius:10px;color:#fff;line-height:1.35;background:#ffffff2e;backdrop-filter:blur(1px) saturate(110%);-webkit-backdrop-filter:blur(1px) saturate(110%);border:none;box-shadow:none;text-shadow:0 2px 6px rgba(0,0,0,.45);min-width:min(92%,420px);max-width:min(92%,420px);word-break:break-word}@media(prefers-color-scheme:light){.card-name{background:#fff3}.card-one-liner{background:#ffffff42}}@media(prefers-color-scheme:dark){.card-name,.card-one-liner{background:#ffffff1f}}@media(max-width:420px){.card-one-liner{display:block;width:100%}}.card-back{transform:rotateY(180deg);background-image:linear-gradient(#0000004d,#0000004d),url(/images/tarot-back-design.jpg);background-size:cover;background-position:center;display:flex;justify-content:center;align-items:center;padding:30px;box-sizing:border-box}.card-back-content{background-color:#00000080;color:#fff;padding:20px;border-radius:10px;max-height:100%;width:100%;overflow-y:auto;box-sizing:border-box}.card-back-name{margin:0 0 15px;font-size:1.3rem;text-align:center;border-bottom:1px solid currentColor;padding-bottom:10px}.card-description{margin:0;font-size:.95rem;line-height:1.6;white-space:pre-line}.card-back-content::-webkit-scrollbar{width:6px}.card-back-content::-webkit-scrollbar-track{background:transparent}.card-back-content::-webkit-scrollbar-thumb{background-color:#ffffff4d;border-radius:3px}.card-inner{transition:transform .9s cubic-bezier(.2,.7,.2,1.05)}.card-back{background-image:linear-gradient(#0003,#0003),repeating-conic-gradient(from 0deg,rgba(255,255,255,.018) 0 10deg,transparent 10deg 20deg),radial-gradient(circle at 50% 0%,rgba(255,255,255,.07),transparent 35%),url(/images/tarot-back-design.jpg)}.project-card{position:relative;width:100%;max-width:500px;background-color:var(--card-bg);color:var(--text-color);border-radius:12px;box-shadow:0 4px 15px var(--shadow-color);overflow:hidden;display:flex;flex-direction:column;height:100%;transition:transform .3s ease,box-shadow .3s ease}.project-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px var(--accent-color)}.project-card-content{padding:20px 25px;flex-grow:1}.project-name{margin:0 0 15px;font-size:1.5rem;color:var(--accent-color);border-bottom:1px solid var(--shadow-color);padding-bottom:10px}.project-description{margin:0;font-size:1rem;line-height:1.6}.project-card-footer{display:flex;justify-content:space-between;align-items:flex-end;padding:15px 25px;background-color:#0000000d;border-top:1px solid var(--shadow-color)}@media(prefers-color-scheme:dark){.project-card-footer{background-color:#ffffff0d}}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tags .tag{display:inline-block;background-color:var(--bg-color);color:var(--text-color);padding:4px 10px;border-radius:12px;font-size:.8rem;font-family:Noto Sans TC,sans-serif}.project-link-button{background-color:var(--accent-color);color:var(--bg-color);padding:8px 15px;border-radius:8px;font-family:Cinzel,serif;font-weight:700;font-size:.9rem;text-decoration:none;text-align:center;white-space:nowrap;transition:background-color .3s ease}.project-link-button:hover{background-color:var(--text-color);color:var(--bg-color);opacity:1}.project-card:before{content:"";position:absolute;inset:-10px;background:radial-gradient(circle at center,var(--accent-color) 0%,transparent 70%);opacity:0;transition:opacity .4s ease;border-radius:20px;z-index:-1;filter:blur(15px)}.project-card:hover:before{opacity:.3}.project-card:after{content:"✦";position:absolute;top:15px;right:15px;color:var(--accent-color);font-size:1.2rem;opacity:0;transition:all .4s ease;z-index:10}.project-card:hover:after{opacity:.6;transform:rotate(180deg) scale(1.2)}.project-name{position:relative}.project-name:after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:2px;background:var(--accent-color);transition:width .4s ease}.project-card:hover .project-name{text-shadow:0 0 10px var(--accent-color)}.project-card:hover .project-name:after{width:100%}.project-description{transition:transform .3s ease,color .3s ease}.project-card:hover .project-description{transform:translate(5px)}.project-tags .tag{position:relative;overflow:hidden}.project-tags .tag:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .5s ease}.project-tags .tag:hover:before{left:100%}.project-tags .tag:hover{background-color:var(--accent-color);color:var(--bg-color);transform:translateY(-3px) scale(1.1);box-shadow:0 5px 15px var(--shadow-color)}.project-link-button{border:2px solid var(--accent-color)}.project-link-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:var(--text-color);border-radius:50%;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease;z-index:-1}.project-link-button:hover:before{width:300px;height:300px}.project-link-button:hover{transform:translateY(-3px);box-shadow:0 8px 20px var(--accent-color);border-color:var(--text-color)}@media(max-width:768px){.project-card:after{display:none}.project-link-button{width:100%;margin-top:10px}}.projects-page{animation:fadeIn .8s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.projects-page h1{text-align:center;margin-bottom:30px;position:relative;display:inline-block;left:50%;transform:translate(-50%);padding-bottom:20px;animation:titleSlideIn .8s ease-out,textGlow 3s ease-in-out infinite}.projects-page h1:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:80%;height:2px;background:linear-gradient(to right,transparent,var(--accent-color),transparent)}.projects-page h1:before,.projects-page h1:after{position:absolute;top:50%;transform:translateY(-50%);color:var(--accent-color);font-size:1.2rem;opacity:.5;animation:symbolFloat 3s ease-in-out infinite}.projects-page h1:before{content:"✦";left:-35px}.projects-page h1:after{content:"✦";right:-35px;animation-delay:1.5s}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:30px;animation:gridFadeIn 1s ease-out .3s backwards}@keyframes gridFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.project-grid .project-card{animation:cardSlideIn .6s ease-out backwards}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.project-grid .project-card:nth-child(1){animation-delay:.1s}.project-grid .project-card:nth-child(2){animation-delay:.2s}.project-grid .project-card:nth-child(3){animation-delay:.3s}.project-grid .project-card:nth-child(4){animation-delay:.4s}.project-grid .project-card:nth-child(5){animation-delay:.5s}.project-grid .project-card:nth-child(6){animation-delay:.6s}.project-grid .project-card:nth-child(7){animation-delay:.7s}.project-grid .project-card:nth-child(8){animation-delay:.8s}.project-grid .project-card:nth-child(9){animation-delay:.9s}@media(max-width:768px){.project-grid{grid-template-columns:1fr;gap:25px}}.about-page{max-width:1100px;margin:0 auto;animation:pageSlideIn .8s ease-out}@keyframes pageSlideIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.about-page h1{text-align:center;margin-bottom:40px;position:relative;display:inline-block;left:50%;transform:translate(-50%);padding-bottom:20px;animation:titleSlideIn .8s ease-out,textGlow 3s ease-in-out infinite}.about-tabs{display:flex;justify-content:center;gap:12px;margin-bottom:20px}.tab-btn{border:1px solid var(--accent-color);background:transparent;color:var(--accent-color);padding:8px 20px;border-radius:999px;cursor:pointer;font-weight:600;transition:all .3s ease}.tab-btn.active{background:var(--accent-color);color:var(--bg-color);box-shadow:0 8px 20px #0003}.about-page h1:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:60%;height:2px;background:linear-gradient(to right,transparent,var(--accent-color),transparent)}.about-page h1:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:80%;height:2px;background:linear-gradient(to right,transparent,var(--accent-color),transparent)}.about-page h1:before,.about-page h1:after{position:absolute;top:50%;transform:translateY(-50%);color:var(--accent-color);font-size:1.2rem;opacity:.5;animation:symbolFloat 3s ease-in-out infinite}.about-page h1:before{content:"✦";left:-35px}.about-page h1:after{content:"✦";right:-35px;animation-delay:1.5s}@keyframes symbolFloat{0%,to{transform:translateY(-50%) scale(1);opacity:.3}50%{transform:translateY(-60%) scale(1.2);opacity:.7}}.about-container{display:grid;grid-template-columns:1fr;gap:30px;align-items:flex-start;animation:containerFadeIn 1s ease-out .2s backwards}@keyframes containerFadeIn{0%{opacity:0}to{opacity:1}}.about-image-wrapper{width:100%;max-width:350px;margin:0 auto;position:relative}.about-image-wrapper:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% + 30px);height:calc(100% + 30px);background:radial-gradient(circle,var(--accent-color) 0%,transparent 70%);opacity:.2;border-radius:12px;animation:imagePulse 3s ease-in-out infinite;pointer-events:none;z-index:0}@keyframes imagePulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.2}50%{transform:translate(-50%,-50%) scale(1.05);opacity:.3}}.about-image{width:100%;height:auto;border-radius:12px;box-shadow:0 5px 20px var(--shadow-color);object-fit:cover;transition:transform .4s ease,box-shadow .4s ease;position:relative;z-index:1}.about-image:hover{transform:scale(1.05) rotate(2deg);box-shadow:0 10px 40px var(--accent-color)}.about-content{background-color:var(--card-bg);border-radius:12px;padding:30px 40px;box-shadow:0 4px 15px var(--shadow-color);transition:all .4s ease;position:relative;overflow:hidden}.about-content:before{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle,var(--accent-color) 0%,transparent 60%);opacity:0;transition:opacity .6s ease;pointer-events:none;z-index:0}.about-content:hover:before{opacity:.05;animation:rotate 8s linear infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.about-content h2{margin:0 0 20px;font-size:2rem;color:var(--accent-color);border-bottom:1px solid var(--shadow-color);padding-bottom:15px;position:relative;display:inline-block;animation:titleFadeIn .8s ease-out;z-index:1}@keyframes titleFadeIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.about-content h2:before{content:"✦";position:absolute;left:-25px;color:var(--accent-color);opacity:.5;font-size:.8em}.about-content h3{margin:30px 0 15px;font-size:1.5rem;color:var(--accent-color);position:relative;display:inline-block;z-index:1}.about-content h3:before{content:"✦";position:absolute;left:-25px;color:var(--accent-color);opacity:.5;font-size:.8em}.about-content p{font-size:1rem;line-height:1.7;color:var(--text-color);margin-bottom:15px;position:relative;padding-left:15px;transition:all .3s ease;z-index:1}.about-content p:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent-color);opacity:0;transition:opacity .3s ease}.about-content p:hover:before{opacity:.5}.about-content p:hover{padding-left:20px;color:var(--accent-color)}.skills-list{list-style:none;padding-left:0;display:flex;flex-wrap:wrap;gap:10px;position:relative;z-index:1}.skills-list li{background-color:var(--bg-color);color:var(--text-color);padding:5px 12px;border-radius:15px;font-size:.9rem;font-family:Noto Sans TC,sans-serif;transition:all .3s ease;cursor:default;position:relative;overflow:hidden}.skills-list li:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.skills-list li:hover:before{left:100%}.skills-list li:hover{background-color:var(--accent-color);color:var(--bg-color);transform:translateY(-3px) scale(1.05);box-shadow:0 5px 15px var(--shadow-color)}.contact-links{display:flex;flex-wrap:wrap;gap:15px;margin-top:10px;position:relative;z-index:1}.contact-links a{background-color:var(--accent-color);color:var(--bg-color);padding:8px 18px;border-radius:8px;font-family:Cinzel,serif;font-weight:700;font-size:.95rem;text-decoration:none;position:relative;overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);border:2px solid var(--accent-color)}.contact-links a:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:var(--text-color);border-radius:50%;transform:translate(-50%,-50%);transition:width .5s ease,height .5s ease;z-index:-1}.contact-links a:hover:before{width:300px;height:300px}.contact-links a:hover{background-color:var(--text-color);color:var(--bg-color);opacity:1;transform:translateY(-3px) scale(1.05);box-shadow:0 8px 20px var(--accent-color);border-color:var(--text-color)}@media(min-width:769px){.about-container{grid-template-columns:1fr 2fr;gap:40px}.about-image-wrapper{margin:0}}@media(max-width:768px){.about-content h2:before,.about-content h3:before{display:none}.about-content{padding:25px 30px}.about-content p{padding-left:10px}.about-content p:before{width:2px}}.friend-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-top:20px}.friend-card{background:var(--card-bg);border-radius:16px;padding:20px;box-shadow:0 8px 20px var(--shadow-color);text-decoration:none;color:var(--text-color);display:flex;flex-direction:column;gap:10px;border:1px solid rgba(0,0,0,.1);transition:transform .3s ease,box-shadow .3s ease}.friend-card h3{margin:0;color:var(--accent-color)}.friend-card p{margin:0;line-height:1.6}.friend-arrow{align-self:flex-end;font-size:1.2rem;color:var(--accent-color)}.friend-card:hover{transform:translateY(-5px);box-shadow:0 15px 30px #0003}.decorative-divider{text-align:center;margin:40px 0;position:relative}.decorative-divider:before,.decorative-divider:after{content:"";position:absolute;top:50%;width:40%;height:1px;background:linear-gradient(to right,transparent,var(--accent-color),transparent)}.decorative-divider:before{left:0}.decorative-divider:after{right:0}.decorative-divider span{display:inline-block;padding:0 20px;color:var(--accent-color);font-size:1.5rem;opacity:.6}.tarot-card-wrapper{position:relative}.tarot-card-wrapper:before{content:"";position:absolute;inset:-10px;background:radial-gradient(circle at center,var(--accent-color) 0%,transparent 70%);opacity:0;transition:opacity .4s ease;border-radius:25px;pointer-events:none;z-index:-1;filter:blur(20px)}.tarot-card-wrapper:hover:before{opacity:.3}.card-front,.card-back{box-shadow:0 2px 5px #0000001a,0 5px 15px #00000014,0 10px 30px #0000000d}.tarot-card-wrapper:hover .card-front,.tarot-card-wrapper:hover .card-back{box-shadow:0 5px 15px var(--shadow-color),0 15px 40px var(--accent-color),0 20px 60px #00000026}.gothic-border{position:relative;padding:30px}.gothic-border:before{content:"✦";position:absolute;top:10px;left:10px;color:var(--accent-color);font-size:1.2rem;opacity:.4}.gothic-border:after{content:"✦";position:absolute;bottom:10px;right:10px;color:var(--accent-color);font-size:1.2rem;opacity:.4}.glow-title{animation:textGlow 3s ease-in-out infinite}@keyframes textGlow{0%,to{text-shadow:0 0 10px var(--accent-color),0 0 20px var(--accent-color)}50%{text-shadow:0 0 20px var(--accent-color),0 0 40px var(--accent-color),0 0 60px var(--accent-color)}}@keyframes pageEnter{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.page-enter{animation:pageEnter .8s cubic-bezier(.4,0,.2,1) forwards}.scroll-reveal{opacity:0;transform:translateY(30px);transition:all .8s ease-out}.scroll-reveal.visible{opacity:1;transform:translateY(0)}body:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:url(/images/noise.jpg);opacity:.03;pointer-events:none;z-index:9999;mix-blend-mode:overlay}.page-header{text-align:center;padding:60px 20px;margin-bottom:40px;position:relative}.page-header:before{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:200px;height:2px;background:linear-gradient(to right,transparent,var(--accent-color),transparent)}.page-header h1{margin:0 0 20px;font-size:3.5rem;letter-spacing:.1em;position:relative;display:inline-block}.page-header h1:before,.page-header h1:after{content:"✦";position:absolute;top:50%;transform:translateY(-50%);color:var(--accent-color);font-size:1.5rem;opacity:.5}.page-header h1:before{left:-40px}.page-header h1:after{right:-40px}.page-header p{font-size:1.2rem;opacity:.8;max-width:600px;margin:0 auto}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.card-grid>*,.project-grid>*{animation:cardFadeIn .6s ease-out backwards}.card-grid>*:nth-child(1){animation-delay:.1s}.card-grid>*:nth-child(2){animation-delay:.2s}.card-grid>*:nth-child(3){animation-delay:.3s}.card-grid>*:nth-child(4){animation-delay:.4s}.card-grid>*:nth-child(5){animation-delay:.5s}.card-grid>*:nth-child(6){animation-delay:.6s}.card-grid>*:nth-child(7){animation-delay:.7s}.card-grid>*:nth-child(8){animation-delay:.8s}.tag{position:relative;overflow:hidden}.tag:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.tag:hover:before{left:100%}.main-nav{position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#e8dfd5e6}@media(prefers-color-scheme:dark){.main-nav{background-color:#5a463ae6}}.main-nav a{position:relative;overflow:hidden}.main-nav a:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--accent-color);transition:all .3s ease;transform:translate(-50%)}.main-nav a:hover:after,.main-nav a.active:after{width:100%}@media(max-width:768px){.page-header h1{font-size:2.5rem}.page-header h1:before,.page-header h1:after{font-size:1rem;left:-25px;right:-25px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.card-grid,.project-grid,.about-container{animation:fadeIn .8s ease-out forwards}:root{--bg-color: #F5EFE6;--text-color: #785A46;--card-bg: #E8DFD5;--accent-color: #B08968;--shadow-color: rgba(120, 90, 70, .15)}@media(prefers-color-scheme:dark){:root{--bg-color: #3E2C2C;--text-color: #D4BBAA;--card-bg: #5A463A;--accent-color: #E6A47C;--shadow-color: rgba(0, 0, 0, .3)}}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;color:var(--text-color);font-family:Noto Sans TC,sans-serif;transition:background-color .3s ease,color .3s ease;line-height:1.6}.App{min-height:100vh;position:relative;background-color:var(--bg-color)}.App:before{content:"";position:absolute;inset:0;z-index:-1;background-image:url(/images/noise.jpg);background-repeat:repeat;background-blend-mode:multiply;opacity:.94}h1,h2,h3,h4,h5,h6{font-family:Cinzel,serif;font-weight:700;color:var(--accent-color)}a{color:var(--accent-color);text-decoration:none;transition:opacity .2s}a:hover{opacity:.8}.main-nav{display:flex;align-items:center;justify-content:center;gap:30px;padding:16px 20px;background-color:var(--card-bg);box-shadow:0 2px 10px var(--shadow-color);border-bottom:1px solid var(--shadow-color);position:sticky;top:0;z-index:12}.nav-links{display:flex;align-items:center;gap:30px}.main-nav a{font-family:Cinzel,serif;font-size:1.2rem;font-weight:700;color:var(--text-color);padding:5px 10px;border-radius:5px}.main-nav a.active{color:var(--accent-color);text-shadow:0 0 10px var(--accent-color)}.nav-toggle{display:none;width:44px;height:44px;border-radius:10px;border:1px solid var(--shadow-color);background:var(--bg-color);align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:8px;cursor:pointer}.nav-toggle span{display:block;width:100%;height:3px;background:var(--text-color);border-radius:4px;transition:transform .2s ease,opacity .2s ease}@media(max-width:820px){.main-nav{justify-content:space-between;padding:12px 16px}.nav-toggle{display:inline-flex}.nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--card-bg);padding:12px 16px 16px;gap:12px;box-shadow:0 10px 24px var(--shadow-color);opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .2s ease,transform .2s ease}.main-nav.open .nav-links{opacity:1;pointer-events:auto;transform:translateY(0)}.main-nav a{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--shadow-color);background:color-mix(in oklab,var(--bg-color),transparent 10%)}}.main-content{max-width:1400px;margin:0 auto;padding:30px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px;justify-items:center}.home-hero{position:relative;min-height:clamp(560px,72vh,860px);display:grid;place-items:center;padding:80px 24px 40px;overflow:hidden}.home-hero .hero-lights:before,.home-hero .hero-lights:after{content:"";position:absolute;inset:-20%;background:radial-gradient(60% 40% at 30% 30%,rgba(255,255,255,.25),transparent 60%),radial-gradient(40% 60% at 70% 70%,rgba(0,0,0,.12),transparent 60%);pointer-events:none;mix-blend-mode:soft-light;filter:blur(10px)}.home-hero .hero-lights:after{transform:rotate(180deg)}.hero-inner{width:min(1200px,92vw)}.hero-title{margin:0 0 8px;font-size:clamp(28px,5vw,56px);letter-spacing:.02em;text-shadow:0 2px 18px var(--shadow-color)}.hero-sub{margin:0 0 22px;font-size:clamp(14px,2.2vw,18px);opacity:.9}.hero-ctas{display:flex;gap:14px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:12px;font-weight:700;font-family:Cinzel,serif;border:1px solid color-mix(in oklab,var(--text-color),transparent 50%);box-shadow:0 6px 16px var(--shadow-color);transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px var(--shadow-color)}.btn-primary{background:var(--accent-color);color:var(--bg-color)}.btn-ghost{background:color-mix(in oklab,var(--card-bg),transparent 20%);color:var(--text-color)}.hero-spread{margin-top:clamp(28px,4vw,50px);display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:clamp(12px,2.2vw,26px)}.hero-card{text-align:center;animation:cardPop .7s ease both}.hero-card h3{margin:10px 0 0;font-size:1.1rem}.hero-card:nth-child(1){animation-delay:.05s}.hero-card:nth-child(2){animation-delay:.18s}.hero-card:nth-child(3){animation-delay:.31s}@keyframes cardPop{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.hero-card-frame{position:relative;aspect-ratio:7 / 12;border-radius:18px;background:linear-gradient(180deg,rgba(0,0,0,.08),transparent 30%,rgba(0,0,0,.2)),repeating-conic-gradient(from 0deg,rgba(255,255,255,.03) 0 10deg,transparent 10deg 20deg);border:1px solid color-mix(in oklab,var(--accent-color),#000 20%);overflow:hidden;box-shadow:0 10px 24px var(--shadow-color);transition:transform .25s ease,filter .25s ease}.hero-card-frame:hover{transform:translateY(-6px) rotate(var(--tilt, 0deg));filter:drop-shadow(0 0 18px var(--accent-color))}.hero-card img{width:100%;height:100%;object-fit:cover;display:block}.hero-card-frame .foil{position:absolute;inset:0;pointer-events:none;mix-blend-mode:overlay;opacity:.38;background:conic-gradient(from 0deg,#fff0,#fff6,#fff0);animation:foilShift 4.5s ease-in-out infinite}@keyframes foilShift{0%,to{transform:translate(-10%)}50%{transform:translate(10%)}}.angle-left{--tilt: -2.5deg}.angle-center{--tilt: 0deg}.angle-right{--tilt: 2.5deg}.hero-footer{margin-top:28px;display:grid;place-items:center}.hero-footer .meta{display:flex;gap:14px;opacity:.8;font-size:.9rem;flex-wrap:wrap}.hero-footer .meta span:before{content:"✦ ";opacity:.6}@media(max-width:920px){.hero-spread{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.hero-spread{grid-template-columns:1fr}}.particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:1}.particle{position:absolute;left:0;top:100%;width:4px;height:4px;background:var(--accent-color);border-radius:50%;opacity:0;animation:float var(--p-dur, 18s) linear var(--p-delay, 0s) infinite;box-shadow:0 0 15px var(--accent-color)}@keyframes float{0%{top:100%;opacity:0;transform:translate(0) rotate(0) scale(.5)}10%{opacity:.6}90%{opacity:.6}to{top:-100px;opacity:0;transform:translate(50px) rotate(360deg) scale(1)}}html.paused .particle{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.particle{animation:none!important;opacity:0!important}}.page-loading{min-height:40vh;display:flex;align-items:center;justify-content:center;font-family:Cinzel,serif;font-size:1.1rem;letter-spacing:.2em;color:var(--text-color);text-transform:uppercase}
