:root{--bg:#0d0d0d;--bg2:#161616;--white:#f5f5f5;--white-dim:#b0b0b0;--gray:#888;--gray-dim:#555;--border:rgba(245,245,245,0.2);--border-bright:rgba(245,245,245,0.6);--shadow:rgba(0,0,0,0.8);}*{box-sizing:border-box;margin:0;padding:0;}body{background:var(--bg);color:var(--white);font-family:'Noto Serif JP',serif;min-height:100vh;overflow-x:hidden;position:relative;}body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse at 20% 50%,rgba(255,255,255,0.03) 0%,transparent 55%),radial-gradient(ellipse at 80% 20%,rgba(255,255,255,0.02) 0%,transparent 45%),radial-gradient(ellipse at 60% 80%,rgba(255,255,255,0.02) 0%,transparent 35%);pointer-events:none;z-index:0;}.stars{position:fixed;inset:0;pointer-events:none;z-index:0;}.star{position:absolute;background:white;border-radius:50%;animation:twinkle var(--d,3s) ease-in-out infinite;opacity:var(--o,0.5);}@keyframes twinkle{0%,100%{opacity:var(--o,0.5);transform:scale(1);}50%{opacity:calc(var(--o,0.5) * 0.2);transform:scale(0.6);}}.container{position:relative;z-index:1;max-width:900px;margin:0 auto;padding:40px 20px;}header{text-align:center;padding:40px 0 50px;}.header-ornament{color:var(--white-dim);font-size:1.2rem;letter-spacing:10px;margin-bottom:14px;opacity:0.5;}h1{font-family:'Cinzel',serif;font-size:clamp(1.8rem,5vw,3rem);color:var(--white);letter-spacing:8px;text-shadow:0 0 40px rgba(255,255,255,0.15);margin-bottom:10px;}.subtitle{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.1rem;color:var(--gray);letter-spacing:5px;}.divider{display:flex;align-items:center;gap:16px;margin:28px auto;max-width:400px;}.divider::before,.divider::after{content:'';flex:1;height:1px;background:linear-gradient(to right,transparent,var(--gray-dim));}.divider::after{background:linear-gradient(to left,transparent,var(--gray-dim));}.divider-icon{color:var(--white-dim);font-size:1rem;opacity:0.5;}.form-section{background:rgba(22,22,22,0.85);border:1px solid var(--border);border-radius:3px;padding:40px;margin-bottom:36px;backdrop-filter:blur(10px);position:relative;overflow:hidden;}.form-section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--white-dim),transparent);opacity:0.4;}.form-section::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--white-dim),transparent);opacity:0.4;}.form-title{font-family:'Cinzel',serif;color:var(--white-dim);font-size:0.8rem;letter-spacing:5px;text-align:center;margin-bottom:30px;opacity:0.7;}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:22px;}@media (max-width:600px){.form-grid{grid-template-columns:1fr;}.form-section{padding:24px 18px;}}.field{display:flex;flex-direction:column;gap:8px;}.field.full{grid-column:1 / -1;}label{font-family:'Cinzel',serif;font-size:0.72rem;letter-spacing:3px;color:var(--gray);text-transform:uppercase;}input,select{background:rgba(8,8,8,0.8);border:1px solid rgba(245,245,245,0.15);border-radius:2px;color:var(--white);font-family:'Noto Serif JP',serif;font-size:0.95rem;padding:12px 16px;outline:none;transition:border-color 0.3s,box-shadow 0.3s;width:100%;}input:focus,select:focus{border-color:rgba(245,245,245,0.5);box-shadow:0 0 12px rgba(255,255,255,0.06);}select option{background:#111;}.spread-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:30px;}.spread-option input[type="radio"]{display:none;}.spread-label{display:block;padding:15px 10px;border:1px solid rgba(245,245,245,0.15);border-radius:2px;cursor:pointer;text-align:center;transition:all 0.25s;background:rgba(8,8,8,0.5);}.spread-label:hover{border-color:rgba(245,245,245,0.4);background:rgba(245,245,245,0.05);}.spread-option input:checked+.spread-label{border-color:rgba(245,245,245,0.7);background:rgba(245,245,245,0.08);box-shadow:0 0 16px rgba(255,255,255,0.05);}.spread-name{font-family:'Cinzel',serif;font-size:0.8rem;color:var(--white);letter-spacing:2px;display:block;margin-bottom:4px;}.spread-desc{font-size:0.72rem;color:var(--gray);}.btn-divine{display:block;width:100%;max-width:280px;margin:0 auto;padding:16px 32px;background:transparent;border:1px solid rgba(245,245,245,0.5);color:var(--white);font-family:'Cinzel',serif;font-size:0.95rem;letter-spacing:6px;cursor:pointer;transition:all 0.35s;position:relative;overflow:hidden;}.btn-divine::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,0.04);opacity:0;transition:opacity 0.35s;}.btn-divine:hover{border-color:var(--white);box-shadow:0 0 24px rgba(255,255,255,0.08);}.btn-divine:hover::before{opacity:1;}.btn-divine:active{transform:scale(0.98);}#result-section{display:none;}#result-section.visible{display:block;animation:fadeIn 0.7s ease;}@keyframes fadeIn{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}.result-header{text-align:center;margin-bottom:36px;}.result-name{font-family:'Shippori Mincho',serif;font-size:clamp(1.1rem,3.5vw,1.7rem);color:var(--white);font-style:normal;font-weight:400;letter-spacing:0.08em;}.result-spread-name{font-family:'Cinzel',serif;font-size:0.72rem;letter-spacing:5px;color:var(--gray);margin-top:8px;}.cards-area{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;margin-bottom:44px;}.card-slot{display:flex;flex-direction:column;align-items:center;gap:10px;}.card-position-label{font-family:'Cinzel',serif;font-size:0.65rem;letter-spacing:3px;color:var(--gray);text-align:center;}.tarot-card{width:118px;height:206px;perspective:1000px;cursor:pointer;}.card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 0.7s cubic-bezier(0.4,0,0.2,1);}.tarot-card.revealed .card-inner{transform:rotateY(180deg);}.card-face,.card-back{position:absolute;inset:0;backface-visibility:hidden;border-radius:5px;border:1px solid rgba(245,245,245,0.2);overflow:hidden;}.card-back{background:#111;display:flex;align-items:center;justify-content:center;}.card-back-pattern{width:88%;height:88%;border:1px solid rgba(245,245,245,0.15);border-radius:3px;display:flex;align-items:center;justify-content:center;position:relative;background:repeating-linear-gradient( 45deg,transparent,transparent 5px,rgba(255,255,255,0.03) 5px,rgba(255,255,255,0.03) 10px );}.card-back-pattern::before{content:'☽ ✦ ☾';color:rgba(245,245,245,0.18);font-size:0.85rem;letter-spacing:4px;text-align:center;position:absolute;}.card-face{transform:rotateY(180deg);background:#111;display:flex;flex-direction:column;}.card-img-area{flex:1;background:#1a1a1a;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;}.card-img-area img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%);}.card-placeholder{text-align:center;padding:8px;}.card-roman-numeral{font-family:'Cinzel',serif;font-size:1.3rem;color:var(--gray);display:block;margin-bottom:4px;}.card-symbol{font-size:1.8rem;display:block;color:var(--gray-dim);}.card-footer{padding:7px 5px;background:#0a0a0a;text-align:center;border-top:1px solid rgba(255,255,255,0.08);}.card-name-en{font-family:'Cinzel',serif;font-size:0.55rem;color:var(--gray-dim);letter-spacing:1px;display:block;}.card-name-jp{font-size:0.62rem;color:var(--white-dim);display:block;margin-top:2px;}.reversed-badge{position:absolute;top:5px;right:5px;font-size:0.5rem;background:rgba(245,245,245,0.12);color:var(--white-dim);padding:2px 5px;border-radius:2px;font-family:'Cinzel',serif;letter-spacing:1px;border:1px solid rgba(245,245,245,0.2);}.card-face.reversed .card-img-area img,.card-face.reversed .card-placeholder{transform:rotate(180deg);}.tarot-card:not(.revealed):hover{transform:translateY(-5px);transition:transform 0.2s ease;}.readings-area{display:flex;flex-direction:column;gap:20px;margin-bottom:36px;}.reading-card{display:none;background:rgba(18,18,18,0.85);border:1px solid var(--border);border-radius:3px;backdrop-filter:blur(8px);overflow:hidden;animation:slideIn 0.45s ease;}@keyframes slideIn{from{opacity:0;transform:translateX(-16px);}to{opacity:1;transform:translateX(0);}}.reading-card.visible{display:block;}.reading-card::before{content:'';display:block;height:1px;background:linear-gradient(90deg,transparent,rgba(245,245,245,0.3),transparent);}.reading-inner{padding:22px 28px 24px;}.reading-position{font-family:'Cinzel',serif;font-size:0.65rem;letter-spacing:4px;color:var(--gray);margin-bottom:6px;}.reading-card-name{font-family:'Shippori Mincho',serif;font-size:1.2rem;font-weight:500;letter-spacing:0.05em;color:var(--white);margin-bottom:4px;}.reading-reversed{font-size:0.72rem;color:var(--gray);margin-bottom:12px;font-family:'Cinzel',serif;letter-spacing:2px;}.reading-text{font-size:0.88rem;line-height:2;color:var(--white-dim);border-left:2px solid rgba(245,245,245,0.2);padding-left:16px;}.overall-section{display:none;margin-bottom:36px;}.overall-section.visible{display:block;animation:fadeIn 0.7s ease;}.overall-panel{background:rgba(18,18,18,0.9);border:1px solid var(--border);border-radius:3px;padding:32px;text-align:center;position:relative;overflow:hidden;}.overall-panel::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(245,245,245,0.5),transparent);}.overall-panel::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(245,245,245,0.5),transparent);}.overall-title{font-family:'Cinzel',serif;font-size:0.72rem;letter-spacing:6px;color:var(--gray);margin-bottom:18px;}.overall-text{font-family:'Shippori Mincho',serif;font-size:1.05rem;line-height:2.2;color:var(--white-dim);font-style:normal;letter-spacing:0.06em;max-width:600px;margin:0 auto;}.reset-btn{display:block;margin:0 auto;padding:12px 32px;background:transparent;border:1px solid rgba(245,245,245,0.2);color:var(--gray);font-family:'Cinzel',serif;font-size:0.75rem;letter-spacing:4px;cursor:pointer;transition:all 0.3s;}.reset-btn:hover{border-color:rgba(245,245,245,0.5);color:var(--white);}.click-hint{font-size:0.68rem;color:var(--gray-dim);letter-spacing:3px;font-family:'Cinzel',serif;text-align:center;animation:fadeHint 2s ease-in-out infinite;margin-bottom:10px;}@keyframes fadeHint{0%,100%{opacity:0.3}50%{opacity:0.9}}.loading-overlay{display:none;position:fixed;inset:0;background:rgba(13,13,13,0.9);z-index:100;align-items:center;justify-content:center;flex-direction:column;gap:22px;backdrop-filter:blur(6px);}.loading-overlay.visible{display:flex;}.loading-crystal{font-size:3.5rem;animation:pulse 1.5s ease-in-out infinite;}@keyframes pulse{0%,100%{transform:scale(1);filter:drop-shadow(0 0 6px rgba(255,255,255,0.2));}50%{transform:scale(1.1);filter:drop-shadow(0 0 20px rgba(255,255,255,0.4));}}.loading-text{font-family:'Cinzel',serif;font-size:0.85rem;letter-spacing:5px;color:var(--white-dim);animation:fadeHint 1.4s ease-in-out infinite;}footer{text-align:center;padding:36px 0 0;font-size:0.7rem;color:var(--gray-dim);letter-spacing:4px;font-family:'Cinzel',serif;opacity:0.5;}.footer-nav{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px 24px;padding:28px 0 20px;border-top:1px solid rgba(245,245,245,0.08);margin-top:0;}.footer-nav a{font-family:'Cinzel',serif;font-size:0.68rem;letter-spacing:3px;color:var(--gray);text-decoration:none;transition:color 0.25s;white-space:nowrap;}.footer-nav a:hover{color:var(--white-dim);}.footer-nav-sep{color:var(--gray-dim);opacity:0.4;font-size:0.6rem;}@media (max-width:480px){.footer-nav{gap:10px 16px;}.footer-nav-sep{display:none;}}.hero-image-wrap{width:100%;text-align:center;margin-bottom:0;position:relative;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;overflow:hidden;line-height:0;}.hero-image-wrap img{width:100%;max-height:520px;object-fit:cover;object-position:center top;display:block;mix-blend-mode:lighten;filter:contrast(1.05);}.hero-image-wrap::after{content:'';position:absolute;bottom:0;left:0;right:0;height:140px;background:linear-gradient(to bottom,transparent,var(--bg));pointer-events:none;}.banner-area{margin-bottom:0;padding:32px 0 0;position:relative;}.banner-area-title{font-family:'Cinzel',serif;font-size:0.65rem;letter-spacing:5px;color:var(--gray-dim);text-align:center;margin-bottom:16px;opacity:0.6;}.banner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}@media (max-width:600px){.banner-grid{grid-template-columns:1fr;max-width:320px;margin:0 auto;}}.banner-item{position:relative;aspect-ratio:1 / 1;border:1px solid rgba(245,245,245,0.15);border-radius:3px;overflow:hidden;background:rgba(22,22,22,0.8);display:block;text-decoration:none;transition:border-color 0.3s,box-shadow 0.3s;}.banner-item:hover{border-color:rgba(245,245,245,0.4);box-shadow:0 0 20px rgba(255,255,255,0.05);}.banner-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.4s ease;}.banner-item:hover img{transform:scale(1.04);}.banner-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;}.banner-placeholder-icon{font-size:1.8rem;opacity:0.2;}.banner-placeholder-text{font-family:'Cinzel',serif;font-size:0.6rem;letter-spacing:3px;color:var(--gray-dim);opacity:0.5;text-align:center;padding:0 12px;}.banner-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(245,245,245,0.15),transparent);margin:32px 0 0;}