:root{font-family:system-ui,-apple-system,"Microsoft JhengHei",sans-serif;color:#f4f7ff;background:#121b30;color-scheme:dark;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid white;outline-offset:5px}[hidden]{display:none!important}.welcome{min-height:100svh;padding:32px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center}.start-card{width:100%;max-width:410px;text-align:center;margin:auto 0}h1{font-size:clamp(28px,6vw,38px);line-height:1.35;margin:0 0 24px;font-weight:750;letter-spacing:1px}.description{font-size:18px;color:#c7d5e9;line-height:1.9;margin:0 0 34px}.primary{width:100%;max-width:280px;border:0;border-radius:10px;padding:17px 24px;background:#91ddff;color:#102038;font-size:18px;font-weight:750}.primary:hover:not(:disabled){background:#b0e7ff}.primary:disabled{opacity:.5;cursor:wait}.status{font-size:14px;line-height:1.65;color:#aec4dc;min-height:24px;margin:15px 0 0}.status.error{color:#ffc4b4}.privacy{font-size:13px;color:#95aac4;line-height:1.8;margin:32px 0 0}footer{font-size:12px;color:#95aac4;text-align:center;padding-top:24px}#ar-root canvas{z-index:1}.scanner{position:fixed;inset:0;background:#000;overflow:hidden}#ar-root{position:absolute;inset:0}.scan-top{position:absolute;top:0;left:0;right:0;padding:calc(20px + env(safe-area-inset-top)) 22px 35px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#0009,transparent);z-index:3}.scan-brand{font-weight:700;font-size:17px}.pill{border:1px solid #ffffff60;border-radius:40px;padding:10px 17px;color:white;background:#142035a6;font-size:14px}.scan-bottom{position:absolute;bottom:0;left:0;right:0;padding:45px 20px calc(30px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#000b);text-align:center;z-index:3}.scan-bottom p{font-size:18px;margin:0 0 8px;font-weight:650}.scan-bottom span{font-size:14px;color:#d1deeb}.guide{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(68vw,330px);height:min(84vw,400px);pointer-events:none;opacity:.8;transition:opacity .2s;z-index:2}.guide i{position:absolute;width:30px;height:30px;border-color:#a4e2ff;border-style:solid}.guide i:nth-child(1){top:0;left:0;border-width:3px 0 0 3px;border-radius:12px 0 0 0}.guide i:nth-child(2){top:0;right:0;border-width:3px 3px 0 0;border-radius:0 12px 0 0}.guide i:nth-child(3){bottom:0;left:0;border-width:0 0 3px 3px;border-radius:0 0 0 12px}.guide i:nth-child(4){bottom:0;right:0;border-width:0 3px 3px 0;border-radius:0 0 12px 0}.guide.found{opacity:0}.a-enter-vr,.a-enter-ar{display:none!important}
#xr-canvas{width:100%;height:100%;display:block}#floating-character{position:absolute;left:50%;bottom:50%;transform:translateX(-50%);width:clamp(105px,28vw,165px);height:auto;z-index:2;pointer-events:none}.camera-note{margin-top:14px}footer{line-height:1.8}footer a{color:#95aac4}.scan-bottom span{display:block;line-height:1.65}.scan-bottom p{line-height:1.5}.scan-bottom button{margin-top:16px}.guide{pointer-events:none}
.capture-buttons{display:flex;justify-content:center;gap:14px}.capture-buttons .pill{min-width:100px;background:#142035ed;font-size:16px}.capture-buttons button:disabled{opacity:.45;cursor:default}.capture-buttons .recording{background:#a52336;border-color:#ffadc0}#capture-status{display:block;font-size:13px;line-height:1.6;margin-top:10px;color:#d1deeb}#capture-result{width:min(94vw,600px);max-height:92svh;overflow:auto;border:1px solid #49617d;border-radius:16px;background:#121b30;color:#f4f7ff;padding:20px}#capture-result::backdrop{background:#000b}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.result-heading h2{margin:0;font-size:21px}#photo-preview,#video-preview{display:block;width:100%;max-height:56svh;object-fit:contain;background:#000;border-radius:8px}.result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px}.result-actions a{text-decoration:none}#result-status{font-size:14px;line-height:1.7;color:#becde1;margin-bottom:0}@media(max-height:550px){.scan-bottom{padding-top:15px;padding-bottom:10px}.scan-bottom p{font-size:15px}.scan-bottom span{font-size:12px}.scan-bottom button{margin-top:8px}.scan-top{padding-top:10px}.scan-brand{font-size:15px}}


/* Pixel adventure theme. No external fonts or assets. */
:root{font-family:"Courier New","Microsoft JhengHei",monospace;color:#fff6df;background:#0b0b10;color-scheme:dark}
.welcome{background:linear-gradient(90deg,transparent 49.8%,#ffdc5108 50%,transparent 50.2%),#0b0b10;padding:36px 24px 24px;overflow:hidden}
.start-card{max-width:520px;padding:26px 26px 22px;position:relative;background:#101014;border:3px solid #ffdc51;box-shadow:7px 7px 0 #513d27;margin:auto 0}
.start-card::before,.start-card::after{content:"";position:absolute;top:-7px;width:10px;height:10px;background:#ffdc51}.start-card::before{left:-7px}.start-card::after{right:-7px}
.channel{font-size:10px;letter-spacing:2px;color:#aa9c7e;display:flex;justify-content:space-between;gap:8px;align-items:center;margin:0 0 34px}.channel span{color:#f18345;font-size:17px}
h1{margin:0 auto 18px;line-height:1;max-width:440px}.pixel-title{width:100%;height:auto;display:block;image-rendering:pixelated}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.pixel-scene{display:flex;justify-content:center;align-items:center;gap:32px;margin:24px 0 22px}.pixel-scene svg{width:96px;height:72px}.spark{color:#ffdc51;font-size:24px}.spark.right{color:#f18345;font-size:17px}
.description{font-size:15px;line-height:1.95;color:#f1e8d7;border-top:2px solid #393329;border-bottom:2px solid #393329;padding:18px 0;margin:0 0 24px}.dialog-star{color:#ffdc51}
.primary{position:relative;background:#11120f;color:#ffdc51;border:3px solid #ffdc51;border-radius:0;max-width:300px;box-shadow:4px 4px 0 #584d2b;font-size:19px;letter-spacing:3px;padding:14px 18px}.primary::before{content:"▶";display:inline-block;color:#ef8849;margin-right:16px;font-size:16px}.primary:hover:not(:disabled){background:#ffdc51;color:#17120b}.primary:hover:not(:disabled)::before{color:#17120b}.primary:active:not(:disabled){transform:translate(2px,2px);box-shadow:2px 2px 0 #584d2b}.primary:disabled{opacity:.55}
.status{font-size:12px;color:#a1c16c;margin-top:15px}.privacy{font-size:12px;color:#b3aa98;margin-top:22px}.camera-note{margin-top:12px}footer,footer a{color:#8f897d;font-size:11px}footer{padding-top:26px}
button:focus-visible,a:focus-visible{outline:3px solid #a1c16c;outline-offset:5px}
.scan-top{gap:14px}.scan-brand{max-width:65%;font-size:clamp(12px,3.4vw,17px);line-height:1.4;color:#ffdc51}.scan-top button{flex-shrink:0}
.pill{border:2px solid #ffdc51;border-radius:0;background:#111014e8;color:#fff6df}.scan-bottom span,#capture-status{color:#e2dbc9}.guide i{border-color:#ffdc51;border-radius:0!important}
.capture-buttons .pill{background:#111014f2}.capture-buttons #take-photo{border-color:#a1c16c}.capture-buttons .recording{background:#7c2f20;border-color:#f18345}
#capture-result{background:#101014;color:#fff6df;border:3px solid #ffdc51;border-radius:0;box-shadow:6px 6px 0 #513d27}#photo-preview,#video-preview{border-radius:0}#result-status{color:#b3aa98}
@media(max-width:380px){.welcome{padding:26px 17px 20px}.start-card{padding:22px 17px 18px}.channel{font-size:8px;letter-spacing:1px;margin-bottom:27px}.description{font-size:13px}.scan-top{padding-left:14px;padding-right:14px}}
@media(max-height:700px){.welcome{padding-top:22px}.channel{margin-bottom:24px}.pixel-scene{margin:16px 0}.pixel-scene svg{width:72px;height:54px}.privacy{margin-top:15px}}

/* RPG frame, with ordinary readable Chinese text. */
.scan-bottom{padding:22px 20px calc(22px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#000b);font-family:system-ui,-apple-system,"PingFang TC","Microsoft JhengHei",sans-serif}
.rpg-dialogue{position:relative;display:flex;gap:12px;max-width:560px;margin:0 auto 4px;padding:18px 24px 22px 16px;text-align:left;background:#101014f5;border:3px solid #fff1c7;outline:2px solid #18130e;box-shadow:inset 0 0 0 3px #101014,inset 0 0 0 4px #8a7448,5px 5px 0 #0009;color:#fffaf0}
.scan-bottom .dialogue-marker{flex:none;color:#ffdc51;font-size:19px;line-height:1.5}.dialogue-copy{flex:1;min-width:0}.rpg-dialogue #scan-status{font-size:17px;line-height:1.55;margin:0 0 6px;font-weight:700;letter-spacing:0}
.hint-lines{position:relative}.rpg-dialogue #hint,.rpg-dialogue #hint-typed{font-size:15px;line-height:1.7;font-weight:400;letter-spacing:0}.rpg-dialogue #hint{color:transparent}.rpg-dialogue #hint-typed{position:absolute;inset:0;color:#e7e2d8}
.dialogue-cursor{position:absolute;right:12px;bottom:9px;width:8px;height:4px;background:#ffdc51;box-shadow:2px -2px 0 #ffdc51,-2px -2px 0 #ffdc51}
#capture-status{font-family:inherit;color:#fff3d4;font-size:13px;text-shadow:0 1px 3px #000}
@media(max-width:380px){.scan-bottom{padding-left:12px;padding-right:12px}.rpg-dialogue{gap:8px;padding:14px 18px 18px 12px}.rpg-dialogue #scan-status{font-size:16px}.rpg-dialogue #hint,.rpg-dialogue #hint-typed{font-size:14px}}
@media(max-height:550px){.scan-bottom{padding-top:8px;padding-bottom:8px}.rpg-dialogue{padding:10px 22px 12px 12px;max-width:600px}.rpg-dialogue #scan-status{font-size:15px;margin-bottom:3px}.rpg-dialogue #hint,.rpg-dialogue #hint-typed{font-size:13px;line-height:1.5}}

/* Compact camera dialogue: readable text with less camera obstruction. */
.scan-bottom{padding:12px 14px calc(10px + env(safe-area-inset-bottom))}
.rpg-dialogue{gap:8px;padding:8px 20px 10px 11px;margin-bottom:0;border-width:2px;box-shadow:inset 0 0 0 2px #101014,inset 0 0 0 3px #8a7448,3px 3px 0 #0009}
.scan-bottom .dialogue-marker{font-size:16px;line-height:1.35}
.rpg-dialogue #scan-status{font-size:15px;line-height:1.35;margin:0 0 3px}
.rpg-dialogue #hint,.rpg-dialogue #hint-typed{font-size:14px;line-height:1.4}
.dialogue-cursor{right:9px;bottom:6px;transform:scale(.75)}
.scan-bottom button{margin-top:9px}.capture-buttons{gap:10px}.capture-buttons .pill{padding:8px 15px;font-size:15px}#capture-status{margin-top:6px;font-size:12px;line-height:1.4}
@media(max-width:380px){.scan-bottom{padding-left:10px;padding-right:10px}.rpg-dialogue{padding:8px 18px 10px 10px}}
@media(max-height:550px){.scan-bottom{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}.rpg-dialogue{padding-top:6px;padding-bottom:8px}.scan-bottom button{margin-top:6px}}

.scan-bottom .dialogue-marker{width:16px;color:#fff}.dialogue-marker svg{display:block;margin-top:2px;image-rendering:pixelated}

.channel .yellow-flower{display:block;width:28px;height:28px;flex:none}

.scan-bottom .dialogue-marker{width:18px;color:#fff;font-family:system-ui,-apple-system,"Microsoft JhengHei",sans-serif;font-size:18px;font-weight:900;line-height:1.15}

/* Thicken the actual symbol even when the fallback font has no bold face. */
.scan-bottom .dialogue-marker{-webkit-text-stroke:1px #fff;text-shadow:.45px 0 #fff,-.45px 0 #fff,0 .45px #fff,0 -.45px #fff;font-weight:900;overflow:visible}
