*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #691800;--bg-main: #fff9d6;--sakura-pink: #f4a7b9;--gold: #b38b00;--indigo: #4a148c;--soft-white: #fffdf5;--glass-bg: rgba(255, 255, 255, .6);--glass-border: rgba(105, 24, 0, .12);--text-primary: #2c1810;--text-secondary: #5d4037;--bg-dark: #fff9d6;--prob-very-high: #1b5e20;--prob-high: #2e7d32;--prob-medium: #f57c00;--prob-low: #d84315;--prob-very-low: #c62828}html{scroll-behavior:smooth}body{font-family:Outfit,Prompt,Noto Sans JP,sans-serif;background:var(--bg-dark);color:var(--text-primary);min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;position:relative}input,button,textarea,select{font-family:inherit}.bg-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.gradient-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.35;animation:orbFloat 20s ease-in-out infinite alternate}.orb1{width:600px;height:600px;background:radial-gradient(circle,#69180022,#f4a7b922);top:-150px;left:-100px;animation-duration:18s}.orb2{width:500px;height:500px;background:radial-gradient(circle,#4a148c22,#b38b0022);bottom:-100px;right:-100px;animation-duration:23s;animation-delay:-5s}.orb3{width:350px;height:350px;background:radial-gradient(circle,#f5c84255,transparent);top:50%;left:50%;transform:translate(-50%,-50%);animation-duration:15s;animation-delay:-10s}@keyframes orbFloat{0%{transform:translate(0) scale(1)}to{transform:translate(40px,60px) scale(1.15)}}.container{position:relative;z-index:1;max-width:860px;width:100%;margin:auto;padding:60px 20px}.hero{text-align:center;margin-bottom:48px}.hero-badge{display:inline-block;background:linear-gradient(135deg,#c0392b66,#3d2c8d66);border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:8px 20px;border-radius:99px;font-size:.85rem;font-weight:600;letter-spacing:.05em;color:var(--primary);margin-bottom:24px;animation:fadeSlideDown .6s ease both}.hero-title{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:18px;animation:fadeSlideDown .7s ease both}.title-jp{font-family:Noto Sans JP,sans-serif;font-size:clamp(1.2rem,3vw,1.8rem);font-weight:700;background:linear-gradient(135deg,#f4a7b9,#c0392b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.15em;opacity:.85}.title-en{font-size:48px;font-weight:800;background:linear-gradient(135deg,#691800,#a03c23,#d35400);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.05;letter-spacing:-.02em}.hero-subtitle{font-size:1.1rem;color:var(--text-secondary);line-height:1.6;animation:fadeSlideDown .8s ease both;margin-bottom:28px}.route-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px;animation:fadeSlideDown .9s ease both}.route-scroll::-webkit-scrollbar{height:3px}.route-scroll::-webkit-scrollbar-track{background:#ffffff0d;border-radius:2px}.route-scroll::-webkit-scrollbar-thumb{background:#f4a7b966;border-radius:2px}.route-pills{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:14px 18px;background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;font-size:.82rem}.route-day{font-weight:700;color:var(--gold);font-size:.78rem}.route-place{color:var(--text-primary);font-weight:600}.route-sep{color:#69180066;font-size:.7rem}.input-card{animation:fadeSlideUp .8s ease both}.input-card-inner{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:36px;box-shadow:0 4px 24px #0000004d,inset 0 1px #ffffff1a}.input-label{display:flex;align-items:center;gap:10px;font-size:1.15rem;font-weight:600;color:var(--primary);margin-bottom:18px}.label-icon{font-size:1.4rem}.input-group{display:flex;gap:12px;margin-bottom:20px}.wish-input{flex:1;background:#fff9;border:1.5px solid rgba(105,24,0,.2);border-radius:14px;padding:16px 20px;font-size:1rem;color:var(--text-primary);outline:none;transition:border-color .25s,box-shadow .25s,background .25s}.wish-input::placeholder{color:#69180066}.wish-input:focus{border-color:var(--sakura-pink);background:#f4a7b914;box-shadow:0 0 0 3px #f4a7b926}.ask-btn{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#691800,#a03c23);border:none;border-radius:14px;padding:16px 28px;font-size:1rem;font-weight:700;color:#fff;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s;box-shadow:0 4px 20px #c0392b73;white-space:nowrap;position:relative;overflow:hidden}.ask-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#e84393,#c0392b);opacity:0;transition:opacity .3s}.ask-btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px #c0392b99}.ask-btn:hover:before{opacity:1}.ask-btn:active{transform:translateY(0)}.ask-btn .btn-text,.ask-btn .btn-icon{position:relative;z-index:1}.ask-btn.loading{pointer-events:none;opacity:.7}.input-hints{display:flex;flex-wrap:wrap;gap:8px}.hint-chip{background:#6918000d;border:1px solid rgba(105,24,0,.1);border-radius:99px;padding:6px 14px;font-size:.82rem;color:var(--text-secondary);cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s;-webkit-user-select:none;user-select:none}.hint-chip:hover{background:#6918001a;border-color:#69180066;color:var(--primary);transform:translateY(-1px)}.result-section{margin-top:32px;animation:fadeSlideUp .5s ease both}.result-card{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:40px;box-shadow:0 4px 24px #0000004d,inset 0 1px #ffffff1a;text-align:center;min-height:260px;display:flex;align-items:center;justify-content:center}.loading-state{display:flex;flex-direction:column;align-items:center;gap:20px}.torii-loader{display:flex;flex-direction:column;align-items:center;gap:12px}.torii-gate{width:56px;height:50px;position:relative;border-top:7px solid #c0392b;border-left:7px solid #c0392b;border-right:7px solid #c0392b;border-radius:4px 4px 0 0;animation:toriiBob 1.5s ease-in-out infinite}.torii-gate:before{content:"";position:absolute;top:-14px;left:-12px;right:-12px;height:7px;background:#c0392b;border-radius:3px}@keyframes toriiBob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.loading-dots{display:flex;gap:6px}.loading-dots span{width:8px;height:8px;border-radius:50%;background:var(--sakura-pink);animation:dotPulse 1.2s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.loading-text{color:var(--text-secondary);font-size:1rem;font-weight:500}.result-content{width:100%;display:flex;flex-direction:column;align-items:center;gap:24px}.result-item-name{font-size:.95rem;font-weight:600;color:var(--primary);opacity:.6;letter-spacing:.05em;text-transform:uppercase}.result-probability-badge{display:flex;flex-direction:column;align-items:center;gap:8px}.prob-emoji{font-size:3.5rem;line-height:1;animation:popIn .5s cubic-bezier(.34,1.56,.64,1) both}.prob-label{font-size:clamp(2rem,6vw,3.2rem);font-weight:800;line-height:1.1;letter-spacing:-.02em;animation:popIn .6s cubic-bezier(.34,1.56,.64,1) both}.prob-very-high .prob-label{color:var(--prob-very-high);text-shadow:0 0 30px rgba(74,222,128,.5)}.prob-high .prob-label{color:var(--prob-high);text-shadow:0 0 30px rgba(134,239,172,.4)}.prob-medium .prob-label{color:var(--prob-medium);text-shadow:0 0 30px rgba(251,191,36,.4)}.prob-low .prob-label{color:var(--prob-low);text-shadow:0 0 30px rgba(251,146,60,.4)}.prob-very-low .prob-label{color:var(--prob-very-low);text-shadow:0 0 30px rgba(248,113,113,.4)}.prob-score{display:flex;align-items:baseline;gap:2px;background:#6918000d;padding:4px 16px;border-radius:99px;margin-top:-4px;animation:popIn .7s cubic-bezier(.34,1.56,.64,1) both}.score-num{font-size:1.4rem;font-weight:700;color:var(--primary)}.score-percent{font-size:.85rem;font-weight:600;color:var(--primary);opacity:.7}@keyframes popIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.result-explanation{text-align:left;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px 28px;width:100%;animation:fadeSlideUp .7s ease both}.result-explanation ul{list-style:none;display:flex;flex-direction:column;gap:12px}.result-explanation li{display:flex;gap:12px;color:var(--text-primary);font-size:.95rem;line-height:1.6}.result-explanation li .bullet-icon{flex-shrink:0;font-size:1.1rem;margin-top:1px}.result-actions{display:flex;gap:12px;justify-content:center;width:100%}.ask-again-btn{display:flex;align-items:center;gap:8px;background:#6918000d;border:1.5px solid rgba(105,24,0,.15);border-radius:12px;padding:12px 24px;font-size:.95rem;font-weight:600;font-family:inherit;color:var(--primary);cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s;text-decoration:none}.ask-again-btn:hover{background:#6918001a;transform:translateY(-1px)}.contact-btn{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#691800,#a03c23);border:none;border-radius:12px;padding:12px 24px;font-size:.95rem;font-weight:600;font-family:inherit;color:#fff;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s;text-decoration:none}.contact-btn:hover{transform:translateY(-1px);box-shadow:0 4px 15px #6918004d}.error-state{display:flex;flex-direction:column;align-items:center;gap:16px}.error-icon{font-size:3rem}.error-msg{color:var(--text-secondary);font-size:1rem;max-width:380px;text-align:center;line-height:1.5}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#080514d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .3s ease both}.modal-overlay.hidden{display:none}.modal-card{background:#140c28f2;border:1px solid rgba(244,167,185,.3);border-radius:24px;padding:44px 40px;max-width:480px;width:100%;text-align:center;box-shadow:0 20px 60px #0009,0 0 0 1px #ffffff0d,inset 0 1px #ffffff1a;animation:modalSlideUp .4s cubic-bezier(.34,1.56,.64,1) both}@keyframes modalSlideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-icon{font-size:3.5rem;margin-bottom:16px;display:block}.modal-title{font-size:1.6rem;font-weight:800;margin-bottom:12px;color:var(--primary)}.modal-desc{color:var(--text-secondary);font-size:.92rem;line-height:1.6;margin-bottom:24px}.api-key-input{width:100%;background:#ffffff12;border:1.5px solid rgba(255,255,255,.15);border-radius:12px;padding:14px 18px;font-size:1rem;font-family:Outfit,monospace;color:#fff;outline:none;margin-bottom:20px;transition:border-color .25s,box-shadow .25s;text-align:center;letter-spacing:.05em}.api-key-input:focus{border-color:var(--sakura-pink);box-shadow:0 0 0 3px #f4a7b926}.modal-actions{display:flex;flex-direction:column;gap:12px;align-items:center}.get-key-link{color:var(--text-secondary);font-size:.85rem;text-decoration:underline;transition:color .2s}.get-key-link:hover{color:var(--sakura-pink)}.save-key-btn{width:100%;background:linear-gradient(135deg,#c0392b,#9b2335);border:none;border-radius:12px;padding:15px 28px;font-size:1rem;font-weight:700;font-family:Outfit,sans-serif;color:#fff;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 20px #c0392b73}.save-key-btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px #c0392b99}.site-footer{position:relative;z-index:1;text-align:center;padding:24px;color:#ffffff40;font-size:.82rem}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 600px){.input-group{flex-direction:column}.ask-btn{justify-content:center}.input-card-inner{padding:24px 20px}.result-card{padding:28px 20px}.modal-card{padding:32px 24px}.result-explanation{padding:18px 20px}}.shake-anim{animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}
