@import"https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Noto+Sans+JP:wght@300;400;500&display=swap";:root{font-family:system-ui,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;min-width:320px;background-color:#0a0a0a}#root{width:100%}*{margin:0;padding:0;box-sizing:border-box}.shop-name{font-family:Cinzel,serif;font-size:3.5rem;font-weight:700;letter-spacing:.3em;color:#d4af37;text-shadow:0 0 20px rgba(212,175,55,.4),0 2px 4px rgba(0,0,0,.5);margin-bottom:.5rem}.tagline{font-size:1rem;color:#c9c9c9;letter-spacing:.2em;font-weight:300}@media(max-width:768px){.shop-name{font-size:2.5rem;letter-spacing:.15em}}.entrance{height:100vh;height:100dvh;background:#0a0a0a;display:flex;flex-direction:column;align-items:center;overflow:hidden;cursor:pointer}.entrance-title{flex-shrink:0;font-family:Playfair Display,serif;font-size:2rem;font-weight:400;color:#d4af37;margin:1rem 0 .3rem;letter-spacing:.1em;text-align:center}.entrance-tagline{flex-shrink:0;font-size:.8rem;color:#888;margin:0 0 .5rem;letter-spacing:.15em;text-align:center}.entrance-video-container{position:relative;width:100%;flex:1;min-height:0;overflow:hidden}.entrance-video{width:100%;height:100%;object-fit:cover}.entrance-text-left{position:absolute;bottom:30%;left:15%;display:flex;flex-direction:row-reverse;gap:1rem;font-family:Noto Sans JP,sans-serif;color:#fff;font-size:clamp(.9rem,3vw,1.3rem);letter-spacing:.15em;text-shadow:0 0 10px rgba(0,0,0,.8),0 2px 4px rgba(0,0,0,.9);pointer-events:none}.entrance-text-left p{margin:0;writing-mode:vertical-rl;text-orientation:mixed}.entrance-text-right{position:absolute;bottom:30%;right:25%;pointer-events:none}.entrance-text-right p{margin:0;writing-mode:vertical-rl;text-orientation:mixed;font-family:Noto Sans JP,sans-serif;font-size:clamp(.9rem,3vw,1.3rem);color:#fff;letter-spacing:.15em;text-shadow:0 0 10px rgba(255,255,255,.8),0 0 20px rgba(255,255,255,.5),0 0 30px rgba(255,255,255,.3);animation:flicker 2s ease-in-out infinite}@keyframes flicker{0%,to{opacity:1}50%{opacity:.4}}.entrance-disclaimer{flex-shrink:0;padding:.8rem 1rem;text-align:center;background:#000c;width:100%}.entrance-disclaimer p{font-family:Noto Sans JP,sans-serif;font-size:.75rem;color:#999;letter-spacing:.05em;margin:0}.entrance-legal-link{display:inline-block;margin-top:.5rem;font-family:Noto Sans JP,sans-serif;font-size:.7rem;color:#888;text-decoration:none}.entrance-legal-link:hover{color:#d4af37;text-decoration:underline}.login-page{position:fixed;top:0;left:0;width:100vw;height:100vh;overflow:hidden;display:flex;flex-direction:column;background:linear-gradient(180deg,#0a0a0a,#1a1a2e,#0a0a0a);font-family:Noto Sans JP,sans-serif}.login-header{flex-shrink:0;padding:2rem 1rem 1rem;text-align:center}.login-header .shop-name{font-family:Playfair Display,serif;font-size:2.5rem;font-weight:400;color:#d4af37;margin:0;letter-spacing:.1em}.login-header .tagline{font-size:.9rem;color:#888;margin:.5rem 0 0;letter-spacing:.2em}.login-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}.login-message{margin-bottom:2rem;text-align:center}.login-message p{font-size:1.1rem;color:#e0e0e0;margin:0;letter-spacing:.1em}.age-confirmation{margin-bottom:1.5rem;text-align:center}.age-checkbox-label{display:inline-flex;align-items:center;gap:.75rem;cursor:pointer;color:#e0e0e0;font-size:.95rem}.age-checkbox-label input[type=checkbox]{width:20px;height:20px;accent-color:#d4af37;cursor:pointer}.age-checkbox-label span{letter-spacing:.05em}.terms-link{color:#d4af37;text-decoration:underline;transition:color .3s ease}.terms-link:hover{color:#f0c040}.login-buttons{width:100%;max-width:320px}.login-page .social-login-btn{width:100%;padding:1rem 1.5rem;font-family:Noto Sans JP,sans-serif;font-size:1rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;margin-bottom:1rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.login-page .google-btn{background:#fff;color:#333}.login-page .google-btn:hover{background:#f0f0f0;transform:translateY(-2px);box-shadow:0 4px 12px #fff3}.login-page .line-btn{background:#06c755;color:#fff}.login-page .line-btn:hover{background:#05b34c;transform:translateY(-2px);box-shadow:0 4px 12px #06c7554d}.login-page .social-login-btn:active{transform:translateY(0)}.login-page .social-login-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.login-page .social-login-btn:disabled:hover{transform:none;box-shadow:none}.login-page .google-btn:disabled:hover{background:#fff}.login-page .line-btn:disabled:hover{background:#06c755}.login-page .guest-btn{background:linear-gradient(135deg,#d4af37,#b8941f);color:#1a1a2e;font-weight:600}.login-page .guest-btn:hover{background:linear-gradient(135deg,#e0c050,#d4af37);transform:translateY(-2px);box-shadow:0 4px 12px #d4af374d}.login-page .guest-btn:disabled{background:linear-gradient(135deg,#888,#666);color:#ccc}.login-page .guest-btn:disabled:hover{background:linear-gradient(135deg,#888,#666)}.login-divider{display:flex;align-items:center;margin:1rem 0;color:#666;font-size:.85rem}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#444}.login-divider span{padding:0 1rem}.login-form-embedded{width:100%;max-width:320px;margin:0 auto}.login-form-embedded .age-confirmation{margin-bottom:1.5rem}.login-form-embedded .login-buttons{width:100%}.login-form-embedded .back-btn{margin-top:1rem;width:100%}.login-page .back-btn{margin-top:1.5rem;padding:.75rem 2rem;font-family:Noto Sans JP,sans-serif;font-size:.9rem;color:#888;background:transparent;border:1px solid #444;border-radius:8px;cursor:pointer;transition:all .3s ease}.login-page .back-btn:hover{color:#fff;border-color:#666}.login-disclaimer{flex-shrink:0;padding:1rem;text-align:center;background:#00000080}.login-disclaimer p{font-size:.75rem;color:#666;letter-spacing:.05em;margin:0}.hostess-page{min-height:100vh;background:linear-gradient(180deg,#0a0a0a,#1a1a2e,#0a0a0a);color:#fff;font-family:Noto Sans JP,sans-serif}.auth-loading{display:flex;align-items:center;justify-content:center;height:100vh}.auth-loading p{color:#888;font-size:1rem;letter-spacing:.1em}.intro{text-align:center;padding:2rem 1rem}.intro h2{font-family:Cinzel,serif;font-size:1.8rem;color:#d4af37;letter-spacing:.2em;margin-bottom:1rem}.divider{display:flex;align-items:center;justify-content:center;gap:1rem}.divider:before,.divider:after{content:"";width:100px;height:1px;background:linear-gradient(90deg,transparent,#d4af37,transparent)}.diamond{color:#d4af37;font-size:.8rem}.hostess-grid{display:flex;justify-content:center;gap:2rem;padding:2rem;flex-wrap:wrap}.card-container{width:320px;height:520px;-webkit-perspective:1000px;perspective:1000px;cursor:pointer}.card-inner{position:relative;width:100%;height:100%;-webkit-transition:-webkit-transform .6s ease;transition:transform .6s ease;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.card-container.flipped .card-inner{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.card-front,.card-back{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:12px;background:linear-gradient(145deg,#1a1a2e,#0d0d1a);border:1px solid rgba(212,175,55,.3);box-shadow:0 10px 40px #00000080,inset 0 1px #d4af371a}.card-front{padding:1.5rem;-webkit-transform:rotateY(0deg);transform:rotateY(0)}.card-back{padding:1.5rem;-webkit-transform:rotateY(180deg);transform:rotateY(180deg);display:flex;flex-direction:column}@media(hover:hover){.card-container:hover .card-inner{box-shadow:0 15px 50px #0009,0 0 30px #d4af3726}}.video-frame{position:relative;border-radius:8px;overflow:hidden;border:2px solid rgba(212,175,55,.2);box-shadow:inset 0 0 20px #00000080;aspect-ratio:570 / 720}.locked-overlay{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#1a1a2e,#0d0d1a)}.locked-overlay span{font-family:Cinzel,serif;font-size:1.4rem;font-weight:700;color:#fff;letter-spacing:.15em;text-shadow:0 2px 8px rgba(0,0,0,.8)}.video-frame video{width:100%;height:100%;display:block;object-fit:cover}.hostess-info{text-align:center;padding-top:.5rem}.hostess-name{font-family:Cinzel,serif;font-size:1.5rem;color:#fff;letter-spacing:.15em;text-shadow:0 2px 4px rgba(0,0,0,.5)}.hostess-message{font-size:.95rem;color:#f0f0f0;margin-top:.5rem;margin-bottom:1rem;line-height:1.7;font-style:italic}.card-front-buttons{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem}.profile-btn{display:block;width:100%;padding:.4rem 1rem;font-size:.85rem;font-weight:600;letter-spacing:.1em;color:#d4af37;background:transparent;border:1px solid rgba(212,175,55,.6);border-radius:6px;cursor:pointer;transition:all .3s ease}.profile-btn:hover{background:#d4af371a;border-color:#d4af37}.card-front .nominate-btn{padding:.4rem 1rem;font-size:.85rem;letter-spacing:.1em;margin-top:0;border-radius:6px;border:1px solid transparent}.card-back .hostess-name{margin-top:.5rem;margin-bottom:.8rem;text-align:center}.back-section{margin-bottom:.8rem}.section-label{font-size:.85rem;font-weight:600;color:#d4af37;letter-spacing:.1em;margin-bottom:.3rem}.card-back .hostess-message{font-size:1rem;color:#f0f0f0;line-height:1.5;font-style:italic;margin:0}.personality-text{font-size:.95rem;line-height:1.6;color:#c9c9c9;text-align:left;flex:1;overflow-y:auto;margin:0}.nominate-btn{display:block;width:100%;margin-top:1.5rem;padding:.8rem 2rem;font-size:1.1rem;font-weight:600;letter-spacing:.2em;color:#0a0a0a;background:linear-gradient(135deg,#d4af37,#f0d060,#d4af37);border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #d4af3766}.nominate-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #d4af3799;background:linear-gradient(135deg,#e0c050,#f5e080,#e0c050)}.nominate-btn:active{transform:translateY(0)}.nominate-btn.locked{background:linear-gradient(135deg,#555,#777,#555);color:#999;cursor:not-allowed;box-shadow:none}.nominate-btn.locked:hover{transform:none;box-shadow:none;background:linear-gradient(135deg,#555,#777,#555)}@media(max-width:768px){.card-container{width:280px;height:460px}.hostess-grid{gap:1.5rem}}:root{--viewport-height: 100dvh;--viewport-offset-top: 0px}.chat-page{position:fixed;inset:0;overflow:hidden;background:#000;color:#fff;font-family:Noto Sans JP,sans-serif;height:100dvh;height:var(--viewport-height, 100dvh)}@supports not (height: 100dvh){.chat-page{height:100vh;height:var(--viewport-height, 100vh)}}.chat-page .auth-loading{display:flex;align-items:center;justify-content:center;height:100%}.chat-page .auth-loading p{color:#888;font-size:1rem;letter-spacing:.1em}.video-background{position:fixed;top:56px;left:0;width:100%;height:calc(100lvh - 56px);z-index:0;display:flex;align-items:flex-start;justify-content:center;background:#000;cursor:pointer}@supports not (height: 100lvh){.video-background{height:calc(100vh - 56px)}}.video-background video{width:100%;height:100%;object-fit:contain;object-position:top center}.video-placeholder{width:100%;height:100%;display:flex;align-items:flex-start;justify-content:center;padding-top:35%;background:#1e1e28cc}.person-icon{font-size:5rem;opacity:.4}.chat-overlay{position:fixed;top:0;left:0;right:0;height:var(--viewport-height, 100dvh);z-index:1;display:flex;flex-direction:column;pointer-events:none;transition:height .15s ease-out}@supports not (height: 100dvh){.chat-overlay{height:var(--viewport-height, 100vh)}}.chat-overlay>*{pointer-events:auto}.slide-menu-backdrop{position:fixed;inset:0;background:#00000080;z-index:99}.slide-menu{position:fixed;top:0;left:0;width:40%;height:100%;background:linear-gradient(180deg,#0a0a14fa,#141428fa);border-right:1px solid rgba(212,175,55,.3);z-index:100;transform:translate(-100%);transition:transform .3s ease-out;pointer-events:auto}.slide-menu.open{transform:translate(0)}.slide-menu-content{padding:1.5rem 1rem;height:100%;overflow-y:auto;display:flex;flex-direction:column}.slide-menu-content h3{font-family:Cinzel,serif;color:#d4af37;font-size:1.1rem;margin:0 0 1.5rem;padding-bottom:.75rem;border-bottom:1px solid rgba(212,175,55,.3);letter-spacing:.1em}.menu-user-info{display:flex;align-items:center;gap:.75rem;padding:1rem .5rem;border-bottom:1px solid rgba(212,175,55,.3)}.menu-user-picture{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid rgba(212,175,55,.5)}.menu-user-name{font-family:Noto Sans JP,sans-serif;font-size:1rem;color:#d4af37;letter-spacing:.05em}.menu-rank{font-family:Noto Sans JP,sans-serif;padding:.75rem .5rem;cursor:pointer;transition:color .2s ease}.menu-rank:hover{color:#d4af37}.rank-title{font-size:.85rem;color:#f0f0f0;margin-bottom:.25rem}.rank-value-display{font-size:1rem;font-weight:600;color:#d4af37;text-align:right}.rank-progress{margin-top:.5rem}.rank-progress-bar{width:100%;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;border:1px solid rgba(212,175,55,.2)}.rank-progress-fill{height:100%;background:linear-gradient(90deg,#d4af37,#f0d060);border-radius:3px;transition:width .3s ease}.rank-progress-text{font-size:.7rem;color:#999;margin-top:.25rem;text-align:right}.rank-max-text{font-size:.75rem;color:#d4af37;text-align:right;margin-top:.25rem}.menu-charm-points{font-family:Noto Sans JP,sans-serif;padding:.75rem .5rem;margin-bottom:1rem;cursor:pointer;transition:color .2s ease}.menu-charm-points:hover{color:#d4af37}.charm-title{font-size:.85rem;color:#f0f0f0;margin-bottom:.25rem}.charm-value-display{font-size:1rem;font-weight:600;color:#d4af37;text-align:right}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;font-size:.7rem;font-weight:600;color:#0a0a0a;background:#d4af37cc;border-radius:50%;vertical-align:middle}.popup-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.popup-box{background:linear-gradient(180deg,#1a1a2e,#0a0a0a);border:1px solid rgba(212,175,55,.5);border-radius:12px;padding:1.5rem;max-width:300px;text-align:center}.popup-box p{margin:0 0 .75rem;font-family:Noto Sans JP,sans-serif;font-size:.9rem;color:#f0f0f0;line-height:1.6;white-space:pre-line}.popup-box p:last-child{margin-bottom:0}.popup-box .charm-value{font-size:1.1rem;font-weight:600;color:#d4af37}.confirm-popup{max-width:320px}.confirm-buttons{display:flex;gap:1rem;margin-top:1.5rem;justify-content:center}.confirm-cancel-btn,.confirm-ok-btn{padding:.6rem 1.5rem;border-radius:6px;font-family:Noto Sans JP,sans-serif;font-size:.9rem;cursor:pointer;transition:all .2s ease}.confirm-cancel-btn{background:transparent;border:1px solid #666;color:#aaa}.confirm-cancel-btn:hover{border-color:#888;color:#fff}.confirm-ok-btn{background:#d4af37;border:none;color:#000;font-weight:500}.confirm-ok-btn:hover{background:#e5c048}.confirm-ok-btn:disabled{background:#666;cursor:not-allowed}.back-confirm-popup{max-width:340px;padding:1.5rem}.back-confirm-title{font-size:1.1rem;color:#fff;margin:0 0 .5rem;text-align:center}.back-confirm-subtitle{font-size:.9rem;color:#888;margin:0 0 1.25rem;text-align:center}.back-options{display:flex;flex-direction:column;gap:.75rem}.back-option-btn{display:flex;flex-direction:column;align-items:flex-start;padding:.875rem 1rem;background:#ffffff0d;border:1px solid rgba(212,175,55,.3);border-radius:8px;cursor:pointer;transition:all .2s ease;text-align:left}.back-option-btn:hover{background:#d4af371a;border-color:#d4af37}.back-option-btn .option-title{font-family:Noto Sans JP,sans-serif;font-size:.95rem;font-weight:500;color:#fff}.back-option-btn .option-desc{font-family:Noto Sans JP,sans-serif;font-size:.8rem;color:#888;margin-top:.25rem}.back-option-btn.cancel-option{background:transparent;border-color:#444}.back-option-btn.cancel-option:hover{border-color:#666;background:#ffffff0d}.summarizing-overlay{background:#000000e6}.summarizing-popup{max-width:300px;text-align:center}.summarizing-popup p{margin:.5rem 0}.summarizing-subtitle{font-size:.85rem;color:#888}.summarizing-spinner{width:40px;height:40px;margin:0 auto 1rem;border:3px solid rgba(212,175,55,.3);border-top-color:#d4af37;border-radius:50%;animation:spin 1s linear infinite}.display-name-popup{max-width:320px}.display-name-input{width:100%;padding:.75rem 1rem;margin-top:1rem;font-family:Noto Sans JP,sans-serif;font-size:1rem;background:#ffffff1a;border:1px solid rgba(212,175,55,.5);border-radius:8px;color:#fff;text-align:center;box-sizing:border-box}.display-name-input::placeholder{color:#888}.display-name-input:focus{outline:none;border-color:#d4af37}.overlay-page{position:fixed;inset:0;background:linear-gradient(180deg,#0a0a0a,#1a1a2e,#0a0a0a);z-index:150;display:flex;flex-direction:column}.overlay-page-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid rgba(212,175,55,.3)}.overlay-page-header h2{font-family:Cinzel,serif;font-size:1.2rem;color:#d4af37;margin:0;letter-spacing:.1em}.close-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#0006;border:1px solid rgba(212,175,55,.5);border-radius:50%;color:#d4af37;font-size:1rem;cursor:pointer;transition:all .3s ease}.close-btn:hover{background:#d4af3733;border-color:#d4af37}.overlay-page-content{flex:1;padding:2rem 1rem;overflow-y:auto}.overlay-page-content p{font-family:Noto Sans JP,sans-serif;font-size:1rem;color:#999;text-align:center}.contact-form{max-width:400px;margin:0 auto}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-family:Noto Sans JP,sans-serif;font-size:.9rem;color:#d4af37;margin-bottom:.5rem}.form-input{width:100%;padding:.75rem 1rem;font-family:Noto Sans JP,sans-serif;font-size:1rem;color:#fff;background:#ffffff1a;border:1px solid rgba(212,175,55,.3);border-radius:8px;outline:none;transition:border-color .3s ease;box-sizing:border-box}.form-input:focus{border-color:#d4af37}.form-input::placeholder{color:#666}.form-textarea{width:100%;padding:.75rem 1rem;font-family:Noto Sans JP,sans-serif;font-size:1rem;color:#fff;background:#ffffff1a;border:1px solid rgba(212,175,55,.3);border-radius:8px;outline:none;resize:vertical;min-height:120px;transition:border-color .3s ease;box-sizing:border-box}.form-textarea:focus{border-color:#d4af37}.form-textarea::placeholder{color:#666}.form-submit-btn{width:100%;padding:.85rem 1rem;font-family:Noto Sans JP,sans-serif;font-size:1rem;font-weight:600;color:#0a0a0a;background:linear-gradient(135deg,#d4af37,#f0d060,#d4af37);border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;margin-top:.5rem}.form-submit-btn:hover{background:linear-gradient(135deg,#e0c050,#f5e080,#e0c050)}.form-submit-btn:active{transform:translateY(1px)}.form-submit-btn:disabled{opacity:.6;cursor:not-allowed}.form-cancel-btn:disabled{opacity:.6;cursor:not-allowed}.form-input:disabled,.form-textarea:disabled{opacity:.6;cursor:not-allowed}.contact-success{text-align:center;padding:2rem 1rem}.contact-success p{margin:0 0 .5rem;font-size:1rem;color:#e0e0e0;line-height:1.6}.contact-success .form-submit-btn{margin-top:1.5rem;max-width:200px}.contact-error{padding:.75rem 1rem;margin-bottom:1rem;background:#dc354526;border:1px solid rgba(220,53,69,.5);border-radius:8px;color:#ff6b6b;font-size:.9rem;text-align:center}.settings-form{max-width:400px;margin:0 auto}.input-with-suffix{display:flex;align-items:center;gap:.5rem}.input-with-suffix .form-input{flex:1}.input-suffix{font-size:1rem;color:#d4af37;font-weight:500}.optional-label{font-size:.75rem;color:#888;font-weight:400}.birthday-selects{display:flex;gap:.5rem}.form-select{flex:1;padding:.75rem .5rem;font-family:Noto Sans JP,sans-serif;font-size:.9rem;color:#fff;background:#ffffff1a;border:1px solid rgba(212,175,55,.3);border-radius:8px;outline:none;cursor:pointer;transition:border-color .3s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23d4af37' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center}.form-select:focus{border-color:#d4af37}.form-select option{background:#1a1a2e;color:#fff}.form-buttons{display:flex;gap:.75rem;margin-top:1.5rem}.form-cancel-btn{flex:1;padding:.85rem 1rem;font-family:Noto Sans JP,sans-serif;font-size:1rem;font-weight:500;color:#f0f0f0;background:#ffffff1a;border:1px solid rgba(255,255,255,.3);border-radius:8px;cursor:pointer;transition:all .3s ease}.form-cancel-btn:hover{background:#fff3;border-color:#ffffff80}.form-cancel-btn:active{transform:translateY(1px)}.form-buttons .form-submit-btn{flex:1;margin-top:0}.charge-content{max-width:400px;margin:0 auto}.current-balance{text-align:center;font-size:1rem;color:#d4af37;margin-bottom:1.5rem}.package-list{display:flex;flex-direction:column;gap:1.25rem}.package-card{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem 1.5rem;background:#ffffff0d;border:1px solid rgba(212,175,55,.3);border-radius:12px;cursor:pointer;transition:all .3s ease}.package-card:hover{background:#d4af371a;border-color:#d4af37;transform:translateY(-2px)}.package-card .package-name{font-size:1.2rem;font-weight:600;color:#fff}.package-card .package-points{font-size:1rem;color:#d4af37}.package-card .package-price{font-size:1.1rem;font-weight:600;color:#f0c040;margin-top:.25rem}.tokusho-link{display:block;text-align:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #333;color:#888;font-size:.85rem;text-decoration:none}.tokusho-link:hover{color:#d4af37;text-decoration:underline}.payment-form{display:flex;flex-direction:column;gap:1rem}.selected-package{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#d4af3726;border:1px solid #d4af37;border-radius:8px}.selected-package .package-name{font-size:1.1rem;font-weight:600;color:#fff}.selected-package .package-details{font-size:.9rem;color:#d4af37}.change-package-btn{padding:.5rem 1rem;font-family:Noto Sans JP,sans-serif;font-size:.85rem;color:#888;background:transparent;border:1px solid #444;border-radius:6px;cursor:pointer;transition:all .3s ease;align-self:flex-start}.change-package-btn:hover{color:#fff;border-color:#666}.checkout-form{display:flex;flex-direction:column;gap:1rem;padding-bottom:350px}.charge-content{scroll-padding-bottom:300px}.stripe-elements-wrapper{scroll-margin-top:20px}.payment-submit-btn{width:100%;padding:1rem;font-family:Noto Sans JP,sans-serif;font-size:1rem;font-weight:600;color:#0a0a0a;background:linear-gradient(135deg,#d4af37,#f0d060,#d4af37);border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;margin-top:.5rem}.payment-submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#e0c050,#f5e080,#e0c050)}.payment-submit-btn:disabled{opacity:.6;cursor:not-allowed}.payment-error{padding:.75rem 1rem;background:#dc354526;border:1px solid rgba(220,53,69,.5);border-radius:8px;color:#ff6b6b;font-size:.9rem;text-align:center}.payment-loading{text-align:center;color:#888;padding:2rem}.payment-success{text-align:center;padding:2rem 1rem}.payment-success .success-icon{width:60px;height:60px;margin:0 auto 1rem;background:linear-gradient(135deg,#d4af37,#f0d060);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:#0a0a0a}.payment-success p{margin:.5rem 0;color:#e0e0e0}.payment-success .added-points{font-size:1.5rem;font-weight:600;color:#d4af37}.payment-success .new-balance{font-size:1rem;color:#888;margin-bottom:1.5rem}.payment-success .form-submit-btn{max-width:200px;margin:0 auto}.payment-confirming{text-align:center;padding:3rem 1rem}.payment-confirming .confirming-spinner{width:50px;height:50px;margin:0 auto 1.5rem;border:3px solid rgba(212,175,55,.2);border-top-color:#d4af37;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.payment-confirming p{color:#e0e0e0;font-size:1.1rem}.login-form{max-width:400px;margin:0 auto}.login-divider{display:flex;align-items:center;margin:1.5rem 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#fff3}.login-divider span{padding:0 1rem;font-size:.85rem;color:#888}.social-login-btn{width:100%;padding:.85rem 1rem;font-family:Noto Sans JP,sans-serif;font-size:.95rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;margin-bottom:.75rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.google-btn{background:#fff;color:#333}.google-btn:hover{background:#f0f0f0}.line-btn{background:#06c755;color:#fff}.line-btn:hover{background:#05b34c}.social-login-btn:active{transform:translateY(1px)}.social-login-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.social-login-btn:disabled:hover{transform:none}.login-cancel-btn{width:100%;margin-top:.75rem}.guest-btn{background:linear-gradient(135deg,#d4af37,#b8941f);color:#1a1a2e;font-weight:600}.guest-btn:hover{background:linear-gradient(135deg,#e0c050,#d4af37)}.guest-btn:disabled{background:linear-gradient(135deg,#666,#444);color:#aaa;cursor:not-allowed}.guest-upgrade-info{background:#d4af371a;border:1px solid rgba(212,175,55,.3);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.guest-upgrade-info p{margin:0 0 .5rem;color:#d4af37;font-size:.9rem}.guest-upgrade-info ul{margin:0;padding-left:1.5rem}.guest-upgrade-info li{color:#e0e0e0;font-size:.85rem;margin-bottom:.25rem}.login-option-btn{border:1px solid #d4af37!important;background:#d4af371a!important}.login-option-btn .option-title{color:#d4af37}.menu-items{flex:1;padding:.5rem 0}.menu-item{font-family:Noto Sans JP,sans-serif;font-size:.95rem;color:#f0f0f0;padding:.75rem .5rem;cursor:pointer;transition:all .2s ease;border-radius:6px}.menu-item:hover{color:#d4af37;background:#d4af371a}.chat-menu{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:linear-gradient(to bottom,rgba(0,0,0,.7) 0%,transparent 100%);flex-shrink:0}.menu-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e1e28e6,#0f0f19f2);border:1px solid rgba(212,175,55,.4);border-radius:50%;color:#d4af37;font-size:1.2rem;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0006,inset 0 1px #ffffff0d}.menu-btn:hover{background:linear-gradient(135deg,#d4af3733,#d4af371a);border-color:#d4af37;box-shadow:0 2px 12px #d4af374d,inset 0 1px #ffffff1a}.menu-btn:active{transform:scale(.95)}.back-btn span{display:block;width:10px;height:10px;border-left:2px solid #d4af37;border-bottom:2px solid #d4af37;transform:rotate(45deg) translate(2px);transition:border-color .3s ease}.back-btn:hover span{border-color:#f0d060}.chat-hostess-name{font-family:Cinzel,serif;font-size:1.2rem;color:#d4af37;letter-spacing:.1em;margin:0;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.8)}.thirst-gauge{position:fixed;top:100px;right:1rem;z-index:2;pointer-events:auto;cursor:pointer}.thirst-gauge.empty{animation:flicker 1s ease-in-out infinite}@keyframes flicker{0%,to{opacity:1}50%{opacity:.3}}.wine-glass{display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.glass-bowl{width:40px;height:50px;border:2px solid rgba(255,255,255,.6);border-radius:0 0 50% 50%/0 0 100% 100%;position:relative;background:#0003;overflow:hidden;isolation:isolate}.wine-fill{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,#8b0000,#dc143c,#ff6b6b);transition:height .3s ease}.glass-stem{width:4px;height:20px;background:#ffffff80}.glass-base{width:30px;height:4px;background:#fff9;border-radius:2px}.chat-spacer{flex:1;pointer-events:none}.chat-bottom{background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.6) 60%,transparent 100%);padding:2rem 1rem 1rem}.conversation-display{margin-bottom:.8rem}.messages-container{padding:.8rem 1rem;border-radius:12px;background:#ffffff1a;border:1px solid rgba(212,175,55,.2);max-height:200px;overflow-y:auto}.message{margin-bottom:.8rem}.message:last-child{margin-bottom:0}.message.empty{text-align:center}.message-sender{display:block;font-size:.75rem;color:#d4af37;margin-bottom:.4rem;letter-spacing:.05em}.message.hostess .message-sender{color:#ff6b9d}.message.system{text-align:center;opacity:.8}.message.system p{color:gold;font-size:.85rem;font-style:italic}.message.hostess.streaming .message-sender:after{content:" ...";animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.message p{margin:0;font-size:.95rem;line-height:1.5;color:#f0f0f0;white-space:pre-wrap;word-break:break-word;width:100%;text-align:left}.message.empty p{color:#999;font-size:.9rem;text-align:center}.chat-input-area{display:flex;gap:.6rem;align-items:flex-end}.chat-input{flex:1;padding:.7rem 1rem;font-size:16px;font-family:Noto Sans JP,sans-serif;color:#fff;background:#ffffff26;border:1px solid rgba(212,175,55,.3);border-radius:12px;outline:none;transition:border-color .3s ease;resize:none;min-height:42px;max-height:100px;line-height:1.4}.chat-input::placeholder{color:#888}.chat-input:focus{border-color:#d4af37;background:#fff3}.send-btn{padding:.7rem 1.2rem;font-size:1rem;font-weight:600;letter-spacing:.1em;color:#0a0a0a;background:linear-gradient(135deg,#d4af37,#f0d060,#d4af37);border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;white-space:nowrap;min-height:42px}.send-btn:hover{background:linear-gradient(135deg,#e0c050,#f5e080,#e0c050)}.send-btn:active{transform:translateY(1px)}@media screen and (orientation:landscape)and (min-width:600px)and (min-height:320px){.video-background{position:fixed;top:0;left:0;width:50%;height:100lvh}.video-background video{object-fit:contain}.chat-overlay{position:fixed;left:50%;right:0;top:0;height:var(--viewport-height, 100dvh);background:linear-gradient(180deg,#0a0a0a,#1a1a2e,#0a0a0a)}.thirst-gauge{position:fixed;left:calc(50% - 50px);top:80px;transform:none;right:auto}.chat-bottom{background:transparent;padding:1rem}.chat-spacer{flex:1}.conversation-display{flex:1;display:flex;flex-direction:column}.messages-container{flex:1;max-height:none}}@media(max-width:480px)and (orientation:portrait){.chat-menu{padding:.5rem .8rem}.menu-btn{width:36px;height:36px;font-size:1rem}.chat-hostess-name{font-size:1rem}.chat-input{padding:.6rem .8rem}.send-btn{padding:.6rem 1rem}}.is-android .chat-page{min-height:var(--viewport-height, 100dvh);max-height:var(--viewport-height, 100dvh)}.is-android .chat-overlay{transition:height .2s ease-out}.is-android.keyboard-open .chat-overlay{overflow:visible;contain:none}.is-android .chat-bottom{flex-shrink:0;overflow:visible;padding:1rem}.is-android .messages-container{max-height:200px}.is-android .chat-input-area{flex-shrink:0;display:flex;width:100%}.is-android .chat-input{flex:1;min-width:0}.is-android .send-btn{flex-shrink:0}.is-android.keyboard-open .chat-bottom{background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.6) 60%,transparent 100%)}.is-android.keyboard-open .chat-input-area{gap:.6rem}.terms-page{min-height:100vh;background:linear-gradient(180deg,#0a0a0a,#1a1a2e,#0a0a0a);font-family:Noto Sans JP,sans-serif;color:#e0e0e0}.terms-header{position:sticky;top:0;padding:1rem;background:#0a0a0af2;border-bottom:1px solid #333;z-index:10}.terms-header .back-btn{padding:.5rem 1rem;font-family:Noto Sans JP,sans-serif;font-size:.9rem;color:#d4af37;background:transparent;border:1px solid #d4af37;border-radius:6px;cursor:pointer;transition:all .3s ease}.terms-header .back-btn:hover{background:#d4af371a}.terms-content{max-width:800px;margin:0 auto;padding:2rem 1.5rem 4rem;line-height:1.8}.terms-content h1{font-size:1.8rem;color:#d4af37;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid #d4af37}.terms-content h2{font-size:1.2rem;color:#fff;margin-top:2rem;margin-bottom:1rem}.terms-content p{margin:.5rem 0;font-size:.95rem}.terms-content strong{color:#f0c040}.terms-content hr{border:none;border-top:1px solid #444;margin:2rem 0}.terms-content br{display:block;content:"";margin-top:.5rem}.tokusho-table{width:100%;border-collapse:collapse;margin-top:1.5rem}.tokusho-table th,.tokusho-table td{padding:1rem;text-align:left;border-bottom:1px solid #333;font-size:.95rem}.tokusho-table th{width:35%;color:#d4af37;font-weight:500;vertical-align:top;background:#d4af370d}.tokusho-table td{color:#e0e0e0}.tokusho-table tr:last-child th,.tokusho-table tr:last-child td{border-bottom:none}@media(max-width:600px){.tokusho-table th,.tokusho-table td{display:block;width:100%;padding:.75rem 0}.tokusho-table th{padding-bottom:.25rem;border-bottom:none}.tokusho-table tr{display:block;border-bottom:1px solid #333;padding:.5rem 0}.tokusho-table tr:last-child{border-bottom:none}}
