.home-festival[data-astro-cid-ojilipfl]{z-index:0;pointer-events:none;width:100%;position:absolute;inset:0 auto auto 0;overflow:hidden}svg[data-astro-cid-ojilipfl]{width:100%;height:100%;display:block;overflow:hidden}html,body{background:#fff;min-width:0;margin:0;padding:0;position:relative}body[data-site=rubydog] #page-content{z-index:1;width:100%;position:relative}:root{--google-red:#ea4335;--google-yellow:#fbbc05;--google-green:#34a853;--google-blue:#4285f4;--fruit-light-red:#ef5350;--fruit-light-yellow:#ffca28;--fruit-light-green:#66bb6a;--fruit-light-blue:#42a5f5;--fruit-red:#e53935;--fruit-yellow:#ffb300;--fruit-green:#43a047;--fruit-blue:#1e88e5;--fruit-dark-red:#b71c1c;--fruit-dark-yellow:#ff6f00;--fruit-dark-green:#1b5e20;--fruit-dark-blue:#0d47a1;--fruit-on:#fff;--red:var(--fruit-red);--yellow:var(--fruit-yellow);--green:var(--fruit-green);--blue:var(--fruit-blue);--light-red:var(--fruit-light-red);--light-yellow:var(--fruit-light-yellow);--light-green:var(--fruit-light-green);--light-blue:var(--fruit-light-blue);--dark-red:var(--fruit-dark-red);--dark-yellow:var(--fruit-dark-yellow);--dark-green:var(--fruit-dark-green);--dark-blue:var(--fruit-dark-blue);--text:#0f172a;--text-soft:#475569;--text-muted:#68758a;--text-disabled:#94a3b8;--border:#e2e8f0;--border-strong:#cbd5e1;--surface:#fff;--surface-tint:#f6f9fc;--hover-button:#eaf0f6;--app-bg:#f2f2f7;--action:#1d4ed8;--action-hover:#1e40af;--action-bg:#eef5ff;--action-bg-strong:#dbeafe;--action-border:#93c5fd;--warning:#b45309;--warning-bg:#fffbeb;--radius-glass-card:18px;--radius-pill:999px;--glass-clear:#ffffff09;--glass-edge:#ffffffb8;--glass-filter:blur(3px) saturate(1.3);--elevation-glass-card:0 8px 24px #0f172a11;--elevation-glass-nav:0 6px 18px #0f172a14, inset 0 1px 0 var(--surface);--elevation-folder:drop-shadow(0 2px 2px #0f172a21) drop-shadow(0 7px 9px #0f172a21);--elevation-folder-hover:var(--elevation-folder) drop-shadow(0 2px 2px #0f172a14);--elevation-button:0 2px 4px #0f172a2b, 0 1px 2px #0f172a1f;--elevation-button-hover:0 4px 8px #0f172a33, 0 2px 3px #0f172a1f;--elevation-menu:0 12px 30px #0f172a1f;--focus-ring:3px solid var(--action);--space-festival-divider:128px}body[data-site=openkk]{color-scheme:light;--ok-ink:var(--text);--ok-muted:var(--text-soft);--ok-faint:var(--text-muted);--ok-line:var(--border);--ok-tint:var(--surface-tint);--ok-accent:var(--action);--ok-accent-hover:var(--action-hover);--ok-accent-soft:var(--action-bg);--ok-accent-strong:var(--action-bg-strong);--ok-plate:var(--fruit-yellow);--ok-night:var(--text);--ok-night-ink:var(--border);--ok-night-muted:var(--text-disabled);--ok-caution:var(--warning);--ok-caution-bg:var(--warning-bg);--ok-shadow:0 1px 3px #0f172a0f, 0 16px 40px #0f172a1f;--ok-font-sans:"Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ok-font-mono:"Noto Sans Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ok-fs-1:36px;--ok-fs-2:20px;--ok-fs-3:16px;--ok-fs-4:14px;--ok-column:720px;--ok-gutter:24px;background:var(--surface);min-height:100%;color:var(--ok-ink);font-family:var(--ok-font-sans);font-size:var(--ok-fs-3);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.8}body[data-site=openkk],body[data-site=openkk] *,body[data-site=openkk] :before,body[data-site=openkk] :after{box-sizing:border-box}body[data-site=openkk] a{color:inherit;text-decoration:none}body[data-site=openkk] button{font:inherit}body[data-site=openkk] .ok-shell{flex-direction:column;min-height:100vh;display:flex}body[data-site=openkk] .ok-shell>.ok-grow{flex:1}body[data-site=openkk] .ok-col{width:100%;max-width:calc(var(--ok-column) + var(--ok-gutter) * 2);padding:0 var(--ok-gutter);margin:0 auto}body[data-site=openkk] .support-region.ok-support{padding:64px 0 0}body[data-site=openkk] .ok-support .support-card{max-width:none;margin:0}body[data-site=openkk] .ok-bar{min-height:64px;font-size:var(--ok-fs-4);align-items:center;gap:8px;display:flex}body[data-site=openkk] .ok-brand{align-items:center;gap:8px;font-weight:700;display:inline-flex}body[data-site=openkk] .ok-brand-mark{background:var(--ok-plate);border-radius:8px;flex:none;width:32px;height:32px;padding:5px}body[data-site=openkk] .ok-brand-mark img,body[data-site=openkk] .ok-app-mark img{width:100%;height:100%;display:block}body[data-site=openkk] .ok-bar-sep{color:var(--ok-faint)}body[data-site=openkk] .ok-bar-page{color:var(--ok-muted);font-weight:600}body[data-site=openkk] .ok-foot{background:var(--ok-night);color:var(--ok-night-muted);font-size:var(--ok-fs-4);margin-top:96px}body[data-site=openkk] .ok-shell--with-ad>main{flex:1}body[data-site=openkk] .ok-shell--with-ad>.ok-foot{margin-top:0}body[data-site=openkk] .ok-foot-inner{grid-template-columns:1fr auto auto;gap:48px;padding-top:40px;padding-bottom:48px;display:grid}body[data-site=openkk] .ok-foot .ok-brand{color:var(--ok-night-ink)}body[data-site=openkk] .ok-foot .ok-brand-mark{width:28px;height:28px;padding:4px}body[data-site=openkk] .ok-foot-copy{margin:12px 0 0}body[data-site=openkk] .ok-foot h2{color:var(--ok-night-ink);font-size:var(--ok-fs-4);margin:0 0 8px}body[data-site=openkk] .ok-foot ul{margin:0;padding:0;list-style:none}body[data-site=openkk] .ok-foot li{margin:4px 0}body[data-site=openkk] .ok-foot a:hover{color:#fff}body[data-site=openkk] .ok-title{font-size:var(--ok-fs-1);letter-spacing:0;margin:0;padding-top:48px;line-height:1.4}body[data-site=openkk] .ok-sec{margin-top:56px}body[data-site=openkk] .ok-sec h2,body[data-site=openkk] .ok-shot h2,body[data-site=openkk] .ok-howto h2{font-size:var(--ok-fs-2);margin:0 0 16px;line-height:1.5}body[data-site=openkk] .ok-say{color:var(--ok-muted);margin:16px 0 0}body[data-site=openkk] .ok-dots{color:var(--ok-muted);margin:0;padding-left:1.2em}body[data-site=openkk] .ok-dots li+li{margin-top:8px}body[data-site=openkk] .ok-dots b{color:var(--ok-ink)}body[data-site=openkk] .ok-more{flex-wrap:wrap;gap:8px 24px;margin:16px 0 0;display:flex}body[data-site=openkk] .ok-link{color:var(--ok-accent);font-weight:600}body[data-site=openkk] .ok-link:hover{text-decoration:underline}body[data-site=openkk] .ok-chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}body[data-site=openkk] .ok-chips li{background:var(--ok-tint);color:var(--ok-muted);font-size:var(--ok-fs-4);border-radius:999px;padding:4px 12px;font-weight:600}body[data-site=openkk] .ok-btn{background:var(--ok-accent);color:#fff;min-height:52px;font-size:var(--ok-fs-3);white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:0 28px;font-weight:700;transition:background .15s,transform .15s;display:inline-flex}body[data-site=openkk] .ok-btn:hover{background:var(--ok-accent-hover);transform:translateY(-1px)}body[data-site=openkk] .ok-btn svg{width:18px;height:18px}body[data-site=openkk] .ok-btn.soft{background:var(--ok-accent-soft);color:var(--ok-accent)}body[data-site=openkk] .ok-btn.soft:hover{background:var(--ok-accent-strong)}body[data-site=openkk] .ok-acts{margin-top:24px}body[data-site=openkk] .ok-shadowed{width:100%;height:auto;box-shadow:var(--ok-shadow);background:#fff;border-radius:12px;display:block}body[data-site=openkk] .ok-shot{margin-top:48px}body[data-site=openkk] .ok-hero-line{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;display:flex}body[data-site=openkk] .ok-hero-line .ok-btn{margin-left:auto}body[data-site=openkk] .ok-ver{color:var(--ok-muted);font-size:var(--ok-fs-4);align-items:center;gap:10px;display:flex}body[data-site=openkk] .ok-ver b{background:var(--ok-tint);color:var(--ok-ink);border-radius:999px;padding:2px 10px}body[data-site=openkk] .ok-ver a:hover{text-decoration:underline}body[data-site=openkk] .ok-hero-media{margin-top:32px}body[data-site=openkk] .ok-feature{background:var(--ok-accent-soft);color:var(--ok-accent);border-radius:20px;align-items:center;gap:16px;margin-top:64px;padding:24px;transition:background .15s;display:flex}body[data-site=openkk] .ok-feature:hover{background:var(--ok-accent-strong)}body[data-site=openkk] .ok-feature-emoji{background:#fff;border-radius:16px;flex:0 0 56px;place-items:center;height:56px;font-size:28px;display:grid}body[data-site=openkk] .ok-feature-text{gap:2px;display:grid}body[data-site=openkk] .ok-feature-text strong{font-size:var(--ok-fs-2);line-height:1.5}body[data-site=openkk] .ok-feature-text small{color:var(--ok-muted);font-size:var(--ok-fs-4)}body[data-site=openkk] .ok-feature svg{fill:currentColor;flex:none;width:28px;height:28px;margin-left:auto}body[data-site=openkk] .ok-feature+.ok-list{margin-top:16px}body[data-site=openkk] .ok-list{background:var(--ok-tint);border-radius:20px;margin:64px 0 0;padding:8px;list-style:none}body[data-site=openkk] .ok-list a{border-radius:14px;align-items:center;gap:16px;min-height:64px;padding:8px 16px;font-weight:700;transition:background .15s;display:flex}body[data-site=openkk] .ok-list a:hover{background:#fff}body[data-site=openkk] .ok-list-emoji{background:#fff;border-radius:12px;flex:0 0 40px;place-items:center;height:40px;font-size:20px;display:grid}body[data-site=openkk] .ok-list-end{color:var(--ok-faint);font-size:var(--ok-fs-4);align-items:center;gap:4px;margin-left:auto;font-weight:400;display:flex}body[data-site=openkk] .ok-list-end svg{fill:currentColor;flex:none;width:24px;height:24px}body[data-site=openkk] .ok-finish{margin-top:56px}body[data-site=openkk] .ok-finish small{color:var(--ok-faint);font-size:var(--ok-fs-4);margin-top:8px;display:block}body[data-site=openkk] .ok-howto{gap:32px;margin:40px 0 0;padding:0;list-style:none;display:grid}body[data-site=openkk] .ok-howto>li{grid-template-columns:40px minmax(0,1fr);align-items:start;gap:16px;display:grid}body[data-site=openkk] .ok-howto-num{background:var(--ok-accent-soft);width:40px;height:40px;color:var(--ok-accent);border-radius:999px;place-items:center;font-weight:700;display:grid}body[data-site=openkk] .ok-howto h2{margin:4px 0 8px}body[data-site=openkk] .ok-howto p{color:var(--ok-muted);margin:0}body[data-site=openkk] .ok-code{background:var(--ok-night);border-radius:12px;overflow:hidden}body[data-site=openkk] .ok-code-bar{color:var(--ok-night-muted);font-size:var(--ok-fs-4);border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:16px;padding:8px 8px 8px 16px;display:flex}body[data-site=openkk] .ok-code pre{color:var(--ok-night-ink);font-family:var(--ok-font-mono), var(--ok-font-sans);font-size:var(--ok-fs-4);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:16px;line-height:1.8}body[data-site=openkk] .ok-copy{min-height:36px;color:var(--ok-night-ink);font-size:var(--ok-fs-4);cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:8px;padding:0 14px;font-weight:700}body[data-site=openkk] .ok-copy:hover{background:#ffffff1a}body[data-site=openkk] .ok-howto-shot{max-width:360px;margin-top:16px}body[data-site=openkk] .ok-app-line{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;display:flex}body[data-site=openkk] .ok-app-line .ok-btn{margin-left:auto}body[data-site=openkk] .ok-app{align-items:center;gap:12px;font-weight:700;display:flex}body[data-site=openkk] .ok-app-mark{background:var(--fruit-dark-yellow);border-radius:12px;flex:none;width:44px;height:44px;padding:8px}body[data-site=openkk] .ok-caution{background:var(--ok-caution-bg);border-radius:16px;margin-top:56px;padding:24px}body[data-site=openkk] .ok-caution h2{color:var(--ok-caution);font-size:var(--ok-fs-2);align-items:center;gap:8px;margin:0 0 12px;line-height:1.5;display:flex}body[data-site=openkk] .ok-caution svg{fill:currentColor;flex:none;width:24px;height:24px}body[data-site=openkk] .ok-caution p{color:var(--ok-ink);margin:0}body[data-site=openkk] .ok-caution p+p{margin-top:12px}body[data-site=openkk] .ok-docs{background:var(--ok-tint);border-radius:20px;margin:0;padding:8px;list-style:none}body[data-site=openkk] .ok-docs a{border-radius:14px;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:8px 16px;transition:background .15s;display:flex}body[data-site=openkk] .ok-docs a:hover{background:#fff}body[data-site=openkk] .ok-docs strong{margin-right:8px}body[data-site=openkk] .ok-docs small{color:var(--ok-faint);font-size:var(--ok-fs-4)}body[data-site=openkk] .ok-docs code{color:var(--ok-faint);font-family:var(--ok-font-mono);font-size:var(--ok-fs-4);overflow-wrap:anywhere}body[data-site=openkk] .ok-graph{box-shadow:var(--ok-shadow);background:#fff;border-radius:12px;overflow:hidden}body[data-site=openkk] .ok-graph iframe{border:0;width:100%;min-height:420px;display:block}body[data-site=openkk] .ok-faq{margin:40px 0 0}body[data-site=openkk] .ok-faq dt{margin-top:24px;font-weight:700}body[data-site=openkk] .ok-faq dt:first-child{margin-top:0}body[data-site=openkk] .ok-faq dd{color:var(--ok-muted);margin:4px 0 0}body[data-site=openkk] .ok-releases{margin:40px 0 0;padding:0;list-style:none}body[data-site=openkk] .ok-releases li{flex-wrap:wrap;gap:0 24px;padding:8px 0;display:flex}body[data-site=openkk] .ok-releases time{min-width:9em;color:var(--ok-faint);font-size:var(--ok-fs-4);line-height:1.8rem}@media (width<=560px){body[data-site=openkk]{--ok-fs-1:28px;--ok-gutter:16px}body[data-site=openkk] .ok-title{padding-top:32px}body[data-site=openkk] .ok-feature{margin-top:48px}body[data-site=openkk] .ok-foot-inner{grid-template-columns:1fr 1fr;gap:24px}body[data-site=openkk] .ok-foot-who{grid-column:1/-1}}
