:root{--primary-rose: #be123c;--primary-rose-hover: #9f1239;--primary-gold: #d97706;--parchment-bg: #fdf6e7;--parchment-border: #8b5a2b;--parchment-dark: #5c3818;--bg-glass: rgba(253, 246, 231, .94);--bg-glass-dark: rgba(43, 29, 14, .88);--border-glass: rgba(139, 90, 43, .35);--text-main: #3d2614;--text-muted: #78583c;--shadow-soft: 0 8px 24px rgba(0, 0, 0, .18);--radius-lg: 18px;--radius-md: 12px}*{box-sizing:border-box;margin:0;padding:0;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;overflow:hidden;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text-main);background:radial-gradient(circle at center,#2e1d0f,#150a04);display:flex;align-items:center;justify-content:center}#game-container{position:absolute;top:0;left:50%;transform:translate(-50%);width:100vw;max-width:480px;height:100vh;z-index:1;overflow:hidden;box-shadow:0 0 50px #000c,0 0 0 1px #8b5a2b66}#game-container canvas{width:100%!important;height:100%!important;display:block}#game-hud{position:absolute;top:14px;left:50%;transform:translate(-50%);width:calc(100% - 24px);max-width:480px;display:flex;justify-content:space-between;align-items:flex-start;z-index:10;pointer-events:none}.hud-left,.hud-right{display:flex;align-items:center;gap:10px;pointer-events:auto}.hud-crest{display:flex;align-items:center;gap:8px;padding:6px 14px;background:var(--bg-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid var(--parchment-border);border-radius:999px;box-shadow:var(--shadow-soft)}.crest-icon{font-size:1.2rem}.crest-text{display:flex;flex-direction:column}.crest-title{font-family:Playfair Display,serif;font-weight:700;font-size:.9rem;color:#881337}.crest-subtitle{font-size:.68rem;font-weight:600;color:var(--text-muted)}.quest-tracker{display:flex;flex-direction:column;gap:3px;padding:6px 12px;background:var(--bg-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid var(--parchment-border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);min-width:120px}.quest-info{display:flex;justify-content:space-between;font-size:.72rem;font-weight:700}.quest-label{color:var(--text-muted)}.quest-value{color:var(--primary-rose)}.quest-bar-bg{width:100%;height:5px;background:#e2d3be;border-radius:999px;overflow:hidden}.quest-bar-fill{height:100%;background:linear-gradient(90deg,#d97706,#be123c);border-radius:999px;transition:width .4s ease}.vintage-music-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 12px;background:#fff8eb;border:2px solid #8b5a2b;border-radius:10px;box-shadow:0 4px 10px #0003;cursor:pointer;transition:transform .2s,background .2s}.vintage-music-btn:hover{transform:scale(1.05);background:#fff}.music-icon{font-size:1.1rem;color:#be123c}.music-label{font-size:.62rem;font-weight:800;color:#5c3818;letter-spacing:.5px;margin-top:1px}.hud-circle-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;background:#fff8eb;border:2px solid #8b5a2b;border-radius:50%;box-shadow:var(--shadow-soft);cursor:pointer;transition:transform .2s}.hud-circle-btn:hover{transform:scale(1.08)}.minimap-wrapper{display:flex;flex-direction:column;align-items:center;padding:4px;background:#fff8eb;border:2px solid #8b5a2b;border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}#minimap-canvas{width:70px;height:70px;border-radius:8px;background:#e9dec9}.minimap-label{font-size:.6rem;font-weight:700;color:var(--parchment-dark);margin-top:1px}.rpg-bottom-bar{position:absolute;bottom:12px;left:50%;transform:translate(-50%);width:calc(100% - 24px);max-width:520px;background:#fffaf0;border:2.5px solid #8b5a2b;border-radius:16px;display:flex;align-items:center;justify-content:space-around;padding:6px 4px;box-shadow:0 8px 25px #00000059;z-index:20}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:10px;padding:6px 8px;cursor:pointer;transition:all .2s ease;min-width:58px}.nav-item:hover,.nav-item.active{background:#fde8c8;border-color:#d97706;transform:translateY(-2px)}.nav-icon{font-size:1.3rem;margin-bottom:2px}.nav-label{font-size:.6rem;font-weight:800;color:#5c3818;letter-spacing:.4px;text-align:center}.interaction-bubble-container{position:absolute;bottom:84px;left:50%;transform:translate(-50%);z-index:22;pointer-events:auto}.speech-bubble-btn{display:flex;align-items:center;gap:8px;background:#fffaf0;border:2px solid #8b5a2b;border-radius:14px;padding:8px 20px;font-weight:800;font-size:.85rem;color:#5c3818;box-shadow:0 6px 18px #00000040;cursor:pointer;transition:transform .2s,background .2s,border-color .2s;animation:floatBubble 2s infinite ease-in-out}.speech-bubble-btn:hover{transform:translateY(-3px);background:#fff;border-color:#be123c}.speech-bubble-btn.active{border-color:#be123c;background:#ffe4e6;color:#be123c}@keyframes floatBubble{0%{transform:translateY(0)}50%{transform:translateY(-4px)}to{transform:translateY(0)}}#mobile-controls{position:absolute;bottom:95px;left:50%;transform:translate(-50%);width:calc(100% - 24px);max-width:480px;display:flex;justify-content:space-between;align-items:flex-end;z-index:18;pointer-events:none}.joystick-wrapper{pointer-events:auto}.joystick-base{width:105px;height:105px;background:radial-gradient(circle,#2b1d0e,#140d06);border:3.5px solid #d97706;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px #00000080,inset 0 0 10px #000c;touch-action:none}.joystick-thumb{width:44px;height:44px;background:radial-gradient(circle at 35% 35%,#f59e0b,#92400e);border:2px solid #fef3c7;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #0006;pointer-events:none;transform:translate(0);will-change:transform}.joystick-cross{color:#fff;font-weight:900;font-size:1.1rem}.vintage-action-btn{width:68px;height:68px;border-radius:50%;background:radial-gradient(circle,#8b5a2bd9,#5c3818f2);border:3px solid #f59e0b;color:#fef3c7;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 6px 18px #0006;cursor:pointer;pointer-events:auto;transition:transform .2s,box-shadow .2s}.vintage-action-btn:active{transform:scale(.92)}.vintage-action-btn.active{box-shadow:0 0 20px #f59e0b,0 6px 18px #0006;animation:pulseGold 1.5s infinite}.action-letter{font-size:1.6rem;font-weight:900;line-height:1}.action-sub{font-size:.55rem;font-weight:800;letter-spacing:.5px}@keyframes pulseGold{0%{box-shadow:0 0 #f59e0bb3}70%{box-shadow:0 0 0 12px #f59e0b00}to{box-shadow:0 0 #f59e0b00}}.interact-badge{position:absolute;bottom:145px;left:50%;transform:translate(-50%) translateY(20px);opacity:0;pointer-events:none;display:flex;align-items:center;gap:10px;padding:10px 20px;background:var(--bg-glass-dark);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid #f59e0b;border-radius:999px;box-shadow:0 8px 20px #00000059;color:#fff;z-index:15;transition:opacity .3s ease,transform .3s cubic-bezier(.34,1.56,.64,1)}.interact-badge.visible{opacity:1;transform:translate(-50%) translateY(0)}.badge-icon{font-size:1.4rem}.badge-content{display:flex;flex-direction:column}.badge-key{font-size:.7rem;font-weight:800;color:#fbbf24}.badge-title{font-size:.9rem;font-weight:700}.desktop-controls-hint{position:absolute;bottom:74px;left:50%;transform:translate(-50%);background:var(--bg-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1.5px solid var(--parchment-border);padding:4px 14px;border-radius:999px;font-size:.72rem;color:var(--text-muted);box-shadow:var(--shadow-soft);z-index:10;pointer-events:none}@media (max-width: 640px){.desktop-controls-hint{display:none}}.char-select-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,#2b1d0ecc,#140d06f2),url(https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=1600&q=80) center/cover no-repeat;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;transition:opacity .6s ease,visibility .6s ease}.char-select-screen.fade-out{opacity:0;visibility:hidden;pointer-events:none}.char-select-card{width:100%;max-width:640px;background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:2px solid var(--parchment-border);border-radius:var(--radius-lg);box-shadow:0 25px 60px #00000073;padding:28px;text-align:center;display:flex;flex-direction:column;gap:18px;animation:cardIn .5s cubic-bezier(.16,1,.3,1)}@keyframes cardIn{0%{opacity:0;transform:translateY(25px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.select-header h1{font-family:Playfair Display,serif;font-size:2rem;color:#881337;margin-top:4px}.select-badge{font-size:.72rem;font-weight:800;letter-spacing:1.2px;color:var(--primary-rose);background:#fce7f3;padding:4px 12px;border-radius:999px;display:inline-block}.select-subtitle{font-size:.9rem;color:var(--text-muted);margin-top:2px}.characters-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:6px 0}.character-card{position:relative;background:#fffdf7;border:2.5px solid #d4b895;border-radius:var(--radius-md);padding:12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;transition:all .25s ease;box-shadow:0 4px 12px #00000014}.character-card:hover{transform:translateY(-3px);border-color:#b45309}.character-card.selected{border-color:#be123c;background:#fff;box-shadow:0 8px 24px #be123c40;transform:scale(1.02)}.canvas-preview-container{width:100%;height:190px;display:flex;align-items:center;justify-content:center;overflow:hidden}.card-info{margin-top:8px;display:flex;flex-direction:column;align-items:center;gap:3px}.char-tag{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:999px}.boy-tag{background:#e0f2fe;color:#0369a1}.girl-tag{background:#fce7f3;color:#be185d}.card-info h3{font-size:1.1rem;font-weight:700;color:#3d2614}.card-info p{font-size:.72rem;color:var(--text-muted);text-align:center}.check-mark{position:absolute;top:10px;right:10px;width:24px;height:24px;background:var(--primary-rose);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:800;opacity:0;transform:scale(.6);transition:all .2s cubic-bezier(.34,1.56,.64,1)}.character-card.selected .check-mark{opacity:1;transform:scale(1)}.btn-primary-large{padding:13px 32px;font-size:1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#d97706,#be123c);border:none;border-radius:999px;cursor:pointer;box-shadow:0 8px 20px #be123c59;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary-large:hover{transform:translateY(-2px);box-shadow:0 12px 25px #be123c73}.btn-start{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 8px 20px #05966959}.select-note{font-size:.78rem;color:var(--text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#140d0673;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;padding:18px;transition:opacity .3s ease}.modal-overlay.fade-out{opacity:0;pointer-events:none}.modal-card{position:relative;width:100%;max-width:600px;max-height:85vh;background:#fffcf5;border:2px solid var(--parchment-border);border-radius:var(--radius-lg);box-shadow:0 25px 60px #0006;overflow:hidden;display:flex;flex-direction:column;animation:cardIn .35s cubic-bezier(.16,1,.3,1)}.btn-close-modal{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--parchment-border);background:#fff8eb;color:#5c3818;font-size:1.3rem;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:background .2s,transform .2s}.btn-close-modal:hover{background:#fde8c8;transform:rotate(90deg)}.modal-card-content{padding:24px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d4b895 transparent}.modal-header{text-align:center;margin-bottom:18px}.modal-badge{font-size:.7rem;font-weight:800;letter-spacing:1px;color:var(--primary-rose);background:#ffe4e6;padding:3px 10px;border-radius:999px;display:inline-block;margin-bottom:4px}.modal-header h2{font-family:Playfair Display,serif;font-size:1.7rem;color:#881337}.modal-subtitle{font-size:.88rem;color:var(--text-muted)}.quote-text{font-style:italic;font-size:.9rem;line-height:1.6;color:#475569;background:#fff5f5;border-left:4px solid var(--primary-rose);padding:10px 14px;border-radius:0 var(--radius-md) var(--radius-md) 0;margin-bottom:14px}.welcome-box{font-size:.9rem;line-height:1.6;color:var(--text-main);margin-bottom:20px}.btn-primary{padding:11px 26px;font-size:.92rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#d97706,#be123c);border:none;border-radius:999px;cursor:pointer;text-decoration:none;display:inline-block;text-align:center;box-shadow:0 6px 18px #be123c4d;transition:transform .2s,box-shadow .2s}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 22px #be123c66}.full-width{width:100%}.couple-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}.profile-card{background:#fff;border:1.5px solid #e8d9c5;border-radius:var(--radius-md);padding:16px 12px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 4px 10px #0000000d}.avatar-circle{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;margin-bottom:8px}.groom-circle{background:#e0f2fe}.bride-circle{background:#fce7f3}.profile-card h3{font-size:1rem;font-weight:700;color:#881337;margin-bottom:3px}.profile-parents{font-size:.75rem;color:var(--text-muted);line-height:1.4;margin-bottom:8px}.profile-bio{font-size:.78rem;line-height:1.5;color:#334155;margin-bottom:10px}.social-link{font-size:.72rem;font-weight:700;color:var(--primary-rose);text-decoration:none}.event-detail-card{display:flex;align-items:center;gap:14px;background:#fff;border:1.5px solid #e8d9c5;border-radius:var(--radius-md);padding:12px 16px;margin-bottom:10px;box-shadow:0 4px 10px #0000000d}.event-icon{font-size:1.6rem}.event-info h4{font-size:.78rem;color:var(--text-muted);text-transform:uppercase}.event-info p{font-size:.88rem;color:var(--text-main)}.event-desc{font-size:.85rem;line-height:1.5;color:#475569;margin:14px 0}.rundown-box{background:#fff;border:1.5px solid #e8d9c5;border-radius:var(--radius-md);padding:14px;box-shadow:0 4px 10px #0000000d}.rundown-box h4{font-size:.85rem;color:#881337;margin-bottom:6px}.rundown-box ul{list-style:none;font-size:.82rem;line-height:1.8;color:#334155}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.gallery-item{position:relative;border-radius:var(--radius-md);overflow:hidden;height:150px;box-shadow:0 4px 10px #0000001a}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.gallery-item:hover img{transform:scale(1.08)}.gallery-caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000000bf);color:#fff;font-size:.68rem;font-weight:600;padding:6px;text-align:center}.timeline{display:flex;flex-direction:column;gap:14px;position:relative;padding-left:18px;border-left:2px dashed #d97706}.timeline-year{font-weight:800;font-size:.82rem;color:var(--primary-rose);margin-bottom:2px}.timeline-content{background:#fff;border:1.5px solid #e8d9c5;padding:10px 14px;border-radius:var(--radius-md)}.timeline-content h4{font-size:.9rem;color:#881337;margin-bottom:3px}.timeline-content p{font-size:.82rem;color:#475569;line-height:1.4}.rsvp-form{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:.8rem;font-weight:700;color:#5c3818}.form-group input,.form-group select,.form-group textarea{padding:9px 12px;border:1.5px solid #d4b895;border-radius:var(--radius-md);font-family:inherit;font-size:.88rem;outline:none;background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#be123c}.digital-gift-section{margin:20px 0;background:#fffbeb;border:1.5px solid #fef3c7;padding:14px;border-radius:var(--radius-md)}.digital-gift-section h4{font-size:.9rem;color:#92400e;margin-bottom:4px}.digital-gift-section p{font-size:.78rem;color:#78350f;margin-bottom:10px}.gift-card{background:#fff;border-radius:var(--radius-md);padding:10px 14px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;border:1px solid #fed7aa}.gift-bank{font-weight:800;color:#1e293b;font-size:.82rem}.gift-number{font-family:monospace;font-weight:700;color:var(--primary-rose);font-size:.9rem}.gift-name{font-size:.72rem;color:var(--text-muted)}.btn-copy{padding:5px 10px;font-size:.72rem;font-weight:700;border:1px solid #cbd5e1;background:#f8fafc;border-radius:999px;cursor:pointer}.wishes-list-container h4{font-size:.9rem;color:#881337;margin-bottom:8px}.wishes-list{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto}.wish-item{background:#fff;border:1px solid #e8d9c5;border-radius:var(--radius-md);padding:10px 14px}.wish-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px;font-size:.82rem}.wish-status{font-size:.68rem;font-weight:700;padding:2px 7px;border-radius:999px}.wish-status.attend{background:#dcfce7;color:#16a34a}.wish-status.absent{background:#fee2e2;color:#dc2626}.wish-text{font-size:.82rem;color:#334155;font-style:italic;line-height:1.4;margin-bottom:3px}.wish-time{font-size:.65rem;color:var(--text-muted)}@media (max-width: 640px){#game-hud{top:10px;left:10px;right:10px}.crest-text{display:none}.quest-tracker{min-width:90px;padding:4px 8px}.rpg-bottom-bar{bottom:8px;padding:4px 2px}.nav-item{padding:4px;min-width:48px}.nav-icon{font-size:1.15rem}.nav-label{font-size:.54rem}.interaction-bubble-container{bottom:74px}#mobile-controls{bottom:80px;left:10px;right:10px}.joystick-base{width:92px;height:92px}.joystick-thumb{width:38px;height:38px}.vintage-action-btn{width:60px;height:60px}.characters-grid{grid-template-columns:1fr;gap:10px}.canvas-preview-container{height:150px}.couple-cards{grid-template-columns:1fr}}
