*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;font-family:Lora,Georgia,serif;color:#2b1f12}body{min-height:100vh;min-height:100dvh;background:radial-gradient(ellipse at 50% 60%,transparent 55%,rgba(0,0,0,.55) 100%),#07090a url(/bridge.svg?v=3) bottom /cover no-repeat fixed;overflow-x:hidden;overflow-y:auto}#root{width:100%;height:100%}.app{position:relative;width:100%;height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column;align-items:center;padding:28px 16px 24px}.troll-layer{position:fixed;bottom:2vh;left:1vw;height:clamp(280px,50vh,560px);width:auto;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2;filter:drop-shadow(0 14px 22px rgba(0,0,0,.6))}.page-header{position:relative;z-index:4;display:flex;flex-direction:column;align-items:center;gap:4px;flex:0 0 auto;width:100%;pointer-events:none}.page-header>*{pointer-events:auto}.logo{width:min(660px,78vw);height:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none;filter:drop-shadow(0 6px 16px rgba(0,0,0,.7))}.help-link{font-family:Lora,serif;font-style:italic;font-size:20px;color:#e0c178;text-decoration:underline;text-underline-offset:4px;-webkit-text-decoration-color:rgba(224,193,120,.55);text-decoration-color:rgba(224,193,120,.55);text-decoration-thickness:1px;text-shadow:0 2px 0 rgba(0,0,0,.7),0 0 16px rgba(0,0,0,.7);background:transparent;border:0;cursor:pointer;padding:4px 18px;letter-spacing:.3px}.help-link:hover{color:#f4d27a}.help-tooltip{position:relative;align-self:center;margin-top:6px;z-index:1;background-image:linear-gradient(180deg,#fbf3d8,#f1e1b5 50%,#e6d098);border:1.5px solid rgba(120,70,20,.55);border-radius:22px;padding:14px 38px 12px 22px;color:#2b1f12;font-size:18px;line-height:1.32;text-align:center;font-family:Lora,serif;max-width:520px;box-shadow:0 8px 22px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.7);animation:tooltipIn .32s cubic-bezier(.2,.9,.3,1.3) both}.help-tooltip:after{content:"";position:absolute;top:-10px;left:50%;transform:translateX(-50%) rotate(45deg);width:18px;height:18px;background:#f8edcb;border-left:1.5px solid rgba(120,70,20,.55);border-top:1.5px solid rgba(120,70,20,.55);z-index:-1}.help-tooltip .close{position:absolute;right:4px;top:2px;background:transparent;border:0;color:#8a6228;font-size:22px;cursor:pointer;font-family:serif;line-height:1;padding:4px 8px}.help-tooltip .close:hover{color:#2b1f12}@keyframes tooltipIn{0%{opacity:0;transform:translateY(-6px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-col{position:relative;z-index:3;width:min(580px,calc(100vw - 24px));flex:1 1 auto;min-height:0;display:flex;flex-direction:column;margin-top:14px;padding:14px 12px 12px;gap:0;background:radial-gradient(120% 60% at 50% 0,rgba(255,220,140,.1) 0,transparent 60%),linear-gradient(180deg,rgba(30,38,28,.92),rgba(20,28,20,.94) 50%,rgba(30,38,28,.92));border:2px solid rgba(239,198,87,.55);border-radius:22px;box-shadow:0 0 80px 8px rgba(255,200,110,.18),0 0 32px rgba(255,200,110,.22),0 18px 44px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,235,180,.18),inset 0 -1px 0 rgba(0,0,0,.4)}.chat-col:after,.chat-col:before{content:"";position:absolute;width:22px;height:22px;border:2px solid rgba(239,198,87,.65);pointer-events:none}.chat-col:before{top:-2px;left:-2px;border-right:0;border-bottom:0;border-top-left-radius:22px}.chat-col:after,.chat-col:before{box-shadow:0 0 10px rgba(255,210,130,.4)}.chat-col:after{bottom:-2px;right:-2px;border-left:0;border-top:0;border-bottom-right-radius:22px}.chat-thread{flex:1 1 auto;min-height:0;overflow-y:auto;padding:8px 10px 16px;display:flex;flex-direction:column;gap:18px;scrollbar-width:thin;scrollbar-color:rgba(120,80,30,.6) transparent}.chat-thread::-webkit-scrollbar{width:6px}.chat-thread::-webkit-scrollbar-thumb{background:rgba(120,80,30,.5);border-radius:4px}.bubble-enter{animation:bubbleIn .42s cubic-bezier(.2,.9,.3,1.2) both}@keyframes bubbleIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.bubble-user{align-self:stretch;position:relative;background:linear-gradient(180deg,#ebf0d2,#d8debb);border:1.5px solid rgba(70,90,30,.5);border-radius:22px 22px 6px 22px;padding:12px 20px 10px;box-shadow:0 8px 18px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.6);color:#1f2812;font-size:18px;line-height:1.32}.bubble-user .who{font-weight:700;font-family:Lora,serif;color:#4a5a26;font-size:16px;margin-bottom:2px;letter-spacing:.2px}.bubble-user .text{font-size:clamp(15px,calc(13.5px + .95vw),19px);color:#2c361a;overflow-wrap:break-word}.bubble-user .meta{display:flex;justify-content:flex-end;align-items:center;gap:4px;margin-top:4px;color:#6a7240;font-size:13px}.bubble-user .check{color:#2e7ab2;font-size:15px;letter-spacing:-2px}.bubble-troll{align-self:stretch;position:relative;background:radial-gradient(110% 130% at 10% 0,#fbf3d8 0,#f1e1b5 60%,#e6d098 100%);border:1.5px solid rgba(120,70,20,.55);border-radius:14px 22px 22px 22px;padding:12px 20px 10px;color:#2b1f12;font-size:19px;line-height:1.42;box-shadow:0 8px 20px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.7),inset 0 -2px 0 rgba(120,70,20,.12)}.bubble-troll:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(89deg,rgba(150,100,40,.05) 0 2px,transparent 2px 7px),repeating-linear-gradient(3deg,rgba(150,100,40,.04) 0 1px,transparent 1px 12px);mix-blend-mode:multiply}.bubble-troll:after{content:"";position:absolute;left:-14px;top:44px;width:26px;height:20px;background:radial-gradient(110% 130% at 80% 50%,#f1e1b5 0,#e6d098 100%);border-left:1.5px solid rgba(120,70,20,.55);border-bottom:1.5px solid rgba(120,70,20,.55);border-radius:0 0 0 16px;transform:rotate(15deg)}.bubble-troll .who{font-family:Cinzel Decorative,serif;font-weight:700;color:#5d2d8a;font-size:18px;margin-bottom:4px;letter-spacing:.4px;position:relative}.bubble-troll .body{font-size:clamp(15px,calc(13.5px + .95vw),19px);color:#2b1f12;position:relative;overflow-wrap:break-word}.bubble-troll .meta{margin-top:4px;color:#7a5a2a;font-size:13px;position:relative}.bubble-troll .accent{color:#5d2d8a;font-weight:700;white-space:nowrap}.bubble-troll .rhyme-line{display:block;text-wrap:balance}.bubble-troll.thinking .body{display:flex;align-items:center;gap:6px;font-style:italic;color:#5d4318}.bubble-troll.thinking .thinking-dots{display:inline-flex;gap:5px;vertical-align:middle}.bubble-troll.thinking .thinking-dots>span{width:8px;height:8px;background:#5d2d8a;border-radius:50%;animation:dotBounce 1.2s ease-in-out infinite}.bubble-troll.thinking .thinking-dots>span:nth-child(2){animation-delay:.15s}.bubble-troll.thinking .thinking-dots>span:nth-child(3){animation-delay:.3s}@keyframes dotBounce{0%,70%,to{transform:translateY(0);opacity:.4}35%{transform:translateY(-5px);opacity:1}}.riddle-card{align-self:stretch;position:relative;background:radial-gradient(120% 100% at 0 0,#fbf3d8 0,#efdfb0 50%,#e3cf94 100%);border:1.5px solid rgba(120,70,20,.6);border-radius:16px;padding:20px 24px 22px;box-shadow:0 10px 24px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.7),inset 0 -2px 0 rgba(120,70,20,.18);text-align:center}.riddle-card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(89deg,rgba(150,100,40,.05) 0 2px,transparent 2px 7px),radial-gradient(circle at 10% 0,rgba(180,130,60,.15) 0,transparent 50%),radial-gradient(circle at 90% 100%,rgba(180,130,60,.15) 0,transparent 50%);mix-blend-mode:multiply}.riddle-card .head{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:10px;position:relative}.riddle-card .head .label{font-family:Cinzel Decorative,serif;color:#5d2d8a;font-weight:700;font-size:22px;letter-spacing:.6px}.riddle-card .flourish{color:#8a6228;font-size:17px;letter-spacing:4px}.riddle-card .question{font-family:Cinzel Decorative,serif;font-size:clamp(18px,calc(15px + 1.6vw),30px);color:#2b1f12;line-height:1.2;text-wrap:balance;margin:6px 0 16px;position:relative;overflow-wrap:break-word}.riddle-card .bottom-rule{display:flex;align-items:center;justify-content:center;gap:8px;color:#8a6228;margin-top:6px;position:relative}.riddle-card .bottom-rule .line{flex:0 1 90px;height:1px;background:linear-gradient(90deg,transparent,rgba(120,70,20,.6),transparent)}.riddle-card .bottom-rule .diamond{width:7px;height:7px;background:#8a6228;transform:rotate(45deg)}.riddle-card .input-block{margin-top:12px;display:flex;flex-direction:column;gap:10px;position:relative}.riddle-card .input-row{display:flex;align-items:center;background:rgba(255,250,230,.85);border:1.5px solid rgba(120,70,20,.55);border-radius:10px;padding:9px 14px;box-shadow:inset 0 2px 4px rgba(120,70,20,.18)}.riddle-card .input-row input{flex:1 1;min-width:0;background:transparent;border:0;outline:none;font:inherit;font-size:18px;color:#2b1f12;font-family:Lora,serif}.riddle-card .input-row .clear{background:none;border:0;cursor:pointer;color:#8a6228;font-size:22px;padding:0 4px}.riddle-card .submit{display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(180deg,#6a35aa,#4f2685);color:#fff7d9;border:2px solid #efc657;border-radius:10px;padding:10px 16px;font-family:Cinzel Decorative,serif;font-weight:700;font-size:18px;letter-spacing:.4px;cursor:pointer;box-shadow:0 6px 14px rgba(40,15,80,.5),inset 0 1px 0 rgba(255,255,255,.3),inset 0 -2px 0 rgba(0,0,0,.25);transition:transform 80ms ease}.riddle-card .submit:hover{transform:translateY(-1px)}.riddle-card .submit:active{transform:translateY(1px)}.riddle-card .submit[disabled]{opacity:.55;cursor:not-allowed}.riddle-card.revealed .input-block,.riddle-card.solved .input-block{display:none}.riddle-card .revealed-stamp,.riddle-card .solved-stamp{position:absolute;right:14px;top:12px;font-family:Cinzel Decorative,serif;font-size:14px;padding:2px 8px;border-radius:6px;letter-spacing:.6px;border:2px solid}.riddle-card .solved-stamp{color:#2f7a3a;transform:rotate(8deg)}.riddle-card .revealed-stamp{color:#c0651f;transform:rotate(-6deg)}.riddle-card .revealed-answer{font-family:Cinzel Decorative,serif;font-size:20px;color:#5d2d8a;margin:-8px 0 6px;letter-spacing:.3px}.riddle-card .revealed-answer strong{color:#c0651f;font-weight:700;letter-spacing:.6px}.riddle-card.active{position:-webkit-sticky;position:sticky;top:0;z-index:5;box-shadow:0 14px 32px rgba(0,0,0,.6),0 4px 0 rgba(120,70,20,.18),inset 0 1px 0 rgba(255,255,255,.7),inset 0 -2px 0 rgba(120,70,20,.18)}.riddle-card .feedback{font-family:Caveat,cursive;font-size:24px;text-align:center;margin-top:2px}.riddle-card .feedback.correct{color:#2f7a3a}.riddle-card .feedback.wrong{color:#a8302e}.bubble-troll.final{background:radial-gradient(120% 100% at 0 0,#fffbe6 0,#f6e7ba 60%,#e8ce93 100%);border-color:#efc657;box-shadow:0 0 32px rgba(255,210,120,.3),0 10px 24px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.75)}.bubble-troll.final .who{color:#6a35aa}.bubble-troll.final .body{color:#2b1f12;font-family:Lora,Georgia,serif;font-weight:700;font-size:clamp(17px,calc(15.5px + 1vw),21px);line-height:1.45;letter-spacing:.15px;margin-top:6px;padding:12px 16px 12px 18px;background:linear-gradient(180deg,rgba(255,250,230,.96),rgba(245,230,196,.9));border-left:3px solid #c08a2a;border-radius:4px 10px 10px 4px;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 4px 12px rgba(120,70,20,.18);text-shadow:0 1px 0 rgba(255,250,235,.6)}.bubble-troll.final .stamp{display:inline-block;margin-left:8px;font-family:Cinzel Decorative,serif;font-size:12px;color:#2f7a3a;border:1.5px solid #2f7a3a;padding:1px 8px;border-radius:4px;letter-spacing:.5px;vertical-align:middle}.input-bar{flex:0 0 auto;margin:8px 0 0;height:62px;background:radial-gradient(140% 200% at 0 50%,#fdf6dc 0,#eedfb0 60%,#e1cf94 100%);border:1.5px solid rgba(120,70,20,.7);border-radius:14px;display:flex;align-items:center;gap:10px;padding:0 8px 0 16px;box-shadow:0 8px 22px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.7),inset 0 -2px 0 rgba(120,70,20,.18);position:relative}.input-bar:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(89deg,rgba(150,100,40,.04) 0 2px,transparent 2px 8px);mix-blend-mode:multiply}.input-bar .chat-icon{width:32px;height:32px;background:rgba(120,70,20,.15);border-radius:50%;display:grid;place-items:center;color:#5d2d8a;font-size:18px;flex-shrink:0}.input-bar input{flex:1 1;min-width:0;background:transparent;border:0;outline:none;font-family:Lora,serif;font-size:18px;color:#2b1f12}.input-bar input::placeholder{color:rgba(80,55,20,.6);font-style:italic}.input-bar .send{width:44px;height:44px;flex-shrink:0;background:radial-gradient(circle at 35% 30%,#4ea66a,#1f6a3a);border:2px solid #efc657;border-radius:50%;color:#fff7d9;font-size:22px;cursor:pointer;display:grid;place-items:center;box-shadow:0 4px 10px rgba(20,60,30,.6),inset 0 1px 0 rgba(255,255,255,.4),inset 0 -2px 0 rgba(0,0,0,.3);transition:transform 80ms ease}.input-bar .send:hover{transform:translateY(-1px) scale(1.03)}.input-bar .send:active{transform:translateY(1px)}.input-bar .send[disabled]{opacity:.55;cursor:not-allowed}.floater{position:fixed;left:50vw;top:45vh;pointer-events:none;font-family:Caveat,cursive;font-size:36px;color:#f4d27a;text-shadow:0 2px 6px rgba(0,0,0,.8),0 0 18px rgba(255,210,120,.7);animation:floatUp 1.6s ease-out forwards;white-space:nowrap;z-index:10}.floater.bad{color:#ff9ea0;text-shadow:0 2px 6px rgba(0,0,0,.8),0 0 16px rgba(255,80,80,.6)}@keyframes floatUp{0%{opacity:0;transform:translate(-50%) scale(.7)}20%{opacity:1;transform:translate(-50%,-8px) scale(1.1)}to{opacity:0;transform:translate(-50%,-100px) scale(1)}}.shimmer{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(255,220,140,.35) 0,transparent 35%);opacity:0;animation:shimmerFlash 1.6s ease-out;z-index:9}@keyframes shimmerFlash{0%{opacity:0}20%{opacity:1}to{opacity:0}}.sr{position:absolute;left:-9999px}@media (min-width:641px) and (max-width:1023px){.troll-layer{bottom:0;left:0;height:clamp(240px,42vh,420px);transform:none}.chat-col{width:min(440px,calc(100vw - 24px))}}@media (max-width:640px){.app{padding:18px 10px 14px}.troll-layer{top:6px;left:4px;bottom:auto;height:clamp(78px,22vw,110px);transform:none;z-index:5;filter:drop-shadow(0 4px 10px rgba(0,0,0,.55))}.logo{width:min(420px,82vw)}.help-link{font-size:17px;padding:2px 12px}.chat-col{margin-top:10px;width:calc(100vw - 14px);padding:10px 8px;border-radius:18px}.chat-thread{padding:6px 6px 12px;gap:14px}.bubble-troll,.bubble-user{padding:10px 14px 8px}.riddle-card{padding:16px 18px 18px}.riddle-card .head .label{font-size:19px}.input-bar{height:56px;gap:8px;padding:0 6px 0 12px}.input-bar input{font-size:16px}.input-bar .send{width:40px;height:40px;font-size:20px}}@media (max-width:380px){.troll-layer{height:68px;top:4px;left:2px}.logo{width:min(260px,76vw)}}@media (min-width:1024px) and (max-height:620px){.troll-layer{height:clamp(220px,70vh,380px)}}.site-footer{position:relative;z-index:4;width:100%;padding:8px 16px;background:#1f2937;color:#9ca3af;font-family:Lora,serif;font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.site-footer .footer-left{margin:0;font-size:14px;flex:0 0 auto}.site-footer .footer-right{display:flex;align-items:center;gap:16px;flex:0 1 auto}.site-footer .footer-credit{margin:0;font-size:14px;color:#9ca3af}.site-footer .footer-credit a{color:#d1d5db;text-decoration:underline;-webkit-text-decoration-color:rgba(209,213,219,.35);text-decoration-color:rgba(209,213,219,.35);text-underline-offset:3px;transition:color .12s ease}.site-footer .footer-credit a:hover{color:#f4d27a;-webkit-text-decoration-color:rgba(244,210,122,.6);text-decoration-color:rgba(244,210,122,.6)}.site-footer .social-icons{display:flex;align-items:center;gap:8px}.site-footer .social-icons a{display:inline-flex;width:24px;height:24px;opacity:.78;transition:opacity .12s ease,transform .12s ease}.site-footer .social-icons a:hover{opacity:1;transform:translateY(-1px)}.site-footer .social-icons img{width:24px;height:24px;display:block}@media (max-width:520px){.site-footer{flex-direction:column;gap:8px;padding:10px 14px 12px}.site-footer .footer-left{display:none}.site-footer .footer-right{flex-direction:column;gap:6px}.site-footer .footer-credit{font-size:13px}}