@font-face{font-family:HafsQuran;src:url('../fonts/UthmanicHafs.woff2') format('woff2');font-weight:400;font-style:normal;font-display:block}:root{--ink:#000;--paper:#f4f8f5;--guide:rgba(0,0,0,0);--name-size:1.62rem;--square:15vmin;--font-latin:Amiri,'Scheherazade New','Cormorant Garamond',serif;--font-arabic:'HafsQuran',Arial,serif}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;overflow:hidden;background:var(--paper)}body{font-family:var(--font-latin);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#stage{position:fixed;inset:0}#hub{position:absolute;left:50%;top:50%;width:0;height:0}.guide{position:absolute;left:50%;top:50%;border:1px solid var(--guide);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}#square{position:absolute;left:50%;top:50%;width:var(--square);height:var(--square);transform:translate(-50%,-50%);background:var(--ink);z-index:20;box-shadow:0 1.4vmin 4vmin rgba(0,0,0,.16)}.ring{position:absolute;left:50%;top:50%;width:0;height:0;animation:linear infinite spin;will-change:transform}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(-360deg)}}.name{position:absolute;left:0;top:0;font-family:var(--font-arabic);font-size:var(--name-size);line-height:1.6;direction:rtl;unicode-bidi:isolate;color:var(--ink);white-space:nowrap;cursor:pointer;padding:.1em .34em;border-radius:.3em;transform-origin:50% 50%;transition:opacity .25s,color .2s;user-select:none;-webkit-user-select:none}.name span{display:block;transform-origin:50% 50%;transition:transform .2s cubic-bezier(.3,1.4,.5,1)}#hub.frozen .ring,#hub.reading .ring{animation-play-state:paused}#hub.reading .name{opacity:.16}#hub.reading .name.active{opacity:1}.name.active span{transform:scale(1.42)}#hub.boost .ring{animation-play-state:running}#hub.boost .name{opacity:1;cursor:default}#tip{position:fixed;z-index:9000;pointer-events:none;max-width:min(34ch,74vw);padding:1em 1.25em 1.1em;background:#f8f8ff;border:1px solid rgba(0,0,0,.9);box-shadow:0 1.4em 3.4em rgba(0,0,0,.18),0 .2em .6em rgba(0,0,0,.1);opacity:0;transform:translateY(.45em);transition:opacity .15s,transform .15s}#tip.show{opacity:1;transform:translateY(0)}#tip .num{font-size:clamp(.58rem,1.05vmin,.86rem);letter-spacing:.3em;text-transform:uppercase;color:rgba(0,0,0,.5);margin-bottom:.5em}#tip .ar{font-family:var(--font-arabic);font-size:clamp(1.35rem,3.3vmin,2.6rem);line-height:1.6;direction:rtl;unicode-bidi:isolate;color:var(--ink);margin-bottom:.1em}#tip .tr{font-size:clamp(.85rem,1.75vmin,1.3rem);font-style:italic;color:rgba(0,0,0,.62);margin-bottom:.55em}#tip .rule{height:1px;background:rgba(0,0,0,.85);width:2.4em;margin:0 0 .6em}#tip .mn{font-size:clamp(.88rem,1.85vmin,1.35rem);line-height:1.5;color:var(--ink)}#title{position:fixed;top:3.4vmin;left:0;right:0;z-index:60;text-align:center;pointer-events:none}#title h1{font-family:Amiri,'Geeza Pro',serif;font-weight:700;font-size:clamp(17px,2.9vmin,32px);direction:rtl;color:var(--ink)}#title p{margin-top:.4em;font-size:clamp(9px,1.25vmin,13px);letter-spacing:.44em;text-transform:uppercase;color:rgba(0,0,0,.45);padding-left:.44em}#hint{position:fixed;bottom:3vmin;left:0;right:0;z-index:60;text-align:center;pointer-events:none;font-size:clamp(9px,1.2vmin,12px);letter-spacing:.26em;text-transform:uppercase;color:rgba(0,0,0,.34);transition:color .2s}#hub.frozen~#hint,body.frozen #hint{color:rgba(0,0,0,.62)}#counter{position:fixed;bottom:2.4vmin;right:2.8vmin;z-index:60;pointer-events:none;font-size:clamp(9px,1.2vmin,12px);letter-spacing:.22em;color:rgba(0,0,0,.34)}@media (prefers-reduced-motion:reduce){.ring{animation:none}}@media print{@page{size:landscape;margin:12mm}body,html{height:auto;min-height:0;overflow:visible}#square{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none}#hint{visibility:hidden;bottom:0;font-size:0;letter-spacing:0;line-height:0}#counter,#tip{display:none!important}.ring{animation:none!important}.name{opacity:1!important;transition:none!important}.name span{transform:none!important}#hub.reading .name{opacity:1!important}#stage{page-break-inside:avoid;break-inside:avoid}}