:root{color-scheme:light;--text:#263a4a;--muted:#617283;--cyan:#327895;--border:#dce5ed}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 0 0,#e4f6f4,transparent 55%),radial-gradient(ellipse at 100% 0,#efe7fb,transparent 45%),#f5f8fb;color:var(--text);font-family:system-ui,"Hiragino Sans","Meiryo",sans-serif;line-height:1.7}a{color:#397596}.wrap{max-width:960px;margin:auto;padding:26px 24px 60px}.topbar{margin-bottom:18px}.home{text-decoration:none;font-size:12px;color:#64758b}.hero{margin:30px 0 24px}.eyebrow{font-size:11px;letter-spacing:.15em;font-weight:700;color:#6374a1}.hero h1{font-size:clamp(24px,4vw,35px);margin:8px 0 12px;line-height:1.4}.sub{color:#5c7388;font-size:14px;margin:0}.note{font-size:11px;color:#687d8b;margin-top:17px;background:#fff9;border:1px solid #d9e8e5;border-radius:13px;padding:12px 15px}.card{background:#fff;border:1px solid #dce7ee;border-radius:25px;padding:26px;box-shadow:0 12px 35px #3653640a}.viewer-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:16px;font-size:13px}.viewer-head span{font-size:10px;color:#6e5a92;background:#f2ecfb;border-radius:999px;padding:6px 10px}.stage{position:relative;width:100%;aspect-ratio:4/3;border-radius:18px;overflow:hidden;background:linear-gradient(145deg,#5306b9,#111886 50%,#087985);display:flex;align-items:center;justify-content:center}#canvas{width:100%;height:100%;display:block;touch-action:manipulation}#video{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.placeholder{position:absolute;text-align:center;color:#fff;font-size:15px;padding:22px;background:#21096375;border:1px solid #d8cfff40;border-radius:20px;backdrop-filter:blur(8px)}.big{display:block;font-size:48px;margin-bottom:10px}[hidden]{display:none!important}.btn{appearance:none;min-height:46px;border:0;border-radius:13px;font:inherit;font-size:13px;font-weight:700;background:#33849a;color:#fff;padding:12px 18px;cursor:pointer}.btn.ghost{background:#f5f8fa;color:#516f82;border:1px solid #dbe5eb}.btn:hover{filter:brightness(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}#start-btn{flex:1;min-width:150px}.opts{display:flex;gap:20px;flex-wrap:wrap;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid #edf0f5}.opt-group{display:flex;flex-direction:column;gap:8px}.opt-label{font-size:11px;color:#647888}.seg{display:flex;gap:4px;border:1px solid #e0e6ee;background:#f5f7fb;border-radius:12px;padding:4px}.seg-btn{appearance:none;border:0;border-radius:8px;background:transparent;color:#62718b;font:inherit;font-size:12px;padding:8px 12px;cursor:pointer;min-height:38px}.seg-btn.active{background:#fff;color:#65539a;box-shadow:0 2px 8px #57527e15}.slide-row{display:flex;align-items:center;gap:8px;font-size:12px}.slide-row input{width:140px;accent-color:#7865aa}.toggle-row{display:flex;align-items:center;gap:7px;font-size:12px;color:#617288}.toggle-row input{accent-color:#7865aa}.range-panel{margin-top:20px;padding:17px;background:#f6f8fc;border:1px solid #e4e9f2;border-radius:16px;display:flex;flex-wrap:wrap;align-items:center;gap:14px}.range-panel b{font-size:12px}.range-panel p{font-size:10px;color:#6b7b90;margin:4px 0 0}.range-inputs{display:flex;gap:10px;align-items:center;font-size:11px}.range-inputs input{width:70px;border:1px solid #d2dce8;border-radius:8px;padding:8px;color:#465575;background:#fff;font:inherit;font-size:13px}#status{font-size:12px;color:#63768a;margin-bottom:0}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:white;color:#455d70;border:1px solid #d4e0e6;border-radius:14px;padding:12px 18px;box-shadow:0 6px 25px #18394220;opacity:0;pointer-events:none;font-size:12px;max-width:90vw}.toast.show{opacity:1}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #aa8bd3;outline-offset:3px}@media(max-width:600px){.wrap{padding:18px 15px 36px}.hero{margin-top:24px}.hero h1{font-size:24px}.sub{font-size:12px}.card{padding:17px;border-radius:21px}.viewer-head{font-size:12px}.viewer-head span{font-size:9px}.btn-row{gap:8px}.btn{padding:11px 12px;font-size:12px}.opts{gap:16px}.range-inputs{gap:6px}.range-panel{padding:13px}.range-panel p{font-size:11px}.placeholder{font-size:13px;margin:15px}.placeholder .big{font-size:38px}.note{font-size:11px}.stage{border-radius:13px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
