*,:after,:before{box-sizing:border-box;margin:0;padding:0;font-family:inherit}body,html{height:100%;font-family:Zen Kaku Gothic New,Hiragino Sans,sans-serif;background:#efedee;color:#111111;overflow-x:hidden}.site-header{display:flex;justify-content:center;padding:.75rem 1rem}.site-logo{height:32px;width:auto}.notice-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);justify-content:center;z-index:100;padding:1.5rem}.notice-dialog,.notice-overlay{display:flex;align-items:center}.notice-dialog{background:#ffffff;border:1px solid #cccccc;border-radius:16px;padding:2rem 1.75rem;flex-direction:column;gap:1.5rem;max-width:320px;width:100%}.notice-text{font-size:1rem;line-height:1.8;text-align:center;color:#111111}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.loading-screen{position:relative;display:flex;justify-content:center;align-items:center;height:100vh;width:calc(100% + 2rem);margin:-2rem -1rem;opacity:0;animation:fadeIn .6s ease both}.loading-screen.fading-out{animation:fadeOut .6s ease forwards}.loading-dog{position:absolute;bottom:10rem;left:50%;transform:translateX(-50%);width:150px}.loading-copy{font-size:1rem;font-weight:500;color:#111111;text-align:center;line-height:3;white-space:pre-line;letter-spacing:.04em}.start-screen{position:relative;flex-direction:column;justify-content:center;gap:3rem;height:100vh;width:calc(100% + 2rem);margin-top:-.2rem;margin-left:-1rem;margin-right:-1rem;background:#efedee;overflow:hidden;opacity:0;animation:fadeIn .5s ease both}.start-screen,.start-top{display:flex;align-items:center}.start-top{flex:0 1;flex-direction:column;gap:1.5rem}.start-copy{font-size:1.25rem;font-weight:500;color:#444444;text-align:center;line-height:1.8;letter-spacing:.04em;margin-bottom:1rem}.start-title{width:100%;max-width:120px}.start-visual{position:absolute;bottom:0;left:0;right:0;height:52vh;pointer-events:none}.start-dog-poster{position:absolute;bottom:0;left:-12px;width:50%;object-fit:contain;object-position:bottom left}.start-graphic-poster{position:absolute;bottom:7%;right:-70px;width:75%;transform:rotate(8deg);transform-origin:bottom right}.start-dog{width:100%;max-width:150px;object-fit:contain;display:block;margin:0 auto}.start-dog-caption{font-size:.75rem;color:#000000;text-align:center;margin-top:.75rem;font-weight:700}.start-bottom{display:flex;flex-direction:column;align-items:center}.start-btn{width:100%;max-width:260px;background:#efedee;border:1.5px solid #111111;border-radius:99px;color:#111111;margin-top:2rem}.container{display:flex;justify-content:center;align-items:flex-start;min-height:100vh;padding:.2rem 1rem}.waku-section{display:flex;flex-direction:column;align-items:center;width:100%;max-width:480px;gap:1rem}.waku-wrapper{width:100%;border:2px solid #888888;border-radius:20px;overflow:hidden}.btn.waku-cta{width:calc(100% - 4rem);margin-top:1.25rem}.screen{padding:2rem 1.25rem;width:100%;max-width:480px;display:flex;flex-direction:column;gap:1.25rem;opacity:0;animation:fadeIn .5s ease both}.screen--plain{background-image:none;padding-top:0}.title{font-size:2rem;font-weight:700;text-align:center;color:#111111}.title--sm{font-size:1.1rem}.subtitle{color:#444444;font-size:1rem}.subtitle,.word{text-align:center}.word{font-size:3rem;font-weight:600;color:#111111;letter-spacing:.05em;white-space:nowrap;font-family:Noto Sans,Zen Kaku Gothic New,Hiragino Sans,sans-serif}.word--sm{font-size:2rem}.step-label{text-align:center;font-size:.85rem;color:#888888;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.note{font-size:.9rem;color:#333333}.hint-text,.note{text-align:center}.hint-text{font-size:.85rem;color:#2d8a55}.error-text{font-size:.9rem;color:#c53030;background:rgba(229,62,62,.08);border:1px solid rgba(229,62,62,.4);border-radius:6px;padding:.75rem 1rem;line-height:1.5}.text-muted{color:#999999}.lang-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.lang-list li{background:#f5f5f5;border:1px solid #dddddd;border-radius:8px;padding:.6rem 1rem;font-size:.95rem;color:#111111}.intro-steps{padding-left:1.5rem;display:flex;flex-direction:column;gap:.5rem;margin-top:2rem;margin-bottom:2rem}.intro-steps li{font-size:1rem;line-height:1.6;color:#333333}.btn{display:block;width:100%;margin-left:auto;margin-right:auto;padding:.85rem 1.5rem;border:1px solid rgba(0,0,0,.15);border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:opacity .15s,transform .1s;text-align:center;background:rgba(0,0,0,.08);color:#111111}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.btn:not(:disabled):hover{background:rgba(0,0,0,.14);transform:translateY(-1px)}.btn:not(:disabled):active{transform:translateY(0)}.btn-primary{background:rgba(0,0,0,.08);border-color:rgba(0,0,0,.15);margin-top:0}.btn-secondary{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.12)}.btn-danger{background:rgba(229,62,62,.1);border-color:rgba(229,62,62,.4);color:#c53030}.btn-danger:not(:disabled):hover{background:rgba(229,62,62,.22)}.btn-warning{background:rgba(221,107,32,.1);border-color:rgba(221,107,32,.4);color:#c05621}.btn-warning:not(:disabled):hover{background:rgba(221,107,32,.22)}.about-dog,.record-dog{width:100%;max-width:160px;margin:0 auto;display:block}.about-dog{padding-top:2rem}.record-controls{display:flex;justify-content:center;gap:.75rem}.btn-round{width:120px;height:120px;border-radius:50%;padding:0;font-size:.95rem;font-weight:700;line-height:1.4}.recording-indicator{text-align:center;color:#e53e3e;font-weight:700;font-size:1rem;animation:blink 1s step-start infinite}@keyframes blink{50%{opacity:.3}}.preview-section{display:flex;flex-direction:column;gap:.5rem;align-items:center}.preview-section audio{width:100%}.score-section{text-align:center;background:rgba(45,138,85,.08);border:2px solid rgba(45,138,85,.4);border-radius:12px;padding:1.25rem}.score-label{font-size:.85rem;color:#2d8a55;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.score-value{font-size:3rem;font-weight:900;color:#111111;line-height:1.1}.score-unit{font-size:1.2rem;font-weight:600}.audio-section{gap:.75rem}.audio-section,.result-waiting{display:flex;flex-direction:column;align-items:center}.result-waiting{justify-content:center;min-height:100vh;gap:2rem}.result-waiting-dog{width:70vw;max-width:320px}.result-waiting-text{font-size:1.2rem;font-weight:700;color:#111111}.winner-section{border:2px solid #111111;border-radius:12px;padding:2.5rem 2.2rem;display:flex;flex-direction:column;gap:.75rem;align-items:center}.winner-label{font-size:.85rem;color:#444444;font-weight:600;letter-spacing:.06em;text-align:center}.winner-flags-row{display:grid;justify-content:center;grid-gap:.5rem;gap:.5rem;width:100%;max-width:360px;margin:1rem 0}.winner-flag-img{width:100%;height:auto;display:block}.winner-names{display:flex;flex-direction:column;align-items:center;gap:.25rem;font-weight:500}.winner-flag,.winner-name{font-size:2rem}.winner-name{color:#111111}.winner-score{color:#555555}.result-buttons{gap:.75rem;margin-top:1.5rem;width:100%}.result-buttons,.result-cta-area{display:flex;flex-direction:column;align-items:center}.result-cta-area{gap:.5rem;margin-top:1.25rem}.result-cta-dog{width:100%;max-width:140px}.result-link-label{font-size:.8rem;font-weight:600;color:#555555;text-align:center}.result-link-btn,.result-retry-btn{max-width:280px;margin:0 auto 2.25rem;text-decoration:none}.result-link-btn{background:rgba(229,62,62,.12);border-color:rgba(229,62,62,.4);color:#c53030}.result-retry-btn{margin-top:3rem}.winner-trivia{margin-top:1.5rem;font-size:.8rem;line-height:1.6;color:#444444;text-align:left;white-space:pre-wrap}.score-list{border:1px solid #dddddd;border-radius:8px;overflow:hidden}.score-list-title{padding:.75rem 1rem;font-size:.9rem;font-weight:600;background:#f5f5f5;border-bottom:1px solid #dddddd;color:#111111}.score-table{width:100%;border-collapse:collapse;font-size:.95rem}.score-table td,.score-table th{padding:.65rem 1rem;text-align:left;border-bottom:1px solid #eeeeee}.score-table th{background:#f9f9f9;font-weight:600;color:#666666;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.score-table td{color:#111111}.score-table tbody tr:last-child td{border-bottom:none}.row-winner{background:rgba(45,138,85,.06)}